From 5c85271e48b4f2be7da47d1728ad1ddb95364ad7 Mon Sep 17 00:00:00 2001 From: Dasky <32983009+daskygit@users.noreply.github.com> Date: Fri, 25 Oct 2024 18:10:17 +0100 Subject: [PATCH 001/365] Add timer_save and _restore functions. (#23887) Co-authored-by: Sergey Vlasov Co-authored-by: Nick Brassel --- platforms/avr/timer.c | 19 +++++++++++++++++++ platforms/chibios/timer.c | 21 +++++++++++++++++++++ platforms/timer.h | 2 ++ 3 files changed, 42 insertions(+) diff --git a/platforms/avr/timer.c b/platforms/avr/timer.c index 9fb671ae8d8..26ba0e29fa2 100644 --- a/platforms/avr/timer.c +++ b/platforms/avr/timer.c @@ -25,6 +25,7 @@ along with this program. If not, see . // counter resolution 1ms // NOTE: union { uint32_t timer32; struct { uint16_t dummy; uint16_t timer16; }} volatile uint32_t timer_count; +static uint32_t saved_ms; /** \brief timer initialization * @@ -78,6 +79,24 @@ inline void timer_clear(void) { } } +/** \brief timer save + * + * Set saved_ms to current time. + */ +void timer_save(void) { + saved_ms = timer_read32(); +} + +/** \brief timer restore + * + * Set timer_count to saved_ms + */ +void timer_restore(void) { + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { + timer_count = saved_ms; + } +} + /** \brief timer read * * FIXME: needs doc diff --git a/platforms/chibios/timer.c b/platforms/chibios/timer.c index 5e01ea63724..4a347b445d8 100644 --- a/platforms/chibios/timer.c +++ b/platforms/chibios/timer.c @@ -5,6 +5,7 @@ static uint32_t ticks_offset = 0; static uint32_t last_ticks = 0; static uint32_t ms_offset = 0; +static uint32_t saved_ms = 0; #if CH_CFG_ST_RESOLUTION < 32 static uint32_t last_systime = 0; static uint32_t overflow = 0; @@ -73,6 +74,26 @@ void timer_clear(void) { chSysUnlock(); } +__attribute__((weak)) void platform_timer_save_value(uint32_t value) { + saved_ms = value; +} + +__attribute__((weak)) uint32_t platform_timer_restore_value(void) { + return saved_ms; +} + +void timer_restore(void) { + chSysLock(); + ticks_offset = get_system_time_ticks(); + last_ticks = 0; + ms_offset = platform_timer_restore_value(); + chSysUnlock(); +} + +void timer_save(void) { + platform_timer_save_value(timer_read32()); +} + uint16_t timer_read(void) { return (uint16_t)timer_read32(); } diff --git a/platforms/timer.h b/platforms/timer.h index d55f40f0b0b..fb8ff6bc545 100644 --- a/platforms/timer.h +++ b/platforms/timer.h @@ -38,6 +38,8 @@ extern volatile uint32_t timer_count; void timer_init(void); void timer_clear(void); +void timer_save(void); +void timer_restore(void); uint16_t timer_read(void); uint32_t timer_read32(void); uint16_t timer_elapsed(uint16_t last); From f5b495e06e257796a9be845f47bfc375fece81f8 Mon Sep 17 00:00:00 2001 From: Dasky <32983009+daskygit@users.noreply.github.com> Date: Fri, 25 Oct 2024 18:11:51 +0100 Subject: [PATCH 002/365] Move pointing device driver code (#24445) Co-authored-by: Drashna Jaelre --- builddefs/common_features.mk | 2 +- drivers/sensors/adns5050.c | 20 + drivers/sensors/adns5050.h | 4 + drivers/sensors/adns9800.c | 16 + drivers/sensors/adns9800.h | 4 + drivers/sensors/analog_joystick.c | 21 + drivers/sensors/analog_joystick.h | 4 + drivers/sensors/azoteq_iqs5xx.c | 109 ++++ drivers/sensors/azoteq_iqs5xx.h | 2 + drivers/sensors/cirque_pinnacle.c | 142 +++++ drivers/sensors/cirque_pinnacle.h | 8 + drivers/sensors/paw3204.c | 20 + drivers/sensors/paw3204.h | 5 + drivers/sensors/pimoroni_trackball.c | 58 +- drivers/sensors/pimoroni_trackball.h | 16 +- drivers/sensors/pmw3320.c | 20 + drivers/sensors/pmw3320.h | 4 + drivers/sensors/pmw33xx_common.c | 42 ++ drivers/sensors/pmw33xx_common.h | 10 + quantum/pointing_device/pointing_device.c | 41 +- quantum/pointing_device/pointing_device.h | 18 +- .../pointing_device/pointing_device_drivers.c | 514 ------------------ quantum/split_common/transactions.c | 10 +- 23 files changed, 544 insertions(+), 546 deletions(-) delete mode 100644 quantum/pointing_device/pointing_device_drivers.c diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index cc13fbd3f73..2eb7056b6f6 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -129,13 +129,13 @@ ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes) MOUSE_ENABLE := yes VPATH += $(QUANTUM_DIR)/pointing_device SRC += $(QUANTUM_DIR)/pointing_device/pointing_device.c - SRC += $(QUANTUM_DIR)/pointing_device/pointing_device_drivers.c SRC += $(QUANTUM_DIR)/pointing_device/pointing_device_auto_mouse.c ifneq ($(strip $(POINTING_DEVICE_DRIVER)), custom) SRC += drivers/sensors/$(strip $(POINTING_DEVICE_DRIVER)).c OPT_DEFS += -DPOINTING_DEVICE_DRIVER_$(strip $(shell echo $(POINTING_DEVICE_DRIVER) | tr '[:lower:]' '[:upper:]')) endif OPT_DEFS += -DPOINTING_DEVICE_DRIVER_$(strip $(POINTING_DEVICE_DRIVER)) + OPT_DEFS += -DPOINTING_DEVICE_DRIVER_NAME=$(strip $(POINTING_DEVICE_DRIVER)) ifeq ($(strip $(POINTING_DEVICE_DRIVER)), adns9800) SPI_DRIVER_REQUIRED = yes else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), analog_joystick) diff --git a/drivers/sensors/adns5050.c b/drivers/sensors/adns5050.c index f28a5dcc455..1768c9f3b4a 100644 --- a/drivers/sensors/adns5050.c +++ b/drivers/sensors/adns5050.c @@ -21,6 +21,7 @@ #include "wait.h" #include "debug.h" #include "gpio.h" +#include "pointing_device_internal.h" // Registers // clang-format off @@ -45,6 +46,13 @@ #define REG_MOTION_BURST 0x63 // clang-format on +const pointing_device_driver_t adns5050_pointing_device_driver = { + .init = adns5050_init, + .get_report = adns5050_get_report, + .set_cpi = adns5050_set_cpi, + .get_cpi = adns5050_get_cpi, +}; + static bool powered_down = false; void adns5050_init(void) { @@ -226,3 +234,15 @@ void adns5050_power_down(void) { adns5050_write_reg(REG_MOUSE_CONTROL, 0b10); } } + +report_mouse_t adns5050_get_report(report_mouse_t mouse_report) { + report_adns5050_t data = adns5050_read_burst(); + + if (data.dx != 0 || data.dy != 0) { + pd_dprintf("Raw ] X: %d, Y: %d\n", data.dx, data.dy); + mouse_report.x = (mouse_xy_report_t)data.dx; + mouse_report.y = (mouse_xy_report_t)data.dy; + } + + return mouse_report; +} diff --git a/drivers/sensors/adns5050.h b/drivers/sensors/adns5050.h index 586f16b590b..4dfcbc3c70d 100644 --- a/drivers/sensors/adns5050.h +++ b/drivers/sensors/adns5050.h @@ -21,6 +21,7 @@ #include #include +#include "pointing_device.h" // CPI values // clang-format off @@ -69,6 +70,8 @@ typedef struct { int8_t dy; } report_adns5050_t; +const pointing_device_driver_t adns5050_pointing_device_driver; + // A bunch of functions to implement the ADNS5050-specific serial protocol. // Note that the "serial.h" driver is insufficient, because it does not // manually manipulate a serial clock signal. @@ -84,3 +87,4 @@ uint16_t adns5050_get_cpi(void); int8_t convert_twoscomp(uint8_t data); bool adns5050_check_signature(void); void adns5050_power_down(void); +report_mouse_t adns5050_get_report(report_mouse_t mouse_report); diff --git a/drivers/sensors/adns9800.c b/drivers/sensors/adns9800.c index f4abdb50874..0dbc528351c 100644 --- a/drivers/sensors/adns9800.c +++ b/drivers/sensors/adns9800.c @@ -77,6 +77,13 @@ #define MSB1 0x80 // clang-format on +const pointing_device_driver_t adns9800_pointing_device_driver = { + .init = adns9800_init, + .get_report = adns9800_get_report_driver, + .set_cpi = adns9800_set_cpi, + .get_cpi = adns9800_get_cpi, +}; + uint16_t __attribute__((weak)) adns9800_srom_get_length(void) { return 0; } @@ -236,3 +243,12 @@ report_adns9800_t adns9800_get_report(void) { return report; } + +report_mouse_t adns9800_get_report_driver(report_mouse_t mouse_report) { + report_adns9800_t sensor_report = adns9800_get_report(); + + mouse_report.x = CONSTRAIN_HID_XY(sensor_report.x); + mouse_report.y = CONSTRAIN_HID_XY(sensor_report.y); + + return mouse_report; +} diff --git a/drivers/sensors/adns9800.h b/drivers/sensors/adns9800.h index 3f1a005789f..023f31b1323 100644 --- a/drivers/sensors/adns9800.h +++ b/drivers/sensors/adns9800.h @@ -17,6 +17,7 @@ #pragma once #include +#include "pointing_device.h" #ifndef ADNS9800_CPI # define ADNS9800_CPI 1600 @@ -60,6 +61,8 @@ typedef struct { int16_t y; } report_adns9800_t; +const pointing_device_driver_t adns9800_pointing_device_driver; + void adns9800_init(void); config_adns9800_t adns9800_get_config(void); void adns9800_set_config(config_adns9800_t); @@ -67,3 +70,4 @@ uint16_t adns9800_get_cpi(void); void adns9800_set_cpi(uint16_t cpi); /* Reads and clears the current delta values on the ADNS sensor */ report_adns9800_t adns9800_get_report(void); +report_mouse_t adns9800_get_report_driver(report_mouse_t mouse_report); diff --git a/drivers/sensors/analog_joystick.c b/drivers/sensors/analog_joystick.c index 15b35a45f25..93bbaa1b51b 100644 --- a/drivers/sensors/analog_joystick.c +++ b/drivers/sensors/analog_joystick.c @@ -20,6 +20,14 @@ #include "wait.h" #include "timer.h" #include +#include "pointing_device_internal.h" + +const pointing_device_driver_t analog_joystick_pointing_device_driver = { + .init = analog_joystick_init, + .get_report = analog_joystick_get_report, + .set_cpi = NULL, + .get_cpi = NULL, +}; // Set Parameters #ifndef ANALOG_JOYSTICK_AUTO_AXIS @@ -145,3 +153,16 @@ void analog_joystick_init(void) { maxAxisValues[1] = yOrigin + 100; #endif } + +report_mouse_t analog_joystick_get_report(report_mouse_t mouse_report) { + report_analog_joystick_t data = analog_joystick_read(); + + pd_dprintf("Raw ] X: %d, Y: %d\n", data.x, data.y); + + mouse_report.x = data.x; + mouse_report.y = data.y; + + mouse_report.buttons = pointing_device_handle_buttons(mouse_report.buttons, data.button, POINTING_DEVICE_BUTTON1); + + return mouse_report; +} diff --git a/drivers/sensors/analog_joystick.h b/drivers/sensors/analog_joystick.h index 6892a08817f..c84da83db13 100644 --- a/drivers/sensors/analog_joystick.h +++ b/drivers/sensors/analog_joystick.h @@ -18,6 +18,7 @@ #include #include +#include "pointing_device.h" #ifndef ANALOG_JOYSTICK_X_AXIS_PIN # error No pin specified for X Axis @@ -42,6 +43,8 @@ # define ANALOG_JOYSTICK_SPEED_MAX 2 #endif +const pointing_device_driver_t analog_joystick_pointing_device_driver; + typedef struct { int8_t x; int8_t y; @@ -49,3 +52,4 @@ typedef struct { } report_analog_joystick_t; report_analog_joystick_t analog_joystick_read(void); void analog_joystick_init(void); +report_mouse_t analog_joystick_get_report(report_mouse_t mouse_report); diff --git a/drivers/sensors/azoteq_iqs5xx.c b/drivers/sensors/azoteq_iqs5xx.c index 367873eb062..1bb64f19844 100644 --- a/drivers/sensors/azoteq_iqs5xx.c +++ b/drivers/sensors/azoteq_iqs5xx.c @@ -98,6 +98,13 @@ #define AZOTEQ_IQS5XX_INCH_TO_RESOLUTION_Y(inch) (DIVIDE_UNSIGNED_ROUND((inch) * (uint32_t)AZOTEQ_IQS5XX_HEIGHT_MM * 10, 254)) #define AZOTEQ_IQS5XX_RESOLUTION_Y_TO_INCH(px) (DIVIDE_UNSIGNED_ROUND((px) * (uint32_t)254, AZOTEQ_IQS5XX_HEIGHT_MM * 10)) +const pointing_device_driver_t azoteq_iqs5xx_pointing_device_driver = { + .init = azoteq_iqs5xx_init, + .get_report = azoteq_iqs5xx_get_report, + .set_cpi = azoteq_iqs5xx_set_cpi, + .get_cpi = azoteq_iqs5xx_get_cpi, +}; + static uint16_t azoteq_iqs5xx_product_number = AZOTEQ_IQS5XX_UNKNOWN; static struct { @@ -312,3 +319,105 @@ void azoteq_iqs5xx_setup_resolution(void) { azoteq_iqs5xx_device_resolution_t.resolution_y = AZOTEQ_IQS5XX_RESOLUTION_Y; #endif } + +static i2c_status_t azoteq_iqs5xx_init_status = 1; + +void azoteq_iqs5xx_init(void) { + i2c_init(); + azoteq_iqs5xx_wake(); + azoteq_iqs5xx_reset_suspend(true, false, true); + wait_ms(100); + azoteq_iqs5xx_wake(); + if (azoteq_iqs5xx_get_product() != AZOTEQ_IQS5XX_UNKNOWN) { + azoteq_iqs5xx_setup_resolution(); + azoteq_iqs5xx_init_status = azoteq_iqs5xx_set_report_rate(AZOTEQ_IQS5XX_REPORT_RATE, AZOTEQ_IQS5XX_ACTIVE, false); + azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_event_mode(false, false); + azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_reati(true, false); +#if defined(AZOTEQ_IQS5XX_ROTATION_90) + azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_xy_config(false, true, true, true, false); +#elif defined(AZOTEQ_IQS5XX_ROTATION_180) + azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_xy_config(true, true, false, true, false); +#elif defined(AZOTEQ_IQS5XX_ROTATION_270) + azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_xy_config(true, false, true, true, false); +#else + azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_xy_config(false, false, false, true, false); +#endif + azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_gesture_config(true); + wait_ms(AZOTEQ_IQS5XX_REPORT_RATE + 1); + } +}; + +report_mouse_t azoteq_iqs5xx_get_report(report_mouse_t mouse_report) { + report_mouse_t temp_report = {0}; + static uint8_t previous_button_state = 0; + static uint8_t read_error_count = 0; + + if (azoteq_iqs5xx_init_status == I2C_STATUS_SUCCESS) { + azoteq_iqs5xx_base_data_t base_data = {0}; +#if !defined(POINTING_DEVICE_MOTION_PIN) + azoteq_iqs5xx_wake(); +#endif + i2c_status_t status = azoteq_iqs5xx_get_base_data(&base_data); + bool ignore_movement = false; + + if (status == I2C_STATUS_SUCCESS) { + // pd_dprintf("IQS5XX - previous cycle time: %d \n", base_data.previous_cycle_time); + read_error_count = 0; + if (base_data.gesture_events_0.single_tap || base_data.gesture_events_0.press_and_hold) { + pd_dprintf("IQS5XX - Single tap/hold.\n"); + temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON1); + } else if (base_data.gesture_events_1.two_finger_tap) { + pd_dprintf("IQS5XX - Two finger tap.\n"); + temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON2); + } else if (base_data.gesture_events_0.swipe_x_neg) { + pd_dprintf("IQS5XX - X-.\n"); + temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON4); + ignore_movement = true; + } else if (base_data.gesture_events_0.swipe_x_pos) { + pd_dprintf("IQS5XX - X+.\n"); + temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON5); + ignore_movement = true; + } else if (base_data.gesture_events_0.swipe_y_neg) { + pd_dprintf("IQS5XX - Y-.\n"); + temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON6); + ignore_movement = true; + } else if (base_data.gesture_events_0.swipe_y_pos) { + pd_dprintf("IQS5XX - Y+.\n"); + temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON3); + ignore_movement = true; + } else if (base_data.gesture_events_1.zoom) { + if (AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l) < 0) { + pd_dprintf("IQS5XX - Zoom out.\n"); + temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON7); + } else if (AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l) > 0) { + pd_dprintf("IQS5XX - Zoom in.\n"); + temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON8); + } + } else if (base_data.gesture_events_1.scroll) { + pd_dprintf("IQS5XX - Scroll.\n"); + temp_report.h = CONSTRAIN_HID(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l)); + temp_report.v = CONSTRAIN_HID(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.y.h, base_data.y.l)); + } + if (base_data.number_of_fingers == 1 && !ignore_movement) { + temp_report.x = CONSTRAIN_HID_XY(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l)); + temp_report.y = CONSTRAIN_HID_XY(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.y.h, base_data.y.l)); + } + + previous_button_state = temp_report.buttons; + + } else { + if (read_error_count > 10) { + read_error_count = 0; + previous_button_state = 0; + } else { + read_error_count++; + } + temp_report.buttons = previous_button_state; + pd_dprintf("IQS5XX - get report failed: %d \n", status); + } + } else { + pd_dprintf("IQS5XX - Init failed: %d \n", azoteq_iqs5xx_init_status); + } + + return temp_report; +} diff --git a/drivers/sensors/azoteq_iqs5xx.h b/drivers/sensors/azoteq_iqs5xx.h index 704ec2bab3b..4190fe470c7 100644 --- a/drivers/sensors/azoteq_iqs5xx.h +++ b/drivers/sensors/azoteq_iqs5xx.h @@ -176,6 +176,8 @@ typedef struct { # define POINTING_DEVICE_TASK_THROTTLE_MS AZOTEQ_IQS5XX_REPORT_RATE #endif +const pointing_device_driver_t azoteq_iqs5xx_pointing_device_driver; + void azoteq_iqs5xx_init(void); i2c_status_t azoteq_iqs5xx_wake(void); report_mouse_t azoteq_iqs5xx_get_report(report_mouse_t mouse_report); diff --git a/drivers/sensors/cirque_pinnacle.c b/drivers/sensors/cirque_pinnacle.c index 9afc9df8044..893cb98bf05 100644 --- a/drivers/sensors/cirque_pinnacle.c +++ b/drivers/sensors/cirque_pinnacle.c @@ -4,6 +4,7 @@ // refer to documentation: Gen2 and Gen3 (Pinnacle ASIC) at https://www.cirque.com/documentation #include "cirque_pinnacle.h" +#include "cirque_pinnacle_gestures.h" #include "wait.h" #include "timer.h" @@ -350,3 +351,144 @@ pinnacle_data_t cirque_pinnacle_read_data(void) { result.valid = true; return result; } + +#ifdef POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE +static bool cursor_glide_enable = true; + +static cursor_glide_context_t glide = {.config = { + .coef = 102, /* Good default friction coef */ + .interval = 10, /* 100sps */ + .trigger_px = 10, /* Default threshold in case of hover, set to 0 if you'd like */ + }}; + +void cirque_pinnacle_enable_cursor_glide(bool enable) { + cursor_glide_enable = enable; +} + +void cirque_pinnacle_configure_cursor_glide(float trigger_px) { + glide.config.trigger_px = trigger_px; +} +#endif + +#if CIRQUE_PINNACLE_POSITION_MODE + +# ifdef POINTING_DEVICE_AUTO_MOUSE_ENABLE +static bool is_touch_down; + +bool auto_mouse_activation(report_mouse_t mouse_report) { + return is_touch_down || mouse_report.x != 0 || mouse_report.y != 0 || mouse_report.h != 0 || mouse_report.v != 0 || mouse_report.buttons; +} +# endif + +report_mouse_t cirque_pinnacle_get_report(report_mouse_t mouse_report) { + uint16_t scale = cirque_pinnacle_get_scale(); + pinnacle_data_t touchData = cirque_pinnacle_read_data(); + mouse_xy_report_t report_x = 0, report_y = 0; + static uint16_t x = 0, y = 0, last_scale = 0; + +# if defined(CIRQUE_PINNACLE_TAP_ENABLE) + mouse_report.buttons = pointing_device_handle_buttons(mouse_report.buttons, false, POINTING_DEVICE_BUTTON1); +# endif +# ifdef POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE + cursor_glide_t glide_report = {0}; + + if (cursor_glide_enable) { + glide_report = cursor_glide_check(&glide); + } +# endif + + if (!touchData.valid) { +# ifdef POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE + if (cursor_glide_enable && glide_report.valid) { + report_x = glide_report.dx; + report_y = glide_report.dy; + goto mouse_report_update; + } +# endif + return mouse_report; + } + + if (touchData.touchDown) { + pd_dprintf("cirque_pinnacle touchData x=%4d y=%4d z=%2d\n", touchData.xValue, touchData.yValue, touchData.zValue); + } + +# ifdef POINTING_DEVICE_AUTO_MOUSE_ENABLE + is_touch_down = touchData.touchDown; +# endif + + // Scale coordinates to arbitrary X, Y resolution + cirque_pinnacle_scale_data(&touchData, scale, scale); + + if (!cirque_pinnacle_gestures(&mouse_report, touchData)) { + if (last_scale && scale == last_scale && x && y && touchData.xValue && touchData.yValue) { + report_x = CONSTRAIN_HID_XY((int16_t)(touchData.xValue - x)); + report_y = CONSTRAIN_HID_XY((int16_t)(touchData.yValue - y)); + } + x = touchData.xValue; + y = touchData.yValue; + last_scale = scale; + +# ifdef POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE + if (cursor_glide_enable) { + if (touchData.touchDown) { + cursor_glide_update(&glide, report_x, report_y, touchData.zValue); + } else if (!glide_report.valid) { + glide_report = cursor_glide_start(&glide); + if (glide_report.valid) { + report_x = glide_report.dx; + report_y = glide_report.dy; + } + } + } +# endif + } + +# ifdef POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE +mouse_report_update: +# endif + mouse_report.x = report_x; + mouse_report.y = report_y; + + return mouse_report; +} + +uint16_t cirque_pinnacle_get_cpi(void) { + return CIRQUE_PINNACLE_PX_TO_INCH(cirque_pinnacle_get_scale()); +} +void cirque_pinnacle_set_cpi(uint16_t cpi) { + cirque_pinnacle_set_scale(CIRQUE_PINNACLE_INCH_TO_PX(cpi)); +} + +// clang-format off +const pointing_device_driver_t cirque_pinnacle_pointing_device_driver = { + .init = cirque_pinnacle_init, + .get_report = cirque_pinnacle_get_report, + .set_cpi = cirque_pinnacle_set_cpi, + .get_cpi = cirque_pinnacle_get_cpi +}; +// clang-format on +#else +report_mouse_t cirque_pinnacle_get_report(report_mouse_t mouse_report) { + pinnacle_data_t touchData = cirque_pinnacle_read_data(); + + // Scale coordinates to arbitrary X, Y resolution + cirque_pinnacle_scale_data(&touchData, cirque_pinnacle_get_scale(), cirque_pinnacle_get_scale()); + + if (touchData.valid) { + mouse_report.buttons = touchData.buttons; + mouse_report.x = CONSTRAIN_HID_XY(touchData.xDelta); + mouse_report.y = CONSTRAIN_HID_XY(touchData.yDelta); + mouse_report.v = touchData.wheelCount; + } + return mouse_report; +} + +// clang-format off +const pointing_device_driver_t cirque_pinnacle_pointing_device_driver = { + .init = cirque_pinnacle_init, + .get_report = cirque_pinnacle_get_report, + .set_cpi = cirque_pinnacle_set_scale, + .get_cpi = cirque_pinnacle_get_scale +}; +// clang-format on +#endif diff --git a/drivers/sensors/cirque_pinnacle.h b/drivers/sensors/cirque_pinnacle.h index 8717b329911..1a17e539a40 100644 --- a/drivers/sensors/cirque_pinnacle.h +++ b/drivers/sensors/cirque_pinnacle.h @@ -6,6 +6,7 @@ #include #include #include "pointing_device_internal.h" +#include "pointing_device.h" #ifndef CIRQUE_PINNACLE_TIMEOUT # define CIRQUE_PINNACLE_TIMEOUT 20 // I2C timeout in milliseconds @@ -109,6 +110,10 @@ typedef struct { #endif } pinnacle_data_t; +#define cirque_pinnacle_i2c_pointing_device_driver cirque_pinnacle_pointing_device_driver +#define cirque_pinnacle_spi_pointing_device_driver cirque_pinnacle_pointing_device_driver +const pointing_device_driver_t cirque_pinnacle_pointing_device_driver; + void cirque_pinnacle_init(void); void cirque_pinnacle_calibrate(void); void cirque_pinnacle_cursor_smoothing(bool enable); @@ -116,3 +121,6 @@ pinnacle_data_t cirque_pinnacle_read_data(void); void cirque_pinnacle_scale_data(pinnacle_data_t* coordinates, uint16_t xResolution, uint16_t yResolution); uint16_t cirque_pinnacle_get_scale(void); void cirque_pinnacle_set_scale(uint16_t scale); +uint16_t cirque_pinnacle_get_cpi(void); +void cirque_pinnacle_set_cpi(uint16_t cpi); +report_mouse_t cirque_pinnacle_get_report(report_mouse_t mouse_report); diff --git a/drivers/sensors/paw3204.c b/drivers/sensors/paw3204.c index 28c47522ed5..475821f175c 100644 --- a/drivers/sensors/paw3204.c +++ b/drivers/sensors/paw3204.c @@ -20,6 +20,7 @@ #include "wait.h" #include "debug.h" #include "gpio.h" +#include "pointing_device_internal.h" #define REG_PID1 0x00 #define REG_PID2 0x01 @@ -50,6 +51,13 @@ void paw3204_serial_write(uint8_t reg_addr); uint8_t paw3204_read_reg(uint8_t reg_addr); void paw3204_write_reg(uint8_t reg_addr, uint8_t data); +const pointing_device_driver_t paw3204_pointing_device_driver = { + .init = paw3204_init, + .get_report = paw3204_get_report, + .set_cpi = paw3204_set_cpi, + .get_cpi = paw3204_get_cpi, +}; + void paw3204_init(void) { gpio_set_pin_output(PAW3204_SCLK_PIN); // setclockpin to output gpio_set_pin_input_high(PAW3204_SDIO_PIN); // set datapin input high @@ -170,3 +178,15 @@ uint16_t paw3204_get_cpi(void) { uint8_t read_pid_paw3204(void) { return paw3204_read_reg(REG_PID1); } + +report_mouse_t paw3204_get_report(report_mouse_t mouse_report) { + report_paw3204_t data = paw3204_read(); + if (data.isMotion) { + pd_dprintf("Raw ] X: %d, Y: %d\n", data.x, data.y); + + mouse_report.x = data.x; + mouse_report.y = data.y; + } + + return mouse_report; +} diff --git a/drivers/sensors/paw3204.h b/drivers/sensors/paw3204.h index 7f487d90dce..a4bb8e16a67 100644 --- a/drivers/sensors/paw3204.h +++ b/drivers/sensors/paw3204.h @@ -18,6 +18,7 @@ #include #include +#include "pointing_device.h" #ifndef PAW3204_SCLK_PIN # ifdef POINTING_DEVICE_SCLK_PIN @@ -40,6 +41,8 @@ typedef struct { bool isMotion; } report_paw3204_t; +const pointing_device_driver_t paw3204_pointing_device_driver; + /** * @brief Initializes the sensor so it is in a working state and ready to * be polled for data. @@ -74,3 +77,5 @@ void paw3204_set_cpi(uint16_t cpi); * @return uint16_t Current CPI value of the sensor */ uint16_t paw3204_get_cpi(void); + +report_mouse_t paw3204_get_report(report_mouse_t mouse_report); diff --git a/drivers/sensors/pimoroni_trackball.c b/drivers/sensors/pimoroni_trackball.c index 9c6d26d73de..afbe3d5b77f 100644 --- a/drivers/sensors/pimoroni_trackball.c +++ b/drivers/sensors/pimoroni_trackball.c @@ -33,6 +33,13 @@ static uint16_t precision = 128; +const pointing_device_driver_t pimoroni_trackball_pointing_device_driver = { + .init = pimoroni_trackball_device_init, + .get_report = pimoroni_trackball_get_report, + .set_cpi = pimoroni_trackball_set_cpi, + .get_cpi = pimoroni_trackball_get_cpi, +}; + uint16_t pimoroni_trackball_get_cpi(void) { return (precision * 125); } @@ -61,8 +68,8 @@ void pimoroni_trackball_set_rgbw(uint8_t r, uint8_t g, uint8_t b, uint8_t w) { pd_dprintf("Trackball RGBW i2c_status_t: %d\n", status); } -i2c_status_t read_pimoroni_trackball(pimoroni_data_t* data) { - i2c_status_t status = i2c_read_register(PIMORONI_TRACKBALL_ADDRESS << 1, PIMORONI_TRACKBALL_REG_LEFT, (uint8_t*)data, sizeof(*data), PIMORONI_TRACKBALL_TIMEOUT); +i2c_status_t read_pimoroni_trackball(pimoroni_data_t *data) { + i2c_status_t status = i2c_read_register(PIMORONI_TRACKBALL_ADDRESS << 1, PIMORONI_TRACKBALL_REG_LEFT, (uint8_t *)data, sizeof(*data), PIMORONI_TRACKBALL_TIMEOUT); #ifdef POINTING_DEVICE_DEBUG static uint16_t d_timer; @@ -92,3 +99,50 @@ int16_t pimoroni_trackball_get_offsets(uint8_t negative_dir, uint8_t positive_di uint16_t magnitude = (scale * offset * offset * precision) >> 7; return isnegative ? -(int16_t)(magnitude) : (int16_t)(magnitude); } + +mouse_xy_report_t pimoroni_trackball_adapt_values(xy_clamp_range_t *offset) { + if (*offset > XY_REPORT_MAX) { + *offset -= XY_REPORT_MAX; + return (mouse_xy_report_t)XY_REPORT_MAX; + } else if (*offset < XY_REPORT_MIN) { + *offset += XY_REPORT_MAX; + return (mouse_xy_report_t)XY_REPORT_MIN; + } else { + mouse_xy_report_t temp_return = *offset; + *offset = 0; + return temp_return; + } +} + +report_mouse_t pimoroni_trackball_get_report(report_mouse_t mouse_report) { + static uint16_t debounce = 0; + static uint8_t error_count = 0; + pimoroni_data_t pimoroni_data = {0}; + static xy_clamp_range_t x_offset = 0, y_offset = 0; + + if (error_count < PIMORONI_TRACKBALL_ERROR_COUNT) { + i2c_status_t status = read_pimoroni_trackball(&pimoroni_data); + + if (status == I2C_STATUS_SUCCESS) { + error_count = 0; + + if (!(pimoroni_data.click & 128)) { + mouse_report.buttons = pointing_device_handle_buttons(mouse_report.buttons, false, POINTING_DEVICE_BUTTON1); + if (!debounce) { + x_offset += pimoroni_trackball_get_offsets(pimoroni_data.right, pimoroni_data.left, PIMORONI_TRACKBALL_SCALE); + y_offset += pimoroni_trackball_get_offsets(pimoroni_data.down, pimoroni_data.up, PIMORONI_TRACKBALL_SCALE); + mouse_report.x = pimoroni_trackball_adapt_values(&x_offset); + mouse_report.y = pimoroni_trackball_adapt_values(&y_offset); + } else { + debounce--; + } + } else { + mouse_report.buttons = pointing_device_handle_buttons(mouse_report.buttons, true, POINTING_DEVICE_BUTTON1); + debounce = PIMORONI_TRACKBALL_DEBOUNCE_CYCLES; + } + } else { + error_count++; + } + } + return mouse_report; +} diff --git a/drivers/sensors/pimoroni_trackball.h b/drivers/sensors/pimoroni_trackball.h index 749f381bbd6..1904214a74a 100644 --- a/drivers/sensors/pimoroni_trackball.h +++ b/drivers/sensors/pimoroni_trackball.h @@ -19,6 +19,7 @@ #include #include "report.h" #include "i2c_master.h" +#include "pointing_device.h" #ifndef PIMORONI_TRACKBALL_ADDRESS # define PIMORONI_TRACKBALL_ADDRESS 0x0A @@ -49,9 +50,12 @@ typedef struct { uint8_t click; } pimoroni_data_t; -void pimoroni_trackball_device_init(void); -void pimoroni_trackball_set_rgbw(uint8_t red, uint8_t green, uint8_t blue, uint8_t white); -int16_t pimoroni_trackball_get_offsets(uint8_t negative_dir, uint8_t positive_dir, uint8_t scale); -uint16_t pimoroni_trackball_get_cpi(void); -void pimoroni_trackball_set_cpi(uint16_t cpi); -i2c_status_t read_pimoroni_trackball(pimoroni_data_t* data); +const pointing_device_driver_t pimoroni_trackball_pointing_device_driver; + +void pimoroni_trackball_device_init(void); +void pimoroni_trackball_set_rgbw(uint8_t red, uint8_t green, uint8_t blue, uint8_t white); +int16_t pimoroni_trackball_get_offsets(uint8_t negative_dir, uint8_t positive_dir, uint8_t scale); +uint16_t pimoroni_trackball_get_cpi(void); +void pimoroni_trackball_set_cpi(uint16_t cpi); +i2c_status_t read_pimoroni_trackball(pimoroni_data_t* data); +report_mouse_t pimoroni_trackball_get_report(report_mouse_t mouse_report); diff --git a/drivers/sensors/pmw3320.c b/drivers/sensors/pmw3320.c index f19fbfd1ab4..74fefd4c53d 100644 --- a/drivers/sensors/pmw3320.c +++ b/drivers/sensors/pmw3320.c @@ -21,6 +21,14 @@ #include "wait.h" #include "debug.h" #include "gpio.h" +#include "pointing_device_internal.h" + +const pointing_device_driver_t pmw3320_pointing_device_drivera = { + .init = pmw3320_init, + .get_report = pmw3320_get_report, + .set_cpi = pmw3320_set_cpi, + .get_cpi = pmw3320_get_cpi, +}; void pmw3320_init(void) { // Initialize sensor serial pins. @@ -190,3 +198,15 @@ bool pmw3320_check_signature(void) { return (pid == 0x3b && pid2 == 0xc4); } + +report_mouse_t pmw3320_get_report(report_mouse_t mouse_report) { + report_pmw3320_t data = pmw3320_read_burst(); + + if (data.dx != 0 || data.dy != 0) { + pd_dprintf("Raw ] X: %d, Y: %d\n", data.dx, data.dy); + mouse_report.x = (mouse_xy_report_t)data.dx; + mouse_report.y = (mouse_xy_report_t)data.dy; + } + + return mouse_report; +} diff --git a/drivers/sensors/pmw3320.h b/drivers/sensors/pmw3320.h index a1fd5469196..cfff25bd8a6 100644 --- a/drivers/sensors/pmw3320.h +++ b/drivers/sensors/pmw3320.h @@ -21,6 +21,7 @@ #include #include +#include "pointing_device.h" #define constrain(amt, low, high) ((amt) < (low) ? (low) : ((amt) > (high) ? (high) : (amt))) @@ -54,6 +55,8 @@ typedef struct { int8_t dy; } report_pmw3320_t; +const pointing_device_driver_t pmw3320_pointing_device_driver; + // A bunch of functions to implement the PMW3320-specific serial protocol. // Mostly taken from ADNS5050 driver. // Note that the "serial.h" driver is insufficient, because it does not @@ -69,6 +72,7 @@ void pmw3320_set_cpi(uint16_t cpi); uint16_t pmw3320_get_cpi(void); int8_t convert_twoscomp(uint8_t data); bool pmw3320_check_signature(void); +report_mouse_t pmw3320_get_report(report_mouse_t mouse_report); #if !defined(PMW3320_CPI) # define PMW3320_CPI 1000 diff --git a/drivers/sensors/pmw33xx_common.c b/drivers/sensors/pmw33xx_common.c index b4fa727af9b..f3285ec4972 100644 --- a/drivers/sensors/pmw33xx_common.c +++ b/drivers/sensors/pmw33xx_common.c @@ -26,6 +26,13 @@ static bool in_burst_right[ARRAY_SIZE(cs_pins_right)] = {0}; bool __attribute__((cold)) pmw33xx_upload_firmware(uint8_t sensor); bool __attribute__((cold)) pmw33xx_check_signature(uint8_t sensor); +const pointing_device_driver_t pmw33xx_pointing_device_driver = { + .init = pmw33xx_init_wrapper, + .get_report = pmw33xx_get_report, + .set_cpi = pmw33xx_set_cpi_wrapper, + .get_cpi = pmw33xx_get_cpi_wrapper, +}; + uint16_t __attribute__((weak)) pmw33xx_srom_get_length(void) { return 0; } @@ -228,3 +235,38 @@ pmw33xx_report_t pmw33xx_read_burst(uint8_t sensor) { return report; } + +void pmw33xx_init_wrapper(void) { + pmw33xx_init(0); +} + +void pmw33xx_set_cpi_wrapper(uint16_t cpi) { + pmw33xx_set_cpi(0, cpi); +} + +uint16_t pmw33xx_get_cpi_wrapper(void) { + return pmw33xx_get_cpi(0); +} + +report_mouse_t pmw33xx_get_report(report_mouse_t mouse_report) { + pmw33xx_report_t report = pmw33xx_read_burst(0); + static bool in_motion = false; + + if (report.motion.b.is_lifted) { + return mouse_report; + } + + if (!report.motion.b.is_motion) { + in_motion = false; + return mouse_report; + } + + if (!in_motion) { + in_motion = true; + pd_dprintf("PWM3360 (0): starting motion\n"); + } + + mouse_report.x = CONSTRAIN_HID_XY(report.delta_x); + mouse_report.y = CONSTRAIN_HID_XY(report.delta_y); + return mouse_report; +} diff --git a/drivers/sensors/pmw33xx_common.h b/drivers/sensors/pmw33xx_common.h index b30ee3d5966..22e35c33275 100644 --- a/drivers/sensors/pmw33xx_common.h +++ b/drivers/sensors/pmw33xx_common.h @@ -14,6 +14,7 @@ #include #include "spi_master.h" #include "util.h" +#include "pointing_device.h" #if defined(POINTING_DEVICE_DRIVER_pmw3360) # include "pmw3360.h" @@ -102,6 +103,10 @@ _Static_assert(sizeof((pmw33xx_report_t){0}.motion) == 1, "pmw33xx_report_t.moti #define CONSTRAIN(amt, low, high) ((amt) < (low) ? (low) : ((amt) > (high) ? (high) : (amt))) +#define pmw3360_pointing_device_driver pmw33xx_pointing_device_driver; +#define pmw3389_pointing_device_driver pmw33xx_pointing_device_driver; +const pointing_device_driver_t pmw33xx_pointing_device_driver; + /** * @brief Initializes the given sensor so it is in a working state and ready to * be polled for data. @@ -170,3 +175,8 @@ uint8_t pmw33xx_read(uint8_t sensor, uint8_t reg_addr); * @return false Write failed, do not proceed operation */ bool pmw33xx_write(uint8_t sensor, uint8_t reg_addr, uint8_t data); + +void pmw33xx_init_wrapper(void); +void pmw33xx_set_cpi_wrapper(uint16_t cpi); +uint16_t pmw33xx_get_cpi_wrapper(void); +report_mouse_t pmw33xx_get_report(report_mouse_t mouse_report); diff --git a/quantum/pointing_device/pointing_device.c b/quantum/pointing_device/pointing_device.c index 7d3be9e524f..cac2875fc8d 100644 --- a/quantum/pointing_device/pointing_device.c +++ b/quantum/pointing_device/pointing_device.c @@ -79,7 +79,28 @@ uint16_t pointing_device_get_shared_cpi(void) { static report_mouse_t local_mouse_report = {}; static bool pointing_device_force_send = false; -extern const pointing_device_driver_t pointing_device_driver; +#define POINTING_DEVICE_DRIVER_CONCAT(name) name##_pointing_device_driver +#define POINTING_DEVICE_DRIVER(name) POINTING_DEVICE_DRIVER_CONCAT(name) + +#ifdef POINTING_DEVICE_DRIVER_custom +__attribute__((weak)) void pointing_device_driver_init(void) {} +__attribute__((weak)) report_mouse_t pointing_device_driver_get_report(report_mouse_t mouse_report) { + return mouse_report; +} +__attribute__((weak)) uint16_t pointing_device_driver_get_cpi(void) { + return 0; +} +__attribute__((weak)) void pointing_device_driver_set_cpi(uint16_t cpi) {} + +const pointing_device_driver_t custom_pointing_device_driver = { + .init = pointing_device_driver_init, + .get_report = pointing_device_driver_get_report, + .get_cpi = pointing_device_driver_get_cpi, + .set_cpi = pointing_device_driver_set_cpi, +}; +#endif + +const pointing_device_driver_t *pointing_device_driver = &POINTING_DEVICE_DRIVER(POINTING_DEVICE_DRIVER_NAME); /** * @brief Keyboard level code pointing device initialisation @@ -146,7 +167,7 @@ __attribute__((weak)) void pointing_device_init(void) { if ((POINTING_DEVICE_THIS_SIDE)) #endif { - pointing_device_driver.init(); + pointing_device_driver->init(); #ifdef POINTING_DEVICE_MOTION_PIN # ifdef POINTING_DEVICE_MOTION_PIN_ACTIVE_LOW gpio_set_pin_input_high(POINTING_DEVICE_MOTION_PIN); @@ -258,15 +279,15 @@ __attribute__((weak)) bool pointing_device_task(void) { # if defined(POINTING_DEVICE_COMBINED) static uint8_t old_buttons = 0; local_mouse_report.buttons = old_buttons; - local_mouse_report = pointing_device_driver.get_report(local_mouse_report); + local_mouse_report = pointing_device_driver->get_report(local_mouse_report); old_buttons = local_mouse_report.buttons; # elif defined(POINTING_DEVICE_LEFT) || defined(POINTING_DEVICE_RIGHT) - local_mouse_report = POINTING_DEVICE_THIS_SIDE ? pointing_device_driver.get_report(local_mouse_report) : shared_mouse_report; + local_mouse_report = POINTING_DEVICE_THIS_SIDE ? pointing_device_driver->get_report(local_mouse_report) : shared_mouse_report; # else # error "You need to define the side(s) the pointing device is on. POINTING_DEVICE_COMBINED / POINTING_DEVICE_LEFT / POINTING_DEVICE_RIGHT" # endif #else - local_mouse_report = pointing_device_driver.get_report(local_mouse_report); + local_mouse_report = pointing_device_driver->get_report(local_mouse_report); #endif // defined(SPLIT_POINTING_ENABLE) #ifdef POINTING_DEVICE_MOTION_PIN @@ -331,9 +352,9 @@ void pointing_device_set_report(report_mouse_t mouse_report) { */ uint16_t pointing_device_get_cpi(void) { #if defined(SPLIT_POINTING_ENABLE) - return POINTING_DEVICE_THIS_SIDE ? pointing_device_driver.get_cpi() : shared_cpi; + return POINTING_DEVICE_THIS_SIDE ? pointing_device_driver->get_cpi() : shared_cpi; #else - return pointing_device_driver.get_cpi(); + return pointing_device_driver->get_cpi(); #endif } @@ -347,12 +368,12 @@ uint16_t pointing_device_get_cpi(void) { void pointing_device_set_cpi(uint16_t cpi) { #if defined(SPLIT_POINTING_ENABLE) if (POINTING_DEVICE_THIS_SIDE) { - pointing_device_driver.set_cpi(cpi); + pointing_device_driver->set_cpi(cpi); } else { shared_cpi = cpi; } #else - pointing_device_driver.set_cpi(cpi); + pointing_device_driver->set_cpi(cpi); #endif } @@ -370,7 +391,7 @@ void pointing_device_set_cpi(uint16_t cpi) { void pointing_device_set_cpi_on_side(bool left, uint16_t cpi) { bool local = (is_keyboard_left() == left); if (local) { - pointing_device_driver.set_cpi(cpi); + pointing_device_driver->set_cpi(cpi); } else { shared_cpi = cpi; } diff --git a/quantum/pointing_device/pointing_device.h b/quantum/pointing_device/pointing_device.h index b0f8533d6d0..72188c977dd 100644 --- a/quantum/pointing_device/pointing_device.h +++ b/quantum/pointing_device/pointing_device.h @@ -21,6 +21,13 @@ along with this program. If not, see . #include "host.h" #include "report.h" +typedef struct { + void (*init)(void); + report_mouse_t (*get_report)(report_mouse_t mouse_report); + void (*set_cpi)(uint16_t); + uint16_t (*get_cpi)(void); +} pointing_device_driver_t; + #ifdef POINTING_DEVICE_AUTO_MOUSE_ENABLE # include "pointing_device_auto_mouse.h" #endif @@ -44,7 +51,6 @@ along with this program. If not, see . # include "drivers/sensors/azoteq_iqs5xx.h" #elif defined(POINTING_DEVICE_DRIVER_cirque_pinnacle_i2c) || defined(POINTING_DEVICE_DRIVER_cirque_pinnacle_spi) # include "drivers/sensors/cirque_pinnacle.h" -# include "drivers/sensors/cirque_pinnacle_gestures.h" # include "pointing_device_gestures.h" #elif defined(POINTING_DEVICE_DRIVER_paw3204) # include "drivers/sensors/paw3204.h" @@ -74,13 +80,6 @@ uint16_t pointing_device_driver_get_cpi(void); void pointing_device_driver_set_cpi(uint16_t cpi); #endif -typedef struct { - void (*init)(void); - report_mouse_t (*get_report)(report_mouse_t mouse_report); - void (*set_cpi)(uint16_t); - uint16_t (*get_cpi)(void); -} pointing_device_driver_t; - typedef enum { POINTING_DEVICE_BUTTON1, POINTING_DEVICE_BUTTON2, @@ -112,6 +111,9 @@ typedef int32_t hv_clamp_range_t; typedef int16_t hv_clamp_range_t; #endif +#define CONSTRAIN_HID(amt) ((amt) < INT8_MIN ? INT8_MIN : ((amt) > INT8_MAX ? INT8_MAX : (amt))) +#define CONSTRAIN_HID_XY(amt) ((amt) < XY_REPORT_MIN ? XY_REPORT_MIN : ((amt) > XY_REPORT_MAX ? XY_REPORT_MAX : (amt))) + void pointing_device_init(void); bool pointing_device_task(void); bool pointing_device_send(void); diff --git a/quantum/pointing_device/pointing_device_drivers.c b/quantum/pointing_device/pointing_device_drivers.c deleted file mode 100644 index 6cbe427401e..00000000000 --- a/quantum/pointing_device/pointing_device_drivers.c +++ /dev/null @@ -1,514 +0,0 @@ -/* Copyright 2017 Joshua Broekhuijsen - * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) - * Copyright 2021 Dasky (@daskygit) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "pointing_device.h" -#include "pointing_device_internal.h" -#include "debug.h" -#include "wait.h" -#include "timer.h" -#include - -#define CONSTRAIN_HID(amt) ((amt) < INT8_MIN ? INT8_MIN : ((amt) > INT8_MAX ? INT8_MAX : (amt))) -#define CONSTRAIN_HID_XY(amt) ((amt) < XY_REPORT_MIN ? XY_REPORT_MIN : ((amt) > XY_REPORT_MAX ? XY_REPORT_MAX : (amt))) - -// get_report functions should probably be moved to their respective drivers. - -#if defined(POINTING_DEVICE_DRIVER_adns5050) -report_mouse_t adns5050_get_report(report_mouse_t mouse_report) { - report_adns5050_t data = adns5050_read_burst(); - - if (data.dx != 0 || data.dy != 0) { - pd_dprintf("Raw ] X: %d, Y: %d\n", data.dx, data.dy); - mouse_report.x = (mouse_xy_report_t)data.dx; - mouse_report.y = (mouse_xy_report_t)data.dy; - } - - return mouse_report; -} - -// clang-format off -const pointing_device_driver_t pointing_device_driver = { - .init = adns5050_init, - .get_report = adns5050_get_report, - .set_cpi = adns5050_set_cpi, - .get_cpi = adns5050_get_cpi, -}; -// clang-format on - -#elif defined(POINTING_DEVICE_DRIVER_pmw3320) -report_mouse_t pmw3320_get_report(report_mouse_t mouse_report) { - report_pmw3320_t data = pmw3320_read_burst(); - - if (data.dx != 0 || data.dy != 0) { - pd_dprintf("Raw ] X: %d, Y: %d\n", data.dx, data.dy); - mouse_report.x = (mouse_xy_report_t)data.dx; - mouse_report.y = (mouse_xy_report_t)data.dy; - } - - return mouse_report; -} - -// clang-format off -const pointing_device_driver_t pointing_device_driver = { - .init = pmw3320_init, - .get_report = pmw3320_get_report, - .set_cpi = pmw3320_set_cpi, - .get_cpi = pmw3320_get_cpi, -}; -// clang-format on - -#elif defined(POINTING_DEVICE_DRIVER_adns9800) - -report_mouse_t adns9800_get_report_driver(report_mouse_t mouse_report) { - report_adns9800_t sensor_report = adns9800_get_report(); - - mouse_report.x = CONSTRAIN_HID_XY(sensor_report.x); - mouse_report.y = CONSTRAIN_HID_XY(sensor_report.y); - - return mouse_report; -} - -// clang-format off -const pointing_device_driver_t pointing_device_driver = { - .init = adns9800_init, - .get_report = adns9800_get_report_driver, - .set_cpi = adns9800_set_cpi, - .get_cpi = adns9800_get_cpi -}; -// clang-format on - -#elif defined(POINTING_DEVICE_DRIVER_analog_joystick) -report_mouse_t analog_joystick_get_report(report_mouse_t mouse_report) { - report_analog_joystick_t data = analog_joystick_read(); - - pd_dprintf("Raw ] X: %d, Y: %d\n", data.x, data.y); - - mouse_report.x = data.x; - mouse_report.y = data.y; - - mouse_report.buttons = pointing_device_handle_buttons(mouse_report.buttons, data.button, POINTING_DEVICE_BUTTON1); - - return mouse_report; -} - -// clang-format off -const pointing_device_driver_t pointing_device_driver = { - .init = analog_joystick_init, - .get_report = analog_joystick_get_report, - .set_cpi = NULL, - .get_cpi = NULL -}; -// clang-format on - -#elif defined(POINTING_DEVICE_DRIVER_azoteq_iqs5xx) - -static i2c_status_t azoteq_iqs5xx_init_status = 1; - -void azoteq_iqs5xx_init(void) { - i2c_init(); - azoteq_iqs5xx_wake(); - azoteq_iqs5xx_reset_suspend(true, false, true); - wait_ms(100); - azoteq_iqs5xx_wake(); - if (azoteq_iqs5xx_get_product() != AZOTEQ_IQS5XX_UNKNOWN) { - azoteq_iqs5xx_setup_resolution(); - azoteq_iqs5xx_init_status = azoteq_iqs5xx_set_report_rate(AZOTEQ_IQS5XX_REPORT_RATE, AZOTEQ_IQS5XX_ACTIVE, false); - azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_event_mode(false, false); - azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_reati(true, false); -# if defined(AZOTEQ_IQS5XX_ROTATION_90) - azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_xy_config(false, true, true, true, false); -# elif defined(AZOTEQ_IQS5XX_ROTATION_180) - azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_xy_config(true, true, false, true, false); -# elif defined(AZOTEQ_IQS5XX_ROTATION_270) - azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_xy_config(true, false, true, true, false); -# else - azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_xy_config(false, false, false, true, false); -# endif - azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_gesture_config(true); - wait_ms(AZOTEQ_IQS5XX_REPORT_RATE + 1); - } -}; - -report_mouse_t azoteq_iqs5xx_get_report(report_mouse_t mouse_report) { - report_mouse_t temp_report = {0}; - static uint8_t previous_button_state = 0; - static uint8_t read_error_count = 0; - - if (azoteq_iqs5xx_init_status == I2C_STATUS_SUCCESS) { - azoteq_iqs5xx_base_data_t base_data = {0}; -# if !defined(POINTING_DEVICE_MOTION_PIN) - azoteq_iqs5xx_wake(); -# endif - i2c_status_t status = azoteq_iqs5xx_get_base_data(&base_data); - bool ignore_movement = false; - - if (status == I2C_STATUS_SUCCESS) { - // pd_dprintf("IQS5XX - previous cycle time: %d \n", base_data.previous_cycle_time); - read_error_count = 0; - if (base_data.gesture_events_0.single_tap || base_data.gesture_events_0.press_and_hold) { - pd_dprintf("IQS5XX - Single tap/hold.\n"); - temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON1); - } else if (base_data.gesture_events_1.two_finger_tap) { - pd_dprintf("IQS5XX - Two finger tap.\n"); - temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON2); - } else if (base_data.gesture_events_0.swipe_x_neg) { - pd_dprintf("IQS5XX - X-.\n"); - temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON4); - ignore_movement = true; - } else if (base_data.gesture_events_0.swipe_x_pos) { - pd_dprintf("IQS5XX - X+.\n"); - temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON5); - ignore_movement = true; - } else if (base_data.gesture_events_0.swipe_y_neg) { - pd_dprintf("IQS5XX - Y-.\n"); - temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON6); - ignore_movement = true; - } else if (base_data.gesture_events_0.swipe_y_pos) { - pd_dprintf("IQS5XX - Y+.\n"); - temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON3); - ignore_movement = true; - } else if (base_data.gesture_events_1.zoom) { - if (AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l) < 0) { - pd_dprintf("IQS5XX - Zoom out.\n"); - temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON7); - } else if (AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l) > 0) { - pd_dprintf("IQS5XX - Zoom in.\n"); - temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON8); - } - } else if (base_data.gesture_events_1.scroll) { - pd_dprintf("IQS5XX - Scroll.\n"); - temp_report.h = CONSTRAIN_HID(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l)); - temp_report.v = CONSTRAIN_HID(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.y.h, base_data.y.l)); - } - if (base_data.number_of_fingers == 1 && !ignore_movement) { - temp_report.x = CONSTRAIN_HID_XY(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l)); - temp_report.y = CONSTRAIN_HID_XY(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.y.h, base_data.y.l)); - } - - previous_button_state = temp_report.buttons; - - } else { - if (read_error_count > 10) { - read_error_count = 0; - previous_button_state = 0; - } else { - read_error_count++; - } - temp_report.buttons = previous_button_state; - pd_dprintf("IQS5XX - get report failed: %d \n", status); - } - } else { - pd_dprintf("IQS5XX - Init failed: %d \n", azoteq_iqs5xx_init_status); - } - - return temp_report; -} - -// clang-format off -const pointing_device_driver_t pointing_device_driver = { - .init = azoteq_iqs5xx_init, - .get_report = azoteq_iqs5xx_get_report, - .set_cpi = azoteq_iqs5xx_set_cpi, - .get_cpi = azoteq_iqs5xx_get_cpi -}; -// clang-format on - -#elif defined(POINTING_DEVICE_DRIVER_cirque_pinnacle_i2c) || defined(POINTING_DEVICE_DRIVER_cirque_pinnacle_spi) -# ifdef POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE -static bool cursor_glide_enable = true; - -static cursor_glide_context_t glide = {.config = { - .coef = 102, /* Good default friction coef */ - .interval = 10, /* 100sps */ - .trigger_px = 10, /* Default threshold in case of hover, set to 0 if you'd like */ - }}; - -void cirque_pinnacle_enable_cursor_glide(bool enable) { - cursor_glide_enable = enable; -} - -void cirque_pinnacle_configure_cursor_glide(float trigger_px) { - glide.config.trigger_px = trigger_px; -} -# endif - -# if CIRQUE_PINNACLE_POSITION_MODE - -# ifdef POINTING_DEVICE_AUTO_MOUSE_ENABLE -static bool is_touch_down; - -bool auto_mouse_activation(report_mouse_t mouse_report) { - return is_touch_down || mouse_report.x != 0 || mouse_report.y != 0 || mouse_report.h != 0 || mouse_report.v != 0 || mouse_report.buttons; -} -# endif - -report_mouse_t cirque_pinnacle_get_report(report_mouse_t mouse_report) { - uint16_t scale = cirque_pinnacle_get_scale(); - pinnacle_data_t touchData = cirque_pinnacle_read_data(); - mouse_xy_report_t report_x = 0, report_y = 0; - static uint16_t x = 0, y = 0, last_scale = 0; - -# if defined(CIRQUE_PINNACLE_TAP_ENABLE) - mouse_report.buttons = pointing_device_handle_buttons(mouse_report.buttons, false, POINTING_DEVICE_BUTTON1); -# endif -# ifdef POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE - cursor_glide_t glide_report = {0}; - - if (cursor_glide_enable) { - glide_report = cursor_glide_check(&glide); - } -# endif - - if (!touchData.valid) { -# ifdef POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE - if (cursor_glide_enable && glide_report.valid) { - report_x = glide_report.dx; - report_y = glide_report.dy; - goto mouse_report_update; - } -# endif - return mouse_report; - } - - if (touchData.touchDown) { - pd_dprintf("cirque_pinnacle touchData x=%4d y=%4d z=%2d\n", touchData.xValue, touchData.yValue, touchData.zValue); - } - -# ifdef POINTING_DEVICE_AUTO_MOUSE_ENABLE - is_touch_down = touchData.touchDown; -# endif - - // Scale coordinates to arbitrary X, Y resolution - cirque_pinnacle_scale_data(&touchData, scale, scale); - - if (!cirque_pinnacle_gestures(&mouse_report, touchData)) { - if (last_scale && scale == last_scale && x && y && touchData.xValue && touchData.yValue) { - report_x = CONSTRAIN_HID_XY((int16_t)(touchData.xValue - x)); - report_y = CONSTRAIN_HID_XY((int16_t)(touchData.yValue - y)); - } - x = touchData.xValue; - y = touchData.yValue; - last_scale = scale; - -# ifdef POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE - if (cursor_glide_enable) { - if (touchData.touchDown) { - cursor_glide_update(&glide, report_x, report_y, touchData.zValue); - } else if (!glide_report.valid) { - glide_report = cursor_glide_start(&glide); - if (glide_report.valid) { - report_x = glide_report.dx; - report_y = glide_report.dy; - } - } - } -# endif - } - -# ifdef POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE -mouse_report_update: -# endif - mouse_report.x = report_x; - mouse_report.y = report_y; - - return mouse_report; -} - -uint16_t cirque_pinnacle_get_cpi(void) { - return CIRQUE_PINNACLE_PX_TO_INCH(cirque_pinnacle_get_scale()); -} -void cirque_pinnacle_set_cpi(uint16_t cpi) { - cirque_pinnacle_set_scale(CIRQUE_PINNACLE_INCH_TO_PX(cpi)); -} - -// clang-format off -const pointing_device_driver_t pointing_device_driver = { - .init = cirque_pinnacle_init, - .get_report = cirque_pinnacle_get_report, - .set_cpi = cirque_pinnacle_set_cpi, - .get_cpi = cirque_pinnacle_get_cpi -}; -// clang-format on -# else -report_mouse_t cirque_pinnacle_get_report(report_mouse_t mouse_report) { - pinnacle_data_t touchData = cirque_pinnacle_read_data(); - - // Scale coordinates to arbitrary X, Y resolution - cirque_pinnacle_scale_data(&touchData, cirque_pinnacle_get_scale(), cirque_pinnacle_get_scale()); - - if (touchData.valid) { - mouse_report.buttons = touchData.buttons; - mouse_report.x = CONSTRAIN_HID_XY(touchData.xDelta); - mouse_report.y = CONSTRAIN_HID_XY(touchData.yDelta); - mouse_report.v = touchData.wheelCount; - } - return mouse_report; -} - -// clang-format off -const pointing_device_driver_t pointing_device_driver = { - .init = cirque_pinnacle_init, - .get_report = cirque_pinnacle_get_report, - .set_cpi = cirque_pinnacle_set_scale, - .get_cpi = cirque_pinnacle_get_scale -}; -// clang-format on -# endif - -#elif defined(POINTING_DEVICE_DRIVER_paw3204) - -report_mouse_t paw3204_get_report(report_mouse_t mouse_report) { - report_paw3204_t data = paw3204_read(); - if (data.isMotion) { - pd_dprintf("Raw ] X: %d, Y: %d\n", data.x, data.y); - - mouse_report.x = data.x; - mouse_report.y = data.y; - } - - return mouse_report; -} -const pointing_device_driver_t pointing_device_driver = { - .init = paw3204_init, - .get_report = paw3204_get_report, - .set_cpi = paw3204_set_cpi, - .get_cpi = paw3204_get_cpi, -}; -#elif defined(POINTING_DEVICE_DRIVER_pimoroni_trackball) - -mouse_xy_report_t pimoroni_trackball_adapt_values(xy_clamp_range_t* offset) { - if (*offset > XY_REPORT_MAX) { - *offset -= XY_REPORT_MAX; - return (mouse_xy_report_t)XY_REPORT_MAX; - } else if (*offset < XY_REPORT_MIN) { - *offset += XY_REPORT_MAX; - return (mouse_xy_report_t)XY_REPORT_MIN; - } else { - mouse_xy_report_t temp_return = *offset; - *offset = 0; - return temp_return; - } -} - -report_mouse_t pimoroni_trackball_get_report(report_mouse_t mouse_report) { - static uint16_t debounce = 0; - static uint8_t error_count = 0; - pimoroni_data_t pimoroni_data = {0}; - static xy_clamp_range_t x_offset = 0, y_offset = 0; - - if (error_count < PIMORONI_TRACKBALL_ERROR_COUNT) { - i2c_status_t status = read_pimoroni_trackball(&pimoroni_data); - - if (status == I2C_STATUS_SUCCESS) { - error_count = 0; - - if (!(pimoroni_data.click & 128)) { - mouse_report.buttons = pointing_device_handle_buttons(mouse_report.buttons, false, POINTING_DEVICE_BUTTON1); - if (!debounce) { - x_offset += pimoroni_trackball_get_offsets(pimoroni_data.right, pimoroni_data.left, PIMORONI_TRACKBALL_SCALE); - y_offset += pimoroni_trackball_get_offsets(pimoroni_data.down, pimoroni_data.up, PIMORONI_TRACKBALL_SCALE); - mouse_report.x = pimoroni_trackball_adapt_values(&x_offset); - mouse_report.y = pimoroni_trackball_adapt_values(&y_offset); - } else { - debounce--; - } - } else { - mouse_report.buttons = pointing_device_handle_buttons(mouse_report.buttons, true, POINTING_DEVICE_BUTTON1); - debounce = PIMORONI_TRACKBALL_DEBOUNCE_CYCLES; - } - } else { - error_count++; - } - } - return mouse_report; -} - -// clang-format off -const pointing_device_driver_t pointing_device_driver = { - .init = pimoroni_trackball_device_init, - .get_report = pimoroni_trackball_get_report, - .set_cpi = pimoroni_trackball_set_cpi, - .get_cpi = pimoroni_trackball_get_cpi -}; -// clang-format on - -#elif defined(POINTING_DEVICE_DRIVER_pmw3360) || defined(POINTING_DEVICE_DRIVER_pmw3389) -static void pmw33xx_init_wrapper(void) { - pmw33xx_init(0); -} - -static void pmw33xx_set_cpi_wrapper(uint16_t cpi) { - pmw33xx_set_cpi(0, cpi); -} - -static uint16_t pmw33xx_get_cpi_wrapper(void) { - return pmw33xx_get_cpi(0); -} - -report_mouse_t pmw33xx_get_report(report_mouse_t mouse_report) { - pmw33xx_report_t report = pmw33xx_read_burst(0); - static bool in_motion = false; - - if (report.motion.b.is_lifted) { - return mouse_report; - } - - if (!report.motion.b.is_motion) { - in_motion = false; - return mouse_report; - } - - if (!in_motion) { - in_motion = true; - pd_dprintf("PWM3360 (0): starting motion\n"); - } - - mouse_report.x = CONSTRAIN_HID_XY(report.delta_x); - mouse_report.y = CONSTRAIN_HID_XY(report.delta_y); - return mouse_report; -} - -// clang-format off -const pointing_device_driver_t pointing_device_driver = { - .init = pmw33xx_init_wrapper, - .get_report = pmw33xx_get_report, - .set_cpi = pmw33xx_set_cpi_wrapper, - .get_cpi = pmw33xx_get_cpi_wrapper -}; -// clang-format on - -#else -__attribute__((weak)) void pointing_device_driver_init(void) {} -__attribute__((weak)) report_mouse_t pointing_device_driver_get_report(report_mouse_t mouse_report) { - return mouse_report; -} -__attribute__((weak)) uint16_t pointing_device_driver_get_cpi(void) { - return 0; -} -__attribute__((weak)) void pointing_device_driver_set_cpi(uint16_t cpi) {} - -// clang-format off -const pointing_device_driver_t pointing_device_driver = { - .init = pointing_device_driver_init, - .get_report = pointing_device_driver_get_report, - .get_cpi = pointing_device_driver_get_cpi, - .set_cpi = pointing_device_driver_set_cpi -}; -// clang-format on - -#endif diff --git a/quantum/split_common/transactions.c b/quantum/split_common/transactions.c index 6c1aeb284d3..f66b2ad89fb 100644 --- a/quantum/split_common/transactions.c +++ b/quantum/split_common/transactions.c @@ -733,7 +733,7 @@ static bool pointing_handlers_master(matrix_row_t master_matrix[], matrix_row_t return okay; } -extern const pointing_device_driver_t pointing_device_driver; +extern const pointing_device_driver_t *pointing_device_driver; static void pointing_handlers_slave(matrix_row_t master_matrix[], matrix_row_t slave_matrix[]) { # if defined(POINTING_DEVICE_LEFT) @@ -753,18 +753,18 @@ static void pointing_handlers_slave(matrix_row_t master_matrix[], matrix_row_t s last_exec = timer_read32(); # endif - uint16_t temp_cpi = !pointing_device_driver.get_cpi ? 0 : pointing_device_driver.get_cpi(); // check for NULL + uint16_t temp_cpi = !pointing_device_driver->get_cpi ? 0 : pointing_device_driver->get_cpi(); // check for NULL split_shared_memory_lock(); split_slave_pointing_sync_t pointing; memcpy(&pointing, &split_shmem->pointing, sizeof(split_slave_pointing_sync_t)); split_shared_memory_unlock(); - if (pointing.cpi && pointing.cpi != temp_cpi && pointing_device_driver.set_cpi) { - pointing_device_driver.set_cpi(pointing.cpi); + if (pointing.cpi && pointing.cpi != temp_cpi && pointing_device_driver->set_cpi) { + pointing_device_driver->set_cpi(pointing.cpi); } - pointing.report = pointing_device_driver.get_report((report_mouse_t){0}); + pointing.report = pointing_device_driver->get_report((report_mouse_t){0}); // Now update the checksum given that the pointing has been written to pointing.checksum = crc8(&pointing.report, sizeof(report_mouse_t)); From 70055221767ff6b004006d3f349fcfdfcc864180 Mon Sep 17 00:00:00 2001 From: Guido Bartolucci Date: Mon, 28 Oct 2024 01:50:42 -0400 Subject: [PATCH 003/365] Add madjax_macropad keyboard (#24524) Co-authored-by: Ryan --- keyboards/madjax_macropad/keyboard.json | 55 +++++++++++++++++++ .../madjax_macropad/keymaps/default/keymap.c | 49 +++++++++++++++++ .../madjax_macropad/keymaps/default/rules.mk | 1 + keyboards/madjax_macropad/readme.md | 24 ++++++++ 4 files changed, 129 insertions(+) create mode 100644 keyboards/madjax_macropad/keyboard.json create mode 100644 keyboards/madjax_macropad/keymaps/default/keymap.c create mode 100644 keyboards/madjax_macropad/keymaps/default/rules.mk create mode 100644 keyboards/madjax_macropad/readme.md diff --git a/keyboards/madjax_macropad/keyboard.json b/keyboards/madjax_macropad/keyboard.json new file mode 100644 index 00000000000..ac2802faef2 --- /dev/null +++ b/keyboards/madjax_macropad/keyboard.json @@ -0,0 +1,55 @@ +{ + "manufacturer": "MadJax", + "keyboard_name": "madjax_macropad", + "maintainer": "guidoism", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP26", "GP27", "GP28", "GP29"], + "rows": ["GP6", "GP7", "GP0", "GP4", "GP3"] + }, + "encoder": { + "rotary": [ + {"pin_a": "GP1", "pin_b": "GP2"} + ] + }, + "processor": "RP2040", + "url": "https://github.com/guidoism/madjax_macropad", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [4, 3], "x": 3, "y": 4} + ] + } + } +} diff --git a/keyboards/madjax_macropad/keymaps/default/keymap.c b/keyboards/madjax_macropad/keymaps/default/keymap.c new file mode 100644 index 00000000000..693438c1f3e --- /dev/null +++ b/keyboards/madjax_macropad/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum custom_keycodes { + KC_P00 = SAFE_RANGE +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐ + * │ - │ + * ┌───┬───┬───┼───┤ + * │ 7 │ 8 │ 9 │ + │ + * ├───┼───┼───┼───┤ + * │ 4 │ 5 │ 6 │ % │ + * ├───┼───┼───┼───┤ + * │ 1 │ 2 │ 3 │ = │ + * ├───┼───┼───┼───┤ + * │ 0 │00 │ . │Ent│ + * └───┴───┴───┴───┘ + */ + [0] = LAYOUT( + KC_PMNS, + KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_P4, KC_P5, KC_P6, KC_PERC, + KC_P1, KC_P2, KC_P3, KC_EQL, + KC_P0, KC_P00, KC_PDOT, KC_PENT + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch(keycode) { + case KC_P00: + tap_code(KC_P0); + tap_code(KC_P0); + return false; + } + } + return true; +} + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) } +}; +#endif diff --git a/keyboards/madjax_macropad/keymaps/default/rules.mk b/keyboards/madjax_macropad/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/madjax_macropad/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/madjax_macropad/readme.md b/keyboards/madjax_macropad/readme.md new file mode 100644 index 00000000000..1abe17ecca9 --- /dev/null +++ b/keyboards/madjax_macropad/readme.md @@ -0,0 +1,24 @@ +# MadJax Macropad + +* Keyboard Maintainer: [Guido Bartolucci](https://github.com/guidoism) +* Hardware Supported: Seeed Studio XIAO RP2040 +* Hardware Availability: https://github.com/guidoism/madjax_macropad + +Make example for this keyboard (after setting up your build environment): + + make madjax_macropad:default + +Flashing example for this keyboard: + + make madjax_macropad:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available + From 644588baef2c72866ac59767e4d64493948aafed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=95=E3=82=A3=E3=83=AB=E3=82=BF=E3=83=BC=E3=83=9A?= =?UTF-8?q?=E3=83=BC=E3=83=91=E3=83=BC?= <76888457+filterpaper@users.noreply.github.com> Date: Mon, 28 Oct 2024 13:51:01 +0800 Subject: [PATCH 004/365] Refactor Riverflow matrix effect with runner (#24520) Co-authored-by: Ryan --- quantum/rgb_matrix/animations/riverflow_anim.h | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/quantum/rgb_matrix/animations/riverflow_anim.h b/quantum/rgb_matrix/animations/riverflow_anim.h index 737735fe83c..e9ef25f70ce 100644 --- a/quantum/rgb_matrix/animations/riverflow_anim.h +++ b/quantum/rgb_matrix/animations/riverflow_anim.h @@ -4,18 +4,14 @@ RGB_MATRIX_EFFECT(RIVERFLOW) // inspired by @PleasureTek's Massdrop Alt LED animation -bool RIVERFLOW(effect_params_t* params) { - RGB_MATRIX_USE_LIMITS(led_min, led_max); - for (uint8_t i = led_min; i < led_max; i++) { - RGB_MATRIX_TEST_LED_FLAGS(); - hsv_t hsv = rgb_matrix_config.hsv; - uint16_t time = scale16by8(g_rgb_timer + (i * 315), rgb_matrix_config.speed / 8); - hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); - rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); - rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); - } +hsv_t RIVERFLOW_math(hsv_t hsv, uint8_t i, uint8_t time) { + time = scale16by8(g_rgb_timer + (i * 315), rgb_matrix_config.speed / 8); + hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); + return hsv; +} - return rgb_matrix_check_finished_leds(led_max); +bool RIVERFLOW(effect_params_t* params) { + return effect_runner_i(params, &RIVERFLOW_math); } # endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS From d9fedce9b966c2249eaad983ab62480f182d1a5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=95=E3=82=A3=E3=83=AB=E3=82=BF=E3=83=BC=E3=83=9A?= =?UTF-8?q?=E3=83=BC=E3=83=91=E3=83=BC?= <76888457+filterpaper@users.noreply.github.com> Date: Mon, 28 Oct 2024 14:19:45 +0800 Subject: [PATCH 005/365] Update Pixel Rain to respect LED range limits (#24532) --- .../rgb_matrix/animations/pixel_rain_anim.h | 25 ++++++++----------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/quantum/rgb_matrix/animations/pixel_rain_anim.h b/quantum/rgb_matrix/animations/pixel_rain_anim.h index d7f0e3bebd0..c0370831d80 100644 --- a/quantum/rgb_matrix/animations/pixel_rain_anim.h +++ b/quantum/rgb_matrix/animations/pixel_rain_anim.h @@ -6,25 +6,20 @@ RGB_MATRIX_EFFECT(PIXEL_RAIN) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS static bool PIXEL_RAIN(effect_params_t* params) { - static uint32_t wait_timer = 0; + static fast_timer_t timer = 0; + static uint16_t index = RGB_MATRIX_LED_COUNT + 1; - inline uint32_t interval(void) { - return 500 / scale16by8(qadd8(rgb_matrix_config.speed, 16), 16); - } - - inline void rain_pixel(uint8_t led_index) { - if (!HAS_ANY_FLAGS(g_led_config.flags[led_index], params->flags)) { - return; - } - hsv_t hsv = (random8() & 2) ? (hsv_t){0, 0, 0} : (hsv_t){random8(), random8_min_max(127, 255), rgb_matrix_config.hsv.v}; - rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); - rgb_matrix_set_color(led_index, rgb.r, rgb.g, rgb.b); - wait_timer = g_rgb_timer + interval(); + if ((params->iter == 0) && (timer_elapsed_fast(timer) > (320 - rgb_matrix_config.speed))) { + index = random8_max(RGB_MATRIX_LED_COUNT); + timer = timer_read_fast(); } RGB_MATRIX_USE_LIMITS(led_min, led_max); - if (g_rgb_timer > wait_timer) { - rain_pixel(random8_max(RGB_MATRIX_LED_COUNT)); + if (led_min <= index && index < led_max && HAS_ANY_FLAGS(g_led_config.flags[index], params->flags)) { + hsv_t hsv = (random8() & 2) ? (hsv_t){0, 0, 0} : (hsv_t){random8(), random8_min_max(127, 255), rgb_matrix_config.hsv.v}; + rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); + rgb_matrix_set_color(index, rgb.r, rgb.g, rgb.b); + index = RGB_MATRIX_LED_COUNT + 1; } return rgb_matrix_check_finished_leds(led_max); } From dd7287bf4ef945117545acd7e0cc064aed75a936 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=95=E3=82=A3=E3=83=AB=E3=82=BF=E3=83=BC=E3=83=9A?= =?UTF-8?q?=E3=83=BC=E3=83=91=E3=83=BC?= <76888457+filterpaper@users.noreply.github.com> Date: Mon, 28 Oct 2024 14:20:14 +0800 Subject: [PATCH 006/365] Update Jellybean Raindrops to respect LED range limits (#24534) --- .../animations/jellybean_raindrops_anim.h | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/quantum/rgb_matrix/animations/jellybean_raindrops_anim.h b/quantum/rgb_matrix/animations/jellybean_raindrops_anim.h index 2b20b0706b5..5790b273673 100644 --- a/quantum/rgb_matrix/animations/jellybean_raindrops_anim.h +++ b/quantum/rgb_matrix/animations/jellybean_raindrops_anim.h @@ -2,25 +2,33 @@ RGB_MATRIX_EFFECT(JELLYBEAN_RAINDROPS) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static void jellybean_raindrops_set_color(int i, effect_params_t* params) { +static void jellybean_raindrops_set_color(uint8_t i, effect_params_t* params) { if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return; + hsv_t hsv = {random8(), random8_min_max(127, 255), rgb_matrix_config.hsv.v}; rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } bool JELLYBEAN_RAINDROPS(effect_params_t* params) { + static uint16_t index = RGB_MATRIX_LED_COUNT + 1; + + // Periodic trigger for LED change + if ((params->iter == 0) && (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 16)) % 5 == 0)) { + index = random8_max(RGB_MATRIX_LED_COUNT); + } + RGB_MATRIX_USE_LIMITS(led_min, led_max); - if (!params->init) { - // Change one LED every tick, make sure speed is not 0 - if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 16)) % 5 == 0) { - jellybean_raindrops_set_color(random8_max(RGB_MATRIX_LED_COUNT), params); - } - } else { - for (int i = led_min; i < led_max; i++) { + if (params->init) { + for (uint8_t i = led_min; i < led_max; i++) { jellybean_raindrops_set_color(i, params); } } + // Change LED once and set index out of range till next trigger + else if (led_min <= index && index < led_max) { + jellybean_raindrops_set_color(index, params); + index = RGB_MATRIX_LED_COUNT + 1; + } return rgb_matrix_check_finished_leds(led_max); } From 25fac5e7378d1f612b6ec98e00819bde09fab8e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=95=E3=82=A3=E3=83=AB=E3=82=BF=E3=83=BC=E3=83=9A?= =?UTF-8?q?=E3=83=BC=E3=83=91=E3=83=BC?= <76888457+filterpaper@users.noreply.github.com> Date: Mon, 28 Oct 2024 14:20:38 +0800 Subject: [PATCH 007/365] Refactor Breathing effect with runner (#24535) --- quantum/rgb_matrix/animations/breathing_anim.h | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/quantum/rgb_matrix/animations/breathing_anim.h b/quantum/rgb_matrix/animations/breathing_anim.h index ed0c808f878..8fa8e3dad4d 100644 --- a/quantum/rgb_matrix/animations/breathing_anim.h +++ b/quantum/rgb_matrix/animations/breathing_anim.h @@ -2,18 +2,13 @@ RGB_MATRIX_EFFECT(BREATHING) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -bool BREATHING(effect_params_t* params) { - RGB_MATRIX_USE_LIMITS(led_min, led_max); +hsv_t BREATHING_math(hsv_t hsv, uint8_t i, uint8_t time) { + hsv.v = scale8(abs8(sin8(time / 2) - 128) * 2, hsv.v); + return hsv; +} - hsv_t hsv = rgb_matrix_config.hsv; - uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 8); - hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); - rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); - for (uint8_t i = led_min; i < led_max; i++) { - RGB_MATRIX_TEST_LED_FLAGS(); - rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); - } - return rgb_matrix_check_finished_leds(led_max); +bool BREATHING(effect_params_t* params) { + return effect_runner_i(params, &BREATHING_math); } # endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS From 2c0cdcf7b2f57caf2ab842e44b8bc58a52251fcb Mon Sep 17 00:00:00 2001 From: Nikolai Grigoriev <2364632+ngrigoriev@users.noreply.github.com> Date: Mon, 28 Oct 2024 02:23:15 -0400 Subject: [PATCH 008/365] Improve consistency of syntax within `data/constants/keycodes` (#24528) --- .../keycodes/keycodes_0.0.1_midi.hjson | 4 +- .../keycodes/keycodes_0.0.2_kb.hjson | 68 +++++++++---------- .../keycodes/keycodes_0.0.2_midi.hjson | 4 +- .../keycodes/keycodes_0.0.2_user.hjson | 68 +++++++++---------- 4 files changed, 72 insertions(+), 72 deletions(-) diff --git a/data/constants/keycodes/keycodes_0.0.1_midi.hjson b/data/constants/keycodes/keycodes_0.0.1_midi.hjson index b9826f92c96..5ab9ef24d5f 100644 --- a/data/constants/keycodes/keycodes_0.0.1_midi.hjson +++ b/data/constants/keycodes/keycodes_0.0.1_midi.hjson @@ -84,7 +84,7 @@ "group": "midi", "key": "QK_MIDI_NOTE_G_SHARP_0", "aliases": [ - "MI_Gs" + "MI_Gs", "MI_Ab" ] }, @@ -99,7 +99,7 @@ "group": "midi", "key": "QK_MIDI_NOTE_A_SHARP_0", "aliases": [ - "MI_As" + "MI_As", "MI_Bb" ] }, diff --git a/data/constants/keycodes/keycodes_0.0.2_kb.hjson b/data/constants/keycodes/keycodes_0.0.2_kb.hjson index f9ffc7432d3..28c4a8e8be9 100644 --- a/data/constants/keycodes/keycodes_0.0.2_kb.hjson +++ b/data/constants/keycodes/keycodes_0.0.2_kb.hjson @@ -2,131 +2,131 @@ "keycodes": { "0x7E00": { "group": "kb", - "key": "QK_KB_0", + "key": "QK_KB_0" }, "0x7E01": { "group": "kb", - "key": "QK_KB_1", + "key": "QK_KB_1" }, "0x7E02": { "group": "kb", - "key": "QK_KB_2", + "key": "QK_KB_2" }, "0x7E03": { "group": "kb", - "key": "QK_KB_3", + "key": "QK_KB_3" }, "0x7E04": { "group": "kb", - "key": "QK_KB_4", + "key": "QK_KB_4" }, "0x7E05": { "group": "kb", - "key": "QK_KB_5", + "key": "QK_KB_5" }, "0x7E06": { "group": "kb", - "key": "QK_KB_6", + "key": "QK_KB_6" }, "0x7E07": { "group": "kb", - "key": "QK_KB_7", + "key": "QK_KB_7" }, "0x7E08": { "group": "kb", - "key": "QK_KB_8", + "key": "QK_KB_8" }, "0x7E09": { "group": "kb", - "key": "QK_KB_9", + "key": "QK_KB_9" }, "0x7E0A": { "group": "kb", - "key": "QK_KB_10", + "key": "QK_KB_10" }, "0x7E0B": { "group": "kb", - "key": "QK_KB_11", + "key": "QK_KB_11" }, "0x7E0C": { "group": "kb", - "key": "QK_KB_12", + "key": "QK_KB_12" }, "0x7E0D": { "group": "kb", - "key": "QK_KB_13", + "key": "QK_KB_13" }, "0x7E0E": { "group": "kb", - "key": "QK_KB_14", + "key": "QK_KB_14" }, "0x7E0F": { "group": "kb", - "key": "QK_KB_15", + "key": "QK_KB_15" }, "0x7E10": { "group": "kb", - "key": "QK_KB_16", + "key": "QK_KB_16" }, "0x7E11": { "group": "kb", - "key": "QK_KB_17", + "key": "QK_KB_17" }, "0x7E12": { "group": "kb", - "key": "QK_KB_18", + "key": "QK_KB_18" }, "0x7E13": { "group": "kb", - "key": "QK_KB_19", + "key": "QK_KB_19" }, "0x7E14": { "group": "kb", - "key": "QK_KB_20", + "key": "QK_KB_20" }, "0x7E15": { "group": "kb", - "key": "QK_KB_21", + "key": "QK_KB_21" }, "0x7E16": { "group": "kb", - "key": "QK_KB_22", + "key": "QK_KB_22" }, "0x7E17": { "group": "kb", - "key": "QK_KB_23", + "key": "QK_KB_23" }, "0x7E18": { "group": "kb", - "key": "QK_KB_24", + "key": "QK_KB_24" }, "0x7E19": { "group": "kb", - "key": "QK_KB_25", + "key": "QK_KB_25" }, "0x7E1A": { "group": "kb", - "key": "QK_KB_26", - }, + "key": "QK_KB_26" + }, "0x7E1B": { "group": "kb", - "key": "QK_KB_27", + "key": "QK_KB_27" }, "0x7E1C": { "group": "kb", - "key": "QK_KB_28", + "key": "QK_KB_28" }, "0x7E1D": { "group": "kb", - "key": "QK_KB_29", + "key": "QK_KB_29" }, "0x7E1E": { "group": "kb", - "key": "QK_KB_30", + "key": "QK_KB_30" }, "0x7E1F": { "group": "kb", - "key": "QK_KB_31", - }, + "key": "QK_KB_31" + } } } diff --git a/data/constants/keycodes/keycodes_0.0.2_midi.hjson b/data/constants/keycodes/keycodes_0.0.2_midi.hjson index c15c2dd4336..ddf79be96cd 100644 --- a/data/constants/keycodes/keycodes_0.0.2_midi.hjson +++ b/data/constants/keycodes/keycodes_0.0.2_midi.hjson @@ -86,7 +86,7 @@ "group": "midi", "key": "QK_MIDI_NOTE_G_SHARP_0", "aliases": [ - "MI_Gs" + "MI_Gs", "MI_Ab" ] }, @@ -101,7 +101,7 @@ "group": "midi", "key": "QK_MIDI_NOTE_A_SHARP_0", "aliases": [ - "MI_As" + "MI_As", "MI_Bb" ] }, diff --git a/data/constants/keycodes/keycodes_0.0.2_user.hjson b/data/constants/keycodes/keycodes_0.0.2_user.hjson index 42392dc6493..a30e8e8eed1 100644 --- a/data/constants/keycodes/keycodes_0.0.2_user.hjson +++ b/data/constants/keycodes/keycodes_0.0.2_user.hjson @@ -2,131 +2,131 @@ "keycodes": { "0x7E40": { "group": "user", - "key": "QK_USER_0", + "key": "QK_USER_0" }, "0x7E41": { "group": "user", - "key": "QK_USER_1", + "key": "QK_USER_1" }, "0x7E42": { "group": "user", - "key": "QK_USER_2", + "key": "QK_USER_2" }, "0x7E43": { "group": "user", - "key": "QK_USER_3", + "key": "QK_USER_3" }, "0x7E44": { "group": "user", - "key": "QK_USER_4", + "key": "QK_USER_4" }, "0x7E45": { "group": "user", - "key": "QK_USER_5", + "key": "QK_USER_5" }, "0x7E46": { "group": "user", - "key": "QK_USER_6", + "key": "QK_USER_6" }, "0x7E47": { "group": "user", - "key": "QK_USER_7", + "key": "QK_USER_7" }, "0x7E48": { "group": "user", - "key": "QK_USER_8", + "key": "QK_USER_8" }, "0x7E49": { "group": "user", - "key": "QK_USER_9", + "key": "QK_USER_9" }, "0x7E4A": { "group": "user", - "key": "QK_USER_10", + "key": "QK_USER_10" }, "0x7E4B": { "group": "user", - "key": "QK_USER_11", + "key": "QK_USER_11" }, "0x7E4C": { "group": "user", - "key": "QK_USER_12", + "key": "QK_USER_12" }, "0x7E4D": { "group": "user", - "key": "QK_USER_13", + "key": "QK_USER_13" }, "0x7E4E": { "group": "user", - "key": "QK_USER_14", + "key": "QK_USER_14" }, "0x7E4F": { "group": "user", - "key": "QK_USER_15", + "key": "QK_USER_15" }, "0x7E50": { "group": "user", - "key": "QK_USER_16", + "key": "QK_USER_16" }, "0x7E51": { "group": "user", - "key": "QK_USER_17", + "key": "QK_USER_17" }, "0x7E52": { "group": "user", - "key": "QK_USER_18", + "key": "QK_USER_18" }, "0x7E53": { "group": "user", - "key": "QK_USER_19", + "key": "QK_USER_19" }, "0x7E54": { "group": "user", - "key": "QK_USER_20", + "key": "QK_USER_20" }, "0x7E55": { "group": "user", - "key": "QK_USER_21", + "key": "QK_USER_21" }, "0x7E56": { "group": "user", - "key": "QK_USER_22", + "key": "QK_USER_22" }, "0x7E57": { "group": "user", - "key": "QK_USER_23", + "key": "QK_USER_23" }, "0x7E58": { "group": "user", - "key": "QK_USER_24", + "key": "QK_USER_24" }, "0x7E59": { "group": "user", - "key": "QK_USER_25", + "key": "QK_USER_25" }, "0x7E5A": { "group": "user", - "key": "QK_USER_26", - }, + "key": "QK_USER_26" + }, "0x7E5B": { "group": "user", - "key": "QK_USER_27", + "key": "QK_USER_27" }, "0x7E5C": { "group": "user", - "key": "QK_USER_28", + "key": "QK_USER_28" }, "0x7E5D": { "group": "user", - "key": "QK_USER_29", + "key": "QK_USER_29" }, "0x7E5E": { "group": "user", - "key": "QK_USER_30", + "key": "QK_USER_30" }, "0x7E5F": { "group": "user", - "key": "QK_USER_31", - }, + "key": "QK_USER_31" + } } } From 7630a80791f0518e33145df52242f95184d16023 Mon Sep 17 00:00:00 2001 From: David Hoelscher Date: Mon, 28 Oct 2024 01:29:43 -0500 Subject: [PATCH 009/365] Change default ARM hardware PWM WS2812 tick frequency to 800kHz (#24508) --- .../charybdis/3x5/blackpill/config.h | 1 - .../charybdis/3x6/blackpill/config.h | 1 - .../charybdis/4x6/blackpill/config.h | 1 - keyboards/bastardkb/scylla/blackpill/config.h | 1 - .../bastardkb/skeletyl/blackpill/config.h | 1 - .../bastardkb/tbkmini/blackpill/config.h | 1 - keyboards/handwired/macroboard/config.h | 1 - .../tractyl_manuform/5x6_right/f411/config.h | 1 - keyboards/mode/m60h/config.h | 3 +- keyboards/mode/m60h_f/config.h | 3 +- keyboards/mode/m60s/config.h | 3 +- platforms/chibios/drivers/ws2812_pwm.c | 37 ++++--------------- 12 files changed, 11 insertions(+), 43 deletions(-) diff --git a/keyboards/bastardkb/charybdis/3x5/blackpill/config.h b/keyboards/bastardkb/charybdis/3x5/blackpill/config.h index 0467a1261f4..bd1e0fe31ec 100644 --- a/keyboards/bastardkb/charybdis/3x5/blackpill/config.h +++ b/keyboards/bastardkb/charybdis/3x5/blackpill/config.h @@ -29,7 +29,6 @@ #define WS2812_EXTERNAL_PULLUP #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1 #define WS2812_PWM_DMA_CHANNEL 3 -#define WS2812_PWM_TARGET_PERIOD 800000 /* Serial configuration for split keyboard. */ #define SERIAL_USART_TX_PIN A9 diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/config.h b/keyboards/bastardkb/charybdis/3x6/blackpill/config.h index b41a1d3f574..e1365a109d9 100644 --- a/keyboards/bastardkb/charybdis/3x6/blackpill/config.h +++ b/keyboards/bastardkb/charybdis/3x6/blackpill/config.h @@ -27,7 +27,6 @@ #define WS2812_EXTERNAL_PULLUP #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1 #define WS2812_PWM_DMA_CHANNEL 3 -#define WS2812_PWM_TARGET_PERIOD 800000 /* Serial configuration for split keyboard. */ #define SERIAL_USART_TX_PIN A9 diff --git a/keyboards/bastardkb/charybdis/4x6/blackpill/config.h b/keyboards/bastardkb/charybdis/4x6/blackpill/config.h index 0467a1261f4..bd1e0fe31ec 100644 --- a/keyboards/bastardkb/charybdis/4x6/blackpill/config.h +++ b/keyboards/bastardkb/charybdis/4x6/blackpill/config.h @@ -29,7 +29,6 @@ #define WS2812_EXTERNAL_PULLUP #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1 #define WS2812_PWM_DMA_CHANNEL 3 -#define WS2812_PWM_TARGET_PERIOD 800000 /* Serial configuration for split keyboard. */ #define SERIAL_USART_TX_PIN A9 diff --git a/keyboards/bastardkb/scylla/blackpill/config.h b/keyboards/bastardkb/scylla/blackpill/config.h index 1d86b474ee9..bf7879edbee 100644 --- a/keyboards/bastardkb/scylla/blackpill/config.h +++ b/keyboards/bastardkb/scylla/blackpill/config.h @@ -29,7 +29,6 @@ #define WS2812_EXTERNAL_PULLUP #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1 #define WS2812_PWM_DMA_CHANNEL 3 -#define WS2812_PWM_TARGET_PERIOD 800000 /* Serial configuration for split keyboard. */ #define SERIAL_USART_TX_PIN A9 diff --git a/keyboards/bastardkb/skeletyl/blackpill/config.h b/keyboards/bastardkb/skeletyl/blackpill/config.h index 1d86b474ee9..bf7879edbee 100644 --- a/keyboards/bastardkb/skeletyl/blackpill/config.h +++ b/keyboards/bastardkb/skeletyl/blackpill/config.h @@ -29,7 +29,6 @@ #define WS2812_EXTERNAL_PULLUP #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1 #define WS2812_PWM_DMA_CHANNEL 3 -#define WS2812_PWM_TARGET_PERIOD 800000 /* Serial configuration for split keyboard. */ #define SERIAL_USART_TX_PIN A9 diff --git a/keyboards/bastardkb/tbkmini/blackpill/config.h b/keyboards/bastardkb/tbkmini/blackpill/config.h index 1d86b474ee9..bf7879edbee 100644 --- a/keyboards/bastardkb/tbkmini/blackpill/config.h +++ b/keyboards/bastardkb/tbkmini/blackpill/config.h @@ -29,7 +29,6 @@ #define WS2812_EXTERNAL_PULLUP #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1 #define WS2812_PWM_DMA_CHANNEL 3 -#define WS2812_PWM_TARGET_PERIOD 800000 /* Serial configuration for split keyboard. */ #define SERIAL_USART_TX_PIN A9 diff --git a/keyboards/handwired/macroboard/config.h b/keyboards/handwired/macroboard/config.h index ca12d2c7539..21171b93742 100644 --- a/keyboards/handwired/macroboard/config.h +++ b/keyboards/handwired/macroboard/config.h @@ -22,4 +22,3 @@ along with this program. If not, see . #define WS2812_PWM_PAL_MODE 2 #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM6 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. #define WS2812_PWM_DMA_CHANNEL 2 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. -#define WS2812_PWM_TARGET_PERIOD 800000 diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h index 64169da7e50..28acc1e69b7 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h @@ -28,7 +28,6 @@ along with this program. If not, see . //#define WS2812_PWM_COMPLEMENTARY_OUTPUT // Define for a complementary timer output (TIMx_CHyN); omit for a normal timer output (TIMx_CHy). #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. #define WS2812_PWM_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. -#define WS2812_PWM_TARGET_PERIOD 800000 #define DEBUG_LED_PIN C13 diff --git a/keyboards/mode/m60h/config.h b/keyboards/mode/m60h/config.h index cde4ffdbc61..e51bff8ca51 100644 --- a/keyboards/mode/m60h/config.h +++ b/keyboards/mode/m60h/config.h @@ -6,5 +6,4 @@ #define WS2812_PWM_DRIVER PWMD4 #define WS2812_PWM_CHANNEL 4 #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM6 -#define WS2812_PWM_DMA_CHANNEL 2 -#define WS2812_PWM_TARGET_PERIOD 800000 \ No newline at end of file +#define WS2812_PWM_DMA_CHANNEL 2 \ No newline at end of file diff --git a/keyboards/mode/m60h_f/config.h b/keyboards/mode/m60h_f/config.h index cde4ffdbc61..e51bff8ca51 100644 --- a/keyboards/mode/m60h_f/config.h +++ b/keyboards/mode/m60h_f/config.h @@ -6,5 +6,4 @@ #define WS2812_PWM_DRIVER PWMD4 #define WS2812_PWM_CHANNEL 4 #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM6 -#define WS2812_PWM_DMA_CHANNEL 2 -#define WS2812_PWM_TARGET_PERIOD 800000 \ No newline at end of file +#define WS2812_PWM_DMA_CHANNEL 2 \ No newline at end of file diff --git a/keyboards/mode/m60s/config.h b/keyboards/mode/m60s/config.h index cde4ffdbc61..e51bff8ca51 100644 --- a/keyboards/mode/m60s/config.h +++ b/keyboards/mode/m60s/config.h @@ -6,5 +6,4 @@ #define WS2812_PWM_DRIVER PWMD4 #define WS2812_PWM_CHANNEL 4 #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM6 -#define WS2812_PWM_DMA_CHANNEL 2 -#define WS2812_PWM_TARGET_PERIOD 800000 \ No newline at end of file +#define WS2812_PWM_DMA_CHANNEL 2 \ No newline at end of file diff --git a/platforms/chibios/drivers/ws2812_pwm.c b/platforms/chibios/drivers/ws2812_pwm.c index dc0e3091633..c46e9171ab8 100644 --- a/platforms/chibios/drivers/ws2812_pwm.c +++ b/platforms/chibios/drivers/ws2812_pwm.c @@ -79,15 +79,15 @@ # endif #endif -#ifndef WS2812_PWM_TARGET_PERIOD -//# define WS2812_PWM_TARGET_PERIOD 800000 // Original code is 800k...? -# define WS2812_PWM_TARGET_PERIOD 80000 // TODO: work out why 10x less on f303/f4x1 +// Default is 800000Hz, which has a period of 1.25us +#ifndef WS2812_PWM_FREQUENCY +# define WS2812_PWM_FREQUENCY (1000000000 / WS2812_TIMING) #endif /* --- PRIVATE CONSTANTS ---------------------------------------------------- */ -#define WS2812_PWM_FREQUENCY (CPU_CLOCK / 2) /**< Clock frequency of PWM, must be valid with respect to system clock! */ -#define WS2812_PWM_PERIOD (WS2812_PWM_FREQUENCY / WS2812_PWM_TARGET_PERIOD) /**< Clock period in ticks. 1 / 800kHz = 1.25 uS (as per datasheet) */ +#define WS2812_PWM_TICK_FREQUENCY (CPU_CLOCK / 2) /**< Clock frequency of PWM ticks, must be valid with respect to system clock! */ +#define WS2812_PWM_PERIOD (WS2812_PWM_TICK_FREQUENCY / WS2812_PWM_FREQUENCY) /**< Clock period in PWM ticks. */ /** * @brief Number of bit-periods to hold the data line low at the end of a frame @@ -102,37 +102,16 @@ /** * @brief High period for a zero, in ticks - * - * Per the datasheet: - * WS2812: - * - T0H: 200 nS to 500 nS, inclusive - * - T0L: 650 nS to 950 nS, inclusive - * WS2812B: - * - T0H: 200 nS to 500 nS, inclusive - * - T0L: 750 nS to 1050 nS, inclusive - * - * The duty cycle is calculated for a high period of 350 nS. */ -#define WS2812_DUTYCYCLE_0 (WS2812_PWM_FREQUENCY / (1000000000 / 350)) +#define WS2812_DUTYCYCLE_0 (WS2812_PWM_TICK_FREQUENCY / (1000000000 / WS2812_T0H)) #if (WS2812_DUTYCYCLE_0 > 255) # error WS2812 PWM driver: High period for a 0 is more than a byte #endif /** * @brief High period for a one, in ticks - * - * Per the datasheet: - * WS2812: - * - T1H: 550 nS to 850 nS, inclusive - * - T1L: 450 nS to 750 nS, inclusive - * WS2812B: - * - T1H: 750 nS to 1050 nS, inclusive - * - T1L: 200 nS to 500 nS, inclusive - * - * The duty cycle is calculated for a high period of 800 nS. - * This is in the middle of the specifications of the WS2812 and WS2812B. */ -#define WS2812_DUTYCYCLE_1 (WS2812_PWM_FREQUENCY / (1000000000 / 800)) +#define WS2812_DUTYCYCLE_1 (WS2812_PWM_TICK_FREQUENCY / (1000000000 / WS2812_T1H)) #if (WS2812_DUTYCYCLE_1 > 255) # error WS2812 PWM driver: High period for a 1 is more than a byte #endif @@ -322,7 +301,7 @@ void ws2812_init(void) { // PWM Configuration //#pragma GCC diagnostic ignored "-Woverride-init" // Turn off override-init warning for this struct. We use the overriding ability to set a "default" channel config static const PWMConfig ws2812_pwm_config = { - .frequency = WS2812_PWM_FREQUENCY, + .frequency = WS2812_PWM_TICK_FREQUENCY, .period = WS2812_PWM_PERIOD, // Mit dieser Periode wird UDE-Event erzeugt und ein neuer Wert (Länge WS2812_BIT_N) vom DMA ins CCR geschrieben .callback = NULL, .channels = From 7c9e650b1c8ba6b1fd2bfffa8dc64e27504e7e37 Mon Sep 17 00:00:00 2001 From: Thanh Son Tran <62438883+trnthsn@users.noreply.github.com> Date: Mon, 28 Oct 2024 13:59:54 +0700 Subject: [PATCH 010/365] [Keyboard] Add S6xty PCB (#24465) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Duncan Sutherland Co-authored-by: Trần Thanh Sơn --- keyboards/trnthsn/s6xty/config.h | 21 + keyboards/trnthsn/s6xty/halconf.h | 21 + keyboards/trnthsn/s6xty/keyboard.json | 504 ++++++++++++++++++ .../trnthsn/s6xty/keymaps/default/keymap.c | 40 ++ keyboards/trnthsn/s6xty/mcuconf.h | 22 + keyboards/trnthsn/s6xty/readme.md | 27 + 6 files changed, 635 insertions(+) create mode 100644 keyboards/trnthsn/s6xty/config.h create mode 100644 keyboards/trnthsn/s6xty/halconf.h create mode 100644 keyboards/trnthsn/s6xty/keyboard.json create mode 100644 keyboards/trnthsn/s6xty/keymaps/default/keymap.c create mode 100644 keyboards/trnthsn/s6xty/mcuconf.h create mode 100644 keyboards/trnthsn/s6xty/readme.md diff --git a/keyboards/trnthsn/s6xty/config.h b/keyboards/trnthsn/s6xty/config.h new file mode 100644 index 00000000000..cb72d64967e --- /dev/null +++ b/keyboards/trnthsn/s6xty/config.h @@ -0,0 +1,21 @@ +/* +Copyright 2024 ThanhSon.Mech + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define WS2812_SPI_DRIVER SPID2 +#define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/trnthsn/s6xty/halconf.h b/keyboards/trnthsn/s6xty/halconf.h new file mode 100644 index 00000000000..b8f0a217c4b --- /dev/null +++ b/keyboards/trnthsn/s6xty/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2024 ThanhSon.Mech + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_SPI TRUE + +#include_next diff --git a/keyboards/trnthsn/s6xty/keyboard.json b/keyboards/trnthsn/s6xty/keyboard.json new file mode 100644 index 00000000000..3ec2f87f3df --- /dev/null +++ b/keyboards/trnthsn/s6xty/keyboard.json @@ -0,0 +1,504 @@ +{ + "manufacturer": "ThanhSon.Mech", + "keyboard_name": "S6xty", + "maintainer": "trnthsn", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "B12" + }, + "matrix_pins": { + "cols": ["B14", "A0", "A10", "C15", "A2", "A1", "B11", "B10", "B1", "B0", "A7", "A6", "A5", "A4"], + "rows": ["B3", "B7", "A3", "A9", "A8"] + }, + "processor": "STM32F072", + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "led_count": 22, + "sleep": true + }, + "url": "", + "usb": { + "device_version": "0.0.1", + "pid": "0x5336", + "vid": "0x5453" + }, + "ws2812": { + "driver": "spi", + "pin": "B15" + }, + "community_layouts": ["60_ansi_tsangan", "60_ansi_tsangan_split_bs_rshift", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb"], + "layouts": { + "LAYOUT_60_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_ansi_tsangan_arrow": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.75}, + {"matrix": [3, 12], "x": 13, "y": 3}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4}, + {"matrix": [4, 11], "x": 12, "y": 4}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4} + ] + }, + "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [2, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_ansi_wkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_ansi_wkl_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [2, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_hhkb": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [2, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4} + ] + }, + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [2, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.75}, + {"matrix": [3, 12], "x": 13, "y": 3}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4}, + {"matrix": [4, 11], "x": 12, "y": 4}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4} + ] + } + } +} diff --git a/keyboards/trnthsn/s6xty/keymaps/default/keymap.c b/keyboards/trnthsn/s6xty/keymaps/default/keymap.c new file mode 100644 index 00000000000..97dba0d7491 --- /dev/null +++ b/keyboards/trnthsn/s6xty/keymaps/default/keymap.c @@ -0,0 +1,40 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + // │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Bsp│ + // ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ + // │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ + // ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + // │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + // ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤ + // │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │Shift │↑ │/ │ + // ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴──┬───┼───┼───┤ + // │Ctrl │GUI│ Alt │ │Fn │← │↓ │→ │ + // └─────┴───┴─────┴───────────────────────────┴───┴───┴───┴───┘ + + [0] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + MO(2) , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/trnthsn/s6xty/mcuconf.h b/keyboards/trnthsn/s6xty/mcuconf.h new file mode 100644 index 00000000000..3bf940e0bec --- /dev/null +++ b/keyboards/trnthsn/s6xty/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2024 ThanhSon.Mech + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE diff --git a/keyboards/trnthsn/s6xty/readme.md b/keyboards/trnthsn/s6xty/readme.md new file mode 100644 index 00000000000..eb518b7cee5 --- /dev/null +++ b/keyboards/trnthsn/s6xty/readme.md @@ -0,0 +1,27 @@ +# S6xty + +![trnthsn/s6xty](https://i.imgur.com/YJZxxqY.png) + +A 60% keyboard PCB compatible with various keyboard cases. Supports a left USB Type-C connector or 3 JST SH positions for a daughter board + +* Keyboard Maintainer: [ThanhSon.Mech](https://github.com/trnthsn) +* Hardware Supported: s6xty PCB, STM32F072 +* Hardware Availability: [ThanhSon.Mech](https://www.facebook.com/ThanhSon.mech) + +Make example for this keyboard (after setting up your build environment): + + make trnthsn/s6xty:default + +Flashing example for this keyboard: + + make trnthsn/s6xty:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 06b7dce565500e7e1cfdd0803239dff430101b8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=95=E3=82=A3=E3=83=AB=E3=82=BF=E3=83=BC=E3=83=9A?= =?UTF-8?q?=E3=83=BC=E3=83=91=E3=83=BC?= <76888457+filterpaper@users.noreply.github.com> Date: Tue, 29 Oct 2024 01:56:54 +0800 Subject: [PATCH 011/365] Refactor LED Breathing effect with runner (#24540) --- quantum/led_matrix/animations/breathing_anim.h | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/quantum/led_matrix/animations/breathing_anim.h b/quantum/led_matrix/animations/breathing_anim.h index 0bd4cb0cc38..3d1b0d95d21 100644 --- a/quantum/led_matrix/animations/breathing_anim.h +++ b/quantum/led_matrix/animations/breathing_anim.h @@ -2,17 +2,12 @@ LED_MATRIX_EFFECT(BREATHING) # ifdef LED_MATRIX_CUSTOM_EFFECT_IMPLS -bool BREATHING(effect_params_t* params) { - LED_MATRIX_USE_LIMITS(led_min, led_max); +static uint8_t BREATHING_math(uint8_t val, uint8_t i, uint8_t time) { + return scale8(abs8(sin8(time / 2) - 128) * 2, val); +} - uint8_t val = led_matrix_eeconfig.val; - uint16_t time = scale16by8(g_led_timer, led_matrix_eeconfig.speed / 8); - val = scale8(abs8(sin8(time) - 128) * 2, val); - for (uint8_t i = led_min; i < led_max; i++) { - LED_MATRIX_TEST_LED_FLAGS(); - led_matrix_set_value(i, val); - } - return led_matrix_check_finished_leds(led_max); +bool BREATHING(effect_params_t* params) { + return effect_runner_i(params, &BREATHING_math); } # endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS From 2aa186873e98e82ff4a3ebfe8c229badde8fc55f Mon Sep 17 00:00:00 2001 From: Cipulot <40441626+Cipulot@users.noreply.github.com> Date: Mon, 28 Oct 2024 20:54:05 +0100 Subject: [PATCH 012/365] Cipulot Updates (#24539) --- .../rules.mk => common/common_cipulot.mk} | 4 ++ keyboards/cipulot/common/ec_board.c | 10 ++++ keyboards/cipulot/common/ec_switch_matrix.c | 48 +++++++++++++-- keyboards/cipulot/common/ec_switch_matrix.h | 15 ++++- keyboards/cipulot/common/via_ec.c | 60 ++++++++++++++++--- keyboards/cipulot/ec_23u/post_rules.mk | 4 +- keyboards/cipulot/ec_23u/rules.mk | 4 -- keyboards/cipulot/ec_60/config.h | 2 + keyboards/cipulot/ec_60/post_rules.mk | 4 +- keyboards/cipulot/ec_60/rules.mk | 4 -- keyboards/cipulot/ec_60x/config.h | 2 + keyboards/cipulot/ec_60x/post_rules.mk | 4 +- keyboards/cipulot/ec_60x/rules.mk | 4 -- keyboards/cipulot/ec_660c/config.h | 2 + keyboards/cipulot/ec_660c/post_rules.mk | 4 +- keyboards/cipulot/ec_660c/rules.mk | 4 -- keyboards/cipulot/ec_980c/config.h | 2 + keyboards/cipulot/ec_980c/ec_980c.c | 2 + keyboards/cipulot/ec_980c/ec_switch_matrix.c | 49 ++++++++++++--- keyboards/cipulot/ec_980c/ec_switch_matrix.h | 10 +++- keyboards/cipulot/ec_alveus/1_0_0/config.h | 2 + .../cipulot/ec_alveus/1_0_0/post_rules.mk | 4 +- keyboards/cipulot/ec_alveus/1_0_0/rules.mk | 4 -- keyboards/cipulot/ec_alveus/1_2_0/config.h | 2 + .../cipulot/ec_alveus/1_2_0/post_rules.mk | 4 +- keyboards/cipulot/ec_alveus/1_2_0/rules.mk | 4 -- keyboards/cipulot/ec_dolice/config.h | 2 + keyboards/cipulot/ec_dolice/post_rules.mk | 4 +- keyboards/cipulot/ec_dolice/rules.mk | 4 -- keyboards/cipulot/ec_menhir/config.h | 2 + keyboards/cipulot/ec_menhir/post_rules.mk | 4 +- keyboards/cipulot/ec_pro2/config.h | 2 + keyboards/cipulot/ec_pro2/post_rules.mk | 4 +- keyboards/cipulot/ec_pro2/rules.mk | 4 -- keyboards/cipulot/ec_prox/ansi_iso/config.h | 2 + .../cipulot/ec_prox/ansi_iso/post_rules.mk | 4 +- keyboards/cipulot/ec_prox/ansi_iso/rules.mk | 4 -- keyboards/cipulot/ec_prox/jis/config.h | 2 + keyboards/cipulot/ec_prox/jis/post_rules.mk | 4 +- keyboards/cipulot/ec_prox/jis/rules.mk | 4 -- keyboards/cipulot/ec_theca/config.h | 2 + keyboards/cipulot/ec_theca/post_rules.mk | 4 +- keyboards/cipulot/ec_theca/rules.mk | 4 -- keyboards/cipulot/ec_tkl/config.h | 2 + keyboards/cipulot/ec_tkl/post_rules.mk | 4 +- keyboards/cipulot/ec_tkl/rules.mk | 4 -- keyboards/cipulot/ec_typeb/config.h | 2 + keyboards/cipulot/ec_typeb/post_rules.mk | 4 +- keyboards/cipulot/ec_typeb/rules.mk | 4 -- keyboards/cipulot/ec_typek/config.h | 2 + keyboards/cipulot/ec_typek/ec_switch_matrix.c | 49 ++++++++++++--- keyboards/cipulot/ec_typek/ec_switch_matrix.h | 24 +++++--- keyboards/cipulot/ec_typek/ec_typek.c | 4 +- keyboards/cipulot/ec_vero/config.h | 2 + keyboards/cipulot/ec_vero/post_rules.mk | 4 +- keyboards/cipulot/ec_vero/rules.mk | 4 -- keyboards/cipulot/ec_virgo/config.h | 2 + keyboards/cipulot/ec_virgo/post_rules.mk | 4 +- keyboards/cipulot/ec_virgo/rules.mk | 4 -- keyboards/cipulot/mnk_60_ec/config.h | 2 + keyboards/cipulot/mnk_60_ec/post_rules.mk | 4 +- keyboards/cipulot/mnk_60_ec/rules.mk | 4 -- keyboards/cipulot/mnk_65_ec/config.h | 2 + keyboards/cipulot/mnk_65_ec/post_rules.mk | 4 +- keyboards/cipulot/mnk_65_ec/rules.mk | 4 -- keyboards/cipulot/rf_r1_8_9xu/config.h | 2 + keyboards/cipulot/rf_r1_8_9xu/post_rules.mk | 4 +- keyboards/cipulot/rf_r1_8_9xu/rules.mk | 4 -- 68 files changed, 292 insertions(+), 171 deletions(-) rename keyboards/cipulot/{ec_menhir/rules.mk => common/common_cipulot.mk} (67%) diff --git a/keyboards/cipulot/ec_menhir/rules.mk b/keyboards/cipulot/common/common_cipulot.mk similarity index 67% rename from keyboards/cipulot/ec_menhir/rules.mk rename to keyboards/cipulot/common/common_cipulot.mk index e7d73cefc98..a1bbedab188 100644 --- a/keyboards/cipulot/ec_menhir/rules.mk +++ b/keyboards/cipulot/common/common_cipulot.mk @@ -2,3 +2,7 @@ CUSTOM_MATRIX = lite ANALOG_DRIVER_REQUIRED = yes VPATH += keyboards/cipulot/common SRC += matrix.c ec_board.c ec_switch_matrix.c + +ifeq ($(strip $(VIA_ENABLE)), yes) + SRC += via_ec.c +endif diff --git a/keyboards/cipulot/common/ec_board.c b/keyboards/cipulot/common/ec_board.c index d9ba1975893..0ccb9f6d3c3 100644 --- a/keyboards/cipulot/common/ec_board.c +++ b/keyboards/cipulot/common/ec_board.c @@ -17,6 +17,10 @@ #include "ec_switch_matrix.h" #include "keyboard.h" +#ifdef SPLIT_KEYBOARD +# include "transactions.h" +#endif + void eeconfig_init_kb(void) { // Default values eeprom_ec_config.actuation_mode = DEFAULT_ACTUATION_MODE; @@ -57,8 +61,14 @@ void keyboard_post_init_kb(void) { ec_config.rescaled_mode_0_actuation_threshold[row][col] = rescale(ec_config.mode_0_actuation_threshold, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); ec_config.rescaled_mode_0_release_threshold[row][col] = rescale(ec_config.mode_0_release_threshold, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); ec_config.rescaled_mode_1_initial_deadzone_offset[row][col] = rescale(ec_config.mode_1_initial_deadzone_offset, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); + ec_config.rescaled_mode_1_actuation_offset[row][col] = rescale(ec_config.mode_1_actuation_offset, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); + ec_config.rescaled_mode_1_release_offset[row][col] = rescale(ec_config.mode_1_release_offset, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); } } +#ifdef SPLIT_KEYBOARD + transaction_register_rpc(RPC_ID_VIA_CMD, via_cmd_slave_handler); +#endif + keyboard_post_init_user(); } diff --git a/keyboards/cipulot/common/ec_switch_matrix.c b/keyboards/cipulot/common/ec_switch_matrix.c index 33123bd236e..25c745703b4 100644 --- a/keyboards/cipulot/common/ec_switch_matrix.c +++ b/keyboards/cipulot/common/ec_switch_matrix.c @@ -37,8 +37,14 @@ const pin_t amux_en_pins[] = AMUX_EN_PINS; const pin_t amux_n_col_sizes[] = AMUX_COL_CHANNELS_SIZES; const pin_t amux_n_col_channels[][AMUX_MAX_COLS_COUNT] = {AMUX_COL_CHANNELS}; +#ifdef UNUSED_POSITIONS_LIST +const uint8_t UNUSED_POSITIONS[][2] = UNUSED_POSITIONS_LIST; +# define UNUSED_POSITIONS_COUNT ARRAY_SIZE(UNUSED_POSITIONS) +#endif + #define AMUX_SEL_PINS_COUNT ARRAY_SIZE(amux_sel_pins) #define EXPECTED_AMUX_SEL_PINS_COUNT ceil(log2(AMUX_MAX_COLS_COUNT) + // Checks for the correctness of the configuration _Static_assert(ARRAY_SIZE(amux_en_pins) == AMUX_COUNT, "AMUX_EN_PINS doesn't have the minimum number of bits required to enable all the multiplexers available"); // Check that number of select pins is enough to select all the channels @@ -70,6 +76,16 @@ void init_amux(void) { } } +// Disable all the unused rows +void disable_unused_row(uint8_t row) { + // disable all the other rows apart from the current selected one + for (uint8_t idx = 0; idx < MATRIX_ROWS; idx++) { + if (idx != row) { + gpio_write_pin_low(row_pins[idx]); + } + } +} + // Select the multiplexer channel of the specified multiplexer void select_amux_channel(uint8_t channel, uint8_t col) { // Get the channel for the specified multiplexer @@ -158,6 +174,10 @@ void ec_noise_floor(void) { sum += amux_n_col_sizes[i]; uint8_t adjusted_col = col + sum; for (uint8_t row = 0; row < MATRIX_ROWS; row++) { +#ifdef UNUSED_POSITIONS_LIST + if (is_unused_position(row, adjusted_col)) continue; +#endif + disable_unused_row(row); ec_config.noise_floor[row][adjusted_col] += ec_readkey_raw(amux, row, col); } } @@ -180,11 +200,15 @@ bool ec_matrix_scan(matrix_row_t current_matrix[]) { for (uint8_t amux = 0; amux < AMUX_COUNT; amux++) { disable_unused_amux(amux); for (uint8_t col = 0; col < amux_n_col_sizes[amux]; col++) { + uint8_t sum = 0; + for (uint8_t i = 0; i < (amux > 0 ? amux : 0); i++) + sum += amux_n_col_sizes[i]; + uint8_t adjusted_col = col + sum; for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - uint8_t sum = 0; - for (uint8_t i = 0; i < (amux > 0 ? amux : 0); i++) - sum += amux_n_col_sizes[i]; - uint8_t adjusted_col = col + sum; +#ifdef UNUSED_POSITIONS_LIST + if (is_unused_position(row, adjusted_col)) continue; +#endif + disable_unused_row(row); sw_value[row][adjusted_col] = ec_readkey_raw(amux, row, col); if (ec_config.bottoming_calibration) { @@ -266,7 +290,7 @@ bool ec_update_key(matrix_row_t* current_row, uint8_t row, uint8_t col, uint16_t uprintf("Key pressed: %d, %d, %d\n", row, col, sw_value); } // Has key moved up enough to be released? - else if (sw_value < ec_config.extremum[row][col] - ec_config.mode_1_release_offset) { + else if (sw_value < ec_config.extremum[row][col] - ec_config.rescaled_mode_1_release_offset[row][col]) { ec_config.extremum[row][col] = sw_value; *current_row &= ~(1 << col); uprintf("Key released: %d, %d, %d\n", row, col, sw_value); @@ -280,7 +304,7 @@ bool ec_update_key(matrix_row_t* current_row, uint8_t row, uint8_t col, uint16_t ec_config.extremum[row][col] = sw_value; } // Has key moved down enough to be pressed? - else if (sw_value > ec_config.extremum[row][col] + ec_config.mode_1_actuation_offset) { + else if (sw_value > ec_config.extremum[row][col] + ec_config.rescaled_mode_1_actuation_offset[row][col]) { ec_config.extremum[row][col] = sw_value; *current_row |= (1 << col); uprintf("Key pressed: %d, %d, %d\n", row, col, sw_value); @@ -312,6 +336,18 @@ void ec_print_matrix(void) { print("\n"); } +// Check if the position is unused +#ifdef UNUSED_POSITIONS_LIST +bool is_unused_position(uint8_t row, uint8_t col) { + for (uint8_t i = 0; i < UNUSED_POSITIONS_COUNT; i++) { + if (UNUSED_POSITIONS[i][0] == row && UNUSED_POSITIONS[i][1] == col) { + return true; + } + } + return false; +} +#endif + // Rescale the value to a different range uint16_t rescale(uint16_t x, uint16_t in_min, uint16_t in_max, uint16_t out_min, uint16_t out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; diff --git a/keyboards/cipulot/common/ec_switch_matrix.h b/keyboards/cipulot/common/ec_switch_matrix.h index 4b424911da8..8fbca372bf6 100644 --- a/keyboards/cipulot/common/ec_switch_matrix.h +++ b/keyboards/cipulot/common/ec_switch_matrix.h @@ -37,11 +37,13 @@ typedef struct { uint16_t mode_0_actuation_threshold; // threshold for key press in mode 0 uint16_t mode_0_release_threshold; // threshold for key release in mode 0 uint16_t mode_1_initial_deadzone_offset; // threshold for key press in mode 1 (initial deadzone) + uint8_t mode_1_actuation_offset; // offset for key press in mode 1 (1-255) + uint8_t mode_1_release_offset; // offset for key release in mode 1 (1-255) uint16_t rescaled_mode_0_actuation_threshold[MATRIX_ROWS][MATRIX_COLS]; // threshold for key press in mode 0 rescaled to actual scale uint16_t rescaled_mode_0_release_threshold[MATRIX_ROWS][MATRIX_COLS]; // threshold for key release in mode 0 rescaled to actual scale uint16_t rescaled_mode_1_initial_deadzone_offset[MATRIX_ROWS][MATRIX_COLS]; // threshold for key press in mode 1 (initial deadzone) rescaled to actual scale - uint8_t mode_1_actuation_offset; // offset for key press in mode 1 (1-255) - uint8_t mode_1_release_offset; // offset for key release in mode 1 (1-255) + uint8_t rescaled_mode_1_actuation_offset[MATRIX_ROWS][MATRIX_COLS]; // offset for key press in mode 1 rescaled to actual scale + uint8_t rescaled_mode_1_release_offset[MATRIX_ROWS][MATRIX_COLS]; // offset for key release in mode 1 rescaled to actual scale uint16_t extremum[MATRIX_ROWS][MATRIX_COLS]; // extremum values for mode 1 uint16_t noise_floor[MATRIX_ROWS][MATRIX_COLS]; // noise floor detected during startup bool bottoming_calibration; // calibration mode for bottoming out values (true: calibration mode, false: normal mode) @@ -58,6 +60,7 @@ extern ec_config_t ec_config; void init_row(void); void init_amux(void); +void disable_unused_row(uint8_t row); void select_amux_channel(uint8_t channel, uint8_t col); void disable_unused_amux(uint8_t channel); void discharge_capacitor(void); @@ -71,3 +74,11 @@ bool ec_update_key(matrix_row_t* current_row, uint8_t row, uint8_t col, uint void ec_print_matrix(void); uint16_t rescale(uint16_t x, uint16_t in_min, uint16_t in_max, uint16_t out_min, uint16_t out_max); + +#ifdef UNUSED_POSITIONS_LIST +bool is_unused_position(uint8_t row, uint8_t col); +#endif + +#ifdef SPLIT_KEYBOARD +void via_cmd_slave_handler(uint8_t m2s_size, const void* m2s_buffer, uint8_t s2m_size, void* s2m_buffer); +#endif diff --git a/keyboards/cipulot/common/via_ec.c b/keyboards/cipulot/common/via_ec.c index ce4e813f759..ed34a579b22 100644 --- a/keyboards/cipulot/common/via_ec.c +++ b/keyboards/cipulot/common/via_ec.c @@ -19,6 +19,10 @@ #include "print.h" #include "via.h" +#ifdef SPLIT_KEYBOARD +# include "transactions.h" +#endif + #ifdef VIA_ENABLE void ec_rescale_values(uint8_t item); @@ -50,6 +54,12 @@ void via_config_set_value(uint8_t *data) { uint8_t *value_id = &(data[0]); uint8_t *value_data = &(data[1]); +# ifdef SPLIT_KEYBOARD + if (is_keyboard_master()) { + transaction_rpc_send(RPC_ID_VIA_CMD, 30, data); + } +# endif + switch (*value_id) { case id_actuation_mode: { eeprom_ec_config.actuation_mode = value_data[0]; @@ -115,6 +125,8 @@ void via_config_set_value(uint8_t *data) { ec_rescale_values(0); ec_rescale_values(1); ec_rescale_values(2); + ec_rescale_values(3); + ec_rescale_values(4); uprintf("#############################\n"); uprintf("# Noise floor data acquired #\n"); uprintf("#############################\n"); @@ -124,13 +136,14 @@ void via_config_set_value(uint8_t *data) { case id_show_calibration_data: { if (value_data[0] == 0) { ec_show_calibration_data(); - break; } + break; } case id_clear_bottoming_calibration_data: { if (value_data[0] == 0) { ec_clear_bottoming_calibration_data(); } + break; } default: { // Unhandled value. @@ -240,6 +253,22 @@ void ec_rescale_values(uint8_t item) { } } break; + // Rescale the Rapid Trigger mode actuation offsets + case 3: + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + for (uint8_t col = 0; col < MATRIX_COLS; col++) { + ec_config.rescaled_mode_1_actuation_offset[row][col] = rescale(ec_config.mode_1_actuation_offset, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); + } + } + break; + // Rescale the Rapid Trigger mode release offsets + case 4: + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + for (uint8_t col = 0; col < MATRIX_COLS; col++) { + ec_config.rescaled_mode_1_release_offset[row][col] = rescale(ec_config.mode_1_release_offset, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); + } + } + break; default: // Unhandled item. @@ -258,9 +287,11 @@ void ec_save_threshold_data(uint8_t option) { // Save Rapid Trigger mode thresholds and rescale them for runtime usage else if (option == 1) { eeprom_ec_config.mode_1_initial_deadzone_offset = ec_config.mode_1_initial_deadzone_offset; - eeprom_ec_config.mode_1_actuation_offset = ec_config.mode_1_actuation_offset; - eeprom_ec_config.mode_1_release_offset = ec_config.mode_1_release_offset; + eeprom_ec_config.mode_1_actuation_offset = ec_config.mode_1_actuation_offset; + eeprom_ec_config.mode_1_release_offset = ec_config.mode_1_release_offset; ec_rescale_values(2); + ec_rescale_values(3); + ec_rescale_values(4); } eeconfig_update_kb_datablock(&eeprom_ec_config); uprintf("####################################\n"); @@ -272,11 +303,12 @@ void ec_save_threshold_data(uint8_t option) { void ec_save_bottoming_reading(void) { for (uint8_t row = 0; row < MATRIX_ROWS; row++) { for (uint8_t col = 0; col < MATRIX_COLS; col++) { - // If the bottom reading doesn't go over the noise floor by BOTTOMING_CALIBRATION_THRESHOLD, it is likely that: - // 1. The key is not actually in the matrix - // 2. The key is on an alternative layout, therefore not being pressed - // 3. The key in in the current layout but not being pressed - if (ec_config.bottoming_reading[row][col] < (ec_config.noise_floor[row][col] + BOTTOMING_CALIBRATION_THRESHOLD)) { + // If the calibration starter flag is still set on the key, it indicates that the key was skipped during the scan because it is not physically present. + // If the flag is not set, it means a bottoming reading was taken. If this reading doesn't exceed the noise floor by the BOTTOMING_CALIBRATION_THRESHOLD, it likely indicates one of the following: + // 1. The key is part of an alternative layout and is not being pressed. + // 2. The key is in the current layout but is not being pressed. + // In both conditions we should set the bottoming reading to the maximum value to avoid false positives. + if (ec_config.bottoming_calibration_starter[row][col] || ec_config.bottoming_reading[row][col] < (ec_config.noise_floor[row][col] + BOTTOMING_CALIBRATION_THRESHOLD)) { eeprom_ec_config.bottoming_reading[row][col] = 1023; } else { eeprom_ec_config.bottoming_reading[row][col] = ec_config.bottoming_reading[row][col]; @@ -287,6 +319,8 @@ void ec_save_bottoming_reading(void) { ec_rescale_values(0); ec_rescale_values(1); ec_rescale_values(2); + ec_rescale_values(3); + ec_rescale_values(4); eeconfig_update_kb_datablock(&eeprom_ec_config); } @@ -360,4 +394,14 @@ void ec_clear_bottoming_calibration_data(void) { uprintf("######################################\n"); } +# ifdef SPLIT_KEYBOARD +void via_cmd_slave_handler(uint8_t m2s_size, const void *m2s_buffer, uint8_t s2m_size, void *s2m_buffer) { + if (m2s_size == (RAW_EPSIZE-2)) { + via_config_set_value((uint8_t *)m2s_buffer); + } else { + uprintf("Unexpected response in slave handler\n"); + } +} +# endif + #endif // VIA_ENABLE diff --git a/keyboards/cipulot/ec_23u/post_rules.mk b/keyboards/cipulot/ec_23u/post_rules.mk index d726a112a8c..5dba48cc5fd 100644 --- a/keyboards/cipulot/ec_23u/post_rules.mk +++ b/keyboards/cipulot/ec_23u/post_rules.mk @@ -1,3 +1 @@ -ifeq ($(strip $(VIA_ENABLE)), yes) - SRC += keyboards/cipulot/common/via_ec.c -endif +include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/ec_23u/rules.mk b/keyboards/cipulot/ec_23u/rules.mk index 318e0215ce9..3aa0e2bf061 100644 --- a/keyboards/cipulot/ec_23u/rules.mk +++ b/keyboards/cipulot/ec_23u/rules.mk @@ -1,5 +1 @@ -CUSTOM_MATRIX = lite -ANALOG_DRIVER_REQUIRED = yes -VPATH += keyboards/cipulot/common -SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 2 diff --git a/keyboards/cipulot/ec_60/config.h b/keyboards/cipulot/ec_60/config.h index 24525501439..a409df2dfc5 100644 --- a/keyboards/cipulot/ec_60/config.h +++ b/keyboards/cipulot/ec_60/config.h @@ -19,6 +19,8 @@ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 +#define UNUSED_POSITIONS_LIST { {1, 14}, {2, 14}, {4, 3}, {4, 8} } + #define MATRIX_ROW_PINS \ { B15, A8, B0, A7, B1 } diff --git a/keyboards/cipulot/ec_60/post_rules.mk b/keyboards/cipulot/ec_60/post_rules.mk index d726a112a8c..5dba48cc5fd 100644 --- a/keyboards/cipulot/ec_60/post_rules.mk +++ b/keyboards/cipulot/ec_60/post_rules.mk @@ -1,3 +1 @@ -ifeq ($(strip $(VIA_ENABLE)), yes) - SRC += keyboards/cipulot/common/via_ec.c -endif +include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/ec_60/rules.mk b/keyboards/cipulot/ec_60/rules.mk index ce525670a68..1716098b3e1 100644 --- a/keyboards/cipulot/ec_60/rules.mk +++ b/keyboards/cipulot/ec_60/rules.mk @@ -1,5 +1 @@ -CUSTOM_MATRIX = lite -ANALOG_DRIVER_REQUIRED = yes -VPATH += keyboards/cipulot/common -SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 3 diff --git a/keyboards/cipulot/ec_60x/config.h b/keyboards/cipulot/ec_60x/config.h index 1a8d105d680..1784076d21c 100644 --- a/keyboards/cipulot/ec_60x/config.h +++ b/keyboards/cipulot/ec_60x/config.h @@ -19,6 +19,8 @@ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 +#define UNUSED_POSITIONS_LIST { {2, 14}, {4, 3}, {4, 5}, {4, 7}, {4, 9}, {4, 14} } + #define MATRIX_ROW_PINS \ { A8, A15, B12, B8, B9} diff --git a/keyboards/cipulot/ec_60x/post_rules.mk b/keyboards/cipulot/ec_60x/post_rules.mk index d726a112a8c..5dba48cc5fd 100644 --- a/keyboards/cipulot/ec_60x/post_rules.mk +++ b/keyboards/cipulot/ec_60x/post_rules.mk @@ -1,3 +1 @@ -ifeq ($(strip $(VIA_ENABLE)), yes) - SRC += keyboards/cipulot/common/via_ec.c -endif +include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/ec_60x/rules.mk b/keyboards/cipulot/ec_60x/rules.mk index 318e0215ce9..3aa0e2bf061 100644 --- a/keyboards/cipulot/ec_60x/rules.mk +++ b/keyboards/cipulot/ec_60x/rules.mk @@ -1,5 +1 @@ -CUSTOM_MATRIX = lite -ANALOG_DRIVER_REQUIRED = yes -VPATH += keyboards/cipulot/common -SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 2 diff --git a/keyboards/cipulot/ec_660c/config.h b/keyboards/cipulot/ec_660c/config.h index 9e883c40da2..16b2ade719d 100644 --- a/keyboards/cipulot/ec_660c/config.h +++ b/keyboards/cipulot/ec_660c/config.h @@ -19,6 +19,8 @@ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 +#define UNUSED_POSITIONS_LIST { {3, 14}, {4, 3}, {4, 4}, {4, 5}, {4, 7}, {4, 8} } + #define MATRIX_ROW_PINS \ { B1, B10, B0, A1, A0 } diff --git a/keyboards/cipulot/ec_660c/post_rules.mk b/keyboards/cipulot/ec_660c/post_rules.mk index d726a112a8c..5dba48cc5fd 100644 --- a/keyboards/cipulot/ec_660c/post_rules.mk +++ b/keyboards/cipulot/ec_660c/post_rules.mk @@ -1,3 +1 @@ -ifeq ($(strip $(VIA_ENABLE)), yes) - SRC += keyboards/cipulot/common/via_ec.c -endif +include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/ec_660c/rules.mk b/keyboards/cipulot/ec_660c/rules.mk index ce525670a68..1716098b3e1 100644 --- a/keyboards/cipulot/ec_660c/rules.mk +++ b/keyboards/cipulot/ec_660c/rules.mk @@ -1,5 +1 @@ -CUSTOM_MATRIX = lite -ANALOG_DRIVER_REQUIRED = yes -VPATH += keyboards/cipulot/common -SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 3 diff --git a/keyboards/cipulot/ec_980c/config.h b/keyboards/cipulot/ec_980c/config.h index e3723822e33..bd8afcb687d 100644 --- a/keyboards/cipulot/ec_980c/config.h +++ b/keyboards/cipulot/ec_980c/config.h @@ -19,6 +19,8 @@ #define MATRIX_ROWS 6 #define MATRIX_COLS 19 +#define UNUSED_POSITIONS_LIST { {0, 1}, {0, 10}, {3, 14}, {4, 13}, {5, 4}, {5, 7}, {5, 12} } + #define MATRIX_ROW_PINS \ { B13, B12, B14, A9, B6, B7 } diff --git a/keyboards/cipulot/ec_980c/ec_980c.c b/keyboards/cipulot/ec_980c/ec_980c.c index 49b52487451..eaa636ede6a 100644 --- a/keyboards/cipulot/ec_980c/ec_980c.c +++ b/keyboards/cipulot/ec_980c/ec_980c.c @@ -69,6 +69,8 @@ void keyboard_post_init_kb(void) { ec_config.rescaled_mode_0_actuation_threshold[row][col] = rescale(ec_config.mode_0_actuation_threshold, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); ec_config.rescaled_mode_0_release_threshold[row][col] = rescale(ec_config.mode_0_release_threshold, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); ec_config.rescaled_mode_1_initial_deadzone_offset[row][col] = rescale(ec_config.mode_1_initial_deadzone_offset, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); + ec_config.rescaled_mode_1_actuation_offset[row][col] = rescale(ec_config.mode_1_actuation_offset, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); + ec_config.rescaled_mode_1_release_offset[row][col] = rescale(ec_config.mode_1_release_offset, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); } } diff --git a/keyboards/cipulot/ec_980c/ec_switch_matrix.c b/keyboards/cipulot/ec_980c/ec_switch_matrix.c index 33123bd236e..00a0b632fbc 100644 --- a/keyboards/cipulot/ec_980c/ec_switch_matrix.c +++ b/keyboards/cipulot/ec_980c/ec_switch_matrix.c @@ -37,6 +37,11 @@ const pin_t amux_en_pins[] = AMUX_EN_PINS; const pin_t amux_n_col_sizes[] = AMUX_COL_CHANNELS_SIZES; const pin_t amux_n_col_channels[][AMUX_MAX_COLS_COUNT] = {AMUX_COL_CHANNELS}; +#ifdef UNUSED_POSITIONS_LIST +const uint8_t UNUSED_POSITIONS[][2] = UNUSED_POSITIONS_LIST; +# define UNUSED_POSITIONS_COUNT (sizeof(UNUSED_POSITIONS) / sizeof(UNUSED_POSITIONS[0])) +#endif + #define AMUX_SEL_PINS_COUNT ARRAY_SIZE(amux_sel_pins) #define EXPECTED_AMUX_SEL_PINS_COUNT ceil(log2(AMUX_MAX_COLS_COUNT) // Checks for the correctness of the configuration @@ -70,6 +75,16 @@ void init_amux(void) { } } +// Disable all the unused rows +void disable_unused_row(uint8_t row) { + // disable all the other rows apart from the current selected one + for (uint8_t idx = 0; idx < MATRIX_ROWS; idx++) { + if (idx != row) { + gpio_write_pin_low(row_pins[idx]); + } + } +} + // Select the multiplexer channel of the specified multiplexer void select_amux_channel(uint8_t channel, uint8_t col) { // Get the channel for the specified multiplexer @@ -158,6 +173,10 @@ void ec_noise_floor(void) { sum += amux_n_col_sizes[i]; uint8_t adjusted_col = col + sum; for (uint8_t row = 0; row < MATRIX_ROWS; row++) { +#ifdef UNUSED_POSITIONS_LIST + if (is_unused_position(row, adjusted_col)) continue; +#endif + disable_unused_row(row); ec_config.noise_floor[row][adjusted_col] += ec_readkey_raw(amux, row, col); } } @@ -180,11 +199,15 @@ bool ec_matrix_scan(matrix_row_t current_matrix[]) { for (uint8_t amux = 0; amux < AMUX_COUNT; amux++) { disable_unused_amux(amux); for (uint8_t col = 0; col < amux_n_col_sizes[amux]; col++) { + uint8_t sum = 0; + for (uint8_t i = 0; i < (amux > 0 ? amux : 0); i++) + sum += amux_n_col_sizes[i]; + uint8_t adjusted_col = col + sum; for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - uint8_t sum = 0; - for (uint8_t i = 0; i < (amux > 0 ? amux : 0); i++) - sum += amux_n_col_sizes[i]; - uint8_t adjusted_col = col + sum; +#ifdef UNUSED_POSITIONS_LIST + if (is_unused_position(row, adjusted_col)) continue; +#endif + disable_unused_row(row); sw_value[row][adjusted_col] = ec_readkey_raw(amux, row, col); if (ec_config.bottoming_calibration) { @@ -229,7 +252,7 @@ uint16_t ec_readkey_raw(uint8_t channel, uint8_t row, uint8_t col) { } // Update press/release state of key -bool ec_update_key(matrix_row_t* current_row, uint8_t row, uint8_t col, uint16_t sw_value) { +bool ec_update_key(matrix_row_t *current_row, uint8_t row, uint8_t col, uint16_t sw_value) { bool current_state = (*current_row >> col) & 1; // Real Time Noise Floor Calibration @@ -266,7 +289,7 @@ bool ec_update_key(matrix_row_t* current_row, uint8_t row, uint8_t col, uint16_t uprintf("Key pressed: %d, %d, %d\n", row, col, sw_value); } // Has key moved up enough to be released? - else if (sw_value < ec_config.extremum[row][col] - ec_config.mode_1_release_offset) { + else if (sw_value < ec_config.extremum[row][col] - ec_config.rescaled_mode_1_release_offset[row][col]) { ec_config.extremum[row][col] = sw_value; *current_row &= ~(1 << col); uprintf("Key released: %d, %d, %d\n", row, col, sw_value); @@ -280,7 +303,7 @@ bool ec_update_key(matrix_row_t* current_row, uint8_t row, uint8_t col, uint16_t ec_config.extremum[row][col] = sw_value; } // Has key moved down enough to be pressed? - else if (sw_value > ec_config.extremum[row][col] + ec_config.mode_1_actuation_offset) { + else if (sw_value > ec_config.extremum[row][col] + ec_config.rescaled_mode_1_actuation_offset[row][col]) { ec_config.extremum[row][col] = sw_value; *current_row |= (1 << col); uprintf("Key pressed: %d, %d, %d\n", row, col, sw_value); @@ -312,6 +335,18 @@ void ec_print_matrix(void) { print("\n"); } +// Check if the position is unused +#ifdef UNUSED_POSITIONS_LIST +bool is_unused_position(uint8_t row, uint8_t col) { + for (uint8_t i = 0; i < UNUSED_POSITIONS_COUNT; i++) { + if (UNUSED_POSITIONS[i][0] == row && UNUSED_POSITIONS[i][1] == col) { + return true; + } + } + return false; +} +#endif + // Rescale the value to a different range uint16_t rescale(uint16_t x, uint16_t in_min, uint16_t in_max, uint16_t out_min, uint16_t out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; diff --git a/keyboards/cipulot/ec_980c/ec_switch_matrix.h b/keyboards/cipulot/ec_980c/ec_switch_matrix.h index 8a75b5de5fb..a89f8970ab1 100644 --- a/keyboards/cipulot/ec_980c/ec_switch_matrix.h +++ b/keyboards/cipulot/ec_980c/ec_switch_matrix.h @@ -47,11 +47,13 @@ typedef struct { uint16_t mode_0_actuation_threshold; // threshold for key press in mode 0 uint16_t mode_0_release_threshold; // threshold for key release in mode 0 uint16_t mode_1_initial_deadzone_offset; // threshold for key press in mode 1 (initial deadzone) + uint8_t mode_1_actuation_offset; // offset for key press in mode 1 (1-255) + uint8_t mode_1_release_offset; // offset for key release in mode 1 (1-255) uint16_t rescaled_mode_0_actuation_threshold[MATRIX_ROWS][MATRIX_COLS]; // threshold for key press in mode 0 rescaled to actual scale uint16_t rescaled_mode_0_release_threshold[MATRIX_ROWS][MATRIX_COLS]; // threshold for key release in mode 0 rescaled to actual scale uint16_t rescaled_mode_1_initial_deadzone_offset[MATRIX_ROWS][MATRIX_COLS]; // threshold for key press in mode 1 (initial deadzone) rescaled to actual scale - uint8_t mode_1_actuation_offset; // offset for key press in mode 1 (1-255) - uint8_t mode_1_release_offset; // offset for key release in mode 1 (1-255) + uint8_t rescaled_mode_1_actuation_offset[MATRIX_ROWS][MATRIX_COLS]; // offset for key press in mode 1 rescaled to actual scale + uint8_t rescaled_mode_1_release_offset[MATRIX_ROWS][MATRIX_COLS]; // offset for key release in mode 1 rescaled to actual scale uint16_t extremum[MATRIX_ROWS][MATRIX_COLS]; // extremum values for mode 1 uint16_t noise_floor[MATRIX_ROWS][MATRIX_COLS]; // noise floor detected during startup bool bottoming_calibration; // calibration mode for bottoming out values (true: calibration mode, false: normal mode) @@ -81,3 +83,7 @@ bool ec_update_key(matrix_row_t* current_row, uint8_t row, uint8_t col, uint void ec_print_matrix(void); uint16_t rescale(uint16_t x, uint16_t in_min, uint16_t in_max, uint16_t out_min, uint16_t out_max); + +#ifdef UNUSED_POSITIONS_LIST +bool is_unused_position(uint8_t row, uint8_t col); +#endif diff --git a/keyboards/cipulot/ec_alveus/1_0_0/config.h b/keyboards/cipulot/ec_alveus/1_0_0/config.h index ab51289c023..995ede408bd 100644 --- a/keyboards/cipulot/ec_alveus/1_0_0/config.h +++ b/keyboards/cipulot/ec_alveus/1_0_0/config.h @@ -19,6 +19,8 @@ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 +#define UNUSED_POSITIONS_LIST { {2, 12}, {3, 11}, {3, 12}, {4, 3}, {4, 4}, {4, 6}, {4, 7}, {4, 8}, {4, 9}, {4, 10} } + #define MATRIX_ROW_PINS \ { A14, B3, A15, B5, B4 } diff --git a/keyboards/cipulot/ec_alveus/1_0_0/post_rules.mk b/keyboards/cipulot/ec_alveus/1_0_0/post_rules.mk index d726a112a8c..5dba48cc5fd 100644 --- a/keyboards/cipulot/ec_alveus/1_0_0/post_rules.mk +++ b/keyboards/cipulot/ec_alveus/1_0_0/post_rules.mk @@ -1,3 +1 @@ -ifeq ($(strip $(VIA_ENABLE)), yes) - SRC += keyboards/cipulot/common/via_ec.c -endif +include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/ec_alveus/1_0_0/rules.mk b/keyboards/cipulot/ec_alveus/1_0_0/rules.mk index ce525670a68..1716098b3e1 100644 --- a/keyboards/cipulot/ec_alveus/1_0_0/rules.mk +++ b/keyboards/cipulot/ec_alveus/1_0_0/rules.mk @@ -1,5 +1 @@ -CUSTOM_MATRIX = lite -ANALOG_DRIVER_REQUIRED = yes -VPATH += keyboards/cipulot/common -SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 3 diff --git a/keyboards/cipulot/ec_alveus/1_2_0/config.h b/keyboards/cipulot/ec_alveus/1_2_0/config.h index ab51289c023..05276c1d75d 100644 --- a/keyboards/cipulot/ec_alveus/1_2_0/config.h +++ b/keyboards/cipulot/ec_alveus/1_2_0/config.h @@ -19,6 +19,8 @@ #define MATRIX_ROWS 5 #define MATRIX_COLS 16 +#define UNUSED_POSITIONS_LIST { {3, 11}, {3, 12}, {4, 3}, {4, 4}, {4, 6}, {4, 7}, {4, 8}, {4, 9}, {4, 10} } + #define MATRIX_ROW_PINS \ { A14, B3, A15, B5, B4 } diff --git a/keyboards/cipulot/ec_alveus/1_2_0/post_rules.mk b/keyboards/cipulot/ec_alveus/1_2_0/post_rules.mk index d726a112a8c..5dba48cc5fd 100644 --- a/keyboards/cipulot/ec_alveus/1_2_0/post_rules.mk +++ b/keyboards/cipulot/ec_alveus/1_2_0/post_rules.mk @@ -1,3 +1 @@ -ifeq ($(strip $(VIA_ENABLE)), yes) - SRC += keyboards/cipulot/common/via_ec.c -endif +include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/ec_alveus/1_2_0/rules.mk b/keyboards/cipulot/ec_alveus/1_2_0/rules.mk index ce525670a68..1716098b3e1 100644 --- a/keyboards/cipulot/ec_alveus/1_2_0/rules.mk +++ b/keyboards/cipulot/ec_alveus/1_2_0/rules.mk @@ -1,5 +1 @@ -CUSTOM_MATRIX = lite -ANALOG_DRIVER_REQUIRED = yes -VPATH += keyboards/cipulot/common -SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 3 diff --git a/keyboards/cipulot/ec_dolice/config.h b/keyboards/cipulot/ec_dolice/config.h index a5c56e79491..2048fd4449e 100644 --- a/keyboards/cipulot/ec_dolice/config.h +++ b/keyboards/cipulot/ec_dolice/config.h @@ -19,6 +19,8 @@ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 +#define UNUSED_POSITIONS_LIST { {2, 14}, {4, 0}, {4, 2}, {4, 4}, {4, 7}, {4, 9}, {4, 11}, {4, 12}, {4, 13} } + #define MATRIX_ROW_PINS \ { B13, A8, B12, B14, B15 } diff --git a/keyboards/cipulot/ec_dolice/post_rules.mk b/keyboards/cipulot/ec_dolice/post_rules.mk index d726a112a8c..5dba48cc5fd 100644 --- a/keyboards/cipulot/ec_dolice/post_rules.mk +++ b/keyboards/cipulot/ec_dolice/post_rules.mk @@ -1,3 +1 @@ -ifeq ($(strip $(VIA_ENABLE)), yes) - SRC += keyboards/cipulot/common/via_ec.c -endif +include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/ec_dolice/rules.mk b/keyboards/cipulot/ec_dolice/rules.mk index ce525670a68..1716098b3e1 100644 --- a/keyboards/cipulot/ec_dolice/rules.mk +++ b/keyboards/cipulot/ec_dolice/rules.mk @@ -1,5 +1 @@ -CUSTOM_MATRIX = lite -ANALOG_DRIVER_REQUIRED = yes -VPATH += keyboards/cipulot/common -SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 3 diff --git a/keyboards/cipulot/ec_menhir/config.h b/keyboards/cipulot/ec_menhir/config.h index bd0094c7f15..d70fed7a3b4 100644 --- a/keyboards/cipulot/ec_menhir/config.h +++ b/keyboards/cipulot/ec_menhir/config.h @@ -19,6 +19,8 @@ #define MATRIX_ROWS 4 #define MATRIX_COLS 12 +#define UNUSED_POSITIONS_LIST { {2, 11}, {3, 0}, {3, 3}, {3, 7}, {3, 10}, {3, 11} } + #define MATRIX_ROW_PINS \ { A0, A3, A2, A1 } diff --git a/keyboards/cipulot/ec_menhir/post_rules.mk b/keyboards/cipulot/ec_menhir/post_rules.mk index d726a112a8c..5dba48cc5fd 100644 --- a/keyboards/cipulot/ec_menhir/post_rules.mk +++ b/keyboards/cipulot/ec_menhir/post_rules.mk @@ -1,3 +1 @@ -ifeq ($(strip $(VIA_ENABLE)), yes) - SRC += keyboards/cipulot/common/via_ec.c -endif +include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/ec_pro2/config.h b/keyboards/cipulot/ec_pro2/config.h index a05e716823a..63c81a6364b 100644 --- a/keyboards/cipulot/ec_pro2/config.h +++ b/keyboards/cipulot/ec_pro2/config.h @@ -19,6 +19,8 @@ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 +#define UNUSED_POSITIONS_LIST { {1, 14}, {2, 14}, {3, 12}, {4, 0}, {4, 3}, {4, 4}, {4, 5}, {4, 7}, {4, 8}, {4, 11}, {4, 12}, {4, 13}, {4, 14} } + #define MATRIX_ROW_PINS \ { B15, A8, B0, A7, B1 } diff --git a/keyboards/cipulot/ec_pro2/post_rules.mk b/keyboards/cipulot/ec_pro2/post_rules.mk index d726a112a8c..5dba48cc5fd 100644 --- a/keyboards/cipulot/ec_pro2/post_rules.mk +++ b/keyboards/cipulot/ec_pro2/post_rules.mk @@ -1,3 +1 @@ -ifeq ($(strip $(VIA_ENABLE)), yes) - SRC += keyboards/cipulot/common/via_ec.c -endif +include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/ec_pro2/rules.mk b/keyboards/cipulot/ec_pro2/rules.mk index 318e0215ce9..3aa0e2bf061 100644 --- a/keyboards/cipulot/ec_pro2/rules.mk +++ b/keyboards/cipulot/ec_pro2/rules.mk @@ -1,5 +1 @@ -CUSTOM_MATRIX = lite -ANALOG_DRIVER_REQUIRED = yes -VPATH += keyboards/cipulot/common -SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 2 diff --git a/keyboards/cipulot/ec_prox/ansi_iso/config.h b/keyboards/cipulot/ec_prox/ansi_iso/config.h index bf25d0b7128..00794921a36 100644 --- a/keyboards/cipulot/ec_prox/ansi_iso/config.h +++ b/keyboards/cipulot/ec_prox/ansi_iso/config.h @@ -19,6 +19,8 @@ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 +#define UNUSED_POSITIONS_LIST { {1, 14}, {2, 14}, {3, 12}, {4, 0}, {4, 3}, {4, 4}, {4, 5}, {4, 7}, {4, 8}, {4, 11}, {4, 12}, {4, 13}, {4, 14} } + #define MATRIX_ROW_PINS \ { A7, B0, A4, A5, A6 } diff --git a/keyboards/cipulot/ec_prox/ansi_iso/post_rules.mk b/keyboards/cipulot/ec_prox/ansi_iso/post_rules.mk index d726a112a8c..5dba48cc5fd 100644 --- a/keyboards/cipulot/ec_prox/ansi_iso/post_rules.mk +++ b/keyboards/cipulot/ec_prox/ansi_iso/post_rules.mk @@ -1,3 +1 @@ -ifeq ($(strip $(VIA_ENABLE)), yes) - SRC += keyboards/cipulot/common/via_ec.c -endif +include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/ec_prox/ansi_iso/rules.mk b/keyboards/cipulot/ec_prox/ansi_iso/rules.mk index 318e0215ce9..3aa0e2bf061 100644 --- a/keyboards/cipulot/ec_prox/ansi_iso/rules.mk +++ b/keyboards/cipulot/ec_prox/ansi_iso/rules.mk @@ -1,5 +1 @@ -CUSTOM_MATRIX = lite -ANALOG_DRIVER_REQUIRED = yes -VPATH += keyboards/cipulot/common -SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 2 diff --git a/keyboards/cipulot/ec_prox/jis/config.h b/keyboards/cipulot/ec_prox/jis/config.h index fd3c048bc38..d7461097cd5 100644 --- a/keyboards/cipulot/ec_prox/jis/config.h +++ b/keyboards/cipulot/ec_prox/jis/config.h @@ -19,6 +19,8 @@ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 +#define UNUSED_POSITIONS_LIST { {4, 6} } + #define MATRIX_ROW_PINS \ { A7, B0, A4, A5, A6 } diff --git a/keyboards/cipulot/ec_prox/jis/post_rules.mk b/keyboards/cipulot/ec_prox/jis/post_rules.mk index d726a112a8c..5dba48cc5fd 100644 --- a/keyboards/cipulot/ec_prox/jis/post_rules.mk +++ b/keyboards/cipulot/ec_prox/jis/post_rules.mk @@ -1,3 +1 @@ -ifeq ($(strip $(VIA_ENABLE)), yes) - SRC += keyboards/cipulot/common/via_ec.c -endif +include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/ec_prox/jis/rules.mk b/keyboards/cipulot/ec_prox/jis/rules.mk index 318e0215ce9..3aa0e2bf061 100644 --- a/keyboards/cipulot/ec_prox/jis/rules.mk +++ b/keyboards/cipulot/ec_prox/jis/rules.mk @@ -1,5 +1 @@ -CUSTOM_MATRIX = lite -ANALOG_DRIVER_REQUIRED = yes -VPATH += keyboards/cipulot/common -SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 2 diff --git a/keyboards/cipulot/ec_theca/config.h b/keyboards/cipulot/ec_theca/config.h index d9fea559675..e62801b10fc 100644 --- a/keyboards/cipulot/ec_theca/config.h +++ b/keyboards/cipulot/ec_theca/config.h @@ -19,6 +19,8 @@ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 +#define UNUSED_POSITIONS_LIST { {3, 12}, {4, 11}, {4, 12}, {5, 3}, {5, 4}, {5, 6}, {5, 7}, {5, 8}, {5, 9} } + #define MATRIX_ROW_PINS \ { B4, A14, B3, A15, B6, B5 } diff --git a/keyboards/cipulot/ec_theca/post_rules.mk b/keyboards/cipulot/ec_theca/post_rules.mk index d726a112a8c..5dba48cc5fd 100644 --- a/keyboards/cipulot/ec_theca/post_rules.mk +++ b/keyboards/cipulot/ec_theca/post_rules.mk @@ -1,3 +1 @@ -ifeq ($(strip $(VIA_ENABLE)), yes) - SRC += keyboards/cipulot/common/via_ec.c -endif +include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/ec_theca/rules.mk b/keyboards/cipulot/ec_theca/rules.mk index ce525670a68..1716098b3e1 100644 --- a/keyboards/cipulot/ec_theca/rules.mk +++ b/keyboards/cipulot/ec_theca/rules.mk @@ -1,5 +1 @@ -CUSTOM_MATRIX = lite -ANALOG_DRIVER_REQUIRED = yes -VPATH += keyboards/cipulot/common -SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 3 diff --git a/keyboards/cipulot/ec_tkl/config.h b/keyboards/cipulot/ec_tkl/config.h index 95a7f9137a1..d2178fa869d 100644 --- a/keyboards/cipulot/ec_tkl/config.h +++ b/keyboards/cipulot/ec_tkl/config.h @@ -19,6 +19,8 @@ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 +#define UNUSED_POSITIONS_LIST { {5, 3}, {5, 5} } + #define MATRIX_ROW_PINS \ { B6, B5, B12, B10, B13, B7 } diff --git a/keyboards/cipulot/ec_tkl/post_rules.mk b/keyboards/cipulot/ec_tkl/post_rules.mk index d726a112a8c..5dba48cc5fd 100644 --- a/keyboards/cipulot/ec_tkl/post_rules.mk +++ b/keyboards/cipulot/ec_tkl/post_rules.mk @@ -1,3 +1 @@ -ifeq ($(strip $(VIA_ENABLE)), yes) - SRC += keyboards/cipulot/common/via_ec.c -endif +include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/ec_tkl/rules.mk b/keyboards/cipulot/ec_tkl/rules.mk index 318e0215ce9..3aa0e2bf061 100644 --- a/keyboards/cipulot/ec_tkl/rules.mk +++ b/keyboards/cipulot/ec_tkl/rules.mk @@ -1,5 +1 @@ -CUSTOM_MATRIX = lite -ANALOG_DRIVER_REQUIRED = yes -VPATH += keyboards/cipulot/common -SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 2 diff --git a/keyboards/cipulot/ec_typeb/config.h b/keyboards/cipulot/ec_typeb/config.h index bf25d0b7128..908bae13e65 100644 --- a/keyboards/cipulot/ec_typeb/config.h +++ b/keyboards/cipulot/ec_typeb/config.h @@ -19,6 +19,8 @@ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 +#define UNUSED_POSITIONS_LIST { {1, 14}, {2, 12}, {2, 14}, {3, 1}, {3, 12}, {4, 0}, {4, 3}, {4, 4}, {4, 5}, {4, 7}, {4, 8}, {4, 11}, {4, 12}, {4, 13}, {4, 14} } + #define MATRIX_ROW_PINS \ { A7, B0, A4, A5, A6 } diff --git a/keyboards/cipulot/ec_typeb/post_rules.mk b/keyboards/cipulot/ec_typeb/post_rules.mk index d726a112a8c..5dba48cc5fd 100644 --- a/keyboards/cipulot/ec_typeb/post_rules.mk +++ b/keyboards/cipulot/ec_typeb/post_rules.mk @@ -1,3 +1 @@ -ifeq ($(strip $(VIA_ENABLE)), yes) - SRC += keyboards/cipulot/common/via_ec.c -endif +include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/ec_typeb/rules.mk b/keyboards/cipulot/ec_typeb/rules.mk index ce525670a68..1716098b3e1 100644 --- a/keyboards/cipulot/ec_typeb/rules.mk +++ b/keyboards/cipulot/ec_typeb/rules.mk @@ -1,5 +1 @@ -CUSTOM_MATRIX = lite -ANALOG_DRIVER_REQUIRED = yes -VPATH += keyboards/cipulot/common -SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 3 diff --git a/keyboards/cipulot/ec_typek/config.h b/keyboards/cipulot/ec_typek/config.h index a6619c600c8..9821dcbba66 100644 --- a/keyboards/cipulot/ec_typek/config.h +++ b/keyboards/cipulot/ec_typek/config.h @@ -17,6 +17,8 @@ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 +#define UNUSED_POSITIONS_LIST { {2, 13}, {4, 2}, {4, 4}, {4, 9}, {4, 11}, {4, 12}, {4, 14} } + #define MATRIX_ROW_PINS \ { B14, B13, B12, A6, A7 } diff --git a/keyboards/cipulot/ec_typek/ec_switch_matrix.c b/keyboards/cipulot/ec_typek/ec_switch_matrix.c index da58a75bbcf..ca555378255 100644 --- a/keyboards/cipulot/ec_typek/ec_switch_matrix.c +++ b/keyboards/cipulot/ec_typek/ec_switch_matrix.c @@ -37,6 +37,11 @@ const pin_t amux_en_pins[] = AMUX_EN_PINS; const pin_t amux_n_col_sizes[] = AMUX_COL_CHANNELS_SIZES; const pin_t amux_n_col_channels[][AMUX_MAX_COLS_COUNT] = {AMUX_COL_CHANNELS}; +#ifdef UNUSED_POSITIONS_LIST +const uint8_t UNUSED_POSITIONS[][2] = UNUSED_POSITIONS_LIST; +# define UNUSED_POSITIONS_COUNT (sizeof(UNUSED_POSITIONS) / sizeof(UNUSED_POSITIONS[0])) +#endif + #define AMUX_SEL_PINS_COUNT ARRAY_SIZE(amux_sel_pins) #define EXPECTED_AMUX_SEL_PINS_COUNT ceil(log2(AMUX_MAX_COLS_COUNT) // Checks for the correctness of the configuration @@ -70,6 +75,16 @@ void init_amux(void) { } } +// Disable all the unused rows +void disable_unused_row(uint8_t row) { + // disable all the other rows apart from the current selected one + for (uint8_t idx = 0; idx < MATRIX_ROWS; idx++) { + if (idx != row) { + gpio_write_pin_low(row_pins[idx]); + } + } +} + // Select the multiplexer channel of the specified multiplexer void select_amux_channel(uint8_t channel, uint8_t col) { // Get the channel for the specified multiplexer @@ -158,6 +173,10 @@ void ec_noise_floor(void) { sum += amux_n_col_sizes[i]; uint8_t adjusted_col = col + sum; for (uint8_t row = 0; row < MATRIX_ROWS; row++) { +#ifdef UNUSED_POSITIONS_LIST + if (is_unused_position(row, adjusted_col)) continue; +#endif + disable_unused_row(row); ec_config.noise_floor[row][adjusted_col] += ec_readkey_raw(amux, row, col); } } @@ -180,11 +199,15 @@ bool ec_matrix_scan(matrix_row_t current_matrix[]) { for (uint8_t amux = 0; amux < AMUX_COUNT; amux++) { disable_unused_amux(amux); for (uint8_t col = 0; col < amux_n_col_sizes[amux]; col++) { + uint8_t sum = 0; + for (uint8_t i = 0; i < (amux > 0 ? amux : 0); i++) + sum += amux_n_col_sizes[i]; + uint8_t adjusted_col = col + sum; for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - uint8_t sum = 0; - for (uint8_t i = 0; i < (amux > 0 ? amux : 0); i++) - sum += amux_n_col_sizes[i]; - uint8_t adjusted_col = col + sum; +#ifdef UNUSED_POSITIONS_LIST + if (is_unused_position(row, adjusted_col)) continue; +#endif + disable_unused_row(row); sw_value[row][adjusted_col] = ec_readkey_raw(amux, row, col); if (ec_config.bottoming_calibration) { @@ -229,7 +252,7 @@ uint16_t ec_readkey_raw(uint8_t channel, uint8_t row, uint8_t col) { } // Update press/release state of key -bool ec_update_key(matrix_row_t* current_row, uint8_t row, uint8_t col, uint16_t sw_value) { +bool ec_update_key(matrix_row_t *current_row, uint8_t row, uint8_t col, uint16_t sw_value) { bool current_state = (*current_row >> col) & 1; // Real Time Noise Floor Calibration @@ -266,7 +289,7 @@ bool ec_update_key(matrix_row_t* current_row, uint8_t row, uint8_t col, uint16_t uprintf("Key pressed: %d, %d, %d\n", row, col, sw_value); } // Has key moved up enough to be released? - else if (sw_value < ec_config.extremum[row][col] - ec_config.mode_1_release_offset) { + else if (sw_value < ec_config.extremum[row][col] - ec_config.rescaled_mode_1_release_offset[row][col]) { ec_config.extremum[row][col] = sw_value; *current_row &= ~(1 << col); uprintf("Key released: %d, %d, %d\n", row, col, sw_value); @@ -280,7 +303,7 @@ bool ec_update_key(matrix_row_t* current_row, uint8_t row, uint8_t col, uint16_t ec_config.extremum[row][col] = sw_value; } // Has key moved down enough to be pressed? - else if (sw_value > ec_config.extremum[row][col] + ec_config.mode_1_actuation_offset) { + else if (sw_value > ec_config.extremum[row][col] + ec_config.rescaled_mode_1_actuation_offset[row][col]) { ec_config.extremum[row][col] = sw_value; *current_row |= (1 << col); uprintf("Key pressed: %d, %d, %d\n", row, col, sw_value); @@ -312,6 +335,18 @@ void ec_print_matrix(void) { print("\n"); } +// Check if the position is unused +#ifdef UNUSED_POSITIONS_LIST +bool is_unused_position(uint8_t row, uint8_t col) { + for (uint8_t i = 0; i < UNUSED_POSITIONS_COUNT; i++) { + if (UNUSED_POSITIONS[i][0] == row && UNUSED_POSITIONS[i][1] == col) { + return true; + } + } + return false; +} +#endif + // Rescale the value to a different range uint16_t rescale(uint16_t x, uint16_t in_min, uint16_t in_max, uint16_t out_min, uint16_t out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; diff --git a/keyboards/cipulot/ec_typek/ec_switch_matrix.h b/keyboards/cipulot/ec_typek/ec_switch_matrix.h index fad20360bc7..e3b6afb976d 100644 --- a/keyboards/cipulot/ec_typek/ec_switch_matrix.h +++ b/keyboards/cipulot/ec_typek/ec_switch_matrix.h @@ -33,13 +33,13 @@ typedef struct PACKED { indicator_config num; indicator_config caps; indicator_config scroll; - uint8_t actuation_mode; // 0: normal board-wide APC, 1: Rapid trigger from specific board-wide actuation point, 2: Rapid trigger from resting point - uint16_t mode_0_actuation_threshold; // threshold for key press in mode 0 - uint16_t mode_0_release_threshold; // threshold for key release in mode 0 - uint16_t mode_1_initial_deadzone_offset; // threshold for key press in mode 1 - uint8_t mode_1_actuation_offset; // offset for key press in mode 1 and 2 (1-255) - uint8_t mode_1_release_offset; // offset for key release in mode 1 and 2 (1-255) - uint16_t bottoming_reading[MATRIX_ROWS][MATRIX_COLS]; // bottoming reading + uint8_t actuation_mode; // 0: normal board-wide APC, 1: Rapid trigger from specific board-wide actuation point, 2: Rapid trigger from resting point + uint16_t mode_0_actuation_threshold; // threshold for key press in mode 0 + uint16_t mode_0_release_threshold; // threshold for key release in mode 0 + uint16_t mode_1_initial_deadzone_offset; // threshold for key press in mode 1 + uint8_t mode_1_actuation_offset; // offset for key press in mode 1 and 2 (1-255) + uint8_t mode_1_release_offset; // offset for key release in mode 1 and 2 (1-255) + uint16_t bottoming_reading[MATRIX_ROWS][MATRIX_COLS]; // bottoming reading } eeprom_ec_config_t; typedef struct { @@ -47,11 +47,13 @@ typedef struct { uint16_t mode_0_actuation_threshold; // threshold for key press in mode 0 uint16_t mode_0_release_threshold; // threshold for key release in mode 0 uint16_t mode_1_initial_deadzone_offset; // threshold for key press in mode 1 (initial deadzone) + uint8_t mode_1_actuation_offset; // offset for key press in mode 1 (1-255) + uint8_t mode_1_release_offset; // offset for key release in mode 1 (1-255) uint16_t rescaled_mode_0_actuation_threshold[MATRIX_ROWS][MATRIX_COLS]; // threshold for key press in mode 0 rescaled to actual scale uint16_t rescaled_mode_0_release_threshold[MATRIX_ROWS][MATRIX_COLS]; // threshold for key release in mode 0 rescaled to actual scale uint16_t rescaled_mode_1_initial_deadzone_offset[MATRIX_ROWS][MATRIX_COLS]; // threshold for key press in mode 1 (initial deadzone) rescaled to actual scale - uint8_t mode_1_actuation_offset; // offset for key press in mode 1 (1-255) - uint8_t mode_1_release_offset; // offset for key release in mode 1 (1-255) + uint8_t rescaled_mode_1_actuation_offset[MATRIX_ROWS][MATRIX_COLS]; // offset for key press in mode 1 rescaled to actual scale + uint8_t rescaled_mode_1_release_offset[MATRIX_ROWS][MATRIX_COLS]; // offset for key release in mode 1 rescaled to actual scale uint16_t extremum[MATRIX_ROWS][MATRIX_COLS]; // extremum values for mode 1 uint16_t noise_floor[MATRIX_ROWS][MATRIX_COLS]; // noise floor detected during startup bool bottoming_calibration; // calibration mode for bottoming out values (true: calibration mode, false: normal mode) @@ -82,3 +84,7 @@ void ec_print_matrix(void); uint16_t rescale(uint16_t x, uint16_t in_min, uint16_t in_max, uint16_t out_min, uint16_t out_max); bool indicators_callback(void); + +#ifdef UNUSED_POSITIONS_LIST +bool is_unused_position(uint8_t row, uint8_t col); +#endif diff --git a/keyboards/cipulot/ec_typek/ec_typek.c b/keyboards/cipulot/ec_typek/ec_typek.c index b899ddbb8a8..d4241f66f1e 100644 --- a/keyboards/cipulot/ec_typek/ec_typek.c +++ b/keyboards/cipulot/ec_typek/ec_typek.c @@ -69,6 +69,8 @@ void keyboard_post_init_kb(void) { ec_config.rescaled_mode_0_actuation_threshold[row][col] = rescale(ec_config.mode_0_actuation_threshold, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); ec_config.rescaled_mode_0_release_threshold[row][col] = rescale(ec_config.mode_0_release_threshold, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); ec_config.rescaled_mode_1_initial_deadzone_offset[row][col] = rescale(ec_config.mode_1_initial_deadzone_offset, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); + ec_config.rescaled_mode_1_actuation_offset[row][col] = rescale(ec_config.mode_1_actuation_offset, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); + ec_config.rescaled_mode_1_release_offset[row][col] = rescale(ec_config.mode_1_release_offset, 0, 1023, ec_config.noise_floor[row][col], eeprom_ec_config.bottoming_reading[row][col]); } } @@ -82,7 +84,7 @@ void keyboard_post_init_kb(void) { // This function gets called when caps, num, scroll change bool led_update_kb(led_t led_state) { - if(led_update_user(led_state)) { + if (led_update_user(led_state)) { indicators_callback(); } return true; diff --git a/keyboards/cipulot/ec_vero/config.h b/keyboards/cipulot/ec_vero/config.h index 89f7474b552..d86c0b6ab04 100644 --- a/keyboards/cipulot/ec_vero/config.h +++ b/keyboards/cipulot/ec_vero/config.h @@ -19,6 +19,8 @@ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 +#define UNUSED_POSITIONS_LIST { {2, 14}, {3, 12}, {4, 0}, {4, 3}, {4, 4}, {4, 5}, {4, 7}, {4, 8}, {4, 9}, {4, 12}, {4, 13}, {4, 14} } + #define MATRIX_ROW_PINS \ { B7, B6, A9, A10, B3 } diff --git a/keyboards/cipulot/ec_vero/post_rules.mk b/keyboards/cipulot/ec_vero/post_rules.mk index d726a112a8c..5dba48cc5fd 100644 --- a/keyboards/cipulot/ec_vero/post_rules.mk +++ b/keyboards/cipulot/ec_vero/post_rules.mk @@ -1,3 +1 @@ -ifeq ($(strip $(VIA_ENABLE)), yes) - SRC += keyboards/cipulot/common/via_ec.c -endif +include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/ec_vero/rules.mk b/keyboards/cipulot/ec_vero/rules.mk index ce525670a68..1716098b3e1 100644 --- a/keyboards/cipulot/ec_vero/rules.mk +++ b/keyboards/cipulot/ec_vero/rules.mk @@ -1,5 +1 @@ -CUSTOM_MATRIX = lite -ANALOG_DRIVER_REQUIRED = yes -VPATH += keyboards/cipulot/common -SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 3 diff --git a/keyboards/cipulot/ec_virgo/config.h b/keyboards/cipulot/ec_virgo/config.h index 2fce8cd7fa7..87cfbcdd76a 100644 --- a/keyboards/cipulot/ec_virgo/config.h +++ b/keyboards/cipulot/ec_virgo/config.h @@ -19,6 +19,8 @@ #define MATRIX_ROWS 6 #define MATRIX_COLS 18 +#define UNUSED_POSITIONS_LIST { {0, 6}, {0, 14}, {3, 14}, {3, 15}, {3, 16}, {3, 17}, {4, 12}, {4, 15}, {4, 17}, {5, 1}, {5, 4}, {5, 8}, {5, 11}, {5, 12}, {5, 14} } + #define MATRIX_ROW_PINS \ { B6, B7, B5, B4, B3, A15 } diff --git a/keyboards/cipulot/ec_virgo/post_rules.mk b/keyboards/cipulot/ec_virgo/post_rules.mk index d726a112a8c..5dba48cc5fd 100644 --- a/keyboards/cipulot/ec_virgo/post_rules.mk +++ b/keyboards/cipulot/ec_virgo/post_rules.mk @@ -1,3 +1 @@ -ifeq ($(strip $(VIA_ENABLE)), yes) - SRC += keyboards/cipulot/common/via_ec.c -endif +include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/ec_virgo/rules.mk b/keyboards/cipulot/ec_virgo/rules.mk index ce525670a68..1716098b3e1 100644 --- a/keyboards/cipulot/ec_virgo/rules.mk +++ b/keyboards/cipulot/ec_virgo/rules.mk @@ -1,5 +1 @@ -CUSTOM_MATRIX = lite -ANALOG_DRIVER_REQUIRED = yes -VPATH += keyboards/cipulot/common -SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 3 diff --git a/keyboards/cipulot/mnk_60_ec/config.h b/keyboards/cipulot/mnk_60_ec/config.h index 1a7df486572..1f31c91aaa1 100644 --- a/keyboards/cipulot/mnk_60_ec/config.h +++ b/keyboards/cipulot/mnk_60_ec/config.h @@ -19,6 +19,8 @@ #define MATRIX_ROWS 5 #define MATRIX_COLS 14 +#define UNUSED_POSITIONS_LIST { {3, 13}, {4, 3}, {4, 4}, {4, 6}, {4, 7}, {4, 8}, {4, 9}, {4, 13} } + #define MATRIX_ROW_PINS \ { B13, B14, B15, A8, A15 } diff --git a/keyboards/cipulot/mnk_60_ec/post_rules.mk b/keyboards/cipulot/mnk_60_ec/post_rules.mk index d726a112a8c..5dba48cc5fd 100644 --- a/keyboards/cipulot/mnk_60_ec/post_rules.mk +++ b/keyboards/cipulot/mnk_60_ec/post_rules.mk @@ -1,3 +1 @@ -ifeq ($(strip $(VIA_ENABLE)), yes) - SRC += keyboards/cipulot/common/via_ec.c -endif +include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/mnk_60_ec/rules.mk b/keyboards/cipulot/mnk_60_ec/rules.mk index ce525670a68..1716098b3e1 100644 --- a/keyboards/cipulot/mnk_60_ec/rules.mk +++ b/keyboards/cipulot/mnk_60_ec/rules.mk @@ -1,5 +1 @@ -CUSTOM_MATRIX = lite -ANALOG_DRIVER_REQUIRED = yes -VPATH += keyboards/cipulot/common -SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 3 diff --git a/keyboards/cipulot/mnk_65_ec/config.h b/keyboards/cipulot/mnk_65_ec/config.h index 01d1248c436..9d880ba3bda 100644 --- a/keyboards/cipulot/mnk_65_ec/config.h +++ b/keyboards/cipulot/mnk_65_ec/config.h @@ -19,6 +19,8 @@ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 +#define UNUSED_POSITIONS_LIST { {2, 13}, {3, 13}, {4, 3}, {4, 4}, {4, 6}, {4, 7}, {4, 8}, {4, 10}, {4, 13} } + #define MATRIX_ROW_PINS \ { B14, B15, A8, B12, A15 } diff --git a/keyboards/cipulot/mnk_65_ec/post_rules.mk b/keyboards/cipulot/mnk_65_ec/post_rules.mk index d726a112a8c..5dba48cc5fd 100644 --- a/keyboards/cipulot/mnk_65_ec/post_rules.mk +++ b/keyboards/cipulot/mnk_65_ec/post_rules.mk @@ -1,3 +1 @@ -ifeq ($(strip $(VIA_ENABLE)), yes) - SRC += keyboards/cipulot/common/via_ec.c -endif +include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/mnk_65_ec/rules.mk b/keyboards/cipulot/mnk_65_ec/rules.mk index ce525670a68..1716098b3e1 100644 --- a/keyboards/cipulot/mnk_65_ec/rules.mk +++ b/keyboards/cipulot/mnk_65_ec/rules.mk @@ -1,5 +1 @@ -CUSTOM_MATRIX = lite -ANALOG_DRIVER_REQUIRED = yes -VPATH += keyboards/cipulot/common -SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 3 diff --git a/keyboards/cipulot/rf_r1_8_9xu/config.h b/keyboards/cipulot/rf_r1_8_9xu/config.h index cd98ff7f3da..91e3a459c37 100644 --- a/keyboards/cipulot/rf_r1_8_9xu/config.h +++ b/keyboards/cipulot/rf_r1_8_9xu/config.h @@ -19,6 +19,8 @@ #define MATRIX_ROWS 6 #define MATRIX_COLS 16 +#define UNUSED_POSITIONS_LIST { {5, 3}, {5, 5} } + #define MATRIX_ROW_PINS \ { B15, A8, B13, B12, B14, B0 } diff --git a/keyboards/cipulot/rf_r1_8_9xu/post_rules.mk b/keyboards/cipulot/rf_r1_8_9xu/post_rules.mk index d726a112a8c..5dba48cc5fd 100644 --- a/keyboards/cipulot/rf_r1_8_9xu/post_rules.mk +++ b/keyboards/cipulot/rf_r1_8_9xu/post_rules.mk @@ -1,3 +1 @@ -ifeq ($(strip $(VIA_ENABLE)), yes) - SRC += keyboards/cipulot/common/via_ec.c -endif +include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/rf_r1_8_9xu/rules.mk b/keyboards/cipulot/rf_r1_8_9xu/rules.mk index 318e0215ce9..3aa0e2bf061 100644 --- a/keyboards/cipulot/rf_r1_8_9xu/rules.mk +++ b/keyboards/cipulot/rf_r1_8_9xu/rules.mk @@ -1,5 +1 @@ -CUSTOM_MATRIX = lite -ANALOG_DRIVER_REQUIRED = yes -VPATH += keyboards/cipulot/common -SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 2 From 92afc8198a5bfb46fb55e4a8421ade7c4585c6c6 Mon Sep 17 00:00:00 2001 From: leyew <102467346+itsme-zeix@users.noreply.github.com> Date: Tue, 29 Oct 2024 23:56:23 +0800 Subject: [PATCH 013/365] [Keyboard] Add Singa Kohaku (#24309) Co-authored-by: jack Co-authored-by: Joel Challis Co-authored-by: Duncan Sutherland Co-authored-by: Drashna Jaelre --- keyboards/zeix/singa/kohaku/config.h | 20 + keyboards/zeix/singa/kohaku/keyboard.json | 698 ++++++++++++++++++ .../singa/kohaku/keymaps/default/keymap.c | 35 + keyboards/zeix/singa/kohaku/matrix_diagram.md | 30 + keyboards/zeix/singa/kohaku/readme.md | 27 + 5 files changed, 810 insertions(+) create mode 100644 keyboards/zeix/singa/kohaku/config.h create mode 100644 keyboards/zeix/singa/kohaku/keyboard.json create mode 100644 keyboards/zeix/singa/kohaku/keymaps/default/keymap.c create mode 100644 keyboards/zeix/singa/kohaku/matrix_diagram.md create mode 100644 keyboards/zeix/singa/kohaku/readme.md diff --git a/keyboards/zeix/singa/kohaku/config.h b/keyboards/zeix/singa/kohaku/config.h new file mode 100644 index 00000000000..77970ce4d34 --- /dev/null +++ b/keyboards/zeix/singa/kohaku/config.h @@ -0,0 +1,20 @@ +/* +Copyright 2023 zeix (@itsme-zeix) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/zeix/singa/kohaku/keyboard.json b/keyboards/zeix/singa/kohaku/keyboard.json new file mode 100644 index 00000000000..f1ce31fe64d --- /dev/null +++ b/keyboards/zeix/singa/kohaku/keyboard.json @@ -0,0 +1,698 @@ +{ + "manufacturer": "SINGA", + "keyboard_name": "Kohaku", + "maintainer": "itsme-zeix", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "rgblight": true, + "bootmagic": true, + "extrakey": true, + "mousekey": true + }, + "indicators": { + "caps_lock": "GP29" + }, + "matrix_pins": { + "cols": ["GP7", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP0"], + "rows": ["GP27", "GP28", "GP10", "GP11", "GP18", "GP19", "GP23", "GP24", "GP25", "GP26"] + }, + "processor": "RP2040", + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "brightness_steps": 8, + "led_count": 28, + "saturation_steps": 8, + "sleep": true + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x8888", + "vid": "0x4C27" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP20" + }, + "community_layouts": ["65_ansi_blocker", "65_ansi_blocker_split_bs", "65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs", "65_iso_blocker", "65_iso_blocker_split_bs", "65_iso_blocker_tsangan", "65_iso_blocker_tsangan_split_bs"], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [1, 1], "x": 3, "y": 0}, + {"matrix": [0, 2], "x": 4, "y": 0}, + {"matrix": [1, 2], "x": 5, "y": 0}, + {"matrix": [0, 3], "x": 6, "y": 0}, + {"matrix": [1, 3], "x": 7, "y": 0}, + {"matrix": [0, 4], "x": 8, "y": 0}, + {"matrix": [1, 4], "x": 9, "y": 0}, + {"matrix": [0, 5], "x": 10, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [1, 6], "x": 13, "y": 0}, + {"matrix": [0, 7], "x": 14, "y": 0}, + {"matrix": [1, 7], "x": 15, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [3, 7], "x": 15, "y": 1}, + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [4, 6], "x": 12.75, "y": 2}, + {"matrix": [5, 6], "x": 13.75, "y": 2, "w": 1.25}, + {"matrix": [5, 7], "x": 15, "y": 2}, + {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [7, 0], "x": 1.25, "y": 3}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 5], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 6], "x": 14, "y": 3}, + {"matrix": [7, 7], "x": 15, "y": 3}, + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [9, 2], "x": 3.75, "y": 4, "w": 2.75}, + {"matrix": [8, 3], "x": 6.5, "y": 4, "w": 1.25}, + {"matrix": [9, 4], "x": 7.75, "y": 4, "w": 2.25}, + {"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [8, 6], "x": 13, "y": 4}, + {"matrix": [9, 6], "x": 14, "y": 4}, + {"matrix": [9, 7], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [1, 1], "x": 3, "y": 0}, + {"matrix": [0, 2], "x": 4, "y": 0}, + {"matrix": [1, 2], "x": 5, "y": 0}, + {"matrix": [0, 3], "x": 6, "y": 0}, + {"matrix": [1, 3], "x": 7, "y": 0}, + {"matrix": [0, 4], "x": 8, "y": 0}, + {"matrix": [1, 4], "x": 9, "y": 0}, + {"matrix": [0, 5], "x": 10, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [0, 7], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 7], "x": 15, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [3, 7], "x": 15, "y": 1}, + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [5, 7], "x": 15, "y": 2}, + {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 5], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 6], "x": 14, "y": 3}, + {"matrix": [7, 7], "x": 15, "y": 3}, + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [8, 6], "x": 13, "y": 4}, + {"matrix": [9, 6], "x": 14, "y": 4}, + {"matrix": [9, 7], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [1, 1], "x": 3, "y": 0}, + {"matrix": [0, 2], "x": 4, "y": 0}, + {"matrix": [1, 2], "x": 5, "y": 0}, + {"matrix": [0, 3], "x": 6, "y": 0}, + {"matrix": [1, 3], "x": 7, "y": 0}, + {"matrix": [0, 4], "x": 8, "y": 0}, + {"matrix": [1, 4], "x": 9, "y": 0}, + {"matrix": [0, 5], "x": 10, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [1, 6], "x": 13, "y": 0}, + {"matrix": [0, 7], "x": 14, "y": 0}, + {"matrix": [1, 7], "x": 15, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [3, 7], "x": 15, "y": 1}, + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [5, 7], "x": 15, "y": 2}, + {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 5], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 6], "x": 14, "y": 3}, + {"matrix": [7, 7], "x": 15, "y": 3}, + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [8, 6], "x": 13, "y": 4}, + {"matrix": [9, 6], "x": 14, "y": 4}, + {"matrix": [9, 7], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [1, 1], "x": 3, "y": 0}, + {"matrix": [0, 2], "x": 4, "y": 0}, + {"matrix": [1, 2], "x": 5, "y": 0}, + {"matrix": [0, 3], "x": 6, "y": 0}, + {"matrix": [1, 3], "x": 7, "y": 0}, + {"matrix": [0, 4], "x": 8, "y": 0}, + {"matrix": [1, 4], "x": 9, "y": 0}, + {"matrix": [0, 5], "x": 10, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [0, 7], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 7], "x": 15, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [3, 7], "x": 15, "y": 1}, + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [5, 7], "x": 15, "y": 2}, + {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 5], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 6], "x": 14, "y": 3}, + {"matrix": [7, 7], "x": 15, "y": 3}, + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [9, 0], "x": 1.5, "y": 4, "w": 1}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [8, 3], "x": 4, "y": 4, "w": 7}, + {"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [8, 6], "x": 13, "y": 4}, + {"matrix": [9, 6], "x": 14, "y": 4}, + {"matrix": [9, 7], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [1, 1], "x": 3, "y": 0}, + {"matrix": [0, 2], "x": 4, "y": 0}, + {"matrix": [1, 2], "x": 5, "y": 0}, + {"matrix": [0, 3], "x": 6, "y": 0}, + {"matrix": [1, 3], "x": 7, "y": 0}, + {"matrix": [0, 4], "x": 8, "y": 0}, + {"matrix": [1, 4], "x": 9, "y": 0}, + {"matrix": [0, 5], "x": 10, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [1, 6], "x": 13, "y": 0}, + {"matrix": [0, 7], "x": 14, "y": 0}, + {"matrix": [1, 7], "x": 15, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [3, 7], "x": 15, "y": 1}, + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [5, 7], "x": 15, "y": 2}, + {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 5], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 6], "x": 14, "y": 3}, + {"matrix": [7, 7], "x": 15, "y": 3}, + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [9, 0], "x": 1.5, "y": 4, "w": 1}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [8, 3], "x": 4, "y": 4, "w": 7}, + {"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [8, 6], "x": 13, "y": 4}, + {"matrix": [9, 6], "x": 14, "y": 4}, + {"matrix": [9, 7], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [1, 1], "x": 3, "y": 0}, + {"matrix": [0, 2], "x": 4, "y": 0}, + {"matrix": [1, 2], "x": 5, "y": 0}, + {"matrix": [0, 3], "x": 6, "y": 0}, + {"matrix": [1, 3], "x": 7, "y": 0}, + {"matrix": [0, 4], "x": 8, "y": 0}, + {"matrix": [1, 4], "x": 9, "y": 0}, + {"matrix": [0, 5], "x": 10, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [0, 7], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 7], "x": 15, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [3, 7], "x": 15, "y": 1}, + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [4, 6], "x": 12.75, "y": 2}, + {"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [5, 7], "x": 15, "y": 2}, + {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [7, 0], "x": 1.25, "y": 3}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 5], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 6], "x": 14, "y": 3}, + {"matrix": [7, 7], "x": 15, "y": 3}, + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [8, 6], "x": 13, "y": 4}, + {"matrix": [9, 6], "x": 14, "y": 4}, + {"matrix": [9, 7], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [1, 1], "x": 3, "y": 0}, + {"matrix": [0, 2], "x": 4, "y": 0}, + {"matrix": [1, 2], "x": 5, "y": 0}, + {"matrix": [0, 3], "x": 6, "y": 0}, + {"matrix": [1, 3], "x": 7, "y": 0}, + {"matrix": [0, 4], "x": 8, "y": 0}, + {"matrix": [1, 4], "x": 9, "y": 0}, + {"matrix": [0, 5], "x": 10, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [1, 6], "x": 13, "y": 0}, + {"matrix": [0, 7], "x": 14, "y": 0}, + {"matrix": [1, 7], "x": 15, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [3, 7], "x": 15, "y": 1}, + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [4, 6], "x": 12.75, "y": 2}, + {"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [5, 7], "x": 15, "y": 2}, + {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [7, 0], "x": 1.25, "y": 3}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 5], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 6], "x": 14, "y": 3}, + {"matrix": [7, 7], "x": 15, "y": 3}, + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [8, 6], "x": 13, "y": 4}, + {"matrix": [9, 6], "x": 14, "y": 4}, + {"matrix": [9, 7], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [1, 1], "x": 3, "y": 0}, + {"matrix": [0, 2], "x": 4, "y": 0}, + {"matrix": [1, 2], "x": 5, "y": 0}, + {"matrix": [0, 3], "x": 6, "y": 0}, + {"matrix": [1, 3], "x": 7, "y": 0}, + {"matrix": [0, 4], "x": 8, "y": 0}, + {"matrix": [1, 4], "x": 9, "y": 0}, + {"matrix": [0, 5], "x": 10, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [0, 7], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 7], "x": 15, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [3, 7], "x": 15, "y": 1}, + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [4, 6], "x": 12.75, "y": 2}, + {"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [5, 7], "x": 15, "y": 2}, + {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [7, 0], "x": 1.25, "y": 3}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 5], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 6], "x": 14, "y": 3}, + {"matrix": [7, 7], "x": 15, "y": 3}, + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [9, 0], "x": 1.5, "y": 4, "w": 1}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [8, 3], "x": 4, "y": 4, "w": 7}, + {"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [8, 6], "x": 13, "y": 4}, + {"matrix": [9, 6], "x": 14, "y": 4}, + {"matrix": [9, 7], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_tsangan_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [1, 1], "x": 3, "y": 0}, + {"matrix": [0, 2], "x": 4, "y": 0}, + {"matrix": [1, 2], "x": 5, "y": 0}, + {"matrix": [0, 3], "x": 6, "y": 0}, + {"matrix": [1, 3], "x": 7, "y": 0}, + {"matrix": [0, 4], "x": 8, "y": 0}, + {"matrix": [1, 4], "x": 9, "y": 0}, + {"matrix": [0, 5], "x": 10, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [1, 6], "x": 13, "y": 0}, + {"matrix": [0, 7], "x": 14, "y": 0}, + {"matrix": [1, 7], "x": 15, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [3, 7], "x": 15, "y": 1}, + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [4, 6], "x": 12.75, "y": 2}, + {"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [5, 7], "x": 15, "y": 2}, + {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [7, 0], "x": 1.25, "y": 3}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 5], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 6], "x": 14, "y": 3}, + {"matrix": [7, 7], "x": 15, "y": 3}, + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [9, 0], "x": 1.5, "y": 4, "w": 1}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [8, 3], "x": 4, "y": 4, "w": 7}, + {"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [8, 6], "x": 13, "y": 4}, + {"matrix": [9, 6], "x": 14, "y": 4}, + {"matrix": [9, 7], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/zeix/singa/kohaku/keymaps/default/keymap.c b/keyboards/zeix/singa/kohaku/keymaps/default/keymap.c new file mode 100644 index 00000000000..e58dd0c18ae --- /dev/null +++ b/keyboards/zeix/singa/kohaku/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* +Copyright 2024 zeix (@itsme-zeix) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC, KC_INS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + +[1] = LAYOUT_all( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/zeix/singa/kohaku/matrix_diagram.md b/keyboards/zeix/singa/kohaku/matrix_diagram.md new file mode 100644 index 00000000000..79cd5d07845 --- /dev/null +++ b/keyboards/zeix/singa/kohaku/matrix_diagram.md @@ -0,0 +1,30 @@ +# Matrix Diagram for Singa Kohaku (Designed by Zeix) + +``` + ┌───┬───┐ + Split Backspace │16 │07 │ + └───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ +│00 │10 │01 │11 │02 │12 │03 │13 │04 │14 │05 │15 │06 │07 │17 │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ ┌─────┐ +│20 │30 │21 │31 │22 │32 │23 │33 │24 │34 │25 │35 │26 │36 │37 │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐56 │ ISO Enter +│40 │50 │41 │51 │42 │52 │43 │53 │44 │54 │45 │55 │56 │57 │ │46 │ │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ +│60 │61 │71 │62 │72 │63 │73 │64 │74 │65 │75 │66 │76 │77 │ +├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤ +│80 │90 │81 │83 │95 │ │86 │96 │97 │ +└─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ +┌────┬───┐ +│60 │70 │ Split Left Shift +└────┴───┘ +┌────┬────┬────┬────────────────────────┬────┬────┐ +│80 │90 │81 │83 │85 │95 │ 6.25u +└────┴────┴────┴────────────────────────┴────┴────┘ +┌────┬────┬────┬───────────┬────┬───────┬────┬────┐ +│80 │90 │81 │92 │83 │94 │85 │95 │ Split Space (Left 2.75u) +└────┴────┴────┴───────────┴────┴───────┴────┴────┘ +┌────┬────┬────┬───────┬────┬───────────┬────┬────┐ +│80 │90 │81 │92 │83 │94 │85 │95 │ Split Space (Left 2.25u) +└────┴────┴────┴───────┴────┴───────────┴────┴────┘ +``` diff --git a/keyboards/zeix/singa/kohaku/readme.md b/keyboards/zeix/singa/kohaku/readme.md new file mode 100644 index 00000000000..864f660e5c9 --- /dev/null +++ b/keyboards/zeix/singa/kohaku/readme.md @@ -0,0 +1,27 @@ +# SINGA Kohaku R2 (PCB designed by Zeix) + +![Layout Compatibility](https://i.imgur.com/2RaSZxG.png) + +65% PCB designed to support Kohaku R2. + +- Keyboard Maintainer: [Zeix](https://github.com/itsme-zeix) +- Hardware Supported: Singa Kohaku R2 (PCB designed by Zeix) +- Hardware Availability: https://singakbd.com/ + +Make example for this keyboard (after setting up your build environment): + + make zeix/singa/kohaku:default + +Flashing example for this keyboard: + + make zeix/singa/kohaku:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +- **Bootmagic reset**: Hold down the top left key and plug in the keyboard. +- **Physical reset button**: Briefly press the `RESET` button twice or short the 'USB_BOOT' and `GND` pads and plug in the keyboard. +- **Keycode in layout**: Press the key mapped to `QK_BOOT`. From e6daffce464a0ea288bee68b49f8c7605d464c1b Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 30 Oct 2024 05:16:59 +0000 Subject: [PATCH 014/365] Handle `cli._subcommand.__name__` deprecation warning (#24533) --- lib/python/qmk/decorators.py | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/lib/python/qmk/decorators.py b/lib/python/qmk/decorators.py index f6270990b97..16b44d6d591 100644 --- a/lib/python/qmk/decorators.py +++ b/lib/python/qmk/decorators.py @@ -9,6 +9,15 @@ from qmk.keyboard import find_keyboard_from_dir from qmk.keymap import find_keymap_from_dir +def _get_subcommand_name(): + """Handle missing cli.subcommand_name on older versions of milc + """ + try: + return cli.subcommand_name + except AttributeError: + return cli._subcommand.__name__ + + def automagic_keyboard(func): """Sets `cli.config..keyboard` based on environment. @@ -16,13 +25,15 @@ def automagic_keyboard(func): """ @functools.wraps(func) def wrapper(*args, **kwargs): + cmd = _get_subcommand_name() + # Ensure that `--keyboard` was not passed and CWD is under `qmk_firmware/keyboards` - if cli.config_source[cli._subcommand.__name__]['keyboard'] != 'argument': + if cli.config_source[cmd]['keyboard'] != 'argument': keyboard = find_keyboard_from_dir() if keyboard: - cli.config[cli._subcommand.__name__]['keyboard'] = keyboard - cli.config_source[cli._subcommand.__name__]['keyboard'] = 'keyboard_directory' + cli.config[cmd]['keyboard'] = keyboard + cli.config_source[cmd]['keyboard'] = 'keyboard_directory' return func(*args, **kwargs) @@ -36,13 +47,15 @@ def automagic_keymap(func): """ @functools.wraps(func) def wrapper(*args, **kwargs): + cmd = _get_subcommand_name() + # Ensure that `--keymap` was not passed and that we're under `qmk_firmware` - if cli.config_source[cli._subcommand.__name__]['keymap'] != 'argument': + if cli.config_source[cmd]['keymap'] != 'argument': keymap_name, keymap_type = find_keymap_from_dir() if keymap_name: - cli.config[cli._subcommand.__name__]['keymap'] = keymap_name - cli.config_source[cli._subcommand.__name__]['keymap'] = keymap_type + cli.config[cmd]['keymap'] = keymap_name + cli.config_source[cmd]['keymap'] = keymap_type return func(*args, **kwargs) From 6693a30671a5bb690e395cf64c8a0a949123f401 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 30 Oct 2024 05:43:31 +0000 Subject: [PATCH 015/365] Remove `appdirs` from `requirements.txt` (#24550) --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 6bee7463243..fbee51ee575 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ # Python requirements -appdirs +# platformdirs argcomplete colorama dotty-dict From 465cbc87de0f9e92663cf4bb1a5e89739dbb5904 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 30 Oct 2024 11:26:53 +0000 Subject: [PATCH 016/365] Handle 'MILCInterface' object has no attribute 'log_level' error (#24549) --- lib/python/qmk/search.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/python/qmk/search.py b/lib/python/qmk/search.py index 25e3d92066d..6517bb4951d 100644 --- a/lib/python/qmk/search.py +++ b/lib/python/qmk/search.py @@ -119,8 +119,11 @@ def filter_help() -> str: def _set_log_level(level): cli.acquire_lock() - old = cli.log_level - cli.log_level = level + try: + old = cli.log_level + cli.log_level = level + except AttributeError: + old = cli.log.level cli.log.setLevel(level) logging.root.setLevel(level) cli.release_lock() From 292e0af2934e2c1dc21405e48f924f6618054584 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 31 Oct 2024 23:21:20 +0000 Subject: [PATCH 017/365] Bump minimum required Python version (#24554) --- lib/python/qmk/cli/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/python/qmk/cli/__init__.py b/lib/python/qmk/cli/__init__.py index 0baf19a629d..2d63dfb4477 100644 --- a/lib/python/qmk/cli/__init__.py +++ b/lib/python/qmk/cli/__init__.py @@ -207,8 +207,8 @@ def _eprint(errmsg): # Ubuntu 24.04: 3.12 # void: 3.12 -if sys.version_info[0] != 3 or sys.version_info[1] < 7: - _eprint('Error: Your Python is too old! Please upgrade to Python 3.7 or later.') +if sys.version_info[0] != 3 or sys.version_info[1] < 9: + _eprint('Error: Your Python is too old! Please upgrade to Python 3.9 or later.') exit(127) milc_version = __VERSION__.split('.') From c8cdee3e4efb65d77c40fee9ef2894b0f214293f Mon Sep 17 00:00:00 2001 From: takashicompany Date: Mon, 4 Nov 2024 05:13:56 +0900 Subject: [PATCH 018/365] [Keyboard] Add KLEC-01 (#24543) --- .../takashicompany/klec_01/keyboard.json | 77 +++++++++++++++++++ .../klec_01/keymaps/default/keymap.c | 69 +++++++++++++++++ keyboards/takashicompany/klec_01/readme.md | 29 +++++++ 3 files changed, 175 insertions(+) create mode 100644 keyboards/takashicompany/klec_01/keyboard.json create mode 100644 keyboards/takashicompany/klec_01/keymaps/default/keymap.c create mode 100644 keyboards/takashicompany/klec_01/readme.md diff --git a/keyboards/takashicompany/klec_01/keyboard.json b/keyboards/takashicompany/klec_01/keyboard.json new file mode 100644 index 00000000000..36baa8bf60f --- /dev/null +++ b/keyboards/takashicompany/klec_01/keyboard.json @@ -0,0 +1,77 @@ +{ + "manufacturer": "takashicompany", + "keyboard_name": "KLEC-01", + "maintainer": "takashicompany", + "development_board": "promicro", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6"], + "rows": ["D4", "C6", "D7", "E6", "B4", "B5"] + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x1001", + "vid": "0x7463" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [1, 0], "x": 4, "y": 0}, + {"matrix": [1, 1], "x": 5, "y": 0}, + {"matrix": [1, 2], "x": 6, "y": 0}, + {"matrix": [1, 3], "x": 7, "y": 0}, + {"matrix": [2, 0], "x": 8, "y": 0}, + {"matrix": [2, 1], "x": 9, "y": 0}, + {"matrix": [2, 2], "x": 10, "y": 0}, + {"matrix": [2, 3], "x": 11, "y": 0, "w": 1.75}, + {"matrix": [0, 4], "x": 0, "y": 1, "w": 1.25}, + {"matrix": [0, 5], "x": 1.25, "y": 1}, + {"matrix": [0, 6], "x": 2.25, "y": 1}, + {"matrix": [0, 7], "x": 3.25, "y": 1}, + {"matrix": [1, 4], "x": 4.25, "y": 1}, + {"matrix": [1, 5], "x": 5.25, "y": 1}, + {"matrix": [1, 6], "x": 6.25, "y": 1}, + {"matrix": [1, 7], "x": 7.25, "y": 1}, + {"matrix": [2, 4], "x": 8.25, "y": 1}, + {"matrix": [2, 5], "x": 9.25, "y": 1}, + {"matrix": [2, 6], "x": 10.25, "y": 1}, + {"matrix": [2, 7], "x": 11.25, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 2}, + {"matrix": [3, 2], "x": 2.75, "y": 2}, + {"matrix": [3, 3], "x": 3.75, "y": 2}, + {"matrix": [4, 0], "x": 4.75, "y": 2}, + {"matrix": [4, 1], "x": 5.75, "y": 2}, + {"matrix": [4, 2], "x": 6.75, "y": 2}, + {"matrix": [4, 3], "x": 7.75, "y": 2}, + {"matrix": [5, 0], "x": 8.75, "y": 2}, + {"matrix": [5, 1], "x": 9.75, "y": 2}, + {"matrix": [5, 2], "x": 10.75, "y": 2}, + {"matrix": [5, 3], "x": 11.75, "y": 2}, + {"matrix": [3, 4], "x": 0, "y": 3}, + {"matrix": [3, 5], "x": 1, "y": 3}, + {"matrix": [3, 6], "x": 2, "y": 3}, + {"matrix": [3, 7], "x": 3, "y": 3, "w": 1.25}, + {"matrix": [4, 4], "x": 4.25, "y": 3, "w": 2}, + {"matrix": [4, 5], "x": 6.25, "y": 3, "w": 2.25}, + {"matrix": [5, 4], "x": 8.5, "y": 3, "w": 1.25}, + {"matrix": [5, 5], "x": 9.75, "y": 3}, + {"matrix": [5, 6], "x": 10.75, "y": 3}, + {"matrix": [5, 7], "x": 11.75, "y": 3} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/takashicompany/klec_01/keymaps/default/keymap.c b/keyboards/takashicompany/klec_01/keymaps/default/keymap.c new file mode 100644 index 00000000000..551c211b73a --- /dev/null +++ b/keyboards/takashicompany/klec_01/keymaps/default/keymap.c @@ -0,0 +1,69 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, LT(7, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, KC_ENT, + KC_LSFT, LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_UP, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(2, KC_SPC), LT(1, KC_LNG1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT( + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_TRNS, LCTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_INT1, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_INT3, KC_TRNS, + KC_TRNS, LSFT_T(KC_PLUS), KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT( + KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, LGUI(KC_INT3), KC_TRNS, + KC_TRNS, KC_PLUS, KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3), KC_TRNS, + KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [3] = LAYOUT( + KC_TRNS, LT(7, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TRNS, + KC_TRNS, KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, KC_TRNS, + KC_TRNS, LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [4] = LAYOUT( + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, KC_TRNS, + KC_TRNS, KC_CIRC, KC_AT, KC_SLSH, KC_MINS, KC_UNDS, KC_SCLN, KC_COLN, KC_LBRC, KC_RBRC, KC_INT3, KC_TRNS, + KC_TRNS, LT(5, KC_TILD), KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [5] = LAYOUT( + KC_TRNS, KC_EXLM, KC_DQUO, KC_HASH, KC_DLR, KC_PERC, KC_AMPR, KC_QUOT, KC_LPRN, KC_RPRN, KC_BSLS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TILD, KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, + KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [6] = LAYOUT( + KC_TRNS, KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, KC_LCTL, KC_TRNS, KC_QUES, KC_EXLM, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS, + KC_TRNS, KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_TRNS, KC_NO, KC_LNG1, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [7] = LAYOUT( + KC_TRNS, KC_NO, KC_TAB, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_TRNS, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS, KC_LSFT, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, MO(8), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [8] = LAYOUT( + KC_TRNS, UG_TOGG, UG_NEXT, UG_HUEU, UG_SATU, UG_VALU, KC_NO, KC_NO, KC_NO, DF(0), DF(3), KC_TRNS, KC_TRNS, + KC_TRNS, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, RGB_M_K, RGB_M_X, RGB_M_G, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; \ No newline at end of file diff --git a/keyboards/takashicompany/klec_01/readme.md b/keyboards/takashicompany/klec_01/readme.md new file mode 100644 index 00000000000..e907c7b68a3 --- /dev/null +++ b/keyboards/takashicompany/klec_01/readme.md @@ -0,0 +1,29 @@ +# takashicompany/klec_01 + +![takashicompany/klec_01](https://i.imgur.com/oFZHNFJ.jpeg) + +46-key integrated keyboard. + +The layout is similar to a conventional keyboard, making it a good introduction to 40% keyboards. + +* Keyboard Maintainer: [takashicompany](https://github.com/takashicompany) +* Hardware Supported: PCB, Pro Micro +* Hardware Availability: https://github.com/takashicompany/klec_01 + +Make example for this keyboard (after setting up your build environment): + + make takashicompany/klec_01:default + +Flashing example for this keyboard: + + make takashicompany/klec_01:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 6fbfd659ff361072a512ba8cbdb77632c0357dcc Mon Sep 17 00:00:00 2001 From: takashicompany Date: Wed, 6 Nov 2024 16:43:35 +0900 Subject: [PATCH 019/365] Add new keyboard "KLEC-02" (#24559) Co-authored-by: jack <0x6a73@protonmail.com> --- .../takashicompany/klec_02/keyboard.json | 73 +++++++++++++++++++ .../klec_02/keymaps/default/keymap.c | 70 ++++++++++++++++++ keyboards/takashicompany/klec_02/readme.md | 28 +++++++ 3 files changed, 171 insertions(+) create mode 100644 keyboards/takashicompany/klec_02/keyboard.json create mode 100644 keyboards/takashicompany/klec_02/keymaps/default/keymap.c create mode 100644 keyboards/takashicompany/klec_02/readme.md diff --git a/keyboards/takashicompany/klec_02/keyboard.json b/keyboards/takashicompany/klec_02/keyboard.json new file mode 100644 index 00000000000..045c4ef315c --- /dev/null +++ b/keyboards/takashicompany/klec_02/keyboard.json @@ -0,0 +1,73 @@ +{ + "manufacturer": "takashicompany", + "keyboard_name": "KLEC-02", + "maintainer": "takashicompany", + "development_board": "promicro", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["D4", "C6", "D7", "E6", "B4"], + "rows": ["F4", "F5", "F6", "F7"] + }, + "split": { + "enabled": true, + "serial": { + "pin": "D2" + } + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x1002", + "vid": "0x7463" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [4, 0], "x": 6.25, "y": 0}, + {"matrix": [4, 1], "x": 7.25, "y": 0}, + {"matrix": [4, 2], "x": 8.25, "y": 0}, + {"matrix": [4, 3], "x": 9.25, "y": 0}, + {"matrix": [4, 4], "x": 10.25, "y": 0}, + {"matrix": [1, 0], "x": 0.25, "y": 1}, + {"matrix": [1, 1], "x": 1.25, "y": 1}, + {"matrix": [1, 2], "x": 2.25, "y": 1}, + {"matrix": [1, 3], "x": 3.25, "y": 1}, + {"matrix": [1, 4], "x": 4.25, "y": 1}, + {"matrix": [5, 0], "x": 6.5, "y": 1}, + {"matrix": [5, 1], "x": 7.5, "y": 1}, + {"matrix": [5, 2], "x": 8.5, "y": 1}, + {"matrix": [5, 3], "x": 9.5, "y": 1}, + {"matrix": [5, 4], "x": 10.5, "y": 1}, + {"matrix": [2, 0], "x": 0.5, "y": 2}, + {"matrix": [2, 1], "x": 1.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 3], "x": 3.5, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [6, 0], "x": 6.75, "y": 2}, + {"matrix": [6, 1], "x": 7.75, "y": 2}, + {"matrix": [6, 2], "x": 8.75, "y": 2}, + {"matrix": [6, 3], "x": 9.75, "y": 2}, + {"matrix": [6, 4], "x": 10.75, "y": 2}, + {"matrix": [3, 2], "x": 2.75, "y": 3}, + {"matrix": [3, 3], "x": 3.75, "y": 3, "w": 1.25}, + {"matrix": [3, 4], "x": 5, "y": 3}, + {"matrix": [7, 0], "x": 6.25, "y": 3}, + {"matrix": [7, 1], "x": 7.25, "y": 3, "w": 1.25}, + {"matrix": [7, 2], "x": 8.5, "y": 3} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/takashicompany/klec_02/keymaps/default/keymap.c b/keyboards/takashicompany/klec_02/keymaps/default/keymap.c new file mode 100644 index 00000000000..0431b8e6b7e --- /dev/null +++ b/keyboards/takashicompany/klec_02/keymaps/default/keymap.c @@ -0,0 +1,70 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + LT(7, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, + LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, + KC_LGUI, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(2, KC_SPC), LT(1, KC_LNG1), KC_RGUI + ), + + [1] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + LCTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_INT1, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_INT3, + LSFT_T(KC_PLUS), KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, LGUI(KC_INT3), + KC_PLUS, KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3), + KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [3] = LAYOUT( + LT(7, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, + LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, + KC_LGUI, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(5, KC_SPC), LT(4, KC_LNG1), KC_RGUI + ), + + [4] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_CIRC, KC_AT, KC_SLSH, KC_MINS, KC_UNDS, KC_SCLN, KC_COLN, KC_LBRC, KC_RBRC, KC_INT3, + LT(5, KC_TILD), KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [5] = LAYOUT( + KC_EXLM, KC_DQUO, KC_HASH, KC_DLR, KC_PERC, KC_AMPR, KC_QUOT, KC_LPRN, KC_RPRN, KC_BSLS, + KC_TILD, KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, + KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [6] = LAYOUT( + KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, + KC_LCTL, KC_TRNS, KC_QUES, KC_EXLM, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, + KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_TRNS, KC_NO, KC_LNG1, KC_NO, KC_NO, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [7] = LAYOUT( + KC_NO, KC_TAB, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_NO, KC_NO, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_LSFT, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, MO(8), MO(9), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [8] = LAYOUT( + UG_TOGG, UG_NEXT, UG_HUEU, UG_SATU, UG_VALU, KC_NO, KC_NO, KC_NO, DF(0), DF(3), + RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + RGB_M_K, RGB_M_X, RGB_M_G, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; \ No newline at end of file diff --git a/keyboards/takashicompany/klec_02/readme.md b/keyboards/takashicompany/klec_02/readme.md new file mode 100644 index 00000000000..0b492a5e18a --- /dev/null +++ b/keyboards/takashicompany/klec_02/readme.md @@ -0,0 +1,28 @@ +# KLEC-02 + +![takashicompany/klec_02](https://i.imgur.com/1w6agBI.jpeg) + +The KLEC-02 is a 36-key segmented keyboard. +The PCB can be fitted with key switch sockets, allowing easy replacement of key switches. + +* Keyboard Maintainer: [takashicompany](https://github.com/takashicompany) +* Hardware Supported: PCB, Pro Micro +* Hardware Availability: https://github.com/takashicompany/klec_02 + +Make example for this keyboard (after setting up your build environment): + + make takashicompany/klec_02:default + +Flashing example for this keyboard: + + make takashicompany/klec_02:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From f5f11b7c797c28f2ed8177fcf7c81e6207346184 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20B=C3=BCchler?= Date: Wed, 6 Nov 2024 08:45:20 +0100 Subject: [PATCH 020/365] Add keyboards/converter/thinkpad_t6x/rpi_pico (#23696) --- .../thinkpad_t6x/rpi_pico/keyboard.json | 131 ++++++++++++++++++ .../rpi_pico/keymaps/default/keymap.c | 17 +++ .../converter/thinkpad_t6x/rpi_pico/readme.md | 27 ++++ 3 files changed, 175 insertions(+) create mode 100644 keyboards/converter/thinkpad_t6x/rpi_pico/keyboard.json create mode 100644 keyboards/converter/thinkpad_t6x/rpi_pico/keymaps/default/keymap.c create mode 100644 keyboards/converter/thinkpad_t6x/rpi_pico/readme.md diff --git a/keyboards/converter/thinkpad_t6x/rpi_pico/keyboard.json b/keyboards/converter/thinkpad_t6x/rpi_pico/keyboard.json new file mode 100644 index 00000000000..4f876a4a94e --- /dev/null +++ b/keyboards/converter/thinkpad_t6x/rpi_pico/keyboard.json @@ -0,0 +1,131 @@ +{ + "manufacturer": "strobo5", + "keyboard_name": "converter/thinkpad_t6x/rpi_pico", + "maintainer": "strobo5", + "board": "GENERIC_RP_RP2040", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true + }, + "matrix_pins": { + "cols": ["GP7", "GP9", "GP11", "GP13", "GP17", "GP16", "GP14", "GP12", "GP15", "GP8", "GP10", "GP6", "GP4", "GP2", "GP5", "GP3"], + "rows": ["GP20", "GP26", "GP22", "GP21", "GP18", "GP19", "GP27", "GP28"] + }, + "processor": "RP2040", + "ps2": { + "clock_pin": "GP1", + "data_pin": "GP0", + "driver": "vendor", + "enabled": true, + "mouse_enabled": true + }, + "url": "https://github.com/strobo5/T61_PiPico_Scanner", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT_iso": { + "layout": [ + {"label": "Esc", "matrix": [5, 0], "x": 0, "y": 0, "w": 0.9, "h": 0.75}, + {"label": "Mute", "matrix": [4, 10], "x": 0.9, "y": 0, "w": 0.75, "h": 0.5}, + {"label": "Vol -", "matrix": [3, 10], "x": 1.65, "y": 0, "w": 0.75, "h": 0.5}, + {"label": "Vol +", "matrix": [2, 10], "x": 2.4, "y": 0, "w": 0.75, "h": 0.5}, + {"label": "ThinkVantage", "matrix": [5, 10], "x": 3.5, "y": 0, "w": 1.25, "h": 0.5}, + {"label": "PrtSc", "matrix": [1, 13], "x": 8.9, "y": 0, "w": 0.9, "h": 0.65}, + {"label": "ScrLk", "matrix": [2, 13], "x": 9.8, "y": 0, "w": 0.9, "h": 0.65}, + {"label": "Pause", "matrix": [6, 12], "x": 10.7, "y": 0, "w": 0.9, "h": 0.65}, + {"label": "Insert", "matrix": [0, 9], "x": 12, "y": 0, "w": 0.9, "h": 0.65}, + {"label": "Home", "matrix": [0, 12], "x": 12.9, "y": 0, "w": 0.9, "h": 0.65}, + {"label": "PgUp", "matrix": [0, 11], "x": 13.8, "y": 0, "w": 0.9, "h": 0.65}, + {"label": "F1", "matrix": [0, 1], "x": 0, "y": 0.75, "w": 0.9, "h": 0.65}, + {"label": "F2", "matrix": [0, 2], "x": 0.9, "y": 0.75, "w": 0.9, "h": 0.65}, + {"label": "F3", "matrix": [3, 2], "x": 1.8, "y": 0.75, "w": 0.9, "h": 0.65}, + {"label": "F4", "matrix": [5, 2], "x": 2.7, "y": 0.75, "w": 0.9, "h": 0.65}, + {"label": "F5", "matrix": [5, 8], "x": 4, "y": 0.75, "w": 0.9, "h": 0.65}, + {"label": "F6", "matrix": [5, 5], "x": 4.9, "y": 0.75, "w": 0.9, "h": 0.65}, + {"label": "F7", "matrix": [3, 6], "x": 5.8, "y": 0.75, "w": 0.9, "h": 0.65}, + {"label": "F8", "matrix": [0, 6], "x": 6.7, "y": 0.75, "w": 0.9, "h": 0.65}, + {"label": "F9", "matrix": [0, 8], "x": 8, "y": 0.75, "w": 0.9, "h": 0.65}, + {"label": "F10", "matrix": [1, 8], "x": 8.9, "y": 0.75, "w": 0.9, "h": 0.65}, + {"label": "F11", "matrix": [1, 10], "x": 9.8, "y": 0.75, "w": 0.9, "h": 0.65}, + {"label": "F12", "matrix": [1, 9], "x": 10.7, "y": 0.75, "w": 0.9, "h": 0.65}, + {"label": "Delete", "matrix": [0, 10], "x": 12, "y": 0.75, "w": 0.9, "h": 0.65}, + {"label": "End", "matrix": [1, 12], "x": 12.9, "y": 0.75, "w": 0.9, "h": 0.65}, + {"label": "PgDn", "matrix": [1, 11], "x": 13.8, "y": 0.75, "w": 0.9, "h": 0.65}, + {"label": "`\u00ac", "matrix": [0, 0], "x": 0, "y": 1.4}, + {"label": "1!", "matrix": [1, 0], "x": 1, "y": 1.4}, + {"label": "2\"", "matrix": [1, 1], "x": 2, "y": 1.4}, + {"label": "3\u00a3", "matrix": [1, 2], "x": 3, "y": 1.4}, + {"label": "4$", "matrix": [1, 3], "x": 4, "y": 1.4}, + {"label": "5%", "matrix": [0, 3], "x": 5, "y": 1.4}, + {"label": "6^", "matrix": [0, 4], "x": 6, "y": 1.4}, + {"label": "7&", "matrix": [1, 4], "x": 7, "y": 1.4}, + {"label": "8*", "matrix": [1, 5], "x": 8, "y": 1.4}, + {"label": "9(", "matrix": [1, 6], "x": 9, "y": 1.4}, + {"label": "0)", "matrix": [1, 7], "x": 10, "y": 1.4}, + {"label": "-_", "matrix": [0, 7], "x": 11, "y": 1.4}, + {"label": "=+", "matrix": [0, 5], "x": 12, "y": 1.4}, + {"label": "Bksp", "matrix": [3, 8], "x": 13, "y": 1.4, "w": 2}, + {"label": "Tab", "matrix": [3, 0], "x": 0, "y": 2.4, "w": 1.5}, + {"label": "Q", "matrix": [2, 0], "x": 1.5, "y": 2.4}, + {"label": "W", "matrix": [2, 1], "x": 2.5, "y": 2.4}, + {"label": "E", "matrix": [2, 2], "x": 3.5, "y": 2.4}, + {"label": "R", "matrix": [2, 3], "x": 4.5, "y": 2.4}, + {"label": "T", "matrix": [3, 3], "x": 5.5, "y": 2.4}, + {"label": "Y", "matrix": [3, 4], "x": 6.5, "y": 2.4}, + {"label": "U", "matrix": [2, 4], "x": 7.5, "y": 2.4}, + {"label": "I", "matrix": [2, 5], "x": 8.5, "y": 2.4}, + {"label": "O", "matrix": [2, 6], "x": 9.5, "y": 2.4}, + {"label": "P", "matrix": [2, 7], "x": 10.5, "y": 2.4}, + {"label": "[{", "matrix": [3, 7], "x": 11.5, "y": 2.4}, + {"label": "]}", "matrix": [3, 5], "x": 12.5, "y": 2.4}, + {"label": "Caps Lock", "matrix": [3, 1], "x": 0, "y": 3.4, "w": 1.75}, + {"label": "A", "matrix": [4, 0], "x": 1.75, "y": 3.4}, + {"label": "S", "matrix": [4, 1], "x": 2.75, "y": 3.4}, + {"label": "D", "matrix": [4, 2], "x": 3.75, "y": 3.4}, + {"label": "F", "matrix": [4, 3], "x": 4.75, "y": 3.4}, + {"label": "G", "matrix": [5, 3], "x": 5.75, "y": 3.4}, + {"label": "H", "matrix": [5, 4], "x": 6.75, "y": 3.4}, + {"label": "J", "matrix": [4, 4], "x": 7.75, "y": 3.4}, + {"label": "K", "matrix": [4, 5], "x": 8.75, "y": 3.4}, + {"label": "L", "matrix": [4, 6], "x": 9.75, "y": 3.4}, + {"label": ";:", "matrix": [4, 7], "x": 10.75, "y": 3.4}, + {"label": "'@", "matrix": [5, 7], "x": 11.75, "y": 3.4}, + {"label": "#~", "matrix": [6, 7], "x": 12.75, "y": 3.4}, + {"label": "Enter", "matrix": [6, 8], "x": 13.75, "y": 2.4, "w": 1.25, "h": 2}, + {"label": "Shift", "matrix": [3, 14], "x": 0, "y": 4.4, "w": 1.25}, + {"label": "\\|", "matrix": [5, 1], "x": 1.25, "y": 4.4}, + {"label": "Z", "matrix": [6, 0], "x": 2.25, "y": 4.4}, + {"label": "X", "matrix": [6, 1], "x": 3.25, "y": 4.4}, + {"label": "C", "matrix": [6, 2], "x": 4.25, "y": 4.4}, + {"label": "V", "matrix": [6, 3], "x": 5.25, "y": 4.4}, + {"label": "B", "matrix": [7, 3], "x": 6.25, "y": 4.4}, + {"label": "N", "matrix": [7, 4], "x": 7.25, "y": 4.4}, + {"label": "M", "matrix": [6, 4], "x": 8.25, "y": 4.4}, + {"label": ",<", "matrix": [6, 5], "x": 9.25, "y": 4.4}, + {"label": ".>", "matrix": [6, 6], "x": 10.25, "y": 4.4}, + {"label": "/?", "matrix": [7, 7], "x": 11.25, "y": 4.4}, + {"label": "Shift", "matrix": [6, 14], "x": 12.25, "y": 4.4, "w": 2.75}, + {"label": "Fn", "matrix": [4, 9], "x": 0, "y": 5.4}, + {"label": "Ctrl", "matrix": [0, 15], "x": 1, "y": 5.4, "w": 1.25}, + {"label": "Left OS", "matrix": [2, 11], "x": 2.25, "y": 5.4, "w": 0.9}, + {"label": "Alt", "matrix": [5, 13], "x": 3.15, "y": 5.4}, + {"label": "Space", "matrix": [7, 8], "x": 4.15, "y": 5.4, "w": 5}, + {"label": "AltGr", "matrix": [7, 13], "x": 9.25, "y": 5.4}, + {"label": "Menu", "matrix": [4, 11], "x": 10.25, "y": 5.4}, + {"label": "Ctrl", "matrix": [6, 15], "x": 11.25, "y": 5.4}, + {"label": "Browser Back", "matrix": [6, 11], "x": 12.25, "y": 5.4, "w": 0.9, "h": 0.75}, + {"label": "Up", "matrix": [5, 12], "x": 13.15, "y": 5.4, "w": 0.9, "h": 0.75}, + {"label": "Browser Forward", "matrix": [7, 11], "x": 14.05, "y": 5.4, "w": 0.9, "h": 0.75}, + {"label": "Left", "matrix": [7, 12], "x": 12.25, "y": 6.15, "w": 0.9, "h": 0.75}, + {"label": "Down", "matrix": [7, 10], "x": 13.15, "y": 6.15, "w": 0.9, "h": 0.75}, + {"label": "Right", "matrix": [7, 9], "x": 14.05, "y": 6.15, "w": 0.9, "h": 0.75} + ] + } + } +} diff --git a/keyboards/converter/thinkpad_t6x/rpi_pico/keymaps/default/keymap.c b/keyboards/converter/thinkpad_t6x/rpi_pico/keymaps/default/keymap.c new file mode 100644 index 00000000000..4dac20888fb --- /dev/null +++ b/keyboards/converter/thinkpad_t6x/rpi_pico/keymaps/default/keymap.c @@ -0,0 +1,17 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_iso( + KC_ESC, KC_MUTE, KC_VOLD, KC_VOLU, QK_BOOT, KC_PSCR, KC_SCRL, KC_PAUS, KC_INS, KC_HOME, KC_PGUP, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_END, KC_PGDN, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_NO, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_RCTL, KC_WBAK, KC_UP , KC_WFWD, + KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/keyboards/converter/thinkpad_t6x/rpi_pico/readme.md b/keyboards/converter/thinkpad_t6x/rpi_pico/readme.md new file mode 100644 index 00000000000..0008dad2f14 --- /dev/null +++ b/keyboards/converter/thinkpad_t6x/rpi_pico/readme.md @@ -0,0 +1,27 @@ +# converter/thinkpad_t6x/rpi_pico + +![converter/thinkpad_t6x/rpi_pico](https://i.imgur.com/wUG9p6eh.jpeg) + +This is a converter PCB for Lenovo Thinkpad keyboards from a wide range of models (T60, T61, X220, ...), based on the Raspberry Pi Pico. The QMK implementation here is specific to the converter in the link below. Similar PCB designs to convert a Thinkpad keyboard to USB exist, but they use a different microcontroller and wiring of the keyboard connector with the MCU. + +* Keyboard Maintainer: [Michael Büchler](https://github.com/strobo5) +* Hardware Supported: The linked converter PCB with keyboards from various Thinkpad models +* Hardware Availability: [Custom PCB](https://github.com/strobo5/T61_PiPico_Scanner) + +Make example for this keyboard (after setting up your build environment): + + make converter/thinkpad_t6x/rpi_pico:default + +Flashing example for this keyboard: + + make converter/thinkpad_t6x/rpi_pico:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From f4e6af2dbe8c2b0d24dfa14e58d3be02bd6b2b7d Mon Sep 17 00:00:00 2001 From: Diego Andres Rabaioli Date: Wed, 6 Nov 2024 08:46:17 +0100 Subject: [PATCH 021/365] Adding SdraKb00 keyboard (#24552) Co-authored-by: jack Co-authored-by: Duncan Sutherland --- keyboards/sdrakbs/sdrakb00/keyboard.json | 71 ++++++++++++++++++ .../sdrakbs/sdrakb00/keymaps/default/keymap.c | 74 +++++++++++++++++++ keyboards/sdrakbs/sdrakb00/readme.md | 52 +++++++++++++ 3 files changed, 197 insertions(+) create mode 100644 keyboards/sdrakbs/sdrakb00/keyboard.json create mode 100644 keyboards/sdrakbs/sdrakb00/keymaps/default/keymap.c create mode 100644 keyboards/sdrakbs/sdrakb00/readme.md diff --git a/keyboards/sdrakbs/sdrakb00/keyboard.json b/keyboards/sdrakbs/sdrakb00/keyboard.json new file mode 100644 index 00000000000..f9e24cc63f0 --- /dev/null +++ b/keyboards/sdrakbs/sdrakb00/keyboard.json @@ -0,0 +1,71 @@ +{ + "manufacturer": "Diego Andres Rabaioli", + "keyboard_name": "sdrakb00", + "maintainer": "drabaioli", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "B5", "pin_b": "B6", "resolution": 2} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["F0", "F1", "F4", "F5"], + "rows": ["D4", "D6", "D7"] + }, + "processor": "atmega32u4", + "rgb_matrix": { + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4} + ], + "max_brightness": 100, + "sleep": true, + "timeout": 300000 + }, + "url": "https://github.com/drabaioli/SdraKb00", + "usb": { + "device_version": "1.0.0", + "pid": "0x4200", + "vid": "0x7331" + }, + "ws2812": { + "pin": "B0" + }, + "layouts": { + "LAYOUT_ortho_3x4": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0, "encoder": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2} + ] + } + } +} diff --git a/keyboards/sdrakbs/sdrakb00/keymaps/default/keymap.c b/keyboards/sdrakbs/sdrakb00/keymaps/default/keymap.c new file mode 100644 index 00000000000..c5481b1076e --- /dev/null +++ b/keyboards/sdrakbs/sdrakb00/keymaps/default/keymap.c @@ -0,0 +1,74 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +/* Keymap for 3x4 Macropad + * + * Layer 0 (Base Layer) - Numpad layout with mute button and layer toggle: + * ,----------------------, + * | 7 | 8 | 9 | MUTE | + * |-------+-------+-------+--------| + * | 4 | 5 | 6 | Layer1 | + * |-------+-------+-------+--------| + * | 1 | 2 | 3 | 0 | + * `-----------------------^--------' + * + * Layer 1 (Function Layer) - Accessed by holding MO(1): + * ,----------------------, + * | BKSP | / | - | ---- | + * |-------+-------+-------+--------| + * | = | * | + | ---- | + * |-------+-------+-------+--------| + * | ENTER | ---- | ---- | . | + * `-----------------------^--------' + * + * The base layer (0) provides standard numpad functionality with: + * - Numbers 0-9 in traditional numpad layout + * - Mute button in top right + * - Layer 1 momentary toggle (MO1) in middle right + * + * The function layer (1) adds: + * - Basic mathematical operators (+, -, *, /) + * - Backspace, Enter, and decimal point + * - Equal sign for calculations + * - Empty slots marked as ---- (KC_NO) + */ +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_ortho_3x4( + KC_KP_7, KC_KP_8, KC_KP_9, KC_MUTE, + KC_KP_4, KC_KP_5, KC_KP_6, MO(1), + KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_0 + ), + + [1] = LAYOUT_ortho_3x4( + KC_BACKSPACE, KC_KP_SLASH, KC_KP_MINUS, _______, + KC_EQUAL, KC_KP_ASTERISK, KC_KP_PLUS, _______, + KC_ENTER, _______, _______, KC_KP_DOT + ) +}; + + +/* + * Handle layer state changes by updating RGB matrix colors + * + * Sets RGB matrix colors based on active layer: + * - Layer 0: Light green (#88FB7A) + * - Layer 1: Red + * - Other layers: Red (fallback) + */ +layer_state_t layer_state_set_user(layer_state_t state) { + switch (get_highest_layer(state)) { + case 0: + rgb_matrix_sethsv(85, 255, 251); // #88FB7A for layer 0 + break; + case 1: + rgb_matrix_sethsv(0, 255, 255); // Red for layer 1 + break; + default: + rgb_matrix_sethsv(0, 255, 255); // Red for any other layer + break; + } + return state; +} diff --git a/keyboards/sdrakbs/sdrakb00/readme.md b/keyboards/sdrakbs/sdrakb00/readme.md new file mode 100644 index 00000000000..21e56f9595a --- /dev/null +++ b/keyboards/sdrakbs/sdrakb00/readme.md @@ -0,0 +1,52 @@ +# sdrakb00 + +![sdrakb00](https://i.imgur.com/0HfpFqW.jpeg) + +11 keys hot-swap macropad with rotary encoder. + +Macropad features: +- 11 hot-swap keys +- Rotary encoder with push button +- AtMega32U4 MCU +- Per-key RGB led for backlighting +- USB-C connector +- On PCB SPI header +- MCU reset button +- Switch mounting plate +- Power LED indicator + +* Keyboard Maintainer: [Diego Andres Rabaioli](https://github.com/drabaioli) +* Hardware Supported: Pro Micro Atmega32u4 based macropad with 11 keys, RGB LED chain and rotary encoder +* Hardware Availability: [Get the gerbers and have fun building it your self ;)](https://github.com/drabaioli/SdraKb00) + +Build SdraKb00 firmware: + + make sdrakbs/sdrakb00:default + +Flashing SdraKb00 firmware, execute: + + make sdrakbs/sdrakb00:default:flash + +Then press the reset button on the back side of the PCB. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Physical reset button** (preferred): Briefly press the button on the back of the PCB +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard + +## Default Keymap + +### Base Layer (0) +- NumPad layout (1-9, 0) +- Encoder: Volume Up/Down +- Encoder Push: Mute +- Layer Switch: Hold (1,3) key for function layer + +### Function Layer (1) +- NumPad operators (+, -, *, /) +- Enter, "=" and backspace keys +- Decimal point From 54860ed23841524376084f609651a3bfd71dc6ca Mon Sep 17 00:00:00 2001 From: Bennett Balogh <88569963+AwesomeBalogh@users.noreply.github.com> Date: Thu, 7 Nov 2024 17:58:33 -0700 Subject: [PATCH 022/365] [Keyboard] Add Teton78 (#24562) * Added Teton_78 qmk keyboard files * Fixed a syntax issue * Waffles suggested changes * Read me updated Used the Alpine65 reame to model off. * Update keyboards/mountainmechdesigns/teton_78/keymaps/default/keymap.c Co-authored-by: jack * Accidental File * Updated readme with missing info * Update readme.md * Update keyboards/mountainmechdesigns/teton_78/readme.md Co-authored-by: Ryan * Update keyboards/mountainmechdesigns/teton_78/readme.md Co-authored-by: Ryan * Update keyboards/mountainmechdesigns/teton_78/readme.md Co-authored-by: Joel Challis --------- Co-authored-by: jack Co-authored-by: Ryan Co-authored-by: Joel Challis --- .../teton_78/keyboard.json | 113 ++++++++++++++++++ .../teton_78/keymaps/default/keymap.c | 29 +++++ .../mountainmechdesigns/teton_78/readme.md | 37 ++++++ 3 files changed, 179 insertions(+) create mode 100644 keyboards/mountainmechdesigns/teton_78/keyboard.json create mode 100644 keyboards/mountainmechdesigns/teton_78/keymaps/default/keymap.c create mode 100644 keyboards/mountainmechdesigns/teton_78/readme.md diff --git a/keyboards/mountainmechdesigns/teton_78/keyboard.json b/keyboards/mountainmechdesigns/teton_78/keyboard.json new file mode 100644 index 00000000000..d6f5ce9cd83 --- /dev/null +++ b/keyboards/mountainmechdesigns/teton_78/keyboard.json @@ -0,0 +1,113 @@ +{ + "manufacturer": "Bennett Balogh", + "keyboard_name": "teton_78", + "maintainer": "qmk", + "bootloader": "atmel-dfu", + "bootmagic": { + "matrix": [0, 2] + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["F7", "F6", "F5", "F4", "F1", "F0", "B0", "B1", "B2", "B3", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7"], + "rows": ["D0", "D1", "D2", "D3", "D5"] + }, + "processor": "atmega32u4", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x3349", + "vid": "0x8A5B" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 0, "y": 1}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.25, "y": 0}, + {"matrix": [0, 6], "x": 6.25, "y": 0}, + {"matrix": [0, 7], "x": 7.25, "y": 0}, + {"matrix": [0, 8], "x": 8.25, "y": 0}, + {"matrix": [0, 9], "x": 9.25, "y": 0}, + {"matrix": [0, 10], "x": 10.25, "y": 0}, + {"matrix": [0, 11], "x": 11.25, "y": 0}, + {"matrix": [0, 12], "x": 12.25, "y": 0}, + {"matrix": [0, 13], "x": 13.25, "y": 0}, + {"matrix": [0, 14], "x": 14.25, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0, "w": 2}, + {"matrix": [0, 16], "x": 17.5, "y": 0}, + {"matrix": [0, 17], "x": 18.5, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2.25, "y": 1, "w": 1.5}, + {"matrix": [1, 3], "x": 3.75, "y": 1}, + {"matrix": [1, 4], "x": 4.75, "y": 1}, + {"matrix": [1, 5], "x": 5.75, "y": 1}, + {"matrix": [1, 6], "x": 6.75, "y": 1}, + {"matrix": [1, 7], "x": 7.75, "y": 1}, + {"matrix": [1, 8], "x": 8.75, "y": 1}, + {"matrix": [1, 9], "x": 9.75, "y": 1}, + {"matrix": [1, 10], "x": 10.75, "y": 1}, + {"matrix": [1, 11], "x": 11.75, "y": 1}, + {"matrix": [1, 12], "x": 12.75, "y": 1}, + {"matrix": [1, 13], "x": 13.75, "y": 1}, + {"matrix": [1, 14], "x": 14.75, "y": 1}, + {"matrix": [1, 15], "x": 15.75, "y": 1, "w": 1.5}, + {"matrix": [1, 16], "x": 17.5, "y": 1}, + {"matrix": [1, 17], "x": 18.5, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2.25, "y": 2, "w": 1.75}, + {"matrix": [2, 3], "x": 4, "y": 2}, + {"matrix": [2, 4], "x": 5, "y": 2}, + {"matrix": [2, 5], "x": 6, "y": 2}, + {"matrix": [2, 6], "x": 7, "y": 2}, + {"matrix": [2, 7], "x": 8, "y": 2}, + {"matrix": [2, 8], "x": 9, "y": 2}, + {"matrix": [2, 9], "x": 10, "y": 2}, + {"matrix": [2, 10], "x": 11, "y": 2}, + {"matrix": [2, 11], "x": 12, "y": 2}, + {"matrix": [2, 12], "x": 13, "y": 2}, + {"matrix": [2, 13], "x": 14, "y": 2}, + {"matrix": [2, 14], "x": 15, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 2.25}, + {"matrix": [3, 3], "x": 4.5, "y": 3}, + {"matrix": [3, 4], "x": 5.5, "y": 3}, + {"matrix": [3, 5], "x": 6.5, "y": 3}, + {"matrix": [3, 6], "x": 7.5, "y": 3}, + {"matrix": [3, 7], "x": 8.5, "y": 3}, + {"matrix": [3, 8], "x": 9.5, "y": 3}, + {"matrix": [3, 9], "x": 10.5, "y": 3}, + {"matrix": [3, 10], "x": 11.5, "y": 3}, + {"matrix": [3, 11], "x": 12.5, "y": 3}, + {"matrix": [3, 12], "x": 13.5, "y": 3}, + {"matrix": [3, 13], "x": 14.5, "y": 3, "w": 2.75}, + {"matrix": [3, 16], "x": 17.5, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.25}, + {"matrix": [4, 3], "x": 3.5, "y": 4, "w": 1.25}, + {"matrix": [4, 4], "x": 4.75, "y": 4, "w": 1.25}, + {"matrix": [4, 7], "x": 6, "y": 4, "w": 6.25}, + {"matrix": [4, 11], "x": 12.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 14.75, "y": 4, "w": 1.25}, + {"matrix": [4, 14], "x": 16.5, "y": 4, "w": 1.25}, + {"matrix": [4, 16], "x": 17.5, "y": 4, "w": 1.25}, + {"matrix": [4, 17], "x": 18.5, "y": 4, "w": 1.25} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/mountainmechdesigns/teton_78/keymaps/default/keymap.c b/keyboards/mountainmechdesigns/teton_78/keymaps/default/keymap.c new file mode 100644 index 00000000000..c4762d577d6 --- /dev/null +++ b/keyboards/mountainmechdesigns/teton_78/keymaps/default/keymap.c @@ -0,0 +1,29 @@ +/* Copyright 2024 Bennett Balogh LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + + [0] = LAYOUT( + + KC_F1, KC_F6, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, + KC_F2, KC_F7, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, + KC_F3, KC_F8, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_F4, KC_F9, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_F5, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT) +}; diff --git a/keyboards/mountainmechdesigns/teton_78/readme.md b/keyboards/mountainmechdesigns/teton_78/readme.md new file mode 100644 index 00000000000..40ef5c436bf --- /dev/null +++ b/keyboards/mountainmechdesigns/teton_78/readme.md @@ -0,0 +1,37 @@ +# Teton 78 QMK Firmware + +## Introduction + +![Teton 78](https://i.imgur.com/MnASIrv.jpeg) + +This is the QMK firmware repository for the Teton78, a 68XT solder and hotswao keyboard designed by Mountain Mech Designs - Bennett Balogh. + +The Teton 78 has entered GB and sucessfully finalized in November 2024 The IC page for the keyboard can be found [here](https://geekhack.org/index.php?topic=123275.0). +The sale page can be found [here](https://www.mountainmechdesigns.com/) +Discord link can be found [here](https://discord.gg/h9dMwRNfVy) + +## About + +* Keyboard Maintainer: [Bennett Balogh](https://github.com/AwesomeBalogh) +* Hardware Supported: Atmega32u4 +* Hardware Availability: N/A + +## How to compile + +After setting up your build environment, you can compile the Teton 78 default keymap by using: + + make mountainmechdesigns/teton_78:default + +Flash using + + make mountainmechdesigns/teton_78:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file From 3cda9ffcd65cd8d08039e389e3888eb493bd69e2 Mon Sep 17 00:00:00 2001 From: "Christian C. Berclaz" Date: Fri, 8 Nov 2024 01:58:57 +0100 Subject: [PATCH 023/365] Adding support for Windstudio's Wind X R1 keyboard (#24564) * Added a default firmware and layout for the WindStudio Wind X R1 keyboard. * Wind X R1: cleaned-up the folders to make clear that this firmware is for the release 1 of this keyboard. * Added rules.mk to the default layout * Renamed the folder R1 into r1. * Added readme.md files for the keyboard and default layout. * Added a license header to keymap.c * Update keyboards/windstudio/wind_x/r1/keyboard.json Co-authored-by: jack * Update keyboards/windstudio/wind_x/r1/keyboard.json Co-authored-by: jack * Update keyboards/windstudio/wind_x/r1/keymaps/default/keymap.c Co-authored-by: jack * Update keyboards/windstudio/wind_x/r1/readme.md Co-authored-by: jack * Added a proper link to the image (logo of windstudio) * Wind X R1 - Corrected the default keymap with the QK_GESC key instead of the KC_ESC. - Removed the unnecessary rules.mk in the default layout * Wind X R1: applied `qmk format-json -i` on keyboard.json to conform with the project formatt standards. * Added a picture of the keyboard. * Added a caption to the image. --------- Co-authored-by: jack --- keyboards/windstudio/wind_x/r1/keyboard.json | 205 ++++++++++++++++++ .../wind_x/r1/keymaps/default/keymap.c | 40 ++++ .../wind_x/r1/keymaps/default/readme.md | 6 + keyboards/windstudio/wind_x/r1/readme.md | 28 +++ 4 files changed, 279 insertions(+) create mode 100644 keyboards/windstudio/wind_x/r1/keyboard.json create mode 100644 keyboards/windstudio/wind_x/r1/keymaps/default/keymap.c create mode 100644 keyboards/windstudio/wind_x/r1/keymaps/default/readme.md create mode 100644 keyboards/windstudio/wind_x/r1/readme.md diff --git a/keyboards/windstudio/wind_x/r1/keyboard.json b/keyboards/windstudio/wind_x/r1/keyboard.json new file mode 100644 index 00000000000..1b5f34fe3e8 --- /dev/null +++ b/keyboards/windstudio/wind_x/r1/keyboard.json @@ -0,0 +1,205 @@ +{ + "manufacturer": "Windstudio", + "keyboard_name": "Wind X R1", + "maintainer": "chrisgve", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["C7", "C6", "B6", "E6", "F6", "D6", "D7", "B4", "B5", "F7", "B7", "F4", "F5", "D4", "B0", "B1", "B2", "B3"], + "rows": ["F0", "F1", "D2", "D1", "D0"] + }, + "processor": "atmega32u4", + "url": "", + "usb": { + "device_version": "0.0.1", + "pid": "0x6801", + "vid": "0x6F75" + }, + "layout_aliases": { + "LAYOUT_tsangan": "LAYOUT_7u_space_bar_split_bs" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Del", "matrix": [4, 11], "x": 16, "y": 0}, + {"label": "NumLock", "matrix": [0, 14], "x": 18, "y": 0}, + {"label": "KP/", "matrix": [0, 15], "x": 19, "y": 0}, + {"label": "KP*", "matrix": [0, 16], "x": 20, "y": 0}, + {"label": "KP-", "matrix": [0, 17], "x": 21, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "\\", "matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "PgUp", "matrix": [4, 12], "x": 16, "y": 1}, + {"label": "KP7", "matrix": [1, 14], "x": 18, "y": 1}, + {"label": "KP8", "matrix": [1, 15], "x": 19, "y": 1}, + {"label": "KP9", "matrix": [1, 16], "x": 20, "y": 1}, + {"label": "KP+", "matrix": [1, 17], "x": 21, "y": 1}, + {"label": "Caps", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Return", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "PgDn", "matrix": [4, 13], "x": 16, "y": 2}, + {"label": "KP4", "matrix": [2, 14], "x": 18, "y": 2}, + {"label": "KP5", "matrix": [2, 15], "x": 19, "y": 2}, + {"label": "KP6", "matrix": [2, 16], "x": 20, "y": 2}, + {"label": "KP+", "matrix": [2, 17], "x": 21, "y": 2}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Up", "matrix": [3, 13], "x": 13, "y": 3}, + {"label": "KP1", "matrix": [3, 14], "x": 18, "y": 3}, + {"label": "KP2", "matrix": [3, 15], "x": 19, "y": 3}, + {"label": "KP3", "matrix": [3, 16], "x": 20, "y": 3}, + {"label": "Enter", "matrix": [3, 17], "x": 21, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "GUI", "matrix": [4, 6], "x": 10, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 7], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Left", "matrix": [4, 8], "x": 14, "y": 4}, + {"label": "Down", "matrix": [4, 9], "x": 15, "y": 4}, + {"label": "Right", "matrix": [4, 10], "x": 16, "y": 4}, + {"label": "KP0", "matrix": [4, 16], "x": 18, "y": 4}, + {"label": "KP.", "matrix": [4, 17], "x": 19, "y": 4} + ] + }, + "LAYOUT_7u_space_bar_split_bs": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "\\", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "`", "matrix": [1, 13], "x": 14, "y": 0}, + {"label": "PgUp", "matrix": [4, 11], "x": 16, "y": 0}, + {"label": "NumLock", "matrix": [0, 14], "x": 18, "y": 0}, + {"label": "KP/", "matrix": [0, 15], "x": 19, "y": 0}, + {"label": "KP*", "matrix": [0, 16], "x": 20, "y": 0}, + {"label": "KP-", "matrix": [0, 17], "x": 21, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "Backspace", "matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "PgDn", "matrix": [4, 12], "x": 16, "y": 1}, + {"label": "KP7", "matrix": [1, 14], "x": 18, "y": 1}, + {"label": "KP8", "matrix": [1, 15], "x": 19, "y": 1}, + {"label": "KP9", "matrix": [1, 16], "x": 20, "y": 1}, + {"label": "KP+", "matrix": [1, 17], "x": 21, "y": 1}, + {"label": "Ctrl", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Return", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "End", "matrix": [4, 13], "x": 16, "y": 2}, + {"label": "KP4", "matrix": [2, 14], "x": 18, "y": 2}, + {"label": "KP5", "matrix": [2, 15], "x": 19, "y": 2}, + {"label": "KP6", "matrix": [2, 16], "x": 20, "y": 2}, + {"label": "KP+", "matrix": [2, 17], "x": 21, "y": 2}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Up", "matrix": [3, 13], "x": 13, "y": 3}, + {"label": "KP1", "matrix": [3, 14], "x": 18, "y": 3}, + {"label": "KP2", "matrix": [3, 15], "x": 19, "y": 3}, + {"label": "KP3", "matrix": [3, 16], "x": 20, "y": 3}, + {"label": "Enter", "matrix": [3, 17], "x": 21, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "GUI", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7}, + {"label": "Ctrl", "matrix": [4, 7], "x": 11, "y": 4, "w": 1.5}, + {"label": "Left", "matrix": [4, 8], "x": 13, "y": 4}, + {"label": "Down", "matrix": [4, 9], "x": 14, "y": 4}, + {"label": "Right", "matrix": [4, 10], "x": 15, "y": 4}, + {"label": "KP0", "matrix": [4, 16], "x": 18, "y": 4}, + {"label": "KP.", "matrix": [4, 17], "x": 19, "y": 4} + ] + } + } +} diff --git a/keyboards/windstudio/wind_x/r1/keymaps/default/keymap.c b/keyboards/windstudio/wind_x/r1/keymaps/default/keymap.c new file mode 100644 index 00000000000..dd3134e2a0f --- /dev/null +++ b/keyboards/windstudio/wind_x/r1/keymaps/default/keymap.c @@ -0,0 +1,40 @@ +/* Copyright 2024 chrisgve + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, LT(1, KC_SPC), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; + +// clang-format on diff --git a/keyboards/windstudio/wind_x/r1/keymaps/default/readme.md b/keyboards/windstudio/wind_x/r1/keymaps/default/readme.md new file mode 100644 index 00000000000..2fa0952a830 --- /dev/null +++ b/keyboards/windstudio/wind_x/r1/keymaps/default/readme.md @@ -0,0 +1,6 @@ +# Default Wind X R1 Layout + +This is the default layout that comes flashed on every Wind X R1. For the most +part it's a straightforward and easy to follow layout. The only unusual key is +the key in the upper left, which sends Escape normally, but Grave when any of +the Ctrl, Alt, or GUI modifiers are held down. diff --git a/keyboards/windstudio/wind_x/r1/readme.md b/keyboards/windstudio/wind_x/r1/readme.md new file mode 100644 index 00000000000..c501951e422 --- /dev/null +++ b/keyboards/windstudio/wind_x/r1/readme.md @@ -0,0 +1,28 @@ +# WindX R1 by Windstudio + +![WindX R1](https://i.imgur.com/FEVczwG.jpg) +_Compact, yet feature full working or gaming keyboard_ + +A large layout keyboard without the function keys. [More info on geekhack.org](https://geekhack.org/index.php?topic=114767.0) + +- Keyboard Maintainer: [Christian C. Berclaz](https://github.com/chrisgve) +- Hardware Supported: Wind X R1 w/ ATmega32U4 microcontroller +- Hardware Availability: [windstudio.store](https://windstudio.store/collections/wind-x) + +Make example for this keyboard (after setting up your build environment): + + make windstudio/wind_x/r1:default + +Flashing example for this keyboard: + + make windstudio/wind_x/r1:default:flash + +See the [build environment setup](getting_started_build_tools) and the [make instructions](getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +- **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +- **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +- **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 4f9ef90754a79774da5685b786403c130d836ac4 Mon Sep 17 00:00:00 2001 From: HereVoLand <65162585+Vem-596@users.noreply.github.com> Date: Fri, 8 Nov 2024 10:52:41 +0800 Subject: [PATCH 024/365] Add keyboard buff75 (#24297) * Create herevoland * Delete keyboards/herevoland * Add files via upload * Delete keyboards/herevoland/buff75 directory * Add files via upload * Delete keyboards/herevoland/buff75/buff75.h * Delete keyboards/herevoland/buff75/rules.mk * Delete keyboards/herevoland/buff75/halconf.h * Update and rename info.json to keyboard.json * Delete keyboards/herevoland/buff75/matrix_diagram.md * Update readme.md * Update readme.md * Add files via upload * Delete keyboards/herevoland/buff75/keymaps/via directory * Update readme.md * Update keymap.c * Update matrix_diagram.md * Update readme.md * Update keyboard.json * Update readme.md * Update matrix_diagram.md * Update keyboard.json * Update keymap.c * Update keymap.c * Update keyboard.json * Update mcuconf.h * Delete keyboards/herevoland/buff75/mcuconf.h --- keyboards/herevoland/buff75/keyboard.json | 137 ++++++++++++++++++ .../buff75/keymaps/default/keymap.c | 36 +++++ keyboards/herevoland/buff75/matrix_diagram.md | 18 +++ keyboards/herevoland/buff75/readme.md | 25 ++++ 4 files changed, 216 insertions(+) create mode 100644 keyboards/herevoland/buff75/keyboard.json create mode 100644 keyboards/herevoland/buff75/keymaps/default/keymap.c create mode 100644 keyboards/herevoland/buff75/matrix_diagram.md create mode 100644 keyboards/herevoland/buff75/readme.md diff --git a/keyboards/herevoland/buff75/keyboard.json b/keyboards/herevoland/buff75/keyboard.json new file mode 100644 index 00000000000..15f3e27ac18 --- /dev/null +++ b/keyboards/herevoland/buff75/keyboard.json @@ -0,0 +1,137 @@ +{ + "keyboard_name": "Buff75", + "processor": "STM32F103", + "bootloader": "stm32duino", + "manufacturer": "HereVoLand", + "url": "", + "maintainer": "Here VoLand @Vem", + "usb": { + "vid": "0xB727", + "pid": "0xB727", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "nkro": true, + "rgblight": true + }, + "rgblight": { + "led_count": 1, + "brightness_steps": 8, + "saturation_steps": 8, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "alternating": true, + "twinkle": true + } + }, + "ws2812": { + "pin": "B2" + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15", "A8", "B15", "B14", "B13", "B12", "A3", "A4" ], + "rows": ["A5", "B10", "B1", "B0", "A7", "A6"] + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"Esc", "matrix": [0,0], "x":0, "y":0}, + {"label":"F1", "matrix": [0,1], "x":1.5, "y":0}, + {"label":"F2", "matrix": [0,2], "x":2.5, "y":0}, + {"label":"F3", "matrix": [0,3], "x":3.5, "y":0}, + {"label":"F4", "matrix": [0,4], "x":4.5, "y":0}, + {"label":"F5", "matrix": [0,6], "x":6, "y":0}, + {"label":"F6", "matrix": [0,7], "x":7, "y":0}, + {"label":"F7", "matrix": [0,8], "x":8, "y":0}, + {"label":"F8", "matrix": [0,9], "x":9, "y":0}, + {"label":"F9", "matrix": [0,10], "x":10.5, "y":0}, + {"label":"F10", "matrix": [0,11], "x":11.5, "y":0}, + {"label":"F11", "matrix": [0,12], "x":12.5, "y":0}, + {"label":"F12", "matrix": [0,13], "x":13.5, "y":0}, + {"label":"Home", "matrix": [0,14], "x":15, "y":0}, + + {"label":"`~", "matrix": [1,0], "x":0, "y":1.25}, + {"label":"1!", "matrix": [1,1], "x":1, "y":1.25}, + {"label":"2@", "matrix": [1,2], "x":2, "y":1.25}, + {"label":"3#", "matrix": [1,3], "x":3, "y":1.25}, + {"label":"4$", "matrix": [1,4], "x":4, "y":1.25}, + {"label":"5%", "matrix": [1,5], "x":5, "y":1.25}, + {"label":"6^", "matrix": [1,6], "x":6, "y":1.25}, + {"label":"7&", "matrix": [1,7], "x":7, "y":1.25}, + {"label":"8*", "matrix": [1,8], "x":8, "y":1.25}, + {"label":"9(", "matrix": [1,9], "x":9, "y":1.25}, + {"label":"0)", "matrix": [1,10], "x":10, "y":1.25}, + {"label":"-_", "matrix": [1,11], "x":11, "y":1.25}, + {"label":"=+", "matrix": [1,12], "x":12, "y":1.25}, + {"label":"Backspace", "matrix": [1,13], "x":13, "y":1.25}, + {"label":"Page Up", "matrix": [1,14], "x":15, "y":1.25}, + + {"label":"Tab", "matrix": [2,0], "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "matrix": [2,1], "x":1.5, "y":2.25}, + {"label":"W", "matrix": [2,2], "x":2.5, "y":2.25}, + {"label":"E", "matrix": [2,3], "x":3.5, "y":2.25}, + {"label":"R", "matrix": [2,4], "x":4.5, "y":2.25}, + {"label":"T", "matrix": [2,5], "x":5.5, "y":2.25}, + {"label":"Y", "matrix": [2,6], "x":6.5, "y":2.25}, + {"label":"U", "matrix": [2,7], "x":7.5, "y":2.25}, + {"label":"I", "matrix": [2,8], "x":8.5, "y":2.25}, + {"label":"O", "matrix": [2,9], "x":9.5, "y":2.25}, + {"label":"P", "matrix": [2,10], "x":10.5, "y":2.25}, + {"label":"[", "matrix": [2,11], "x":11.5, "y":2.25}, + {"label":"]", "matrix": [2,12], "x":12.5, "y":2.25}, + {"label":"\\", "matrix": [2,13], "x":13.5, "y":2.25, "w":1.5}, + {"label":"Page Down", "matrix": [2,14], "x":15, "y":2.25}, + + {"label":"Caps Lock", "matrix": [3,0], "x":0, "y":3.25, "w":1.75}, + {"label":"A", "matrix": [3,1], "x":1.75, "y":3.25}, + {"label":"S", "matrix": [3,2], "x":2.75, "y":3.25}, + {"label":"D", "matrix": [3,3], "x":3.75, "y":3.25}, + {"label":"F", "matrix": [3,4], "x":4.75, "y":3.25}, + {"label":"G", "matrix": [3,5], "x":5.75, "y":3.25}, + {"label":"H", "matrix": [3,6], "x":6.75, "y":3.25}, + {"label":"J", "matrix": [3,7], "x":7.75, "y":3.25}, + {"label":"K", "matrix": [3,8], "x":8.75, "y":3.25}, + {"label":"L", "matrix": [3,9], "x":9.75, "y":3.25}, + {"label":";", "matrix": [3,10], "x":10.75, "y":3.25}, + {"label":"'", "matrix": [3,11], "x":11.75, "y":3.25}, + {"label":"Enter", "matrix": [3,13], "x":12.75, "y":3.25, "w":2.25}, + {"label":"End", "matrix": [3,14], "x":15, "y":3.25}, + + {"label":"Shift", "matrix": [4,0], "x":0, "y":4.25, "w":2.25}, + {"label":"Z", "matrix": [4,2], "x":2.25, "y":4.25}, + {"label":"X", "matrix": [4,3], "x":3.25, "y":4.25}, + {"label":"C", "matrix": [4,4], "x":4.25, "y":4.25}, + {"label":"V", "matrix": [4,5], "x":5.25, "y":4.25}, + {"label":"B", "matrix": [4,6], "x":6.25, "y":4.25}, + {"label":"N", "matrix": [4,7], "x":7.25, "y":4.25}, + {"label":"M", "matrix": [4,8], "x":8.25, "y":4.25}, + {"label":",", "matrix": [4,9], "x":9.25, "y":4.25}, + {"label":".", "matrix": [4,10], "x":10.25, "y":4.25}, + {"label":"/", "matrix": [4,11], "x":11.25, "y":4.25}, + {"label":"Shift", "matrix": [4,12], "x":12.25, "y":4.25, "w":1.75}, + {"label":"Up", "matrix": [4,13], "x":14, "y":4.25}, + {"label":"End", "matrix": [4,14], "x":15, "y":4.25}, + + {"label":"Ctrl", "matrix": [5,0], "x":0, "y":5.25, "w":1.25}, + {"label":"Win", "matrix": [5,1], "x":1.25, "y":5.25, "w":1.25}, + {"label":"Alt", "matrix": [5,2], "x":2.5, "y":5.25, "w":1.25}, + {"label":"Space", "matrix": [5,6], "x":3.75, "y":5.25, "w":6.25}, + {"label":"Alt", "matrix": [5,10], "x":10, "y":5.25, "w":1.25}, + {"label":"Fn", "matrix": [5,11], "x":11.25, "y":5.25, "w":1.25}, + {"label":"Left", "matrix": [5,12], "x":13, "y":5.25}, + {"label":"Down", "matrix": [5,13], "x":14, "y":5.25}, + {"label":"Right", "matrix": [5,14], "x":15, "y":5.25} + ] + } + } +} diff --git a/keyboards/herevoland/buff75/keymaps/default/keymap.c b/keyboards/herevoland/buff75/keymaps/default/keymap.c new file mode 100644 index 00000000000..28762b9a17c --- /dev/null +++ b/keyboards/herevoland/buff75/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2024 楽(HereVoLand @Vem) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_HOME, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_DEL, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_TRNS, KC_TRNS, + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/herevoland/buff75/matrix_diagram.md b/keyboards/herevoland/buff75/matrix_diagram.md new file mode 100644 index 00000000000..35cca7ec06f --- /dev/null +++ b/keyboards/herevoland/buff75/matrix_diagram.md @@ -0,0 +1,18 @@ +# Matrix Diagram for Buff75 + +``` + ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┐ + │00 │ │01 │02 │03 │04 │ │06 │07 │08 │09 │ │0A │0B │0C │0D │ │0E │ + └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┘ + ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │ + ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬──┼───┤ + │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D│2E │ + ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬─────┴──┼───┤ + │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │3E │ + ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + │40 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │4D │4E │ + ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴───┴┬─┬───┼───┼───┤ + │50 │51 │52 │56 │5A │ 5B │ │5C │5D |5E | + └────┴────┴────┴────────────────────────┴───┴─────┘ └───┴───┘───┘ +``` diff --git a/keyboards/herevoland/buff75/readme.md b/keyboards/herevoland/buff75/readme.md new file mode 100644 index 00000000000..b5ce6407d71 --- /dev/null +++ b/keyboards/herevoland/buff75/readme.md @@ -0,0 +1,25 @@ +# Buff75 + +![Buff75](https://imgur.com/pQfzIZr.jpg) +An 75%/TenKeyLess sized keyboard with 1 RGB. + +* Keyboard Maintainer: [HereVoLand](https://github.com/Vem-596) +* Hardware Supported: buff75 +* Hardware Availability: [BUFF Customer-Keyboard](https://shop107132374.taobao.com) + +Make example for this keyboard (after setting up your build environment): + + make herevoland/buff75:default + +Flashing example for this keyboard: + + make herevoland/buff75:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +- **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key which is Escape in this keyboard) and plug in the keyboard +- **Keycode in layout**: Press the key mapped to `QK_BOOT` From 580d18d2e9a9cb08f11439d5dd58d8e3adffd17f Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Fri, 8 Nov 2024 15:57:22 +1100 Subject: [PATCH 025/365] Speed improvements to `qmk find`. (#24385) --- lib/python/qmk/cli/find.py | 2 ++ lib/python/qmk/cli/mass_compile.py | 2 ++ lib/python/qmk/info.py | 22 +++++++++++++--------- lib/python/qmk/util.py | 21 +++++++++++++++++++++ 4 files changed, 38 insertions(+), 9 deletions(-) diff --git a/lib/python/qmk/cli/find.py b/lib/python/qmk/cli/find.py index bfed91e22cd..7d8b1b066c9 100644 --- a/lib/python/qmk/cli/find.py +++ b/lib/python/qmk/cli/find.py @@ -1,5 +1,6 @@ """Command to search through all keyboards and keymaps for a given search criteria. """ +import os from milc import cli from qmk.search import filter_help, search_keymap_targets from qmk.util import maybe_exit_config @@ -20,6 +21,7 @@ from qmk.util import maybe_exit_config def find(cli): """Search through all keyboards and keymaps for a given search criteria. """ + os.environ.setdefault('SKIP_SCHEMA_VALIDATION', '1') maybe_exit_config(should_exit=False, should_reraise=True) targets = search_keymap_targets([('all', cli.config.find.keymap)], cli.args.filter) diff --git a/lib/python/qmk/cli/mass_compile.py b/lib/python/qmk/cli/mass_compile.py index cf9be0fd1e2..4c4669d4517 100755 --- a/lib/python/qmk/cli/mass_compile.py +++ b/lib/python/qmk/cli/mass_compile.py @@ -20,6 +20,8 @@ def mass_compile_targets(targets: List[BuildTarget], clean: bool, dry_run: bool, if len(targets) == 0: return + os.environ.setdefault('SKIP_SCHEMA_VALIDATION', '1') + make_cmd = find_make() builddir = Path(QMK_FIRMWARE) / '.build' makefile = builddir / 'parallel_kb_builds.mk' diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index 72b19a9fec6..82082f5cf0d 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -1,6 +1,7 @@ """Functions that help us generate and use info.json files. """ import re +import os from pathlib import Path import jsonschema from dotty_dict import dotty @@ -14,7 +15,7 @@ from qmk.keyboard import config_h, rules_mk from qmk.commands import parse_configurator_json from qmk.makefile import parse_rules_mk_file from qmk.math import compute -from qmk.util import maybe_exit +from qmk.util import maybe_exit, truthy true_values = ['1', 'on', 'yes'] false_values = ['0', 'off', 'no'] @@ -262,7 +263,9 @@ def info_json(keyboard, force_layout=None): info_data["community_layouts"] = [force_layout] # Validate - _validate(keyboard, info_data) + # Skip processing if necessary + if not truthy(os.environ.get('SKIP_SCHEMA_VALIDATION'), False): + _validate(keyboard, info_data) # Check that the reported matrix size is consistent with the actual matrix size _check_matrix(info_data) @@ -944,13 +947,14 @@ def merge_info_jsons(keyboard, info_data): _log_error(info_data, "Invalid file %s, root object should be a dictionary." % (str(info_file),)) continue - try: - validate(new_info_data, 'qmk.keyboard.v1') - except jsonschema.ValidationError as e: - json_path = '.'.join([str(p) for p in e.absolute_path]) - cli.log.error('Not including data from file: %s', info_file) - cli.log.error('\t%s: %s', json_path, e.message) - continue + if not truthy(os.environ.get('SKIP_SCHEMA_VALIDATION'), False): + try: + validate(new_info_data, 'qmk.keyboard.v1') + except jsonschema.ValidationError as e: + json_path = '.'.join([str(p) for p in e.absolute_path]) + cli.log.error('Not including data from file: %s', info_file) + cli.log.error('\t%s: %s', json_path, e.message) + continue # Merge layout data in if 'layout_aliases' in new_info_data: diff --git a/lib/python/qmk/util.py b/lib/python/qmk/util.py index b73fab89d12..8f99410e1de 100644 --- a/lib/python/qmk/util.py +++ b/lib/python/qmk/util.py @@ -27,6 +27,27 @@ def maybe_exit_config(should_exit: bool = True, should_reraise: bool = False): maybe_exit_reraise = should_reraise +def truthy(value, value_if_unknown=False): + """Returns True if the value is truthy, False otherwise. + + Deals with: + True: 1, true, t, yes, y, on + False: 0, false, f, no, n, off + """ + if value in {False, True}: + return bool(value) + + test_value = str(value).strip().lower() + + if test_value in {"1", "true", "t", "yes", "y", "on"}: + return True + + if test_value in {"0", "false", "f", "no", "n", "off"}: + return False + + return value_if_unknown + + @contextlib.contextmanager def parallelize(): """Returns a function that can be used in place of a map() call. From 9523ed9e32d89eb518a9c244ce4ebb395763fc85 Mon Sep 17 00:00:00 2001 From: "Eric N. Vander Weele" Date: Fri, 8 Nov 2024 01:12:59 -0500 Subject: [PATCH 026/365] Expose rgb_matrix_update_pwm_buffers to be available in keymaps (#24573) * Expose rgb_matrix_update_pwm_buffers to be available in keymaps Exposing this API enables the examples in the keyboard shutdown/reboot documentation to compile instead of calling `rgb_matrix_driver.flush` directly. * Remove extraneous rgb_matrix_update_pwm_buffers prototype declarations Now that `rgb_matrix_update_pwm_buffers` is public, there isn't the need for local prototype declarations. --- keyboards/bastardkb/charybdis/charybdis.c | 1 - keyboards/bastardkb/dilemma/dilemma.c | 1 - keyboards/miiiw/blackio83/rev_0100/rev_0100.c | 1 - quantum/rgb_matrix/rgb_matrix.h | 1 + 4 files changed, 1 insertion(+), 3 deletions(-) diff --git a/keyboards/bastardkb/charybdis/charybdis.c b/keyboards/bastardkb/charybdis/charybdis.c index 0ee5c3eed97..2251b247581 100644 --- a/keyboards/bastardkb/charybdis/charybdis.c +++ b/keyboards/bastardkb/charybdis/charybdis.c @@ -393,7 +393,6 @@ bool shutdown_kb(bool jump_to_bootloader) { rgblight_setrgb(RGB_RED); #endif // RGBLIGHT_ENABLE #ifdef RGB_MATRIX_ENABLE - void rgb_matrix_update_pwm_buffers(void); rgb_matrix_set_color_all(RGB_RED); rgb_matrix_update_pwm_buffers(); #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/bastardkb/dilemma/dilemma.c b/keyboards/bastardkb/dilemma/dilemma.c index 7c87fdcadd6..b406e265261 100644 --- a/keyboards/bastardkb/dilemma/dilemma.c +++ b/keyboards/bastardkb/dilemma/dilemma.c @@ -354,7 +354,6 @@ bool shutdown_kb(bool jump_to_bootloader) { rgblight_setrgb(RGB_RED); #endif // RGBLIGHT_ENABLE #ifdef RGB_MATRIX_ENABLE - void rgb_matrix_update_pwm_buffers(void); rgb_matrix_set_color_all(RGB_RED); rgb_matrix_update_pwm_buffers(); #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/miiiw/blackio83/rev_0100/rev_0100.c b/keyboards/miiiw/blackio83/rev_0100/rev_0100.c index 18f4c86510e..139bc1aaaef 100644 --- a/keyboards/miiiw/blackio83/rev_0100/rev_0100.c +++ b/keyboards/miiiw/blackio83/rev_0100/rev_0100.c @@ -165,7 +165,6 @@ uint32_t loop_10Hz(uint32_t trigger_time, void *cb_arg) { wait_ms(50); eeconfig_init(); #ifdef RGB_MATRIX_ENABLE - extern void rgb_matrix_update_pwm_buffers(void); for(int i = 0; i < 5; i++) { rgb_matrix_set_color_all(RGB_WHITE); rgb_matrix_update_pwm_buffers(); diff --git a/quantum/rgb_matrix/rgb_matrix.h b/quantum/rgb_matrix/rgb_matrix.h index 842a60c8b7e..33f7e06a639 100644 --- a/quantum/rgb_matrix/rgb_matrix.h +++ b/quantum/rgb_matrix/rgb_matrix.h @@ -212,6 +212,7 @@ void rgb_matrix_decrease_speed_noeeprom(void); led_flags_t rgb_matrix_get_flags(void); void rgb_matrix_set_flags(led_flags_t flags); void rgb_matrix_set_flags_noeeprom(led_flags_t flags); +void rgb_matrix_update_pwm_buffers(void); #ifndef RGBLIGHT_ENABLE # define eeconfig_update_rgblight_current eeconfig_update_rgb_matrix From e31eeb85db481f977dbe7d6d2d9007a9faaeaf3e Mon Sep 17 00:00:00 2001 From: Akshay <32840608+axshae@users.noreply.github.com> Date: Fri, 8 Nov 2024 14:39:35 +0530 Subject: [PATCH 027/365] added support for shorty KB (#24518) * added support for shorty KB Co-authored-by: Ryan Co-authored-by: Joel Challis Co-authored-by: Ryan --- keyboards/shorty/keyboard.json | 48 +++++++++++++++++++++++ keyboards/shorty/keymaps/default/keymap.c | 18 +++++++++ keyboards/shorty/readme.md | 27 +++++++++++++ 3 files changed, 93 insertions(+) create mode 100644 keyboards/shorty/keyboard.json create mode 100644 keyboards/shorty/keymaps/default/keymap.c create mode 100644 keyboards/shorty/readme.md diff --git a/keyboards/shorty/keyboard.json b/keyboards/shorty/keyboard.json new file mode 100644 index 00000000000..158648badd4 --- /dev/null +++ b/keyboards/shorty/keyboard.json @@ -0,0 +1,48 @@ +{ + "manufacturer": "Hawtkeys", + "keyboard_name": "shorty", + "maintainer": "hawtkeys", + "bootloader": "rp2040", + "diode_direction": "ROW2COL", + "encoder": { + "rotary": [ + {"pin_a": "GP28", "pin_b": "GP27"}, + {"pin_a": "GP3", "pin_b": "GP4"} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP14", "GP13", "GP12"], + "rows": ["GP11", "GP10", "GP9", "GP29", "GP2"] + }, + "processor": "RP2040", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x5400", + "vid": "0x5453" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [3, 0], "x": 0, "y": 0}, + {"matrix": [4, 0], "x": 2, "y": 0}, + {"matrix": [0, 0], "x": 0, "y": 1}, + {"matrix": [0, 1], "x": 1, "y": 1}, + {"matrix": [0, 2], "x": 2, "y": 1}, + {"matrix": [1, 0], "x": 0, "y": 2}, + {"matrix": [1, 1], "x": 1, "y": 2}, + {"matrix": [1, 2], "x": 2, "y": 2}, + {"matrix": [2, 0], "x": 0, "y": 3}, + {"matrix": [2, 1], "x": 1, "y": 3}, + {"matrix": [2, 2], "x": 2, "y": 3} + ] + } + } +} diff --git a/keyboards/shorty/keymaps/default/keymap.c b/keyboards/shorty/keymaps/default/keymap.c new file mode 100644 index 00000000000..ef4bbba7ef0 --- /dev/null +++ b/keyboards/shorty/keymaps/default/keymap.c @@ -0,0 +1,18 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_A, KC_D, + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, + KC_P1, KC_P2, KC_P3 + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(MS_WHLD, MS_WHLU) } +}; +#endif diff --git a/keyboards/shorty/readme.md b/keyboards/shorty/readme.md new file mode 100644 index 00000000000..23f023b92ce --- /dev/null +++ b/keyboards/shorty/readme.md @@ -0,0 +1,27 @@ +# Shorty Zero + +![Shorty Zero by hawtkeys.com](https://i.imgur.com/hoMHYLW.png) + +The Shorty Zero is a 3x3 customizable macropad designed for productivity, gaming, and creative workflows, featuring programmable keys and rotary knobs. + +* Keyboard Maintainer: [Hawtkeys](https://github.com/hawtkeys) +* Hardware Supported: Raspberry Pi Pico, Hawtkeys Shorty Zero PCB +* Hardware Availability: [Available @ hawtkeys.com](https://hawtkeys.com) + +Make example for this keyboard (after setting up your build environment): + + make shorty:default + +Flashing example for this keyboard: + + make shorty:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file From fb3a414a4042006fd374602931c2b9c943059aa8 Mon Sep 17 00:00:00 2001 From: Danny Tan <23428162+zykrah@users.noreply.github.com> Date: Sat, 9 Nov 2024 15:21:52 +1100 Subject: [PATCH 028/365] Add Idyllic Pizza Pad (#24566) * Initial PizzaPad firmware * Updated files to conform to PR checklist * Fix default keymap location * Update keyboard.json * Apply suggestions from code review Co-authored-by: Joel Challis * Update keyboards/idyllic/pizzapad/keymaps/default/keymap.c Co-authored-by: jack --------- Co-authored-by: Joel Challis Co-authored-by: jack --- keyboards/idyllic/pizzapad/keyboard.json | 36 +++++++++++++++++++ .../idyllic/pizzapad/keymaps/default/keymap.c | 12 +++++++ keyboards/idyllic/pizzapad/readme.md | 27 ++++++++++++++ 3 files changed, 75 insertions(+) create mode 100644 keyboards/idyllic/pizzapad/keyboard.json create mode 100644 keyboards/idyllic/pizzapad/keymaps/default/keymap.c create mode 100644 keyboards/idyllic/pizzapad/readme.md diff --git a/keyboards/idyllic/pizzapad/keyboard.json b/keyboards/idyllic/pizzapad/keyboard.json new file mode 100644 index 00000000000..638db198227 --- /dev/null +++ b/keyboards/idyllic/pizzapad/keyboard.json @@ -0,0 +1,36 @@ +{ + "manufacturer": "Zykrah", + "keyboard_name": "Pizza Pad", + "maintainer": "zykrah", + "processor": "RP2040", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 6 + }, + "matrix_pins": { + "cols": ["GP1", "GP0", "GP7"], + "rows": ["GP6", "GP29", "GP28"] + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x5050", + "vid": "0x7A79" + }, + "community_layouts": ["ortho_3x3"], + "layouts": { + "LAYOUT_ortho_3x3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2} + ] + } + } +} diff --git a/keyboards/idyllic/pizzapad/keymaps/default/keymap.c b/keyboards/idyllic/pizzapad/keymaps/default/keymap.c new file mode 100644 index 00000000000..333b33bc0b4 --- /dev/null +++ b/keyboards/idyllic/pizzapad/keymaps/default/keymap.c @@ -0,0 +1,12 @@ +// Copyright 2024 Zykrah (@zykrah) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_3x3( + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, + KC_P1, KC_P2, KC_P3 + ) +}; diff --git a/keyboards/idyllic/pizzapad/readme.md b/keyboards/idyllic/pizzapad/readme.md new file mode 100644 index 00000000000..04098cb522d --- /dev/null +++ b/keyboards/idyllic/pizzapad/readme.md @@ -0,0 +1,27 @@ +# Pizza Pad PCB + +![Pizza Pad PCB](https://i.imgur.com/eJLuaZY.jpg) + +A 3x3 PCB designed for the Idyllic Pretty Pad. + +* Keyboard Maintainer: Zykrah +* Hardware Supported: Pizza Pad PCB (using a SEEED XIAO RP2040) +* Hardware Availability: [Mechstock](https://mechstock.com.au/) + +Make example for this keyboard (after setting up your build environment): + + make idyllic/pizzapad:default + +Flashing example for this keyboard: + + make idyllic/pizzapad:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press both the `BOOT` and `RESET` buttons at the same time +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 10849dac689aafc3c75b9ee55dcb467c399b77d3 Mon Sep 17 00:00:00 2001 From: Danny Tan <23428162+zykrah@users.noreply.github.com> Date: Sat, 9 Nov 2024 15:23:31 +1100 Subject: [PATCH 029/365] Add Fuyu HS (#24567) * Add Fuyu HS * Fix keyboard.json linting * Fix rgbmatrix configuration * Apply suggestions from code review Co-authored-by: Joel Challis --------- Co-authored-by: Joel Challis --- keyboards/zykrah/fuyu_hs/config.h | 21 + keyboards/zykrah/fuyu_hs/keyboard.json | 404 ++++++++++++++++++ .../zykrah/fuyu_hs/keymaps/default/keymap.c | 39 ++ keyboards/zykrah/fuyu_hs/readme.md | 27 ++ 4 files changed, 491 insertions(+) create mode 100644 keyboards/zykrah/fuyu_hs/config.h create mode 100644 keyboards/zykrah/fuyu_hs/keyboard.json create mode 100644 keyboards/zykrah/fuyu_hs/keymaps/default/keymap.c create mode 100644 keyboards/zykrah/fuyu_hs/readme.md diff --git a/keyboards/zykrah/fuyu_hs/config.h b/keyboards/zykrah/fuyu_hs/config.h new file mode 100644 index 00000000000..767cc3f69ac --- /dev/null +++ b/keyboards/zykrah/fuyu_hs/config.h @@ -0,0 +1,21 @@ +/* +Copyright 2024 Zykrah + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/zykrah/fuyu_hs/keyboard.json b/keyboards/zykrah/fuyu_hs/keyboard.json new file mode 100644 index 00000000000..de5530b8dec --- /dev/null +++ b/keyboards/zykrah/fuyu_hs/keyboard.json @@ -0,0 +1,404 @@ +{ + "keyboard_name": "Fuyu Hotswap", + "maintainer": "zykrah", + "manufacturer": "Zykrah", + "processor": "RP2040", + "bootloader": "rp2040", + "usb": { + "device_version": "0.0.1", + "pid": "0x4648", + "vid": "0x7A79" + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 6 + }, + "matrix_pins": { + "rows": ["GP13", "GP12", "GP11", "GP10", "GP15", "GP14"], + "cols": ["GP29", "GP28", "GP27", "GP26", "GP25", "GP24", "GP23", "GP22", "GP21", "GP20", "GP19", "GP18", "GP17", "GP16", "GP2", "GP1", "GP0"] + }, + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_rain": true, + "pixel_flow": true, + "pixel_fractal": true + }, + "default": { + "val": 150 + }, + "driver": "ws2812", + "max_brightness": 200, + "layout": [ + {"x": 112, "y": 32, "flags": 8}, + {"x": 138, "y": 17, "flags": 8}, + {"x": 112, "y": 2, "flags": 8}, + {"x": 86, "y": 17, "flags": 8}, + {"x": 86, "y": 47, "flags": 8}, + {"x": 112, "y": 62, "flags": 8}, + {"x": 138, "y": 47, "flags": 8}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 16, "y": 0, "flags": 2}, + {"x": 32, "y": 0, "flags": 2}, + {"x": 48, "y": 0, "flags": 2}, + {"x": 64, "y": 0, "flags": 2}, + {"x": 80, "y": 0, "flags": 2}, + {"x": 96, "y": 0, "flags": 2}, + {"x": 112, "y": 0, "flags": 2}, + {"x": 128, "y": 0, "flags": 2}, + {"x": 144, "y": 0, "flags": 2}, + {"x": 160, "y": 0, "flags": 2}, + {"x": 176, "y": 0, "flags": 2}, + {"x": 192, "y": 0, "flags": 2}, + {"x": 208, "y": 0, "flags": 2}, + {"x": 208, "y": 16, "flags": 2}, + {"x": 208, "y": 32, "flags": 2}, + {"x": 208, "y": 48, "flags": 2}, + {"x": 208, "y": 64, "flags": 2}, + {"x": 192, "y": 64, "flags": 2}, + {"x": 176, "y": 64, "flags": 2}, + {"x": 160, "y": 64, "flags": 2}, + {"x": 144, "y": 64, "flags": 2}, + {"x": 128, "y": 64, "flags": 2}, + {"x": 112, "y": 64, "flags": 2}, + {"x": 96, "y": 64, "flags": 2}, + {"x": 80, "y": 64, "flags": 2}, + {"x": 64, "y": 64, "flags": 2}, + {"x": 48, "y": 64, "flags": 2}, + {"x": 32, "y": 64, "flags": 2}, + {"x": 16, "y": 64, "flags": 2}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 0, "y": 48, "flags": 2}, + {"x": 0, "y": 32, "flags": 2}, + {"x": 0, "y": 16, "flags": 2} + ] + }, + "url": "https://github.com/zykrah/fuyu", + "ws2812": { + "driver": "vendor", + "pin": "GP3" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [3, 13], "x": 14, "y": 1.25}, + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [3, 14], "x": 15.25, "y": 3.25}, + {"matrix": [3, 15], "x": 16.25, "y": 3.25}, + {"matrix": [3, 16], "x": 17.25, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 14], "x": 15.25, "y": 4.25}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [4, 16], "x": 17.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_numpad": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [3, 14], "x": 15.25, "y": 3.25}, + {"matrix": [3, 15], "x": 16.25, "y": 3.25}, + {"matrix": [3, 16], "x": 17.25, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 14], "x": 15.25, "y": 4.25}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [4, 16], "x": 17.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan_numpad": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [3, 14], "x": 15.25, "y": 3.25}, + {"matrix": [3, 15], "x": 16.25, "y": 3.25}, + {"matrix": [3, 16], "x": 17.25, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 14], "x": 15.25, "y": 4.25}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [4, 16], "x": 17.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/zykrah/fuyu_hs/keymaps/default/keymap.c b/keyboards/zykrah/fuyu_hs/keymaps/default/keymap.c new file mode 100644 index 00000000000..e04c98a9fbb --- /dev/null +++ b/keyboards/zykrah/fuyu_hs/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* +Copyright 2024 Zykrah + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + + [1] = LAYOUT_all( + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +}; diff --git a/keyboards/zykrah/fuyu_hs/readme.md b/keyboards/zykrah/fuyu_hs/readme.md new file mode 100644 index 00000000000..41c5cded51d --- /dev/null +++ b/keyboards/zykrah/fuyu_hs/readme.md @@ -0,0 +1,27 @@ +# FUYU HOTSWAP + +![FUYU HS 7U](https://i.imgur.com/8zjDNJT.jpg) + +An F12 TKL Hotswappable H87-Compat Type-C PCB for the Geon F1-8K + +* Keyboard Maintainer: [Zykrah](https://github.com/zykrah) +* Hardware Supported: Fuyu HS 7u rev1, Fuyu HS 6.25u rev1 +* Hardware Availability: [Github Repo](https://github.com/zykrah/fuyu), [GEON Store](https://geon.works/products/fuyu-pcb-for-f1-8k), [Cafege](https://cafege.com.au/products/fuyu-8k-pcb) + +Make example for this keyboard (after setting up your build environment): + + make zykrah/fuyu_hs:default + +Flashing example for this keyboard: + + make zykrah/fuyu_hs:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly short the `RST` and `GND` pads on the SWD header twice, or short the `BOOT` header and plug in keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From f156e57f8ef6bb825695123ab7cf2eca8d75dace Mon Sep 17 00:00:00 2001 From: Amund Tenstad Date: Sat, 9 Nov 2024 05:24:00 +0100 Subject: [PATCH 030/365] [Keyboard] Add tenstad (#24571) * [Keyboard] Add tenstad * fix: remove settings disabled by default Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> * fix: add serial and transport to json Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> * fix: format json * docs: update img url * fix: delete now-redundant rules.mk * fix: format keymap.json (keeping 'layout' at the top) --------- Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> --- keyboards/handwired/tenstad/keyboard.json | 85 +++++++++++++++++++ .../tenstad/keymaps/default/keymap.json | 55 ++++++++++++ keyboards/handwired/tenstad/readme.md | 19 +++++ 3 files changed, 159 insertions(+) create mode 100644 keyboards/handwired/tenstad/keyboard.json create mode 100644 keyboards/handwired/tenstad/keymaps/default/keymap.json create mode 100644 keyboards/handwired/tenstad/readme.md diff --git a/keyboards/handwired/tenstad/keyboard.json b/keyboards/handwired/tenstad/keyboard.json new file mode 100644 index 00000000000..1220d3b107f --- /dev/null +++ b/keyboards/handwired/tenstad/keyboard.json @@ -0,0 +1,85 @@ +{ + "manufacturer": "Amund Tenstad", + "keyboard_name": "tenstad", + "maintainer": "tenstad", + "bootloader": "rp2040", + "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP29", "GP28", "GP27", "GP26", "GP15", "GP14"], + "rows": ["GP3", "GP4", "GP5", "GP6"] + }, + "processor": "RP2040", + "split": { + "enabled": true, + "serial": { + "driver": "vendor" + }, + "transport": { + "protocol": "serial" + } + }, + "url": "https://github.com/tenstad/keyboard", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT_split_3x6_5": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 1.35}, + {"matrix": [0, 1], "x": 1, "y": 0.95}, + {"matrix": [0, 2], "x": 2.35, "y": 0.35}, + {"matrix": [0, 3], "x": 3.35, "y": 0}, + {"matrix": [0, 4], "x": 4.65, "y": 0.4}, + {"matrix": [0, 5], "x": 5.65, "y": 0.4}, + {"matrix": [4, 5], "x": 12.25, "y": 0.4}, + {"matrix": [4, 4], "x": 13.25, "y": 0.4}, + {"matrix": [4, 3], "x": 14.55, "y": 0}, + {"matrix": [4, 2], "x": 15.55, "y": 0.35}, + {"matrix": [4, 1], "x": 16.9, "y": 0.95}, + {"matrix": [4, 0], "x": 17.9, "y": 1.35}, + {"matrix": [1, 0], "x": 0.1, "y": 2.35}, + {"matrix": [1, 1], "x": 1.1, "y": 1.95}, + {"matrix": [1, 2], "x": 2.4, "y": 1.35}, + {"matrix": [1, 3], "x": 3.4, "y": 1}, + {"matrix": [1, 4], "x": 4.65, "y": 1.4}, + {"matrix": [1, 5], "x": 5.65, "y": 1.4}, + {"matrix": [5, 5], "x": 12.25, "y": 1.4}, + {"matrix": [5, 4], "x": 13.25, "y": 1.4}, + {"matrix": [5, 3], "x": 14.5, "y": 1}, + {"matrix": [5, 2], "x": 15.5, "y": 1.35}, + {"matrix": [5, 1], "x": 16.8, "y": 1.95}, + {"matrix": [5, 0], "x": 17.8, "y": 2.35}, + {"matrix": [2, 0], "x": 0.2, "y": 3.35}, + {"matrix": [2, 1], "x": 1.2, "y": 2.95}, + {"matrix": [2, 2], "x": 2.45, "y": 2.35}, + {"matrix": [2, 3], "x": 3.45, "y": 2}, + {"matrix": [2, 4], "x": 4.65, "y": 2.4}, + {"matrix": [2, 5], "x": 5.65, "y": 2.4}, + {"matrix": [6, 5], "x": 12.25, "y": 2.4}, + {"matrix": [6, 4], "x": 13.25, "y": 2.4}, + {"matrix": [6, 3], "x": 14.45, "y": 2}, + {"matrix": [6, 2], "x": 15.45, "y": 2.35}, + {"matrix": [6, 1], "x": 16.7, "y": 2.95}, + {"matrix": [6, 0], "x": 17.7, "y": 3.35}, + {"matrix": [3, 5], "x": 6.85, "y": 3}, + {"matrix": [3, 3], "x": 7.95, "y": 3.35}, + {"matrix": [3, 4], "x": 5.6, "y": 3.95}, + {"matrix": [3, 1], "x": 6.7, "y": 4.1}, + {"matrix": [3, 2], "x": 7.8, "y": 4.45}, + {"matrix": [7, 3], "x": 9.95, "y": 3.35}, + {"matrix": [7, 5], "x": 11.05, "y": 3}, + {"matrix": [7, 2], "x": 10.1, "y": 4.45}, + {"matrix": [7, 1], "x": 11.2, "y": 4.1}, + {"matrix": [7, 4], "x": 12.3, "y": 3.95} + ] + } + } +} diff --git a/keyboards/handwired/tenstad/keymaps/default/keymap.json b/keyboards/handwired/tenstad/keymaps/default/keymap.json new file mode 100644 index 00000000000..4882e307321 --- /dev/null +++ b/keyboards/handwired/tenstad/keymaps/default/keymap.json @@ -0,0 +1,55 @@ +{ + "keyboard": "handwired/tenstad", + "keymap": "default", + "layout": "LAYOUT_split_3x6_5", + "layers": [ + [ + "KC_ESC", + "KC_Q", + "KC_W", + "KC_E", + "KC_R", + "KC_T", + "KC_Y", + "KC_U", + "KC_I", + "KC_O", + "KC_P", + "KC_RBRC", + "KC_TAB", + "KC_A", + "KC_S", + "KC_D", + "KC_F", + "KC_G", + "KC_H", + "KC_J", + "KC_K", + "KC_L", + "KC_GRV", + "KC_QUOT", + "KC_LCTL", + "KC_Z", + "KC_X", + "KC_C", + "KC_V", + "KC_B", + "KC_N", + "KC_M", + "KC_COMM", + "KC_DOT", + "KC_MINS", + "KC_RSFT", + "KC_NO", + "KC_NO", + "KC_TAB", + "KC_NO", + "KC_NO", + "KC_DEL", + "KC_NO", + "KC_BSPC", + "KC_SPC", + "KC_ENT" + ] + ] +} diff --git a/keyboards/handwired/tenstad/readme.md b/keyboards/handwired/tenstad/readme.md new file mode 100644 index 00000000000..8ed97513303 --- /dev/null +++ b/keyboards/handwired/tenstad/readme.md @@ -0,0 +1,19 @@ +# tenstad + +![tenstad](https://i.imgur.com/Lh4TAUF.png) + +[tenstad/keyboard](https://github.com/tenstad/keyboard) - hand-soldered ergonomic split 3x6 keyboard with 5 thumb keys + +* Keyboard Maintainer: [Amund Tenstad](https://github.com/tenstad) +* Hardware Supported: RP2040 Zero +* Hardware Availability: [List of Parts](https://github.com/tenstad/keyboard/blob/main/README.md#parts) from [AliExpress](https://aliexpress.com) + +Make example for this keyboard (after setting up your build environment): + + make handwired/tenstad:default + +Flashing example for this keyboard: + + make handwired/tenstad:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). From b3f5408e7283c8a282fada75dd4e61a93df276e7 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 10 Nov 2024 03:49:11 +1100 Subject: [PATCH 031/365] [docs] Fix dead link to keyboard list in newbs.md (#24579) --- docs/newbs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/newbs.md b/docs/newbs.md index 64593cbad12..95cde67f0cd 100644 --- a/docs/newbs.md +++ b/docs/newbs.md @@ -4,7 +4,7 @@ Your computer keyboard has a processor inside of it, similar to the one inside y QMK tries to put a lot of power into your hands by making easy things easy, and hard things possible. You don't have to know how to program to create powerful keymaps — you only have to follow a few simple syntax rules. -Not sure if your keyboard can run QMK? If it's a mechanical keyboard you built yourself chances are good it can. We support a [large number of hobbyist boards](https://qmk.fm/keyboards/). If your current keyboard can't run QMK there are a lot of choices out there for boards that do. +Not sure if your keyboard can run QMK? If it's a mechanical keyboard you built yourself chances are good it can. We support a [large number of hobbyist boards](https://browse.qmk.fm/). If your current keyboard can't run QMK there are a lot of choices out there for boards that do. ::: tip Is This Guide For Me? If the thought of programming intimidates you, please [take a look at our online GUI](newbs_building_firmware_configurator) instead. From 3eb172d08ef0b5765cafcf067118563df917fe83 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 10 Nov 2024 06:04:14 +1100 Subject: [PATCH 032/365] [docs] Turn on icons for external links (#24580) --- builddefs/docsgen/.vitepress/config.mts | 2 ++ docs/reference_info_json.md | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/builddefs/docsgen/.vitepress/config.mts b/builddefs/docsgen/.vitepress/config.mts index 54ecae2e86b..5beca70634e 100644 --- a/builddefs/docsgen/.vitepress/config.mts +++ b/builddefs/docsgen/.vitepress/config.mts @@ -41,6 +41,8 @@ export default defineConfig(({ mode }) => { sidebar: sidebar, + externalLinkIcon: true, + socialLinks: [ { icon: { svg: '' }, link: "https://reddit.com/r/olkb" }, { icon: "discord", link: "https://discord.gg/qmk" }, diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index 82110537a9d..c1061cdf823 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -16,7 +16,7 @@ You can create `info.json` files at every level under `qmk_firmware/keyboards/String Required - * A URL to the keyboard's product page, [QMK.fm/keyboards](https://qmk.fm/keyboards) page, or other page describing information about the keyboard. + * A URL to the keyboard's product page, [QMK Keyboards](https://browse.qmk.fm/) page, or other page describing information about the keyboard. * Example: `"https://clueboard.co"` * `bootloader_instructions` String * Instructions for putting the keyboard into a mode that allows for firmware flashing. From a3cfb1dab7679a774d8aa09f7b609f3302dad73d Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 10 Nov 2024 09:10:10 +1100 Subject: [PATCH 033/365] Joystick: add support for 8-way hat switch (#24515) --- docs/features/joystick.md | 51 +++++++++++++++++++++++++++++- quantum/joystick.c | 10 ++++++ quantum/joystick.h | 22 ++++++++++++- tmk_core/protocol/host.c | 4 +++ tmk_core/protocol/report.h | 5 +++ tmk_core/protocol/usb_descriptor.c | 17 ++++++++++ tmk_core/protocol/vusb/vusb.c | 17 ++++++++++ 7 files changed, 124 insertions(+), 2 deletions(-) diff --git a/docs/features/joystick.md b/docs/features/joystick.md index 69db4655d59..cbf6c6daf7e 100644 --- a/docs/features/joystick.md +++ b/docs/features/joystick.md @@ -1,6 +1,6 @@ # Joystick {#joystick} -This feature provides game controller input as a joystick device supporting up to 6 axes and 32 buttons. Axes can be read either from an [ADC-capable input pin](../drivers/adc), or can be virtual, so that its value is provided by your code. +This feature provides game controller input as a joystick device supporting up to 6 axes, 32 buttons and a hat switch. Axes can be read either from an [ADC-capable input pin](../drivers/adc), or can be virtual, so that its value is provided by your code. An analog device such as a [potentiometer](https://en.wikipedia.org/wiki/Potentiometer) found on an analog joystick's axes is based on a voltage divider, where adjusting the movable wiper controls the output voltage which can then be read by the microcontroller's ADC. @@ -37,6 +37,42 @@ By default, two axes and eight buttons are defined, with a reported resolution o You must define at least one button or axis. Also note that the maximum ADC resolution of the supported AVR MCUs is 10-bit, and 12-bit for most STM32 MCUs. ::: +### Hat Switch {#hat-switch} + +To enable the 8-way hat switch, add the following to your `config.h`: + +```c +#define JOYSTICK_HAS_HAT +```` + +The position can be set by calling `joystick_set_hat(value)`. The range of values moves clockwise from the top (ie. north), with the default "center" position represented by a value of `-1`: + +``` + 0 + 7 N 1 + NW .--'--. NE + / \ +6 W | -1 | E 2 + \ / + SW '--.--' SE + 5 S 3 + 4 +``` + +Alternatively you can use these predefined names: + +|Define |Value|Angle| +|------------------------|-----|-----| +|`JOYSTICK_HAT_CENTER` |`-1` | | +|`JOYSTICK_HAT_NORTH` |`0` |0° | +|`JOYSTICK_HAT_NORTHEAST`|`1` |45° | +|`JOYSTICK_HAT_EAST` |`2` |90° | +|`JOYSTICK_HAT_SOUTHEAST`|`3` |135° | +|`JOYSTICK_HAT_SOUTH` |`4` |180° | +|`JOYSTICK_HAT_SOUTHWEST`|`5` |225° | +|`JOYSTICK_HAT_WEST` |`6` |270° | +|`JOYSTICK_HAT_NORTHWEST`|`7` |315° | + ### Axes {#axes} When defining axes for your joystick, you must provide a definition array typically in your `keymap.c`. @@ -149,6 +185,8 @@ Contains the state of the joystick. A bit-packed array containing the joystick button states. The size is calculated as `(JOYSTICK_BUTTON_COUNT - 1) / 8 + 1`. - `int16_t axes[]` An array of analog values for each defined axis. + - `int8_t hat` + The hat switch position. - `bool dirty` Whether the current state needs to be sent to the host. @@ -222,3 +260,14 @@ Set the value of the given axis. The axis to set the value of. - `int16_t value` The value to set. + +--- + +### `void joystick_set_hat(int8_t value)` {#api-joystick-set-hat} + +Set the position of the hat switch. + +#### Arguments {#api-joystick-set-hat-arguments} + + - `int8_t value` + The hat switch position to set. diff --git a/quantum/joystick.c b/quantum/joystick.c index 32f19b2cd99..62893fd1997 100644 --- a/quantum/joystick.c +++ b/quantum/joystick.c @@ -29,6 +29,9 @@ joystick_t joystick_state = { 0 #endif }, +#ifdef JOYSTICK_HAS_HAT + .hat = -1, +#endif .dirty = false, }; @@ -145,6 +148,13 @@ void joystick_set_axis(uint8_t axis, int16_t value) { } } +#ifdef JOYSTICK_HAS_HAT +void joystick_set_hat(int8_t value) { + joystick_state.hat = value; + joystick_state.dirty = true; +} +#endif + void joystick_init(void) { joystick_init_axes(); } diff --git a/quantum/joystick.h b/quantum/joystick.h index 5a69ceac64a..24f80c1ad6f 100644 --- a/quantum/joystick.h +++ b/quantum/joystick.h @@ -52,6 +52,16 @@ #define JOYSTICK_MAX_VALUE ((1L << (JOYSTICK_AXIS_RESOLUTION - 1)) - 1) +#define JOYSTICK_HAT_CENTER -1 +#define JOYSTICK_HAT_NORTH 0 +#define JOYSTICK_HAT_NORTHEAST 1 +#define JOYSTICK_HAT_EAST 2 +#define JOYSTICK_HAT_SOUTHEAST 3 +#define JOYSTICK_HAT_SOUTH 4 +#define JOYSTICK_HAT_SOUTHWEST 5 +#define JOYSTICK_HAT_WEST 6 +#define JOYSTICK_HAT_NORTHWEST 7 + // configure on input_pin of the joystick_axes array entry to NO_PIN // to prevent it from being read from the ADC. This allows outputting forged axis value. #define JOYSTICK_AXIS_VIRTUAL \ @@ -73,7 +83,10 @@ extern joystick_config_t joystick_axes[JOYSTICK_AXIS_COUNT]; typedef struct { uint8_t buttons[(JOYSTICK_BUTTON_COUNT - 1) / 8 + 1]; int16_t axes[JOYSTICK_AXIS_COUNT]; - bool dirty; +#ifdef JOYSTICK_HAS_HAT + int8_t hat; +#endif + bool dirty; } joystick_t; extern joystick_t joystick_state; @@ -129,4 +142,11 @@ void joystick_read_axes(void); */ void joystick_set_axis(uint8_t axis, int16_t value); +/** + * \brief Set the position of the hat switch. + * + * \param value The hat switch position to set. + */ +void joystick_set_hat(int8_t value); + /** \} */ diff --git a/tmk_core/protocol/host.c b/tmk_core/protocol/host.c index 732fbdc37d4..df805c827c2 100644 --- a/tmk_core/protocol/host.c +++ b/tmk_core/protocol/host.c @@ -193,6 +193,10 @@ void host_joystick_send(joystick_t *joystick) { }, # endif +# ifdef JOYSTICK_HAS_HAT + .hat = joystick->hat, +# endif + # if JOYSTICK_BUTTON_COUNT > 0 .buttons = { diff --git a/tmk_core/protocol/report.h b/tmk_core/protocol/report.h index 37c8ea48f1b..d854f51d5c4 100644 --- a/tmk_core/protocol/report.h +++ b/tmk_core/protocol/report.h @@ -246,6 +246,11 @@ typedef struct { joystick_axis_t axes[JOYSTICK_AXIS_COUNT]; #endif +#ifdef JOYSTICK_HAS_HAT + int8_t hat : 4; + uint8_t reserved : 4; +#endif + #if JOYSTICK_BUTTON_COUNT > 0 uint8_t buttons[(JOYSTICK_BUTTON_COUNT - 1) / 8 + 1]; #endif diff --git a/tmk_core/protocol/usb_descriptor.c b/tmk_core/protocol/usb_descriptor.c index e7d12a07d9f..c7fb660b65d 100644 --- a/tmk_core/protocol/usb_descriptor.c +++ b/tmk_core/protocol/usb_descriptor.c @@ -247,6 +247,23 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM SharedReport[] = { HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), # endif +# ifdef JOYSTICK_HAS_HAT + // Hat Switch (4 bits) + HID_RI_USAGE(8, 0x39), // Hat Switch + HID_RI_LOGICAL_MINIMUM(8, 0x00), + HID_RI_LOGICAL_MAXIMUM(8, 0x07), + HID_RI_PHYSICAL_MINIMUM(8, 0), + HID_RI_PHYSICAL_MAXIMUM(16, 315), + HID_RI_UNIT(8, 0x14), // Degree, English Rotation + HID_RI_REPORT_COUNT(8, 1), + HID_RI_REPORT_SIZE(8, 4), + HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NULLSTATE), + // Padding (4 bits) + HID_RI_REPORT_COUNT(8, 0x04), + HID_RI_REPORT_SIZE(8, 0x01), + HID_RI_INPUT(8, HID_IOF_CONSTANT), +# endif + # if JOYSTICK_BUTTON_COUNT > 0 HID_RI_USAGE_PAGE(8, 0x09), // Button HID_RI_USAGE_MINIMUM(8, 0x01), diff --git a/tmk_core/protocol/vusb/vusb.c b/tmk_core/protocol/vusb/vusb.c index 2a29fe65d90..fdbfcc17dce 100644 --- a/tmk_core/protocol/vusb/vusb.c +++ b/tmk_core/protocol/vusb/vusb.c @@ -621,6 +621,23 @@ const PROGMEM uchar shared_hid_report[] = { 0x81, 0x02, // Input (Data, Variable, Absolute) # endif +# ifdef JOYSTICK_HAS_HAT + // Hat Switch (4 bits) + 0x09, 0x39, // Usage (Hat Switch) + 0x15, 0x00, // Logical Minimum (0) + 0x25, 0x07, // Logical Maximum (7) + 0x35, 0x00, // Physical Minimum (0) + 0x46, 0x3B, 0x01, // Physical Maximum (315) + 0x65, 0x14, // Unit (Degree, English Rotation) + 0x95, 0x01, // Report Count (1) + 0x75, 0x04, // Report Size (4) + 0x81, 0x42, // Input (Data, Variable, Absolute, Null State) + // Padding (4 bits) + 0x95, 0x04, // Report Count (4) + 0x75, 0x01, // Report Size (1) + 0x81, 0x01, // Input (Constant) +# endif + # if JOYSTICK_BUTTON_COUNT > 0 0x05, 0x09, // Usage Page (Button) 0x19, 0x01, // Usage Minimum (Button 1) From 8cbd631fcbd74f3699c756abb3f27c9807825593 Mon Sep 17 00:00:00 2001 From: Duncan Sutherland Date: Sun, 10 Nov 2024 19:11:48 +0000 Subject: [PATCH 034/365] remove "w": 1 from /keyboards/ (#24587) --- .../satisfaction75_hs/keyboard.json | 6 +++--- .../whitefacemountain/ampersand/keyboard.json | 20 +++++++++---------- keyboards/zeix/singa/kohaku/keyboard.json | 8 ++++---- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/keyboards/cannonkeys/satisfaction75_hs/keyboard.json b/keyboards/cannonkeys/satisfaction75_hs/keyboard.json index 6e8172ec028..48faa60362b 100644 --- a/keyboards/cannonkeys/satisfaction75_hs/keyboard.json +++ b/keyboards/cannonkeys/satisfaction75_hs/keyboard.json @@ -112,9 +112,9 @@ {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1}, - {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1}, - {"matrix": [5, 9], "x": 12, "y": 5.25, "w": 1}, + {"matrix": [5, 10], "x": 10, "y": 5.25}, + {"matrix": [5, 11], "x": 11, "y": 5.25}, + {"matrix": [5, 9], "x": 12, "y": 5.25}, {"matrix": [5, 12], "x": 13.25, "y": 5.5}, {"matrix": [5, 13], "x": 14.25, "y": 5.5}, {"matrix": [5, 14], "x": 15.25, "y": 5.5} diff --git a/keyboards/whitefacemountain/ampersand/keyboard.json b/keyboards/whitefacemountain/ampersand/keyboard.json index 04840d05bcd..b0929e2d3c9 100644 --- a/keyboards/whitefacemountain/ampersand/keyboard.json +++ b/keyboards/whitefacemountain/ampersand/keyboard.json @@ -64,13 +64,13 @@ {"label": ".", "matrix": [2, 9], "x": 9.75, "y": 2}, {"label": "/", "matrix": [2, 10], "x": 10.75, "y": 2}, {"label": "Shift", "matrix": [2, 11], "x": 11.75, "y": 2, "w": 1.75}, - {"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 3, "w": 1}, - {"label": "LAlt", "matrix": [3, 1], "x": 1.75, "y": 3, "w": 1}, - {"label": "LGui", "matrix": [3, 2], "x": 2.75, "y": 3, "w": 1}, + {"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 3}, + {"label": "LAlt", "matrix": [3, 1], "x": 1.75, "y": 3}, + {"label": "LGui", "matrix": [3, 2], "x": 2.75, "y": 3}, {"label": "Space", "matrix": [3, 5], "x": 3.75, "y": 3, "w": 6}, - {"label": "RGui", "matrix": [3, 8], "x": 9.75, "y": 3, "w": 1}, - {"label": "RAlt", "matrix": [3, 9], "x": 10.75, "y": 3, "w": 1}, - {"label": "RCtrl", "matrix": [3, 11], "x": 12.5, "y": 3, "w": 1} + {"label": "RGui", "matrix": [3, 8], "x": 9.75, "y": 3}, + {"label": "RAlt", "matrix": [3, 9], "x": 10.75, "y": 3}, + {"label": "RCtrl", "matrix": [3, 11], "x": 12.5, "y": 3} ] }, "LAYOUT_split_bars": { @@ -113,14 +113,14 @@ {"label": ".", "matrix": [2, 9], "x": 9.75, "y": 2}, {"label": "/", "matrix": [2, 10], "x": 10.75, "y": 2}, {"label": "Shift", "matrix": [2, 11], "x": 11.75, "y": 2, "w": 1.75}, - {"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 3, "w": 1}, + {"label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 3}, {"label": "LAlt", "matrix": [3, 1], "x": 1.75, "y": 3, "w": 1.5}, - {"label": "LGui", "matrix": [3, 2], "x": 3.25, "y": 3, "w": 1}, + {"label": "LGui", "matrix": [3, 2], "x": 3.25, "y": 3}, {"label": "Space", "matrix": [3, 3], "x": 4.25, "y": 3, "w": 2.25}, {"label": "Space", "matrix": [3, 7], "x": 6.5, "y": 3, "w": 2.75}, - {"label": "RGui", "matrix": [3, 8], "x": 9.25, "y": 3, "w": 1}, + {"label": "RGui", "matrix": [3, 8], "x": 9.25, "y": 3}, {"label": "RAlt", "matrix": [3, 9], "x": 10.25, "y": 3, "w": 1.5}, - {"label": "RCtrl", "matrix": [3, 11], "x": 12.5, "y": 3, "w": 1} + {"label": "RCtrl", "matrix": [3, 11], "x": 12.5, "y": 3} ] } } diff --git a/keyboards/zeix/singa/kohaku/keyboard.json b/keyboards/zeix/singa/kohaku/keyboard.json index f1ce31fe64d..542bad9c6fc 100644 --- a/keyboards/zeix/singa/kohaku/keyboard.json +++ b/keyboards/zeix/singa/kohaku/keyboard.json @@ -326,7 +326,7 @@ {"matrix": [7, 6], "x": 14, "y": 3}, {"matrix": [7, 7], "x": 15, "y": 3}, {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [9, 0], "x": 1.5, "y": 4, "w": 1}, + {"matrix": [9, 0], "x": 1.5, "y": 4}, {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, {"matrix": [8, 3], "x": 4, "y": 4, "w": 7}, {"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5}, @@ -397,7 +397,7 @@ {"matrix": [7, 6], "x": 14, "y": 3}, {"matrix": [7, 7], "x": 15, "y": 3}, {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [9, 0], "x": 1.5, "y": 4, "w": 1}, + {"matrix": [9, 0], "x": 1.5, "y": 4}, {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, {"matrix": [8, 3], "x": 4, "y": 4, "w": 7}, {"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5}, @@ -613,7 +613,7 @@ {"matrix": [7, 6], "x": 14, "y": 3}, {"matrix": [7, 7], "x": 15, "y": 3}, {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [9, 0], "x": 1.5, "y": 4, "w": 1}, + {"matrix": [9, 0], "x": 1.5, "y": 4}, {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, {"matrix": [8, 3], "x": 4, "y": 4, "w": 7}, {"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5}, @@ -685,7 +685,7 @@ {"matrix": [7, 6], "x": 14, "y": 3}, {"matrix": [7, 7], "x": 15, "y": 3}, {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, - {"matrix": [9, 0], "x": 1.5, "y": 4, "w": 1}, + {"matrix": [9, 0], "x": 1.5, "y": 4}, {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, {"matrix": [8, 3], "x": 4, "y": 4, "w": 7}, {"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5}, From 9cd789676059f734a1538833cea6940d9c669b48 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Nov 2024 02:18:51 +0000 Subject: [PATCH 035/365] Bump JamesIves/github-pages-deploy-action from 4.6.8 to 4.6.9 (#24592) Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.8 to 4.6.9. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.8...v4.6.9) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 42d377fe4a9..e04bcd080b1 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -56,7 +56,7 @@ jobs: - name: Deploy if: ${{ github.event_name == 'push' && github.repository == 'qmk/qmk_firmware' }} - uses: JamesIves/github-pages-deploy-action@v4.6.8 + uses: JamesIves/github-pages-deploy-action@v4.6.9 with: token: ${{ secrets.GITHUB_TOKEN }} branch: gh-pages From 3d4da6de29c8635c9cd232ce456d8fec8d31921b Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 12 Nov 2024 13:20:56 +1100 Subject: [PATCH 036/365] [docs] Add "edit this page" link at the bottom (#24585) --- builddefs/docsgen/.vitepress/config.mts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/builddefs/docsgen/.vitepress/config.mts b/builddefs/docsgen/.vitepress/config.mts index 5beca70634e..d2fe2886b21 100644 --- a/builddefs/docsgen/.vitepress/config.mts +++ b/builddefs/docsgen/.vitepress/config.mts @@ -39,6 +39,11 @@ export default defineConfig(({ mode }) => { provider: "local", }, + editLink: { + pattern: 'https://github.com/qmk/qmk_firmware/edit/master/docs/:path' + }, + lastUpdated: true, + sidebar: sidebar, externalLinkIcon: true, From 4757ef281f5cb52668134dfc0b1c8c03445ec2ae Mon Sep 17 00:00:00 2001 From: Druah <54309603+Druah@users.noreply.github.com> Date: Tue, 12 Nov 2024 23:29:12 -0500 Subject: [PATCH 037/365] [Keyboard] Add Majestouch Redux (#24586) * [Keyboard] Add Majestouch Redux * Apply suggestions from code review Co-authored-by: Duncan Sutherland --------- Co-authored-by: Duncan Sutherland --- .../druah/majestouch_redux/keyboard.json | 131 ++++++++++++++++++ .../majestouch_redux/keymaps/default/keymap.c | 32 +++++ keyboards/druah/majestouch_redux/readme.md | 27 ++++ 3 files changed, 190 insertions(+) create mode 100644 keyboards/druah/majestouch_redux/keyboard.json create mode 100644 keyboards/druah/majestouch_redux/keymaps/default/keymap.c create mode 100644 keyboards/druah/majestouch_redux/readme.md diff --git a/keyboards/druah/majestouch_redux/keyboard.json b/keyboards/druah/majestouch_redux/keyboard.json new file mode 100644 index 00000000000..b9ea139bd58 --- /dev/null +++ b/keyboards/druah/majestouch_redux/keyboard.json @@ -0,0 +1,131 @@ +{ + "manufacturer": "FILCO", + "keyboard_name": "Majestouch Redux", + "maintainer": "Druah", + "bootloader": "atmel-dfu", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "C1", + "scroll_lock": "C0" + }, + "matrix_pins": { + "cols": ["A0", "A1", "A2", "F6", "F7", "E6", "F0", "F1", "F2", "B3", "B2", "B1", "F3", "F4", "C5", "C6", "C3"], + "rows": ["C2", "B4", "B5", "F5", "C7", "C4"] + }, + "processor": "at90usb646", + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "url": "https://druah.moe", + "usb": { + "device_version": "1.0.0", + "pid": "0x0003", + "vid": "0x444E" + }, + "community_layouts": ["tkl_ansi"], + "layouts": { + "LAYOUT_tkl_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2}, + {"matrix": [1, 14], "x": 15.25, "y": 1.5}, + {"matrix": [1, 15], "x": 16.25, "y": 1.5}, + {"matrix": [1, 16], "x": 17.25, "y": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.5}, + {"matrix": [2, 15], "x": 16.25, "y": 2.5}, + {"matrix": [2, 16], "x": 17.25, "y": 2.5}, + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"matrix": [4, 13], "x": 12.25, "y": 4.5, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.5}, + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 7], "x": 3.75, "y": 5.5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.5, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.5}, + {"matrix": [5, 15], "x": 16.25, "y": 5.5}, + {"matrix": [5, 16], "x": 17.25, "y": 5.5} + ] + } + } +} diff --git a/keyboards/druah/majestouch_redux/keymaps/default/keymap.c b/keyboards/druah/majestouch_redux/keymaps/default/keymap.c new file mode 100644 index 00000000000..a3f8be1bbac --- /dev/null +++ b/keyboards/druah/majestouch_redux/keymaps/default/keymap.c @@ -0,0 +1,32 @@ +// Copyright 2024 Druah (@Druah) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐┌───┬───┬───┐ + * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12││PSc│Scr│Pse│ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘└───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp││Ins│Hom│PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ ││Del│End│PgD│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤┌───┼───┼───┐ + * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl││ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ + */ + [0] = LAYOUT_tkl_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/keyboards/druah/majestouch_redux/readme.md b/keyboards/druah/majestouch_redux/readme.md new file mode 100644 index 00000000000..19df7d46974 --- /dev/null +++ b/keyboards/druah/majestouch_redux/readme.md @@ -0,0 +1,27 @@ +# Majestouch Redux + +![PCB](https://i.imgur.com/LjoywMI.png) + +A replacement PCB for the FILCO Majestouch TKL line of keyboards (and other keyboards) compatible with [Phantom TKL](https://deskthority.net/wiki/Phantom) PCB spacing + +* Keyboard Maintainer: [Druah](https://github.com/Druah) +* Hardware Supported: Majestouch Redux +* Hardware Availability: Private buy + +Make example for this keyboard (after setting up your build environment): + + make druah/majestouch_redux:default + +Flashing example for this keyboard: + + make druah/majestouch_redux:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the Escape/top left key) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB labelled with "RESET" +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From a8a47c40114c72a042516c1f93384f228685eb3e Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Thu, 14 Nov 2024 20:43:23 +1100 Subject: [PATCH 038/365] Perform test compiles during `qmk doctor`. (#24282) Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> --- lib/python/qmk/cli/doctor/check.py | 62 +++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 2 deletions(-) diff --git a/lib/python/qmk/cli/doctor/check.py b/lib/python/qmk/cli/doctor/check.py index d563811aba9..2804a1d7df1 100644 --- a/lib/python/qmk/cli/doctor/check.py +++ b/lib/python/qmk/cli/doctor/check.py @@ -4,6 +4,8 @@ from enum import Enum import re import shutil from subprocess import DEVNULL, TimeoutExpired +from tempfile import TemporaryDirectory +from pathlib import Path from milc import cli from qmk import submodules @@ -44,7 +46,35 @@ def _check_arm_gcc_version(): version_number = ESSENTIAL_BINARIES['arm-none-eabi-gcc']['output'].strip() cli.log.info('Found arm-none-eabi-gcc version %s', version_number) - return CheckStatus.OK # Right now all known arm versions are ok + # Right now all known ARM versions are ok, so check that it can produce binaries + return _check_arm_gcc_installation() + + +def _check_arm_gcc_installation(): + """Returns OK if the arm-none-eabi-gcc is fully installed and can produce binaries. + """ + with TemporaryDirectory() as temp_dir: + temp_file = Path(temp_dir) / 'test.elf' + + args = ['arm-none-eabi-gcc', '-mcpu=cortex-m0', '-mthumb', '-mno-thumb-interwork', '--specs=nosys.specs', '--specs=nano.specs', '-x', 'c', '-o', str(temp_file), '-'] + result = cli.run(args, stdin=None, stdout=None, stderr=None, input='#include \nint main() { return __NEWLIB__ * __NEWLIB_MINOR__ * __NEWLIB_PATCHLEVEL__; }') + if result.returncode == 0: + cli.log.info('Successfully compiled using arm-none-eabi-gcc') + else: + cli.log.error(f'Failed to compile a simple program with arm-none-eabi-gcc, return code {result.returncode}') + cli.log.error(f'Command: {" ".join(args)}') + return CheckStatus.ERROR + + args = ['arm-none-eabi-size', str(temp_file)] + result = cli.run(args, stdin=None, stdout=None, stderr=None) + if result.returncode == 0: + cli.log.info('Successfully tested arm-none-eabi-binutils using arm-none-eabi-size') + else: + cli.log.error(f'Failed to execute arm-none-eabi-size, perhaps corrupt arm-none-eabi-binutils, return code {result.returncode}') + cli.log.error(f'Command: {" ".join(args)}') + return CheckStatus.ERROR + + return CheckStatus.OK def _check_avr_gcc_version(): @@ -53,7 +83,35 @@ def _check_avr_gcc_version(): version_number = ESSENTIAL_BINARIES['avr-gcc']['output'].strip() cli.log.info('Found avr-gcc version %s', version_number) - return CheckStatus.OK + # Right now all known AVR versions are ok, so check that it can produce binaries + return _check_avr_gcc_installation() + + +def _check_avr_gcc_installation(): + """Returns OK if the avr-gcc is fully installed and can produce binaries. + """ + with TemporaryDirectory() as temp_dir: + temp_file = Path(temp_dir) / 'test.elf' + + args = ['avr-gcc', '-mmcu=atmega32u4', '-x', 'c', '-o', str(temp_file), '-'] + result = cli.run(args, stdin=None, stdout=None, stderr=None, input='int main() { return 0; }') + if result.returncode == 0: + cli.log.info('Successfully compiled using avr-gcc') + else: + cli.log.error(f'Failed to compile a simple program with avr-gcc, return code {result.returncode}') + cli.log.error(f'Command: {" ".join(args)}') + return CheckStatus.ERROR + + args = ['avr-size', str(temp_file)] + result = cli.run(args, stdin=None, stdout=None, stderr=None) + if result.returncode == 0: + cli.log.info('Successfully tested avr-binutils using avr-size') + else: + cli.log.error(f'Failed to execute avr-size, perhaps corrupt avr-binutils, return code {result.returncode}') + cli.log.error(f'Command: {" ".join(args)}') + return CheckStatus.ERROR + + return CheckStatus.OK def _check_avrdude_version(): From 0bda0f47754d01aa904f9831ff58ef760807ab16 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Thu, 14 Nov 2024 21:16:52 +1100 Subject: [PATCH 039/365] Revert removal of `QK_OUTPUT_AUTO`, fixup docs to reflect. (#24593) --- .../keycodes/keycodes_0.0.6_connection.hjson | 18 ++++++++----- docs/_aliases.json | 4 ++- docs/_sidebar.json | 4 +-- docs/features/{bluetooth.md => wireless.md} | 24 ++++++++++++----- docs/keycodes.md | 26 ++++++++++++++----- docs/reference_info_json.md | 4 +-- quantum/keycodes.h | 19 +++++++------- tests/test_common/keycode_table.cpp | 1 + 8 files changed, 67 insertions(+), 33 deletions(-) rename docs/features/{bluetooth.md => wireless.md} (53%) diff --git a/data/constants/keycodes/keycodes_0.0.6_connection.hjson b/data/constants/keycodes/keycodes_0.0.6_connection.hjson index 9a1a750f1ae..9be11068254 100644 --- a/data/constants/keycodes/keycodes_0.0.6_connection.hjson +++ b/data/constants/keycodes/keycodes_0.0.6_connection.hjson @@ -7,41 +7,47 @@ "keycodes": { "0x7780": { "group": "connection", - "key": "QK_OUTPUT_NEXT", + "key": "QK_OUTPUT_AUTO", "aliases": [ - "OU_NEXT", "OU_AUTO" ] }, "0x7781": { + "group": "connection", + "key": "QK_OUTPUT_NEXT", + "aliases": [ + "OU_NEXT" + ] + }, + "0x7782": { "group": "connection", "key": "QK_OUTPUT_PREV", "aliases": [ "OU_PREV" ] }, - "0x7782": { + "0x7783": { "group": "connection", "key": "QK_OUTPUT_NONE", "aliases": [ "OU_NONE" ] }, - "0x7783": { + "0x7784": { "group": "connection", "key": "QK_OUTPUT_USB", "aliases": [ "OU_USB" ] }, - "0x7784": { + "0x7785": { "group": "connection", "key": "QK_OUTPUT_2P4GHZ", "aliases": [ "OU_2P4G" ] }, - "0x7785": { + "0x7786": { "group": "connection", "key": "QK_OUTPUT_BLUETOOTH", "aliases": [ diff --git a/docs/_aliases.json b/docs/_aliases.json index f06e032215c..0dfcdea1e2f 100644 --- a/docs/_aliases.json +++ b/docs/_aliases.json @@ -16,6 +16,8 @@ "/tutorial": "/newbs", "/unicode": "/feature_unicode", + "/features/bluetooth": "/features/wireless", + "/adc_driver": "/drivers/adc", "/apa102_driver": "/drivers/apa102", "/audio_driver": "/drivers/audio", @@ -24,7 +26,7 @@ "/feature_auto_shift": "/features/auto_shift", "/feature_autocorrect": "/features/autocorrect", "/feature_backlight": "/features/backlight", - "/feature_bluetooth": "/features/bluetooth", + "/feature_bluetooth": "/features/wireless", "/feature_bootmagic": "/features/bootmagic", "/feature_caps_word": "/features/caps_word", "/feature_combo": "/features/combo", diff --git a/docs/_sidebar.json b/docs/_sidebar.json index d691011d641..7f353ad351d 100644 --- a/docs/_sidebar.json +++ b/docs/_sidebar.json @@ -166,7 +166,6 @@ ] }, { "text": "Audio", "link": "/features/audio" }, - { "text": "Bluetooth", "link": "/features/bluetooth" }, { "text": "Bootmagic", "link": "/features/bootmagic" }, { "text": "Converters", "link": "/feature_converters" }, { "text": "Custom Matrix", "link": "/custom_matrix" }, @@ -179,7 +178,8 @@ { "text": "Pointing Device", "link": "/features/pointing_device" }, { "text": "PS/2 Mouse", "link": "/features/ps2_mouse" }, { "text": "Split Keyboard", "link": "/features/split_keyboard" }, - { "text": "Stenography", "link": "/features/stenography" } + { "text": "Stenography", "link": "/features/stenography" }, + { "text": "Wireless", "link": "/features/wireless" } ] }, { diff --git a/docs/features/bluetooth.md b/docs/features/wireless.md similarity index 53% rename from docs/features/bluetooth.md rename to docs/features/wireless.md index d3634498be4..0d73ad3583e 100644 --- a/docs/features/bluetooth.md +++ b/docs/features/wireless.md @@ -1,4 +1,4 @@ -# Bluetooth +# Wireless / Bluetooth ## Bluetooth Known Supported Hardware @@ -39,8 +39,20 @@ BLUETOOTH_DRIVER = bluefruit_le # or rn42 This is used when multiple keyboard outputs can be selected. Currently this only allows for switching between USB and Bluetooth on keyboards that support both. -| Key | Aliases | Description | -|-----------------------|----------------------|------------------------------------------------| -| `QK_OUTPUT_NEXT` | `OU_NEXT`, `OU_AUTO` | Automatically switch between USB and Bluetooth | -| `QK_OUTPUT_USB` | `OU_USB` | USB only | -| `QK_OUTPUT_BLUETOOTH` | `OU_BT` | Bluetooth only | +| Key | Aliases | Description | +|-----------------------------|-----------|-----------------------------------------------------------------------------------------------| +| `QK_OUTPUT_AUTO` | `OU_AUTO` | Automatically switch to USB when plugged in, otherwise use wireless | +| `QK_OUTPUT_NEXT` | `OU_NEXT` | Cycle forwards through USB, Bluetooth, and 2.4GHz (when available) **(not yet implemented)** | +| `QK_OUTPUT_PREV` | `OU_PREV` | Cycle backwards through USB, Bluetooth, and 2.4GHz (when available) **(not yet implemented)** | +| `QK_OUTPUT_NONE` | `OU_NONE` | Disable all output **(not yet implemented)** | +| `QK_OUTPUT_USB` | `OU_USB` | Output to USB only | +| `QK_OUTPUT_2P4GHZ` | `OU_2P4G` | Output to 2.4GHz only **(not yet implemented)** | +| `QK_OUTPUT_BLUETOOTH` | `OU_BT` | Output to Bluetooth only | +| `QK_BLUETOOTH_PROFILE_NEXT` | `BT_NEXT` | Move to the next Bluetooth profile **(not yet implemented)** | +| `QK_BLUETOOTH_PROFILE_PREV` | `BT_PREV` | Move to the previous Bluetooth profile **(not yet implemented)** | +| `QK_BLUETOOTH_UNPAIR` | `BT_UNPR` | Un-pair the current Bluetooth profile **(not yet implemented)** | +| `QK_BLUETOOTH_PROFILE1` | `BT_PRF1` | Swap to Bluetooth profile #1 **(not yet implemented)** | +| `QK_BLUETOOTH_PROFILE2` | `BT_PRF2` | Swap to Bluetooth profile #2 **(not yet implemented)** | +| `QK_BLUETOOTH_PROFILE3` | `BT_PRF3` | Swap to Bluetooth profile #3 **(not yet implemented)** | +| `QK_BLUETOOTH_PROFILE4` | `BT_PRF4` | Swap to Bluetooth profile #4 **(not yet implemented)** | +| `QK_BLUETOOTH_PROFILE5` | `BT_PRF5` | Swap to Bluetooth profile #5 **(not yet implemented)** | diff --git a/docs/keycodes.md b/docs/keycodes.md index 1210390f54b..3665747a0bf 100644 --- a/docs/keycodes.md +++ b/docs/keycodes.md @@ -290,15 +290,27 @@ See also: [Backlighting](features/backlight) | `QK_BACKLIGHT_DOWN` | `BL_DOWN` | Decrease the backlight level | | `QK_BACKLIGHT_TOGGLE_BREATHING` | `BL_BRTG` | Toggle backlight breathing | -## Bluetooth {#bluetooth} +## Wireless/Bluetooth {#bluetooth} -See also: [Bluetooth](features/bluetooth) +See also: [Wireless](features/wireless) -| Key | Aliases | Description | -|-----------------------|----------------------|------------------------------------------------| -| `QK_OUTPUT_NEXT` | `OU_NEXT`, `OU_AUTO` | Automatically switch between USB and Bluetooth | -| `QK_OUTPUT_USB` | `OU_USB` | USB only | -| `QK_OUTPUT_BLUETOOTH` | `OU_BT` | Bluetooth only | +| Key | Aliases | Description | +|-----------------------------|-----------|-----------------------------------------------------------------------------------------------| +| `QK_OUTPUT_AUTO` | `OU_AUTO` | Automatically switch to USB when plugged in, otherwise use wireless | +| `QK_OUTPUT_NEXT` | `OU_NEXT` | Cycle forwards through USB, Bluetooth, and 2.4GHz (when available) **(not yet implemented)** | +| `QK_OUTPUT_PREV` | `OU_PREV` | Cycle backwards through USB, Bluetooth, and 2.4GHz (when available) **(not yet implemented)** | +| `QK_OUTPUT_NONE` | `OU_NONE` | Disable all output **(not yet implemented)** | +| `QK_OUTPUT_USB` | `OU_USB` | Output to USB only | +| `QK_OUTPUT_2P4GHZ` | `OU_2P4G` | Output to 2.4GHz only **(not yet implemented)** | +| `QK_OUTPUT_BLUETOOTH` | `OU_BT` | Output to Bluetooth only | +| `QK_BLUETOOTH_PROFILE_NEXT` | `BT_NEXT` | Move to the next Bluetooth profile **(not yet implemented)** | +| `QK_BLUETOOTH_PROFILE_PREV` | `BT_PREV` | Move to the previous Bluetooth profile **(not yet implemented)** | +| `QK_BLUETOOTH_UNPAIR` | `BT_UNPR` | Un-pair the current Bluetooth profile **(not yet implemented)** | +| `QK_BLUETOOTH_PROFILE1` | `BT_PRF1` | Swap to Bluetooth profile #1 **(not yet implemented)** | +| `QK_BLUETOOTH_PROFILE2` | `BT_PRF2` | Swap to Bluetooth profile #2 **(not yet implemented)** | +| `QK_BLUETOOTH_PROFILE3` | `BT_PRF3` | Swap to Bluetooth profile #3 **(not yet implemented)** | +| `QK_BLUETOOTH_PROFILE4` | `BT_PRF4` | Swap to Bluetooth profile #4 **(not yet implemented)** | +| `QK_BLUETOOTH_PROFILE5` | `BT_PRF5` | Swap to Bluetooth profile #5 **(not yet implemented)** | ## Caps Word {#caps-word} diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index c1061cdf823..99ff7b1f7a3 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -177,9 +177,9 @@ Configures the [Backlight](features/backlight) feature. * `pins` Array: Pin * A list of GPIO pins connected to the backlight LEDs (`software` and `timer` drivers only). -## Bluetooth {#bluetooth} +## Wireless/Bluetooth {#bluetooth} -Configures the [Bluetooth](features/bluetooth) feature. +Configures the [Wireless](features/wireless) feature. * `bluetooth` * `driver` String diff --git a/quantum/keycodes.h b/quantum/keycodes.h index 38127bb6da1..51b7eb6c9a4 100644 --- a/quantum/keycodes.h +++ b/quantum/keycodes.h @@ -622,12 +622,13 @@ enum qk_keycode_defines { QK_MACRO_29 = 0x771D, QK_MACRO_30 = 0x771E, QK_MACRO_31 = 0x771F, - QK_OUTPUT_NEXT = 0x7780, - QK_OUTPUT_PREV = 0x7781, - QK_OUTPUT_NONE = 0x7782, - QK_OUTPUT_USB = 0x7783, - QK_OUTPUT_2P4GHZ = 0x7784, - QK_OUTPUT_BLUETOOTH = 0x7785, + QK_OUTPUT_AUTO = 0x7780, + QK_OUTPUT_NEXT = 0x7781, + QK_OUTPUT_PREV = 0x7782, + QK_OUTPUT_NONE = 0x7783, + QK_OUTPUT_USB = 0x7784, + QK_OUTPUT_2P4GHZ = 0x7785, + QK_OUTPUT_BLUETOOTH = 0x7786, QK_BLUETOOTH_PROFILE_NEXT = 0x7790, QK_BLUETOOTH_PROFILE_PREV = 0x7791, QK_BLUETOOTH_UNPAIR = 0x7792, @@ -1309,8 +1310,8 @@ enum qk_keycode_defines { MC_29 = QK_MACRO_29, MC_30 = QK_MACRO_30, MC_31 = QK_MACRO_31, + OU_AUTO = QK_OUTPUT_AUTO, OU_NEXT = QK_OUTPUT_NEXT, - OU_AUTO = QK_OUTPUT_NEXT, OU_PREV = QK_OUTPUT_PREV, OU_NONE = QK_OUTPUT_NONE, OU_USB = QK_OUTPUT_USB, @@ -1494,7 +1495,7 @@ enum qk_keycode_defines { #define IS_AUDIO_KEYCODE(code) ((code) >= QK_AUDIO_ON && (code) <= QK_AUDIO_VOICE_PREVIOUS) #define IS_STENO_KEYCODE(code) ((code) >= QK_STENO_BOLT && (code) <= QK_STENO_COMB_MAX) #define IS_MACRO_KEYCODE(code) ((code) >= QK_MACRO_0 && (code) <= QK_MACRO_31) -#define IS_CONNECTION_KEYCODE(code) ((code) >= QK_OUTPUT_NEXT && (code) <= QK_BLUETOOTH_PROFILE5) +#define IS_CONNECTION_KEYCODE(code) ((code) >= QK_OUTPUT_AUTO && (code) <= QK_BLUETOOTH_PROFILE5) #define IS_BACKLIGHT_KEYCODE(code) ((code) >= QK_BACKLIGHT_ON && (code) <= QK_BACKLIGHT_TOGGLE_BREATHING) #define IS_LED_MATRIX_KEYCODE(code) ((code) >= QK_LED_MATRIX_ON && (code) <= QK_LED_MATRIX_SPEED_DOWN) #define IS_UNDERGLOW_KEYCODE(code) ((code) >= QK_UNDERGLOW_TOGGLE && (code) <= QK_UNDERGLOW_SPEED_DOWN) @@ -1520,7 +1521,7 @@ enum qk_keycode_defines { #define AUDIO_KEYCODE_RANGE QK_AUDIO_ON ... QK_AUDIO_VOICE_PREVIOUS #define STENO_KEYCODE_RANGE QK_STENO_BOLT ... QK_STENO_COMB_MAX #define MACRO_KEYCODE_RANGE QK_MACRO_0 ... QK_MACRO_31 -#define CONNECTION_KEYCODE_RANGE QK_OUTPUT_NEXT ... QK_BLUETOOTH_PROFILE5 +#define CONNECTION_KEYCODE_RANGE QK_OUTPUT_AUTO ... QK_BLUETOOTH_PROFILE5 #define BACKLIGHT_KEYCODE_RANGE QK_BACKLIGHT_ON ... QK_BACKLIGHT_TOGGLE_BREATHING #define LED_MATRIX_KEYCODE_RANGE QK_LED_MATRIX_ON ... QK_LED_MATRIX_SPEED_DOWN #define UNDERGLOW_KEYCODE_RANGE QK_UNDERGLOW_TOGGLE ... QK_UNDERGLOW_SPEED_DOWN diff --git a/tests/test_common/keycode_table.cpp b/tests/test_common/keycode_table.cpp index e4d445de828..a520dd3f2bf 100644 --- a/tests/test_common/keycode_table.cpp +++ b/tests/test_common/keycode_table.cpp @@ -562,6 +562,7 @@ std::map KEYCODE_ID_TABLE = { {QK_MACRO_29, "QK_MACRO_29"}, {QK_MACRO_30, "QK_MACRO_30"}, {QK_MACRO_31, "QK_MACRO_31"}, + {QK_OUTPUT_AUTO, "QK_OUTPUT_AUTO"}, {QK_OUTPUT_NEXT, "QK_OUTPUT_NEXT"}, {QK_OUTPUT_PREV, "QK_OUTPUT_PREV"}, {QK_OUTPUT_NONE, "QK_OUTPUT_NONE"}, From 46236ce3de8385f27e3f13a9921abee7e1e0fa57 Mon Sep 17 00:00:00 2001 From: Ryan Date: Fri, 15 Nov 2024 05:00:02 +1100 Subject: [PATCH 040/365] [docs] Improve halconf/mcuconf code examples (#24597) --- docs/drivers/audio.md | 88 ++++++++++++++++------------ docs/drivers/i2c.md | 21 ++++--- docs/drivers/serial.md | 114 +++++++++++++++++++++---------------- docs/drivers/spi.md | 25 +++++--- docs/drivers/uart.md | 8 ++- docs/drivers/ws2812.md | 44 +++++++++----- docs/features/backlight.md | 44 +++++++++----- docs/features/ps2_mouse.md | 14 +++-- 8 files changed, 222 insertions(+), 136 deletions(-) diff --git a/docs/drivers/audio.md b/docs/drivers/audio.md index c764c97369a..165e61f0655 100644 --- a/docs/drivers/audio.md +++ b/docs/drivers/audio.md @@ -57,27 +57,32 @@ This driver needs one Timer per enabled/used DAC channel, to trigger conversion; Additionally, in the board config, you'll want to make changes to enable the DACs, GPT for Timers 6, 7 and 8: -```c -//halconf.h: -#define HAL_USE_DAC TRUE -#define HAL_USE_GPT TRUE +::: code-group +```c [halconf.h] +#pragma once + +#define HAL_USE_DAC TRUE // [!code focus] +#define HAL_USE_GPT TRUE // [!code focus] + #include_next ``` +```c [mcuconf.h] +#pragma once -```c -// mcuconf.h: #include_next -#undef STM32_DAC_USE_DAC1_CH1 -#define STM32_DAC_USE_DAC1_CH1 TRUE -#undef STM32_DAC_USE_DAC1_CH2 -#define STM32_DAC_USE_DAC1_CH2 TRUE -#undef STM32_GPT_USE_TIM6 -#define STM32_GPT_USE_TIM6 TRUE -#undef STM32_GPT_USE_TIM7 -#define STM32_GPT_USE_TIM7 TRUE -#undef STM32_GPT_USE_TIM8 -#define STM32_GPT_USE_TIM8 TRUE + +#undef STM32_DAC_USE_DAC1_CH1 // [!code focus] +#define STM32_DAC_USE_DAC1_CH1 TRUE // [!code focus] +#undef STM32_DAC_USE_DAC1_CH2 // [!code focus] +#define STM32_DAC_USE_DAC1_CH2 TRUE // [!code focus] +#undef STM32_GPT_USE_TIM6 // [!code focus] +#define STM32_GPT_USE_TIM6 TRUE // [!code focus] +#undef STM32_GPT_USE_TIM7 // [!code focus] +#define STM32_GPT_USE_TIM7 TRUE // [!code focus] +#undef STM32_GPT_USE_TIM8 // [!code focus] +#define STM32_GPT_USE_TIM8 TRUE // [!code focus] ``` +::: ::: tip Note: DAC1 (A4) uses TIM6, DAC2 (A5) uses TIM7, and the audio state timer uses TIM8 (configurable). @@ -95,23 +100,28 @@ only needs one timer (GPTD6, Tim6) to trigger the DAC unit to do a conversion; t Additionally, in the board config, you'll want to make changes to enable the DACs, GPT for Timer 6: -```c -//halconf.h: -#define HAL_USE_DAC TRUE -#define HAL_USE_GPT TRUE +::: code-group +```c [halconf.h] +#pragma once + +#define HAL_USE_DAC TRUE // [!code focus] +#define HAL_USE_GPT TRUE // [!code focus] + #include_next ``` +```c [mcuconf.h] +#pragma once -```c -// mcuconf.h: #include_next -#undef STM32_DAC_USE_DAC1_CH1 -#define STM32_DAC_USE_DAC1_CH1 TRUE -#undef STM32_DAC_USE_DAC1_CH2 -#define STM32_DAC_USE_DAC1_CH2 TRUE -#undef STM32_GPT_USE_TIM6 -#define STM32_GPT_USE_TIM6 TRUE + +#undef STM32_DAC_USE_DAC1_CH1 // [!code focus] +#define STM32_DAC_USE_DAC1_CH1 TRUE // [!code focus] +#undef STM32_DAC_USE_DAC1_CH2 // [!code focus] +#define STM32_DAC_USE_DAC1_CH2 TRUE // [!code focus] +#undef STM32_GPT_USE_TIM6 // [!code focus] +#define STM32_GPT_USE_TIM6 TRUE // [!code focus] ``` +::: ### DAC Config @@ -170,19 +180,25 @@ This driver uses the ChibiOS-PWM system to produce a square-wave on specific out The hardware directly toggles the pin via its alternate function. See your MCU's data-sheet for which pin can be driven by what timer - looking for TIMx_CHy and the corresponding alternate function. A configuration example for the STM32F103C8 would be: -```c -//halconf.h: -#define HAL_USE_PWM TRUE -#define HAL_USE_PAL TRUE + +::: code-group +```c [halconf.h] +#pragma once + +#define HAL_USE_PWM TRUE // [!code focus] +#define HAL_USE_PAL TRUE // [!code focus] + #include_next ``` +```c [mcuconf.h] +#pragma once -```c -// mcuconf.h: #include_next -#undef STM32_PWM_USE_TIM1 -#define STM32_PWM_USE_TIM1 TRUE + +#undef STM32_PWM_USE_TIM1 // [!code focus] +#define STM32_PWM_USE_TIM1 TRUE // [!code focus] ``` +::: If we now target pin A8, looking through the data-sheet of the STM32F103C8, for the timers and alternate functions - TIM1_CH1 = PA8 <- alternate0 diff --git a/docs/drivers/i2c.md b/docs/drivers/i2c.md index 10949ed59e0..c806a090c56 100644 --- a/docs/drivers/i2c.md +++ b/docs/drivers/i2c.md @@ -54,18 +54,25 @@ The ATmega16/32U2 does not possess I2C functionality, and so cannot use this dri You'll need to determine which pins can be used for I2C -- a an example, STM32 parts generally have multiple I2C peripherals, labeled I2C1, I2C2, I2C3 etc. -To enable I2C, modify your board's `halconf.h` to enable I2C: +To enable I2C, modify your board's `halconf.h` to enable I2C, then modify your board's `mcuconf.h` to enable the peripheral you've chosen: -```c -#define HAL_USE_I2C TRUE +::: code-group +```c [halconf.h] +#pragma once + +#define HAL_USE_I2C TRUE // [!code focus] + +#include_next ``` +```c [mcuconf.h] +#pragma once -Then, modify your board's `mcuconf.h` to enable the peripheral you've chosen, for example: +#include_next -```c -#undef STM32_I2C_USE_I2C2 -#define STM32_I2C_USE_I2C2 TRUE +#undef STM32_I2C_USE_I2C2 // [!code focus] +#define STM32_I2C_USE_I2C2 TRUE // [!code focus] ``` +::: |`mcuconf.h` Setting |Description |Default| |----------------------------|----------------------------------------------------------------------------------|-------| diff --git a/docs/drivers/serial.md b/docs/drivers/serial.md index 75d11bc93bc..dda75f629a2 100644 --- a/docs/drivers/serial.md +++ b/docs/drivers/serial.md @@ -12,8 +12,6 @@ The Serial driver powers the [Split Keyboard](../features/split_keyboard) featur Serial in this context should be read as **sending information one bit at a time**, rather than implementing UART/USART/RS485/RS232 standards. ::: -
- ## Bitbang This is the Default driver, absence of configuration assumes this driver. It works by [bit banging](https://en.wikipedia.org/wiki/Bit_banging) a GPIO pin using the CPU. It is therefore not as efficient as a dedicated hardware peripheral, which the Half-duplex and Full-duplex drivers use. @@ -53,11 +51,15 @@ SERIAL_DRIVER = bitbang #define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 ``` -3. On ARM platforms you must turn on ChibiOS `PAL_USE_CALLBACKS` feature: +3. On ARM platforms you must turn on ChibiOS PAL callbacks: -* In `halconf.h` add the line `#define PAL_USE_CALLBACKS TRUE`. +```c +#pragma once -
+#define PAL_USE_CALLBACKS TRUE // [!code focus] + +#include_next +``` ## USART Half-duplex @@ -117,8 +119,6 @@ For STM32 MCUs several GPIO configuration options can be changed as well. See th 4. Decide either for `SERIAL`, `SIO`, or `PIO` subsystem. See section ["Choosing a driver subsystem"](#choosing-a-driver-subsystem). -
- ## USART Full-duplex Targeting ARM boards based on ChibiOS where communication is offloaded to an USART hardware device. The advantages over bitbanging are fast, accurate timings and reduced CPU usage; therefore it is advised to choose this driver over all others where possible. Due to its internal design Full-duplex is slightly more efficient than the Half-duplex driver, but Full-duplex should be primarily chosen if Half-duplex operation is not supported by the controller's USART peripheral. @@ -179,38 +179,46 @@ For STM32 MCUs several GPIO configuration options, including the ability for `TX 4. Decide either for `SERIAL`, `SIO`, or `PIO` subsystem. See section ["Choosing a driver subsystem"](#choosing-a-driver-subsystem). -
- ## Choosing a driver subsystem ### The `SERIAL` driver The `SERIAL` Subsystem is supported for the majority of ChibiOS MCUs and should be used whenever supported. Follow these steps in order to activate it: -1. In your keyboards `halconf.h` add: +1. Enable the SERIAL subsystem in the ChibiOS HAL. -```c -#define HAL_USE_SERIAL TRUE -``` + Add the following to your keyboard's `halconf.h`, creating it if necessary: -2. In your keyboards `mcuconf.h`: activate the USART peripheral that is used on your MCU. The shown example is for an STM32 MCU, so this will not work on MCUs by other manufacturers. You can find the correct names in the `mcuconf.h` files of your MCU that ship with ChibiOS. - -Just below `#include_next ` add: + ```c + #pragma once -```c -#include_next + #define HAL_USE_SERIAL TRUE // [!code focus] -#undef STM32_SERIAL_USE_USARTn -#define STM32_SERIAL_USE_USARTn TRUE -``` + #include_next + ``` -Where 'n' matches the peripheral number of your selected USART on the MCU. +2. Activate the USART peripheral that is used on your MCU. The shown example is for an STM32 MCU, so this will not work on MCUs by other manufacturers. You can find the correct names in the `mcuconf.h` files of your MCU that ship with ChibiOS. -3. In you keyboards `config.h`: override the default USART `SERIAL` driver if you use a USART peripheral that does not belong to the default selected `SD1` driver. For instance, if you selected `STM32_SERIAL_USE_USART3` the matching driver would be `SD3`. + Add the following to your keyboard's `mcuconf.h`, creating it if necessary: -```c - #define SERIAL_USART_DRIVER SD3 - ``` + ```c + #pragma once + + #include_next + + #undef STM32_SERIAL_USE_USARTn // [!code focus] + #define STM32_SERIAL_USE_USARTn TRUE // [!code focus] + ``` + + Where *n* matches the peripheral number of your selected USART on the MCU. + +3. Override the default USART `SERIAL` driver if you use a USART peripheral that does not belong to the default selected `SD1` driver. For instance, if you selected `STM32_SERIAL_USE_USART3` the matching driver would be `SD3`. + + Add the following to your keyboard's `config.h`: + + ```c + #define SERIAL_USART_DRIVER SD3 + ``` ### The `SIO` driver @@ -218,31 +226,41 @@ The `SIO` Subsystem was added to ChibiOS with the 21.11 release and is only supp Follow these steps in order to activate it: -1. In your keyboards `halconf.h` add: +1. Enable the SIO subsystem in the ChibiOS HAL. -```c -#define HAL_USE_SIO TRUE -``` + Add the following to your keyboard's `halconf.h`, creating it if necessary: -2. In your keyboards `mcuconf.h:` activate the USART peripheral that is used on your MCU. The shown example is for an STM32 MCU, so this will not work on MCUs by other manufacturers. You can find the correct names in the `mcuconf.h` files of your MCU that ship with ChibiOS. - -Just below `#include_next ` add: + ```c + #pragma once -```c -#include_next + #define HAL_USE_SIO TRUE // [!code focus] -#undef STM32_SIO_USE_USARTn -#define STM32_SIO_USE_USARTn TRUE -``` + #include_next + ``` -Where 'n' matches the peripheral number of your selected USART on the MCU. +2. Activate the USART peripheral that is used on your MCU. The shown example is for an STM32 MCU, so this will not work on MCUs by other manufacturers. You can find the correct names in the `mcuconf.h` files of your MCU that ship with ChibiOS. -3. In the keyboard's `config.h` file: override the default USART `SIO` driver if you use a USART peripheral that does not belong to the default selected `SIOD1` driver. For instance, if you selected `STM32_SERIAL_USE_USART3` the matching driver would be `SIOD3`. + Add the following to your keyboard's `mcuconf.h`, creating it if necessary: + + ```c + #pragma once + + #include_next + + #undef STM32_SIO_USE_USARTn // [!code focus] + #define STM32_SIO_USE_USARTn TRUE // [!code focus] + ``` + + Where *n* matches the peripheral number of your selected USART on the MCU. + +3. Override the default USART `SIO` driver if you use a USART peripheral that does not belong to the default selected `SIOD1` driver. For instance, if you selected `STM32_SERIAL_USE_USART3` the matching driver would be `SIOD3`. + + Add the following to your keyboard's `config.h`: + + ```c + #define SERIAL_USART_DRIVER SIOD3 + ``` -```c - #define SERIAL_USART_DRIVER SIOD3 - ``` - ### The `PIO` driver The `PIO` subsystem is a Raspberry Pi RP2040 specific implementation, using an integrated PIO peripheral and is therefore only available on this MCU. Because of the flexible nature of PIO peripherals, **any** GPIO pin can be used as a `TX` or `RX` pin. Half-duplex and Full-duplex operation modes are fully supported with this driver. Half-duplex uses the built-in pull-ups and GPIO manipulation of the RP2040 to drive the line high by default, thus an external pull-up resistor **is not required**. @@ -254,8 +272,6 @@ Optionally, the PIO peripheral utilized for split communication can be changed w The Serial PIO program uses 2 state machines, 13 instructions and the complete interrupt handler of the PIO peripheral it is running on. -
- ## Advanced Configuration There are several advanced configuration options that can be defined in your keyboards `config.h` file: @@ -265,9 +281,11 @@ There are several advanced configuration options that can be defined in your key If you're having issues or need a higher baudrate with serial communication, you can change the baudrate which in turn controls the communication speed for serial. You want to lower the baudrate if you experience failed transactions. ```c -#define SELECT_SOFT_SERIAL_SPEED {#} +#define SELECT_SOFT_SERIAL_SPEED n ``` +Where *n* is one of: + | Speed | Bitbang | Half-duplex and Full-duplex | | ----- | -------------------------- | --------------------------- | | `0` | 189000 baud (experimental) | 460800 baud | @@ -287,8 +305,6 @@ This is the default time window in milliseconds in which a successful communicat #define SERIAL_USART_TIMEOUT 20 // USART driver timeout. default 20 ``` -
- ## Troubleshooting If you're having issues withe serial communication, you can enable debug messages that will give you insights which part of the communication failed. The enable these messages add to your keyboards `config.h` file: diff --git a/docs/drivers/spi.md b/docs/drivers/spi.md index ddc35de8511..43d2a056d5d 100644 --- a/docs/drivers/spi.md +++ b/docs/drivers/spi.md @@ -32,20 +32,27 @@ You may use more than one slave select pin, not just the `SS` pin. This is usefu You'll need to determine which pins can be used for SPI -- as an example, STM32 parts generally have multiple SPI peripherals, labeled SPI1, SPI2, SPI3 etc. -To enable SPI, modify your board's `halconf.h` to enable SPI: +To enable SPI, modify your board's `halconf.h` to enable SPI, then modify your board's `mcuconf.h` to enable the peripheral you've chosen: -```c -#define HAL_USE_SPI TRUE -#define SPI_USE_WAIT TRUE -#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD +::: code-group +```c [halconf.h] +#pragma once + +#define HAL_USE_SPI TRUE // [!code focus] +#define SPI_USE_WAIT TRUE // [!code focus] +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD // [!code focus] + +#include_next ``` +```c [mcuconf.h] +#pragma once -Then, modify your board's `mcuconf.h` to enable the peripheral you've chosen, for example: +#include_next -```c -#undef STM32_SPI_USE_SPI2 -#define STM32_SPI_USE_SPI2 TRUE +#undef STM32_SPI_USE_SPI2 // [!code focus] +#define STM32_SPI_USE_SPI2 TRUE // [!code focus] ``` +::: Configuration-wise, you'll need to set up the peripheral as per your MCU's datasheet -- the defaults match the pins for a Proton-C, i.e. STM32F303. diff --git a/docs/drivers/uart.md b/docs/drivers/uart.md index 23f5b3d6e43..7cc68727eec 100644 --- a/docs/drivers/uart.md +++ b/docs/drivers/uart.md @@ -35,8 +35,12 @@ You'll need to determine which pins can be used for UART -- as an example, STM32 To enable UART, modify your board's `mcuconf.h` to enable the peripheral you've chosen, for example: ```c -#undef STM32_SERIAL_USE_USART2 -#define STM32_SERIAL_USE_USART2 TRUE +#pragma once + +#include_next + +#undef STM32_SERIAL_USE_USART2 // [!code focus] +#define STM32_SERIAL_USE_USART2 TRUE // [!code focus] ``` Configuration-wise, you'll need to set up the peripheral as per your MCU's datasheet -- the defaults match the pins for a Proton-C, i.e. STM32F303. diff --git a/docs/drivers/ws2812.md b/docs/drivers/ws2812.md index 61addf1917e..88c096794f2 100644 --- a/docs/drivers/ws2812.md +++ b/docs/drivers/ws2812.md @@ -160,15 +160,23 @@ To configure the DI pin for open drain configuration, add the following to your Depending on the ChibiOS board configuration, you may need to enable SPI at the keyboard level. For STM32, this would look like: -`halconf.h`: -```c -#define HAL_USE_SPI TRUE +::: code-group +```c [halconf.h] +#pragma once + +#define HAL_USE_SPI TRUE // [!code focus] + +#include_next ``` -`mcuconf.h`: -```c -#undef STM32_SPI_USE_SPI1 -#define STM32_SPI_USE_SPI1 TRUE +```c [mcuconf.h] +#pragma once + +#include_next + +#undef STM32_SPI_USE_SPI1 // [!code focus] +#define STM32_SPI_USE_SPI1 TRUE // [!code focus] ``` +::: The following `define`s apply only to the `spi` driver: @@ -213,15 +221,23 @@ The following `#define`s apply only to the PIO driver: Depending on the ChibiOS board configuration, you may need to enable PWM at the keyboard level. For STM32, this would look like: -`halconf.h`: -```c -#define HAL_USE_PWM TRUE +::: code-group +```c [halconf.h] +#pragma once + +#define HAL_USE_PWM TRUE // [!code focus] + +#include_next ``` -`mcuconf.h`: -```c -#undef STM32_PWM_USE_TIM2 -#define STM32_PWM_USE_TIM2 TRUE +```c [mcuconf.h] +#pragma once + +#include_next + +#undef STM32_PWM_USE_TIM2 // [!code focus] +#define STM32_PWM_USE_TIM2 TRUE // [!code focus] ``` +::: The following `#define`s apply only to the `pwm` driver: diff --git a/docs/features/backlight.md b/docs/features/backlight.md index 94726756fdb..20f84ac6b59 100644 --- a/docs/features/backlight.md +++ b/docs/features/backlight.md @@ -161,15 +161,23 @@ Note that the choice of timer may conflict with the [Audio](audio) feature. Depending on the ChibiOS board configuration, you may need to enable PWM at the keyboard level. For STM32, this would look like: -`halconf.h`: -```c -#define HAL_USE_PWM TRUE +::: code-group +```c [halconf.h] +#pragma once + +#define HAL_USE_PWM TRUE // [!code focus] + +#include_next ``` -`mcuconf.h`: -```c -#undef STM32_PWM_USE_TIM4 -#define STM32_PWM_USE_TIM4 TRUE +```c [mcuconf.h] +#pragma once + +#include_next + +#undef STM32_PWM_USE_TIM4 // [!code focus] +#define STM32_PWM_USE_TIM4 TRUE // [!code focus] ``` +::: The following `#define`s apply only to the `pwm` driver: @@ -187,15 +195,23 @@ Refer to the ST datasheet for your particular MCU to determine these values. For Depending on the ChibiOS board configuration, you may need to enable general-purpose timers at the keyboard level. For STM32, this would look like: -`halconf.h`: -```c -#define HAL_USE_GPT TRUE +::: code-group +```c [halconf.h] +#pragma once + +#define HAL_USE_GPT TRUE // [!code focus] + +#include_next ``` -`mcuconf.h`: -```c -#undef STM32_GPT_USE_TIM15 -#define STM32_GPT_USE_TIM15 TRUE +```c [mcuconf.h] +#pragma once + +#include_next + +#undef STM32_GPT_USE_TIM15 // [!code focus] +#define STM32_GPT_USE_TIM15 TRUE // [!code focus] ``` +::: The following `#define`s apply only to the `timer` driver: diff --git a/docs/features/ps2_mouse.md b/docs/features/ps2_mouse.md index 90f4cca8275..52443c3ce29 100644 --- a/docs/features/ps2_mouse.md +++ b/docs/features/ps2_mouse.md @@ -90,18 +90,22 @@ PS2_ENABLE = yes PS2_DRIVER = interrupt ``` -In your keyboard config.h: +In your keyboard `config.h`: ```c #define PS2_CLOCK_PIN A8 #define PS2_DATA_PIN A9 ``` -And in the chibios specifig halconf.h: -```c -#define PAL_USE_CALLBACKS TRUE -``` +And in the ChibiOS specific `halconf.h`: +```c +#pragma once + +#define PAL_USE_CALLBACKS TRUE // [!code focus] + +#include_next +``` ### USART Version {#usart-version} From f4e58eeff4a19bf1e2c38ed860193e455fe8703f Mon Sep 17 00:00:00 2001 From: Amund Tenstad Date: Fri, 15 Nov 2024 19:15:48 +0100 Subject: [PATCH 041/365] docs: move description of host_language from Macros to Language-specific Keycodes (#24584) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: フィルターペーパー <76888457+filterpaper@users.noreply.github.com> Co-authored-by: Joel Challis Co-authored-by: Ryan --- docs/feature_macros.md | 33 +-------------------------------- docs/reference_keymap_extras.md | 26 ++++++++++++++++++++++++-- 2 files changed, 25 insertions(+), 34 deletions(-) diff --git a/docs/feature_macros.md b/docs/feature_macros.md index 055bb3ff8f7..b4e37a1ba96 100644 --- a/docs/feature_macros.md +++ b/docs/feature_macros.md @@ -42,38 +42,7 @@ You can define up to 32 macros in a `keymap.json` file, as used by [Configurator ### Selecting Your Host Keyboard Layout -If you type in a language other than English, or use a non-QWERTY layout like Colemak, Dvorak, or Workman, you may have set your computer's input language to match this layout. This presents a challenge when creating macros - you may need to type different keys to get the same letters! To address this you can add the `host_language` key to your `keymap.json`, like so: - -```json -{ - "keyboard": "handwired/my_macropad", - "keymap": "my_keymap", - "host_language": "dvorak", - "macros": [ - ["Hello, World!"] - ], - "layout": "LAYOUT_all", - "layers": [ - ["QK_MACRO_0"] - ] -} -``` - -The current list of available languages is: - -| belgian | bepo | br_abnt2 | canadian_multilingual | -|:-------:|:----:|:--------:|:---------------------:| -| **colemak** | **croatian** | **czech** | **danish** | -| **dvorak_fr** | **dvorak** | **dvp** | **estonian** | -| **finnish** | **fr_ch** | **french_afnor** | **french** | -| **french_osx** | **german_ch** | **german** | **german_osx** | -| **hungarian** | **icelandic** | **italian** | **italian_osx_ansi** | -| **italian_osx_iso** | **jis** | **latvian** | **lithuanian_azerty** | -| **lithuanian_qwerty** | **norman** | **norwegian** | **portuguese** | -| **portuguese_osx_iso** | **romanian** | **serbian_latin** | **slovak** | -| **slovenian** | **spanish_dvorak** | **spanish_latin_america** | **spanish** | -| **swedish** | **turkish_f** | **turkish_q** | **uk** | -| **us_international** | **workman** | **workman_zxcvm** | +If you type in a language other than English, or use a non-QWERTY layout like Colemak, Dvorak, or Workman, you may have set your computer's input language to match this layout. This presents a challenge when creating macros — you may need to type different keys to get the same letters! To address this you can use [language-specific keycodes](reference_keymap_extras). ### Macro Basics diff --git a/docs/reference_keymap_extras.md b/docs/reference_keymap_extras.md index d45183b6c6a..f6b4b8faf68 100644 --- a/docs/reference_keymap_extras.md +++ b/docs/reference_keymap_extras.md @@ -2,9 +2,31 @@ Keyboards are able to support a wide range of languages. However, this support is not actually achieved within the keyboard itself - instead, it sends numerical codes, which the operating system maps to the appropriate characters depending on the user's configured keyboard layout. By default (and per the HID spec), this is the US ANSI layout. For example, when a Swedish person presses the key with the `å` character printed on it, the keyboard is *actually* sending the keycode for `[`. -Obviously, this can get confusing, so QMK provides language-specific keycode aliases for many keyboard layouts. These won't do much on their own - you still have to set the matching keyboard layout in your OS settings. Think of them more as keycap labels for your keymap. +Obviously, this can get confusing, so QMK provides language-specific keycode aliases for many keyboard layouts. These are used in place of the `KC_` prefixed ones. They won't do much on their own - you still have to set the matching keyboard layout in your OS settings. Think of them more as keycap labels for your keymap. The language-specific keycode aliases are defined in the files listed in the [Keycodes Header](#header-files) column below. -Simply `#include` one of the keycode headers below at the top of your `keymap.c`, and assign the keycodes defined in the header in place of the `KC_` prefixed ones. +## Selecting Your Host Keyboard Layout + +To select a host keyboard layout, simply `#include` one of the [keycode headers](#header-files) below at the top of your `keymap.c`. Example: + +```c +#include QMK_KEYBOARD_H + +#include "keymap_japanese.h" // [!code focus] +``` + +Alternatively, if using `keymap.json`, add the `host_language` key as shown in the following example. The available languages are those with a _Sendstring LUT Header_ entry in one of the [Header Files](#header-files) tables. + +```json +{ + "keyboard": "handwired/my_macropad", + "keymap": "my_keymap", + "host_language": "swedish", // [!code focus] + "layout": "LAYOUT_all", + "layers": [ + ["SE_ARNG"] + ] +} +``` ## Sendstring Support From da34d652d40ea033b4173bafad6c164ecbd78971 Mon Sep 17 00:00:00 2001 From: Naoki Katahira Date: Sun, 17 Nov 2024 16:15:45 +0900 Subject: [PATCH 042/365] [Keyboard]Add Lily58 Lite Rev3(lily58/lite_rev3) (#24255) * add Lily58 Lite Rev3 Firmware * fix README * Update README * delete lite_rev3.h * Update keyboards/lily58/lite_rev3/halconf.h Co-authored-by: jack * Update keyboards/lily58/lite_rev3/config.h Co-authored-by: jack * Update keyboards/lily58/lite_rev3/keyboard.json Co-authored-by: jack * Update keyboards/lily58/lite_rev3/keyboard.json Co-authored-by: jack * Update keyboards/lily58/lite_rev3/mcuconf.h Co-authored-by: jack * fix image url * fix SERIAL_DRIVER definition * fix VIA_ENABLE definition disable * fix cols pin * Update keyboards/lily58/lite_rev3/config.h Co-authored-by: Drashna Jaelre * Update keyboards/lily58/lite_rev3/keyboard.json Co-authored-by: jack * delete rules.mk * Update README * Update keyboards/lily58/lite_rev3/readme.md --------- Co-authored-by: jack Co-authored-by: Drashna Jaelre --- keyboards/lily58/lite_rev3/config.h | 14 +++ keyboards/lily58/lite_rev3/halconf.h | 7 ++ keyboards/lily58/lite_rev3/keyboard.json | 104 +++++++++++++++++++++++ keyboards/lily58/lite_rev3/mcuconf.h | 11 +++ keyboards/lily58/lite_rev3/readme.md | 28 ++++++ 5 files changed, 164 insertions(+) create mode 100644 keyboards/lily58/lite_rev3/config.h create mode 100644 keyboards/lily58/lite_rev3/halconf.h create mode 100644 keyboards/lily58/lite_rev3/keyboard.json create mode 100644 keyboards/lily58/lite_rev3/mcuconf.h create mode 100644 keyboards/lily58/lite_rev3/readme.md diff --git a/keyboards/lily58/lite_rev3/config.h b/keyboards/lily58/lite_rev3/config.h new file mode 100644 index 00000000000..9d2d289f5bb --- /dev/null +++ b/keyboards/lily58/lite_rev3/config.h @@ -0,0 +1,14 @@ +// Copyright 2023 yuchi +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U + +#define SERIAL_USART_FULL_DUPLEX +#define SERIAL_USART_TX_PIN GP0 +#define SERIAL_USART_RX_PIN GP1 + +#define I2C_DRIVER I2CD1 +#define I2C1_SDA_PIN GP14 +#define I2C1_SCL_PIN GP15 diff --git a/keyboards/lily58/lite_rev3/halconf.h b/keyboards/lily58/lite_rev3/halconf.h new file mode 100644 index 00000000000..4639740d44e --- /dev/null +++ b/keyboards/lily58/lite_rev3/halconf.h @@ -0,0 +1,7 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next \ No newline at end of file diff --git a/keyboards/lily58/lite_rev3/keyboard.json b/keyboards/lily58/lite_rev3/keyboard.json new file mode 100644 index 00000000000..2073c0661e5 --- /dev/null +++ b/keyboards/lily58/lite_rev3/keyboard.json @@ -0,0 +1,104 @@ +{ + "keyboard_name": "Lily58 Lite Rev3", + "manufacturer": "Liliums", + "maintainer": "yuchi", + "url": "", + "processor": "RP2040", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "usb": { + "vid": "0x1209", + "pid": "0x5801", + "device_version": "1.0.0" + }, + "split": { + "enabled": true, + "serial": { + "driver": "vendor" + } + }, + "matrix_pins": { + "cols": ["GP8", "GP7", "GP6", "GP5", "GP4", "GP3"], + "rows": ["GP13", "GP12", "GP11", "GP10", "GP9"] + }, + "features": { + "oled": true, + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.5}, + {"matrix": [0, 1], "x": 1, "y": 0.375}, + {"matrix": [0, 2], "x": 2, "y": 0.125}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0.125}, + {"matrix": [0, 5], "x": 5, "y": 0.25}, + + {"matrix": [5, 5], "x": 10.5, "y": 0.25}, + {"matrix": [5, 4], "x": 11.5, "y": 0.125}, + {"matrix": [5, 3], "x": 12.5, "y": 0}, + {"matrix": [5, 2], "x": 13.5, "y": 0.125}, + {"matrix": [5, 1], "x": 14.5, "y": 0.375}, + {"matrix": [5, 0], "x": 15.5, "y": 0.5}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.375}, + {"matrix": [1, 2], "x": 2, "y": 1.125}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1.125}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + + {"matrix": [6, 5], "x": 10.5, "y": 1.25}, + {"matrix": [6, 4], "x": 11.5, "y": 1.125}, + {"matrix": [6, 3], "x": 12.5, "y": 1}, + {"matrix": [6, 2], "x": 13.5, "y": 1.125}, + {"matrix": [6, 1], "x": 14.5, "y": 1.375}, + {"matrix": [6, 0], "x": 15.5, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5}, + {"matrix": [2, 1], "x": 1, "y": 2.375}, + {"matrix": [2, 2], "x": 2, "y": 2.125}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2.125}, + {"matrix": [2, 5], "x": 5, "y": 2.25}, + + {"matrix": [7, 5], "x": 10.5, "y": 2.25}, + {"matrix": [7, 4], "x": 11.5, "y": 2.125}, + {"matrix": [7, 3], "x": 12.5, "y": 2}, + {"matrix": [7, 2], "x": 13.5, "y": 2.125}, + {"matrix": [7, 1], "x": 14.5, "y": 2.375}, + {"matrix": [7, 0], "x": 15.5, "y": 2.5}, + + {"matrix": [3, 0], "x": 0, "y": 3.5}, + {"matrix": [3, 1], "x": 1, "y": 3.375}, + {"matrix": [3, 2], "x": 2, "y": 3.125}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3.125}, + {"matrix": [3, 5], "x": 5, "y": 3.25}, + {"matrix": [4, 5], "x": 6, "y": 2.75}, + + {"matrix": [9, 5], "x": 9.5, "y": 2.75}, + {"matrix": [8, 5], "x": 10.5, "y": 3.25}, + {"matrix": [8, 4], "x": 11.5, "y": 3.125}, + {"matrix": [8, 3], "x": 12.5, "y": 3}, + {"matrix": [8, 2], "x": 13.5, "y": 3.125}, + {"matrix": [8, 1], "x": 14.5, "y": 3.375}, + {"matrix": [8, 0], "x": 15.5, "y": 3.5}, + + {"matrix": [4, 1], "x": 2.5, "y": 4.125}, + {"matrix": [4, 2], "x": 3.5, "y": 4.15}, + {"matrix": [4, 3], "x": 4.5, "y": 4.25}, + {"matrix": [4, 4], "x": 6, "y": 4.25, "h": 1.5}, + + {"matrix": [9, 4], "x": 9.5, "y": 4.25, "h": 1.5}, + {"matrix": [9, 3], "x": 11, "y": 4.25}, + {"matrix": [9, 2], "x": 12, "y": 4.15}, + {"matrix": [9, 1], "x": 13, "y": 4.15} + ] + } + } +} diff --git a/keyboards/lily58/lite_rev3/mcuconf.h b/keyboards/lily58/lite_rev3/mcuconf.h new file mode 100644 index 00000000000..432c72853ac --- /dev/null +++ b/keyboards/lily58/lite_rev3/mcuconf.h @@ -0,0 +1,11 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef RP_I2C_USE_I2C0 +#define RP_I2C_USE_I2C0 FALSE + +#undef RP_I2C_USE_I2C1 +#define RP_I2C_USE_I2C1 TRUE diff --git a/keyboards/lily58/lite_rev3/readme.md b/keyboards/lily58/lite_rev3/readme.md new file mode 100644 index 00000000000..54ce6229d1b --- /dev/null +++ b/keyboards/lily58/lite_rev3/readme.md @@ -0,0 +1,28 @@ +# Lily58 Lite Rev3 + +![lily58_lite](https://i.imgur.com/RCx5Xym.jpeg) +![lily58_lite_rev3_pcb](https://i.imgur.com/rIjVjCE.png) + + +* Keyboard Maintainer: [yuchi](https://github.com/kata0510) +* Hardware Supported: RP2040-Zero +* Hardware Availability: [PCB Link](https://github.com/kata0510/Lily58/tree/master/Lite_Rev3) +* Other Information(ja) [Link](https://docs.liliums.net/lily58-lite-rev3/about/) + +Make example for this keyboard (after setting up your build environment): + + make lily58/lite_rev3:default + +Flashing example for this keyboard: + + make lily58/lite_rev3:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 3a6df60ba5ed64a473003aeca85f4cfc0c01c193 Mon Sep 17 00:00:00 2001 From: Amund Tenstad Date: Sun, 17 Nov 2024 16:05:57 +0100 Subject: [PATCH 043/365] docs: fix RWIN alias (#24610) --- docs/feature_advanced_keycodes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/feature_advanced_keycodes.md b/docs/feature_advanced_keycodes.md index 7f5a10d1c13..18740044f43 100644 --- a/docs/feature_advanced_keycodes.md +++ b/docs/feature_advanced_keycodes.md @@ -11,7 +11,7 @@ These allow you to combine a modifier with a keycode. When pressed, the keydown |`RCTL(kc)`| |Hold Right Control and press `kc` | |`RSFT(kc)`| |Hold Right Shift and press `kc` | |`RALT(kc)`|`ROPT(kc)`, `ALGR(kc)` |Hold Right Alt and press `kc` | -|`RGUI(kc)`|`RCMD(kc)`, `LWIN(kc)` |Hold Right GUI and press `kc` | +|`RGUI(kc)`|`RCMD(kc)`, `RWIN(kc)` |Hold Right GUI and press `kc` | |`LSG(kc)` |`SGUI(kc)`, `SCMD(kc)`, `SWIN(kc)`|Hold Left Shift and GUI and press `kc` | |`LAG(kc)` | |Hold Left Alt and Left GUI and press `kc` | |`RSG(kc)` | |Hold Right Shift and Right GUI and press `kc` | From 0988523851236da07c68e7683261ca8464df5b3a Mon Sep 17 00:00:00 2001 From: russell-myers1 <124931768+russell-myers1@users.noreply.github.com> Date: Tue, 19 Nov 2024 12:37:39 -0800 Subject: [PATCH 044/365] Fix typo in docs/api_development_overview.md (#24620) --- docs/api_development_overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api_development_overview.md b/docs/api_development_overview.md index e55d0341006..eb164bec525 100644 --- a/docs/api_development_overview.md +++ b/docs/api_development_overview.md @@ -4,7 +4,7 @@ This page attempts to introduce developers to the QMK Compiler. It does not go i # Overview -The QMK Compile API consists of a few movings parts: +The QMK Compile API consists of a few moving parts: ![Architecture Diagram](https://raw.githubusercontent.com/qmk/qmk_api/master/docs/architecture.svg) From c843ad1268863849f84dead17c3cea57800879df Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Wed, 20 Nov 2024 08:59:07 +1100 Subject: [PATCH 045/365] Add Sagittarius encoder support. (#24617) --- .../cannonkeys/sagittarius/keyboard.json | 8 ++++ .../sagittarius/keymaps/default/keymap.c | 7 ++++ .../sagittarius/keymaps/default/rules.mk | 2 + .../cannonkeys/sagittarius/sagittarius.c | 40 +++++++++++++++++++ 4 files changed, 57 insertions(+) create mode 100644 keyboards/cannonkeys/sagittarius/keymaps/default/rules.mk create mode 100644 keyboards/cannonkeys/sagittarius/sagittarius.c diff --git a/keyboards/cannonkeys/sagittarius/keyboard.json b/keyboards/cannonkeys/sagittarius/keyboard.json index 8f83a42984b..e64268ab53a 100644 --- a/keyboards/cannonkeys/sagittarius/keyboard.json +++ b/keyboards/cannonkeys/sagittarius/keyboard.json @@ -60,6 +60,14 @@ "resync": true } }, + "encoder": { + "rotary": [ + {"pin_a": "B12", "pin_b": "B11", "resolution": 2}, + {"pin_a": "B12", "pin_b": "B11", "resolution": 2}, + {"pin_a": "B12", "pin_b": "B11", "resolution": 2}, + {"pin_a": "B12", "pin_b": "B11", "resolution": 2} + ] + }, "layouts": { "LAYOUT_default": { "layout": [ diff --git a/keyboards/cannonkeys/sagittarius/keymaps/default/keymap.c b/keyboards/cannonkeys/sagittarius/keymaps/default/keymap.c index 093895bb99f..a97574c7745 100644 --- a/keyboards/cannonkeys/sagittarius/keymaps/default/keymap.c +++ b/keyboards/cannonkeys/sagittarius/keymaps/default/keymap.c @@ -44,3 +44,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(UG_HUED, UG_HUEU), ENCODER_CCW_CW(UG_SATD, UG_SATU) }, + [1] = { ENCODER_CCW_CW(UG_VALD, UG_VALU), ENCODER_CCW_CW(UG_SPDD, UG_SPDU), ENCODER_CCW_CW(UG_PREV, UG_NEXT), ENCODER_CCW_CW(KC_RIGHT, KC_LEFT) }, +}; +#endif diff --git a/keyboards/cannonkeys/sagittarius/keymaps/default/rules.mk b/keyboards/cannonkeys/sagittarius/keymaps/default/rules.mk new file mode 100644 index 00000000000..376fe3d8dcd --- /dev/null +++ b/keyboards/cannonkeys/sagittarius/keymaps/default/rules.mk @@ -0,0 +1,2 @@ +ENCODER_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/cannonkeys/sagittarius/sagittarius.c b/keyboards/cannonkeys/sagittarius/sagittarius.c new file mode 100644 index 00000000000..1000f7dd43a --- /dev/null +++ b/keyboards/cannonkeys/sagittarius/sagittarius.c @@ -0,0 +1,40 @@ +// Copyright 2024 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +#if defined(ENCODER_ENABLE) || defined(ENCODER_MAP_ENABLE) + +# if !defined(ENCODER_SETTLE_PIN_STATE_DELAY_US) +# define ENCODER_SETTLE_PIN_STATE_DELAY_US 2 +# endif + +static pin_t matrix_row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; + +void encoder_driver_task(void) { + // Set all relevant rows to output, which is different to the matrix expectations + for (uint8_t i = 0; i < 4; i++) { + gpio_set_pin_output(matrix_row_pins[i]); + } + + // Read each encoder + for (uint8_t i = 0; i < 4; i++) { + // Set the row pin low for the corresponding encoder... + for (uint8_t j = 0; j < 4; j++) { + gpio_write_pin(matrix_row_pins[j], (i == j) ? 0 : 1); + } + // ...and let them settle. + wait_us(ENCODER_SETTLE_PIN_STATE_DELAY_US); + + // Run the normal encoder handling + extern void encoder_quadrature_handle_read(uint8_t index, uint8_t pin_a_state, uint8_t pin_b_state); + extern uint8_t encoder_quadrature_read_pin(uint8_t index, bool pad_b); + encoder_quadrature_handle_read(i, encoder_quadrature_read_pin(i, false), encoder_quadrature_read_pin(i, true)); + } + + // Set all rows back to input-high as per matrix expectations + for (uint8_t i = 0; i < 4; i++) { + gpio_set_pin_input_high(matrix_row_pins[i]); + } +} + +#endif // defined(ENCODER_ENABLE) || defined(ENCODER_MAP_ENABLE) From 9c865839819bf9ec3ed573354a53bcbe905080f7 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 20 Nov 2024 09:53:33 +1100 Subject: [PATCH 046/365] Backward compatibility for new RGB keycode handling (#24490) Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com> --- builddefs/common_features.mk | 4 + docs/features/rgblight.md | 4 + keyboards/inett_studio/sqx/hotswap/config.h | 2 + keyboards/inett_studio/sqx/universal/config.h | 2 + .../kprepublic/bm60hsrgb_ec/rev2/config.h | 2 + keyboards/kprepublic/bm68hsrgb/rev2/config.h | 2 + .../mechlovin/adelais/rgb_led/rev2/config.h | 2 + keyboards/mechlovin/hannah60rgb/rev2/config.h | 2 + keyboards/owlab/voice65/hotswap/config.h | 2 + keyboards/owlab/voice65/soldered/config.h | 2 + keyboards/qwertykeys/qk100/ansi/config.h | 2 + keyboards/work_louder/loop/config.h | 2 + keyboards/work_louder/micro/config.h | 2 + keyboards/work_louder/nano/config.h | 2 + keyboards/work_louder/numpad/config.h | 2 + keyboards/work_louder/work_board/config.h | 2 + quantum/process_keycode/process_underglow.c | 119 +++++++++++++++++- quantum/quantum.c | 4 +- 18 files changed, 154 insertions(+), 5 deletions(-) diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index 2eb7056b6f6..f5b01de015d 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -456,6 +456,10 @@ ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes) COMMON_VPATH += $(QUANTUM_DIR)/rgb_matrix/animations COMMON_VPATH += $(QUANTUM_DIR)/rgb_matrix/animations/runners POST_CONFIG_H += $(QUANTUM_DIR)/rgb_matrix/post_config.h + + # TODO: Remove this + SRC += $(QUANTUM_DIR)/process_keycode/process_underglow.c + SRC += $(QUANTUM_DIR)/process_keycode/process_rgb_matrix.c SRC += $(QUANTUM_DIR)/color.c SRC += $(QUANTUM_DIR)/rgb_matrix/rgb_matrix.c diff --git a/docs/features/rgblight.md b/docs/features/rgblight.md index 2afc2eb7d09..4322fe796e7 100644 --- a/docs/features/rgblight.md +++ b/docs/features/rgblight.md @@ -59,6 +59,10 @@ Changing the **Value** sets the overall brightness.
## Keycodes +::: warning +These keycodes also simultaneously control [RGB Matrix](rgb_matrix), if enabled. This behaviour is in the process of being deprecated, so during this time it is recommended to additionally include the dedicated RGB Matrix keycodes to your keymap, and add `#define RGB_MATRIX_DISABLE_SHARED_KEYCODES` to `config.h`. +::: + |Key |Aliases |Description | |------------------------------|----------|---------------------------------------------------------------------| |`QK_UNDERGLOW_TOGGLE` |`UG_TOGG` |Toggle RGB lighting on or off | diff --git a/keyboards/inett_studio/sqx/hotswap/config.h b/keyboards/inett_studio/sqx/hotswap/config.h index 4172a72379f..22d2e739cbb 100644 --- a/keyboards/inett_studio/sqx/hotswap/config.h +++ b/keyboards/inett_studio/sqx/hotswap/config.h @@ -20,3 +20,5 @@ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC + +#define RGB_MATRIX_DISABLE_SHARED_KEYCODES diff --git a/keyboards/inett_studio/sqx/universal/config.h b/keyboards/inett_studio/sqx/universal/config.h index 4172a72379f..22d2e739cbb 100644 --- a/keyboards/inett_studio/sqx/universal/config.h +++ b/keyboards/inett_studio/sqx/universal/config.h @@ -20,3 +20,5 @@ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC + +#define RGB_MATRIX_DISABLE_SHARED_KEYCODES diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h index b58434efece..ddb8a2525ff 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h @@ -16,3 +16,5 @@ #pragma once #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND + +#define RGB_MATRIX_DISABLE_SHARED_KEYCODES diff --git a/keyboards/kprepublic/bm68hsrgb/rev2/config.h b/keyboards/kprepublic/bm68hsrgb/rev2/config.h index f35697b992e..026cbdcdca0 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev2/config.h +++ b/keyboards/kprepublic/bm68hsrgb/rev2/config.h @@ -17,3 +17,5 @@ #pragma once #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND + +#define RGB_MATRIX_DISABLE_SHARED_KEYCODES diff --git a/keyboards/mechlovin/adelais/rgb_led/rev2/config.h b/keyboards/mechlovin/adelais/rgb_led/rev2/config.h index 82b582bfe12..fea263d7fbe 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev2/config.h +++ b/keyboards/mechlovin/adelais/rgb_led/rev2/config.h @@ -2,3 +2,5 @@ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA + +#define RGB_MATRIX_DISABLE_SHARED_KEYCODES diff --git a/keyboards/mechlovin/hannah60rgb/rev2/config.h b/keyboards/mechlovin/hannah60rgb/rev2/config.h index 82b582bfe12..fea263d7fbe 100644 --- a/keyboards/mechlovin/hannah60rgb/rev2/config.h +++ b/keyboards/mechlovin/hannah60rgb/rev2/config.h @@ -2,3 +2,5 @@ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA + +#define RGB_MATRIX_DISABLE_SHARED_KEYCODES diff --git a/keyboards/owlab/voice65/hotswap/config.h b/keyboards/owlab/voice65/hotswap/config.h index be6b66e58a8..97bde08548e 100644 --- a/keyboards/owlab/voice65/hotswap/config.h +++ b/keyboards/owlab/voice65/hotswap/config.h @@ -18,3 +18,5 @@ along with this program. If not, see . #pragma once #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND + +#define RGB_MATRIX_DISABLE_SHARED_KEYCODES diff --git a/keyboards/owlab/voice65/soldered/config.h b/keyboards/owlab/voice65/soldered/config.h index be6b66e58a8..97bde08548e 100644 --- a/keyboards/owlab/voice65/soldered/config.h +++ b/keyboards/owlab/voice65/soldered/config.h @@ -18,3 +18,5 @@ along with this program. If not, see . #pragma once #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND + +#define RGB_MATRIX_DISABLE_SHARED_KEYCODES diff --git a/keyboards/qwertykeys/qk100/ansi/config.h b/keyboards/qwertykeys/qk100/ansi/config.h index b78d15782ba..ceba1c798dd 100644 --- a/keyboards/qwertykeys/qk100/ansi/config.h +++ b/keyboards/qwertykeys/qk100/ansi/config.h @@ -30,3 +30,5 @@ along with this program. If not, see . #define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 #define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND + +#define RGB_MATRIX_DISABLE_SHARED_KEYCODES diff --git a/keyboards/work_louder/loop/config.h b/keyboards/work_louder/loop/config.h index b883b0ff578..5b031c6fc10 100644 --- a/keyboards/work_louder/loop/config.h +++ b/keyboards/work_louder/loop/config.h @@ -18,3 +18,5 @@ along with this program. If not, see . #pragma once #define RGBLIGHT_DI_PIN E6 + +#define RGB_MATRIX_DISABLE_SHARED_KEYCODES diff --git a/keyboards/work_louder/micro/config.h b/keyboards/work_louder/micro/config.h index b9f2d8d87dc..6748a5f5951 100644 --- a/keyboards/work_louder/micro/config.h +++ b/keyboards/work_louder/micro/config.h @@ -9,3 +9,5 @@ #define WORK_LOUDER_LED_PIN_1 B6 #define WORK_LOUDER_LED_PIN_2 B7 #define WORK_LOUDER_LED_PIN_3 B5 + +#define RGB_MATRIX_DISABLE_SHARED_KEYCODES diff --git a/keyboards/work_louder/nano/config.h b/keyboards/work_louder/nano/config.h index 2372f371b99..492931c559c 100644 --- a/keyboards/work_louder/nano/config.h +++ b/keyboards/work_louder/nano/config.h @@ -18,3 +18,5 @@ along with this program. If not, see . #pragma once #define RGBLIGHT_DI_PIN C7 + +#define RGB_MATRIX_DISABLE_SHARED_KEYCODES diff --git a/keyboards/work_louder/numpad/config.h b/keyboards/work_louder/numpad/config.h index cfc27d36124..809c498dbbb 100644 --- a/keyboards/work_louder/numpad/config.h +++ b/keyboards/work_louder/numpad/config.h @@ -5,3 +5,5 @@ #define RGBLIGHT_DI_PIN D2 #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_STATIC_GRADIENT + 9 + +#define RGB_MATRIX_DISABLE_SHARED_KEYCODES diff --git a/keyboards/work_louder/work_board/config.h b/keyboards/work_louder/work_board/config.h index 6688711bbbc..efd4c529cd8 100644 --- a/keyboards/work_louder/work_board/config.h +++ b/keyboards/work_louder/work_board/config.h @@ -20,3 +20,5 @@ along with this program. If not, see . #define RGBLIGHT_DI_PIN D2 #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_STATIC_GRADIENT + 9 + +#define RGB_MATRIX_DISABLE_SHARED_KEYCODES diff --git a/quantum/process_keycode/process_underglow.c b/quantum/process_keycode/process_underglow.c index 779672ac076..6104cd02c6c 100644 --- a/quantum/process_keycode/process_underglow.c +++ b/quantum/process_keycode/process_underglow.c @@ -2,87 +2,200 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include "process_underglow.h" -#include "rgblight.h" +#if defined(RGBLIGHT_ENABLE) +# include "rgblight.h" +#endif #include "action_util.h" #include "keycodes.h" #include "modifiers.h" +// TODO: Remove this +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) +# include "rgb_matrix.h" +#endif + bool process_underglow(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { uint8_t shifted = get_mods() & MOD_MASK_SHIFT; switch (keycode) { case QK_UNDERGLOW_TOGGLE: +#if defined(RGBLIGHT_ENABLE) rgblight_toggle(); +#endif + +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) + rgb_matrix_toggle(); +#endif return false; case QK_UNDERGLOW_MODE_NEXT: +#if defined(RGBLIGHT_ENABLE) if (shifted) { rgblight_step_reverse(); } else { rgblight_step(); } +#endif + +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) + if (shifted) { + rgb_matrix_step_reverse(); + } else { + rgb_matrix_step(); + } +#endif return false; case QK_UNDERGLOW_MODE_PREVIOUS: +#if defined(RGBLIGHT_ENABLE) if (shifted) { rgblight_step(); } else { rgblight_step_reverse(); } +#endif + +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) + if (shifted) { + rgb_matrix_step(); + } else { + rgb_matrix_step_reverse(); + } +#endif return false; case QK_UNDERGLOW_HUE_UP: +#if defined(RGBLIGHT_ENABLE) if (shifted) { rgblight_decrease_hue(); } else { rgblight_increase_hue(); } +#endif + +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) + if (shifted) { + rgb_matrix_decrease_hue(); + } else { + rgb_matrix_increase_hue(); + } +#endif return false; case QK_UNDERGLOW_HUE_DOWN: +#if defined(RGBLIGHT_ENABLE) if (shifted) { rgblight_increase_hue(); } else { rgblight_decrease_hue(); } +#endif + +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) + if (shifted) { + rgb_matrix_increase_hue(); + } else { + rgb_matrix_decrease_hue(); + } +#endif return false; case QK_UNDERGLOW_SATURATION_UP: +#if defined(RGBLIGHT_ENABLE) if (shifted) { rgblight_decrease_sat(); } else { rgblight_increase_sat(); } +#endif + +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) + if (shifted) { + rgb_matrix_decrease_sat(); + } else { + rgb_matrix_increase_sat(); + } +#endif return false; case QK_UNDERGLOW_SATURATION_DOWN: +#if defined(RGBLIGHT_ENABLE) if (shifted) { rgblight_increase_sat(); } else { rgblight_decrease_sat(); } +#endif + +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) + if (shifted) { + rgb_matrix_increase_sat(); + } else { + rgb_matrix_decrease_sat(); + } +#endif return false; case QK_UNDERGLOW_VALUE_UP: +#if defined(RGBLIGHT_ENABLE) if (shifted) { rgblight_decrease_val(); } else { rgblight_increase_val(); } +#endif + +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) + if (shifted) { + rgb_matrix_decrease_val(); + } else { + rgb_matrix_increase_val(); + } +#endif return false; case QK_UNDERGLOW_VALUE_DOWN: +#if defined(RGBLIGHT_ENABLE) if (shifted) { - rgblight_increase_hue(); + rgblight_increase_val(); } else { - rgblight_decrease_hue(); + rgblight_decrease_val(); } +#endif + +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) + if (shifted) { + rgb_matrix_increase_val(); + } else { + rgb_matrix_decrease_val(); + } +#endif return false; case QK_UNDERGLOW_SPEED_UP: +#if defined(RGBLIGHT_ENABLE) if (shifted) { rgblight_decrease_speed(); } else { rgblight_increase_speed(); } +#endif + +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) + if (shifted) { + rgb_matrix_decrease_speed(); + } else { + rgb_matrix_increase_speed(); + } +#endif return false; case QK_UNDERGLOW_SPEED_DOWN: +#if defined(RGBLIGHT_ENABLE) if (shifted) { rgblight_increase_speed(); } else { rgblight_decrease_speed(); } +#endif + +#if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES) + if (shifted) { + rgb_matrix_increase_speed(); + } else { + rgb_matrix_decrease_speed(); + } +#endif return false; } } diff --git a/quantum/quantum.c b/quantum/quantum.c index 8bfe04e1798..874df1593a2 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -60,7 +60,7 @@ # include "process_rgb_matrix.h" #endif -#if defined(RGBLIGHT_ENABLE) +#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) # include "process_underglow.h" #endif @@ -382,7 +382,7 @@ bool process_record_quantum(keyrecord_t *record) { #ifdef GRAVE_ESC_ENABLE process_grave_esc(keycode, record) && #endif -#if defined(RGBLIGHT_ENABLE) +#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) process_underglow(keycode, record) && #endif #if defined(RGB_MATRIX_ENABLE) From 88afd53b1fb4183195ac5ee9d1d1c9506de3814e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Mart=C3=ADnez?= <58857054+elpekenin@users.noreply.github.com> Date: Thu, 21 Nov 2024 07:16:46 +0100 Subject: [PATCH 047/365] [CLI] Refactor painter arguments to table instead of commandline (#24456) Co-authored-by: Nick Brassel --- .../qmk/cli/painter/convert_graphics.py | 4 +-- lib/python/qmk/cli/painter/make_font.py | 4 +-- lib/python/qmk/painter.py | 32 ++++++++++++++++--- 3 files changed, 30 insertions(+), 10 deletions(-) diff --git a/lib/python/qmk/cli/painter/convert_graphics.py b/lib/python/qmk/cli/painter/convert_graphics.py index 553c26aa5d5..f74d655fd57 100644 --- a/lib/python/qmk/cli/painter/convert_graphics.py +++ b/lib/python/qmk/cli/painter/convert_graphics.py @@ -60,9 +60,7 @@ def painter_convert_graphics(cli): return # Work out the text substitutions for rendering the output data - args_str = " ".join((f"--{arg} {getattr(cli.args, arg.replace('-', '_'))}" for arg in ["input", "output", "format", "no-rle", "no-deltas"])) - command = f"qmk painter-convert-graphics {args_str}" - subs = generate_subs(cli, out_bytes, image_metadata=metadata, command=command) + subs = generate_subs(cli, out_bytes, image_metadata=metadata, command_name="painter_convert_graphics") # Render and write the header file header_text = render_header(subs) diff --git a/lib/python/qmk/cli/painter/make_font.py b/lib/python/qmk/cli/painter/make_font.py index 19db8449316..3e18fd74a56 100644 --- a/lib/python/qmk/cli/painter/make_font.py +++ b/lib/python/qmk/cli/painter/make_font.py @@ -61,10 +61,8 @@ def painter_convert_font_image(cli): return # Work out the text substitutions for rendering the output data - args_str = " ".join((f"--{arg} {getattr(cli.args, arg.replace('-', '_'))}" for arg in ["input", "output", "no-ascii", "unicode-glyphs", "format", "no-rle"])) - command = f"qmk painter-convert-font-image {args_str}" metadata = {"glyphs": _generate_font_glyphs_list(not cli.args.no_ascii, cli.args.unicode_glyphs)} - subs = generate_subs(cli, out_bytes, font_metadata=metadata, command=command) + subs = generate_subs(cli, out_bytes, font_metadata=metadata, command_name="painter_convert_font_image") # Render and write the header file header_text = render_header(subs) diff --git a/lib/python/qmk/painter.py b/lib/python/qmk/painter.py index 512a486ce87..ed0372c163e 100644 --- a/lib/python/qmk/painter.py +++ b/lib/python/qmk/painter.py @@ -3,6 +3,7 @@ import datetime import math import re +from pathlib import Path from string import Template from PIL import Image, ImageOps @@ -137,10 +138,31 @@ def _render_image_metadata(metadata): return "\n".join(lines) -def generate_subs(cli, out_bytes, *, font_metadata=None, image_metadata=None, command): +def command_args_str(cli, command_name): + """Given a command name, introspect milc to get the arguments passed in.""" + + args = {} + max_length = 0 + for arg_name, was_passed in cli.args_passed[command_name].items(): + max_length = max(max_length, len(arg_name)) + + val = getattr(cli.args, arg_name.replace("-", "_")) + + # do not leak full paths, keep just file name + if isinstance(val, Path): + val = val.name + + args[arg_name] = val + + return "\n".join(f"// {arg_name.ljust(max_length)} | {val}" for arg_name, val in args.items()) + + +def generate_subs(cli, out_bytes, *, font_metadata=None, image_metadata=None, command_name): if font_metadata is not None and image_metadata is not None: raise ValueError("Cant generate subs for font and image at the same time") + args = command_args_str(cli, command_name) + subs = { "year": datetime.date.today().strftime("%Y"), "input_file": cli.args.input.name, @@ -148,7 +170,8 @@ def generate_subs(cli, out_bytes, *, font_metadata=None, image_metadata=None, co "byte_count": len(out_bytes), "bytes_lines": render_bytes(out_bytes), "format": cli.args.format, - "generator_command": command, + "generator_command": command_name.replace("_", "-"), + "command_args": args, } if font_metadata is not None: @@ -167,7 +190,7 @@ def generate_subs(cli, out_bytes, *, font_metadata=None, image_metadata=None, co subs.update({ "generated_type": "image", "var_prefix": "gfx", - "generator_command": command, + "generator_command": command_name, "metadata": _render_image_metadata(image_metadata), }) @@ -183,7 +206,8 @@ license_template = """\ // Copyright ${year} QMK -- generated source code only, ${generated_type} retains original copyright // SPDX-License-Identifier: GPL-2.0-or-later -// This file was auto-generated by `${generator_command}` +// This file was auto-generated by `${generator_command}` with arguments: +${command_args} """ From 8cbcdcac62d58ff8faadfdb29bafbd12bef4d7ed Mon Sep 17 00:00:00 2001 From: Ryan Date: Thu, 21 Nov 2024 17:18:51 +1100 Subject: [PATCH 048/365] `qmk new-keymap`: validate keymap name (#23420) --- lib/python/qmk/cli/new/keymap.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/python/qmk/cli/new/keymap.py b/lib/python/qmk/cli/new/keymap.py index d4339bc9ef0..f1df05636ce 100755 --- a/lib/python/qmk/cli/new/keymap.py +++ b/lib/python/qmk/cli/new/keymap.py @@ -1,5 +1,6 @@ """This script automates the copying of the default keymap into your own keymap. """ +import re import shutil from milc import cli @@ -13,6 +14,13 @@ from qmk.keyboard import keyboard_completer, keyboard_folder from qmk.userspace import UserspaceDefs +def validate_keymap_name(name): + """Returns True if the given keymap name contains only a-z, 0-9 and underscore characters. + """ + regex = re.compile(r'^[a-zA-Z0-9][a-zA-Z0-9_]+$') + return bool(regex.match(name)) + + def prompt_keyboard(): prompt = """{fg_yellow}Select Keyboard{style_reset_all} If you`re unsure you can view a full list of supported keyboards with {fg_yellow}qmk list-keyboards{style_reset_all}. @@ -60,6 +68,10 @@ def new_keymap(cli): cli.log.error(f'Default keymap {{fg_cyan}}{keymap_path_default}{{fg_reset}} does not exist!') return False + if not validate_keymap_name(user_name): + cli.log.error('Keymap names must contain only {fg_cyan}a-z{fg_reset}, {fg_cyan}0-9{fg_reset} and {fg_cyan}_{fg_reset}! Please choose a different name.') + return False + if keymap_path_new.exists(): cli.log.error(f'Keymap {{fg_cyan}}{user_name}{{fg_reset}} already exists! Please choose a different name.') return False From 9bea332a210aed22cd6775eaf726da595bd5e9ce Mon Sep 17 00:00:00 2001 From: Ryan Date: Thu, 21 Nov 2024 17:20:05 +1100 Subject: [PATCH 049/365] `qmk via2json`: Improve macro parsing (#24345) --- lib/python/qmk/cli/via2json.py | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/lib/python/qmk/cli/via2json.py b/lib/python/qmk/cli/via2json.py index 73c9a61b3d3..537e1026406 100755 --- a/lib/python/qmk/cli/via2json.py +++ b/lib/python/qmk/cli/via2json.py @@ -29,6 +29,7 @@ def _convert_macros(via_macros): if len(via_macros) == 0: return list() split_regex = re.compile(r'(}\,)|(\,{)') + macro_group_regex = re.compile(r'({.+?})') macros = list() for via_macro in via_macros: # Split VIA macro to its elements @@ -38,13 +39,28 @@ def _convert_macros(via_macros): macro_data = list() for m in macro: if '{' in m or '}' in m: - # Found keycode(s) - keycodes = m.split(',') - # Remove whitespaces and curly braces from around keycodes - keycodes = list(map(lambda s: s.strip(' {}'), keycodes)) - # Remove the KC prefix - keycodes = list(map(lambda s: s.replace('KC_', ''), keycodes)) - macro_data.append({"action": "tap", "keycodes": keycodes}) + # Split macro groups + macro_groups = macro_group_regex.findall(m) + for macro_group in macro_groups: + # Remove whitespaces and curly braces from around group + macro_group = macro_group.strip(' {}') + + macro_action = 'tap' + macro_keycodes = [] + + if macro_group[0] == '+': + macro_action = 'down' + macro_keycodes.append(macro_group[1:]) + elif macro_group[0] == '-': + macro_action = 'up' + macro_keycodes.append(macro_group[1:]) + else: + macro_keycodes.extend(macro_group.split(',') if ',' in macro_group else [macro_group]) + + # Remove the KC prefixes + macro_keycodes = list(map(lambda s: s.replace('KC_', ''), macro_keycodes)) + + macro_data.append({"action": macro_action, "keycodes": macro_keycodes}) else: # Found text macro_data.append(m) @@ -54,13 +70,13 @@ def _convert_macros(via_macros): def _fix_macro_keys(keymap_data): - macro_no = re.compile(r'MACRO0?([0-9]{1,2})') + macro_no = re.compile(r'MACRO0?\(([0-9]{1,2})\)') for i in range(0, len(keymap_data)): for j in range(0, len(keymap_data[i])): kc = keymap_data[i][j] m = macro_no.match(kc) if m: - keymap_data[i][j] = f'MACRO_{m.group(1)}' + keymap_data[i][j] = f'MC_{m.group(1)}' return keymap_data From 638b22d05778f30c1f2bd347e48d523a7858bb51 Mon Sep 17 00:00:00 2001 From: Ryan Date: Thu, 21 Nov 2024 17:22:14 +1100 Subject: [PATCH 050/365] `qmk new-keyboard`: separate dev board and MCU selection (#24548) --- docs/porting_your_keyboard_to_qmk.md | 145 ++++++++++++++------------- lib/python/qmk/cli/new/keyboard.py | 74 ++++++++------ 2 files changed, 118 insertions(+), 101 deletions(-) diff --git a/docs/porting_your_keyboard_to_qmk.md b/docs/porting_your_keyboard_to_qmk.md index e5a1f803f71..737ec4a2cf3 100644 --- a/docs/porting_your_keyboard_to_qmk.md +++ b/docs/porting_your_keyboard_to_qmk.md @@ -4,52 +4,51 @@ This page describes the support for [Compatible Microcontrollers](compatible_mic If you have not yet you should read the [Keyboard Guidelines](hardware_keyboard_guidelines) to get a sense of how keyboards fit into QMK. - QMK has a number of features to simplify working with keyboards. For most, you don't have to write a single line of code. To get started, run `qmk new-keyboard`: ``` $ qmk new-keyboard Ψ Generating a new QMK keyboard directory -Name Your Keyboard Project -For more infomation, see: -https://docs.qmk.fm/hardware_keyboard_guidelines#naming-your-keyboardproject +Ψ Name Your Keyboard Project +Ψ For more information, see: +https://docs.qmk.fm/hardware_keyboard_guidelines#naming-your-keyboard-project +Keyboard Name? mycoolkeeb +Ψ Attribution +Ψ Used for maintainer, copyright, etc. +Your GitHub Username? [jsmith] +Ψ More Attribution +Ψ Used for maintainer, copyright, etc. +Your Real Name? [John Smith] +Ψ Pick Base Layout +Ψ As a starting point, one of the common layouts can be used to +bootstrap the process +Default Layout? + 1. 60_abnt2 + ... + 65. none of the above +Please enter your choice: [65] +Ψ What Powers Your Project +Ψ Is your board using a separate development board, such as a Pro Micro, +or is the microcontroller integrated onto the PCB? -keyboard Name? mycoolkeeb - -Attribution -Used for maintainer, copyright, etc - -Your GitHub Username? [jsmith] - -More Attribution -Used for maintainer, copyright, etc - -Your Real Name? [John Smith] - -Pick Base Layout -As a starting point, one of the common layouts can be used to bootstrap the process - -Default Layout? - 1. 60_ansi -... - 50. tkl_iso - 51. none of the above -Please enter your choice: [51] - -What Powers Your Project -For more infomation, see: -https://docs.qmk.fm/#/compatible_microcontrollers - -MCU? - 1. atmega32u4 -... - 22. STM32F303 -Please enter your choice: [12] +For more information, see: +https://docs.qmk.fm/compatible_microcontrollers +Using a Development Board? [y/n] y +Ψ Select Development Board +Ψ For more information, see: +https://docs.qmk.fm/compatible_microcontrollers +Development Board? + 1. bit_c_pro + ... + 14. promicro + ... + 18. svlinky +Please enter your choice: [14] Ψ Created a new keyboard called mycoolkeeb. -Ψ To start working on things, `cd` into keyboards/mycoolkeeb, -Ψ or open the directory in your preferred text editor. -Ψ And build with qmk compile -kb mycoolkeeb -km default. +Ψ Build Command: qmk compile -kb mycoolkeeb -km default. +Ψ Project Location: /Users/jsmith/qmk_firmware/keyboards/mycoolkeeb. +Ψ Now update the config files to match the hardware! ``` This will create all the files needed to support your new keyboard, and populate the settings with default values. Now you just need to customize it for your keyboard. @@ -58,13 +57,13 @@ This will create all the files needed to support your new keyboard, and populate This is where you'll describe your keyboard. Please follow the [Keyboard Readme Template](documentation_templates#keyboard-readmemd-template) when writing your `readme.md`. You're encouraged to place an image at the top of your `readme.md`, please use an external service such as [Imgur](https://imgur.com) to host the images. -## `info.json` +## `keyboard.json` -The `info.json` file is where you configure the hardware and feature set for your keyboard. There are a lot of options that can be placed in that file, too many to list here. For a complete overview of available options see the [Data Driven Configuration Options](reference_info_json) page. +The `keyboard.json` file is where you configure the hardware and feature set for your keyboard. There are a lot of options that can be placed in that file, too many to list here. For a complete overview of available options see the [Data Driven Configuration Options](reference_info_json) page. ### Hardware Configuration -At the top of the `info.json` you'll find USB related settings. These control how your keyboard appears to the Operating System. If you don't have a good reason to change you should leave the `usb.vid` as `0xFEED`. For the `usb.pid` you should pick a number that is not yet in use. +At the top of the `keyboard.json` you'll find USB related settings. These control how your keyboard appears to the Operating System. If you don't have a good reason to change you should leave the `usb.vid` as `0xFEED`. For the `usb.pid` you should pick a number that is not yet in use. Do change the `manufacturer` and `keyboard_name` lines to accurately reflect your keyboard. @@ -82,10 +81,11 @@ Do change the `manufacturer` and `keyboard_name` lines to accurately reflect you Windows and macOS will display the `manufacturer` and `keyboard_name` in the list of USB devices. `lsusb` on Linux instead prefers the values in the list maintained by the [USB ID Repository](http://www.linux-usb.org/usb-ids.html). By default, it will only use `manufacturer` and `keyboard_name` if the list does not contain that `usb.vid` / `usb.pid`. `sudo lsusb -v` will show the values reported by the device, and they are also present in kernel logs after plugging it in. ::: - ### Matrix Configuration -The next section of the `info` file deals with your keyboard's matrix. The first thing you should define is which pins on your MCU are connected to rows and columns. To do so simply specify the names of those pins: +The next section of the `keyboard.json` deals with your keyboard's matrix. The first thing you should define is which pins on your MCU are connected to rows and columns. To do so simply specify the names of those pins: + +#### Diode Matrix ```json "matrix_pins": { @@ -94,7 +94,7 @@ The next section of the `info` file deals with your keyboard's matrix. The first }, ``` -The size of the `matrix_pins.cols` and `matrix_pins.rows` arrays infer the size of the matrix (previously `MATRIX_ROWS` and `MATRIX_COLS`). +The matrix dimensions are inferred from the length of the `matrix_pins.cols` and `matrix_pins.rows` arrays (previously specified explicitly in `config.h` with `MATRIX_ROWS` and `MATRIX_COLS`). Finally, you can specify the direction your diodes point. This can be `COL2ROW` or `ROW2COL`. @@ -103,54 +103,56 @@ Finally, you can specify the direction your diodes point. This can be `COL2ROW` ``` #### Direct Pin Matrix -To configure a keyboard where each switch is connected to a separate pin and ground instead of sharing row and column pins, use `matrix_pins.direct`. The mapping defines the pins of each switch in rows and columns, from left to right. The size of the `matrix_pins.direct` array infers the size of the matrix. Use `NO_PIN` to fill in blank spaces. Overrides the behaviour of `diode_direction`, `matrix_pins.cols` and `matrix_pins.rows`. + +To configure a keyboard where each switch is connected to a separate pin and ground instead of sharing row and column pins, use `matrix_pins.direct`. This overrides the behaviour of `diode_direction`, `matrix_pins.cols` and `matrix_pins.rows`, and they should not be specified together. ```json "matrix_pins": { "direct": [ - ["F1", "E6", "B0", "B2", "B3" ], - ["F5", "F0", "B1", "B7", "D2" ], - ["F6", "F7", "C7", "D5", "D3" ], - ["B5", "C6", "B6", "NO_PIN", "NO_PIN"] + ["F1", "E6", "B0", "B2", "B3"], + ["F5", "F0", "B1", "B7", "D2"], + ["F6", "F7", "C7", "D5", "D3"], + ["B5", "C6", "B6", null, null] ] }, ``` -### Layout macros +Here, the matrix dimensions are inferred directly from the dimensions of the `matrix_pins.direct` array. Since there are no row or column pins to prescribe the matrix dimensions, you can arrange it however you like. Each "row" must contain the same number of "column"s; use `null` to fill in blank spaces, but try to minimize them. -Next is configuring Layout Macro(s). These define the physical arrangement of keys, and its position within the matrix that a switch are connected to. This allows you to have a physical arrangement of keys that differs from the wiring matrix. +### Layout Macros + +Next is configuring layout macro(s). These define the physical arrangement of keys, and their position within the matrix that switches are connected to. This allows you to have a physical arrangement of keys that differs from the wiring matrix. ```json "layouts": { "LAYOUT_ortho_4x4": { "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0 }, - { "matrix": [0, 1], "x": 1, "y": 0 }, - { "matrix": [0, 2], "x": 2, "y": 0 }, - { "matrix": [0, 3], "x": 3, "y": 0 }, - { "matrix": [1, 0], "x": 0, "y": 1 }, - { "matrix": [1, 1], "x": 1, "y": 1 }, - { "matrix": [1, 2], "x": 2, "y": 1 }, - { "matrix": [1, 3], "x": 3, "y": 1 }, - { "matrix": [2, 0], "x": 0, "y": 2 }, - { "matrix": [2, 1], "x": 1, "y": 2 }, - { "matrix": [2, 2], "x": 2, "y": 2 }, - { "matrix": [2, 3], "x": 3, "y": 2 }, - { "matrix": [3, 0], "x": 0, "y": 3 }, - { "matrix": [3, 1], "x": 1, "y": 3 }, - { "matrix": [3, 2], "x": 2, "y": 3 }, - { "matrix": [3, 3], "x": 3, "y": 3 } + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3} ] } } - ``` -In the above example, +In the above example, * `LAYOUT_ortho_4x4` defines the name of the layout macro * It must conform to the [layout guidelines](hardware_keyboard_guidelines#keyboard-name-h) -* `"matrix": [0, 0]` defines the electrical position +* `"matrix": [0, 0]` defines the matrix row and column that the key is associated with ::: tip See also: [Split Keyboard Layout Macro](features/split_keyboard#layout-macro) and [Matrix to Physical Layout](understanding_qmk#matrix-to-physical-layout-map). @@ -158,9 +160,10 @@ See also: [Split Keyboard Layout Macro](features/split_keyboard#layout-macro) an ## Additional Configuration -There are a lot of features that can be turned on or off, configured or tuned. Some of these have yet to be migrated over to [Data Driven Configuration](data_driven_config). The following sections cover the process for when an `info.json` option is unavailable. +There are a lot of features that can be turned on or off, configured or tuned. Some of these have yet to be migrated over to [Data Driven Configuration](data_driven_config). The following sections cover the process for when a data-driven option is unavailable. ### Configuration Options + For available options for `config.h`, you should see the [Config Options](config_options#the-configh-file) page for more details. ### Build Options diff --git a/lib/python/qmk/cli/new/keyboard.py b/lib/python/qmk/cli/new/keyboard.py index b84b130f8ec..bd02acf9c84 100644 --- a/lib/python/qmk/cli/new/keyboard.py +++ b/lib/python/qmk/cli/new/keyboard.py @@ -8,7 +8,7 @@ from pathlib import Path from dotty_dict import dotty from milc import cli -from milc.questions import choice, question +from milc.questions import choice, question, yesno from qmk.git import git_get_username from qmk.json_schema import load_jsonschema @@ -131,60 +131,70 @@ def _question(*args, **kwargs): return ret -def prompt_keyboard(): - prompt = """{fg_yellow}Name Your Keyboard Project{style_reset_all} -For more infomation, see: -https://docs.qmk.fm/hardware_keyboard_guidelines#naming-your-keyboard-project +def prompt_heading_subheading(heading, subheading): + cli.log.info(f"{{fg_yellow}}{heading}{{style_reset_all}}") + cli.log.info(subheading) -Keyboard Name? """ + +def prompt_keyboard(): + prompt_heading_subheading("Name Your Keyboard Project", """For more information, see: +https://docs.qmk.fm/hardware_keyboard_guidelines#naming-your-keyboard-project""") errmsg = 'Keyboard already exists! Please choose a different name:' - return _question(prompt, reprompt=errmsg, validate=lambda x: not keyboard(x).exists()) + return _question("Keyboard Name?", reprompt=errmsg, validate=lambda x: not keyboard(x).exists()) def prompt_user(): - prompt = """ -{fg_yellow}Attribution{style_reset_all} -Used for maintainer, copyright, etc + prompt_heading_subheading("Attribution", "Used for maintainer, copyright, etc.") -Your GitHub Username? """ - return question(prompt, default=git_get_username()) + return question("Your GitHub Username?", default=git_get_username()) def prompt_name(def_name): - prompt = """ -{fg_yellow}More Attribution{style_reset_all} -Used for maintainer, copyright, etc + prompt_heading_subheading("More Attribution", "Used for maintainer, copyright, etc.") -Your Real Name? """ - return question(prompt, default=def_name) + return question("Your Real Name?", default=def_name) def prompt_layout(): - prompt = """ -{fg_yellow}Pick Base Layout{style_reset_all} -As a starting point, one of the common layouts can be used to bootstrap the process + prompt_heading_subheading("Pick Base Layout", """As a starting point, one of the common layouts can be used to +bootstrap the process""") -Default Layout? """ # avoid overwhelming user - remove some? filtered_layouts = [x for x in available_layouts if not any(xs in x for xs in ['_split', '_blocker', '_tsangan', '_f13'])] filtered_layouts.append("none of the above") - return choice(prompt, filtered_layouts, default=len(filtered_layouts) - 1) + return choice("Default Layout?", filtered_layouts, default=len(filtered_layouts) - 1) + + +def prompt_mcu_type(): + prompt_heading_subheading( + "What Powers Your Project", """Is your board using a separate development board, such as a Pro Micro, +or is the microcontroller integrated onto the PCB? + +For more information, see: +https://docs.qmk.fm/compatible_microcontrollers""" + ) + + return yesno("Using a Development Board?") + + +def prompt_dev_board(): + prompt_heading_subheading("Select Development Board", """For more information, see: +https://docs.qmk.fm/compatible_microcontrollers""") + + return choice("Development Board?", dev_boards, default=dev_boards.index("promicro")) def prompt_mcu(): - prompt = """ -{fg_yellow}What Powers Your Project{style_reset_all} -For more infomation, see: -https://docs.qmk.fm/#/compatible_microcontrollers + prompt_heading_subheading("Select Microcontroller", """For more information, see: +https://docs.qmk.fm/compatible_microcontrollers""") -MCU? """ # remove any options strictly used for compatibility - filtered_mcu = [x for x in (dev_boards + mcu_types) if not any(xs in x for xs in ['cortex', 'unknown'])] + filtered_mcu = [x for x in mcu_types if not any(xs in x for xs in ['cortex', 'unknown'])] - return choice(prompt, filtered_mcu, default=filtered_mcu.index("atmega32u4")) + return choice("Microcontroller?", filtered_mcu, default=filtered_mcu.index("atmega32u4")) @cli.argument('-kb', '--keyboard', help='Specify the name for the new keyboard directory', arg_only=True, type=keyboard_name) @@ -211,7 +221,11 @@ def new_keyboard(cli): user_name = cli.config.new_keyboard.name if cli.config.new_keyboard.name else prompt_user() real_name = cli.args.realname or cli.config.new_keyboard.name if cli.args.realname or cli.config.new_keyboard.name else prompt_name(user_name) default_layout = cli.args.layout if cli.args.layout else prompt_layout() - mcu = cli.args.type if cli.args.type else prompt_mcu() + + if cli.args.type: + mcu = cli.args.type + else: + mcu = prompt_dev_board() if prompt_mcu_type() else prompt_mcu() config = {} if mcu in dev_boards: From 39161b9ee793f4c62836b209ec877acda457b88d Mon Sep 17 00:00:00 2001 From: HorrorTroll Date: Thu, 21 Nov 2024 13:28:28 +0700 Subject: [PATCH 051/365] Added MCU support for ArteryTek AT32F415 (#23445) --- builddefs/common_features.mk | 2 +- data/schemas/keyboard.jsonschema | 2 + docs/compatible_microcontrollers.md | 4 + docs/driver_installation_zadig.md | 1 + docs/flashing.md | 33 +++ .../handwired/onekey/at_start_f415/board.h | 10 + .../handwired/onekey/at_start_f415/config.h | 10 + .../handwired/onekey/at_start_f415/halconf.h | 13 + .../onekey/at_start_f415/keyboard.json | 20 ++ .../handwired/onekey/at_start_f415/mcuconf.h | 16 ++ .../handwired/onekey/at_start_f415/readme.md | 3 + lib/python/qmk/constants.py | 4 +- .../boards/GENERIC_AT32_F415XX/board/board.c | 101 ++++++++ .../boards/GENERIC_AT32_F415XX/board/board.h | 207 +++++++++++++++ .../boards/GENERIC_AT32_F415XX/board/board.mk | 9 + .../GENERIC_AT32_F415XX/configs/config.h | 13 + .../GENERIC_AT32_F415XX/configs/mcuconf.h | 236 ++++++++++++++++++ platforms/chibios/bootloader.mk | 9 + platforms/chibios/bootloaders/at32_dfu.c | 83 ++++++ platforms/chibios/chibios_config.h | 13 + platforms/chibios/drivers/analog.c | 23 +- platforms/chibios/drivers/serial_usart.c | 15 +- platforms/chibios/drivers/serial_usart.h | 99 +++++--- platforms/chibios/drivers/spi_master.c | 59 +++++ .../drivers/wear_leveling/wear_leveling_efl.c | 2 +- .../wear_leveling/wear_leveling_efl_config.h | 2 + platforms/chibios/drivers/ws2812_bitbang.c | 2 +- platforms/chibios/drivers/ws2812_pwm.c | 26 ++ platforms/chibios/drivers/ws2812_spi.c | 71 ++++-- platforms/chibios/flash.mk | 2 + platforms/chibios/mcu_selection.mk | 34 +++ platforms/chibios/platform.mk | 4 + 32 files changed, 1065 insertions(+), 63 deletions(-) create mode 100644 keyboards/handwired/onekey/at_start_f415/board.h create mode 100644 keyboards/handwired/onekey/at_start_f415/config.h create mode 100644 keyboards/handwired/onekey/at_start_f415/halconf.h create mode 100644 keyboards/handwired/onekey/at_start_f415/keyboard.json create mode 100644 keyboards/handwired/onekey/at_start_f415/mcuconf.h create mode 100644 keyboards/handwired/onekey/at_start_f415/readme.md create mode 100644 platforms/chibios/boards/GENERIC_AT32_F415XX/board/board.c create mode 100644 platforms/chibios/boards/GENERIC_AT32_F415XX/board/board.h create mode 100644 platforms/chibios/boards/GENERIC_AT32_F415XX/board/board.mk create mode 100644 platforms/chibios/boards/GENERIC_AT32_F415XX/configs/config.h create mode 100644 platforms/chibios/boards/GENERIC_AT32_F415XX/configs/mcuconf.h create mode 100644 platforms/chibios/bootloaders/at32_dfu.c diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index f5b01de015d..86ced309029 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -215,7 +215,7 @@ else COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash COMMON_VPATH += $(DRIVER_PATH)/flash SRC += eeprom_driver.c eeprom_legacy_emulated_flash.c legacy_flash_ops.c - else ifneq ($(filter $(MCU_SERIES),STM32F1xx STM32F3xx STM32F4xx STM32L4xx STM32G4xx WB32F3G71xx WB32FQ95xx GD32VF103),) + else ifneq ($(filter $(MCU_SERIES),STM32F1xx STM32F3xx STM32F4xx STM32L4xx STM32G4xx WB32F3G71xx WB32FQ95xx AT32F415 GD32VF103),) # Wear-leveling EEPROM implementation, backed by MCU flash OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING SRC += eeprom_driver.c eeprom_wear_leveling.c diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 72a33f55ad1..9f1f6dd74a5 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -92,6 +92,7 @@ "GD32VF103", "WB32F3G71", "WB32FQ95", + "AT32F415", "atmega16u2", "atmega32u2", "atmega16u4", @@ -216,6 +217,7 @@ "type": "string", "enum": [ "apm32-dfu", + "at32-dfu", "atmel-dfu", "bootloadhid", "caterina", diff --git a/docs/compatible_microcontrollers.md b/docs/compatible_microcontrollers.md index e2d27e06f2f..f148c39191e 100644 --- a/docs/compatible_microcontrollers.md +++ b/docs/compatible_microcontrollers.md @@ -57,6 +57,10 @@ You can also use any ARM chip with USB that [ChibiOS](https://www.chibios.org) s * [WB32F3G71xx](http://www.westberrytech.com) * [WB32FQ95xx](http://www.westberrytech.com) +### Artery (AT32) + + * [AT32F415](https://www.arterychip.com/en/product/AT32F415.jsp) + ### NXP (Kinetis) * [MKL26Z64](https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/kl-series-cortex-m0-plus/kinetis-kl2x-72-96-mhz-usb-ultra-low-power-microcontrollers-mcus-based-on-arm-cortex-m0-plus-core:KL2x) diff --git a/docs/driver_installation_zadig.md b/docs/driver_installation_zadig.md index 9743c0adc2f..1a5bd1cc346 100644 --- a/docs/driver_installation_zadig.md +++ b/docs/driver_installation_zadig.md @@ -98,6 +98,7 @@ The device name here is the name that appears in Zadig, and may not be what the |`bootloadhid` |HIDBoot |`16C0:05DF` |HidUsb | |`usbasploader`|USBasp |`16C0:05DC` |libusbK| |`apm32-dfu` |APM32 DFU ISP Mode |`314B:0106` |WinUSB | +|`at32-dfu` |AT32 Bootloader DFU |`2E3C:DF11` |WinUSB | |`stm32-dfu` |STM32 BOOTLOADER |`0483:DF11` |WinUSB | |`gd32v-dfu` |GD32V BOOTLOADER |`28E9:0189` |WinUSB | |`kiibohd` |Kiibohd DFU Bootloader |`1C11:B007` |WinUSB | diff --git a/docs/flashing.md b/docs/flashing.md index 2afb8588602..29dc780aaf0 100644 --- a/docs/flashing.md +++ b/docs/flashing.md @@ -345,6 +345,39 @@ Flashing sequence: 3. Flash a .bin file 4. Reset the device into application mode (may be done automatically) +## AT32 DFU + +All AT32 MCUs come preloaded with a factory bootloader that cannot be modified nor deleted. + +To ensure compatibility with the AT32-DFU bootloader, make sure this block is present in your `rules.mk`: + +```make +# Bootloader selection +BOOTLOADER = at32-dfu +``` + +Compatible flashers: + +* [dfu-util](https://dfu-util.sourceforge.net/) / `:dfu-util` target in QMK (recommended command line) + ``` + dfu-util -a 0 -d 2E3C:DF11 -s 0x8000000:leave -D + ``` + +Flashing sequence: + +1. Enter the bootloader using any of the following methods: + * Tap the `QK_BOOT` keycode + * If a reset circuit is present, tap the `RESET` button on the PCB; some boards may also have a toggle switch that must be flipped + * Otherwise, you need to bridge `BOOT0` to VCC (via `BOOT0` button or jumper), short `RESET` to GND (via `RESET` button or jumper), and then let go of the `BOOT0` bridge +2. Wait for the OS to detect the device +3. Flash a .bin file +4. Reset the device into application mode (may be done automatically) + +### `make` Targets + +* `:dfu-util`: Waits until an AT32 bootloader device is available, and then flashes the firmware. +* `:dfu-util-split-left` and `:dfu-util-split-right`: Flashes the firmware as with `:dfu-util`, but also sets the handedness setting in EEPROM. + ## tinyuf2 Keyboards may opt into supporting the tinyuf2 bootloader. This is currently only supported on F303/F401/F411. diff --git a/keyboards/handwired/onekey/at_start_f415/board.h b/keyboards/handwired/onekey/at_start_f415/board.h new file mode 100644 index 00000000000..f4adc2d4183 --- /dev/null +++ b/keyboards/handwired/onekey/at_start_f415/board.h @@ -0,0 +1,10 @@ +// Copyright 2023-2024 HorrorTroll +// Copyright 2023-2024 Zhaqian +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef AT32F415KB +#define AT32F415RC diff --git a/keyboards/handwired/onekey/at_start_f415/config.h b/keyboards/handwired/onekey/at_start_f415/config.h new file mode 100644 index 00000000000..266e45dd004 --- /dev/null +++ b/keyboards/handwired/onekey/at_start_f415/config.h @@ -0,0 +1,10 @@ +// Copyright 2023-2024 HorrorTroll +// Copyright 2023-2024 Zhaqian +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define ADC_PIN A0 + +#define BACKLIGHT_PWM_DRIVER PWMD5 +#define BACKLIGHT_PWM_CHANNEL 1 diff --git a/keyboards/handwired/onekey/at_start_f415/halconf.h b/keyboards/handwired/onekey/at_start_f415/halconf.h new file mode 100644 index 00000000000..1423633d15f --- /dev/null +++ b/keyboards/handwired/onekey/at_start_f415/halconf.h @@ -0,0 +1,13 @@ +// Copyright 2023-2024 HorrorTroll +// Copyright 2023-2024 Zhaqian +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_ADC TRUE + +#define HAL_USE_I2C TRUE + +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/handwired/onekey/at_start_f415/keyboard.json b/keyboards/handwired/onekey/at_start_f415/keyboard.json new file mode 100644 index 00000000000..f598923a6a5 --- /dev/null +++ b/keyboards/handwired/onekey/at_start_f415/keyboard.json @@ -0,0 +1,20 @@ +{ + "keyboard_name": "Onekey AT-START-F415", + "processor": "AT32F415", + "bootloader": "at32-dfu", + "usb": { + "shared_endpoint": { + "keyboard": true + } + }, + "matrix_pins": { + "cols": ["B3"], + "rows": ["B4"] + }, + "backlight": { + "pin": "A0" + }, + "ws2812": { + "pin": "B0" + } +} diff --git a/keyboards/handwired/onekey/at_start_f415/mcuconf.h b/keyboards/handwired/onekey/at_start_f415/mcuconf.h new file mode 100644 index 00000000000..9bc11d507cc --- /dev/null +++ b/keyboards/handwired/onekey/at_start_f415/mcuconf.h @@ -0,0 +1,16 @@ +// Copyright 2023-2024 HorrorTroll +// Copyright 2023-2024 Zhaqian +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef AT32_ADC_USE_ADC1 +#define AT32_ADC_USE_ADC1 TRUE + +#undef AT32_I2C_USE_I2C1 +#define AT32_I2C_USE_I2C1 TRUE + +#undef AT32_PWM_USE_TMR5 +#define AT32_PWM_USE_TMR5 TRUE diff --git a/keyboards/handwired/onekey/at_start_f415/readme.md b/keyboards/handwired/onekey/at_start_f415/readme.md new file mode 100644 index 00000000000..499ef5fb169 --- /dev/null +++ b/keyboards/handwired/onekey/at_start_f415/readme.md @@ -0,0 +1,3 @@ +# Artery AT-START-F415 Board Onekey + +To trigger keypress, short together pins *B3* and *B4*. diff --git a/lib/python/qmk/constants.py b/lib/python/qmk/constants.py index b6f46180b29..e055d3fbc95 100644 --- a/lib/python/qmk/constants.py +++ b/lib/python/qmk/constants.py @@ -22,7 +22,7 @@ QMK_FIRMWARE_UPSTREAM = 'qmk/qmk_firmware' MAX_KEYBOARD_SUBFOLDERS = 5 # Supported processor types -CHIBIOS_PROCESSORS = 'cortex-m0', 'cortex-m0plus', 'cortex-m3', 'cortex-m4', 'MKL26Z64', 'MK20DX128', 'MK20DX256', 'MK64FX512', 'MK66FX1M0', 'RP2040', 'STM32F042', 'STM32F072', 'STM32F103', 'STM32F303', 'STM32F401', 'STM32F405', 'STM32F407', 'STM32F411', 'STM32F446', 'STM32G431', 'STM32G474', 'STM32H723', 'STM32H733', 'STM32L412', 'STM32L422', 'STM32L432', 'STM32L433', 'STM32L442', 'STM32L443', 'GD32VF103', 'WB32F3G71', 'WB32FQ95' +CHIBIOS_PROCESSORS = 'cortex-m0', 'cortex-m0plus', 'cortex-m3', 'cortex-m4', 'MKL26Z64', 'MK20DX128', 'MK20DX256', 'MK64FX512', 'MK66FX1M0', 'RP2040', 'STM32F042', 'STM32F072', 'STM32F103', 'STM32F303', 'STM32F401', 'STM32F405', 'STM32F407', 'STM32F411', 'STM32F446', 'STM32G431', 'STM32G474', 'STM32H723', 'STM32H733', 'STM32L412', 'STM32L422', 'STM32L432', 'STM32L433', 'STM32L442', 'STM32L443', 'GD32VF103', 'WB32F3G71', 'WB32FQ95', 'AT32F415' LUFA_PROCESSORS = 'at90usb162', 'atmega16u2', 'atmega32u2', 'atmega16u4', 'atmega32u4', 'at90usb646', 'at90usb647', 'at90usb1286', 'at90usb1287', None VUSB_PROCESSORS = 'atmega32a', 'atmega328p', 'atmega328', 'attiny85' @@ -55,6 +55,7 @@ MCU2BOOTLOADER = { "GD32VF103": "gd32v-dfu", "WB32F3G71": "wb32-dfu", "WB32FQ95": "wb32-dfu", + "AT32F415": "at32-dfu", "atmega16u2": "atmel-dfu", "atmega32u2": "atmel-dfu", "atmega16u4": "atmel-dfu", @@ -93,6 +94,7 @@ BOOTLOADER_VIDS_PIDS = { 'apm32-dfu': {("314b", "0106")}, 'gd32v-dfu': {("28e9", "0189")}, 'wb32-dfu': {("342d", "dfa0")}, + 'at32-dfu': {("2e3c", "df11")}, 'bootloadhid': {("16c0", "05df")}, 'usbasploader': {("16c0", "05dc")}, 'usbtinyisp': {("1782", "0c9f")}, diff --git a/platforms/chibios/boards/GENERIC_AT32_F415XX/board/board.c b/platforms/chibios/boards/GENERIC_AT32_F415XX/board/board.c new file mode 100644 index 00000000000..28cf7c18e01 --- /dev/null +++ b/platforms/chibios/boards/GENERIC_AT32_F415XX/board/board.c @@ -0,0 +1,101 @@ +/* + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + ChibiOS - Copyright (C) 2023..2024 HorrorTroll + ChibiOS - Copyright (C) 2023..2024 Zhaqian + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#include "hal.h" + +/*===========================================================================*/ +/* Driver local definitions. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Driver exported variables. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Driver local variables and types. */ +/*===========================================================================*/ + +/** + * @brief PAL setup. + * @details Digital I/O ports static configuration as defined in @p board.h. + * This variable is used by the HAL when initializing the PAL driver. + */ +#if HAL_USE_PAL || defined(__DOXYGEN__) +const PALConfig pal_default_config = +{ + {VAL_GPIOAODT, VAL_GPIOACFGLR, VAL_GPIOACFGHR}, + {VAL_GPIOBODT, VAL_GPIOBCFGLR, VAL_GPIOBCFGHR}, +#if AT32_HAS_GPIOC + {VAL_GPIOCODT, VAL_GPIOCCFGLR, VAL_GPIOCCFGHR}, +#endif + {VAL_GPIODODT, VAL_GPIODCFGLR, VAL_GPIODCFGHR}, +#if AT32_HAS_GPIOF + {VAL_GPIOFODT, VAL_GPIOFCFGLR, VAL_GPIOFCFGHR}, +#endif +}; +#endif + +/*===========================================================================*/ +/* Driver local functions. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Driver interrupt handlers. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Driver exported functions. */ +/*===========================================================================*/ + +/** + * @brief Early initialization code. + * @details System clocks are initialized before everything else. + */ +void __early_init(void) { + at32_clock_init(); +} + +#if HAL_USE_SDC || defined(__DOXYGEN__) +/** + * @brief SDC card detection. + */ +bool sdc_lld_is_card_inserted(SDCDriver *sdcp) { + static bool last_status = false; + + if (blkIsTransferring(sdcp)) + return last_status; + return last_status = (bool)palReadPad(GPIOC, GPIOC_PIN11); +} + +/** + * @brief SDC card write protection detection. + */ +bool sdc_lld_is_write_protected(SDCDriver *sdcp) { + + (void)sdcp; + return false; +} +#endif /* HAL_USE_SDC */ + +/** + * @brief Board-specific initialization code. + * @note You can add your board-specific code here. + */ +void boardInit(void) { + IOMUX->REMAP |= IOMUX_REMAP_SWJTAG_MUX_JTAGDIS; +} diff --git a/platforms/chibios/boards/GENERIC_AT32_F415XX/board/board.h b/platforms/chibios/boards/GENERIC_AT32_F415XX/board/board.h new file mode 100644 index 00000000000..c3ade198bae --- /dev/null +++ b/platforms/chibios/boards/GENERIC_AT32_F415XX/board/board.h @@ -0,0 +1,207 @@ +/* + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + ChibiOS - Copyright (C) 2023..2024 HorrorTroll + ChibiOS - Copyright (C) 2023..2024 Zhaqian + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef _BOARD_H_ +#define _BOARD_H_ + +/*===========================================================================*/ +/* Driver constants. */ +/*===========================================================================*/ + +/* + * Setup for a Generic AT32F415 board. + */ + +/* + * Board identifier. + */ +#define BOARD_GENERIC_AT32_F415XX +#define BOARD_NAME "GENERIC AT32F415 board" + +/* + * Board oscillators-related settings. + */ +#if !defined(AT32_LEXTCLK) +#define AT32_LEXTCLK 32768 +#endif + +#if !defined(AT32_HEXTCLK) +#define AT32_HEXTCLK 8000000 +#endif + +/* + * MCU type, supported types are defined in ./os/hal/platforms/hal_lld.h. + */ +#define AT32F415KB + +/* + * IO pins assignments. + */ +#define GPIOA_PIN0 0U +#define GPIOA_PIN1 1U +#define GPIOA_PIN2 2U +#define GPIOA_PIN3 3U +#define GPIOA_PIN4 4U +#define GPIOA_PIN5 5U +#define GPIOA_PIN6 6U +#define GPIOA_PIN7 7U +#define GPIOA_PIN8 8U +#define GPIOA_PIN9 9U +#define GPIOA_PIN10 10U +#define GPIOA_PIN11 11U +#define GPIOA_PIN12 12U +#define GPIOA_SWDIO 13U +#define GPIOA_SWCLK 14U +#define GPIOA_PIN15 15U + +#define GPIOB_PIN0 0U +#define GPIOB_PIN1 1U +#define GPIOB_PIN2 2U +#define GPIOB_PIN3 3U +#define GPIOB_PIN4 4U +#define GPIOB_PIN5 5U +#define GPIOB_PIN6 6U +#define GPIOB_PIN7 7U +#define GPIOB_PIN8 8U +#define GPIOB_PIN9 9U +#define GPIOB_PIN10 10U +#define GPIOB_PIN11 11U +#define GPIOB_PIN12 12U +#define GPIOB_PIN13 13U +#define GPIOB_PIN14 14U +#define GPIOB_PIN15 15U + +#define GPIOC_PIN0 0U +#define GPIOC_PIN1 1U +#define GPIOC_PIN2 2U +#define GPIOC_PIN3 3U +#define GPIOC_PIN4 4U +#define GPIOC_PIN5 5U +#define GPIOC_PIN6 6U +#define GPIOC_PIN7 7U +#define GPIOC_PIN8 8U +#define GPIOC_PIN9 9U +#define GPIOC_PIN10 10U +#define GPIOC_PIN11 11U +#define GPIOC_PIN12 12U +#define GPIOC_PIN13 13U +#define GPIOC_PIN14 14U +#define GPIOC_PIN15 15U + +#define GPIOD_HEXT_IN 0U +#define GPIOD_HEXT_OUT 1U +#define GPIOD_PIN2 2U + +#define GPIOF_PIN4 4U +#define GPIOF_PIN5 5U +#define GPIOF_PIN6 6U +#define GPIOF_PIN7 7U + +/*===========================================================================*/ +/* Driver pre-compile time settings. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Derived constants and error checks. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Driver data structures and types. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Driver macros. */ +/*===========================================================================*/ + +/* + * I/O ports initial setup, this configuration is established soon after reset + * in the initialization code. + * + * The digits have the following meaning: + * 0 - Analog input. + * 1 - Push Pull output 10MHz. + * 2 - Push Pull output 2MHz. + * 3 - Push Pull output 50MHz. + * 4 - Digital input. + * 5 - Open Drain output 10MHz. + * 6 - Open Drain output 2MHz. + * 7 - Open Drain output 50MHz. + * 8 - Digital input with Pull-Up or Pull-Down resistor depending on ODT. + * 9 - Alternate Push Pull output 10MHz. + * A - Alternate Push Pull output 2MHz. + * B - Alternate Push Pull output 50MHz. + * C - Reserved. + * D - Alternate Open Drain output 10MHz. + * E - Alternate Open Drain output 2MHz. + * F - Alternate Open Drain output 50MHz. + * Please refer to the AT32 Reference Manual for details. + */ + +/* + * Port A setup. + */ +#define VAL_GPIOACFGLR 0x88888B88 /* PA7...PA0 */ +#define VAL_GPIOACFGHR 0x888888B8 /* PA15...PA8 */ +#define VAL_GPIOAODT 0xFFFFFFFF + +/* + * Port B setup. + */ +#define VAL_GPIOBCFGLR 0x88888888 /* PB7...PB0 */ +#define VAL_GPIOBCFGHR 0x88888888 /* PB15...PB8 */ +#define VAL_GPIOBODT 0xFFFFFFFF + +/* + * Port C setup. + */ +#define VAL_GPIOCCFGLR 0x88888888 /* PC7...PC0 */ +#define VAL_GPIOCCFGHR 0x88888888 /* PC15...PC8 */ +#define VAL_GPIOCODT 0xFFFFFFFF + +/* + * Port D setup. + * Everything input with pull-up except: + * PD0 - Normal input (GPIOD_HEXT_IN). + * PD1 - Normal input (GPIOD_HEXT_OUT). + */ +#define VAL_GPIODCFGLR 0x88888844 /* PD7...PD0 */ +#define VAL_GPIODCFGHR 0x88888888 /* PD15...PD8 */ +#define VAL_GPIODODT 0xFFFFFFFF + +/* + * Port F setup. + */ +#define VAL_GPIOFCFGLR 0x88888888 /* PF7...PF0 */ +#define VAL_GPIOFCFGHR 0x88888888 /* PF15...PF8 */ +#define VAL_GPIOFODT 0xFFFFFFFF + +/*===========================================================================*/ +/* External declarations. */ +/*===========================================================================*/ + +#if !defined(_FROM_ASM_) +#ifdef __cplusplus +extern "C" { +#endif + void boardInit(void); +#ifdef __cplusplus +} +#endif +#endif /* _FROM_ASM_ */ + +#endif /* _BOARD_H_ */ diff --git a/platforms/chibios/boards/GENERIC_AT32_F415XX/board/board.mk b/platforms/chibios/boards/GENERIC_AT32_F415XX/board/board.mk new file mode 100644 index 00000000000..842e3359059 --- /dev/null +++ b/platforms/chibios/boards/GENERIC_AT32_F415XX/board/board.mk @@ -0,0 +1,9 @@ +# List of all the board related files. +BOARDSRC = $(BOARD_PATH)/board/board.c + +# Required include directories +BOARDINC = $(BOARD_PATH)/board + +# Shared variables +ALLCSRC += $(BOARDSRC) +ALLINC += $(BOARDINC) diff --git a/platforms/chibios/boards/GENERIC_AT32_F415XX/configs/config.h b/platforms/chibios/boards/GENERIC_AT32_F415XX/configs/config.h new file mode 100644 index 00000000000..da60447a0af --- /dev/null +++ b/platforms/chibios/boards/GENERIC_AT32_F415XX/configs/config.h @@ -0,0 +1,13 @@ +// Copyright 2023-2024 HorrorTroll +// Copyright 2023-2024 Zhaqian +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define BOARD_OTG_VBUSIG + +#define USB_ENDPOINTS_ARE_REORDERABLE + +#ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP +# define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE +#endif diff --git a/platforms/chibios/boards/GENERIC_AT32_F415XX/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_AT32_F415XX/configs/mcuconf.h new file mode 100644 index 00000000000..d148379fe1d --- /dev/null +++ b/platforms/chibios/boards/GENERIC_AT32_F415XX/configs/mcuconf.h @@ -0,0 +1,236 @@ +/* + ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2023..2024 HorrorTroll + ChibiOS - Copyright (C) 2023..2024 Zhaqian + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef MCUCONF_H +#define MCUCONF_H + +/* + * AT32F415 drivers configuration. + * The following settings override the default settings present in + * the various device driver implementation headers. + * Note that the settings for each driver only have effect if the whole + * driver is enabled in halconf.h. + * + * IRQ priorities: + * 15...0 Lowest...Highest. + * + * DMA priorities: + * 0...3 Lowest...Highest. + */ + +#define AT32F415_MCUCONF + +/* + * General settings. + */ +#define AT32_NO_INIT FALSE + +/* + * HAL driver system settings. + */ +#define AT32_HICK_ENABLED TRUE +#define AT32_LICK_ENABLED FALSE +#define AT32_HEXT_ENABLED TRUE +#define AT32_LEXT_ENABLED FALSE +#define AT32_SCLKSEL AT32_SCLKSEL_PLL +#define AT32_PLLRCS AT32_PLLRCS_HEXT +#define AT32_PLLHEXTDIV AT32_PLLHEXTDIV_DIV1 +#define AT32_PLLCFGEN AT32_PLLCFGEN_SOLID +#define AT32_PLLMULT_VALUE 18 +#define AT32_PLL_FR_VALUE 4 +#define AT32_PLL_MS_VALUE 1 +#define AT32_PLL_NS_VALUE 72 +#define AT32_AHBDIV AT32_AHBDIV_DIV1 +#define AT32_APB1DIV AT32_APB1DIV_DIV2 +#define AT32_APB2DIV AT32_APB2DIV_DIV2 +#define AT32_ADCDIV AT32_ADCDIV_DIV4 +#define AT32_USB_CLOCK_REQUIRED TRUE +#define AT32_USBDIV AT32_USBDIV_DIV3 +#define AT32_CLKOUT_SEL AT32_CLKOUT_SEL_NOCLOCK +#define AT32_CLKOUTDIV AT32_CLKOUTDIV_DIV1 +#define AT32_ERTCSEL AT32_ERTCSEL_HEXTDIV +#define AT32_PVM_ENABLE FALSE +#define AT32_PVMSEL AT32_PVMSEL_LEV1 + +/* + * IRQ system settings. + */ +#define AT32_IRQ_EXINT0_PRIORITY 6 +#define AT32_IRQ_EXINT1_PRIORITY 6 +#define AT32_IRQ_EXINT2_PRIORITY 6 +#define AT32_IRQ_EXINT3_PRIORITY 6 +#define AT32_IRQ_EXINT4_PRIORITY 6 +#define AT32_IRQ_EXINT5_9_PRIORITY 6 +#define AT32_IRQ_EXINT10_15_PRIORITY 6 +#define AT32_IRQ_EXINT16_PRIORITY 6 +#define AT32_IRQ_EXINT17_PRIORITY 15 +#define AT32_IRQ_EXINT18_PRIORITY 6 +#define AT32_IRQ_EXINT19_PRIORITY 6 +#define AT32_IRQ_EXINT20_PRIORITY 6 +#define AT32_IRQ_EXINT21_PRIORITY 15 +#define AT32_IRQ_EXINT22_PRIORITY 15 + +#define AT32_IRQ_TMR1_BRK_TMR9_PRIORITY 7 +#define AT32_IRQ_TMR1_OVF_TMR10_PRIORITY 7 +#define AT32_IRQ_TMR1_HALL_TMR11_PRIORITY 7 +#define AT32_IRQ_TMR1_CH_PRIORITY 7 +#define AT32_IRQ_TMR2_PRIORITY 7 +#define AT32_IRQ_TMR3_PRIORITY 7 +#define AT32_IRQ_TMR4_PRIORITY 7 +#define AT32_IRQ_TMR5_PRIORITY 7 + +#define AT32_IRQ_USART1_PRIORITY 12 +#define AT32_IRQ_USART2_PRIORITY 12 +#define AT32_IRQ_USART3_PRIORITY 12 +#define AT32_IRQ_UART4_PRIORITY 12 +#define AT32_IRQ_UART5_PRIORITY 12 + +/* + * ADC driver system settings. + */ +#define AT32_ADC_USE_ADC1 FALSE +#define AT32_ADC_ADC1_DMA_PRIORITY 2 +#define AT32_ADC_ADC1_IRQ_PRIORITY 6 + +/* + * CAN driver system settings. + */ +#define AT32_CAN_USE_CAN1 FALSE +#define AT32_CAN_CAN1_IRQ_PRIORITY 11 + +/* + * DMA driver system settings. + */ +#define AT32_DMA_USE_DMAMUX TRUE + +/* + * GPT driver system settings. + */ +#define AT32_GPT_USE_TMR1 FALSE +#define AT32_GPT_USE_TMR2 FALSE +#define AT32_GPT_USE_TMR3 FALSE +#define AT32_GPT_USE_TMR4 FALSE +#define AT32_GPT_USE_TMR5 FALSE +#define AT32_GPT_USE_TMR9 FALSE +#define AT32_GPT_USE_TMR10 FALSE +#define AT32_GPT_USE_TMR11 FALSE + +/* + * I2C driver system settings. + */ +#define AT32_I2C_USE_I2C1 FALSE +#define AT32_I2C_USE_I2C2 FALSE +#define AT32_I2C_BUSY_TIMEOUT 50 +#define AT32_I2C_I2C1_IRQ_PRIORITY 5 +#define AT32_I2C_I2C2_IRQ_PRIORITY 5 +#define AT32_I2C_I2C1_DMA_PRIORITY 3 +#define AT32_I2C_I2C2_DMA_PRIORITY 3 +#define AT32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") + +/* + * ICU driver system settings. + */ +#define AT32_ICU_USE_TMR1 FALSE +#define AT32_ICU_USE_TMR2 FALSE +#define AT32_ICU_USE_TMR3 FALSE +#define AT32_ICU_USE_TMR4 FALSE +#define AT32_ICU_USE_TMR5 FALSE +#define AT32_ICU_USE_TMR9 FALSE +#define AT32_ICU_USE_TMR10 FALSE +#define AT32_ICU_USE_TMR11 FALSE + +/* + * PWM driver system settings. + */ +#define AT32_PWM_USE_TMR1 FALSE +#define AT32_PWM_USE_TMR2 FALSE +#define AT32_PWM_USE_TMR3 FALSE +#define AT32_PWM_USE_TMR4 FALSE +#define AT32_PWM_USE_TMR5 FALSE +#define AT32_PWM_USE_TMR9 FALSE +#define AT32_PWM_USE_TMR10 FALSE +#define AT32_PWM_USE_TMR11 FALSE + +/* + * RTC driver system settings. + */ +#define AT32_ERTC_DIVA_VALUE 32 +#define AT32_ERTC_DIVB_VALUE 1024 +#define AT32_ERTC_CTRL_INIT 0 +#define AT32_ERTC_TAMP_INIT 0 + +/* + * SDC driver system settings. + */ +#define AT32_SDC_SDIO_DMA_PRIORITY 3 +#define AT32_SDC_SDIO_IRQ_PRIORITY 9 +#define AT32_SDC_WRITE_TIMEOUT_MS 1000 +#define AT32_SDC_READ_TIMEOUT_MS 1000 +#define AT32_SDC_CLOCK_ACTIVATION_DELAY 10 +#define AT32_SDC_SDIO_UNALIGNED_SUPPORT TRUE + +/* + * SERIAL driver system settings. + */ +#define AT32_SERIAL_USE_USART1 FALSE +#define AT32_SERIAL_USE_USART2 FALSE +#define AT32_SERIAL_USE_USART3 FALSE +#define AT32_SERIAL_USE_UART4 FALSE +#define AT32_SERIAL_USE_UART5 FALSE + +/* + * SPI driver system settings. + */ +#define AT32_SPI_USE_SPI1 FALSE +#define AT32_SPI_USE_SPI2 FALSE +#define AT32_SPI_SPI1_DMA_PRIORITY 1 +#define AT32_SPI_SPI2_DMA_PRIORITY 1 +#define AT32_SPI_SPI1_IRQ_PRIORITY 10 +#define AT32_SPI_SPI2_IRQ_PRIORITY 10 +#define AT32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") + +/* + * ST driver system settings. + */ +#define AT32_ST_IRQ_PRIORITY 8 +#define AT32_ST_USE_TIMER 2 + +/* + * UART driver system settings. + */ +#define AT32_UART_USE_USART1 FALSE +#define AT32_UART_USE_USART2 FALSE +#define AT32_UART_USE_USART3 FALSE +#define AT32_UART_USART1_DMA_PRIORITY 0 +#define AT32_UART_USART2_DMA_PRIORITY 0 +#define AT32_UART_USART3_DMA_PRIORITY 0 +#define AT32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") + +/* + * USB driver system settings. + */ +#define AT32_USB_USE_OTG1 TRUE +#define AT32_USB_OTG1_IRQ_PRIORITY 14 +#define AT32_USB_OTG1_RX_FIFO_SIZE 512 + +/* + * WDG driver system settings. + */ +#define AT32_WDG_USE_WDT FALSE + +#endif /* MCUCONF_H */ diff --git a/platforms/chibios/bootloader.mk b/platforms/chibios/bootloader.mk index 5b6edd73ad3..e292e1e0b08 100644 --- a/platforms/chibios/bootloader.mk +++ b/platforms/chibios/bootloader.mk @@ -26,6 +26,7 @@ # stm32-dfu STM32 USB DFU in ROM # apm32-dfu APM32 USB DFU in ROM # wb32-dfu WB32 USB DFU in ROM +# at32-dfu AT32 USB DFU in ROM # tinyuf2 TinyUF2 # rp2040 Raspberry Pi RP2040 # Current options for RISC-V: @@ -119,6 +120,14 @@ ifeq ($(strip $(BOOTLOADER)), wb32-dfu) OPT_DEFS += -DBOOTLOADER_WB32_DFU BOOTLOADER_TYPE = wb32_dfu endif +ifeq ($(strip $(BOOTLOADER)), at32-dfu) + OPT_DEFS += -DBOOTLOADER_AT32_DFU + BOOTLOADER_TYPE = at32_dfu + + # Options to pass to dfu-util when flashing + DFU_ARGS ?= -d 2E3C:DF11 -a 0 -s 0x08000000:leave + DFU_SUFFIX_ARGS ?= -v 2E3C -p DF11 +endif ifeq ($(strip $(BOOTLOADER_TYPE)),) ifneq ($(strip $(BOOTLOADER)),) diff --git a/platforms/chibios/bootloaders/at32_dfu.c b/platforms/chibios/bootloaders/at32_dfu.c new file mode 100644 index 00000000000..f3a453d0fce --- /dev/null +++ b/platforms/chibios/bootloaders/at32_dfu.c @@ -0,0 +1,83 @@ +// Copyright 2021-2023 QMK +// Copyright 2023-2024 HorrorTroll +// Copyright 2023-2024 Zhaqian +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "bootloader.h" +#include "util.h" + +#include +#include +#include "wait.h" + +#ifndef AT32_BOOTLOADER_RAM_SYMBOL +# define AT32_BOOTLOADER_RAM_SYMBOL __ram0_end__ +#endif + +extern uint32_t AT32_BOOTLOADER_RAM_SYMBOL; + +/* This code should be checked whether it runs correctly on platforms */ +#define SYMVAL(sym) (uint32_t)(((uint8_t *)&(sym)) - ((uint8_t *)0)) +#define BOOTLOADER_MAGIC 0xDEADBEEF +#define MAGIC_ADDR (unsigned long *)(SYMVAL(AT32_BOOTLOADER_RAM_SYMBOL) - 4) + +__attribute__((weak)) void bootloader_marker_enable(void) { + uint32_t *marker = (uint32_t *)MAGIC_ADDR; + *marker = BOOTLOADER_MAGIC; // set magic flag => reset handler will jump into boot loader +} + +__attribute__((weak)) bool bootloader_marker_active(void) { + const uint32_t *marker = (const uint32_t *)MAGIC_ADDR; + return (*marker == BOOTLOADER_MAGIC) ? true : false; +} + +__attribute__((weak)) void bootloader_marker_disable(void) { + uint32_t *marker = (uint32_t *)MAGIC_ADDR; + *marker = 0; +} + +__attribute__((weak)) void bootloader_jump(void) { + bootloader_marker_enable(); + NVIC_SystemReset(); +} + +__attribute__((weak)) void mcu_reset(void) { + NVIC_SystemReset(); +} + +void enter_bootloader_mode_if_requested(void) { + if (bootloader_marker_active()) { + bootloader_marker_disable(); + + struct system_memory_vector_t { + uint32_t stack_top; + void (*entrypoint)(void); + }; + const struct system_memory_vector_t *bootloader = (const struct system_memory_vector_t *)(AT32_BOOTLOADER_ADDRESS); + + __disable_irq(); + +#if defined(__MPU_PRESENT) && (__MPU_PRESENT == 1U) + ARM_MPU_Disable(); +#endif + + SysTick->CTRL = 0; + SysTick->VAL = 0; + SysTick->LOAD = 0; + + // Clear interrupt enable and interrupt pending registers + for (int i = 0; i < ARRAY_SIZE(NVIC->ICER); i++) { + NVIC->ICER[i] = 0xFFFFFFFF; + NVIC->ICPR[i] = 0xFFFFFFFF; + } + + __set_CONTROL(0); + __set_MSP(bootloader->stack_top); + __enable_irq(); + + // Jump to bootloader + bootloader->entrypoint(); + while (true) { + } + } +} diff --git a/platforms/chibios/chibios_config.h b/platforms/chibios/chibios_config.h index 8f46fe07360..95136baf303 100644 --- a/platforms/chibios/chibios_config.h +++ b/platforms/chibios/chibios_config.h @@ -142,6 +142,19 @@ # endif #endif +// AT32 compatibility +#if defined(MCU_AT32) +# define CPU_CLOCK AT32_SYSCLK + +# if defined(AT32F415) +# define USE_GPIOV1 +# define USE_I2CV1 +# define PAL_MODE_ALTERNATE_OPENDRAIN PAL_MODE_AT32_ALTERNATE_OPENDRAIN +# define PAL_MODE_ALTERNATE_PUSHPULL PAL_MODE_AT32_ALTERNATE_PUSHPULL +# define AUDIO_PWM_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL +# endif +#endif + #if defined(GD32VF103) /* This chip has the same API as STM32F103, but uses different names for literally the same thing. * As of 4.7.2021 QMK is tailored to use STM32 defines/names, for compatibility sake diff --git a/platforms/chibios/drivers/analog.c b/platforms/chibios/drivers/analog.c index fb146df9367..7e1f87e6c95 100644 --- a/platforms/chibios/drivers/analog.c +++ b/platforms/chibios/drivers/analog.c @@ -22,7 +22,7 @@ # error "You need to set HAL_USE_ADC to TRUE in your halconf.h to use the ADC." #endif -#if !RP_ADC_USE_ADC1 && !STM32_ADC_USE_ADC1 && !STM32_ADC_USE_ADC2 && !STM32_ADC_USE_ADC3 && !STM32_ADC_USE_ADC4 && !WB32_ADC_USE_ADC1 +#if !RP_ADC_USE_ADC1 && !STM32_ADC_USE_ADC1 && !STM32_ADC_USE_ADC2 && !STM32_ADC_USE_ADC3 && !STM32_ADC_USE_ADC4 && !WB32_ADC_USE_ADC1 && !AT32_ADC_USE_ADC1 # error "You need to set one of the 'xxx_ADC_USE_ADCx' settings to TRUE in your mcuconf.h to use the ADC." #endif @@ -45,7 +45,7 @@ // Otherwise assume V3 #if defined(STM32F0XX) || defined(STM32L0XX) # define USE_ADCV1 -#elif defined(STM32F1XX) || defined(STM32F2XX) || defined(STM32F4XX) || defined(GD32VF103) || defined(WB32F3G71xx) || defined(WB32FQ95xx) +#elif defined(STM32F1XX) || defined(STM32F2XX) || defined(STM32F4XX) || defined(GD32VF103) || defined(WB32F3G71xx) || defined(WB32FQ95xx) || defined(AT32F415) # define USE_ADCV2 #endif @@ -82,7 +82,7 @@ /* User configurable ADC options */ #ifndef ADC_COUNT -# if defined(RP2040) || defined(STM32F0XX) || defined(STM32F1XX) || defined(STM32F4XX) || defined(GD32VF103) || defined(WB32F3G71xx) || defined(WB32FQ95xx) +# if defined(RP2040) || defined(STM32F0XX) || defined(STM32F1XX) || defined(STM32F4XX) || defined(GD32VF103) || defined(WB32F3G71xx) || defined(WB32FQ95xx) || defined(AT32F415) # define ADC_COUNT 1 # elif defined(STM32F3XX) || defined(STM32G4XX) # define ADC_COUNT 4 @@ -142,11 +142,16 @@ static ADCConversionGroup adcConversionGroup = { .cfgr1 = ADC_CFGR1_CONT | ADC_RESOLUTION, .smpr = ADC_SAMPLING_RATE, #elif defined(USE_ADCV2) -# if !defined(STM32F1XX) && !defined(GD32VF103) && !defined(WB32F3G71xx) && !defined(WB32FQ95xx) - .cr2 = ADC_CR2_SWSTART, // F103 seem very unhappy with, F401 seems very unhappy without... +# if !defined(STM32F1XX) && !defined(GD32VF103) && !defined(WB32F3G71xx) && !defined(WB32FQ95xx) && !defined(AT32F415) + .cr2 = ADC_CR2_SWSTART, // F103 seem very unhappy with, F401 seems very unhappy without... # endif +# if defined(AT32F415) + .spt2 = ADC_SPT2_CSPT_AN0(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN1(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN2(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN3(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN4(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN5(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN6(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN7(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN8(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN9(ADC_SAMPLING_RATE), + .spt1 = ADC_SPT1_CSPT_AN10(ADC_SAMPLING_RATE) | ADC_SPT1_CSPT_AN11(ADC_SAMPLING_RATE) | ADC_SPT1_CSPT_AN12(ADC_SAMPLING_RATE) | ADC_SPT1_CSPT_AN13(ADC_SAMPLING_RATE) | ADC_SPT1_CSPT_AN14(ADC_SAMPLING_RATE) | ADC_SPT1_CSPT_AN15(ADC_SAMPLING_RATE), +# else .smpr2 = ADC_SMPR2_SMP_AN0(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN1(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN2(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN3(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN4(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN5(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN6(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN7(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN8(ADC_SAMPLING_RATE) | ADC_SMPR2_SMP_AN9(ADC_SAMPLING_RATE), .smpr1 = ADC_SMPR1_SMP_AN10(ADC_SAMPLING_RATE) | ADC_SMPR1_SMP_AN11(ADC_SAMPLING_RATE) | ADC_SMPR1_SMP_AN12(ADC_SAMPLING_RATE) | ADC_SMPR1_SMP_AN13(ADC_SAMPLING_RATE) | ADC_SMPR1_SMP_AN14(ADC_SAMPLING_RATE) | ADC_SMPR1_SMP_AN15(ADC_SAMPLING_RATE), +# endif #elif defined(RP2040) // RP2040 does not have any extra config here #else @@ -242,7 +247,7 @@ __attribute__((weak)) adc_mux pinToMux(pin_t pin) { case F9: return TO_MUX( ADC_CHANNEL_IN7, 2 ); case F10: return TO_MUX( ADC_CHANNEL_IN8, 2 ); # endif -#elif defined(STM32F1XX) || defined(GD32VF103) || defined(WB32F3G71xx) || defined(WB32FQ95xx) +#elif defined(STM32F1XX) || defined(GD32VF103) || defined(WB32F3G71xx) || defined(WB32FQ95xx) || defined(AT32F415) case A0: return TO_MUX( ADC_CHANNEL_IN0, 0 ); case A1: return TO_MUX( ADC_CHANNEL_IN1, 0 ); case A2: return TO_MUX( ADC_CHANNEL_IN2, 0 ); @@ -344,7 +349,7 @@ __attribute__((weak)) adc_mux pinToMux(pin_t pin) { static inline ADCDriver* intToADCDriver(uint8_t adcInt) { switch (adcInt) { -#if RP_ADC_USE_ADC1 || STM32_ADC_USE_ADC1 || WB32_ADC_USE_ADC1 +#if RP_ADC_USE_ADC1 || STM32_ADC_USE_ADC1 || WB32_ADC_USE_ADC1 || AT32_ADC_USE_ADC1 case 0: return &ADCD1; #endif @@ -391,7 +396,11 @@ int16_t adc_read(adc_mux mux) { // TODO: fix previous assumption of only 1 input... adcConversionGroup.chselr = 1 << mux.input; /*no macro to convert N to ADC_CHSELR_CHSEL1*/ #elif defined(USE_ADCV2) +# if defined(AT32F415) + adcConversionGroup.osq3 = ADC_OSQ3_OSN1_N(mux.input); +# else adcConversionGroup.sqr3 = ADC_SQR3_SQ1_N(mux.input); +# endif #elif defined(RP2040) adcConversionGroup.channel_mask = 1 << mux.input; #else diff --git a/platforms/chibios/drivers/serial_usart.c b/platforms/chibios/drivers/serial_usart.c index 767ef8726fc..becf3afbce1 100644 --- a/platforms/chibios/drivers/serial_usart.c +++ b/platforms/chibios/drivers/serial_usart.c @@ -9,6 +9,17 @@ #if defined(SERIAL_USART_CONFIG) static QMKSerialConfig serial_config = SERIAL_USART_CONFIG; +#elif defined(MCU_AT32) /* AT32 MCUs */ +static QMKSerialConfig serial_config = { + .speed = (SERIAL_USART_SPEED), + .ctrl1 = (SERIAL_USART_CTRL1), + .ctrl2 = (SERIAL_USART_CTRL2), +# if !defined(SERIAL_USART_FULL_DUPLEX) + .ctrl3 = ((SERIAL_USART_CTRL3) | USART_CTRL3_SLBEN) /* activate half-duplex mode */ +# else + .ctrl3 = (SERIAL_USART_CTRL3) +# endif +}; #elif defined(MCU_STM32) /* STM32 MCUs */ static QMKSerialConfig serial_config = { # if HAL_USE_SERIAL @@ -160,7 +171,7 @@ inline bool serial_transport_receive_blocking(uint8_t* destination, const size_t * @brief Initiate pins for USART peripheral. Half-duplex configuration. */ __attribute__((weak)) void usart_init(void) { -# if defined(MCU_STM32) /* STM32 MCUs */ +# if defined(MCU_STM32) || defined(MCU_AT32) /* STM32 and AT32 MCUs */ # if defined(USE_GPIOV1) palSetLineMode(SERIAL_USART_TX_PIN, PAL_MODE_ALTERNATE_OPENDRAIN); # else @@ -183,7 +194,7 @@ __attribute__((weak)) void usart_init(void) { * @brief Initiate pins for USART peripheral. Full-duplex configuration. */ __attribute__((weak)) void usart_init(void) { -# if defined(MCU_STM32) /* STM32 MCUs */ +# if defined(MCU_STM32) || defined(MCU_AT32) /* STM32 and AT32 MCUs */ # if defined(USE_GPIOV1) palSetLineMode(SERIAL_USART_TX_PIN, PAL_MODE_ALTERNATE_PUSHPULL); palSetLineMode(SERIAL_USART_RX_PIN, PAL_MODE_INPUT); diff --git a/platforms/chibios/drivers/serial_usart.h b/platforms/chibios/drivers/serial_usart.h index dec8a292e98..dbd7673273f 100644 --- a/platforms/chibios/drivers/serial_usart.h +++ b/platforms/chibios/drivers/serial_usart.h @@ -74,40 +74,75 @@ typedef SIOConfig QMKSerialConfig; # endif #endif -#if !defined(USART_CR1_M0) -# define USART_CR1_M0 USART_CR1_M // some platforms (f1xx) dont have this so -#endif +#if defined(MCU_STM32) /* STM32 MCUs */ +# if !defined(USART_CR1_M0) +# define USART_CR1_M0 USART_CR1_M // some platforms (f1xx) dont have this so +# endif -#if !defined(SERIAL_USART_CR1) -# define SERIAL_USART_CR1 (USART_CR1_PCE | USART_CR1_PS | USART_CR1_M0) // parity enable, odd parity, 9 bit length -#endif +# if !defined(SERIAL_USART_CR1) +# define SERIAL_USART_CR1 (USART_CR1_PCE | USART_CR1_PS | USART_CR1_M0) // parity enable, odd parity, 9 bit length +# endif -#if !defined(SERIAL_USART_CR2) -# define SERIAL_USART_CR2 (USART_CR2_STOP_1) // 2 stop bits -#endif +# if !defined(SERIAL_USART_CR2) +# define SERIAL_USART_CR2 (USART_CR2_STOP_1) // 2 stop bits +# endif -#if !defined(SERIAL_USART_CR3) -# define SERIAL_USART_CR3 0 -#endif +# if !defined(SERIAL_USART_CR3) +# define SERIAL_USART_CR3 0 +# endif -#if defined(USART1_REMAP) -# define USART_REMAP \ - do { \ - (AFIO->MAPR |= AFIO_MAPR_USART1_REMAP); \ - } while (0) -#elif defined(USART2_REMAP) -# define USART_REMAP \ - do { \ - (AFIO->MAPR |= AFIO_MAPR_USART2_REMAP); \ - } while (0) -#elif defined(USART3_PARTIALREMAP) -# define USART_REMAP \ - do { \ - (AFIO->MAPR |= AFIO_MAPR_USART3_REMAP_PARTIALREMAP); \ - } while (0) -#elif defined(USART3_FULLREMAP) -# define USART_REMAP \ - do { \ - (AFIO->MAPR |= AFIO_MAPR_USART3_REMAP_FULLREMAP); \ - } while (0) +# if defined(USART1_REMAP) +# define USART_REMAP \ + do { \ + (AFIO->MAPR |= AFIO_MAPR_USART1_REMAP); \ + } while (0) +# elif defined(USART2_REMAP) +# define USART_REMAP \ + do { \ + (AFIO->MAPR |= AFIO_MAPR_USART2_REMAP); \ + } while (0) +# elif defined(USART3_PARTIALREMAP) +# define USART_REMAP \ + do { \ + (AFIO->MAPR |= AFIO_MAPR_USART3_REMAP_PARTIALREMAP); \ + } while (0) +# elif defined(USART3_FULLREMAP) +# define USART_REMAP \ + do { \ + (AFIO->MAPR |= AFIO_MAPR_USART3_REMAP_FULLREMAP); \ + } while (0) +# endif +#elif defined(MCU_AT32) /* AT32 MCUs */ +# if !defined(USART_CTRL1_DBN0) +# define USART_CTRL1_DBN0 USART_CTRL1_DBN +# endif + +# if !defined(SERIAL_USART_CTRL1) +# define SERIAL_USART_CTRL1 (USART_CTRL1_PEN | USART_CTRL1_PSEL | USART_CTRL1_DBN0) // parity enable, odd parity, 9 bit length +# endif + +# if !defined(SERIAL_USART_CTRL2) +# define SERIAL_USART_CTRL2 (USART_CTRL2_STOPBN_1) // 2 stop bits +# endif + +# if !defined(SERIAL_USART_CTRL3) +# define SERIAL_USART_CTRL3 0 +# endif + +# if defined(USART1_REMAP) +# define USART_REMAP \ + do { \ + (IOMUX->REMAP |= IOMUX_REMAP_USART1_MUX); \ + } while (0) +# elif defined(USART3_PARTIALREMAP) +# define USART_REMAP \ + do { \ + (IOMUX->REMAP |= IOMUX_REMAP_USART3_MUX_MUX1); \ + } while (0) +# elif defined(USART3_FULLREMAP) +# define USART_REMAP \ + do { \ + (IOMUX->REMAP |= IOMUX_REMAP_USART3_MUX_MUX2); \ + } while (0) +# endif #endif diff --git a/platforms/chibios/drivers/spi_master.c b/platforms/chibios/drivers/spi_master.c index cbe765e233d..6417b7077f5 100644 --- a/platforms/chibios/drivers/spi_master.c +++ b/platforms/chibios/drivers/spi_master.c @@ -103,9 +103,15 @@ bool spi_start_extended(spi_start_config_t *start_config) { roundedDivisor <<= 1; } +# if defined(AT32F415) + if (roundedDivisor < 2 || roundedDivisor > 1024) { + return false; + } +# else if (roundedDivisor < 2 || roundedDivisor > 256) { return false; } +# endif #endif #if defined(K20x) || defined(KL2x) @@ -240,6 +246,59 @@ bool spi_start_extended(spi_start_config_t *start_config) { spiConfig.SSPCR0 |= SPI_SSPCR0_SPH; // Clock phase: sample on second edge transition break; } +#elif defined(AT32F415) + spiConfig.ctrl1 = 0; + + if (lsbFirst) { + spiConfig.ctrl1 |= SPI_CTRL1_LTF; + } + + switch (mode) { + case 0: + break; + case 1: + spiConfig.ctrl1 |= SPI_CTRL1_CLKPHA; + break; + case 2: + spiConfig.ctrl1 |= SPI_CTRL1_CLKPOL; + break; + case 3: + spiConfig.ctrl1 |= SPI_CTRL1_CLKPHA | SPI_CTRL1_CLKPOL; + break; + } + + switch (roundedDivisor) { + case 2: + break; + case 4: + spiConfig.ctrl1 |= SPI_CTRL1_MDIV_0; + break; + case 8: + spiConfig.ctrl1 |= SPI_CTRL1_MDIV_1; + break; + case 16: + spiConfig.ctrl1 |= SPI_CTRL1_MDIV_1 | SPI_CTRL1_MDIV_0; + break; + case 32: + spiConfig.ctrl1 |= SPI_CTRL1_MDIV_2; + break; + case 64: + spiConfig.ctrl1 |= SPI_CTRL1_MDIV_2 | SPI_CTRL1_MDIV_0; + break; + case 128: + spiConfig.ctrl1 |= SPI_CTRL1_MDIV_2 | SPI_CTRL1_MDIV_1; + break; + case 256: + spiConfig.ctrl1 |= SPI_CTRL1_MDIV_2 | SPI_CTRL1_MDIV_1 | SPI_CTRL1_MDIV_0; + break; + case 512: + spiConfig.ctrl2 |= SPI_CTRL1_MDIV_3; + break; + case 1024: + spiConfig.ctrl2 |= SPI_CTRL1_MDIV_3; + spiConfig.ctrl1 |= SPI_CTRL1_MDIV_0; + break; + } #else spiConfig.cr1 = 0; diff --git a/platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c b/platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c index f49c4a45b0b..fed16d20b1a 100644 --- a/platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c +++ b/platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c @@ -33,7 +33,7 @@ static inline uint32_t detect_flash_size(void) { #elif defined(FLASH_SIZE) return FLASH_SIZE; #elif defined(FLASHSIZE_BASE) -# if defined(QMK_MCU_SERIES_STM32F0XX) || defined(QMK_MCU_SERIES_STM32F1XX) || defined(QMK_MCU_SERIES_STM32F3XX) || defined(QMK_MCU_SERIES_STM32F4XX) || defined(QMK_MCU_SERIES_STM32G4XX) || defined(QMK_MCU_SERIES_STM32L0XX) || defined(QMK_MCU_SERIES_STM32L4XX) || defined(QMK_MCU_SERIES_GD32VF103) +# if defined(QMK_MCU_SERIES_STM32F0XX) || defined(QMK_MCU_SERIES_STM32F1XX) || defined(QMK_MCU_SERIES_STM32F3XX) || defined(QMK_MCU_SERIES_STM32F4XX) || defined(QMK_MCU_SERIES_STM32G4XX) || defined(QMK_MCU_SERIES_STM32L0XX) || defined(QMK_MCU_SERIES_STM32L4XX) || defined(QMK_MCU_SERIES_AT32F415) || defined(QMK_MCU_SERIES_GD32VF103) return ((*(uint32_t *)FLASHSIZE_BASE) & 0xFFFFU) << 10U; // this register has the flash size in kB, so we convert it to bytes # elif defined(QMK_MCU_SERIES_STM32L1XX) # error This MCU family has an uncommon flash size register definition and has not been implemented. Perhaps try using the true EEPROM on the MCU instead? diff --git a/platforms/chibios/drivers/wear_leveling/wear_leveling_efl_config.h b/platforms/chibios/drivers/wear_leveling/wear_leveling_efl_config.h index 0f0fa694e9c..f09f824bd8b 100644 --- a/platforms/chibios/drivers/wear_leveling/wear_leveling_efl_config.h +++ b/platforms/chibios/drivers/wear_leveling/wear_leveling_efl_config.h @@ -16,6 +16,8 @@ # define BACKING_STORE_WRITE_SIZE 4 // from hal_efl_lld.c # elif defined(QMK_MCU_FAMILY_WB32) # define BACKING_STORE_WRITE_SIZE 8 // from hal_efl_lld.c +# elif defined(QMK_MCU_FAMILY_AT32) +# define BACKING_STORE_WRITE_SIZE 2 // from hal_efl_lld.c # elif defined(QMK_MCU_FAMILY_STM32) # if defined(STM32_FLASH_LINE_SIZE) // from some family's stm32_registry.h file # define BACKING_STORE_WRITE_SIZE (STM32_FLASH_LINE_SIZE) diff --git a/platforms/chibios/drivers/ws2812_bitbang.c b/platforms/chibios/drivers/ws2812_bitbang.c index fce1963d0ae..a88c5ff619d 100644 --- a/platforms/chibios/drivers/ws2812_bitbang.c +++ b/platforms/chibios/drivers/ws2812_bitbang.c @@ -11,7 +11,7 @@ /* Adapted from https://github.com/bigjosh/SimpleNeoPixelDemo/ */ #ifndef WS2812_BITBANG_NOP_FUDGE -# if defined(STM32F0XX) || defined(STM32F1XX) || defined(GD32VF103) || defined(STM32F3XX) || defined(STM32F4XX) || defined(STM32L0XX) || defined(WB32F3G71xx) || defined(WB32FQ95xx) +# if defined(STM32F0XX) || defined(STM32F1XX) || defined(GD32VF103) || defined(STM32F3XX) || defined(STM32F4XX) || defined(STM32L0XX) || defined(WB32F3G71xx) || defined(WB32FQ95xx) || defined(AT32F415) # define WS2812_BITBANG_NOP_FUDGE 0.4 # else # if defined(RP2040) diff --git a/platforms/chibios/drivers/ws2812_pwm.c b/platforms/chibios/drivers/ws2812_pwm.c index c46e9171ab8..50927b849a4 100644 --- a/platforms/chibios/drivers/ws2812_pwm.c +++ b/platforms/chibios/drivers/ws2812_pwm.c @@ -40,6 +40,9 @@ #if (STM32_DMA_SUPPORTS_DMAMUX == TRUE) && !defined(WS2812_PWM_DMAMUX_ID) # error "please consult your MCU's datasheet and specify in your config.h: #define WS2812_PWM_DMAMUX_ID STM32_DMAMUX1_TIM?_UP" #endif +#if (AT32_DMA_SUPPORTS_DMAMUX == TRUE) && !defined(WS2812_PWM_DMAMUX_CHANNEL) && !defined(WS2812_PWM_DMAMUX_ID) +# error "please consult your MCU's datasheet and specify in your config.h: #define WS2812_PWM_DMAMUX_CHANNEL 1, #define WS2812_PWM_DMAMUX_ID AT32_DMAMUX_TMR?_OVERFLOW" +#endif /* Summarize https://www.st.com/resource/en/application_note/an4013-stm32-crossseries-timer-overview-stmicroelectronics.pdf to * figure out if we are using a 32bit timer. This is needed to setup the DMA controller correctly. @@ -269,6 +272,14 @@ typedef uint32_t ws2812_buffer_t; # define WS2812_PWM_DMA_PERIPHERAL_WIDTH STM32_DMA_CR_PSIZE_HWORD typedef uint16_t ws2812_buffer_t; # endif +#elif defined(AT32F415) +# define WS2812_PWM_DMA_MEMORY_WIDTH AT32_DMA_CCTRL_MWIDTH_BYTE +# if defined(WS2812_PWM_TIMER_32BIT) +# define WS2812_PWM_DMA_PERIPHERAL_WIDTH AT32_DMA_CCTRL_PWIDTH_WORD +# else +# define WS2812_PWM_DMA_PERIPHERAL_WIDTH AT32_DMA_CCTRL_PWIDTH_HWORD +# endif +typedef uint8_t ws2812_buffer_t; #else # define WS2812_PWM_DMA_MEMORY_WIDTH STM32_DMA_CR_MSIZE_BYTE # if defined(WS2812_PWM_TIMER_32BIT) @@ -309,8 +320,13 @@ void ws2812_init(void) { [0 ... 3] = {.mode = PWM_OUTPUT_DISABLED, .callback = NULL}, // Channels default to disabled [WS2812_PWM_CHANNEL - 1] = {.mode = WS2812_PWM_OUTPUT_MODE, .callback = NULL}, // Turn on the channel we care about }, +#if defined(AT32F415) + .ctrl2 = 0, + .iden = AT32_TMR_IDEN_OVFDEN, // DMA on update event for next period +#else .cr2 = 0, .dier = TIM_DIER_UDE, // DMA on update event for next period +#endif }; //#pragma GCC diagnostic pop // Restore command-line warning options @@ -321,6 +337,11 @@ void ws2812_init(void) { dmaStreamSetSource(WS2812_PWM_DMA_STREAM, ws2812_frame_buffer); dmaStreamSetDestination(WS2812_PWM_DMA_STREAM, &(WS2812_PWM_DRIVER.tim->CCR[WS2812_PWM_CHANNEL - 1])); // Ziel ist der An-Zeit im Cap-Comp-Register dmaStreamSetMode(WS2812_PWM_DMA_STREAM, WB32_DMA_CHCFG_HWHIF(WS2812_PWM_DMA_CHANNEL) | WB32_DMA_CHCFG_DIR_M2P | WB32_DMA_CHCFG_PSIZE_WORD | WB32_DMA_CHCFG_MSIZE_WORD | WB32_DMA_CHCFG_MINC | WB32_DMA_CHCFG_CIRC | WB32_DMA_CHCFG_TCIE | WB32_DMA_CHCFG_PL(3)); +#elif defined(AT32F415) + dmaStreamAlloc(WS2812_PWM_DMA_STREAM - AT32_DMA_STREAM(0), 10, NULL, NULL); + dmaStreamSetPeripheral(WS2812_PWM_DMA_STREAM, &(WS2812_PWM_DRIVER.tmr->CDT[WS2812_PWM_CHANNEL - 1])); // Ziel ist der An-Zeit im Cap-Comp-Register + dmaStreamSetMemory0(WS2812_PWM_DMA_STREAM, ws2812_frame_buffer); + dmaStreamSetMode(WS2812_PWM_DMA_STREAM, AT32_DMA_CCTRL_DTD_M2P | WS2812_PWM_DMA_PERIPHERAL_WIDTH | WS2812_PWM_DMA_MEMORY_WIDTH | AT32_DMA_CCTRL_MINCM | AT32_DMA_CCTRL_LM | AT32_DMA_CCTRL_CHPL(3)); #else dmaStreamAlloc(WS2812_PWM_DMA_STREAM - STM32_DMA_STREAM(0), 10, NULL, NULL); dmaStreamSetPeripheral(WS2812_PWM_DMA_STREAM, &(WS2812_PWM_DRIVER.tim->CCR[WS2812_PWM_CHANNEL - 1])); // Ziel ist der An-Zeit im Cap-Comp-Register @@ -335,6 +356,11 @@ void ws2812_init(void) { dmaSetRequestSource(WS2812_PWM_DMA_STREAM, WS2812_PWM_DMAMUX_ID); #endif +#if (AT32_DMA_SUPPORTS_DMAMUX == TRUE) + // If the MCU has a DMAMUX we need to assign the correct resource + dmaSetRequestSource(WS2812_PWM_DMA_STREAM, WS2812_PWM_DMAMUX_CHANNEL, WS2812_PWM_DMAMUX_ID); +#endif + // Start DMA dmaStreamEnable(WS2812_PWM_DMA_STREAM); diff --git a/platforms/chibios/drivers/ws2812_spi.c b/platforms/chibios/drivers/ws2812_spi.c index a1357edec57..d1792b871bf 100644 --- a/platforms/chibios/drivers/ws2812_spi.c +++ b/platforms/chibios/drivers/ws2812_spi.c @@ -40,26 +40,53 @@ // Define SPI config speed // baudrate should target 3.2MHz +#if defined(AT32F415) +# if WS2812_SPI_DIVISOR == 2 +# define WS2812_SPI_DIVISOR_CTRL1_MDIV_X (0) +# elif WS2812_SPI_DIVISOR == 4 +# define WS2812_SPI_DIVISOR_CTRL1_MDIV_X (SPI_CTRL1_MDIV_0) +# elif WS2812_SPI_DIVISOR == 8 +# define WS2812_SPI_DIVISOR_CTRL1_MDIV_X (SPI_CTRL1_MDIV_1) +# elif WS2812_SPI_DIVISOR == 16 // default +# define WS2812_SPI_DIVISOR_CTRL1_MDIV_X (SPI_CTRL1_MDIV_1 | SPI_CTRL1_MDIV_0) +# elif WS2812_SPI_DIVISOR == 32 +# define WS2812_SPI_DIVISOR_CTRL1_MDIV_X (SPI_CTRL1_MDIV_2) +# elif WS2812_SPI_DIVISOR == 64 +# define WS2812_SPI_DIVISOR_CTRL1_MDIV_X (SPI_CTRL1_MDIV_2 | SPI_CTRL1_MDIV_0) +# elif WS2812_SPI_DIVISOR == 128 +# define WS2812_SPI_DIVISOR_CTRL1_MDIV_X (SPI_CTRL1_MDIV_2 | SPI_CTRL1_MDIV_1) +# elif WS2812_SPI_DIVISOR == 256 +# define WS2812_SPI_DIVISOR_CTRL1_MDIV_X (SPI_CTRL1_MDIV_2 | SPI_CTRL1_MDIV_1 | SPI_CTRL1_MDIV_0) +# elif WS2812_SPI_DIVISOR == 512 +# define WS2812_SPI_DIVISOR_CTRL2_MDIV_X (SPI_CTRL1_MDIV_3) +# elif WS2812_SPI_DIVISOR == 1024 +# define WS2812_SPI_DIVISOR_CTRL2_MDIV_X (SPI_CTRL1_MDIV_3) +# define WS2812_SPI_DIVISOR_CTRL1_MDIV_X (SPI_CTRL1_MDIV_0) +# else +# error "Configured WS2812_SPI_DIVISOR value is not supported at this time." +# endif +#else // F072 fpclk = 48MHz // 48/16 = 3Mhz -#if WS2812_SPI_DIVISOR == 2 -# define WS2812_SPI_DIVISOR_CR1_BR_X (0) -#elif WS2812_SPI_DIVISOR == 4 -# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_0) -#elif WS2812_SPI_DIVISOR == 8 -# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_1) -#elif WS2812_SPI_DIVISOR == 16 // default -# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_1 | SPI_CR1_BR_0) -#elif WS2812_SPI_DIVISOR == 32 -# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_2) -#elif WS2812_SPI_DIVISOR == 64 -# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_2 | SPI_CR1_BR_0) -#elif WS2812_SPI_DIVISOR == 128 -# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_2 | SPI_CR1_BR_1) -#elif WS2812_SPI_DIVISOR == 256 -# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_2 | SPI_CR1_BR_1 | SPI_CR1_BR_0) -#else -# error "Configured WS2812_SPI_DIVISOR value is not supported at this time." +# if WS2812_SPI_DIVISOR == 2 +# define WS2812_SPI_DIVISOR_CR1_BR_X (0) +# elif WS2812_SPI_DIVISOR == 4 +# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_0) +# elif WS2812_SPI_DIVISOR == 8 +# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_1) +# elif WS2812_SPI_DIVISOR == 16 // default +# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_1 | SPI_CR1_BR_0) +# elif WS2812_SPI_DIVISOR == 32 +# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_2) +# elif WS2812_SPI_DIVISOR == 64 +# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_2 | SPI_CR1_BR_0) +# elif WS2812_SPI_DIVISOR == 128 +# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_2 | SPI_CR1_BR_1) +# elif WS2812_SPI_DIVISOR == 256 +# define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_2 | SPI_CR1_BR_1 | SPI_CR1_BR_0) +# else +# error "Configured WS2812_SPI_DIVISOR value is not supported at this time." +# endif #endif // Use SPI circular buffer @@ -176,8 +203,16 @@ void ws2812_init(void) { NULL, // error_cb PAL_PORT(WS2812_DI_PIN), PAL_PAD(WS2812_DI_PIN), +# if defined(AT32F415) + WS2812_SPI_DIVISOR_CTRL1_MDIV_X, +# if (WS2812_SPI_DIVISOR == 512 || WS2812_SPI_DIVISOR == 1024) + WS2812_SPI_DIVISOR_CTRL2_MDIV_X, +# endif + 0 +# else WS2812_SPI_DIVISOR_CR1_BR_X, 0 +# endif #endif }; diff --git a/platforms/chibios/flash.mk b/platforms/chibios/flash.mk index 525f177f9eb..f4db17a58bf 100644 --- a/platforms/chibios/flash.mk +++ b/platforms/chibios/flash.mk @@ -113,6 +113,8 @@ else ifeq ($(strip $(MCU_FAMILY)),STM32) $(UNSYNC_OUTPUT_CMD) && $(call EXEC_DFU_UTIL) else ifeq ($(strip $(MCU_FAMILY)),WB32) $(UNSYNC_OUTPUT_CMD) && $(call EXEC_WB32_DFU_UPDATER) +else ifeq ($(strip $(MCU_FAMILY)),AT32) + $(UNSYNC_OUTPUT_CMD) && $(call EXEC_DFU_UTIL) else ifeq ($(strip $(MCU_FAMILY)),GD32V) $(UNSYNC_OUTPUT_CMD) && $(call EXEC_DFU_UTIL) else diff --git a/platforms/chibios/mcu_selection.mk b/platforms/chibios/mcu_selection.mk index a1597fa1e91..086a2b31c60 100644 --- a/platforms/chibios/mcu_selection.mk +++ b/platforms/chibios/mcu_selection.mk @@ -809,6 +809,40 @@ ifneq ($(findstring WB32FQ95, $(MCU)),) WB32_BOOTLOADER_ADDRESS ?= 0x1FFFE000 endif +ifneq ($(findstring AT32F415, $(MCU)),) + # Cortex version + MCU = cortex-m4 + + # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 + ARMV = 7 + + ## chip/board settings + # - the next two should match the directories in + # /os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES) + # OR + # /os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) + MCU_FAMILY = AT32 + MCU_SERIES = AT32F415 + + # Linker script to use + # - it should exist either in /os/common/startup/ARMCMx/compilers/GCC/ld/ + # or /ld/ + MCU_LDSCRIPT ?= AT32F415xB + + # Startup code to use + # - it should exist in /os/common/startup/ARMCMx/compilers/GCC/mk/ + MCU_STARTUP ?= at32f415 + + # Board: it should exist either in /os/hal/boards/, + # /boards/, or drivers/boards/ + BOARD ?= GENERIC_AT32_F415XX + + USE_FPU ?= no + + # Bootloader address for AT32 DFU + AT32_BOOTLOADER_ADDRESS ?= 0x1FFFAC00 +endif + ifneq ($(findstring GD32VF103, $(MCU)),) # RISC-V MCU = risc-v diff --git a/platforms/chibios/platform.mk b/platforms/chibios/platform.mk index 169707966ff..cf9fac251e4 100644 --- a/platforms/chibios/platform.mk +++ b/platforms/chibios/platform.mk @@ -155,6 +155,10 @@ ifdef WB32_BOOTLOADER_ADDRESS OPT_DEFS += -DWB32_BOOTLOADER_ADDRESS=$(WB32_BOOTLOADER_ADDRESS) endif +ifdef AT32_BOOTLOADER_ADDRESS + OPT_DEFS += -DAT32_BOOTLOADER_ADDRESS=$(AT32_BOOTLOADER_ADDRESS) +endif + # Work out if we need to set up the include for the bootloader definitions ifneq ("$(wildcard $(KEYBOARD_PATH_5)/bootloader_defs.h)","") OPT_DEFS += -include $(KEYBOARD_PATH_5)/bootloader_defs.h From 36b5559b997cedd14a352aa70891558936b8b3a3 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Wed, 20 Nov 2024 22:31:54 -0800 Subject: [PATCH 052/365] [Core] Add Layer Lock feature (#23430) Co-authored-by: Daniel <1767914+iamdanielv@users.noreply.github.com> Co-authored-by: Pascal Getreuer Co-authored-by: Pascal Getreuer <50221757+getreuer@users.noreply.github.com> --- builddefs/generic_features.mk | 1 + .../keycodes/keycodes_0.0.6_quantum.hjson | 7 + data/mappings/info_config.hjson | 3 + data/schemas/keyboard.jsonschema | 6 + docs/_sidebar.json | 1 + docs/feature_layers.md | 3 + docs/features/layer_lock.md | 139 +++++++++ docs/keycodes.md | 8 + quantum/keyboard.c | 7 + quantum/keycodes.h | 6 +- quantum/layer_lock.c | 81 +++++ quantum/layer_lock.h | 135 +++++++++ quantum/process_keycode/process_layer_lock.c | 95 ++++++ quantum/process_keycode/process_layer_lock.h | 69 +++++ quantum/quantum.c | 7 + quantum/quantum.h | 4 + tests/layer_lock/config.h | 8 + tests/layer_lock/test.mk | 8 + tests/layer_lock/test_layer_lock.cpp | 284 ++++++++++++++++++ tests/test_common/keycode_table.cpp | 1 + 20 files changed, 871 insertions(+), 2 deletions(-) create mode 100644 docs/features/layer_lock.md create mode 100644 quantum/layer_lock.c create mode 100644 quantum/layer_lock.h create mode 100644 quantum/process_keycode/process_layer_lock.c create mode 100644 quantum/process_keycode/process_layer_lock.h create mode 100644 tests/layer_lock/config.h create mode 100644 tests/layer_lock/test.mk create mode 100644 tests/layer_lock/test_layer_lock.cpp diff --git a/builddefs/generic_features.mk b/builddefs/generic_features.mk index dc34a642307..f14f4408770 100644 --- a/builddefs/generic_features.mk +++ b/builddefs/generic_features.mk @@ -36,6 +36,7 @@ GENERIC_FEATURES = \ HAPTIC \ KEY_LOCK \ KEY_OVERRIDE \ + LAYER_LOCK \ LEADER \ MAGIC \ MOUSEKEY \ diff --git a/data/constants/keycodes/keycodes_0.0.6_quantum.hjson b/data/constants/keycodes/keycodes_0.0.6_quantum.hjson index 814cd66a5b1..be3285f9e43 100644 --- a/data/constants/keycodes/keycodes_0.0.6_quantum.hjson +++ b/data/constants/keycodes/keycodes_0.0.6_quantum.hjson @@ -3,5 +3,12 @@ "0x7C20": "!delete!", // old QK_OUTPUT_AUTO "0x7C21": "!delete!", // old QK_OUTPUT_USB "0x7C22": "!delete!", // old QK_OUTPUT_BLUETOOTH + "0x7C7B": { + "group": "quantum", + "key": "QK_LAYER_LOCK", + "aliases": [ + "QK_LLCK" + ] + } } } diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson index 4c895cf5d50..8d3e3c7f0ee 100644 --- a/data/mappings/info_config.hjson +++ b/data/mappings/info_config.hjson @@ -64,6 +64,9 @@ "WEAR_LEVELING_BACKING_SIZE": {"info_key": "eeprom.wear_leveling.backing_size", "value_type": "int", "to_json": false}, "WEAR_LEVELING_LOGICAL_SIZE": {"info_key": "eeprom.wear_leveling.logical_size", "value_type": "int", "to_json": false}, + // Layer locking + "LAYER_LOCK_IDLE_TIMEOUT": {"info_key": "layer_lock.timeout", "value_type": "int"}, + // Indicators "LED_CAPS_LOCK_PIN": {"info_key": "indicators.caps_lock"}, "LED_NUM_LOCK_PIN": {"info_key": "indicators.num_lock"}, diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 9f1f6dd74a5..ec87680fa05 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -375,6 +375,12 @@ } }, "keycodes": {"$ref": "qmk.definitions.v1#/keycode_decl_array"}, + "layer_lock": { + "type": "object", + "properties": { + "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"} + } + }, "layout_aliases": { "type": "object", "additionalProperties": {"$ref": "qmk.definitions.v1#/layout_macro"} diff --git a/docs/_sidebar.json b/docs/_sidebar.json index 7f353ad351d..15c3cbec317 100644 --- a/docs/_sidebar.json +++ b/docs/_sidebar.json @@ -123,6 +123,7 @@ { "text": "Key Lock", "link": "/features/key_lock" }, { "text": "Key Overrides", "link": "/features/key_overrides" }, { "text": "Layers", "link": "/feature_layers" }, + { "text": "Layer Lock", "link": "/features/layer_lock" }, { "text": "One Shot Keys", "link": "/one_shot_keys" }, { "text": "OS Detection", "link": "/features/os_detection" }, { "text": "Raw HID", "link": "/features/rawhid" }, diff --git a/docs/feature_layers.md b/docs/feature_layers.md index 30ab7132226..45f02fe536d 100644 --- a/docs/feature_layers.md +++ b/docs/feature_layers.md @@ -17,6 +17,9 @@ These functions allow you to activate layers in various ways. Note that layers a * `TO(layer)` - activates *layer* and de-activates all other layers (except your default layer). This function is special, because instead of just adding/removing one layer to your active layer stack, it will completely replace your current active layers, uniquely allowing you to replace higher layers with a lower one. This is activated on keydown (as soon as the key is pressed). * `TT(layer)` - Layer Tap-Toggle. If you hold the key down, *layer* is activated, and then is de-activated when you let go (like `MO`). If you repeatedly tap it, the layer will be toggled on or off (like `TG`). It needs 5 taps by default, but you can change this by defining `TAPPING_TOGGLE` -- for example, `#define TAPPING_TOGGLE 2` to toggle on just two taps. +See also the [Layer Lock key](features/layer_lock), which locks the highest +active layer until pressed again. + ### Caveats {#caveats} Currently, the `layer` argument of `LT()` is limited to layers 0-15, and the `kc` argument to the [Basic Keycode set](keycodes_basic), meaning you can't use keycodes like `LCTL()`, `KC_TILD`, or anything greater than `0xFF`. This is because QMK uses 16-bit keycodes, of which 4 bits are used for the function identifier and 4 bits for the layer, leaving only 8 bits for the keycode. diff --git a/docs/features/layer_lock.md b/docs/features/layer_lock.md new file mode 100644 index 00000000000..aaf323acccd --- /dev/null +++ b/docs/features/layer_lock.md @@ -0,0 +1,139 @@ +# Layer Lock + +Some [layer switches](../feature_layers#switching-and-toggling-layers) access +the layer by holding the key, including momentary layer `MO(layer)` and layer +tap `LT(layer, key)` keys. You may sometimes need to stay on the layer for a +long period of time. Layer Lock "locks" the current layer to stay on, supposing +it was accessed by one of: + + * `MO(layer)` momentary layer switch + * `LT(layer, key)` layer tap + * `OSL(layer)` one-shot layer + * `TT(layer)` layer tap toggle + * `LM(layer, mod)` layer-mod key (the layer is locked, but not the mods) + +Press the Layer Lock key again to unlock the layer. Additionally, when a layer +is locked, layer switch keys that turn off the layer such as `TO(other_layer)` +will unlock it. + + +## How do I enable Layer Lock + +In your rules.mk, add: + +```make +LAYER_LOCK_ENABLE = yes +``` + +Pick a key in your keymap on a layer you intend to lock, and assign it the +keycode `QK_LAYER_LOCK` (short alias `QK_LLCK`). Note that locking the base +layer has no effect, so typically, this key is used on layers above the base +layer. + + +## Example use + +Consider a keymap with the following base layer. + +![Base layer with a MO(NAV) key.](https://i.imgur.com/DkEhj9x.png) + +The highlighted key is a momentary layer switch `MO(NAV)`. Holding it accesses a +navigation layer. + +![Nav layer with a Layer Lock key.](https://i.imgur.com/2wUZNWk.png) + + +Holding the NAV key is fine for brief use, but awkward to continue holding when +using navigation functions continuously. The Layer Lock key comes to the rescue: + +1. Hold the NAV key, activating the navigation layer. +2. Tap Layer Lock. +3. Release NAV. The navigation layer stays on. +4. Make use of the arrow keys, etc. +5. Tap Layer Lock or NAV again to turn the navigation layer back off. + +A variation that would also work is to put the Layer Lock key on the base layer +and make other layers transparent (`KC_TRNS`) in that position. Pressing the +Layer Lock key locks (or unlocks) the highest active layer, regardless of which +layer the Layer Lock key is on. + + +## Idle timeout + +Optionally, Layer Lock may be configured to unlock if the keyboard is idle +for some time. In config.h, define `LAYER_LOCK_IDLE_TIMEOUT` in units of +milliseconds: + +```c +#define LAYER_LOCK_IDLE_TIMEOUT 60000 // Turn off after 60 seconds. +``` + + +## Functions + +Use the following functions to query and manipulate the layer lock state. + +| Function | Description | +|----------------------------|------------------------------------| +| `is_layer_locked(layer)` | Checks whether `layer` is locked. | +| `layer_lock_on(layer)` | Locks and turns on `layer`. | +| `layer_lock_off(layer)` | Unlocks and turns off `layer`. | +| `layer_lock_invert(layer)` | Toggles whether `layer` is locked. | + + +## Representing the current Layer Lock state + +There is an optional callback `layer_lock_set_user()` that gets called when a +layer is locked or unlocked. This is useful to represent the current lock state +for instance by setting an LED. In keymap.c, define + +```c +bool layer_lock_set_user(layer_state_t locked_layers) { + // Do something like `set_led(is_layer_locked(NAV));` + return true; +} +``` + +The argument `locked_layers` is a bitfield in which the kth bit is on if the kth +layer is locked. Alternatively, you can use `is_layer_locked(layer)` to check if +a given layer is locked. + + +## Combine Layer Lock with a mod-tap + +It is possible to create a [mod-tap MT key](../mod_tap) that acts as a modifier +on hold and Layer Lock on tap. Since Layer Lock is not a [basic +keycode](../keycodes_basic), attempting `MT(mod, QK_LLCK)` is invalid does not +work directly, yet this effect can be achieved through [changing the tap +function](../mod_tap#changing-tap-function). For example, the following +implements a `SFTLLCK` key that acts as Shift on hold and Layer Lock on tap: + +```c +#define SFTLLCK LSFT_T(KC_0) + +// Use SFTLLCK in your keymap... + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case SFTLLCK: + if (record->tap.count) { + if (record->event.pressed) { + // Toggle the lock on the highest layer. + layer_lock_invert(get_highest_layer(layer_state)); + } + return false; + } + break; + + // Other macros... + } + return true; +} +``` + +In the above, `KC_0` is an arbitrary placeholder for the tapping keycode. This +keycode will never be sent, so any basic keycode will do. In +`process_record_user()`, the tap press event is changed to toggle the lock on +the highest layer. Layer Lock can be combined with a [layer-tap LT +key](../feature_layers#switching-and-toggling-layers) similarly. + diff --git a/docs/keycodes.md b/docs/keycodes.md index 3665747a0bf..cae6418266a 100644 --- a/docs/keycodes.md +++ b/docs/keycodes.md @@ -387,6 +387,14 @@ See also: [Key Lock](features/key_lock) |---------|--------------------------------------------------------------| |`QK_LOCK`|Hold down the next key pressed, until the key is pressed again| +## Layer Lock {#layer-lock} + +See also: [Layer Lock](features/layer_lock) + +|Key |Aliases |Description | +|---------------|---------|----------------------------------| +|`QK_LAYER_LOCK`|`QK_LLCK`|Locks or unlocks the highest layer| + ## Layer Switching {#layer-switching} See also: [Layer Switching](feature_layers#switching-and-toggling-layers) diff --git a/quantum/keyboard.c b/quantum/keyboard.c index df1dc1c3ee0..8db81a4b391 100644 --- a/quantum/keyboard.c +++ b/quantum/keyboard.c @@ -140,6 +140,9 @@ along with this program. If not, see . #ifdef OS_DETECTION_ENABLE # include "os_detection.h" #endif +#if defined(LAYER_LOCK_ENABLE) && LAYER_LOCK_IDLE_TIMEOUT > 0 +# include "layer_lock.h" +#endif // LAYER_LOCK_ENABLE static uint32_t last_input_modification_time = 0; uint32_t last_input_activity_time(void) { @@ -655,6 +658,10 @@ void quantum_task(void) { #ifdef SECURE_ENABLE secure_task(); #endif + +#if defined(LAYER_LOCK_ENABLE) && LAYER_LOCK_IDLE_TIMEOUT > 0 + layer_lock_task(); +#endif } /** \brief Main task that is repeatedly called as fast as possible. */ diff --git a/quantum/keycodes.h b/quantum/keycodes.h index 51b7eb6c9a4..e9da5105ce4 100644 --- a/quantum/keycodes.h +++ b/quantum/keycodes.h @@ -759,6 +759,7 @@ enum qk_keycode_defines { QK_TRI_LAYER_UPPER = 0x7C78, QK_REPEAT_KEY = 0x7C79, QK_ALT_REPEAT_KEY = 0x7C7A, + QK_LAYER_LOCK = 0x7C7B, QK_KB_0 = 0x7E00, QK_KB_1 = 0x7E01, QK_KB_2 = 0x7E02, @@ -1445,6 +1446,7 @@ enum qk_keycode_defines { TL_UPPR = QK_TRI_LAYER_UPPER, QK_REP = QK_REPEAT_KEY, QK_AREP = QK_ALT_REPEAT_KEY, + QK_LLCK = QK_LAYER_LOCK, }; // Range Helpers @@ -1501,7 +1503,7 @@ enum qk_keycode_defines { #define IS_UNDERGLOW_KEYCODE(code) ((code) >= QK_UNDERGLOW_TOGGLE && (code) <= QK_UNDERGLOW_SPEED_DOWN) #define IS_RGB_KEYCODE(code) ((code) >= RGB_MODE_PLAIN && (code) <= RGB_MODE_TWINKLE) #define IS_RGB_MATRIX_KEYCODE(code) ((code) >= QK_RGB_MATRIX_ON && (code) <= QK_RGB_MATRIX_SPEED_DOWN) -#define IS_QUANTUM_KEYCODE(code) ((code) >= QK_BOOTLOADER && (code) <= QK_ALT_REPEAT_KEY) +#define IS_QUANTUM_KEYCODE(code) ((code) >= QK_BOOTLOADER && (code) <= QK_LAYER_LOCK) #define IS_KB_KEYCODE(code) ((code) >= QK_KB_0 && (code) <= QK_KB_31) #define IS_USER_KEYCODE(code) ((code) >= QK_USER_0 && (code) <= QK_USER_31) @@ -1527,6 +1529,6 @@ enum qk_keycode_defines { #define UNDERGLOW_KEYCODE_RANGE QK_UNDERGLOW_TOGGLE ... QK_UNDERGLOW_SPEED_DOWN #define RGB_KEYCODE_RANGE RGB_MODE_PLAIN ... RGB_MODE_TWINKLE #define RGB_MATRIX_KEYCODE_RANGE QK_RGB_MATRIX_ON ... QK_RGB_MATRIX_SPEED_DOWN -#define QUANTUM_KEYCODE_RANGE QK_BOOTLOADER ... QK_ALT_REPEAT_KEY +#define QUANTUM_KEYCODE_RANGE QK_BOOTLOADER ... QK_LAYER_LOCK #define KB_KEYCODE_RANGE QK_KB_0 ... QK_KB_31 #define USER_KEYCODE_RANGE QK_USER_0 ... QK_USER_31 diff --git a/quantum/layer_lock.c b/quantum/layer_lock.c new file mode 100644 index 00000000000..9ee3c307dca --- /dev/null +++ b/quantum/layer_lock.c @@ -0,0 +1,81 @@ +// Copyright 2022-2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "layer_lock.h" +#include "quantum_keycodes.h" + +#ifndef NO_ACTION_LAYER +// The current lock state. The kth bit is on if layer k is locked. +layer_state_t locked_layers = 0; + +// Layer Lock timer to disable layer lock after X seconds inactivity +# if defined(LAYER_LOCK_IDLE_TIMEOUT) && LAYER_LOCK_IDLE_TIMEOUT > 0 +uint32_t layer_lock_timer = 0; + +void layer_lock_task(void) { + if (locked_layers && timer_elapsed32(layer_lock_timer) > LAYER_LOCK_IDLE_TIMEOUT) { + layer_lock_all_off(); + layer_lock_timer = timer_read32(); + } +} +# endif // LAYER_LOCK_IDLE_TIMEOUT > 0 + +bool is_layer_locked(uint8_t layer) { + return locked_layers & ((layer_state_t)1 << layer); +} + +void layer_lock_invert(uint8_t layer) { + const layer_state_t mask = (layer_state_t)1 << layer; + if ((locked_layers & mask) == 0) { // Layer is being locked. +# ifndef NO_ACTION_ONESHOT + if (layer == get_oneshot_layer()) { + reset_oneshot_layer(); // Reset so that OSL doesn't turn layer off. + } +# endif // NO_ACTION_ONESHOT + layer_on(layer); +# if defined(LAYER_LOCK_IDLE_TIMEOUT) && LAYER_LOCK_IDLE_TIMEOUT > 0 + layer_lock_timer = timer_read32(); +# endif // LAYER_LOCK_IDLE_TIMEOUT > 0 + } else { // Layer is being unlocked. + layer_off(layer); + } + layer_lock_set_kb(locked_layers ^= mask); +} + +// Implement layer_lock_on/off by deferring to layer_lock_invert. +void layer_lock_on(uint8_t layer) { + if (!is_layer_locked(layer)) { + layer_lock_invert(layer); + } +} + +void layer_lock_off(uint8_t layer) { + if (is_layer_locked(layer)) { + layer_lock_invert(layer); + } +} + +void layer_lock_all_off(void) { + layer_and(~locked_layers); + locked_layers = 0; + layer_lock_set_kb(locked_layers); +} + +__attribute__((weak)) bool layer_lock_set_kb(layer_state_t locked_layers) { + return layer_lock_set_user(locked_layers); +} +__attribute__((weak)) bool layer_lock_set_user(layer_state_t locked_layers) { + return true; +} +#endif // NO_ACTION_LAYER diff --git a/quantum/layer_lock.h b/quantum/layer_lock.h new file mode 100644 index 00000000000..6d7285da2a6 --- /dev/null +++ b/quantum/layer_lock.h @@ -0,0 +1,135 @@ +// Copyright 2022-2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @file layer_lock.h + * @brief Layer Lock, a key to stay in the current layer. + * + * Overview + * -------- + * + * Layers are often accessed by holding a button, e.g. with a momentary layer + * switch `MO(layer)` or layer tap `LT(layer, key)` key. But you may sometimes + * want to "lock" or "toggle" the layer so that it stays on without having to + * hold down a button. One way to do that is with a tap-toggle `TT` layer key, + * but here is an alternative. + * + * This library implements a "Layer Lock key". When tapped, it "locks" the + * highest layer to stay active, assuming the layer was activated by one of the + * following keys: + * + * * `MO(layer)` momentary layer switch + * * `LT(layer, key)` layer tap + * * `OSL(layer)` one-shot layer + * * `TT(layer)` layer tap toggle + * * `LM(layer, mod)` layer-mod key (the layer is locked, but not the mods) + * + * Tapping the Layer Lock key again unlocks and turns off the layer. + * + * @note When a layer is "locked", other layer keys such as `TO(layer)` or + * manually calling `layer_off(layer)` will override and unlock the layer. + * + * Configuration + * ------------- + * + * Optionally, a timeout may be defined so that Layer Lock disables + * automatically if not keys are pressed for `LAYER_LOCK_IDLE_TIMEOUT` + * milliseconds. Define `LAYER_LOCK_IDLE_TIMEOUT` in your config.h, for instance + * + * #define LAYER_LOCK_IDLE_TIMEOUT 60000 // Turn off after 60 seconds. + * + * and call `layer_lock_task()` from your `matrix_scan_user()` in keymap.c: + * + * void matrix_scan_user(void) { + * layer_lock_task(); + * // Other tasks... + * } + * + * For full documentation, see + * + */ + +#pragma once + +#include +#include +#include "action_layer.h" +#include "action_util.h" + +/** + * Handler function for Layer Lock. + * + * In your keymap, define a custom keycode to use for Layer Lock. Then handle + * Layer Lock from your `process_record_user` function by calling + * `process_layer_lock`, passing your custom keycode for the `lock_keycode` arg: + * + * #include "features/layer_lock.h" + * + * bool process_record_user(uint16_t keycode, keyrecord_t* record) { + * if (!process_layer_lock(keycode, record, LLOCK)) { return false; } + * // Your macros ... + * + * return true; + * } + */ + +#ifndef NO_ACTION_LAYER +/** Returns true if `layer` is currently locked. */ +bool is_layer_locked(uint8_t layer); + +/** Locks and turns on `layer`. */ +void layer_lock_on(uint8_t layer); + +/** Unlocks and turns off `layer`. */ +void layer_lock_off(uint8_t layer); + +/** Unlocks and turns off all locked layers. */ +void layer_lock_all_off(void); + +/** Toggles whether `layer` is locked. */ +void layer_lock_invert(uint8_t layer); + +/** + * Optional callback that gets called when a layer is locked or unlocked. + * + * This is useful to represent the current lock state, e.g. by setting an LED or + * playing a sound. In your keymap, define + * + * void layer_lock_set_user(layer_state_t locked_layers) { + * // Do something like `set_led(is_layer_locked(NAV));` + * } + * + * @param locked_layers Bitfield in which the kth bit represents whether the + * kth layer is on. + */ +bool layer_lock_set_kb(layer_state_t locked_layers); +bool layer_lock_set_user(layer_state_t locked_layers); + +void layer_lock_task(void); +#else // NO_ACTION_LAYER +static inline bool is_layer_locked(uint8_t layer) { + return false; +} +static inline void layer_lock_on(uint8_t layer) {} +static inline void layer_lock_off(uint8_t layer) {} +static inline void layer_lock_all_off(void) {} +static inline void layer_lock_invert(uint8_t layer) {} +static inline bool layer_lock_set_kb(layer_state_t locked_layers) { + return true; +} +static inline bool layer_lock_set_user(layer_state_t locked_layers) { + return true; +} +static inline void layer_lock_task(void) {} +#endif // NO_ACTION_LAYER diff --git a/quantum/process_keycode/process_layer_lock.c b/quantum/process_keycode/process_layer_lock.c new file mode 100644 index 00000000000..1e36d8844e8 --- /dev/null +++ b/quantum/process_keycode/process_layer_lock.c @@ -0,0 +1,95 @@ +// Copyright 2022-2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @file layer_lock.c + * @brief Layer Lock implementation + * + * For full documentation, see + * + */ + +#include "layer_lock.h" +#include "process_layer_lock.h" +#include "quantum_keycodes.h" +#include "action_util.h" + +// The current lock state. The kth bit is on if layer k is locked. +extern layer_state_t locked_layers; +#if defined(LAYER_LOCK_IDLE_TIMEOUT) && LAYER_LOCK_IDLE_TIMEOUT > 0 +extern uint32_t layer_lock_timer; +#endif + +// Handles an event on an `MO` or `TT` layer switch key. +static bool handle_mo_or_tt(uint8_t layer, keyrecord_t* record) { + if (is_layer_locked(layer)) { + if (record->event.pressed) { // On press, unlock the layer. + layer_lock_invert(layer); + } + return false; // Skip default handling. + } + return true; +} + +bool process_layer_lock(uint16_t keycode, keyrecord_t* record) { +#ifndef NO_ACTION_LAYER +# if defined(LAYER_LOCK_IDLE_TIMEOUT) && LAYER_LOCK_IDLE_TIMEOUT > 0 + layer_lock_timer = timer_read32(); +# endif // LAYER_LOCK_IDLE_TIMEOUT > 0 + + // The intention is that locked layers remain on. If something outside of + // this feature turned any locked layers off, unlock them. + if ((locked_layers & ~layer_state) != 0) { + layer_lock_set_kb(locked_layers &= layer_state); + } + + if (keycode == QK_LAYER_LOCK) { + if (record->event.pressed) { // The layer lock key was pressed. + layer_lock_invert(get_highest_layer(layer_state)); + } + return false; + } + + switch (keycode) { + case QK_MOMENTARY ... QK_MOMENTARY_MAX: // `MO(layer)` keys. + return handle_mo_or_tt(QK_MOMENTARY_GET_LAYER(keycode), record); + + case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX: // `TT(layer)`. + return handle_mo_or_tt(QK_LAYER_TAP_TOGGLE_GET_LAYER(keycode), record); + + case QK_LAYER_MOD ... QK_LAYER_MOD_MAX: { // `LM(layer, mod)`. + uint8_t layer = QK_LAYER_MOD_GET_LAYER(keycode); + if (is_layer_locked(layer)) { + if (record->event.pressed) { // On press, unlock the layer. + layer_lock_invert(layer); + } else { // On release, clear the mods. + clear_mods(); + send_keyboard_report(); + } + return false; // Skip default handling. + } + } break; + +# ifndef NO_ACTION_TAPPING + case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: // `LT(layer, key)` keys. + if (record->tap.count == 0 && !record->event.pressed && is_layer_locked(QK_LAYER_TAP_GET_LAYER(keycode))) { + // Release event on a held layer-tap key where the layer is locked. + return false; // Skip default handling so that layer stays on. + } + break; +# endif // NO_ACTION_TAPPING + } +#endif // NO_ACTION_LAYER + return true; +} diff --git a/quantum/process_keycode/process_layer_lock.h b/quantum/process_keycode/process_layer_lock.h new file mode 100644 index 00000000000..b54c0f6f106 --- /dev/null +++ b/quantum/process_keycode/process_layer_lock.h @@ -0,0 +1,69 @@ +// Copyright 2022-2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @file layer_lock.h + * @brief Layer Lock, a key to stay in the current layer. + * + * Overview + * -------- + * + * Layers are often accessed by holding a button, e.g. with a momentary layer + * switch `MO(layer)` or layer tap `LT(layer, key)` key. But you may sometimes + * want to "lock" or "toggle" the layer so that it stays on without having to + * hold down a button. One way to do that is with a tap-toggle `TT` layer key, + * but here is an alternative. + * + * This library implements a "Layer Lock key". When tapped, it "locks" the + * highest layer to stay active, assuming the layer was activated by one of the + * following keys: + * + * * `MO(layer)` momentary layer switch + * * `LT(layer, key)` layer tap + * * `OSL(layer)` one-shot layer + * * `TT(layer)` layer tap toggle + * * `LM(layer, mod)` layer-mod key (the layer is locked, but not the mods) + * + * Tapping the Layer Lock key again unlocks and turns off the layer. + * + * @note When a layer is "locked", other layer keys such as `TO(layer)` or + * manually calling `layer_off(layer)` will override and unlock the layer. + * + * Configuration + * ------------- + * + * Optionally, a timeout may be defined so that Layer Lock disables + * automatically if not keys are pressed for `LAYER_LOCK_IDLE_TIMEOUT` + * milliseconds. Define `LAYER_LOCK_IDLE_TIMEOUT` in your config.h, for instance + * + * #define LAYER_LOCK_IDLE_TIMEOUT 60000 // Turn off after 60 seconds. + * + * and call `layer_lock_task()` from your `matrix_scan_user()` in keymap.c: + * + * void matrix_scan_user(void) { + * layer_lock_task(); + * // Other tasks... + * } + * + * For full documentation, see + * + */ + +#pragma once + +#include +#include +#include "action.h" + +bool process_layer_lock(uint16_t keycode, keyrecord_t* record); diff --git a/quantum/quantum.c b/quantum/quantum.c index 874df1593a2..811ad2e7152 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -76,6 +76,10 @@ # include "process_unicode_common.h" #endif +#ifdef LAYER_LOCK_ENABLE +# include "process_layer_lock.h" +#endif // LAYER_LOCK_ENABLE + #ifdef AUDIO_ENABLE # ifndef GOODBYE_SONG # define GOODBYE_SONG SONG(GOODBYE_SOUND) @@ -400,6 +404,9 @@ bool process_record_quantum(keyrecord_t *record) { #ifdef TRI_LAYER_ENABLE process_tri_layer(keycode, record) && #endif +#ifdef LAYER_LOCK_ENABLE + process_layer_lock(keycode, record) && +#endif #ifdef BLUETOOTH_ENABLE process_connection(keycode, record) && #endif diff --git a/quantum/quantum.h b/quantum/quantum.h index b60d8a86bf7..71cf900f2de 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h @@ -240,6 +240,10 @@ extern layer_state_t layer_state; # include "os_detection.h" #endif +#ifdef LAYER_LOCK_ENABLE +# include "layer_lock.h" +#endif // LAYER_LOCK_ENABLE + void set_single_default_layer(uint8_t default_layer); void set_single_persistent_default_layer(uint8_t default_layer); diff --git a/tests/layer_lock/config.h b/tests/layer_lock/config.h new file mode 100644 index 00000000000..25d0b20c0ea --- /dev/null +++ b/tests/layer_lock/config.h @@ -0,0 +1,8 @@ +// Copyright 2021 Christopher Courtney, aka Drashna Jael're (@drashna) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "test_common.h" + +#define LAYER_LOCK_IDLE_TIMEOUT 1000 diff --git a/tests/layer_lock/test.mk b/tests/layer_lock/test.mk new file mode 100644 index 00000000000..05771e4dbf8 --- /dev/null +++ b/tests/layer_lock/test.mk @@ -0,0 +1,8 @@ +# Copyright 2021 Christopher Courtney, aka Drashna Jael're (@drashna) +# SPDX-License-Identifier: GPL-2.0-or-later + +# -------------------------------------------------------------------------------- +# Keep this file, even if it is empty, as a marker that this folder contains tests +# -------------------------------------------------------------------------------- + +LAYER_LOCK_ENABLE = yes diff --git a/tests/layer_lock/test_layer_lock.cpp b/tests/layer_lock/test_layer_lock.cpp new file mode 100644 index 00000000000..00742c3b436 --- /dev/null +++ b/tests/layer_lock/test_layer_lock.cpp @@ -0,0 +1,284 @@ +// Copyright 2021 Christopher Courtney, aka Drashna Jael're (@drashna) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "keycodes.h" +#include "test_common.hpp" + +using testing::_; + +class LayerLock : public TestFixture {}; + +TEST_F(LayerLock, LayerLockState) { + TestDriver driver; + KeymapKey key_a = KeymapKey(0, 0, 0, KC_A); + KeymapKey key_b = KeymapKey(1, 0, 0, KC_B); + KeymapKey key_c = KeymapKey(2, 0, 0, KC_C); + KeymapKey key_d = KeymapKey(3, 0, 0, KC_C); + + set_keymap({key_a, key_b, key_c, key_d}); + + EXPECT_FALSE(is_layer_locked(1)); + EXPECT_FALSE(is_layer_locked(2)); + EXPECT_FALSE(is_layer_locked(3)); + + layer_lock_invert(1); // Layer 1: unlocked -> locked + layer_lock_on(2); // Layer 2: unlocked -> locked + layer_lock_off(3); // Layer 3: stays unlocked + + // Layers 1 and 2 are now on. + EXPECT_TRUE(layer_state_is(1)); + EXPECT_TRUE(layer_state_is(2)); + // Layers 1 and 2 are now locked. + EXPECT_TRUE(is_layer_locked(1)); + EXPECT_TRUE(is_layer_locked(2)); + EXPECT_FALSE(is_layer_locked(3)); + + layer_lock_invert(1); // Layer 1: locked -> unlocked + layer_lock_on(2); // Layer 2: stays locked + layer_lock_on(3); // Layer 3: unlocked -> locked + + EXPECT_FALSE(layer_state_is(1)); + EXPECT_TRUE(layer_state_is(2)); + EXPECT_TRUE(layer_state_is(3)); + EXPECT_FALSE(is_layer_locked(1)); + EXPECT_TRUE(is_layer_locked(2)); + EXPECT_TRUE(is_layer_locked(3)); + + layer_lock_invert(1); // Layer 1: unlocked -> locked + layer_lock_off(2); // Layer 2: locked -> unlocked + + EXPECT_TRUE(layer_state_is(1)); + EXPECT_FALSE(layer_state_is(2)); + EXPECT_TRUE(layer_state_is(3)); + EXPECT_TRUE(is_layer_locked(1)); + EXPECT_FALSE(is_layer_locked(2)); + EXPECT_TRUE(is_layer_locked(3)); + + layer_lock_all_off(); // Layers 1 and 3: locked -> unlocked + + EXPECT_FALSE(layer_state_is(1)); + EXPECT_FALSE(layer_state_is(2)); + EXPECT_FALSE(layer_state_is(3)); + EXPECT_FALSE(is_layer_locked(1)); + EXPECT_FALSE(is_layer_locked(2)); + EXPECT_FALSE(is_layer_locked(3)); +} + +TEST_F(LayerLock, LayerLockMomentaryTest) { + TestDriver driver; + KeymapKey key_layer = KeymapKey(0, 0, 0, MO(1)); + KeymapKey key_a = KeymapKey(0, 1, 0, KC_A); + KeymapKey key_trns = KeymapKey(1, 0, 0, KC_TRNS); + KeymapKey key_ll = KeymapKey(1, 1, 0, QK_LAYER_LOCK); + + set_keymap({key_layer, key_a, key_trns, key_ll}); + + EXPECT_NO_REPORT(driver); + key_layer.press(); + run_one_scan_loop(); + EXPECT_TRUE(layer_state_is(1)); + EXPECT_FALSE(is_layer_locked(1)); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + tap_key(key_ll); + EXPECT_TRUE(layer_state_is(1)); + EXPECT_TRUE(is_layer_locked(1)); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + key_layer.release(); + run_one_scan_loop(); + EXPECT_TRUE(layer_state_is(1)); + EXPECT_TRUE(is_layer_locked(1)); + VERIFY_AND_CLEAR(driver); + + // Pressing Layer Lock again unlocks the lock. + EXPECT_NO_REPORT(driver); + key_ll.press(); + run_one_scan_loop(); + EXPECT_FALSE(layer_state_is(1)); + EXPECT_FALSE(is_layer_locked(1)); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(LayerLock, LayerLockLayerTapTest) { + TestDriver driver; + KeymapKey key_layer = KeymapKey(0, 0, 0, LT(1, KC_B)); + KeymapKey key_a = KeymapKey(0, 1, 0, KC_A); + KeymapKey key_trns = KeymapKey(1, 0, 0, KC_TRNS); + KeymapKey key_ll = KeymapKey(1, 1, 0, QK_LAYER_LOCK); + + set_keymap({key_layer, key_a, key_trns, key_ll}); + + EXPECT_NO_REPORT(driver); + key_layer.press(); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + EXPECT_TRUE(layer_state_is(1)); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + tap_key(key_ll); + EXPECT_TRUE(layer_state_is(1)); + EXPECT_TRUE(is_layer_locked(1)); + VERIFY_AND_CLEAR(driver); + + // Pressing Layer Lock again unlocks the lock. + EXPECT_NO_REPORT(driver); + key_ll.press(); + run_one_scan_loop(); + EXPECT_FALSE(layer_state_is(1)); + EXPECT_FALSE(is_layer_locked(1)); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(LayerLock, LayerLockOneshotTapTest) { + TestDriver driver; + KeymapKey key_layer = KeymapKey(0, 0, 0, OSL(1)); + KeymapKey key_a = KeymapKey(0, 1, 0, KC_A); + KeymapKey key_trns = KeymapKey(1, 0, 0, KC_TRNS); + KeymapKey key_ll = KeymapKey(1, 1, 0, QK_LAYER_LOCK); + + set_keymap({key_layer, key_a, key_trns, key_ll}); + + EXPECT_NO_REPORT(driver); + tap_key(key_layer); + run_one_scan_loop(); + EXPECT_TRUE(layer_state_is(1)); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + tap_key(key_ll); + run_one_scan_loop(); + EXPECT_TRUE(layer_state_is(1)); + EXPECT_TRUE(is_layer_locked(1)); + VERIFY_AND_CLEAR(driver); + + // Pressing Layer Lock again unlocks the lock. + EXPECT_NO_REPORT(driver); + key_ll.press(); + run_one_scan_loop(); + EXPECT_FALSE(layer_state_is(1)); + EXPECT_FALSE(is_layer_locked(1)); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(LayerLock, LayerLockOneshotHoldTest) { + TestDriver driver; + KeymapKey key_layer = KeymapKey(0, 0, 0, OSL(1)); + KeymapKey key_a = KeymapKey(0, 1, 0, KC_A); + KeymapKey key_trns = KeymapKey(1, 0, 0, KC_TRNS); + KeymapKey key_ll = KeymapKey(1, 1, 0, QK_LAYER_LOCK); + + set_keymap({key_layer, key_a, key_trns, key_ll}); + + EXPECT_NO_REPORT(driver); + key_layer.press(); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + EXPECT_TRUE(layer_state_is(1)); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + tap_key(key_ll); + run_one_scan_loop(); + EXPECT_TRUE(layer_state_is(1)); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + key_layer.release(); + run_one_scan_loop(); + EXPECT_TRUE(layer_state_is(1)); + EXPECT_TRUE(is_layer_locked(1)); + VERIFY_AND_CLEAR(driver); + + // Pressing Layer Lock again unlocks the lock. + EXPECT_NO_REPORT(driver); + key_ll.press(); + run_one_scan_loop(); + EXPECT_FALSE(layer_state_is(1)); + EXPECT_FALSE(is_layer_locked(1)); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(LayerLock, LayerLockTimeoutTest) { + TestDriver driver; + KeymapKey key_layer = KeymapKey(0, 0, 0, MO(1)); + KeymapKey key_a = KeymapKey(0, 1, 0, KC_A); + KeymapKey key_trns = KeymapKey(1, 0, 0, KC_TRNS); + KeymapKey key_ll = KeymapKey(1, 1, 0, QK_LAYER_LOCK); + + set_keymap({key_layer, key_a, key_trns, key_ll}); + + EXPECT_NO_REPORT(driver); + key_layer.press(); + run_one_scan_loop(); + EXPECT_TRUE(layer_state_is(1)); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + tap_key(key_ll); + EXPECT_TRUE(layer_state_is(1)); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + key_layer.release(); + run_one_scan_loop(); + EXPECT_TRUE(layer_state_is(1)); + EXPECT_TRUE(is_layer_locked(1)); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + idle_for(LAYER_LOCK_IDLE_TIMEOUT); + run_one_scan_loop(); + EXPECT_FALSE(layer_state_is(1)); + EXPECT_FALSE(is_layer_locked(1)); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(LayerLock, ToKeyOverridesLayerLock) { + TestDriver driver; + KeymapKey key_layer = KeymapKey(0, 0, 0, MO(1)); + KeymapKey key_to0 = KeymapKey(1, 0, 0, TO(0)); + KeymapKey key_ll = KeymapKey(1, 1, 0, QK_LAYER_LOCK); + + set_keymap({key_layer, key_to0, key_ll}); + + EXPECT_NO_REPORT(driver); + layer_lock_on(1); + run_one_scan_loop(); + EXPECT_TRUE(layer_state_is(1)); + EXPECT_TRUE(is_layer_locked(1)); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + tap_key(key_to0); // TO(0) overrides Layer Lock and unlocks layer 1. + EXPECT_FALSE(layer_state_is(1)); + EXPECT_FALSE(is_layer_locked(1)); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(LayerLock, LayerClearOverridesLayerLock) { + TestDriver driver; + KeymapKey key_layer = KeymapKey(0, 0, 0, MO(1)); + KeymapKey key_a = KeymapKey(0, 1, 0, KC_A); + KeymapKey key_ll = KeymapKey(1, 1, 0, QK_LAYER_LOCK); + + set_keymap({key_layer, key_a, key_ll}); + + EXPECT_NO_REPORT(driver); + layer_lock_on(1); + run_one_scan_loop(); + EXPECT_TRUE(layer_state_is(1)); + EXPECT_TRUE(is_layer_locked(1)); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_A)); + layer_clear(); // layer_clear() overrides Layer Lock and unlocks layer 1. + key_a.press(); + run_one_scan_loop(); + EXPECT_FALSE(layer_state_is(1)); + EXPECT_FALSE(is_layer_locked(1)); + VERIFY_AND_CLEAR(driver); +} diff --git a/tests/test_common/keycode_table.cpp b/tests/test_common/keycode_table.cpp index a520dd3f2bf..ae1a9edcd0f 100644 --- a/tests/test_common/keycode_table.cpp +++ b/tests/test_common/keycode_table.cpp @@ -699,6 +699,7 @@ std::map KEYCODE_ID_TABLE = { {QK_TRI_LAYER_UPPER, "QK_TRI_LAYER_UPPER"}, {QK_REPEAT_KEY, "QK_REPEAT_KEY"}, {QK_ALT_REPEAT_KEY, "QK_ALT_REPEAT_KEY"}, + {QK_LAYER_LOCK, "QK_LAYER_LOCK"}, {QK_KB_0, "QK_KB_0"}, {QK_KB_1, "QK_KB_1"}, {QK_KB_2, "QK_KB_2"}, From c7a04bd9305c337e9190d5ebdd368c4af49adc43 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Thu, 21 Nov 2024 03:54:01 -0800 Subject: [PATCH 053/365] Bring supported STM32F4 configs in line with F4x1 (#24413) Co-authored-by: Sergey Vlasov --- .../GENERIC_STM32_F405XG/configs/config.h | 10 ++ .../GENERIC_STM32_F407XE/configs/config.h | 10 ++ .../GENERIC_STM32_F446XE/configs/config.h | 10 ++ .../chibios/boards/common/ld/STM32F401xC.ld | 5 +- .../boards/common/ld/STM32F401xC_tinyuf2.ld | 5 +- .../chibios/boards/common/ld/STM32F401xE.ld | 5 +- .../boards/common/ld/STM32F401xE_tinyuf2.ld | 5 +- .../chibios/boards/common/ld/STM32F405xG.ld | 91 ++---------------- .../boards/common/ld/STM32F405xG_tinyuf2.ld | 94 ++----------------- .../chibios/boards/common/ld/STM32F407xE.ld | 13 +++ .../boards/common/ld/STM32F407xE_tinyuf2.ld | 13 +++ .../chibios/boards/common/ld/STM32F411xC.ld | 5 +- .../boards/common/ld/STM32F411xC_tinyuf2.ld | 5 +- .../chibios/boards/common/ld/STM32F411xE.ld | 5 +- .../boards/common/ld/STM32F411xE_tinyuf2.ld | 5 +- .../chibios/boards/common/ld/STM32F446xE.ld | 13 +++ .../boards/common/ld/STM32F446xE_tinyuf2.ld | 13 +++ .../boards/common/ld/stm32f4xx_common.ld | 11 +-- .../common/ld/stm32f4xx_tinyuf2_common.ld | 12 +-- 19 files changed, 142 insertions(+), 188 deletions(-) create mode 100644 platforms/chibios/boards/common/ld/STM32F407xE.ld create mode 100644 platforms/chibios/boards/common/ld/STM32F407xE_tinyuf2.ld create mode 100644 platforms/chibios/boards/common/ld/STM32F446xE.ld create mode 100644 platforms/chibios/boards/common/ld/STM32F446xE_tinyuf2.ld diff --git a/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/config.h b/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/config.h index 90a41326a16..5333a919a0b 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/config.h +++ b/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/config.h @@ -21,3 +21,13 @@ #ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP # define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE #endif + +#ifdef WEAR_LEVELING_EMBEDDED_FLASH +# ifndef WEAR_LEVELING_EFL_FIRST_SECTOR +# ifdef BOOTLOADER_TINYUF2 +# define WEAR_LEVELING_EFL_FIRST_SECTOR 3 +# else +# define WEAR_LEVELING_EFL_FIRST_SECTOR 1 +# endif +# endif +#endif diff --git a/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/config.h b/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/config.h index 90a41326a16..5333a919a0b 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/config.h +++ b/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/config.h @@ -21,3 +21,13 @@ #ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP # define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE #endif + +#ifdef WEAR_LEVELING_EMBEDDED_FLASH +# ifndef WEAR_LEVELING_EFL_FIRST_SECTOR +# ifdef BOOTLOADER_TINYUF2 +# define WEAR_LEVELING_EFL_FIRST_SECTOR 3 +# else +# define WEAR_LEVELING_EFL_FIRST_SECTOR 1 +# endif +# endif +#endif diff --git a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/config.h b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/config.h index cbb98f90980..362327efded 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/config.h +++ b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/config.h @@ -17,3 +17,13 @@ #ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP # define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE #endif + +#ifdef WEAR_LEVELING_EMBEDDED_FLASH +# ifndef WEAR_LEVELING_EFL_FIRST_SECTOR +# ifdef BOOTLOADER_TINYUF2 +# define WEAR_LEVELING_EFL_FIRST_SECTOR 3 +# else +# define WEAR_LEVELING_EFL_FIRST_SECTOR 1 +# endif +# endif +#endif diff --git a/platforms/chibios/boards/common/ld/STM32F401xC.ld b/platforms/chibios/boards/common/ld/STM32F401xC.ld index 8bc1cda09c9..64f019706fa 100644 --- a/platforms/chibios/boards/common/ld/STM32F401xC.ld +++ b/platforms/chibios/boards/common/ld/STM32F401xC.ld @@ -5,6 +5,9 @@ */ f4xx_flash_size = 256k; -f4xx_ram_size = 64k; +f4xx_ram1_size = 64k; +f4xx_ram2_size = 0; +f4xx_ram4_size = 0; +f4xx_ram5_size = 0; INCLUDE stm32f4xx_common.ld diff --git a/platforms/chibios/boards/common/ld/STM32F401xC_tinyuf2.ld b/platforms/chibios/boards/common/ld/STM32F401xC_tinyuf2.ld index 9e0306bde85..05aa51917f6 100644 --- a/platforms/chibios/boards/common/ld/STM32F401xC_tinyuf2.ld +++ b/platforms/chibios/boards/common/ld/STM32F401xC_tinyuf2.ld @@ -5,6 +5,9 @@ */ f4xx_flash_size = 256k; -f4xx_ram_size = 64k; +f4xx_ram1_size = 64k; +f4xx_ram2_size = 0; +f4xx_ram4_size = 0; +f4xx_ram5_size = 0; INCLUDE stm32f4xx_tinyuf2_common.ld diff --git a/platforms/chibios/boards/common/ld/STM32F401xE.ld b/platforms/chibios/boards/common/ld/STM32F401xE.ld index 3c2a93bd304..6c72c8f127f 100644 --- a/platforms/chibios/boards/common/ld/STM32F401xE.ld +++ b/platforms/chibios/boards/common/ld/STM32F401xE.ld @@ -5,6 +5,9 @@ */ f4xx_flash_size = 512k; -f4xx_ram_size = 96k; +f4xx_ram1_size = 96k; +f4xx_ram2_size = 0; +f4xx_ram4_size = 0; +f4xx_ram5_size = 0; INCLUDE stm32f4xx_common.ld diff --git a/platforms/chibios/boards/common/ld/STM32F401xE_tinyuf2.ld b/platforms/chibios/boards/common/ld/STM32F401xE_tinyuf2.ld index a7fa419cfbd..65272ec015f 100644 --- a/platforms/chibios/boards/common/ld/STM32F401xE_tinyuf2.ld +++ b/platforms/chibios/boards/common/ld/STM32F401xE_tinyuf2.ld @@ -5,6 +5,9 @@ */ f4xx_flash_size = 512k; -f4xx_ram_size = 96k; +f4xx_ram1_size = 96k; +f4xx_ram2_size = 0; +f4xx_ram4_size = 0; +f4xx_ram5_size = 0; INCLUDE stm32f4xx_tinyuf2_common.ld diff --git a/platforms/chibios/boards/common/ld/STM32F405xG.ld b/platforms/chibios/boards/common/ld/STM32F405xG.ld index b7d0baa2103..d9468e18c57 100644 --- a/platforms/chibios/boards/common/ld/STM32F405xG.ld +++ b/platforms/chibios/boards/common/ld/STM32F405xG.ld @@ -1,86 +1,13 @@ /* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/* - * STM32F405xG memory setup. - * Note: Use of ram1 and ram2 is mutually exclusive with use of ram0. + * Copyright 2006..2018 Giovanni Di Sirio + * Copyright 2022 QMK contributors + * SPDX-License-Identifier: GPL-2.0-or-later */ -MEMORY -{ - flash0 (rx) : org = 0x08000000, len = 16k /* Sector 0 - Init code as ROM bootloader assumes application starts here */ - flash1 (rx) : org = 0x08004000, len = 16k /* Sector 1 - Emulated eeprom */ - flash2 (rx) : org = 0x08008000, len = 1M - 32k /* Sector 2..6 - Rest of firmware */ - flash3 (rx) : org = 0x00000000, len = 0 - flash4 (rx) : org = 0x00000000, len = 0 - flash5 (rx) : org = 0x00000000, len = 0 - flash6 (rx) : org = 0x00000000, len = 0 - flash7 (rx) : org = 0x00000000, len = 0 - ram0 (wx) : org = 0x20000000, len = 128k /* SRAM1 + SRAM2 */ - ram1 (wx) : org = 0x20000000, len = 112k /* SRAM1 */ - ram2 (wx) : org = 0x2001C000, len = 16k /* SRAM2 */ - ram3 (wx) : org = 0x00000000, len = 0 - ram4 (wx) : org = 0x10000000, len = 64k /* CCM SRAM */ - ram5 (wx) : org = 0x40024000, len = 4k /* BCKP SRAM */ - ram6 (wx) : org = 0x00000000, len = 0 - ram7 (wx) : org = 0x00000000, len = 0 -} -/* For each data/text section two region are defined, a virtual region - and a load region (_LMA suffix).*/ +f4xx_flash_size = 1M; +f4xx_ram1_size = 112k; +f4xx_ram2_size = 16k; +f4xx_ram4_size = 64k; +f4xx_ram5_size = 4k; -/* Flash region to be used for exception vectors.*/ -REGION_ALIAS("VECTORS_FLASH", flash0); -REGION_ALIAS("VECTORS_FLASH_LMA", flash0); - -/* Flash region to be used for constructors and destructors.*/ -REGION_ALIAS("XTORS_FLASH", flash2); -REGION_ALIAS("XTORS_FLASH_LMA", flash2); - -/* Flash region to be used for code text.*/ -REGION_ALIAS("TEXT_FLASH", flash2); -REGION_ALIAS("TEXT_FLASH_LMA", flash2); - -/* Flash region to be used for read only data.*/ -REGION_ALIAS("RODATA_FLASH", flash2); -REGION_ALIAS("RODATA_FLASH_LMA", flash2); - -/* Flash region to be used for various.*/ -REGION_ALIAS("VARIOUS_FLASH", flash2); -REGION_ALIAS("VARIOUS_FLASH_LMA", flash2); - -/* Flash region to be used for RAM(n) initialization data.*/ -REGION_ALIAS("RAM_INIT_FLASH_LMA", flash2); - -/* RAM region to be used for Main stack. This stack accommodates the processing - of all exceptions and interrupts.*/ -REGION_ALIAS("MAIN_STACK_RAM", ram0); - -/* RAM region to be used for the process stack. This is the stack used by - the main() function.*/ -REGION_ALIAS("PROCESS_STACK_RAM", ram0); - -/* RAM region to be used for data segment.*/ -REGION_ALIAS("DATA_RAM", ram0); -REGION_ALIAS("DATA_RAM_LMA", flash2); - -/* RAM region to be used for BSS segment.*/ -REGION_ALIAS("BSS_RAM", ram0); - -/* RAM region to be used for the default heap.*/ -REGION_ALIAS("HEAP_RAM", ram0); - -/* Generic rules inclusion.*/ -INCLUDE rules.ld +INCLUDE stm32f4xx_common.ld diff --git a/platforms/chibios/boards/common/ld/STM32F405xG_tinyuf2.ld b/platforms/chibios/boards/common/ld/STM32F405xG_tinyuf2.ld index 1ee4aa1a06c..51c4b625ac8 100644 --- a/platforms/chibios/boards/common/ld/STM32F405xG_tinyuf2.ld +++ b/platforms/chibios/boards/common/ld/STM32F405xG_tinyuf2.ld @@ -1,89 +1,13 @@ /* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/* - * STM32F405xG memory setup. - * Note: Use of ram1 and ram2 is mutually exclusive with use of ram0. + * Copyright 2006..2018 Giovanni Di Sirio + * Copyright 2022 QMK contributors + * SPDX-License-Identifier: GPL-2.0-or-later */ -MEMORY -{ - flash0 (rx) : org = 0x08000000 + 64k, len = 1M - 64k /* tinyuf2 bootloader requires app to be located at 64k offset for this MCU */ - flash1 (rx) : org = 0x00000000, len = 0 - flash2 (rx) : org = 0x00000000, len = 0 - flash3 (rx) : org = 0x00000000, len = 0 - flash4 (rx) : org = 0x00000000, len = 0 - flash5 (rx) : org = 0x00000000, len = 0 - flash6 (rx) : org = 0x00000000, len = 0 - flash7 (rx) : org = 0x00000000, len = 0 - ram0 (wx) : org = 0x20000000, len = 128k /* SRAM1 + SRAM2 */ - ram1 (wx) : org = 0x20000000, len = 112k /* SRAM1 */ - ram2 (wx) : org = 0x2001C000, len = 16k /* SRAM2 */ - ram3 (wx) : org = 0x00000000, len = 0 - ram4 (wx) : org = 0x10000000, len = 64k /* CCM SRAM */ - ram5 (wx) : org = 0x40024000, len = 4k /* BCKP SRAM */ - ram6 (wx) : org = 0x00000000, len = 0 - ram7 (wx) : org = 0x00000000, len = 0 -} -/* For each data/text section two region are defined, a virtual region - and a load region (_LMA suffix).*/ +f4xx_flash_size = 1M; +f4xx_ram1_size = 112k; +f4xx_ram2_size = 16k; +f4xx_ram4_size = 64k; +f4xx_ram5_size = 4k; -/* Flash region to be used for exception vectors.*/ -REGION_ALIAS("VECTORS_FLASH", flash0); -REGION_ALIAS("VECTORS_FLASH_LMA", flash0); - -/* Flash region to be used for constructors and destructors.*/ -REGION_ALIAS("XTORS_FLASH", flash0); -REGION_ALIAS("XTORS_FLASH_LMA", flash0); - -/* Flash region to be used for code text.*/ -REGION_ALIAS("TEXT_FLASH", flash0); -REGION_ALIAS("TEXT_FLASH_LMA", flash0); - -/* Flash region to be used for read only data.*/ -REGION_ALIAS("RODATA_FLASH", flash0); -REGION_ALIAS("RODATA_FLASH_LMA", flash0); - -/* Flash region to be used for various.*/ -REGION_ALIAS("VARIOUS_FLASH", flash0); -REGION_ALIAS("VARIOUS_FLASH_LMA", flash0); - -/* Flash region to be used for RAM(n) initialization data.*/ -REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0); - -/* RAM region to be used for Main stack. This stack accommodates the processing - of all exceptions and interrupts.*/ -REGION_ALIAS("MAIN_STACK_RAM", ram0); - -/* RAM region to be used for the process stack. This is the stack used by - the main() function.*/ -REGION_ALIAS("PROCESS_STACK_RAM", ram0); - -/* RAM region to be used for data segment.*/ -REGION_ALIAS("DATA_RAM", ram0); -REGION_ALIAS("DATA_RAM_LMA", flash0); - -/* RAM region to be used for BSS segment.*/ -REGION_ALIAS("BSS_RAM", ram0); - -/* RAM region to be used for the default heap.*/ -REGION_ALIAS("HEAP_RAM", ram0); - -/* Generic rules inclusion.*/ -INCLUDE rules.ld - -/* TinyUF2 bootloader reset support */ -_board_dfu_dbl_tap = ORIGIN(ram0) + 64k - 4; /* this is based off the linker file for tinyuf2 */ +INCLUDE stm32f4xx_tinyuf2_common.ld diff --git a/platforms/chibios/boards/common/ld/STM32F407xE.ld b/platforms/chibios/boards/common/ld/STM32F407xE.ld new file mode 100644 index 00000000000..66dd9911634 --- /dev/null +++ b/platforms/chibios/boards/common/ld/STM32F407xE.ld @@ -0,0 +1,13 @@ +/* + * Copyright 2006..2018 Giovanni Di Sirio + * Copyright 2022 QMK contributors + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +f4xx_flash_size = 512k; +f4xx_ram1_size = 112k; +f4xx_ram2_size = 16k; +f4xx_ram4_size = 64k; +f4xx_ram5_size = 4k; + +INCLUDE stm32f4xx_common.ld diff --git a/platforms/chibios/boards/common/ld/STM32F407xE_tinyuf2.ld b/platforms/chibios/boards/common/ld/STM32F407xE_tinyuf2.ld new file mode 100644 index 00000000000..0cb7b89636d --- /dev/null +++ b/platforms/chibios/boards/common/ld/STM32F407xE_tinyuf2.ld @@ -0,0 +1,13 @@ +/* + * Copyright 2006..2018 Giovanni Di Sirio + * Copyright 2022 QMK contributors + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +f4xx_flash_size = 512k; +f4xx_ram1_size = 112k; +f4xx_ram2_size = 16k; +f4xx_ram4_size = 64k; +f4xx_ram5_size = 4k; + +INCLUDE stm32f4xx_tinyuf2_common.ld diff --git a/platforms/chibios/boards/common/ld/STM32F411xC.ld b/platforms/chibios/boards/common/ld/STM32F411xC.ld index 7827c9c7d2c..5e3f7e034bc 100644 --- a/platforms/chibios/boards/common/ld/STM32F411xC.ld +++ b/platforms/chibios/boards/common/ld/STM32F411xC.ld @@ -5,6 +5,9 @@ */ f4xx_flash_size = 256k; -f4xx_ram_size = 128k; +f4xx_ram1_size = 128k; +f4xx_ram2_size = 0; +f4xx_ram4_size = 0; +f4xx_ram5_size = 0; INCLUDE stm32f4xx_common.ld diff --git a/platforms/chibios/boards/common/ld/STM32F411xC_tinyuf2.ld b/platforms/chibios/boards/common/ld/STM32F411xC_tinyuf2.ld index 0367b49f8fc..63a33309fde 100644 --- a/platforms/chibios/boards/common/ld/STM32F411xC_tinyuf2.ld +++ b/platforms/chibios/boards/common/ld/STM32F411xC_tinyuf2.ld @@ -5,6 +5,9 @@ */ f4xx_flash_size = 256k; -f4xx_ram_size = 128k; +f4xx_ram1_size = 128k; +f4xx_ram2_size = 0; +f4xx_ram4_size = 0; +f4xx_ram5_size = 0; INCLUDE stm32f4xx_tinyuf2_common.ld diff --git a/platforms/chibios/boards/common/ld/STM32F411xE.ld b/platforms/chibios/boards/common/ld/STM32F411xE.ld index c621ede53a4..c798a775e99 100644 --- a/platforms/chibios/boards/common/ld/STM32F411xE.ld +++ b/platforms/chibios/boards/common/ld/STM32F411xE.ld @@ -5,6 +5,9 @@ */ f4xx_flash_size = 512k; -f4xx_ram_size = 128k; +f4xx_ram1_size = 128k; +f4xx_ram2_size = 0; +f4xx_ram4_size = 0; +f4xx_ram5_size = 0; INCLUDE stm32f4xx_common.ld diff --git a/platforms/chibios/boards/common/ld/STM32F411xE_tinyuf2.ld b/platforms/chibios/boards/common/ld/STM32F411xE_tinyuf2.ld index d982f7fb8f6..25253f55907 100644 --- a/platforms/chibios/boards/common/ld/STM32F411xE_tinyuf2.ld +++ b/platforms/chibios/boards/common/ld/STM32F411xE_tinyuf2.ld @@ -5,6 +5,9 @@ */ f4xx_flash_size = 512k; -f4xx_ram_size = 128k; +f4xx_ram1_size = 128k; +f4xx_ram2_size = 0; +f4xx_ram4_size = 0; +f4xx_ram5_size = 0; INCLUDE stm32f4xx_tinyuf2_common.ld diff --git a/platforms/chibios/boards/common/ld/STM32F446xE.ld b/platforms/chibios/boards/common/ld/STM32F446xE.ld new file mode 100644 index 00000000000..6e6c5dd3a4e --- /dev/null +++ b/platforms/chibios/boards/common/ld/STM32F446xE.ld @@ -0,0 +1,13 @@ +/* + * Copyright 2006..2018 Giovanni Di Sirio + * Copyright 2022 QMK contributors + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +f4xx_flash_size = 512k; +f4xx_ram1_size = 112k; +f4xx_ram2_size = 16k; +f4xx_ram4_size = 0; +f4xx_ram5_size = 4k; + +INCLUDE stm32f4xx_common.ld diff --git a/platforms/chibios/boards/common/ld/STM32F446xE_tinyuf2.ld b/platforms/chibios/boards/common/ld/STM32F446xE_tinyuf2.ld new file mode 100644 index 00000000000..676ffbdf0c0 --- /dev/null +++ b/platforms/chibios/boards/common/ld/STM32F446xE_tinyuf2.ld @@ -0,0 +1,13 @@ +/* +* Copyright 2006..2018 Giovanni Di Sirio + * Copyright 2022 QMK contributors + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +f4xx_flash_size = 512k; +f4xx_ram1_size = 112k; +f4xx_ram2_size = 16k; +f4xx_ram4_size = 0; +f4xx_ram5_size = 4k; + +INCLUDE stm32f4xx_tinyuf2_common.ld diff --git a/platforms/chibios/boards/common/ld/stm32f4xx_common.ld b/platforms/chibios/boards/common/ld/stm32f4xx_common.ld index 1ddf7e96bc9..d5c7c736264 100644 --- a/platforms/chibios/boards/common/ld/stm32f4xx_common.ld +++ b/platforms/chibios/boards/common/ld/stm32f4xx_common.ld @@ -24,12 +24,12 @@ MEMORY flash5 (rx) : org = 0x00000000, len = 0 flash6 (rx) : org = 0x00000000, len = 0 flash7 (rx) : org = 0x00000000, len = 0 - ram0 (wx) : org = 0x20000000, len = f4xx_ram_size - ram1 (wx) : org = 0x00000000, len = 0 - ram2 (wx) : org = 0x00000000, len = 0 + ram0 (wx) : org = 0x20000000, len = f4xx_ram1_size + f4xx_ram2_size /* SRAM1 + SRAM2 */ + ram1 (wx) : org = 0x20000000, len = f4xx_ram1_size /* SRAM1 */ + ram2 (wx) : org = 0x20000000 + f4xx_ram1_size, len = f4xx_ram2_size /* SRAM2 */ ram3 (wx) : org = 0x00000000, len = 0 - ram4 (wx) : org = 0x00000000, len = 0 - ram5 (wx) : org = 0x00000000, len = 0 + ram4 (wx) : org = 0x10000000, len = f4xx_ram4_size /* CCM SRAM */ + ram5 (wx) : org = 0x40024000, len = f4xx_ram5_size /* BCKP SRAM */ ram6 (wx) : org = 0x00000000, len = 0 ram7 (wx) : org = 0x00000000, len = 0 } @@ -80,4 +80,3 @@ REGION_ALIAS("HEAP_RAM", ram0); /* Generic rules inclusion.*/ INCLUDE rules.ld - diff --git a/platforms/chibios/boards/common/ld/stm32f4xx_tinyuf2_common.ld b/platforms/chibios/boards/common/ld/stm32f4xx_tinyuf2_common.ld index ab03a9e6833..d995bd014a3 100644 --- a/platforms/chibios/boards/common/ld/stm32f4xx_tinyuf2_common.ld +++ b/platforms/chibios/boards/common/ld/stm32f4xx_tinyuf2_common.ld @@ -27,12 +27,12 @@ MEMORY flash5 (rx) : org = 0x00000000, len = 0 flash6 (rx) : org = 0x00000000, len = 0 flash7 (rx) : org = 0x00000000, len = 0 - ram0 (wx) : org = 0x20000000, len = f4xx_ram_size - ram1 (wx) : org = 0x00000000, len = 0 - ram2 (wx) : org = 0x00000000, len = 0 + ram0 (wx) : org = 0x20000000, len = f4xx_ram1_size + f4xx_ram2_size /* SRAM1 + SRAM2 */ + ram1 (wx) : org = 0x20000000, len = f4xx_ram1_size /* SRAM1 */ + ram2 (wx) : org = 0x20000000 + f4xx_ram1_size, len = f4xx_ram2_size /* SRAM2 */ ram3 (wx) : org = 0x00000000, len = 0 - ram4 (wx) : org = 0x00000000, len = 0 - ram5 (wx) : org = 0x00000000, len = 0 + ram4 (wx) : org = 0x10000000, len = f4xx_ram4_size /* CCM SRAM */ + ram5 (wx) : org = 0x40024000, len = f4xx_ram5_size /* BCKP SRAM */ ram6 (wx) : org = 0x00000000, len = 0 ram7 (wx) : org = 0x00000000, len = 0 } @@ -86,5 +86,3 @@ INCLUDE rules.ld /* TinyUF2 bootloader reset support */ _board_dfu_dbl_tap = ORIGIN(ram0) + 64k - 4; /* this is based off the linker file for tinyuf2 */ - - From 65a8a5ff69289a5cb8fce6555b774573e4452a79 Mon Sep 17 00:00:00 2001 From: Ryan Date: Thu, 21 Nov 2024 22:57:36 +1100 Subject: [PATCH 054/365] `qmk find`: expand operator support (#24468) --- docs/cli_commands.md | 18 ++++++---- lib/python/qmk/search.py | 40 +++++++++++++++++------ lib/python/qmk/tests/test_cli_commands.py | 2 +- 3 files changed, 43 insertions(+), 17 deletions(-) diff --git a/docs/cli_commands.md b/docs/cli_commands.md index 7d74d8e6177..4cd5ae98c39 100644 --- a/docs/cli_commands.md +++ b/docs/cli_commands.md @@ -153,20 +153,26 @@ qmk cd This command allows for searching through keyboard/keymap targets, filtering by specific criteria. `info.json` and `rules.mk` files contribute to the search data, as well as keymap configurations, and the results can be filtered using "dotty" syntax matching the overall `info.json` file format. -For example, one could search for all keyboards using STM32F411: +For example, one could search for all keyboards powered by the STM32F411 microcontroller: ``` -qmk find -f 'processor=STM32F411' +qmk find -f 'processor==STM32F411' ``` -...and one can further constrain the list to keyboards using STM32F411 as well as rgb_matrix support: +The list can be further constrained by passing additional filter expressions: ``` -qmk find -f 'processor=STM32F411' -f 'features.rgb_matrix=true' +qmk find -f 'processor==STM32F411' -f 'features.rgb_matrix==true' ``` -The following filter expressions are also supported: +The following filter expressions are supported: + - `key == value`: Match targets where `key` is equal to `value`. May include wildcards such as `*` and `?`. + - `key != value`: Match targets where `key` is not `value`. May include wildcards such as `*` and `?`. + - `key < value`: Match targets where `key` is a number less than `value`. + - `key > value`: Match targets where `key` is a number greater than `value`. + - `key <= value`: Match targets where `key` is a number less than or equal to `value`. + - `key >= value`: Match targets where `key` is a number greater than or equal to `value`. - `exists(key)`: Match targets where `key` is present. - `absent(key)`: Match targets where `key` is not present. - `contains(key, value)`: Match targets where `key` contains `value`. Can be used for strings, arrays and object keys. @@ -175,7 +181,7 @@ The following filter expressions are also supported: You can also list arbitrary values for each matched target with `--print`: ``` -qmk find -f 'processor=STM32F411' -p 'keyboard_name' -p 'features.rgb_matrix' +qmk find -f 'processor==STM32F411' -p 'keyboard_name' -p 'features.rgb_matrix' ``` **Usage**: diff --git a/lib/python/qmk/search.py b/lib/python/qmk/search.py index 6517bb4951d..c7bce344ad1 100644 --- a/lib/python/qmk/search.py +++ b/lib/python/qmk/search.py @@ -239,11 +239,11 @@ def _filter_keymap_targets(target_list: List[KeyboardKeymapDesc], filters: List[ valid_targets = parallel_map(_load_keymap_info, target_list) function_re = re.compile(r'^(?P[a-zA-Z]+)\((?P[a-zA-Z0-9_\.]+)(,\s*(?P[^#]+))?\)$') - equals_re = re.compile(r'^(?P[a-zA-Z0-9_\.]+)\s*=\s*(?P[^#]+)$') + comparison_re = re.compile(r'^(?P[a-zA-Z0-9_\.]+)\s*(?P[\<\>\!=]=|\<|\>)\s*(?P[^#]+)$') for filter_expr in filters: function_match = function_re.match(filter_expr) - equals_match = equals_re.match(filter_expr) + comparison_match = comparison_re.match(filter_expr) if function_match is not None: func_name = function_match.group('function').lower() @@ -259,23 +259,43 @@ def _filter_keymap_targets(target_list: List[KeyboardKeymapDesc], filters: List[ value_str = f", {{fg_cyan}}{value}{{fg_reset}}" if value is not None else "" cli.log.info(f'Filtering on condition: {{fg_green}}{func_name}{{fg_reset}}({{fg_cyan}}{key}{{fg_reset}}{value_str})...') - elif equals_match is not None: - key = equals_match.group('key') - value = equals_match.group('value') - cli.log.info(f'Filtering on condition: {{fg_cyan}}{key}{{fg_reset}} == {{fg_cyan}}{value}{{fg_reset}}...') + elif comparison_match is not None: + key = comparison_match.group('key') + op = comparison_match.group('op') + value = comparison_match.group('value') + cli.log.info(f'Filtering on condition: {{fg_cyan}}{key}{{fg_reset}} {op} {{fg_cyan}}{value}{{fg_reset}}...') - def _make_filter(k, v): + def _make_filter(k, o, v): expr = fnmatch.translate(v) rule = re.compile(f'^{expr}$', re.IGNORECASE) def f(e: KeyboardKeymapDesc): lhs = e.dotty.get(k) - lhs = str(False if lhs is None else lhs) - return rule.search(lhs) is not None + rhs = v + + if o in ['<', '>', '<=', '>=']: + lhs = int(False if lhs is None else lhs) + rhs = int(rhs) + + if o == '<': + return lhs < rhs + elif o == '>': + return lhs > rhs + elif o == '<=': + return lhs <= rhs + elif o == '>=': + return lhs >= rhs + else: + lhs = str(False if lhs is None else lhs) + + if o == '!=': + return rule.search(lhs) is None + elif o == '==': + return rule.search(lhs) is not None return f - valid_targets = filter(_make_filter(key, value), valid_targets) + valid_targets = filter(_make_filter(key, op, value), valid_targets) else: cli.log.warning(f'Unrecognized filter expression: {filter_expr}') continue diff --git a/lib/python/qmk/tests/test_cli_commands.py b/lib/python/qmk/tests/test_cli_commands.py index f18bd12f820..b10fd8d19d5 100644 --- a/lib/python/qmk/tests/test_cli_commands.py +++ b/lib/python/qmk/tests/test_cli_commands.py @@ -390,7 +390,7 @@ def test_find_contains(): def test_find_multiple_conditions(): # this is intended to match at least 'crkbd/rev1' result = check_subcommand( - 'find', '-f', 'exists(rgb_matrix.split_count)', '-f', 'contains(matrix_pins.cols, B1)', '-f', 'length(matrix_pins.cols, 6)', '-f', 'absent(eeprom.driver)', '-f', 'ws2812.pin=D3', '-p', 'rgb_matrix.split_count', '-p', 'matrix_pins.cols', '-p', + 'find', '-f', 'exists(rgb_matrix.split_count)', '-f', 'contains(matrix_pins.cols, B1)', '-f', 'length(matrix_pins.cols, 6)', '-f', 'absent(eeprom.driver)', '-f', 'ws2812.pin == D3', '-p', 'rgb_matrix.split_count', '-p', 'matrix_pins.cols', '-p', 'eeprom.driver', '-p', 'ws2812.pin' ) check_returncode(result) From 968a611476c7add787f737be9521d2968d1f4451 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 21 Nov 2024 13:02:49 +0000 Subject: [PATCH 055/365] Review fixes for layer lock feature (#24627) --- quantum/keyboard.c | 6 +-- quantum/layer_lock.c | 29 ++++++++++-- quantum/layer_lock.h | 45 ++---------------- quantum/process_keycode/process_layer_lock.c | 17 +------ quantum/process_keycode/process_layer_lock.h | 48 -------------------- quantum/quantum.c | 2 +- quantum/quantum.h | 2 +- 7 files changed, 35 insertions(+), 114 deletions(-) diff --git a/quantum/keyboard.c b/quantum/keyboard.c index 8db81a4b391..d7836cf36e0 100644 --- a/quantum/keyboard.c +++ b/quantum/keyboard.c @@ -140,9 +140,9 @@ along with this program. If not, see . #ifdef OS_DETECTION_ENABLE # include "os_detection.h" #endif -#if defined(LAYER_LOCK_ENABLE) && LAYER_LOCK_IDLE_TIMEOUT > 0 +#ifdef LAYER_LOCK_ENABLE # include "layer_lock.h" -#endif // LAYER_LOCK_ENABLE +#endif static uint32_t last_input_modification_time = 0; uint32_t last_input_activity_time(void) { @@ -659,7 +659,7 @@ void quantum_task(void) { secure_task(); #endif -#if defined(LAYER_LOCK_ENABLE) && LAYER_LOCK_IDLE_TIMEOUT > 0 +#ifdef LAYER_LOCK_ENABLE layer_lock_task(); #endif } diff --git a/quantum/layer_lock.c b/quantum/layer_lock.c index 9ee3c307dca..9fc84bcfca1 100644 --- a/quantum/layer_lock.c +++ b/quantum/layer_lock.c @@ -23,12 +23,18 @@ layer_state_t locked_layers = 0; # if defined(LAYER_LOCK_IDLE_TIMEOUT) && LAYER_LOCK_IDLE_TIMEOUT > 0 uint32_t layer_lock_timer = 0; -void layer_lock_task(void) { +void layer_lock_timeout_task(void) { if (locked_layers && timer_elapsed32(layer_lock_timer) > LAYER_LOCK_IDLE_TIMEOUT) { layer_lock_all_off(); layer_lock_timer = timer_read32(); } } +void layer_lock_activity_trigger(void) { + layer_lock_timer = timer_read32(); +} +# else +void layer_lock_timeout_task(void) {} +void layer_lock_activity_trigger(void) {} # endif // LAYER_LOCK_IDLE_TIMEOUT > 0 bool is_layer_locked(uint8_t layer) { @@ -44,9 +50,7 @@ void layer_lock_invert(uint8_t layer) { } # endif // NO_ACTION_ONESHOT layer_on(layer); -# if defined(LAYER_LOCK_IDLE_TIMEOUT) && LAYER_LOCK_IDLE_TIMEOUT > 0 - layer_lock_timer = timer_read32(); -# endif // LAYER_LOCK_IDLE_TIMEOUT > 0 + layer_lock_activity_trigger(); } else { // Layer is being unlocked. layer_off(layer); } @@ -72,10 +76,25 @@ void layer_lock_all_off(void) { layer_lock_set_kb(locked_layers); } +#else // NO_ACTION_LAYER +bool is_layer_locked(uint8_t layer) { + return false; +} +void layer_lock_on(uint8_t layer) {} +void layer_lock_off(uint8_t layer) {} +void layer_lock_all_off(void) {} +void layer_lock_invert(uint8_t layer) {} +void layer_lock_timeout_task(void) {} +void layer_lock_activity_trigger(void) {} +#endif // NO_ACTION_LAYER + __attribute__((weak)) bool layer_lock_set_kb(layer_state_t locked_layers) { return layer_lock_set_user(locked_layers); } __attribute__((weak)) bool layer_lock_set_user(layer_state_t locked_layers) { return true; } -#endif // NO_ACTION_LAYER + +void layer_lock_task(void) { + layer_lock_timeout_task(); +} diff --git a/quantum/layer_lock.h b/quantum/layer_lock.h index 6d7285da2a6..97f6c60d70d 100644 --- a/quantum/layer_lock.h +++ b/quantum/layer_lock.h @@ -49,13 +49,6 @@ * * #define LAYER_LOCK_IDLE_TIMEOUT 60000 // Turn off after 60 seconds. * - * and call `layer_lock_task()` from your `matrix_scan_user()` in keymap.c: - * - * void matrix_scan_user(void) { - * layer_lock_task(); - * // Other tasks... - * } - * * For full documentation, see * */ @@ -67,24 +60,6 @@ #include "action_layer.h" #include "action_util.h" -/** - * Handler function for Layer Lock. - * - * In your keymap, define a custom keycode to use for Layer Lock. Then handle - * Layer Lock from your `process_record_user` function by calling - * `process_layer_lock`, passing your custom keycode for the `lock_keycode` arg: - * - * #include "features/layer_lock.h" - * - * bool process_record_user(uint16_t keycode, keyrecord_t* record) { - * if (!process_layer_lock(keycode, record, LLOCK)) { return false; } - * // Your macros ... - * - * return true; - * } - */ - -#ifndef NO_ACTION_LAYER /** Returns true if `layer` is currently locked. */ bool is_layer_locked(uint8_t layer); @@ -116,20 +91,8 @@ void layer_lock_invert(uint8_t layer); bool layer_lock_set_kb(layer_state_t locked_layers); bool layer_lock_set_user(layer_state_t locked_layers); +/** Handle various background tasks */ void layer_lock_task(void); -#else // NO_ACTION_LAYER -static inline bool is_layer_locked(uint8_t layer) { - return false; -} -static inline void layer_lock_on(uint8_t layer) {} -static inline void layer_lock_off(uint8_t layer) {} -static inline void layer_lock_all_off(void) {} -static inline void layer_lock_invert(uint8_t layer) {} -static inline bool layer_lock_set_kb(layer_state_t locked_layers) { - return true; -} -static inline bool layer_lock_set_user(layer_state_t locked_layers) { - return true; -} -static inline void layer_lock_task(void) {} -#endif // NO_ACTION_LAYER + +/** Update any configured timeouts */ +void layer_lock_activity_trigger(void); diff --git a/quantum/process_keycode/process_layer_lock.c b/quantum/process_keycode/process_layer_lock.c index 1e36d8844e8..6946d3c8862 100644 --- a/quantum/process_keycode/process_layer_lock.c +++ b/quantum/process_keycode/process_layer_lock.c @@ -12,14 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -/** - * @file layer_lock.c - * @brief Layer Lock implementation - * - * For full documentation, see - * - */ - #include "layer_lock.h" #include "process_layer_lock.h" #include "quantum_keycodes.h" @@ -27,12 +19,9 @@ // The current lock state. The kth bit is on if layer k is locked. extern layer_state_t locked_layers; -#if defined(LAYER_LOCK_IDLE_TIMEOUT) && LAYER_LOCK_IDLE_TIMEOUT > 0 -extern uint32_t layer_lock_timer; -#endif // Handles an event on an `MO` or `TT` layer switch key. -static bool handle_mo_or_tt(uint8_t layer, keyrecord_t* record) { +static inline bool handle_mo_or_tt(uint8_t layer, keyrecord_t* record) { if (is_layer_locked(layer)) { if (record->event.pressed) { // On press, unlock the layer. layer_lock_invert(layer); @@ -44,9 +33,7 @@ static bool handle_mo_or_tt(uint8_t layer, keyrecord_t* record) { bool process_layer_lock(uint16_t keycode, keyrecord_t* record) { #ifndef NO_ACTION_LAYER -# if defined(LAYER_LOCK_IDLE_TIMEOUT) && LAYER_LOCK_IDLE_TIMEOUT > 0 - layer_lock_timer = timer_read32(); -# endif // LAYER_LOCK_IDLE_TIMEOUT > 0 + layer_lock_activity_trigger(); // The intention is that locked layers remain on. If something outside of // this feature turned any locked layers off, unlock them. diff --git a/quantum/process_keycode/process_layer_lock.h b/quantum/process_keycode/process_layer_lock.h index b54c0f6f106..6795110029a 100644 --- a/quantum/process_keycode/process_layer_lock.h +++ b/quantum/process_keycode/process_layer_lock.h @@ -12,54 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -/** - * @file layer_lock.h - * @brief Layer Lock, a key to stay in the current layer. - * - * Overview - * -------- - * - * Layers are often accessed by holding a button, e.g. with a momentary layer - * switch `MO(layer)` or layer tap `LT(layer, key)` key. But you may sometimes - * want to "lock" or "toggle" the layer so that it stays on without having to - * hold down a button. One way to do that is with a tap-toggle `TT` layer key, - * but here is an alternative. - * - * This library implements a "Layer Lock key". When tapped, it "locks" the - * highest layer to stay active, assuming the layer was activated by one of the - * following keys: - * - * * `MO(layer)` momentary layer switch - * * `LT(layer, key)` layer tap - * * `OSL(layer)` one-shot layer - * * `TT(layer)` layer tap toggle - * * `LM(layer, mod)` layer-mod key (the layer is locked, but not the mods) - * - * Tapping the Layer Lock key again unlocks and turns off the layer. - * - * @note When a layer is "locked", other layer keys such as `TO(layer)` or - * manually calling `layer_off(layer)` will override and unlock the layer. - * - * Configuration - * ------------- - * - * Optionally, a timeout may be defined so that Layer Lock disables - * automatically if not keys are pressed for `LAYER_LOCK_IDLE_TIMEOUT` - * milliseconds. Define `LAYER_LOCK_IDLE_TIMEOUT` in your config.h, for instance - * - * #define LAYER_LOCK_IDLE_TIMEOUT 60000 // Turn off after 60 seconds. - * - * and call `layer_lock_task()` from your `matrix_scan_user()` in keymap.c: - * - * void matrix_scan_user(void) { - * layer_lock_task(); - * // Other tasks... - * } - * - * For full documentation, see - * - */ - #pragma once #include diff --git a/quantum/quantum.c b/quantum/quantum.c index 811ad2e7152..4aef26a6a56 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -78,7 +78,7 @@ #ifdef LAYER_LOCK_ENABLE # include "process_layer_lock.h" -#endif // LAYER_LOCK_ENABLE +#endif #ifdef AUDIO_ENABLE # ifndef GOODBYE_SONG diff --git a/quantum/quantum.h b/quantum/quantum.h index 71cf900f2de..9db88a54d4b 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h @@ -242,7 +242,7 @@ extern layer_state_t layer_state; #ifdef LAYER_LOCK_ENABLE # include "layer_lock.h" -#endif // LAYER_LOCK_ENABLE +#endif void set_single_default_layer(uint8_t default_layer); void set_single_persistent_default_layer(uint8_t default_layer); From 57be4871616ee9a8fe042f6186010d436ec7d4b1 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 21 Nov 2024 18:46:36 +0000 Subject: [PATCH 056/365] Fix rendering of `reference_configurator_support.md` (#24629) --- docs/reference_configurator_support.md | 38 +++++++++++++------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/docs/reference_configurator_support.md b/docs/reference_configurator_support.md index dffed5c0c34..d0824c7705e 100644 --- a/docs/reference_configurator_support.md +++ b/docs/reference_configurator_support.md @@ -156,25 +156,25 @@ For more on the `info.json` files, see [`info.json` Format](reference_info_json) The Configurator's API uses the layout macro and the JSON file we've given it to create a visual representation of the keyboard that has each visual object tied to a specific key, in sequence: -key in layout macro | JSON object used -:---: | :---- -k00 | {"label":"Num Lock", "x":0, "y":0} -k01 | {"label":"/", "x":1, "y":0} -k02 | {"label":"*", "x":2, "y":0} -k03 | {"label":"-", "x":3, "y":0} -k10 | {"label":"7", "x":0, "y":1} -k11 | {"label":"8", "x":1, "y":1} -k12 | {"label":"9", "x":2, "y":1} -k13 | {"label":"+", "x":3, "y":1, "h":2} -k20 | {"label":"4", "x":0, "y":2} -k21 | {"label":"5", "x":1, "y":2} -k22 | {"label":"6", "x":2, "y":2} -k30 | {"label":"1", "x":0, "y":3} -k31 | {"label":"2", "x":1, "y":3} -k32 | {"label":"3", "x":2, "y":3} -k33 | {"label":"Enter", "x":3, "y":3, "h":2} -k40 | {"label":"0", "x":0, "y":4, "w":2} -k42 | {"label":".", "x":2, "y":4} +| Key in layout macro | JSON object used | +| ------------------- | ---------------------------------------- | +| k00 | `{"label":"Num Lock", "x":0, "y":0}` | +| k01 | `{"label":"/", "x":1, "y":0}` | +| k02 | `{"label":"*", "x":2, "y":0}` | +| k03 | `{"label":"-", "x":3, "y":0}` | +| k10 | `{"label":"7", "x":0, "y":1}` | +| k11 | `{"label":"8", "x":1, "y":1}` | +| k12 | `{"label":"9", "x":2, "y":1}` | +| k13 | `{"label":"+", "x":3, "y":1, "h":2}` | +| k20 | `{"label":"4", "x":0, "y":2}` | +| k21 | `{"label":"5", "x":1, "y":2}` | +| k22 | `{"label":"6", "x":2, "y":2}` | +| k30 | `{"label":"1", "x":0, "y":3}` | +| k31 | `{"label":"2", "x":1, "y":3}` | +| k32 | `{"label":"3", "x":2, "y":3}` | +| k33 | `{"label":"Enter", "x":3, "y":3, "h":2}` | +| k40 | `{"label":"0", "x":0, "y":4, "w":2}` | +| k42 | `{"label":".", "x":2, "y":4}` | When a user selects the top-left key in the Configurator, and assigns Num Lock to it, the Configurator builds a keymap file with `KC_NUM` as the first key, and so on as the keymap is built. The `label` keys are not used; they are only for the user's reference in identifying specific keys when debugging the `info.json` file. From 4a5bae51cd1f2cbca0ab8c8ae6e15262f8dc5a68 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sat, 23 Nov 2024 10:09:34 +0000 Subject: [PATCH 057/365] [Feature] Add keycode PDF(layer) to set the default layer in EEPROM (#24630) * [Feature] Add keycode PDF(layer) to set the default layer in EEPROM (#21881) * Apply suggestions from code review Co-authored-by: Nick Brassel --------- Co-authored-by: Nebuleon <2391500+Nebuleon@users.noreply.github.com> Co-authored-by: Nick Brassel --- builddefs/common_features.mk | 1 + data/constants/keycodes/keycodes_0.0.6.hjson | 7 ++++ docs/feature_layers.md | 3 +- docs/keycodes.md | 3 +- keyboards/zsa/moonlander/moonlander.c | 1 + keyboards/zsa/planck_ez/planck_ez.c | 1 + quantum/keycodes.h | 3 ++ .../pointing_device_auto_mouse.c | 2 ++ quantum/process_keycode/process_autocorrect.c | 1 + .../process_keycode/process_default_layer.c | 32 +++++++++++++++++++ .../process_keycode/process_default_layer.h | 27 ++++++++++++++++ quantum/quantum.c | 7 ++++ quantum/quantum_keycodes.h | 4 +++ tests/test_common/keycode_util.cpp | 2 ++ 14 files changed, 92 insertions(+), 2 deletions(-) create mode 100644 quantum/process_keycode/process_default_layer.c create mode 100644 quantum/process_keycode/process_default_layer.h diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index 86ced309029..7bfd1436e71 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -28,6 +28,7 @@ QUANTUM_SRC += \ $(QUANTUM_DIR)/sync_timer.c \ $(QUANTUM_DIR)/logging/debug.c \ $(QUANTUM_DIR)/logging/sendchar.c \ + $(QUANTUM_DIR)/process_keycode/process_default_layer.c \ VPATH += $(QUANTUM_DIR)/logging # Fall back to lib/printf if there is no platform provided print diff --git a/data/constants/keycodes/keycodes_0.0.6.hjson b/data/constants/keycodes/keycodes_0.0.6.hjson index e69de29bb2d..f03ef747a49 100644 --- a/data/constants/keycodes/keycodes_0.0.6.hjson +++ b/data/constants/keycodes/keycodes_0.0.6.hjson @@ -0,0 +1,7 @@ +{ + "ranges": { + "0x52E0/0x001F": { + "define": "QK_PERSISTENT_DEF_LAYER" + } + } +} diff --git a/docs/feature_layers.md b/docs/feature_layers.md index 45f02fe536d..da6a28bd882 100644 --- a/docs/feature_layers.md +++ b/docs/feature_layers.md @@ -8,7 +8,8 @@ For a detailed explanation of how the layer stack works, checkout [Keymap Overvi These functions allow you to activate layers in various ways. Note that layers are not generally independent layouts -- multiple layers can be activated at once, and it's typical for layers to use `KC_TRNS` to allow keypresses to pass through to lower layers. When using momentary layer switching with MO(), LM(), TT(), or LT(), make sure to leave the key on the above layers transparent or it may not work as intended. -* `DF(layer)` - switches the default layer. The default layer is the always-active base layer that other layers stack on top of. See below for more about the default layer. This might be used to switch from QWERTY to Dvorak layout. (Note that this is a temporary switch that only persists until the keyboard loses power. To modify the default layer in a persistent way requires deeper customization, such as calling the `set_single_persistent_default_layer` function inside of [process_record_user](custom_quantum_functions#programming-the-behavior-of-any-keycode).) +* `DF(layer)` - switches the default layer. The default layer is the always-active base layer that other layers stack on top of. See below for more about the default layer. This might be used to switch from QWERTY to Dvorak layout. Note that this is a temporary switch that only persists until the keyboard loses power. +* `PDF(layer)` - sets a persistent default layer. This switch, which will last through a power loss, might be used to switch from QWERTY to Dvorak layout and only switch again when you want to. * `MO(layer)` - momentarily activates *layer*. As soon as you let go of the key, the layer is deactivated. * `LM(layer, mod)` - Momentarily activates *layer* (like `MO`), but with modifier(s) *mod* active. Only supports layers 0-15. The modifiers this keycode accept are prefixed with `MOD_`, not `KC_`. These modifiers can be combined using bitwise OR, e.g. `LM(_RAISE, MOD_LCTL | MOD_LALT)`. * `LT(layer, kc)` - momentarily activates *layer* when held, and sends *kc* when tapped. Only supports layers 0-15. diff --git a/docs/keycodes.md b/docs/keycodes.md index cae6418266a..cf170721c81 100644 --- a/docs/keycodes.md +++ b/docs/keycodes.md @@ -401,7 +401,8 @@ See also: [Layer Switching](feature_layers#switching-and-toggling-layers) |Key |Description | |----------------|----------------------------------------------------------------------------------| -|`DF(layer)` |Set the base (default) layer | +|`DF(layer)` |Set the base (default) layer until the keyboard loses power | +|`PDF(layer)` |Set the base (default) layer in EEPROM | |`MO(layer)` |Momentarily turn on `layer` when pressed (requires `KC_TRNS` on destination layer)| |`OSL(layer)` |Momentarily activates `layer` until a key is pressed. See [One Shot Keys](one_shot_keys) for details. | |`LM(layer, mod)`|Momentarily turn on `layer` (like MO) with `mod` active as well. Where `mod` is a mods_bit. Mods can be viewed [here](mod_tap). Example Implementation: `LM(LAYER_1, MOD_LALT)`| diff --git a/keyboards/zsa/moonlander/moonlander.c b/keyboards/zsa/moonlander/moonlander.c index 41b83fd9d09..999fcbe1dd4 100644 --- a/keyboards/zsa/moonlander/moonlander.c +++ b/keyboards/zsa/moonlander/moonlander.c @@ -275,6 +275,7 @@ bool music_mask_kb(uint16_t keycode) { case QK_TO ... QK_TO_MAX: case QK_MOMENTARY ... QK_MOMENTARY_MAX: case QK_DEF_LAYER ... QK_DEF_LAYER_MAX: + case QK_PERSISTENT_DEF_LAYER ... QK_PERSISTENT_DEF_LAYER_MAX: case QK_TOGGLE_LAYER ... QK_TOGGLE_LAYER_MAX: case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_LAYER_MAX: case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX: diff --git a/keyboards/zsa/planck_ez/planck_ez.c b/keyboards/zsa/planck_ez/planck_ez.c index a3f6c7362ed..ff82f43c668 100644 --- a/keyboards/zsa/planck_ez/planck_ez.c +++ b/keyboards/zsa/planck_ez/planck_ez.c @@ -237,6 +237,7 @@ bool music_mask_kb(uint16_t keycode) { case QK_TO ... QK_TO_MAX: case QK_MOMENTARY ... QK_MOMENTARY_MAX: case QK_DEF_LAYER ... QK_DEF_LAYER_MAX: + case QK_PERSISTENT_DEF_LAYER ... QK_PERSISTENT_DEF_LAYER_MAX: case QK_TOGGLE_LAYER ... QK_TOGGLE_LAYER_MAX: case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_LAYER_MAX: case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX: diff --git a/quantum/keycodes.h b/quantum/keycodes.h index e9da5105ce4..921dc7199f2 100644 --- a/quantum/keycodes.h +++ b/quantum/keycodes.h @@ -52,6 +52,8 @@ enum qk_keycode_ranges { QK_ONE_SHOT_MOD_MAX = 0x52BF, QK_LAYER_TAP_TOGGLE = 0x52C0, QK_LAYER_TAP_TOGGLE_MAX = 0x52DF, + QK_PERSISTENT_DEF_LAYER = 0x52E0, + QK_PERSISTENT_DEF_LAYER_MAX = 0x52FF, QK_SWAP_HANDS = 0x5600, QK_SWAP_HANDS_MAX = 0x56FF, QK_TAP_DANCE = 0x5700, @@ -1462,6 +1464,7 @@ enum qk_keycode_defines { #define IS_QK_ONE_SHOT_LAYER(code) ((code) >= QK_ONE_SHOT_LAYER && (code) <= QK_ONE_SHOT_LAYER_MAX) #define IS_QK_ONE_SHOT_MOD(code) ((code) >= QK_ONE_SHOT_MOD && (code) <= QK_ONE_SHOT_MOD_MAX) #define IS_QK_LAYER_TAP_TOGGLE(code) ((code) >= QK_LAYER_TAP_TOGGLE && (code) <= QK_LAYER_TAP_TOGGLE_MAX) +#define IS_QK_PERSISTENT_DEF_LAYER(code) ((code) >= QK_PERSISTENT_DEF_LAYER && (code) <= QK_PERSISTENT_DEF_LAYER_MAX) #define IS_QK_SWAP_HANDS(code) ((code) >= QK_SWAP_HANDS && (code) <= QK_SWAP_HANDS_MAX) #define IS_QK_TAP_DANCE(code) ((code) >= QK_TAP_DANCE && (code) <= QK_TAP_DANCE_MAX) #define IS_QK_MAGIC(code) ((code) >= QK_MAGIC && (code) <= QK_MAGIC_MAX) diff --git a/quantum/pointing_device/pointing_device_auto_mouse.c b/quantum/pointing_device/pointing_device_auto_mouse.c index d9f924e258e..250351f6088 100644 --- a/quantum/pointing_device/pointing_device_auto_mouse.c +++ b/quantum/pointing_device/pointing_device_auto_mouse.c @@ -357,6 +357,8 @@ bool process_auto_mouse(uint16_t keycode, keyrecord_t* record) { } // DF --------------------------------------------------------------------------------------------------------- case QK_DEF_LAYER ... QK_DEF_LAYER_MAX: + // PDF -------------------------------------------------------------------------------------------------------- + case QK_PERSISTENT_DEF_LAYER ... QK_PERSISTENT_DEF_LAYER_MAX: # ifndef NO_ACTION_ONESHOT // OSL((AUTO_MOUSE_TARGET_LAYER))------------------------------------------------------------------------------ case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_LAYER_MAX: diff --git a/quantum/process_keycode/process_autocorrect.c b/quantum/process_keycode/process_autocorrect.c index edc47718f32..b7f9132acf7 100644 --- a/quantum/process_keycode/process_autocorrect.c +++ b/quantum/process_keycode/process_autocorrect.c @@ -98,6 +98,7 @@ bool process_autocorrect_default_handler(uint16_t *keycode, keyrecord_t *record, case QK_TO ... QK_TO_MAX: case QK_MOMENTARY ... QK_MOMENTARY_MAX: case QK_DEF_LAYER ... QK_DEF_LAYER_MAX: + case QK_PERSISTENT_DEF_LAYER ... QK_PERSISTENT_DEF_LAYER_MAX: case QK_TOGGLE_LAYER ... QK_TOGGLE_LAYER_MAX: case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_LAYER_MAX: case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX: diff --git a/quantum/process_keycode/process_default_layer.c b/quantum/process_keycode/process_default_layer.c new file mode 100644 index 00000000000..4bca30c4100 --- /dev/null +++ b/quantum/process_keycode/process_default_layer.c @@ -0,0 +1,32 @@ +/* Copyright 2023 Nebuleon + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "process_default_layer.h" +#include "quantum.h" +#include "quantum_keycodes.h" + +#if !defined(NO_ACTION_LAYER) + +bool process_default_layer(uint16_t keycode, keyrecord_t *record) { + if (IS_QK_PERSISTENT_DEF_LAYER(keycode) && !record->event.pressed) { + uint8_t layer = QK_PERSISTENT_DEF_LAYER_GET_LAYER(keycode); + set_single_persistent_default_layer(layer); + return false; + } + + return true; +} + +#endif // !defined(NO_ACTION_LAYER) diff --git a/quantum/process_keycode/process_default_layer.h b/quantum/process_keycode/process_default_layer.h new file mode 100644 index 00000000000..246d9958177 --- /dev/null +++ b/quantum/process_keycode/process_default_layer.h @@ -0,0 +1,27 @@ +/* Copyright 2023 Nebuleon + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include +#include +#include "action.h" + +#if !defined(NO_ACTION_LAYER) + +bool process_default_layer(uint16_t keycode, keyrecord_t *record); + +#endif // !defined(NO_ACTION_LAYER) diff --git a/quantum/quantum.c b/quantum/quantum.c index 4aef26a6a56..d4ebd58e7fc 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -52,6 +52,10 @@ # include "process_midi.h" #endif +#if !defined(NO_ACTION_LAYER) +# include "process_default_layer.h" +#endif + #ifdef PROGRAMMABLE_BUTTON_ENABLE # include "process_programmable_button.h" #endif @@ -404,6 +408,9 @@ bool process_record_quantum(keyrecord_t *record) { #ifdef TRI_LAYER_ENABLE process_tri_layer(keycode, record) && #endif +#if !defined(NO_ACTION_LAYER) + process_default_layer(keycode, record) && +#endif #ifdef LAYER_LOCK_ENABLE process_layer_lock(keycode, record) && #endif diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h index 882e1d07aec..bcaf94af8b9 100644 --- a/quantum/quantum_keycodes.h +++ b/quantum/quantum_keycodes.h @@ -92,6 +92,10 @@ #define DF(layer) (QK_DEF_LAYER | ((layer)&0x1F)) #define QK_DEF_LAYER_GET_LAYER(kc) ((kc)&0x1F) +// Set persistent default layer - 32 layer max +#define PDF(layer) (QK_PERSISTENT_DEF_LAYER | ((layer)&0x1F)) +#define QK_PERSISTENT_DEF_LAYER_GET_LAYER(kc) ((kc)&0x1F) + // Toggle to layer - 32 layer max #define TG(layer) (QK_TOGGLE_LAYER | ((layer)&0x1F)) #define QK_TOGGLE_LAYER_GET_LAYER(kc) ((kc)&0x1F) diff --git a/tests/test_common/keycode_util.cpp b/tests/test_common/keycode_util.cpp index 9f88d40ec7b..539cab819ac 100644 --- a/tests/test_common/keycode_util.cpp +++ b/tests/test_common/keycode_util.cpp @@ -94,6 +94,8 @@ std::string generate_identifier(uint16_t kc) { s << "MO(" << +QK_MOMENTARY_GET_LAYER(kc) << ")"; } else if (IS_QK_DEF_LAYER(kc)) { s << "DF(" << +QK_DEF_LAYER_GET_LAYER(kc) << ")"; + } else if (IS_QK_PERSISTENT_DEF_LAYER(kc)) { + s << "PDF(" << +QK_PERSISTENT_DEF_LAYER_GET_LAYER(kc) << ")"; } else if (IS_QK_TOGGLE_LAYER(kc)) { s << "TG(" << +QK_TOGGLE_LAYER_GET_LAYER(kc) << ")"; } else if (IS_QK_LAYER_TAP_TOGGLE(kc)) { From e4e015c0c80ca59d329e1343ee7803250b7e60fe Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sat, 23 Nov 2024 13:35:34 +0000 Subject: [PATCH 058/365] Update keymaps to use PDF keycode (#24633) --- .../25keys/zinc/keymaps/default/keymap.c | 33 ++---------- .../nori/keymaps/default/keymap.c | 31 ++--------- .../zodiark/keymaps/default/keymap.c | 17 ++----- .../bear_face/v1/keymaps/default/keymap.c | 43 ++-------------- .../bear_face/v2/keymaps/default/keymap.c | 43 ++-------------- .../bear_face/v2/keymaps/default_iso/keymap.c | 43 ++-------------- .../bear_face/v3/keymaps/default/keymap.c | 32 ++---------- .../bear_face/v3/keymaps/default_iso/keymap.c | 32 ++---------- keyboards/beatervan/keymaps/default/keymap.c | 31 ++--------- keyboards/contra/keymaps/default/keymap.c | 28 ++-------- .../flatbread60/keymaps/default/keymap.c | 33 ++---------- .../dm9records/plaid/keymaps/default/keymap.c | 28 ++-------- keyboards/ergotravel/keymaps/default/keymap.c | 18 +------ .../fortitude60/keymaps/default/keymap.c | 34 ++----------- keyboards/fractal/keymaps/default/keymap.c | 27 ++-------- .../hadron/ver2/keymaps/default/keymap.c | 20 ++------ .../hadron/ver2/keymaps/side_numpad/keymap.c | 15 ++---- .../hadron/ver3/keymaps/default/keymap.c | 21 ++------ .../handwired/ortho5x14/keymaps/2u/keymap.c | 23 ++------- .../ortho5x14/keymaps/default/keymap.c | 18 ++----- .../ortho5x14/keymaps/split1/keymap.c | 23 ++------- .../ortho_brass/keymaps/default/keymap.c | 27 ++-------- .../riblee_f401/keymaps/default/keymap.c | 28 ++-------- .../riblee_f411/keymaps/default/keymap.c | 28 ++-------- .../handwired/rs60/keymaps/default/keymap.c | 27 ++-------- .../split_cloud/keymaps/default/keymap.c | 24 ++------- .../terminus_mini/keymaps/default/keymap.c | 27 ++-------- .../handwired/unk/keymaps/default/keymap.c | 24 ++------- keyboards/jian/keymaps/default/keymap.c | 38 ++------------ .../jones/v03/keymaps/default_jp/keymap.c | 29 +---------- .../jones/v03_1/keymaps/default_ansi/keymap.c | 29 +---------- .../jones/v03_1/keymaps/default_jp/keymap.c | 29 +---------- .../chidori/keymaps/default/keymap.c | 28 ++-------- .../chidori/keymaps/extended/keymap.c | 28 ++-------- .../keebio/viterbi/keymaps/default/keymap.c | 11 +--- .../keycapsss/o4l_5x12/keymaps/2x2u/keymap.c | 25 +-------- .../o4l_5x12/keymaps/default/keymap.c | 12 ++--- .../keyprez/bison/keymaps/default/keymap.c | 24 ++------- .../bison/keymaps/default_6_6/keymap.c | 24 ++------- .../bison/keymaps/default_6_8/keymap.c | 24 ++------- .../bison/keymaps/default_8_6/keymap.c | 24 ++------- .../keyprez/corgi/keymaps/default/keymap.c | 26 ++-------- .../kprepublic/jj50/keymaps/default/keymap.c | 38 ++------------ keyboards/lets_split/keymaps/default/keymap.c | 31 ++--------- keyboards/lime/keymaps/default/keymap.c | 17 ++----- keyboards/makrosu/keymaps/default/keymap.c | 33 ++---------- .../rebound/rev1/keymaps/default/keymap.c | 31 ++--------- .../rebound/rev2/keymaps/default/keymap.c | 30 ++--------- .../rebound/rev3/keymaps/default/keymap.c | 30 ++--------- .../rebound/rev4/keymaps/default/keymap.c | 30 ++--------- keyboards/newgame40/keymaps/default/keymap.c | 47 +++-------------- .../obosob/arch_36/keymaps/obosob/keymap.c | 17 ++----- .../runner3680/3x6/keymaps/default/keymap.c | 10 +--- .../runner3680/3x7/keymaps/default/keymap.c | 10 +--- .../runner3680/3x8/keymaps/default/keymap.c | 10 +--- .../runner3680/4x6/keymaps/default/keymap.c | 10 +--- .../runner3680/4x7/keymaps/default/keymap.c | 10 +--- .../runner3680/4x8/keymaps/default/keymap.c | 10 +--- .../runner3680/5x6/keymaps/default/keymap.c | 10 +--- .../runner3680/5x7/keymaps/default/keymap.c | 10 +--- .../omkbd/runner3680/5x8/keymaps/JIS/keymap.c | 10 +--- .../runner3680/5x8/keymaps/default/keymap.c | 10 +--- keyboards/ortho5by12/keymaps/default/keymap.c | 24 ++------- keyboards/orthodox/keymaps/default/keymap.c | 34 ++----------- .../palette1202/keymaps/default/keymap.c | 51 +++---------------- keyboards/planck/keymaps/default/keymap.c | 28 ++-------- .../planck/rev7/keymaps/default/keymap.c | 25 ++------- keyboards/preonic/keymaps/default/keymap.c | 27 ++-------- .../rgbkb/zygomorph/keymaps/5x6pad/keymap.c | 19 ++----- .../rgbkb/zygomorph/keymaps/default/keymap.c | 17 ++----- .../zygomorph/keymaps/default_oled/keymap.c | 17 ++----- .../comet46/keymaps/default-rgbled/keymap.c | 33 ++---------- .../satt/comet46/keymaps/default/keymap.c | 29 ++--------- keyboards/sofle/keymaps/default/keymap.c | 17 ++----- keyboards/sofle/keymaps/rgb_default/keymap.c | 24 ++------- keyboards/subatomic/keymaps/default/keymap.c | 27 ++-------- .../minivan/keymaps/default/keymap.c | 31 ++--------- .../tkw/grandiceps/keymaps/default/keymap.c | 19 ++----- .../keymaps/default/keymap.c | 27 ++-------- .../keymaps/default_split_shft_bck/keymap.c | 9 +--- 80 files changed, 286 insertions(+), 1705 deletions(-) diff --git a/keyboards/25keys/zinc/keymaps/default/keymap.c b/keyboards/25keys/zinc/keymaps/default/keymap.c index 0d68eb45412..4c4a6a5f3e7 100644 --- a/keyboards/25keys/zinc/keymaps/default/keymap.c +++ b/keyboards/25keys/zinc/keymaps/default/keymap.c @@ -23,10 +23,7 @@ enum layer_number { }; enum custom_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, - LOWER, + LOWER = SAFE_RANGE, RAISE, ADJUST, BACKLIT, @@ -35,12 +32,9 @@ enum custom_keycodes { RGBRST }; -enum macro_keycodes { - KC_SAMPLEMACRO, -}; - -//Macros -#define M_SAMPLE M(KC_SAMPLEMACRO) +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -169,25 +163,6 @@ void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - break; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - return false; - break; - case LOWER: if (record->event.pressed) { //not sure how to have keyboard check mode and set it to a variable, so my work around diff --git a/keyboards/40percentclub/nori/keymaps/default/keymap.c b/keyboards/40percentclub/nori/keymaps/default/keymap.c index 03f8c157878..1c7405f2aca 100644 --- a/keyboards/40percentclub/nori/keymaps/default/keymap.c +++ b/keyboards/40percentclub/nori/keymaps/default/keymap.c @@ -13,16 +13,14 @@ enum layer_names { _ADJUST }; -enum custom_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, -}; - #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) #define ADJUST MO(_ADJUST) +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty * ,-----------------------------------------------------------------------------------. @@ -138,24 +136,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - return false; - } - return true; -} diff --git a/keyboards/aleblazer/zodiark/keymaps/default/keymap.c b/keyboards/aleblazer/zodiark/keymaps/default/keymap.c index 65d431eb9aa..7c5414e93ac 100644 --- a/keyboards/aleblazer/zodiark/keymaps/default/keymap.c +++ b/keyboards/aleblazer/zodiark/keymaps/default/keymap.c @@ -23,9 +23,7 @@ enum sofle_layers { }; enum custom_keycodes { - KC_QWERTY = SAFE_RANGE, - KC_COLEMAK, - KC_LOWER, + KC_LOWER = SAFE_RANGE, KC_RAISE, KC_ADJUST, KC_PRVWD, @@ -35,6 +33,9 @@ enum custom_keycodes { KC_DLINE }; +#define KC_QWERTY PDF(_QWERTY) +#define KC_COLEMAK PDF(_COLEMAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT( @@ -148,16 +149,6 @@ bool oled_task_user(void) { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case KC_QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - case KC_COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; case KC_LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/bear_face/v1/keymaps/default/keymap.c b/keyboards/bear_face/v1/keymaps/default/keymap.c index e615a3915d8..22235f4af68 100644 --- a/keyboards/bear_face/v1/keymaps/default/keymap.c +++ b/keyboards/bear_face/v1/keymaps/default/keymap.c @@ -12,12 +12,9 @@ enum layers { #define FN1_CAPS LT(_FN1, KC_CAPS) -//custom keycode enums -enum custom_keycodes { - BASE_QWER = QK_USER, - BASE_COLE, - BASE_DVOR -}; +#define BASE_QWER PDF(_QWER) +#define BASE_COLE PDF(_COLE) +#define BASE_DVOR PDF(_DVOR) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWER] = LAYOUT( @@ -67,37 +64,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), */ }; - - -// macros to allow the user to set whatever default layer they want, even after reboot -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case BASE_QWER: - if (record->event.pressed) { - // when keycode BASE_QWER is pressed - set_single_persistent_default_layer(_QWER); - } else { - // when keycode BASE_QWER is released - } - break; - - case BASE_COLE: - if (record->event.pressed) { - // when keycode BASE_COLE is pressed - set_single_persistent_default_layer(_COLE); - } else { - // when keycode BASE_COLE is released - } - break; - - case BASE_DVOR: - if (record->event.pressed) { - // when keycode BASE_DVOR is pressed - set_single_persistent_default_layer(_DVOR); - } else { - // when keycode BASE_DVOR is released - } - break; - } - return true; -}; diff --git a/keyboards/bear_face/v2/keymaps/default/keymap.c b/keyboards/bear_face/v2/keymaps/default/keymap.c index 08f193052ad..0f8aefb4b37 100644 --- a/keyboards/bear_face/v2/keymaps/default/keymap.c +++ b/keyboards/bear_face/v2/keymaps/default/keymap.c @@ -12,12 +12,9 @@ enum layers { #define FN1_CAPS LT(_FN1, KC_CAPS) -//custom keycode enums -enum custom_keycodes { - BASE_QWER = QK_USER, - BASE_COLE, - BASE_DVOR -}; +#define BASE_QWER PDF(_QWER) +#define BASE_COLE PDF(_COLE) +#define BASE_DVOR PDF(_DVOR) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWER] = LAYOUT_83_ansi( @@ -67,37 +64,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), */ }; - - -// macros to allow the user to set whatever default layer they want, even after reboot -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case BASE_QWER: - if (record->event.pressed) { - // when keycode BASE_QWER is pressed - set_single_persistent_default_layer(_QWER); - } else { - // when keycode BASE_QWER is released - } - break; - - case BASE_COLE: - if (record->event.pressed) { - // when keycode BASE_COLE is pressed - set_single_persistent_default_layer(_COLE); - } else { - // when keycode BASE_COLE is released - } - break; - - case BASE_DVOR: - if (record->event.pressed) { - // when keycode BASE_DVOR is pressed - set_single_persistent_default_layer(_DVOR); - } else { - // when keycode BASE_DVOR is released - } - break; - } - return true; -}; diff --git a/keyboards/bear_face/v2/keymaps/default_iso/keymap.c b/keyboards/bear_face/v2/keymaps/default_iso/keymap.c index a5e96207f69..69d67205107 100644 --- a/keyboards/bear_face/v2/keymaps/default_iso/keymap.c +++ b/keyboards/bear_face/v2/keymaps/default_iso/keymap.c @@ -12,12 +12,9 @@ enum layers { #define FN1_CAPS LT(_FN1, KC_CAPS) -//custom keycode enums -enum custom_keycodes { - BASE_QWER = QK_USER, - BASE_COLE, - BASE_DVOR -}; +#define BASE_QWER PDF(_QWER) +#define BASE_COLE PDF(_COLE) +#define BASE_DVOR PDF(_DVOR) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWER] = LAYOUT_84_iso( @@ -67,37 +64,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), */ }; - - -//macros to allow the user to set whatever default layer they want, even after reboot -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case BASE_QWER: - if (record->event.pressed) { - // when keycode BASE_QWER is pressed - set_single_persistent_default_layer(_QWER); - } else { - // when keycode BASE_QWER is released - } - break; - - case BASE_COLE: - if (record->event.pressed) { - // when keycode BASE_COLE is pressed - set_single_persistent_default_layer(_COLE); - } else { - // when keycode BASE_COLE is released - } - break; - - case BASE_DVOR: - if (record->event.pressed) { - // when keycode BASE_DVOR is pressed - set_single_persistent_default_layer(_DVOR); - } else { - // when keycode BASE_DVOR is released - } - break; - } - return true; -}; diff --git a/keyboards/bear_face/v3/keymaps/default/keymap.c b/keyboards/bear_face/v3/keymaps/default/keymap.c index f6e71f1b34e..0f8aefb4b37 100644 --- a/keyboards/bear_face/v3/keymaps/default/keymap.c +++ b/keyboards/bear_face/v3/keymaps/default/keymap.c @@ -12,12 +12,9 @@ enum layers { #define FN1_CAPS LT(_FN1, KC_CAPS) -//custom keycode enums -enum custom_keycodes { - BASE_QWER = QK_USER, - BASE_COLE, - BASE_DVOR -}; +#define BASE_QWER PDF(_QWER) +#define BASE_COLE PDF(_COLE) +#define BASE_DVOR PDF(_DVOR) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWER] = LAYOUT_83_ansi( @@ -67,26 +64,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), */ }; - - -// Macros to allow the user to set whatever default layer they want, even after reboot -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case BASE_QWER: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWER); - } - break; - case BASE_COLE: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLE); - } - break; - case BASE_DVOR: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVOR); - } - break; - } - return true; -}; diff --git a/keyboards/bear_face/v3/keymaps/default_iso/keymap.c b/keyboards/bear_face/v3/keymaps/default_iso/keymap.c index cc97d54a9be..69d67205107 100644 --- a/keyboards/bear_face/v3/keymaps/default_iso/keymap.c +++ b/keyboards/bear_face/v3/keymaps/default_iso/keymap.c @@ -12,12 +12,9 @@ enum layers { #define FN1_CAPS LT(_FN1, KC_CAPS) -//custom keycode enums -enum custom_keycodes { - BASE_QWER = QK_USER, - BASE_COLE, - BASE_DVOR -}; +#define BASE_QWER PDF(_QWER) +#define BASE_COLE PDF(_COLE) +#define BASE_DVOR PDF(_DVOR) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWER] = LAYOUT_84_iso( @@ -67,26 +64,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), */ }; - - -// Macros to allow the user to set whatever default layer they want, even after reboot -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case BASE_QWER: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWER); - } - break; - case BASE_COLE: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLE); - } - break; - case BASE_DVOR: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVOR); - } - break; - } - return true; -}; diff --git a/keyboards/beatervan/keymaps/default/keymap.c b/keyboards/beatervan/keymaps/default/keymap.c index a99b9c9e513..ef88ae92074 100644 --- a/keyboards/beatervan/keymaps/default/keymap.c +++ b/keyboards/beatervan/keymaps/default/keymap.c @@ -24,11 +24,9 @@ enum layers { _L3, }; -enum custom_keycodes { - DVORAK = SAFE_RANGE, - QWERTY, - COLEMAK -}; +#define QWERTY PDF(_QW) +#define DVORAK PDF(_DV) +#define COLEMAK PDF(_CM) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QW] = LAYOUT( /* Qwerty */ @@ -68,26 +66,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_LSFT, KC_B, KC_SPC, KC_C, _______, _______, _______ ) }; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch(keycode) { - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DV); - } - return false; - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QW); - } - return false; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_CM); - } - return false; - default: - return true; - } - return true; -}; diff --git a/keyboards/contra/keymaps/default/keymap.c b/keyboards/contra/keymaps/default/keymap.c index 29f98033d61..415e22e81a1 100644 --- a/keyboards/contra/keymaps/default/keymap.c +++ b/keyboards/contra/keymaps/default/keymap.c @@ -28,16 +28,17 @@ enum planck_layers { }; enum planck_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, - PLOVER, + PLOVER = SAFE_RANGE, LOWER, RAISE, BACKLIT, EXT_PLV }; +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -177,25 +178,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - print("mode just switched to qwerty and this is a huge string\n"); - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - break; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - return false; - break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/delikeeb/flatbread60/keymaps/default/keymap.c b/keyboards/delikeeb/flatbread60/keymaps/default/keymap.c index 8ed0118578a..8dfcce364b2 100644 --- a/keyboards/delikeeb/flatbread60/keymaps/default/keymap.c +++ b/keyboards/delikeeb/flatbread60/keymaps/default/keymap.c @@ -18,16 +18,13 @@ // Defines names for use in layer keycodes and the keymap enum layer_names { _QWERTY, _COLEMAK, _DVORAK, _LOWER, _RAISE, _ADJUST }; -enum layer_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, -}; - -// Defines the keycodes used by our macros in process_record_user #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* BASE * ,-----------------------------------------------------------------------------------. @@ -163,25 +160,3 @@ layer_state_t layer_state_set_user(layer_state_t state) { state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST); return state; } - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - print("mode just switched to qwerty and this is a huge string\n"); - set_single_persistent_default_layer(_QWERTY); - } - return false; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - return false; - } - return true; -} diff --git a/keyboards/dm9records/plaid/keymaps/default/keymap.c b/keyboards/dm9records/plaid/keymaps/default/keymap.c index 2b366f49309..0d8d24c5755 100644 --- a/keyboards/dm9records/plaid/keymaps/default/keymap.c +++ b/keyboards/dm9records/plaid/keymaps/default/keymap.c @@ -28,10 +28,7 @@ enum plaid_layers { }; enum plaid_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, - PLOVER, + PLOVER = SAFE_RANGE, EXT_PLV, LED_1, LED_2, @@ -48,6 +45,10 @@ enum plaid_keycodes { #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + // array of keys considered modifiers for led purposes const uint16_t modifiers[] = { KC_LCTL, @@ -301,25 +302,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { led_keypress_update(LED_GREEN, led_config.green_mode, keycode, record); } switch (keycode) { - case QWERTY: - if (record->event.pressed) { - print("mode just switched to qwerty and this is a huge string\n"); - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - break; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - return false; - break; case PLOVER: if (record->event.pressed) { layer_off(_RAISE); diff --git a/keyboards/ergotravel/keymaps/default/keymap.c b/keyboards/ergotravel/keymaps/default/keymap.c index 166a6eed7e7..fcc1ac76b47 100644 --- a/keyboards/ergotravel/keymaps/default/keymap.c +++ b/keyboards/ergotravel/keymaps/default/keymap.c @@ -9,8 +9,7 @@ enum layer_names { }; enum custom_keycodes { - QWERTY = SAFE_RANGE, - LOWER, + LOWER = SAFE_RANGE, RAISE, ADJUST, }; @@ -58,23 +57,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; - - - - - - bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_SONG(tone_qwerty); - #endif - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/fortitude60/keymaps/default/keymap.c b/keyboards/fortitude60/keymaps/default/keymap.c index d03c2b7a4b1..729b940d766 100644 --- a/keyboards/fortitude60/keymaps/default/keymap.c +++ b/keyboards/fortitude60/keymaps/default/keymap.c @@ -14,18 +14,13 @@ enum my_layers { _ADJUST }; -enum custom_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, - LOWER, - RAISE, - ADJUST, -}; - #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -160,24 +155,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - return false; - } - return true; -} diff --git a/keyboards/fractal/keymaps/default/keymap.c b/keyboards/fractal/keymaps/default/keymap.c index ec54dfb78d2..fea90ba2f38 100644 --- a/keyboards/fractal/keymaps/default/keymap.c +++ b/keyboards/fractal/keymaps/default/keymap.c @@ -28,14 +28,15 @@ enum preonic_layers { }; enum preonic_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, - LOWER, + LOWER = SAFE_RANGE, RAISE, BACKLIT }; +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -169,24 +170,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - break; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - return false; - break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/hadron/ver2/keymaps/default/keymap.c b/keyboards/hadron/ver2/keymaps/default/keymap.c index 65d6ef91f91..951cacb423a 100644 --- a/keyboards/hadron/ver2/keymaps/default/keymap.c +++ b/keyboards/hadron/ver2/keymaps/default/keymap.c @@ -16,10 +16,7 @@ extern rgblight_config_t rgblight_config; #define _ADJUST 6 enum preonic_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, - LOWER, + LOWER = SAFE_RANGE, RAISE, BACKLIT, RGBLED_TOGGLE, @@ -42,6 +39,9 @@ enum preonic_keycodes { #define LT_MC(kc) LT(_MOUSECURSOR, kc) // L-ayer T-ap M-ouse C-ursor #define LT_RAI(kc) LT(_RAISE, kc) // L-ayer T-ap to Raise +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -213,18 +213,6 @@ void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - break; case LOWER: if (record->event.pressed) { //not sure how to have keyboard check mode and set it to a variable, so my work around diff --git a/keyboards/hadron/ver2/keymaps/side_numpad/keymap.c b/keyboards/hadron/ver2/keymaps/side_numpad/keymap.c index a4a96b20b6f..1e8523d94c5 100644 --- a/keyboards/hadron/ver2/keymaps/side_numpad/keymap.c +++ b/keyboards/hadron/ver2/keymaps/side_numpad/keymap.c @@ -16,10 +16,7 @@ extern rgblight_config_t rgblight_config; #define _ADJUST 6 enum preonic_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, - LOWER, + LOWER = SAFE_RANGE, RAISE, BACKLIT, RGBLED_TOGGLE, @@ -181,7 +178,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------+--------------------. * | |RGB TG|RGB ST|RGBH -|RGBH +|RGBS -|RGBS +|RGBV -|RGBV +| | | Del | | | | * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| - * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty| | | | | | | | + * | | | |Aud on|Audoff|AGnorm|AGswap| | | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | BL + |BL ST |BLSTEP| BL TG| | | | * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------| @@ -191,7 +188,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT( QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLD, KC_VOLU, KC_MUTE, _______, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, _______, _______, KC_DEL, _______, _______, _______, - _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, _______, _______, _______, _______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, BL_DOWN, BL_UP, BL_STEP, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) @@ -218,12 +215,6 @@ void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; case LOWER: if (record->event.pressed) { //not sure how to have keyboard check mode and set it to a variable, so my work around diff --git a/keyboards/hadron/ver3/keymaps/default/keymap.c b/keyboards/hadron/ver3/keymaps/default/keymap.c index d130745dc64..1e3f3191c2a 100644 --- a/keyboards/hadron/ver3/keymaps/default/keymap.c +++ b/keyboards/hadron/ver3/keymaps/default/keymap.c @@ -13,10 +13,7 @@ #define _ADJUST 6 enum preonic_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, - LOWER, + LOWER = SAFE_RANGE, RAISE, BACKLIT, RGBLED_TOGGLE, @@ -39,6 +36,10 @@ enum preonic_keycodes { #define LT_MC(kc) LT(_MOUSECURSOR, kc) // L-ayer T-ap M-ouse C-ursor #define LT_RAI(kc) LT(_RAISE, kc) // L-ayer T-ap to Raise +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -200,18 +201,6 @@ layer_state_t layer_state_set_user(layer_state_t state) { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - break; case LOWER: if (record->event.pressed) { //not sure how to have keyboard check mode and set it to a variable, so my work around diff --git a/keyboards/handwired/ortho5x14/keymaps/2u/keymap.c b/keyboards/handwired/ortho5x14/keymaps/2u/keymap.c index 568427e52c6..752eda0fde7 100644 --- a/keyboards/handwired/ortho5x14/keymaps/2u/keymap.c +++ b/keyboards/handwired/ortho5x14/keymaps/2u/keymap.c @@ -48,15 +48,14 @@ enum custom_layer { }; enum custom_keycodes { - QWERTY = SAFE_RANGE, - ALT, - CTRL, - LOWER, + LOWER = SAFE_RANGE, RAISE, - MOUSE, ADJUST }; +#define QWERTY PDF(_QWERTY) +#define MOUSE PDF(_MOUSE) + // TAP DANCE *********************************************************** //Tap Dance Declarations enum { @@ -569,12 +568,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return false; } return true; - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); @@ -584,7 +577,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { update_tri_layer(_LOWER, _RAISE, _ADJUST); } return false; - break; case RAISE: if (record->event.pressed) { layer_on(_RAISE); @@ -594,13 +586,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { update_tri_layer(_LOWER, _RAISE, _ADJUST); } return false; - break; - case MOUSE: - if (record->event.pressed) { - set_single_persistent_default_layer(_MOUSE); - } - return false; - break; } return true; }; diff --git a/keyboards/handwired/ortho5x14/keymaps/default/keymap.c b/keyboards/handwired/ortho5x14/keymaps/default/keymap.c index 3c0720e1b09..a2f7befd9fc 100644 --- a/keyboards/handwired/ortho5x14/keymaps/default/keymap.c +++ b/keyboards/handwired/ortho5x14/keymaps/default/keymap.c @@ -30,10 +30,7 @@ enum custom_layer { }; enum custom_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, - LOWER, + LOWER = SAFE_RANGE, RAISE, BACKLIT }; @@ -189,7 +186,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| * | | | | Reset| | | | | | | | | | Del | * |------+------+------+------+------+------+------+-------------+------+------+------+------+------| - * | | | | | |Audoff|Aud on|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | + * | | | | | |Audoff|Aud on|AGnorm|AGswap| | | | | | * |------+------+------+------+------+------+------+------|------+------+------+------+------+------| * | | | |Voice-|Voice+|Musoff|Mus on| | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| @@ -199,7 +196,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT( _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, XXXXXXX, XXXXXXX, XXXXXXX, _______, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, AU_ON, AU_OFF, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, _______, _______,_______,_______, _______, _______ ) @@ -209,15 +206,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_SONG(tone_qwerty); - #endif - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/handwired/ortho5x14/keymaps/split1/keymap.c b/keyboards/handwired/ortho5x14/keymaps/split1/keymap.c index 733e3f3d4b9..a5222eecfaa 100644 --- a/keyboards/handwired/ortho5x14/keymaps/split1/keymap.c +++ b/keyboards/handwired/ortho5x14/keymaps/split1/keymap.c @@ -47,15 +47,14 @@ enum custom_layer { }; enum custom_keycodes { - QWERTY = SAFE_RANGE, - ALT, - CTRL, - LOWER, + LOWER = SAFE_RANGE, RAISE, - MOUSE, ADJUST }; +#define QWERTY PDF(_QWERTY) +#define MOUSE PDF(_MOUSE) + // TAP DANCE *********************************************************** //Tap Dance Declarations enum { @@ -499,12 +498,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return false; } return true; - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); @@ -514,7 +507,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { update_tri_layer(_LOWER, _RAISE, _ADJUST); } return false; - break; case RAISE: if (record->event.pressed) { layer_on(_RAISE); @@ -524,13 +516,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { update_tri_layer(_LOWER, _RAISE, _ADJUST); } return false; - break; - case MOUSE: - if (record->event.pressed) { - set_single_persistent_default_layer(_MOUSE); - } - return false; - break; } return true; }; diff --git a/keyboards/handwired/ortho_brass/keymaps/default/keymap.c b/keyboards/handwired/ortho_brass/keymaps/default/keymap.c index d5ab0ba3985..fc431672111 100644 --- a/keyboards/handwired/ortho_brass/keymaps/default/keymap.c +++ b/keyboards/handwired/ortho_brass/keymaps/default/keymap.c @@ -27,16 +27,17 @@ enum ortho_brass_layers { }; enum ortho_brass_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, - PLOVER, + PLOVER = SAFE_RANGE, EXT_PLV }; #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -172,24 +173,6 @@ layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_laye bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - break; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - return false; - break; case PLOVER: if (record->event.pressed) { layer_off(_RAISE); diff --git a/keyboards/handwired/riblee_f401/keymaps/default/keymap.c b/keyboards/handwired/riblee_f401/keymaps/default/keymap.c index f39f439c50e..7c8bd5b8b44 100644 --- a/keyboards/handwired/riblee_f401/keymaps/default/keymap.c +++ b/keyboards/handwired/riblee_f401/keymaps/default/keymap.c @@ -27,15 +27,16 @@ enum preonic_layers { }; enum preonic_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, - BACKLIT + BACKLIT = SAFE_RANGE, }; #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -172,24 +173,6 @@ layer_state_t layer_state_set_user(layer_state_t state) { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - break; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - return false; - break; case BACKLIT: if (record->event.pressed) { register_code(keycode_config(KC_LGUI)); @@ -200,7 +183,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { unregister_code(keycode_config(KC_LGUI)); } return false; - break; } return true; }; diff --git a/keyboards/handwired/riblee_f411/keymaps/default/keymap.c b/keyboards/handwired/riblee_f411/keymaps/default/keymap.c index 74308a1c19f..15c706089d6 100644 --- a/keyboards/handwired/riblee_f411/keymaps/default/keymap.c +++ b/keyboards/handwired/riblee_f411/keymaps/default/keymap.c @@ -27,15 +27,16 @@ enum layer_names { }; enum custom_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, - BACKLIT + BACKLIT = SAFE_RANGE, }; #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -172,24 +173,6 @@ layer_state_t layer_state_set_user(layer_state_t state) { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - break; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - return false; - break; case BACKLIT: if (record->event.pressed) { register_code(keycode_config(KC_LGUI)); @@ -200,7 +183,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { unregister_code(keycode_config(KC_LGUI)); } return false; - break; } return true; }; diff --git a/keyboards/handwired/rs60/keymaps/default/keymap.c b/keyboards/handwired/rs60/keymaps/default/keymap.c index 5dae734be6c..7dfe43fc4c3 100644 --- a/keyboards/handwired/rs60/keymaps/default/keymap.c +++ b/keyboards/handwired/rs60/keymaps/default/keymap.c @@ -26,13 +26,14 @@ enum layers { }; enum keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, - LOWER, + LOWER = SAFE_RANGE, RAISE, }; +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -164,24 +165,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - break; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - return false; - break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/handwired/split_cloud/keymaps/default/keymap.c b/keyboards/handwired/split_cloud/keymaps/default/keymap.c index ad7e64e6ad5..01ffe92dda4 100644 --- a/keyboards/handwired/split_cloud/keymaps/default/keymap.c +++ b/keyboards/handwired/split_cloud/keymaps/default/keymap.c @@ -29,13 +29,14 @@ enum layer_names { }; enum custom_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, - PLOVER, + PLOVER = SAFE_RANGE, EXT_PLV }; +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + #define ST_BOLT QK_STENO_BOLT #define ST_GEM QK_STENO_GEMINI @@ -195,21 +196,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - return false; case PLOVER: if (!record->event.pressed) { layer_on(_PLOVER); diff --git a/keyboards/handwired/terminus_mini/keymaps/default/keymap.c b/keyboards/handwired/terminus_mini/keymaps/default/keymap.c index e6d8bb6f052..8659b495445 100644 --- a/keyboards/handwired/terminus_mini/keymaps/default/keymap.c +++ b/keyboards/handwired/terminus_mini/keymaps/default/keymap.c @@ -33,10 +33,7 @@ enum terminus_mini_layers { }; enum terminus_mini_keycodes { - COLEMAK = SAFE_RANGE, - QWERTY, - DVORAK, - LOWER, + LOWER = SAFE_RANGE, RAISE, FUNCTION, MOUSE, @@ -48,6 +45,10 @@ enum terminus_mini_keycodes { #define SPC_LW LT(_LOWER, KC_SPC) #define ENT_RS LT(_RAISE, KC_ENT) +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Colemak - * ,----------------------------------------------------------------------------------. @@ -204,24 +205,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Cases to switch default layer to QWERTY, COLEMAK or DVORAK and to access ADJUST layer bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - break; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - return false; - break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/handwired/unk/keymaps/default/keymap.c b/keyboards/handwired/unk/keymaps/default/keymap.c index 73d005983e9..c0432dcddd6 100644 --- a/keyboards/handwired/unk/keymaps/default/keymap.c +++ b/keyboards/handwired/unk/keymaps/default/keymap.c @@ -8,14 +8,12 @@ enum layer_names { _ADJUST, }; -enum custom_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, -}; - #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) + // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. // Layer names don't all need to be of the same length, obviously, and you can also skip them @@ -65,19 +63,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - } - return true; -} diff --git a/keyboards/jian/keymaps/default/keymap.c b/keyboards/jian/keymaps/default/keymap.c index a9a7cb3f54b..f3583e52490 100644 --- a/keyboards/jian/keymaps/default/keymap.c +++ b/keyboards/jian/keymaps/default/keymap.c @@ -11,16 +11,14 @@ enum jian_layers { _BCKLT_ADJ }; -enum jian_keycodes { - QWERTY = SAFE_RANGE, - DVORAK, - COLEMAK, - WORKMAN -}; - #define RAISE_T(kc) LT(_RAISE, kc) #define LOWER_T(kc) LT(_LOWER, kc) +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) +#define WORKMAN PDF(_WORKMAN) + #ifdef SWAP_HANDS_ENABLE #define SW_TG SH_TOGG #else @@ -92,29 +90,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - return false; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - case WORKMAN: - if (record->event.pressed) { - set_single_persistent_default_layer(_WORKMAN); - } - return false; - } - return true; -} diff --git a/keyboards/jones/v03/keymaps/default_jp/keymap.c b/keyboards/jones/v03/keymaps/default_jp/keymap.c index 9b09b57bbdf..b38b01c7488 100644 --- a/keyboards/jones/v03/keymaps/default_jp/keymap.c +++ b/keyboards/jones/v03/keymaps/default_jp/keymap.c @@ -63,12 +63,6 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { } } -// Defines the keycodes used by our macros in process_record_user -enum custom_keycodes { - MAC = SAFE_RANGE, - WIN, -}; - // Key Macro #define ESC_NUM TD(TD_ESC_NUM) #define S_CAP TD(TD_LSFT_CAPS) @@ -82,7 +76,8 @@ enum custom_keycodes { #define ALT_GRV LALT(KC_GRV) #define LOWER MO(_LOWER) #define NUM TG(_NUM) - +#define MAC PDF(_MAC) +#define WIN PDF(_WIN) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_MAC] = LAYOUT_jp( @@ -146,26 +141,6 @@ const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = LAYOUT_jp( ); #endif -bool process_record_user(uint16_t keycode, keyrecord_t *record) { -switch (keycode) { - case MAC: // Change default ayer --> Write to EEPROM - if (record->event.pressed) { - set_single_persistent_default_layer(_MAC); - } - return false; - break; - case WIN: // Change default ayer --> Write to EEPROM - if (record->event.pressed) { - set_single_persistent_default_layer(_WIN); - } - return false; - break; - default: - break; - } - return true; -} - //------------------------------------------------------------------------------ // RGB Light settings #ifdef RGBLIGHT_LAYERS diff --git a/keyboards/jones/v03_1/keymaps/default_ansi/keymap.c b/keyboards/jones/v03_1/keymaps/default_ansi/keymap.c index b4611439b3f..b60e26d961a 100644 --- a/keyboards/jones/v03_1/keymaps/default_ansi/keymap.c +++ b/keyboards/jones/v03_1/keymaps/default_ansi/keymap.c @@ -62,12 +62,6 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { } } -// Defines the keycodes used by our macros in process_record_user -enum custom_keycodes { - MAC = SAFE_RANGE, - WIN, -}; - // Key Macro #define ESC_NUM TD(TD_ESC_NUM) #define S_CAP TD(TD_LSFT_CAPS) @@ -80,7 +74,8 @@ enum custom_keycodes { #define ALT_GRV LALT(KC_GRV) #define LOWER MO(_LOWER) #define NUM TG(_NUM) - +#define MAC PDF(_MAC) +#define WIN PDF(_WIN) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_MAC] = LAYOUT_ansi( @@ -134,26 +129,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case MAC: // Change default ayer --> Write to EEPROM - if (record->event.pressed) { - set_single_persistent_default_layer(_MAC); - } - return false; - break; - case WIN: // Change default ayer --> Write to EEPROM - if (record->event.pressed) { - set_single_persistent_default_layer(_WIN); - } - return false; - break; - default: - break; - } - return true; -} - //------------------------------------------------------------------------------ // RGB Light settings #ifdef RGBLIGHT_LAYERS diff --git a/keyboards/jones/v03_1/keymaps/default_jp/keymap.c b/keyboards/jones/v03_1/keymaps/default_jp/keymap.c index f44b5a13300..78fb06aad18 100644 --- a/keyboards/jones/v03_1/keymaps/default_jp/keymap.c +++ b/keyboards/jones/v03_1/keymaps/default_jp/keymap.c @@ -63,12 +63,6 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { } } -// Defines the keycodes used by our macros in process_record_user -enum custom_keycodes { - MAC = SAFE_RANGE, - WIN, -}; - // Key Macro #define ESC_NUM TD(TD_ESC_NUM) #define S_CAP TD(TD_LSFT_CAPS) @@ -82,7 +76,8 @@ enum custom_keycodes { #define ALT_GRV LALT(KC_GRV) #define LOWER MO(_LOWER) #define NUM TG(_NUM) - +#define MAC PDF(_MAC) +#define WIN PDF(_WIN) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_MAC] = LAYOUT_jp( @@ -136,26 +131,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -bool process_record_user(uint16_t keycode, keyrecord_t *record) { -switch (keycode) { - case MAC: // Change default ayer --> Write to EEPROM - if (record->event.pressed) { - set_single_persistent_default_layer(_MAC); - } - return false; - break; - case WIN: // Change default ayer --> Write to EEPROM - if (record->event.pressed) { - set_single_persistent_default_layer(_WIN); - } - return false; - break; - default: - break; - } - return true; -} - //------------------------------------------------------------------------------ // RGB Light settings #ifdef RGBLIGHT_LAYERS diff --git a/keyboards/kagizaraya/chidori/keymaps/default/keymap.c b/keyboards/kagizaraya/chidori/keymaps/default/keymap.c index bd52119d968..f02959d9f53 100644 --- a/keyboards/kagizaraya/chidori/keymaps/default/keymap.c +++ b/keyboards/kagizaraya/chidori/keymaps/default/keymap.c @@ -19,13 +19,14 @@ enum layer_number { _QWERTY = 0, _COLEMAK, _DVORAK, _LOWER, _RAISE, _ADJUST }; -// Defines the keycodes used by our macros in process_record_user -enum custom_keycodes { QWERTY = SAFE_RANGE, COLEMAK, DVORAK }; - #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) #define ADJUST MO(_ADJUST) +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -141,27 +142,6 @@ layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - return false; - } - return true; -} - bool led_update_user(led_t led_state) { board_set_led_by_index(0, LED_YELLOW, led_state.caps_lock); board_set_led_by_index(1, LED_YELLOW, led_state.scroll_lock); diff --git a/keyboards/kagizaraya/chidori/keymaps/extended/keymap.c b/keyboards/kagizaraya/chidori/keymaps/extended/keymap.c index a1f0f6d0829..5e777f9074f 100644 --- a/keyboards/kagizaraya/chidori/keymaps/extended/keymap.c +++ b/keyboards/kagizaraya/chidori/keymaps/extended/keymap.c @@ -19,13 +19,14 @@ enum layer_number { _QWERTY = 0, _COLEMAK, _DVORAK, _LOWER, _RAISE, _ADJUST }; -// Defines the keycodes used by our macros in process_record_user -enum custom_keycodes { QWERTY = SAFE_RANGE, COLEMAK, DVORAK }; - #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) #define ADJUST MO(_ADJUST) +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -141,27 +142,6 @@ layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - return false; - } - return true; -} - bool led_update_user(led_t led_state) { board_set_led_by_index(0, LED_YELLOW, led_state.caps_lock); board_set_led_by_index(1, LED_YELLOW, led_state.scroll_lock); diff --git a/keyboards/keebio/viterbi/keymaps/default/keymap.c b/keyboards/keebio/viterbi/keymaps/default/keymap.c index bc7cd5d3f01..e37fc8f7902 100644 --- a/keyboards/keebio/viterbi/keymaps/default/keymap.c +++ b/keyboards/keebio/viterbi/keymaps/default/keymap.c @@ -13,8 +13,7 @@ enum layer_names { }; enum custom_keycodes { - QWERTY = SAFE_RANGE, - LOWER, + LOWER = SAFE_RANGE, RAISE, ADJUST, }; @@ -88,7 +87,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_ortho_5x14( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, QK_BOOT, UG_TOGG, UG_NEXT, UG_HUED, UG_HUEU, UG_SATD, UG_SATU, UG_VALD, UG_VALU, _______, KC_DEL, _______, - _______, _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______, _______, + _______, _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) @@ -98,12 +97,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/keycapsss/o4l_5x12/keymaps/2x2u/keymap.c b/keyboards/keycapsss/o4l_5x12/keymaps/2x2u/keymap.c index ab5b9de62ff..1e12efc1c16 100644 --- a/keyboards/keycapsss/o4l_5x12/keymaps/2x2u/keymap.c +++ b/keyboards/keycapsss/o4l_5x12/keymaps/2x2u/keymap.c @@ -5,11 +5,6 @@ enum layer_names { _LOWER }; -enum custom_keycodes { - QWERTY = SAFE_RANGE, - LOWER -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty * ,-----------------------------------------------------------------------------------. @@ -29,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, - KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_ENT, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + KC_LCTL, KC_LALT, KC_LGUI, MO(_LOWER), KC_ENT, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), /* Lower @@ -53,21 +48,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { UG_TOGG, QK_BOOT, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ) }; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - case LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - } else { - layer_off(_LOWER); - } - return false; - } - return true; -}; diff --git a/keyboards/keycapsss/o4l_5x12/keymaps/default/keymap.c b/keyboards/keycapsss/o4l_5x12/keymaps/default/keymap.c index 2833201d97c..e775008bd4d 100644 --- a/keyboards/keycapsss/o4l_5x12/keymaps/default/keymap.c +++ b/keyboards/keycapsss/o4l_5x12/keymaps/default/keymap.c @@ -8,8 +8,7 @@ enum layer_names { }; enum custom_keycodes { - QWERTY = SAFE_RANGE, - LOWER, + LOWER = SAFE_RANGE, RAISE }; @@ -83,7 +82,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | | Reset| | | | | | | | | | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | |Aud on|AudOff|AGnorm|AGswap|Qwerty| | | | | + * | | | |Aud on|AudOff|AGnorm|AGswap| | | | | | * |------+------+------+------+------+------|------+------+------+------+------+------| * | |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -93,7 +92,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_ortho_5x12( KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, QK_BOOT, DB_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, - _______, _______, MU_NEXT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______, + _______, _______, MU_NEXT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, _______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) @@ -101,11 +100,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; case LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/keyprez/bison/keymaps/default/keymap.c b/keyboards/keyprez/bison/keymaps/default/keymap.c index fc1f346647a..d66b1a487bb 100644 --- a/keyboards/keyprez/bison/keymaps/default/keymap.c +++ b/keyboards/keyprez/bison/keymaps/default/keymap.c @@ -26,10 +26,7 @@ enum layer_names { }; enum custom_keycodes { - KC_QWRTY = SAFE_RANGE, - KC_COLMK, - KC_HRM, - KC_PRVWD, + KC_PRVWD = SAFE_RANGE, KC_NXTWD }; @@ -46,6 +43,10 @@ enum custom_keycodes { #define HRM_RC MT(MOD_RCTL, KC_K) #define HRM_RS MT(MOD_RSFT, KC_J) +#define KC_QWRTY PDF(_QWERTY) +#define KC_COLMK PDF(_COLEMAK) +#define KC_HRM PDF(_HRM) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* * QWERTY @@ -188,21 +189,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case KC_QWRTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - case KC_COLMK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - case KC_HRM: - if (record->event.pressed) { - set_single_persistent_default_layer(_HRM); - } - return false; case KC_PRVWD: if (record->event.pressed) { register_mods(mod_config(MOD_LCTL)); diff --git a/keyboards/keyprez/bison/keymaps/default_6_6/keymap.c b/keyboards/keyprez/bison/keymaps/default_6_6/keymap.c index 816cd2fda6e..a51fd87c01d 100644 --- a/keyboards/keyprez/bison/keymaps/default_6_6/keymap.c +++ b/keyboards/keyprez/bison/keymaps/default_6_6/keymap.c @@ -26,10 +26,7 @@ enum layer_names { }; enum custom_keycodes { - KC_QWRTY = SAFE_RANGE, - KC_COLMK, - KC_HRM, - KC_PRVWD, + KC_PRVWD = SAFE_RANGE, KC_NXTWD }; @@ -46,6 +43,10 @@ enum custom_keycodes { #define HRM_RC MT(MOD_RCTL, KC_K) #define HRM_RS MT(MOD_RSFT, KC_J) +#define KC_QWRTY PDF(_QWERTY) +#define KC_COLMK PDF(_COLEMAK) +#define KC_HRM PDF(_HRM) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* * QWERTY @@ -188,21 +189,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case KC_QWRTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - case KC_COLMK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - case KC_HRM: - if (record->event.pressed) { - set_single_persistent_default_layer(_HRM); - } - return false; case KC_PRVWD: if (record->event.pressed) { register_mods(mod_config(MOD_LCTL)); diff --git a/keyboards/keyprez/bison/keymaps/default_6_8/keymap.c b/keyboards/keyprez/bison/keymaps/default_6_8/keymap.c index c42ee631dbc..c6d46763848 100644 --- a/keyboards/keyprez/bison/keymaps/default_6_8/keymap.c +++ b/keyboards/keyprez/bison/keymaps/default_6_8/keymap.c @@ -26,10 +26,7 @@ enum layer_names { }; enum custom_keycodes { - KC_QWRTY = SAFE_RANGE, - KC_COLMK, - KC_HRM, - KC_PRVWD, + KC_PRVWD = SAFE_RANGE, KC_NXTWD }; @@ -46,6 +43,10 @@ enum custom_keycodes { #define HRM_RC MT(MOD_RCTL, KC_K) #define HRM_RS MT(MOD_RSFT, KC_J) +#define KC_QWRTY PDF(_QWERTY) +#define KC_COLMK PDF(_COLEMAK) +#define KC_HRM PDF(_HRM) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* * QWERTY @@ -188,21 +189,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case KC_QWRTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - case KC_COLMK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - case KC_HRM: - if (record->event.pressed) { - set_single_persistent_default_layer(_HRM); - } - return false; case KC_PRVWD: if (record->event.pressed) { register_mods(mod_config(MOD_LCTL)); diff --git a/keyboards/keyprez/bison/keymaps/default_8_6/keymap.c b/keyboards/keyprez/bison/keymaps/default_8_6/keymap.c index 173b9bc3871..5566539c08e 100644 --- a/keyboards/keyprez/bison/keymaps/default_8_6/keymap.c +++ b/keyboards/keyprez/bison/keymaps/default_8_6/keymap.c @@ -26,10 +26,7 @@ enum layer_names { }; enum custom_keycodes { - KC_QWRTY = SAFE_RANGE, - KC_COLMK, - KC_HRM, - KC_PRVWD, + KC_PRVWD = SAFE_RANGE, KC_NXTWD }; @@ -46,6 +43,10 @@ enum custom_keycodes { #define HRM_RC MT(MOD_RCTL, KC_K) #define HRM_RS MT(MOD_RSFT, KC_J) +#define KC_QWRTY PDF(_QWERTY) +#define KC_COLMK PDF(_COLEMAK) +#define KC_HRM PDF(_HRM) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* * QWERTY @@ -188,21 +189,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case KC_QWRTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - case KC_COLMK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - case KC_HRM: - if (record->event.pressed) { - set_single_persistent_default_layer(_HRM); - } - return false; case KC_PRVWD: if (record->event.pressed) { register_mods(mod_config(MOD_LCTL)); diff --git a/keyboards/keyprez/corgi/keymaps/default/keymap.c b/keyboards/keyprez/corgi/keymaps/default/keymap.c index 757b3fd1db0..3e55671bc9f 100644 --- a/keyboards/keyprez/corgi/keymaps/default/keymap.c +++ b/keyboards/keyprez/corgi/keymaps/default/keymap.c @@ -26,15 +26,13 @@ enum layer_names { _CMD, }; -enum corgi_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK -}; - #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) #define CMD MO(_CMD) +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty * ,-----------------------------------------------------------------------------------. @@ -136,21 +134,3 @@ bool encoder_update_user(uint8_t index, bool clockwise) { tap_code(clockwise ? KC_VOLU : KC_VOLD); return true; } - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - break; - } - return true; -} diff --git a/keyboards/kprepublic/jj50/keymaps/default/keymap.c b/keyboards/kprepublic/jj50/keymaps/default/keymap.c index f6df7b92f6f..7bc5663600c 100644 --- a/keyboards/kprepublic/jj50/keymaps/default/keymap.c +++ b/keyboards/kprepublic/jj50/keymaps/default/keymap.c @@ -28,17 +28,15 @@ enum layers { _FN }; -enum keycodes { - QWERTY = SAFE_RANGE, - WORKMAN, - COLEMAK, - DVORAK -}; - #define FN MO(_FN) #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) +#define QWERTY PDF(_QWERTY) +#define WORKMAN PDF(_WORKMAN) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -213,29 +211,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - case WORKMAN: - if (record->event.pressed) { - set_single_persistent_default_layer(_WORKMAN); - } - return false; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - return false; - } - return true; -}; diff --git a/keyboards/lets_split/keymaps/default/keymap.c b/keyboards/lets_split/keymaps/default/keymap.c index 4eec2e02acd..1c7405f2aca 100644 --- a/keyboards/lets_split/keymaps/default/keymap.c +++ b/keyboards/lets_split/keymaps/default/keymap.c @@ -13,16 +13,14 @@ enum layer_names { _ADJUST }; -enum custom_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK -}; - #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) #define ADJUST MO(_ADJUST) +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty * ,-----------------------------------------------------------------------------------. @@ -138,24 +136,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - return false; - } - return true; -} diff --git a/keyboards/lime/keymaps/default/keymap.c b/keyboards/lime/keymaps/default/keymap.c index e3e5d5a323b..8f4e6eb8a48 100644 --- a/keyboards/lime/keymaps/default/keymap.c +++ b/keyboards/lime/keymaps/default/keymap.c @@ -30,9 +30,7 @@ enum lime_layers { }; enum custom_keycodes { - KC_QWERTY = SAFE_RANGE, - KC_COLEMAK, - KC_LOWER, + KC_LOWER = SAFE_RANGE, KC_RAISE, KC_ADJUST, KC_PRVWD, @@ -47,6 +45,9 @@ enum custom_keycodes { KC_JOYSTICK_DEBUG, }; +#define KC_QWERTY PDF(_QWERTY) +#define KC_COLEMAK PDF(_COLEMAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* * QWERTY @@ -480,16 +481,6 @@ bool showedJump = true; bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case KC_QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - case KC_COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; case KC_LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/makrosu/keymaps/default/keymap.c b/keyboards/makrosu/keymaps/default/keymap.c index 3de4f71df3a..1e60e357ba7 100644 --- a/keyboards/makrosu/keymaps/default/keymap.c +++ b/keyboards/makrosu/keymaps/default/keymap.c @@ -24,15 +24,11 @@ enum planck_layers { }; - -enum planck_keycodes { - L1 = SAFE_RANGE, - L2, - L3 - -}; - +#define L1 PDF(_1) +#define L2 PDF(_2) +#define L3 PDF(_3) #define LOWER MO(_4) + #define IND_1 D4 #define IND_2 C6 #define IND_3 D7 @@ -66,27 +62,6 @@ layer_state_t layer_state_set_user(layer_state_t state) { return state; } -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case L1: - if (record->event.pressed) { - set_single_persistent_default_layer(_1); - } - return false; - case L2: - if (record->event.pressed) { - set_single_persistent_default_layer(_2); - } - return false; - case L3: - if (record->event.pressed) { - set_single_persistent_default_layer(_3); - } - return false; - } - return true; -} - void matrix_init_user(void) { //init the Pro Micro on-board LEDs gpio_set_pin_output(IND_1); diff --git a/keyboards/montsinger/rebound/rev1/keymaps/default/keymap.c b/keyboards/montsinger/rebound/rev1/keymaps/default/keymap.c index 9b2369ce314..3eff1ad0417 100644 --- a/keyboards/montsinger/rebound/rev1/keymaps/default/keymap.c +++ b/keyboards/montsinger/rebound/rev1/keymaps/default/keymap.c @@ -15,16 +15,14 @@ enum layer_names _ADJUST }; -enum custom_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK -}; - #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) #define ADJUST MO(_ADJUST) +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty * ,-----------------------------------------------------------------------------------. @@ -140,24 +138,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - return false; - } - return true; -} diff --git a/keyboards/montsinger/rebound/rev2/keymaps/default/keymap.c b/keyboards/montsinger/rebound/rev2/keymaps/default/keymap.c index d430a7877f3..25d9476912c 100644 --- a/keyboards/montsinger/rebound/rev2/keymaps/default/keymap.c +++ b/keyboards/montsinger/rebound/rev2/keymaps/default/keymap.c @@ -14,16 +14,14 @@ enum layer_names { _ADJUST }; -enum custom_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK -}; - #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) #define ADJUST MO(_ADJUST) +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty * ,-----------------------------------------------------------------------------------. @@ -139,23 +137,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - break; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - break; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - break; - } - return true; -} diff --git a/keyboards/montsinger/rebound/rev3/keymaps/default/keymap.c b/keyboards/montsinger/rebound/rev3/keymaps/default/keymap.c index aadbde3672f..dd2fedd9870 100644 --- a/keyboards/montsinger/rebound/rev3/keymaps/default/keymap.c +++ b/keyboards/montsinger/rebound/rev3/keymaps/default/keymap.c @@ -14,16 +14,14 @@ enum layer_names { _ADJUST }; -enum custom_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK -}; - #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) #define ADJUST MO(_ADJUST) +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT_all( @@ -72,26 +70,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - break; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - break; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - break; - } - return true; -} bool encoder_update_user(uint8_t index, bool clockwise) { if (clockwise) { diff --git a/keyboards/montsinger/rebound/rev4/keymaps/default/keymap.c b/keyboards/montsinger/rebound/rev4/keymaps/default/keymap.c index aadbde3672f..dd2fedd9870 100644 --- a/keyboards/montsinger/rebound/rev4/keymaps/default/keymap.c +++ b/keyboards/montsinger/rebound/rev4/keymaps/default/keymap.c @@ -14,16 +14,14 @@ enum layer_names { _ADJUST }; -enum custom_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK -}; - #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) #define ADJUST MO(_ADJUST) +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT_all( @@ -72,26 +70,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - break; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - break; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - break; - } - return true; -} bool encoder_update_user(uint8_t index, bool clockwise) { if (clockwise) { diff --git a/keyboards/newgame40/keymaps/default/keymap.c b/keyboards/newgame40/keymaps/default/keymap.c index 056afed0110..39921d2a382 100644 --- a/keyboards/newgame40/keymaps/default/keymap.c +++ b/keyboards/newgame40/keymaps/default/keymap.c @@ -27,18 +27,13 @@ enum layers { _ADJUST, }; - enum custom_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, - LOWER, - RAISE, - EUCALYN, - ADJUST, - }; +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) - #define LOWER MO(_LOWER) - #define RAISE MO(_RAISE) +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) +#define EUCALYN PDF(_EUCALYN) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -174,33 +169,3 @@ enum layers { layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } - - bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - break; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - return false; - break; - case EUCALYN: - if (record->event.pressed) { - set_single_persistent_default_layer(_EUCALYN); - } - return false; - break; - } - return true; - } diff --git a/keyboards/obosob/arch_36/keymaps/obosob/keymap.c b/keyboards/obosob/arch_36/keymaps/obosob/keymap.c index c36b5601b01..1dd68fa10c7 100644 --- a/keyboards/obosob/arch_36/keymaps/obosob/keymap.c +++ b/keyboards/obosob/arch_36/keymaps/obosob/keymap.c @@ -39,11 +39,12 @@ enum layer_names { #define OS_GUI OSM(MOD_LGUI) #define OS_ALT OSM(MOD_LALT) +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLMAK) + enum keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, // layers - SYM, + SYM = SAFE_RANGE, MISC, // special keys ENC_PRS, @@ -233,16 +234,6 @@ uint16_t last_rgb_char = 0; bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLMAK); - } - return false; case SYM: if (record->event.pressed) { layer_on(_SYM); diff --git a/keyboards/omkbd/runner3680/3x6/keymaps/default/keymap.c b/keyboards/omkbd/runner3680/3x6/keymaps/default/keymap.c index ec38d8c2ff4..b6163a42bc7 100644 --- a/keyboards/omkbd/runner3680/3x6/keymaps/default/keymap.c +++ b/keyboards/omkbd/runner3680/3x6/keymaps/default/keymap.c @@ -13,8 +13,7 @@ enum layer_number { }; enum custom_keycodes { - QWERTY = SAFE_RANGE, - ADJUST, + ADJUST = SAFE_RANGE, RGBRST }; @@ -56,13 +55,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - print("mode just switched to qwerty and this is a huge string\n"); - set_single_persistent_default_layer(_QWERTY); - } - break; - case ADJUST: if (record->event.pressed) { layer_on(_ADJUST); diff --git a/keyboards/omkbd/runner3680/3x7/keymaps/default/keymap.c b/keyboards/omkbd/runner3680/3x7/keymaps/default/keymap.c index 8dc742ed789..51c668064e9 100644 --- a/keyboards/omkbd/runner3680/3x7/keymaps/default/keymap.c +++ b/keyboards/omkbd/runner3680/3x7/keymaps/default/keymap.c @@ -13,8 +13,7 @@ enum layer_number { }; enum custom_keycodes { - QWERTY = SAFE_RANGE, - ADJUST, + ADJUST = SAFE_RANGE, RGBRST }; @@ -56,13 +55,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - print("mode just switched to qwerty and this is a huge string\n"); - set_single_persistent_default_layer(_QWERTY); - } - break; - case ADJUST: if (record->event.pressed) { layer_on(_ADJUST); diff --git a/keyboards/omkbd/runner3680/3x8/keymaps/default/keymap.c b/keyboards/omkbd/runner3680/3x8/keymaps/default/keymap.c index b858cc2aed3..0b57cdc55a9 100644 --- a/keyboards/omkbd/runner3680/3x8/keymaps/default/keymap.c +++ b/keyboards/omkbd/runner3680/3x8/keymaps/default/keymap.c @@ -13,8 +13,7 @@ enum layer_number { }; enum custom_keycodes { - QWERTY = SAFE_RANGE, - ADJUST, + ADJUST = SAFE_RANGE, RGBRST }; @@ -58,13 +57,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - print("mode just switched to qwerty and this is a huge string\n"); - set_single_persistent_default_layer(_QWERTY); - } - break; - case ADJUST: if (record->event.pressed) { layer_on(_ADJUST); diff --git a/keyboards/omkbd/runner3680/4x6/keymaps/default/keymap.c b/keyboards/omkbd/runner3680/4x6/keymaps/default/keymap.c index 3fadd6961c1..dc50cdcd83d 100644 --- a/keyboards/omkbd/runner3680/4x6/keymaps/default/keymap.c +++ b/keyboards/omkbd/runner3680/4x6/keymaps/default/keymap.c @@ -13,8 +13,7 @@ enum layer_number { }; enum custom_keycodes { - QWERTY = SAFE_RANGE, - ADJUST, + ADJUST = SAFE_RANGE, RGBRST }; @@ -62,13 +61,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - print("mode just switched to qwerty and this is a huge string\n"); - set_single_persistent_default_layer(_QWERTY); - } - break; - case ADJUST: if (record->event.pressed) { layer_on(_ADJUST); diff --git a/keyboards/omkbd/runner3680/4x7/keymaps/default/keymap.c b/keyboards/omkbd/runner3680/4x7/keymaps/default/keymap.c index e898b42cd5d..de162dba887 100644 --- a/keyboards/omkbd/runner3680/4x7/keymaps/default/keymap.c +++ b/keyboards/omkbd/runner3680/4x7/keymaps/default/keymap.c @@ -13,8 +13,7 @@ enum layer_number { }; enum custom_keycodes { - QWERTY = SAFE_RANGE, - ADJUST, + ADJUST = SAFE_RANGE, RGBRST }; @@ -62,13 +61,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - print("mode just switched to qwerty and this is a huge string\n"); - set_single_persistent_default_layer(_QWERTY); - } - break; - case ADJUST: if (record->event.pressed) { layer_on(_ADJUST); diff --git a/keyboards/omkbd/runner3680/4x8/keymaps/default/keymap.c b/keyboards/omkbd/runner3680/4x8/keymaps/default/keymap.c index f8d095ce16e..c2b4a5e6d1e 100644 --- a/keyboards/omkbd/runner3680/4x8/keymaps/default/keymap.c +++ b/keyboards/omkbd/runner3680/4x8/keymaps/default/keymap.c @@ -13,8 +13,7 @@ enum layer_number { }; enum custom_keycodes { - QWERTY = SAFE_RANGE, - ADJUST, + ADJUST = SAFE_RANGE, RGBRST }; @@ -62,13 +61,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - print("mode just switched to qwerty and this is a huge string\n"); - set_single_persistent_default_layer(_QWERTY); - } - break; - case ADJUST: if (record->event.pressed) { layer_on(_ADJUST); diff --git a/keyboards/omkbd/runner3680/5x6/keymaps/default/keymap.c b/keyboards/omkbd/runner3680/5x6/keymaps/default/keymap.c index 9eda782a2f9..75f034da0d3 100644 --- a/keyboards/omkbd/runner3680/5x6/keymaps/default/keymap.c +++ b/keyboards/omkbd/runner3680/5x6/keymaps/default/keymap.c @@ -13,8 +13,7 @@ enum layer_number { }; enum custom_keycodes { - QWERTY = SAFE_RANGE, - ADJUST, + ADJUST = SAFE_RANGE, RGBRST }; @@ -68,13 +67,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - print("mode just switched to qwerty and this is a huge string\n"); - set_single_persistent_default_layer(_QWERTY); - } - break; - case ADJUST: if (record->event.pressed) { layer_on(_ADJUST); diff --git a/keyboards/omkbd/runner3680/5x7/keymaps/default/keymap.c b/keyboards/omkbd/runner3680/5x7/keymaps/default/keymap.c index 599be9334ef..acf89f7fed8 100644 --- a/keyboards/omkbd/runner3680/5x7/keymaps/default/keymap.c +++ b/keyboards/omkbd/runner3680/5x7/keymaps/default/keymap.c @@ -13,8 +13,7 @@ enum layer_number { }; enum custom_keycodes { - QWERTY = SAFE_RANGE, - ADJUST, + ADJUST = SAFE_RANGE, RGBRST }; @@ -68,13 +67,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - print("mode just switched to qwerty and this is a huge string\n"); - set_single_persistent_default_layer(_QWERTY); - } - break; - case ADJUST: if (record->event.pressed) { layer_on(_ADJUST); diff --git a/keyboards/omkbd/runner3680/5x8/keymaps/JIS/keymap.c b/keyboards/omkbd/runner3680/5x8/keymaps/JIS/keymap.c index 929de444fa9..d43c5012e68 100644 --- a/keyboards/omkbd/runner3680/5x8/keymaps/JIS/keymap.c +++ b/keyboards/omkbd/runner3680/5x8/keymaps/JIS/keymap.c @@ -15,8 +15,7 @@ enum layer_number { }; enum custom_keycodes { - QWERTY = SAFE_RANGE, - ADJUST, + ADJUST = SAFE_RANGE, RGBRST }; @@ -70,13 +69,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - print("mode just switched to qwerty and this is a huge string\n"); - set_single_persistent_default_layer(_QWERTY); - } - break; - case ADJUST: if (record->event.pressed) { layer_on(_ADJUST); diff --git a/keyboards/omkbd/runner3680/5x8/keymaps/default/keymap.c b/keyboards/omkbd/runner3680/5x8/keymaps/default/keymap.c index 14abc88da76..659287f5bd3 100644 --- a/keyboards/omkbd/runner3680/5x8/keymaps/default/keymap.c +++ b/keyboards/omkbd/runner3680/5x8/keymaps/default/keymap.c @@ -13,8 +13,7 @@ enum layer_number { }; enum custom_keycodes { - QWERTY = SAFE_RANGE, - ADJUST, + ADJUST = SAFE_RANGE, RGBRST }; @@ -68,13 +67,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - print("mode just switched to qwerty and this is a huge string\n"); - set_single_persistent_default_layer(_QWERTY); - } - break; - case ADJUST: if (record->event.pressed) { layer_on(_ADJUST); diff --git a/keyboards/ortho5by12/keymaps/default/keymap.c b/keyboards/ortho5by12/keymaps/default/keymap.c index f3fcb85d145..798680dfd0d 100644 --- a/keyboards/ortho5by12/keymaps/default/keymap.c +++ b/keyboards/ortho5by12/keymaps/default/keymap.c @@ -26,14 +26,15 @@ enum preonic_layers { }; enum preonic_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, - LOWER, + LOWER = SAFE_RANGE, RAISE, BACKLIT }; +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -167,21 +168,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - return false; case LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/orthodox/keymaps/default/keymap.c b/keyboards/orthodox/keymaps/default/keymap.c index d9826c92888..39c3084aae9 100644 --- a/keyboards/orthodox/keymaps/default/keymap.c +++ b/keyboards/orthodox/keymaps/default/keymap.c @@ -34,16 +34,14 @@ enum layer_names { _ADJUST }; -enum custom_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK -}; - #define LS__SPC MT(MOD_LSFT, KC_SPC) #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT( @@ -88,27 +86,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); } - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - break; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - return false; - break; - } - return true; -} diff --git a/keyboards/palette1202/keymaps/default/keymap.c b/keyboards/palette1202/keymaps/default/keymap.c index 70f2ba311cc..0f49e46661a 100644 --- a/keyboards/palette1202/keymaps/default/keymap.c +++ b/keyboards/palette1202/keymaps/default/keymap.c @@ -19,13 +19,6 @@ #include "lib/oled_helper.h" #endif -enum custom_keycode { - Mac_CS = SAFE_RANGE, - Mac_PS, - Win_CS, - Win_PS, - IOS_CS, -}; enum layerID { MAC_CS_1 = 0, MAC_CS_2, @@ -40,6 +33,12 @@ enum layerID { SETTING, }; +#define Mac_CS PDF(MAC_CS_1) +#define Mac_PS PDF(MAC_PS_1) +#define Win_CS PDF(WIN_CS_1) +#define Win_PS PDF(WIN_PS_1) +#define IOS_CS PDF(IOS_CS_1) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Mac // Clip Studio @@ -234,44 +233,6 @@ bool encoder_update_user(uint8_t index, bool clockwise) { return true; } -// custom keycode -// switch default layer -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case Mac_CS: - if (record->event.pressed) { - set_single_persistent_default_layer(MAC_CS_1); - } - return false; - break; - case Mac_PS: - if (record->event.pressed) { - set_single_persistent_default_layer(MAC_PS_1); - } - return false; - break; - case Win_CS: - if (record->event.pressed) { - set_single_persistent_default_layer(WIN_CS_1); - } - return false; - break; - case Win_PS: - if (record->event.pressed) { - set_single_persistent_default_layer(WIN_PS_1); - } - return false; - break; - case IOS_CS: - if (record->event.pressed) { - set_single_persistent_default_layer(IOS_CS_1); - } - return false; - break; - } - return true; -} - // OLED Display #ifdef OLED_ENABLE bool oled_task_user(void) { diff --git a/keyboards/planck/keymaps/default/keymap.c b/keyboards/planck/keymaps/default/keymap.c index a1ad5c65d66..cc8a69cecaa 100644 --- a/keyboards/planck/keymaps/default/keymap.c +++ b/keyboards/planck/keymaps/default/keymap.c @@ -31,10 +31,7 @@ enum planck_layers { }; enum planck_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, - PLOVER, + PLOVER = SAFE_RANGE, BACKLIT, EXT_PLV }; @@ -42,6 +39,10 @@ enum planck_keycodes { #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -184,25 +185,6 @@ layer_state_t layer_state_set_user(layer_state_t state) { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - print("mode just switched to qwerty and this is a huge string\n"); - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - break; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - return false; - break; case BACKLIT: if (record->event.pressed) { register_code(KC_RSFT); diff --git a/keyboards/planck/rev7/keymaps/default/keymap.c b/keyboards/planck/rev7/keymaps/default/keymap.c index 85f5097332c..47ded8aba53 100644 --- a/keyboards/planck/rev7/keymaps/default/keymap.c +++ b/keyboards/planck/rev7/keymaps/default/keymap.c @@ -18,11 +18,15 @@ enum planck_layers { _QWERTY, _COLEMAK, _DVORAK, _LOWER, _RAISE, _PLOVER, _ADJUST }; -enum planck_keycodes { QWERTY = SAFE_RANGE, COLEMAK, DVORAK, PLOVER, BACKLIT, EXT_PLV }; +enum planck_keycodes { PLOVER = SAFE_RANGE, BACKLIT, EXT_PLV }; #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + /* clang-format off */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -230,25 +234,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } #endif switch (keycode) { - case QWERTY: - if (record->event.pressed) { - print("mode just switched to qwerty and this is a huge string\n"); - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - break; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - return false; - break; case BACKLIT: if (record->event.pressed) { register_code(KC_RSFT); diff --git a/keyboards/preonic/keymaps/default/keymap.c b/keyboards/preonic/keymaps/default/keymap.c index 511ac41f20c..08e92ef0d31 100644 --- a/keyboards/preonic/keymaps/default/keymap.c +++ b/keyboards/preonic/keymaps/default/keymap.c @@ -27,14 +27,15 @@ enum preonic_layers { }; enum preonic_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, - LOWER, + LOWER = SAFE_RANGE, RAISE, BACKLIT }; +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -168,24 +169,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - break; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - return false; - break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/rgbkb/zygomorph/keymaps/5x6pad/keymap.c b/keyboards/rgbkb/zygomorph/keymaps/5x6pad/keymap.c index a7026b0d779..24e578c0261 100644 --- a/keyboards/rgbkb/zygomorph/keymaps/5x6pad/keymap.c +++ b/keyboards/rgbkb/zygomorph/keymaps/5x6pad/keymap.c @@ -25,9 +25,7 @@ enum layer_number { }; enum custom_keycodes { - QWERTY = SAFE_RANGE, - MACROPAD, - FN, + FN = SAFE_RANGE, ADJ, BACKLIT, RGBRST @@ -37,7 +35,8 @@ enum macro_keycodes { KC_SAMPLEMACRO, }; - +#define QWERT PDF(_QWERTY) +#define MACROPAD PDF(_MACROPAD) #define FN_ESC LT(_FN, KC_ESC) #define FN_CAPS LT(_FN, KC_CAPS) @@ -109,18 +108,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { //uint8_t shifted = get_mods() & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; - case MACROPAD: - if(record->event.pressed) { - set_single_persistent_default_layer(_MACROPAD); - } - return false; - break; case FN: if (record->event.pressed) { //not sure how to have keyboard check mode and set it to a variable, so my work around diff --git a/keyboards/rgbkb/zygomorph/keymaps/default/keymap.c b/keyboards/rgbkb/zygomorph/keymaps/default/keymap.c index f8af28ffc86..12e21e65db4 100644 --- a/keyboards/rgbkb/zygomorph/keymaps/default/keymap.c +++ b/keyboards/rgbkb/zygomorph/keymaps/default/keymap.c @@ -17,15 +17,16 @@ enum layer_number { }; enum custom_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - FN, + FN = SAFE_RANGE, ADJ, RGBRST }; #define FN_CAPS LT(_FN, KC_CAPS) +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* / QWERTY \ * /-----------------------------------------\ /-----------------------------------------\ @@ -131,16 +132,6 @@ bool encoder_update_user(uint8_t index, bool clockwise) { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - case COLEMAK: - if(record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; case FN: if (record->event.pressed) { layer_on(_FN); diff --git a/keyboards/rgbkb/zygomorph/keymaps/default_oled/keymap.c b/keyboards/rgbkb/zygomorph/keymaps/default_oled/keymap.c index 4f2f6c9a485..b5db1c37d3a 100644 --- a/keyboards/rgbkb/zygomorph/keymaps/default_oled/keymap.c +++ b/keyboards/rgbkb/zygomorph/keymaps/default_oled/keymap.c @@ -17,15 +17,16 @@ enum layer_number { }; enum custom_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - FN, + FN = SAFE_RANGE, ADJ, RGBRST }; #define FN_CAPS LT(_FN, KC_CAPS) +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* / QWERTY \ * /-----------------------------------------\ /-----------------------------------------\ @@ -131,16 +132,6 @@ bool encoder_update_user(uint8_t index, bool clockwise) { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - case COLEMAK: - if(record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; case FN: if (record->event.pressed) { layer_on(_FN); diff --git a/keyboards/satt/comet46/keymaps/default-rgbled/keymap.c b/keyboards/satt/comet46/keymaps/default-rgbled/keymap.c index 225c3c8084a..704eb2dd70b 100644 --- a/keyboards/satt/comet46/keymaps/default-rgbled/keymap.c +++ b/keyboards/satt/comet46/keymaps/default-rgbled/keymap.c @@ -17,17 +17,13 @@ enum comet46_layers _ADJUST, }; -enum custom_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, - LOWER, - RAISE, -}; - #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -202,24 +198,3 @@ void matrix_scan_user(void) { break; } }; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - break; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - break; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - break; - } - return true; -} diff --git a/keyboards/satt/comet46/keymaps/default/keymap.c b/keyboards/satt/comet46/keymaps/default/keymap.c index 84dd07f02a9..c8c58951c87 100644 --- a/keyboards/satt/comet46/keymaps/default/keymap.c +++ b/keyboards/satt/comet46/keymaps/default/keymap.c @@ -18,17 +18,13 @@ enum comet46_layers _ADJUST, }; -enum custom_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, - LOWER, - RAISE, -}; - #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -207,22 +203,5 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { set_keylog(keycode); } #endif - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - break; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - break; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - break; - } return true; } diff --git a/keyboards/sofle/keymaps/default/keymap.c b/keyboards/sofle/keymaps/default/keymap.c index 37996c3e413..564a624c58b 100644 --- a/keyboards/sofle/keymaps/default/keymap.c +++ b/keyboards/sofle/keymaps/default/keymap.c @@ -12,14 +12,15 @@ enum sofle_layers { }; enum custom_keycodes { - KC_QWERTY = QK_USER, - KC_COLEMAK, - KC_PRVWD, + KC_PRVWD = QK_USER, KC_NXTWD, KC_LSTRT, KC_LEND }; +#define KC_QWERTY PDF(_QWERTY) +#define KC_COLEMAK PDF(_COLEMAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* * QWERTY @@ -134,16 +135,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case KC_QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - case KC_COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; case KC_PRVWD: if (record->event.pressed) { if (keymap_config.swap_lctl_lgui) { diff --git a/keyboards/sofle/keymaps/rgb_default/keymap.c b/keyboards/sofle/keymaps/rgb_default/keymap.c index fd2346e10b1..e992cf9adb2 100644 --- a/keyboards/sofle/keymaps/rgb_default/keymap.c +++ b/keyboards/sofle/keymaps/rgb_default/keymap.c @@ -76,15 +76,16 @@ enum sofle_layers { }; enum custom_keycodes { - KC_QWERTY = SAFE_RANGE, - KC_COLEMAK, - KC_COLEMAKDH, - KC_LOWER, + KC_LOWER = SAFE_RANGE, KC_RAISE, KC_ADJUST, KC_D_MUTE }; +#define KC_QWERTY PDF(_QWERTY) +#define KC_COLEMAK PDF(_COLEMAK) +#define KC_COLEMAKDH PDF(_COLEMAKDH) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* * QWERTY @@ -478,21 +479,6 @@ bool oled_task_user(void) { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case KC_QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - case KC_COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - case KC_COLEMAKDH: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAKDH); - } - return false; case KC_LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/subatomic/keymaps/default/keymap.c b/keyboards/subatomic/keymaps/default/keymap.c index 9d579ac937d..fb85228fd82 100644 --- a/keyboards/subatomic/keymaps/default/keymap.c +++ b/keyboards/subatomic/keymaps/default/keymap.c @@ -14,14 +14,15 @@ enum layer_names { }; enum subatomic_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, - LOWER, + LOWER = SAFE_RANGE, RAISE, BACKLIT }; +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -154,24 +155,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - break; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - return false; - break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/thevankeyboards/minivan/keymaps/default/keymap.c b/keyboards/thevankeyboards/minivan/keymaps/default/keymap.c index fadf9990cd9..221c66750ac 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/default/keymap.c +++ b/keyboards/thevankeyboards/minivan/keymaps/default/keymap.c @@ -18,11 +18,9 @@ #define L_CURBR LSFT(KC_LBRC) #define R_CURBR LSFT(KC_RBRC) -enum custom_keycodes { - DVORAK = SAFE_RANGE, - QWERTY, - COLEMAK -}; +#define QWERTY PDF(_QW) +#define COLEMAK PDF(_CM) +#define DVORAK PDF(_DV) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QW] = LAYOUT( /* Qwerty */ @@ -62,26 +60,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_LSFT, KC_B, KC_SPC, KC_C, _______, _______, _______ ) }; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch(keycode) { - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DV); - } - return false; - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QW); - } - return false; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_CM); - } - return false; - default: - return true; - } - return true; -}; diff --git a/keyboards/tkw/grandiceps/keymaps/default/keymap.c b/keyboards/tkw/grandiceps/keymaps/default/keymap.c index 7c2cd095062..eb9ca693535 100644 --- a/keyboards/tkw/grandiceps/keymaps/default/keymap.c +++ b/keyboards/tkw/grandiceps/keymaps/default/keymap.c @@ -26,9 +26,7 @@ enum grandiceps_layers { }; enum custom_keycodes { - KC_QWERTY = SAFE_RANGE, - KC_COLEMAK, - KC_LOWER, + KC_LOWER = SAFE_RANGE, KC_RAISE, KC_ADJUST, KC_PRVWD, @@ -39,7 +37,8 @@ enum custom_keycodes { KC_TEAMS }; - +#define KC_QWERTY PDF(_QWERTY) +#define KC_COLEMAK PDF(_COLEMAK) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* @@ -154,19 +153,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { - - switch (keycode) { - case KC_QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - case KC_COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; case KC_LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/vitamins_included/keymaps/default/keymap.c b/keyboards/vitamins_included/keymaps/default/keymap.c index 1d282e1d86f..268226ae1c9 100644 --- a/keyboards/vitamins_included/keymaps/default/keymap.c +++ b/keyboards/vitamins_included/keymaps/default/keymap.c @@ -10,14 +10,15 @@ enum layer_names { }; enum custom_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - DVORAK, - LOWER, + LOWER = SAFE_RANGE, RAISE, ADJUST }; +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -134,24 +135,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - return false; - break; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - return false; - break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/waldo/keymaps/default_split_shft_bck/keymap.c b/keyboards/waldo/keymaps/default_split_shft_bck/keymap.c index 4972754d280..1f49641e7cc 100644 --- a/keyboards/waldo/keymaps/default_split_shft_bck/keymap.c +++ b/keyboards/waldo/keymaps/default_split_shft_bck/keymap.c @@ -24,8 +24,7 @@ enum waldo_layers { }; enum waldo_keycodes { - QWERTY = SAFE_RANGE, - BACKLIT + BACKLIT = SAFE_RANGE, }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -78,12 +77,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; case BACKLIT: if (record->event.pressed) { #ifdef BACKLIGHT_ENABLE From d189de24a0797ea32d00b652fe798f5315566ab3 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 24 Nov 2024 01:07:18 +1100 Subject: [PATCH 059/365] Simple Python script to show polling rate (#24622) --- util/polling_rate.py | 82 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 util/polling_rate.py diff --git a/util/polling_rate.py b/util/polling_rate.py new file mode 100644 index 00000000000..fa3393787d4 --- /dev/null +++ b/util/polling_rate.py @@ -0,0 +1,82 @@ +#!/usr/bin/env python3 + +import usb + +USB_INTERFACE_CLASS_HID = 0x03 + +def usb_device_spec(spec): + major = spec >> 8 + minor = (spec >> 4) & 0xF + return f"{major}.{minor}" + +def usb_device_speed(speed): + if speed == 1: + return "Low-speed" + elif speed == 2: + return "Full-speed" + elif speed == 3: + return "High-speed" + elif speed == 4: + return "SuperSpeed" + elif speed == 5: + return "SuperSpeed+" + + return "Speed unknown" + +def usb_hid_interface_subclass(subclass): + if subclass == 0x00: + return "None" + elif subclass == 0x01: + return "Boot" + else: + return f"Unknown (0x{subclass:02X})" + +def usb_hid_interface_protocol(subclass, protocol): + if subclass == 0x00 and protocol == 0x00: + return "None" + elif subclass == 0x01: + if protocol == 0x00: + return "None" + elif protocol == 0x01: + return "Keyboard" + elif protocol == 0x02: + return "Mouse" + + return f"Unknown (0x{protocol:02X})" + +def usb_interface_polling_rate(speed, interval): + if speed >= 3: + return f"{interval * 125} μs ({8000 // interval} Hz)" + else: + return f"{interval} ms ({1000 // interval} Hz)" + +if __name__ == '__main__': + devices = usb.core.find(find_all=True) + + for device in devices: + try: + configuration = device.get_active_configuration() + except NotImplementedError: + continue + + hid_interfaces = [] + for interface in configuration.interfaces(): + if interface.bInterfaceClass == USB_INTERFACE_CLASS_HID: + hid_interfaces.append(interface) + + if len(hid_interfaces) > 0: + print(f"{device.manufacturer} {device.product} ({device.idVendor:04X}:{device.idProduct:04X}:{device.bcdDevice:04X}), {usb_device_spec(device.bcdUSB)} {usb_device_speed(device.speed)}") + + for interface in hid_interfaces: + print(f"└─ HID Interface {interface.bInterfaceNumber}") + subclass = interface.bInterfaceSubClass + protocol = interface.bInterfaceProtocol + print(f" ├─ Subclass: {usb_hid_interface_subclass(subclass)}") + print(f" ├─ Protocol: {usb_hid_interface_protocol(subclass, protocol)}") + + for endpoint in interface.endpoints(): + endpoint_address = endpoint.bEndpointAddress & 0xF + endpoint_direction = "IN" if endpoint.bEndpointAddress & 0x80 else "OUT" + print(f" └─ Endpoint {endpoint_address} {endpoint_direction}") + print(f" ├─ Endpoint Size: {endpoint.wMaxPacketSize} bytes") + print(f" └─ Polling Rate: {usb_interface_polling_rate(device.speed, endpoint.bInterval)}") From 1f7d10902a7e603a47b9291664fcb9ab0b21f690 Mon Sep 17 00:00:00 2001 From: Dasky <32983009+daskygit@users.noreply.github.com> Date: Sat, 23 Nov 2024 16:34:32 +0000 Subject: [PATCH 060/365] Add pointing tests (#24513) --- builddefs/build_full_test.mk | 2 + tests/mousekeys/config.h | 6 + tests/mousekeys/test.mk | 1 + tests/mousekeys/test_mousekeys.cpp | 109 ++++++++++++ tests/pointing/config.h | 6 + tests/pointing/invertandrotate/config.h | 9 + tests/pointing/invertandrotate/test.mk | 2 + .../invertandrotate/test_invertandrotate.cpp | 59 +++++++ tests/pointing/invertxy/config.h | 9 + tests/pointing/invertxy/test.mk | 2 + tests/pointing/invertxy/test_invertxy.cpp | 53 ++++++ tests/pointing/rotate180/config.h | 8 + tests/pointing/rotate180/test.mk | 2 + tests/pointing/rotate180/test_rotate180.cpp | 55 ++++++ tests/pointing/rotate270/config.h | 8 + tests/pointing/rotate270/test.mk | 2 + tests/pointing/rotate270/test_rotate270.cpp | 60 +++++++ tests/pointing/rotate90/config.h | 8 + tests/pointing/rotate90/test.mk | 2 + tests/pointing/rotate90/test_rotate90.cpp | 60 +++++++ tests/pointing/test.mk | 4 + tests/pointing/test_pointing.cpp | 166 ++++++++++++++++++ tests/test_common/mouse_report_util.cpp | 58 ++++++ tests/test_common/mouse_report_util.hpp | 38 ++++ tests/test_common/pointing_device_driver.c | 109 ++++++++++++ tests/test_common/test_driver.cpp | 1 + tests/test_common/test_driver.hpp | 42 +++++ tests/test_common/test_fixture.cpp | 4 + .../test_common/test_pointing_device_driver.h | 32 ++++ 29 files changed, 917 insertions(+) create mode 100644 tests/mousekeys/config.h create mode 100644 tests/mousekeys/test.mk create mode 100644 tests/mousekeys/test_mousekeys.cpp create mode 100644 tests/pointing/config.h create mode 100644 tests/pointing/invertandrotate/config.h create mode 100644 tests/pointing/invertandrotate/test.mk create mode 100644 tests/pointing/invertandrotate/test_invertandrotate.cpp create mode 100644 tests/pointing/invertxy/config.h create mode 100644 tests/pointing/invertxy/test.mk create mode 100644 tests/pointing/invertxy/test_invertxy.cpp create mode 100644 tests/pointing/rotate180/config.h create mode 100644 tests/pointing/rotate180/test.mk create mode 100644 tests/pointing/rotate180/test_rotate180.cpp create mode 100644 tests/pointing/rotate270/config.h create mode 100644 tests/pointing/rotate270/test.mk create mode 100644 tests/pointing/rotate270/test_rotate270.cpp create mode 100644 tests/pointing/rotate90/config.h create mode 100644 tests/pointing/rotate90/test.mk create mode 100644 tests/pointing/rotate90/test_rotate90.cpp create mode 100644 tests/pointing/test.mk create mode 100644 tests/pointing/test_pointing.cpp create mode 100644 tests/test_common/mouse_report_util.cpp create mode 100644 tests/test_common/mouse_report_util.hpp create mode 100644 tests/test_common/pointing_device_driver.c create mode 100644 tests/test_common/test_pointing_device_driver.h diff --git a/builddefs/build_full_test.mk b/builddefs/build_full_test.mk index 63f9fea915d..5cae327c6c7 100644 --- a/builddefs/build_full_test.mk +++ b/builddefs/build_full_test.mk @@ -21,8 +21,10 @@ $(TEST_OUTPUT)_SRC := \ $(SRC) \ $(QUANTUM_PATH)/keymap_introspection.c \ tests/test_common/matrix.c \ + tests/test_common/pointing_device_driver.c \ tests/test_common/test_driver.cpp \ tests/test_common/keyboard_report_util.cpp \ + tests/test_common/mouse_report_util.cpp \ tests/test_common/keycode_util.cpp \ tests/test_common/keycode_table.cpp \ tests/test_common/test_fixture.cpp \ diff --git a/tests/mousekeys/config.h b/tests/mousekeys/config.h new file mode 100644 index 00000000000..76bbbe8daea --- /dev/null +++ b/tests/mousekeys/config.h @@ -0,0 +1,6 @@ +// Copyright 2024 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "test_common.h" diff --git a/tests/mousekeys/test.mk b/tests/mousekeys/test.mk new file mode 100644 index 00000000000..6c605daecf5 --- /dev/null +++ b/tests/mousekeys/test.mk @@ -0,0 +1 @@ +MOUSEKEY_ENABLE = yes diff --git a/tests/mousekeys/test_mousekeys.cpp b/tests/mousekeys/test_mousekeys.cpp new file mode 100644 index 00000000000..a1b8e06cf7a --- /dev/null +++ b/tests/mousekeys/test_mousekeys.cpp @@ -0,0 +1,109 @@ +// Copyright 2024 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "gtest/gtest.h" +#include "mouse_report_util.hpp" +#include "test_common.hpp" + +using testing::_; + +struct MouseKeyExpectations { + int16_t x; + int16_t y; + int16_t h; + int16_t v; + uint16_t button_mask; +}; + +class Mousekey : public TestFixture {}; +class MousekeyParametrized : public ::testing::WithParamInterface>, public Mousekey {}; + +TEST_F(Mousekey, SendMouseNotCalledWhenNoKeyIsPressed) { + TestDriver driver; + EXPECT_NO_MOUSE_REPORT(driver); + run_one_scan_loop(); +} + +TEST_F(Mousekey, PressAndHoldCursorUpIsCorrectlyReported) { + TestDriver driver; + KeymapKey mouse_key = KeymapKey{0, 0, 0, QK_MOUSE_CURSOR_UP}; + + set_keymap({mouse_key}); + + EXPECT_MOUSE_REPORT(driver, (0, -8, 0, 0, 0)); + mouse_key.press(); + run_one_scan_loop(); + + EXPECT_MOUSE_REPORT(driver, (0, -2, 0, 0, 0)); + idle_for(MOUSEKEY_INTERVAL); + + EXPECT_EMPTY_MOUSE_REPORT(driver); + mouse_key.release(); + run_one_scan_loop(); + + VERIFY_AND_CLEAR(driver); +} + +TEST_F(Mousekey, PressAndHoldButtonOneCorrectlyReported) { + TestDriver driver; + KeymapKey mouse_key = KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_1}; + + set_keymap({mouse_key}); + + EXPECT_MOUSE_REPORT(driver, (0, 0, 0, 0, 1)); + mouse_key.press(); + run_one_scan_loop(); + + idle_for(MOUSEKEY_INTERVAL); + + EXPECT_EMPTY_MOUSE_REPORT(driver); + mouse_key.release(); + run_one_scan_loop(); + + VERIFY_AND_CLEAR(driver); +} + +TEST_P(MousekeyParametrized, PressAndReleaseIsCorrectlyReported) { + TestDriver driver; + KeymapKey mouse_key = GetParam().first; + MouseKeyExpectations expectations = GetParam().second; + + set_keymap({mouse_key}); + + EXPECT_MOUSE_REPORT(driver, (expectations.x, expectations.y, expectations.h, expectations.v, expectations.button_mask)); + mouse_key.press(); + run_one_scan_loop(); + + EXPECT_EMPTY_MOUSE_REPORT(driver); + mouse_key.release(); + run_one_scan_loop(); + + EXPECT_NO_MOUSE_REPORT(driver); + run_one_scan_loop(); + + VERIFY_AND_CLEAR(driver); +} +// clang-format off +INSTANTIATE_TEST_CASE_P( + Keys, + MousekeyParametrized, + ::testing::Values( + // Key , X, Y, H, V, Buttons Mask + std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_1}, MouseKeyExpectations{ 0, 0, 0, 0, 1}), + std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_2}, MouseKeyExpectations{ 0, 0, 0, 0, 2}), + std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_3}, MouseKeyExpectations{ 0, 0, 0, 0, 4}), + std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_4}, MouseKeyExpectations{ 0, 0, 0, 0, 8}), + std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_5}, MouseKeyExpectations{ 0, 0, 0, 0, 16}), + std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_6}, MouseKeyExpectations{ 0, 0, 0, 0, 32}), + std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_7}, MouseKeyExpectations{ 0, 0, 0, 0, 64}), + std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_8}, MouseKeyExpectations{ 0, 0, 0, 0, 128}), + std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_CURSOR_UP}, MouseKeyExpectations{ 0,-8, 0, 0, 0}), + std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_CURSOR_DOWN}, MouseKeyExpectations{ 0, 8, 0, 0, 0}), + std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_CURSOR_LEFT}, MouseKeyExpectations{-8, 0, 0, 0, 0}), + std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_CURSOR_RIGHT}, MouseKeyExpectations{ 8, 0, 0, 0, 0}), + std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_WHEEL_UP}, MouseKeyExpectations{ 0, 0, 0, 1, 0}), + std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_WHEEL_DOWN}, MouseKeyExpectations{ 0, 0, 0,-1, 0}), + std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_WHEEL_LEFT}, MouseKeyExpectations{ 0, 0,-1, 0, 0}), + std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_WHEEL_RIGHT}, MouseKeyExpectations{ 0, 0, 1, 0, 0}) + )); +// clang-format on diff --git a/tests/pointing/config.h b/tests/pointing/config.h new file mode 100644 index 00000000000..76bbbe8daea --- /dev/null +++ b/tests/pointing/config.h @@ -0,0 +1,6 @@ +// Copyright 2024 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "test_common.h" diff --git a/tests/pointing/invertandrotate/config.h b/tests/pointing/invertandrotate/config.h new file mode 100644 index 00000000000..a3f3df7a54e --- /dev/null +++ b/tests/pointing/invertandrotate/config.h @@ -0,0 +1,9 @@ +// Copyright 2024 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "test_common.h" + +#define POINTING_DEVICE_INVERT_X +#define POINTING_DEVICE_ROTATION_90 diff --git a/tests/pointing/invertandrotate/test.mk b/tests/pointing/invertandrotate/test.mk new file mode 100644 index 00000000000..ba224d74f0a --- /dev/null +++ b/tests/pointing/invertandrotate/test.mk @@ -0,0 +1,2 @@ +POINTING_DEVICE_ENABLE = yes +POINTING_DEVICE_DRIVER = custom diff --git a/tests/pointing/invertandrotate/test_invertandrotate.cpp b/tests/pointing/invertandrotate/test_invertandrotate.cpp new file mode 100644 index 00000000000..b47739f415b --- /dev/null +++ b/tests/pointing/invertandrotate/test_invertandrotate.cpp @@ -0,0 +1,59 @@ +// Copyright 2024 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "gtest/gtest.h" +#include "mouse_report_util.hpp" +#include "test_common.hpp" +#include "test_pointing_device_driver.h" + +using testing::_; + +struct SimpleReport { + int16_t x; + int16_t y; + int16_t h; + int16_t v; +}; + +class Pointing : public TestFixture {}; +class PointingInvertAndRotateParametrized : public ::testing::WithParamInterface>, public Pointing {}; + +TEST_P(PointingInvertAndRotateParametrized, PointingInvertAndRotateOrder) { + TestDriver driver; + SimpleReport input = GetParam().first; + SimpleReport expectations = GetParam().second; + + pd_set_x(input.x); + pd_set_y(input.y); + pd_set_h(input.h); + pd_set_v(input.v); + + EXPECT_MOUSE_REPORT(driver, (expectations.x, expectations.y, expectations.h, expectations.v, 0)); + run_one_scan_loop(); + + // EXPECT_EMPTY_MOUSE_REPORT(driver); + pd_clear_movement(); + run_one_scan_loop(); + + EXPECT_NO_MOUSE_REPORT(driver); + run_one_scan_loop(); + + VERIFY_AND_CLEAR(driver); +} +// clang-format off +INSTANTIATE_TEST_CASE_P( + InvertAndRotate, + PointingInvertAndRotateParametrized, + ::testing::Values( + // Input Expected // Actual Result - Rotate 90 then Invert X + std::make_pair(SimpleReport{ -1, 0, 0, 0}, SimpleReport{ 0, 1, 0, 0}), // LEFT - DOWN + std::make_pair(SimpleReport{ 0, -1, 0, 0}, SimpleReport{ 1, 0, 0, 0}), // UP - RIGHT + std::make_pair(SimpleReport{ 1, 0, 0, 0}, SimpleReport{ 0, -1, 0, 0}), // RIGHT - UP + std::make_pair(SimpleReport{ 0, 1, 0, 0}, SimpleReport{ -1, 0, 0, 0}) // DOWN - LEFT + // Input Expected // Invert X then Rotate 90 + // std::make_pair(SimpleReport{ -1, 0, 0, 0}, SimpleReport{ 0, -1, 0, 0}), // LEFT - UP + // std::make_pair(SimpleReport{ 0, -1, 0, 0}, SimpleReport{ -1, 0, 0, 0}), // UP - LEFT + // std::make_pair(SimpleReport{ 1, 0, 0, 0}, SimpleReport{ 0, 1, 0, 0}), // RIGHT - DOWN + // std::make_pair(SimpleReport{ 0, 1, 0, 0}, SimpleReport{ 1, 0, 0, 0}) // DOWN - RIGHT + )); +// clang-format on diff --git a/tests/pointing/invertxy/config.h b/tests/pointing/invertxy/config.h new file mode 100644 index 00000000000..6b29185d371 --- /dev/null +++ b/tests/pointing/invertxy/config.h @@ -0,0 +1,9 @@ +// Copyright 2024 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "test_common.h" + +#define POINTING_DEVICE_INVERT_X +#define POINTING_DEVICE_INVERT_Y diff --git a/tests/pointing/invertxy/test.mk b/tests/pointing/invertxy/test.mk new file mode 100644 index 00000000000..ba224d74f0a --- /dev/null +++ b/tests/pointing/invertxy/test.mk @@ -0,0 +1,2 @@ +POINTING_DEVICE_ENABLE = yes +POINTING_DEVICE_DRIVER = custom diff --git a/tests/pointing/invertxy/test_invertxy.cpp b/tests/pointing/invertxy/test_invertxy.cpp new file mode 100644 index 00000000000..014f6f3cd03 --- /dev/null +++ b/tests/pointing/invertxy/test_invertxy.cpp @@ -0,0 +1,53 @@ +// Copyright 2024 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "gtest/gtest.h" +#include "mouse_report_util.hpp" +#include "test_common.hpp" +#include "test_pointing_device_driver.h" + +using testing::_; + +struct SimpleReport { + int16_t x; + int16_t y; + int16_t h; + int16_t v; +}; + +class Pointing : public TestFixture {}; +class PointingInvertXYParametrized : public ::testing::WithParamInterface>, public Pointing {}; + +TEST_P(PointingInvertXYParametrized, PointingInvertXY) { + TestDriver driver; + SimpleReport input = GetParam().first; + SimpleReport expectations = GetParam().second; + + pd_set_x(input.x); + pd_set_y(input.y); + pd_set_h(input.h); + pd_set_v(input.v); + + EXPECT_MOUSE_REPORT(driver, (expectations.x, expectations.y, expectations.h, expectations.v, 0)); + run_one_scan_loop(); + + // EXPECT_EMPTY_MOUSE_REPORT(driver); + pd_clear_movement(); + run_one_scan_loop(); + + EXPECT_NO_MOUSE_REPORT(driver); + run_one_scan_loop(); + + VERIFY_AND_CLEAR(driver); +} +// clang-format off +INSTANTIATE_TEST_CASE_P( + X_Y_XY, + PointingInvertXYParametrized, + ::testing::Values( + // Input Expected + std::make_pair(SimpleReport{ 33, 0, 0, 0}, SimpleReport{ -33, 0, 0, 0}), + std::make_pair(SimpleReport{ 0, -127, 0, 0}, SimpleReport{ 0, 127, 0, 0}), + std::make_pair(SimpleReport{ 10, -20, 0, 0}, SimpleReport{ -10, 20, 0, 0}) + )); +// clang-format on diff --git a/tests/pointing/rotate180/config.h b/tests/pointing/rotate180/config.h new file mode 100644 index 00000000000..a80f5482fd4 --- /dev/null +++ b/tests/pointing/rotate180/config.h @@ -0,0 +1,8 @@ +// Copyright 2024 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "test_common.h" + +#define POINTING_DEVICE_ROTATION_180 diff --git a/tests/pointing/rotate180/test.mk b/tests/pointing/rotate180/test.mk new file mode 100644 index 00000000000..ba224d74f0a --- /dev/null +++ b/tests/pointing/rotate180/test.mk @@ -0,0 +1,2 @@ +POINTING_DEVICE_ENABLE = yes +POINTING_DEVICE_DRIVER = custom diff --git a/tests/pointing/rotate180/test_rotate180.cpp b/tests/pointing/rotate180/test_rotate180.cpp new file mode 100644 index 00000000000..736cf9ea25c --- /dev/null +++ b/tests/pointing/rotate180/test_rotate180.cpp @@ -0,0 +1,55 @@ +// Copyright 2024 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "gtest/gtest.h" +#include "mouse_report_util.hpp" +#include "test_common.hpp" +#include "test_pointing_device_driver.h" + +using testing::_; + +struct SimpleReport { + int16_t x; + int16_t y; + int16_t h; + int16_t v; +}; + +class Pointing : public TestFixture {}; +class PointingRotateParametrized : public ::testing::WithParamInterface>, public Pointing {}; + +TEST_P(PointingRotateParametrized, PointingRotateXY) { + TestDriver driver; + SimpleReport input = GetParam().first; + SimpleReport expectations = GetParam().second; + + pd_set_x(input.x); + pd_set_y(input.y); + pd_set_h(input.h); + pd_set_v(input.v); + + EXPECT_MOUSE_REPORT(driver, (expectations.x, expectations.y, expectations.h, expectations.v, 0)); + run_one_scan_loop(); + + // EXPECT_EMPTY_MOUSE_REPORT(driver); + pd_clear_movement(); + run_one_scan_loop(); + + EXPECT_NO_MOUSE_REPORT(driver); + run_one_scan_loop(); + + VERIFY_AND_CLEAR(driver); +} +// clang-format off +INSTANTIATE_TEST_CASE_P( + Rotate180, + PointingRotateParametrized, + ::testing::Values( + // Input Expected + // Rotate Clockwise + std::make_pair(SimpleReport{ 0,-1, 0, 0}, SimpleReport{ 0, 1, 0, 0}), // UP - DOWN + std::make_pair(SimpleReport{ 0, 1, 0, 0}, SimpleReport{ 0,-1, 0, 0}), // DOWN - UP + std::make_pair(SimpleReport{ 1, 0, 0, 0}, SimpleReport{-1, 0, 0, 0}), // RIGHT - LEFT + std::make_pair(SimpleReport{ -1, 0, 0, 0}, SimpleReport{ 1, 0, 0, 0}) // LEFT - RIGHT + )); +// clang-format on diff --git a/tests/pointing/rotate270/config.h b/tests/pointing/rotate270/config.h new file mode 100644 index 00000000000..3977dd95e6c --- /dev/null +++ b/tests/pointing/rotate270/config.h @@ -0,0 +1,8 @@ +// Copyright 2024 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "test_common.h" + +#define POINTING_DEVICE_ROTATION_270 diff --git a/tests/pointing/rotate270/test.mk b/tests/pointing/rotate270/test.mk new file mode 100644 index 00000000000..ba224d74f0a --- /dev/null +++ b/tests/pointing/rotate270/test.mk @@ -0,0 +1,2 @@ +POINTING_DEVICE_ENABLE = yes +POINTING_DEVICE_DRIVER = custom diff --git a/tests/pointing/rotate270/test_rotate270.cpp b/tests/pointing/rotate270/test_rotate270.cpp new file mode 100644 index 00000000000..6735f062489 --- /dev/null +++ b/tests/pointing/rotate270/test_rotate270.cpp @@ -0,0 +1,60 @@ +// Copyright 2024 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "gtest/gtest.h" +#include "mouse_report_util.hpp" +#include "test_common.hpp" +#include "test_pointing_device_driver.h" + +using testing::_; + +struct SimpleReport { + int16_t x; + int16_t y; + int16_t h; + int16_t v; +}; + +class Pointing : public TestFixture {}; +class PointingRotateParametrized : public ::testing::WithParamInterface>, public Pointing {}; + +TEST_P(PointingRotateParametrized, PointingRotateXY) { + TestDriver driver; + SimpleReport input = GetParam().first; + SimpleReport expectations = GetParam().second; + + pd_set_x(input.x); + pd_set_y(input.y); + pd_set_h(input.h); + pd_set_v(input.v); + + EXPECT_MOUSE_REPORT(driver, (expectations.x, expectations.y, expectations.h, expectations.v, 0)); + run_one_scan_loop(); + + // EXPECT_EMPTY_MOUSE_REPORT(driver); + pd_clear_movement(); + run_one_scan_loop(); + + EXPECT_NO_MOUSE_REPORT(driver); + run_one_scan_loop(); + + VERIFY_AND_CLEAR(driver); +} +// clang-format off +INSTANTIATE_TEST_CASE_P( + Rotate270, + PointingRotateParametrized, + ::testing::Values( + // Input Expected + // Actual Result - Rotate Anticlockwise + std::make_pair(SimpleReport{ 0,-1, 0, 0}, SimpleReport{ 1, 0, 0, 0}), // UP - RIGHT + std::make_pair(SimpleReport{ 0, 1, 0, 0}, SimpleReport{-1, 0, 0, 0}), // DOWN - LEFT + std::make_pair(SimpleReport{ 1, 0, 0, 0}, SimpleReport{ 0, 1, 0, 0}), // RIGHT - DOWN + std::make_pair(SimpleReport{ -1, 0, 0, 0}, SimpleReport{ 0,-1, 0, 0}) // LEFT - UP + // Rotate Clockwise + // std::make_pair(SimpleReport{ 0,-1, 0, 0}, SimpleReport{-1, 0, 0, 0}), // UP - LEFT + // std::make_pair(SimpleReport{ 0, 1, 0, 0}, SimpleReport{ 1, 0, 0, 0}), // DOWN - RIGHT + // std::make_pair(SimpleReport{ 1, 0, 0, 0}, SimpleReport{ 0,-1, 0, 0}), // RIGHT - UP + // std::make_pair(SimpleReport{ -1, 0, 0, 0}, SimpleReport{ 0, 1, 0, 0}) // LEFT - DOWN + )); +// clang-format on diff --git a/tests/pointing/rotate90/config.h b/tests/pointing/rotate90/config.h new file mode 100644 index 00000000000..3a18ec92e94 --- /dev/null +++ b/tests/pointing/rotate90/config.h @@ -0,0 +1,8 @@ +// Copyright 2024 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "test_common.h" + +#define POINTING_DEVICE_ROTATION_90 diff --git a/tests/pointing/rotate90/test.mk b/tests/pointing/rotate90/test.mk new file mode 100644 index 00000000000..ba224d74f0a --- /dev/null +++ b/tests/pointing/rotate90/test.mk @@ -0,0 +1,2 @@ +POINTING_DEVICE_ENABLE = yes +POINTING_DEVICE_DRIVER = custom diff --git a/tests/pointing/rotate90/test_rotate90.cpp b/tests/pointing/rotate90/test_rotate90.cpp new file mode 100644 index 00000000000..5c44faad0ab --- /dev/null +++ b/tests/pointing/rotate90/test_rotate90.cpp @@ -0,0 +1,60 @@ +// Copyright 2024 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "gtest/gtest.h" +#include "mouse_report_util.hpp" +#include "test_common.hpp" +#include "test_pointing_device_driver.h" + +using testing::_; + +struct SimpleReport { + int16_t x; + int16_t y; + int16_t h; + int16_t v; +}; + +class Pointing : public TestFixture {}; +class PointingRotateParametrized : public ::testing::WithParamInterface>, public Pointing {}; + +TEST_P(PointingRotateParametrized, PointingRotateXY) { + TestDriver driver; + SimpleReport input = GetParam().first; + SimpleReport expectations = GetParam().second; + + pd_set_x(input.x); + pd_set_y(input.y); + pd_set_h(input.h); + pd_set_v(input.v); + + EXPECT_MOUSE_REPORT(driver, (expectations.x, expectations.y, expectations.h, expectations.v, 0)); + run_one_scan_loop(); + + // EXPECT_EMPTY_MOUSE_REPORT(driver); + pd_clear_movement(); + run_one_scan_loop(); + + EXPECT_NO_MOUSE_REPORT(driver); + run_one_scan_loop(); + + VERIFY_AND_CLEAR(driver); +} +// clang-format off +INSTANTIATE_TEST_CASE_P( + Rotate90, + PointingRotateParametrized, + ::testing::Values( + // Input Expected + // Actual Result - Rotate Anticlockwise + std::make_pair(SimpleReport{ 0,-1, 0, 0}, SimpleReport{-1, 0, 0, 0}), // UP - LEFT + std::make_pair(SimpleReport{ 0, 1, 0, 0}, SimpleReport{ 1, 0, 0, 0}), // DOWN - RIGHT + std::make_pair(SimpleReport{ 1, 0, 0, 0}, SimpleReport{ 0,-1, 0, 0}), // RIGHT - UP + std::make_pair(SimpleReport{ -1, 0, 0, 0}, SimpleReport{ 0, 1, 0, 0}) // LEFT - DOWN + // Rotate Clockwise + // std::make_pair(SimpleReport{ 0,-1, 0, 0}, SimpleReport{ 1, 0, 0, 0}), // UP - RIGHT + // std::make_pair(SimpleReport{ 0, 1, 0, 0}, SimpleReport{-1, 0, 0, 0}), // DOWN - LEFT + // std::make_pair(SimpleReport{ 1, 0, 0, 0}, SimpleReport{ 0,-1, 0, 0}), // RIGHT - DOWN + // std::make_pair(SimpleReport{ -1, 0, 0, 0}, SimpleReport{ 0, 1, 0, 0}) // LEFT - UP + )); +// clang-format on diff --git a/tests/pointing/test.mk b/tests/pointing/test.mk new file mode 100644 index 00000000000..95fde21cb92 --- /dev/null +++ b/tests/pointing/test.mk @@ -0,0 +1,4 @@ +POINTING_DEVICE_ENABLE = yes +MOUSEKEY_ENABLE = no +POINTING_DEVICE_DRIVER = custom + diff --git a/tests/pointing/test_pointing.cpp b/tests/pointing/test_pointing.cpp new file mode 100644 index 00000000000..d59d0149251 --- /dev/null +++ b/tests/pointing/test_pointing.cpp @@ -0,0 +1,166 @@ +// Copyright 2024 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "gtest/gtest.h" +#include "mouse_report_util.hpp" +#include "test_common.hpp" +#include "test_pointing_device_driver.h" +#include "mousekey.h" + +using testing::_; + +class Pointing : public TestFixture {}; +class PointingButtonsViaMousekeysParametrized : public ::testing::WithParamInterface>, public Pointing {}; + +TEST_F(Pointing, SendMouseIsNotCalledWithNoInput) { + TestDriver driver; + EXPECT_NO_MOUSE_REPORT(driver); + run_one_scan_loop(); +} + +TEST_F(Pointing, Xnegative) { + TestDriver driver; + + pd_set_x(-10); + EXPECT_MOUSE_REPORT(driver, (-10, 0, 0, 0, 0)); + run_one_scan_loop(); + + pd_clear_movement(); + // EXPECT_EMPTY_MOUSE_REPORT(driver); + run_one_scan_loop(); + + VERIFY_AND_CLEAR(driver); +} + +TEST_F(Pointing, Xpositive) { + TestDriver driver; + + pd_set_x(10); + EXPECT_MOUSE_REPORT(driver, (10, 0, 0, 0, 0)); + run_one_scan_loop(); + + pd_clear_movement(); + // EXPECT_EMPTY_MOUSE_REPORT(driver); + run_one_scan_loop(); + + VERIFY_AND_CLEAR(driver); +} + +TEST_F(Pointing, Ynegative) { + TestDriver driver; + + pd_set_y(-20); + EXPECT_MOUSE_REPORT(driver, (0, -20, 0, 0, 0)); + run_one_scan_loop(); + + pd_clear_movement(); + // EXPECT_EMPTY_MOUSE_REPORT(driver); + run_one_scan_loop(); + + VERIFY_AND_CLEAR(driver); +} + +TEST_F(Pointing, Ypositive) { + TestDriver driver; + + pd_set_y(20); + EXPECT_MOUSE_REPORT(driver, (0, 20, 0, 0, 0)); + run_one_scan_loop(); + + pd_clear_movement(); + // EXPECT_EMPTY_MOUSE_REPORT(driver); + run_one_scan_loop(); + + VERIFY_AND_CLEAR(driver); +} + +TEST_F(Pointing, XandY) { + TestDriver driver; + + pd_set_x(-50); + pd_set_y(100); + EXPECT_MOUSE_REPORT(driver, (-50, 100, 0, 0, 0)); + run_one_scan_loop(); + + pd_clear_movement(); + // EXPECT_EMPTY_MOUSE_REPORT(driver); + run_one_scan_loop(); + + VERIFY_AND_CLEAR(driver); +} + +TEST_F(Pointing, CorrectButtonIsReportedWhenPressed) { + TestDriver driver; + + EXPECT_MOUSE_REPORT(driver, (0, 0, 0, 0, 1)); + pd_press_button(POINTING_DEVICE_BUTTON1); + run_one_scan_loop(); + + EXPECT_EMPTY_MOUSE_REPORT(driver); + pd_release_button(POINTING_DEVICE_BUTTON1); + run_one_scan_loop(); + + EXPECT_NO_MOUSE_REPORT(driver); + run_one_scan_loop(); + + pd_clear_all_buttons(); + run_one_scan_loop(); + + VERIFY_AND_CLEAR(driver); +} + +TEST_F(Pointing, CorrectButtonIsReportedWhenKeyPressed) { + TestDriver driver; + auto key = KeymapKey(0, 0, 0, KC_MS_BTN1); + set_keymap({key}); + + EXPECT_MOUSE_REPORT(driver, (0, 0, 0, 0, 1)); + key.press(); + run_one_scan_loop(); + + EXPECT_EMPTY_MOUSE_REPORT(driver); + key.release(); + run_one_scan_loop(); + + EXPECT_NO_MOUSE_REPORT(driver); + run_one_scan_loop(); + + VERIFY_AND_CLEAR(driver); +} + +TEST_P(PointingButtonsViaMousekeysParametrized, MouseKeysViaPointingDriver) { + TestDriver driver; + KeymapKey mouse_key = GetParam().first; + uint8_t button_mask = GetParam().second; + + set_keymap({mouse_key}); + + EXPECT_MOUSE_REPORT(driver, (0, 0, 0, 0, button_mask)); + mouse_key.press(); + run_one_scan_loop(); + + EXPECT_EMPTY_MOUSE_REPORT(driver); + mouse_key.release(); + run_one_scan_loop(); + + EXPECT_NO_MOUSE_REPORT(driver); + run_one_scan_loop(); + + VERIFY_AND_CLEAR(driver); +} +// clang-format off +INSTANTIATE_TEST_CASE_P( + ButtonsOneToEight, + PointingButtonsViaMousekeysParametrized, + ::testing::Values( + // Key , Buttons Mask + std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_1}, 1), + std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_2}, 2), + std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_3}, 4), + std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_4}, 8), + std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_5}, 16), + std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_6}, 32), + std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_7}, 64), + std::make_pair(KeymapKey{0, 0, 0, QK_MOUSE_BUTTON_8}, 128) + )); +// clang-format on diff --git a/tests/test_common/mouse_report_util.cpp b/tests/test_common/mouse_report_util.cpp new file mode 100644 index 00000000000..60cdeced24f --- /dev/null +++ b/tests/test_common/mouse_report_util.cpp @@ -0,0 +1,58 @@ +/* Copyright 2017 Fred Sundvik + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "mouse_report_util.hpp" +#include +#include +#include + +using namespace testing; + +bool operator==(const report_mouse_t& lhs, const report_mouse_t& rhs) { + return lhs.x == rhs.x && lhs.y == rhs.y && lhs.h == rhs.h && lhs.v == rhs.v && lhs.buttons == rhs.buttons; +} + +std::ostream& operator<<(std::ostream& os, const report_mouse_t& report) { + os << std::setw(10) << std::left << "mouse report: "; + + if (report.x == 0 && report.y == 0 && report.h == 0 && report.v == 0 && report.buttons == 0) { + return os << "empty" << std::endl; + } + + os << "(X:" << (int)report.x << ", Y:" << (int)report.y << ", H:" << (int)report.h << ", V:" << (int)report.v << ", B:" << (int)report.buttons << ")"; + return os << std::endl; +} + +MouseReportMatcher::MouseReportMatcher(int16_t x, int16_t y, int8_t h, int8_t v, uint8_t button_mask) { + memset(&m_report, 0, sizeof(report_mouse_t)); + m_report.x = x; + m_report.y = y; + m_report.h = h; + m_report.v = v; + m_report.buttons = button_mask; +} + +bool MouseReportMatcher::MatchAndExplain(report_mouse_t& report, MatchResultListener* listener) const { + return m_report == report; +} + +void MouseReportMatcher::DescribeTo(::std::ostream* os) const { + *os << "is equal to " << m_report; +} + +void MouseReportMatcher::DescribeNegationTo(::std::ostream* os) const { + *os << "is not equal to " << m_report; +} diff --git a/tests/test_common/mouse_report_util.hpp b/tests/test_common/mouse_report_util.hpp new file mode 100644 index 00000000000..645f6aa58c6 --- /dev/null +++ b/tests/test_common/mouse_report_util.hpp @@ -0,0 +1,38 @@ +/* Copyright 2017 Fred Sundvik + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once +#include "report.h" +#include +#include "gmock/gmock.h" + +bool operator==(const report_mouse_t& lhs, const report_mouse_t& rhs); +std::ostream& operator<<(std::ostream& stream, const report_mouse_t& value); + +class MouseReportMatcher : public testing::MatcherInterface { + public: + MouseReportMatcher(int16_t x, int16_t y, int8_t h, int8_t v, uint8_t button_mask); + virtual bool MatchAndExplain(report_mouse_t& report, testing::MatchResultListener* listener) const override; + virtual void DescribeTo(::std::ostream* os) const override; + virtual void DescribeNegationTo(::std::ostream* os) const override; + + private: + report_mouse_t m_report; +}; + +inline testing::Matcher MouseReport(int16_t x, int16_t y, int8_t h, int8_t v, uint8_t button_mask) { + return testing::MakeMatcher(new MouseReportMatcher(x, y, h, v, button_mask)); +} diff --git a/tests/test_common/pointing_device_driver.c b/tests/test_common/pointing_device_driver.c new file mode 100644 index 00000000000..b64dbad5063 --- /dev/null +++ b/tests/test_common/pointing_device_driver.c @@ -0,0 +1,109 @@ +// Copyright 2024 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "report.h" +#include "test_pointing_device_driver.h" +#include + +typedef struct { + bool pressed; + bool dirty; +} pd_button_state_t; + +typedef struct { + int16_t x; + int16_t y; + int16_t h; + int16_t v; + pd_button_state_t button_state[8]; + uint16_t cpi; + bool initiated; +} pd_config_t; + +static pd_config_t pd_config = {0}; + +void pointing_device_driver_init(void) { + pd_set_init(true); +} + +report_mouse_t pointing_device_driver_get_report(report_mouse_t mouse_report) { + for (uint8_t i = 0; i < 8; i++) { + if (pd_config.button_state[i].dirty) { + pd_config.button_state[i].dirty = false; + if (pd_config.button_state[i].pressed) { + mouse_report.buttons |= 1 << (i); + } else { + mouse_report.buttons &= ~(1 << (i)); + } + } + } + mouse_report.x = pd_config.x; + mouse_report.y = pd_config.y; + mouse_report.h = pd_config.h; + mouse_report.v = pd_config.v; + return mouse_report; +} + +__attribute__((weak)) uint16_t pointing_device_driver_get_cpi(void) { + return pd_config.cpi; +} + +__attribute__((weak)) void pointing_device_driver_set_cpi(uint16_t cpi) { + pd_config.cpi = cpi; +} + +void pd_press_button(uint8_t btn) { + pd_config.button_state[btn].dirty = true; + pd_config.button_state[btn].pressed = true; +} +void pd_release_button(uint8_t btn) { + pd_config.button_state[btn].dirty = true; + pd_config.button_state[btn].pressed = false; +} + +void pd_clear_all_buttons(void) { + for (uint8_t i = 0; i < 8; i++) { + pd_config.button_state[i].dirty = true; + pd_config.button_state[i].pressed = false; + } +} + +void pd_set_x(int16_t x) { + pd_config.x = x; +} + +void pd_clear_x(void) { + pd_set_x(0); +} + +void pd_set_y(int16_t y) { + pd_config.y = y; +} +void pd_clear_y(void) { + pd_set_y(0); +} + +void pd_set_h(int16_t h) { + pd_config.h = h; +} +void pd_clear_h(void) { + pd_set_h(0); +} + +void pd_set_v(int16_t v) { + pd_config.v = v; +} +void pd_clear_v(void) { + pd_set_v(0); +} + +void pd_clear_movement(void) { + pd_set_x(0); + pd_set_y(0); + pd_set_h(0); + pd_set_v(0); +} + +void pd_set_init(bool success) { + pd_config.initiated = success; +} diff --git a/tests/test_common/test_driver.cpp b/tests/test_common/test_driver.cpp index d410b225f9d..70b920ac86a 100644 --- a/tests/test_common/test_driver.cpp +++ b/tests/test_common/test_driver.cpp @@ -54,6 +54,7 @@ void TestDriver::send_nkro(report_nkro_t* report) { } void TestDriver::send_mouse(report_mouse_t* report) { + test_logger.trace() << std::setw(10) << std::left << "send_mouse: (X:" << (int)report->x << ", Y:" << (int)report->y << ", H:" << (int)report->h << ", V:" << (int)report->v << ", B:" << (int)report->buttons << ")" << std::endl; m_this->send_mouse_mock(*report); } diff --git a/tests/test_common/test_driver.hpp b/tests/test_common/test_driver.hpp index ec75d3fff22..fea8225953a 100644 --- a/tests/test_common/test_driver.hpp +++ b/tests/test_common/test_driver.hpp @@ -66,6 +66,25 @@ class TestDriver { */ #define EXPECT_REPORT(driver, report) EXPECT_CALL((driver), send_keyboard_mock(KeyboardReport report)) +/** + * @brief Sets gmock expectation that a mouse report of `report` will be sent. + * For this macro to parse correctly, the `report` arg must be surrounded by + * parentheses ( ). For instance, + * + * // Expect that a report of "X:-10 Y:0 H:0 V:10 BTN:1 " is sent to the host. + * EXPECT_REPORT(driver, (-10, 0, 0, 0, 1)); + * + * is shorthand for + * + * EXPECT_CALL(driver, send_mouse_mock(MouseReport(-10, 0, 0, 0, 1))); + * + * It is possible to use .Times() and other gmock APIS with EXPECT_REPORT, for instance, + * allow only single report to be sent: + * + * EXPECT_REPORT(driver, (-10, 0, 0, 0, 1)).Times(1); + */ +#define EXPECT_MOUSE_REPORT(driver, report) EXPECT_CALL((driver), send_mouse_mock(MouseReport report)) + /** * @brief Sets gmock expectation that Unicode `code_point` is sent with UNICODE_MODE_LINUX input * mode. For instance for U+2013, @@ -87,6 +106,15 @@ class TestDriver { */ #define EXPECT_EMPTY_REPORT(driver) EXPECT_REPORT(driver, ()) +/** + * @brief Sets gmock expectation that a empty keyboard report will be sent. + * It is possible to use .Times() and other gmock APIS with EXPECT_EMPTY_MOUSE_REPORT, for instance, + * allow any number of empty reports with: + * + * EXPECT_EMPTY_MOUSE_REPORT(driver).Times(AnyNumber()); + */ +#define EXPECT_EMPTY_MOUSE_REPORT(driver) EXPECT_MOUSE_REPORT(driver, (0, 0, 0, 0, 0)) + /** * @brief Sets gmock expectation that a keyboard report will be sent, without matching its content. * It is possible to use .Times() and other gmock APIS with EXPECT_ANY_REPORT, for instance, @@ -96,11 +124,25 @@ class TestDriver { */ #define EXPECT_ANY_REPORT(driver) EXPECT_CALL((driver), send_keyboard_mock(_)) +/** + * @brief Sets gmock expectation that a mouse report will be sent, without matching its content. + * It is possible to use .Times() and other gmock APIS with EXPECT_ANY_MOUSE_REPORT, for instance, + * allow a single arbitrary report with: + * + * EXPECT_ANY_MOUSE_REPORT(driver).Times(1); + */ +#define EXPECT_ANY_MOUSE_REPORT(driver) EXPECT_CALL((driver), send_mouse_mock(_)) + /** * @brief Sets gmock expectation that no keyboard report will be sent at all. */ #define EXPECT_NO_REPORT(driver) EXPECT_ANY_REPORT(driver).Times(0) +/** + * @brief Sets gmock expectation that no keyboard report will be sent at all. + */ +#define EXPECT_NO_MOUSE_REPORT(driver) EXPECT_ANY_MOUSE_REPORT(driver).Times(0) + /** @brief Tests whether keycode `actual` is equal to `expected`. */ #define EXPECT_KEYCODE_EQ(actual, expected) EXPECT_THAT((actual), KeycodeEq((expected))) diff --git a/tests/test_common/test_fixture.cpp b/tests/test_common/test_fixture.cpp index 3cfb2cb4c29..81806b0e6d2 100644 --- a/tests/test_common/test_fixture.cpp +++ b/tests/test_common/test_fixture.cpp @@ -7,6 +7,7 @@ #include "gmock/gmock.h" #include "gtest/gtest.h" #include "keyboard_report_util.hpp" +#include "mouse_report_util.hpp" #include "keycode.h" #include "test_driver.hpp" #include "test_logger.hpp" @@ -69,6 +70,9 @@ TestFixture::~TestFixture() { /* Reset keyboard state. */ clear_all_keys(); +#ifdef MOUSEKEY_ENABLE + EXPECT_EMPTY_MOUSE_REPORT(driver); +#endif clear_keyboard(); clear_oneshot_mods(); diff --git a/tests/test_common/test_pointing_device_driver.h b/tests/test_common/test_pointing_device_driver.h new file mode 100644 index 00000000000..ae136b21cdf --- /dev/null +++ b/tests/test_common/test_pointing_device_driver.h @@ -0,0 +1,32 @@ +// Copyright 2024 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +void pd_press_button(uint8_t btn); +void pd_release_button(uint8_t btn); +void pd_clear_all_buttons(void); + +void pd_set_x(int16_t x); +void clear_x(void); + +void pd_set_y(int16_t y); +void pd_clear_y(void); + +void pd_set_h(int16_t h); +void pd_clear_h(void); + +void pd_set_v(int16_t v); +void pd_clear_v(void); + +void pd_clear_movement(void); + +void pd_set_init(bool success); + +#ifdef __cplusplus +} +#endif From 859dab864a0738f577d1da8e7189748ed8109c44 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sat, 23 Nov 2024 17:43:45 +0000 Subject: [PATCH 061/365] Remove keyboard use of eeconfig_read_default_layer (#24635) --- .../comet46/keymaps/default-rgbled/keymap.c | 21 +++++++--------- .../satt/comet46/keymaps/default/keymap.c | 24 +++++++------------ 2 files changed, 16 insertions(+), 29 deletions(-) diff --git a/keyboards/satt/comet46/keymaps/default-rgbled/keymap.c b/keyboards/satt/comet46/keymaps/default-rgbled/keymap.c index 704eb2dd70b..773857db1d2 100644 --- a/keyboards/satt/comet46/keymaps/default-rgbled/keymap.c +++ b/keyboards/satt/comet46/keymaps/default-rgbled/keymap.c @@ -171,8 +171,7 @@ void matrix_init_user(void) { } void matrix_scan_user(void) { - uint8_t layer = get_highest_layer(layer_state); - uint8_t default_layer = biton32(eeconfig_read_default_layer()); + uint8_t layer = get_highest_layer(layer_state | default_layer_state); switch (layer) { case _LOWER: set_led_red; @@ -183,18 +182,14 @@ void matrix_scan_user(void) { case _ADJUST: set_led_magenta; break; + case _COLEMAK: + set_led_white; + break; + case _DVORAK: + set_led_yellow; + break; default: - switch (default_layer) { - case _COLEMAK: - set_led_white; - break; - case _DVORAK: - set_led_yellow; - break; - default: - set_led_green; - break; - } + set_led_green; break; } }; diff --git a/keyboards/satt/comet46/keymaps/default/keymap.c b/keyboards/satt/comet46/keymaps/default/keymap.c index c8c58951c87..5d9f1faed75 100644 --- a/keyboards/satt/comet46/keymaps/default/keymap.c +++ b/keyboards/satt/comet46/keymaps/default/keymap.c @@ -153,24 +153,16 @@ bool oled_task_user(void) { // Layer state char layer_str[22]; oled_write_P(PSTR("Layer: "), false); - uint8_t layer = get_highest_layer(layer_state); - uint8_t default_layer = get_highest_layer(eeconfig_read_default_layer()); + uint8_t layer = get_highest_layer(layer_state | default_layer_state); switch (layer) { case _QWERTY: - switch (default_layer) { - case _QWERTY: - snprintf(layer_str, sizeof(layer_str), "Qwerty"); - break; - case _COLEMAK: - snprintf(layer_str, sizeof(layer_str), "Colemak"); - break; - case _DVORAK: - snprintf(layer_str, sizeof(layer_str), "Dvorak"); - break; - default: - snprintf(layer_str, sizeof(layer_str), "Undef-%d", default_layer); - break; - } + snprintf(layer_str, sizeof(layer_str), "Qwerty"); + break; + case _COLEMAK: + snprintf(layer_str, sizeof(layer_str), "Colemak"); + break; + case _DVORAK: + snprintf(layer_str, sizeof(layer_str), "Dvorak"); break; case _RAISE: snprintf(layer_str, sizeof(layer_str), "Raise"); From 7d8f193988495deb0e12ad79d5104d30c0724bf9 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sun, 24 Nov 2024 20:32:30 +1100 Subject: [PATCH 062/365] Allow codegen of `keymap.json` => `keymap.c` without requiring layers/layout etc. (#23451) --- builddefs/build_keyboard.mk | 5 ++- data/schemas/keymap.jsonschema | 7 +-- keyboards/handwired/onekey/info.json | 3 -- keyboards/handwired/onekey/kb2040/config.h | 5 +-- .../handwired/onekey/keymaps/adc/keymap.json | 10 +++++ .../handwired/onekey/keymaps/adc/rules.mk | 2 - .../handwired/onekey/keymaps/apa102/config.h | 14 ------ .../onekey/keymaps/apa102/keymap.json | 29 +++++++++++++ .../handwired/onekey/keymaps/apa102/rules.mk | 2 - .../onekey/keymaps/backlight/config.h | 3 -- .../onekey/keymaps/backlight/keymap.json | 14 ++++++ .../onekey/keymaps/backlight/rules.mk | 2 - .../onekey/keymaps/console/keymap.json | 8 ++++ .../handwired/onekey/keymaps/console/rules.mk | 2 - .../onekey/keymaps/default/keymap.json | 7 +++ keyboards/handwired/onekey/rp2040/config.h | 3 -- .../pterodactyl/keymaps/default/keymap.c | 2 +- .../pterodactyl/keymaps/default/keymap.json | 43 ------------------- lib/python/qmk/commands.py | 2 +- lib/python/qmk/keymap.py | 29 +++++++------ lib/python/qmk/tests/test_cli_commands.py | 24 ++++------- lib/python/qmk/tests/test_qmk_keymap.py | 9 ++-- 22 files changed, 105 insertions(+), 120 deletions(-) create mode 100644 keyboards/handwired/onekey/keymaps/adc/keymap.json delete mode 100644 keyboards/handwired/onekey/keymaps/apa102/config.h create mode 100644 keyboards/handwired/onekey/keymaps/apa102/keymap.json delete mode 100644 keyboards/handwired/onekey/keymaps/apa102/rules.mk delete mode 100644 keyboards/handwired/onekey/keymaps/backlight/config.h create mode 100644 keyboards/handwired/onekey/keymaps/backlight/keymap.json delete mode 100644 keyboards/handwired/onekey/keymaps/backlight/rules.mk create mode 100644 keyboards/handwired/onekey/keymaps/console/keymap.json delete mode 100644 keyboards/handwired/onekey/keymaps/console/rules.mk create mode 100644 keyboards/handwired/onekey/keymaps/default/keymap.json delete mode 100644 keyboards/handwired/pterodactyl/keymaps/default/keymap.json diff --git a/builddefs/build_keyboard.mk b/builddefs/build_keyboard.mk index ccd7e50b051..afad67a76da 100644 --- a/builddefs/build_keyboard.mk +++ b/builddefs/build_keyboard.mk @@ -186,7 +186,10 @@ endif # Have we found a keymap.json? ifneq ("$(wildcard $(KEYMAP_JSON))", "") ifneq ("$(wildcard $(KEYMAP_C))", "") - $(call WARNING_MESSAGE,Keymap is specified as both keymap.json and keymap.c -- keymap.json file wins.) + # Allow a separately-found keymap.c next to keymap.json -- the keymap.c + # generator will include the other keymap.c in the process, if supplied. + OTHER_KEYMAP_C := $(KEYMAP_C) + OPT_DEFS += -DOTHER_KEYMAP_C=\"$(OTHER_KEYMAP_C)\" endif KEYMAP_PATH := $(KEYMAP_JSON_PATH) diff --git a/data/schemas/keymap.jsonschema b/data/schemas/keymap.jsonschema index 7233e896e94..e967e45c53e 100644 --- a/data/schemas/keymap.jsonschema +++ b/data/schemas/keymap.jsonschema @@ -72,10 +72,5 @@ "notes": { "type": "string" } - }, - "required": [ - "keyboard", - "layout", - "layers" - ] + } } diff --git a/keyboards/handwired/onekey/info.json b/keyboards/handwired/onekey/info.json index c952758265b..5cf7c600ee6 100644 --- a/keyboards/handwired/onekey/info.json +++ b/keyboards/handwired/onekey/info.json @@ -7,9 +7,6 @@ "pid": "0x6465", "device_version": "0.0.1" }, - "tapping": { - "term": 500 - }, "diode_direction": "COL2ROW", "features": { "bootmagic": false, diff --git a/keyboards/handwired/onekey/kb2040/config.h b/keyboards/handwired/onekey/kb2040/config.h index e0bf180056e..e9c4eef273c 100644 --- a/keyboards/handwired/onekey/kb2040/config.h +++ b/keyboards/handwired/onekey/kb2040/config.h @@ -3,9 +3,6 @@ #pragma once - -#define DEBUG_MATRIX_SCAN_RATE - #define QMK_WAITING_TEST_BUSY_PIN GP8 #define QMK_WAITING_TEST_YIELD_PIN GP9 @@ -18,4 +15,4 @@ #define I2C_DRIVER I2CD0 #define I2C1_SDA_PIN GP12 #define I2C1_SCL_PIN GP13 - + diff --git a/keyboards/handwired/onekey/keymaps/adc/keymap.json b/keyboards/handwired/onekey/keymaps/adc/keymap.json new file mode 100644 index 00000000000..e051d1a30bc --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/adc/keymap.json @@ -0,0 +1,10 @@ +{ + "config": { + "features": { + "console": true + }, + "tapping": { + "term": 500 + } + } +} diff --git a/keyboards/handwired/onekey/keymaps/adc/rules.mk b/keyboards/handwired/onekey/keymaps/adc/rules.mk index 8b36baccb0f..cc588202788 100644 --- a/keyboards/handwired/onekey/keymaps/adc/rules.mk +++ b/keyboards/handwired/onekey/keymaps/adc/rules.mk @@ -1,3 +1 @@ -CONSOLE_ENABLE = yes - ANALOG_DRIVER_REQUIRED = yes diff --git a/keyboards/handwired/onekey/keymaps/apa102/config.h b/keyboards/handwired/onekey/keymaps/apa102/config.h deleted file mode 100644 index bb618d77fbc..00000000000 --- a/keyboards/handwired/onekey/keymaps/apa102/config.h +++ /dev/null @@ -1,14 +0,0 @@ -#pragma once - -#define RGBLIGHT_LED_COUNT 40 -#define APA102_DEFAULT_BRIGHTNESS 5 -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/handwired/onekey/keymaps/apa102/keymap.json b/keyboards/handwired/onekey/keymaps/apa102/keymap.json new file mode 100644 index 00000000000..917d39eb33c --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/apa102/keymap.json @@ -0,0 +1,29 @@ +{ + "config": { + "features": { + "rgblight": true + }, + "tapping": { + "term": 500 + }, + "rgblight": { + "driver": "apa102", + "led_count": 40, + "default": { + "val": 5 + }, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + } + } +} diff --git a/keyboards/handwired/onekey/keymaps/apa102/rules.mk b/keyboards/handwired/onekey/keymaps/apa102/rules.mk deleted file mode 100644 index 5f15fa9e708..00000000000 --- a/keyboards/handwired/onekey/keymaps/apa102/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -RGBLIGHT_ENABLE = yes -RGBLIGHT_DRIVER = apa102 diff --git a/keyboards/handwired/onekey/keymaps/backlight/config.h b/keyboards/handwired/onekey/keymaps/backlight/config.h deleted file mode 100644 index af01528b434..00000000000 --- a/keyboards/handwired/onekey/keymaps/backlight/config.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -#define BACKLIGHT_BREATHING diff --git a/keyboards/handwired/onekey/keymaps/backlight/keymap.json b/keyboards/handwired/onekey/keymaps/backlight/keymap.json new file mode 100644 index 00000000000..e8895520cd4 --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/backlight/keymap.json @@ -0,0 +1,14 @@ +{ + "config": { + "features": { + "backlight": true, + "tap_dance": true + }, + "tapping": { + "term": 500 + }, + "backlight": { + "breathing": true + } + } +} diff --git a/keyboards/handwired/onekey/keymaps/backlight/rules.mk b/keyboards/handwired/onekey/keymaps/backlight/rules.mk deleted file mode 100644 index 176e099770c..00000000000 --- a/keyboards/handwired/onekey/keymaps/backlight/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -BACKLIGHT_ENABLE = yes -TAP_DANCE_ENABLE = yes diff --git a/keyboards/handwired/onekey/keymaps/console/keymap.json b/keyboards/handwired/onekey/keymaps/console/keymap.json new file mode 100644 index 00000000000..f451f7df04c --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/console/keymap.json @@ -0,0 +1,8 @@ +{ + "config": { + "features": { + "console": true, + "debug_matrix_scan_rate": true + } + } +} diff --git a/keyboards/handwired/onekey/keymaps/console/rules.mk b/keyboards/handwired/onekey/keymaps/console/rules.mk deleted file mode 100644 index 7c83606d2d7..00000000000 --- a/keyboards/handwired/onekey/keymaps/console/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -CONSOLE_ENABLE = yes -DEBUG_MATRIX_SCAN_RATE_ENABLE = yes diff --git a/keyboards/handwired/onekey/keymaps/default/keymap.json b/keyboards/handwired/onekey/keymaps/default/keymap.json new file mode 100644 index 00000000000..5cd219693a3 --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/default/keymap.json @@ -0,0 +1,7 @@ +{ + "config": { + "tapping": { + "term": 500 + } + } +} diff --git a/keyboards/handwired/onekey/rp2040/config.h b/keyboards/handwired/onekey/rp2040/config.h index 0563ebfa5f1..0030e97b0fe 100644 --- a/keyboards/handwired/onekey/rp2040/config.h +++ b/keyboards/handwired/onekey/rp2040/config.h @@ -3,9 +3,6 @@ #pragma once - -#define DEBUG_MATRIX_SCAN_RATE - #define QMK_WAITING_TEST_BUSY_PIN GP8 #define QMK_WAITING_TEST_YIELD_PIN GP9 diff --git a/keyboards/handwired/pterodactyl/keymaps/default/keymap.c b/keyboards/handwired/pterodactyl/keymaps/default/keymap.c index 61d650c76b0..c53f6841cef 100644 --- a/keyboards/handwired/pterodactyl/keymaps/default/keymap.c +++ b/keyboards/handwired/pterodactyl/keymaps/default/keymap.c @@ -54,7 +54,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------| |------+------+------+------+------+------| * | | % | ^ | [ | ] | ~ | | & | 1 | 2 | 3 | \ | | * |------+------+------+------+------+------' `------+------+------+------+------+------| - * |QK_BOOT | | | | | | | . | 0 | = | | + * |BtLdr | | | | | | | . | 0 | = | | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | | | | | | diff --git a/keyboards/handwired/pterodactyl/keymaps/default/keymap.json b/keyboards/handwired/pterodactyl/keymaps/default/keymap.json deleted file mode 100644 index 181b32b8c3a..00000000000 --- a/keyboards/handwired/pterodactyl/keymaps/default/keymap.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "version": 1, - "notes": "", - "author": "Marcus Young", - "keyboard": "handwired/pterodactyl", - "keymap": "default", - "layout": "LAYOUT", - "layers": [ - [ - "KC_EQL", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_MINS", - "KC_DEL", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSLS", - "KC_BSPC", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "LT(2,KC_SCLN)", "LGUI_T(KC_QUOT)", - "KC_LSFT", "LCTL_T(KC_Z)", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "LCTL_T(KC_SLSH)", "KC_RSFT", - "LT(1,KC_GRV)", "KC_QUOT", "LALT(KC_LSFT)", "KC_LEFT", "KC_RGHT", "KC_UP", "KC_DOWN", "KC_LBRC", "KC_RBRC", "TT(1)", - - "LALT_T(KC_APP)", "KC_LGUI", "KC_RALT", "LCTL_T(KC_ESC)", - "KC_HOME", "KC_PGUP", - "KC_SPC", "KC_BSPC", "KC_END", "KC_PGDN", "KC_TAB", "KC_ENT" - ], - [ - "KC_TRNS", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", - "KC_TRNS", "KC_EXLM", "KC_AT", "KC_LCBR", "KC_RCBR", "KC_PIPE", "KC_UP", "KC_7", "KC_8", "KC_9", "KC_ASTR", "KC_F12", - "KC_TRNS", "KC_HASH", "KC_DLR", "KC_LPRN", "KC_RPRN", "KC_GRV", "KC_DOWN", "KC_4", "KC_5", "KC_6", "KC_PLUS", "KC_TRNS", - "KC_TRNS", "KC_PERC", "KC_CIRC", "KC_LBRC", "KC_RBRC", "KC_TILD", "KC_AMPR", "KC_1", "KC_2", "KC_3", "KC_BSLS", "KC_TRNS", - "QK_BOOT", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_DOT", "KC_0", "KC_EQL", "KC_TRNS", - - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" - ], - [ - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MS_U", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_MS_L", "KC_MS_D", "KC_MS_R", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MPLY", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MPRV", "KC_MNXT", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_BTN1", "KC_BTN2", "KC_VOLU", "KC_VOLD", "KC_MUTE", "KC_TRNS", "KC_TRNS", - - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_WBAK" - ] - ] -} diff --git a/lib/python/qmk/commands.py b/lib/python/qmk/commands.py index 97d9c5032c8..a05b3641b5c 100644 --- a/lib/python/qmk/commands.py +++ b/lib/python/qmk/commands.py @@ -55,7 +55,7 @@ def parse_configurator_json(configurator_file): cli.log.error(f'Invalid JSON keymap: {configurator_file} : {e.message}') maybe_exit(1) - keyboard = user_keymap['keyboard'] + keyboard = user_keymap.get('keyboard', None) aliases = keyboard_alias_definitions() while keyboard in aliases: diff --git a/lib/python/qmk/keymap.py b/lib/python/qmk/keymap.py index 97c358788a5..9dd043c4a89 100644 --- a/lib/python/qmk/keymap.py +++ b/lib/python/qmk/keymap.py @@ -29,38 +29,40 @@ __INCLUDES__ * This file was generated by qmk json2c. You may or may not want to * edit it directly. */ -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + __KEYMAP_GOES_HERE__ -}; - -#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { __ENCODER_MAP_GOES_HERE__ -}; -#endif // defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) - __MACRO_OUTPUT_GOES_HERE__ + +#ifdef OTHER_KEYMAP_C +# include OTHER_KEYMAP_C +#endif // OTHER_KEYMAP_C """ def _generate_keymap_table(keymap_json): - lines = [] + lines = ['const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {'] for layer_num, layer in enumerate(keymap_json['layers']): if layer_num != 0: lines[-1] = lines[-1] + ',' layer = map(_strip_any, layer) layer_keys = ', '.join(layer) lines.append(' [%s] = %s(%s)' % (layer_num, keymap_json['layout'], layer_keys)) + lines.append('};') return lines def _generate_encodermap_table(keymap_json): - lines = [] + lines = [ + '#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE)', + 'const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {', + ] for layer_num, layer in enumerate(keymap_json['encoders']): if layer_num != 0: lines[-1] = lines[-1] + ',' encoder_keycode_txt = ', '.join([f'ENCODER_CCW_CW({_strip_any(e["ccw"])}, {_strip_any(e["cw"])})' for e in layer]) lines.append(' [%s] = {%s}' % (layer_num, encoder_keycode_txt)) + lines.extend(['};', '#endif // defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE)']) return lines @@ -271,8 +273,11 @@ def generate_c(keymap_json): A sequence of strings containing macros to implement for this keyboard. """ new_keymap = DEFAULT_KEYMAP_C - layer_txt = _generate_keymap_table(keymap_json) - keymap = '\n'.join(layer_txt) + + keymap = '' + if 'layers' in keymap_json and keymap_json['layers'] is not None: + layer_txt = _generate_keymap_table(keymap_json) + keymap = '\n'.join(layer_txt) new_keymap = new_keymap.replace('__KEYMAP_GOES_HERE__', keymap) encodermap = '' diff --git a/lib/python/qmk/tests/test_cli_commands.py b/lib/python/qmk/tests/test_cli_commands.py index b10fd8d19d5..dd659fe0f27 100644 --- a/lib/python/qmk/tests/test_cli_commands.py +++ b/lib/python/qmk/tests/test_cli_commands.py @@ -152,17 +152,16 @@ def test_json2c(): * This file was generated by qmk json2c. You may or may not want to * edit it directly. */ + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_ortho_1x1(KC_A) }; -#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - -}; -#endif // defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) +#ifdef OTHER_KEYMAP_C +# include OTHER_KEYMAP_C +#endif // OTHER_KEYMAP_C """ @@ -190,28 +189,21 @@ def test_json2c_stdin(): * This file was generated by qmk json2c. You may or may not want to * edit it directly. */ + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_ortho_1x1(KC_A) }; -#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - -}; -#endif // defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) +#ifdef OTHER_KEYMAP_C +# include OTHER_KEYMAP_C +#endif // OTHER_KEYMAP_C """ -def test_json2c_wrong_json(): - result = check_subcommand('json2c', 'keyboards/handwired/pytest/info.json') - check_returncode(result, [1]) - assert 'Invalid JSON keymap' in result.stdout - - def test_json2c_no_json(): result = check_subcommand('json2c', 'keyboards/handwired/pytest/basic/keymaps/default/keymap.c') check_returncode(result, [1]) diff --git a/lib/python/qmk/tests/test_qmk_keymap.py b/lib/python/qmk/tests/test_qmk_keymap.py index 7482848eff1..80cc679b007 100644 --- a/lib/python/qmk/tests/test_qmk_keymap.py +++ b/lib/python/qmk/tests/test_qmk_keymap.py @@ -20,17 +20,16 @@ def test_generate_c_pytest_basic(): * This file was generated by qmk json2c. You may or may not want to * edit it directly. */ + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT(KC_A) }; -#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - -}; -#endif // defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) +#ifdef OTHER_KEYMAP_C +# include OTHER_KEYMAP_C +#endif // OTHER_KEYMAP_C """ From f3bae5680843dae8a59cf90b5ac6535da632f42c Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 24 Nov 2024 23:03:08 +1100 Subject: [PATCH 063/365] Update keycodes for keyboards with RGB Matrix (#24484) --- .../1upocarina/keymaps/default/keymap.c | 2 +- .../1upslider8/keymaps/default/keymap.c | 4 ++-- .../1upsuper16v3/keymaps/default/keymap.c | 6 ++--- .../pi40/keymaps/default/keymap.c | 6 ++--- .../pi50/keymaps/default/keymap.c | 4 ++-- .../pi60/keymaps/default/keymap.c | 4 ++-- .../pi60_hse/keymaps/default/keymap.c | 4 ++-- .../super16/keymaps/default/keymap.c | 8 +++---- .../super16v2/keymaps/default/keymap.c | 6 ++--- .../sweet16v2/keymaps/default/keymap.c | 8 +++---- .../perk60_iso/keymaps/default/keymap.c | 2 +- .../abko/ak84bt/keymaps/default/keymap.c | 6 ++--- .../apollo/87h/delta/keymaps/default/keymap.c | 4 ++-- .../apollo/87h/gamma/keymaps/default/keymap.c | 4 ++-- .../apollo/87htsc/keymaps/default/keymap.c | 4 ++-- .../apollo/88htsc/keymaps/default/keymap.c | 4 ++-- .../adm42/rev4/keymaps/default/keymap.json | 6 ++--- .../akemipad/keymaps/default/keymap.c | 6 ++--- .../akemipad/keymaps/default_numpad/keymap.c | 6 ++--- keyboards/akko/5108/keymaps/default/keymap.c | 20 ++++++++-------- keyboards/akko/acr87/keymaps/default/keymap.c | 20 ++++++++-------- keyboards/akko/top40/keymaps/default/keymap.c | 6 ++--- .../alpaca/wfeclipse/keymaps/default/keymap.c | 4 ++-- .../wings/keymaps/default/keymap.c | 4 ++-- keyboards/ashwing66/keymaps/default/keymap.c | 6 ++--- .../atlantis/ak81_ve/keymaps/default/keymap.c | 12 +++++----- .../atlantis/ps17/keymaps/default/keymap.c | 8 +++---- .../charybdis/3x5/keymaps/default/keymap.c | 2 +- .../charybdis/3x6/keymaps/default/keymap.c | 2 +- .../charybdis/4x6/keymaps/default/keymap.c | 6 ++--- .../dilemma/4x6_4/keymaps/default/keymap.c | 6 ++--- .../bastardkb/scylla/keymaps/default/keymap.c | 2 +- .../skeletyl/keymaps/default/keymap.c | 4 ++-- .../tbkmini/keymaps/default/keymap.c | 4 ++-- .../binepad/bnk9/keymaps/default/keymap.c | 10 ++++---- .../ac980mini/keymaps/default/keymap.c | 8 +++---- .../beiwagon/keymaps/default/keymap.c | 4 ++-- .../equals/60/keymaps/default/keymap.c | 2 +- .../equals/avr/keymaps/default/keymap.c | 2 +- .../boardsource/lulu/keymaps/default/keymap.c | 6 ++--- .../sessanta/keymaps/default/keymap.json | 4 ++-- .../technik_o/keymaps/default/keymap.c | 4 ++-- .../technik_s/keymaps/default/keymap.c | 4 ++-- .../the_q/keymaps/default/keymap.json | 6 ++--- .../unicorne/keymaps/default/keymap.json | 4 ++-- .../2019/keymaps/default/keymap.c | 6 ++--- .../bubble75/hotswap/keymaps/default/keymap.c | 10 ++++---- .../canary60rgb/keymaps/default/keymap.c | 4 ++-- .../cu80/v2/ansi/keymaps/default/keymap.c | 8 +++---- .../cu80/v2/iso/keymaps/default/keymap.c | 6 ++--- .../leeloo/keymaps/default/keymap.c | 4 ++-- .../city42/keymaps/default/keymap.c | 4 ++-- .../mini36/keymaps/default/keymap.c | 4 ++-- .../mini42/keymaps/default/keymap.c | 4 ++-- keyboards/crkbd/keymaps/default/keymap.c | 14 +++++------ .../cxt_studio/keymaps/default/keymap.json | 2 +- .../keymaps/default/keymap.c | 16 ++++++------- .../keymaps/default/keymap.c | 16 ++++++------- .../darmoshark/k3/keymaps/default/keymap.c | 12 +++++----- .../dasky/reverb/keymaps/default/keymap.json | 4 ++-- .../deemen17/de80/keymaps/default/keymap.c | 10 ++++---- .../duckypad/keymaps/default/keymap.c | 8 +++---- keyboards/deng/djam/keymaps/default/keymap.c | 4 ++-- .../deng/thirty/keymaps/default/keymap.c | 4 ++-- keyboards/doio/kb04/keymaps/default/keymap.c | 2 +- keyboards/doio/kb09/keymaps/default/keymap.c | 6 ++--- keyboards/doio/kb12/keymaps/default/keymap.c | 2 +- keyboards/doio/kb16/keymaps/default/keymap.c | 8 +++---- keyboards/doio/kb30/keymaps/default/keymap.c | 8 +++---- keyboards/doio/kb38/keymaps/default/keymap.c | 4 ++-- keyboards/doio/kb3x/keymaps/default/keymap.c | 2 +- keyboards/doro67/rgb/keymaps/default/keymap.c | 4 ++-- .../dotmod/dymium65/keymaps/default/keymap.c | 14 +++++------ keyboards/dp3000/keymaps/default/keymap.c | 10 ++++---- keyboards/dp60/keymaps/default/keymap.c | 2 +- .../dosa40rgb/keymaps/default/keymap.c | 4 ++-- .../ducky/one2mini/keymaps/ansi/keymap.c | 8 +++---- .../ducky/one2mini/keymaps/default/keymap.c | 8 +++---- keyboards/ducky/one2mini/keymaps/iso/keymap.c | 8 +++---- .../ducky/one2sf/keymaps/default/keymap.c | 4 ++-- .../one2sf/keymaps/default_ansi/keymap.c | 4 ++-- .../ducky/one2sf/keymaps/default_iso/keymap.c | 4 ++-- .../dumbpad/v3x/keymaps/default/keymap.c | 8 +++---- .../dgk6x/galaxy/keymaps/default/keymap.json | 10 ++++---- .../hades_ansi/keymaps/default/keymap.json | 10 ++++---- .../hades_iso/keymaps/default/keymap.json | 10 ++++---- .../dgk6x/venus/keymaps/default/keymap.json | 10 ++++---- .../dztech/dz60rgb/keymaps/default/keymap.c | 4 ++-- .../dz60rgb_ansi/keymaps/default/keymap.c | 4 ++-- .../dz60rgb_wkl/keymaps/default/keymap.c | 4 ++-- .../dztech/dz64rgb/keymaps/default/keymap.c | 4 ++-- .../dztech/dz65rgb/keymaps/default/keymap.c | 4 ++-- .../dztech/tofu/ii/keymaps/default/keymap.c | 4 ++-- .../dztech/tofu/jr/keymaps/default/keymap.c | 4 ++-- keyboards/eek/keymaps/ledtest/keymap.c | 10 ++++---- .../eggsworks/egg58/keymaps/default/keymap.c | 4 ++-- keyboards/ein_60/keymaps/default/keymap.c | 4 ++-- .../delirium/rgb/keymaps/default/keymap.c | 10 ++++---- .../linx3/fave65s/keymaps/default/keymap.c | 2 +- .../sirind/brick65/keymaps/default/keymap.c | 4 ++-- .../era/sirind/tomak/keymaps/default/keymap.c | 4 ++-- .../tomak/keymaps/default_ansi/keymap.c | 4 ++-- .../keymaps/default_ansi_split_bs/keymap.c | 4 ++-- .../default_ansi_split_rshift/keymap.c | 4 ++-- .../default_ansi_split_rshift_bs/keymap.c | 4 ++-- .../evyd13/atom47/keymaps/default/keymap.c | 4 ++-- .../fancyalice66/keymaps/default/keymap.c | 8 +++---- keyboards/ferris/keymaps/default/keymap.json | 4 ++-- .../horizon_z/keymaps/default/keymap.c | 2 +- .../walnut/keymaps/default/keymap.c | 8 +++---- .../walnut/keymaps/default_ansi/keymap.c | 8 +++---- .../walnut/keymaps/default_iso/keymap.c | 8 +++---- .../fs_streampad/keymaps/default/keymap.c | 2 +- .../tester/keymaps/default/keymap.c | 2 +- keyboards/gh60/satan/keymaps/isoHHKB/keymap.c | 2 +- .../gk6/keymaps/12x5/keymap.c | 2 +- .../gk6/keymaps/1x2u/keymap.c | 2 +- .../gk6/keymaps/default/keymap.c | 2 +- .../gpad8_2r/keymaps/default/keymap.c | 4 ++-- .../greatpad/keymaps/default/keymap.c | 4 ++-- .../gmmk2/p65/ansi/keymaps/default/keymap.c | 4 ++-- .../gmmk2/p65/iso/keymaps/default/keymap.c | 4 ++-- .../gmmk2/p96/ansi/keymaps/default/keymap.c | 4 ++-- .../gmmk2/p96/iso/keymaps/default/keymap.c | 4 ++-- .../gmmk/numpad/keymaps/default/keymap.c | 8 +++---- .../pro/rev1/ansi/keymaps/default/keymap.c | 10 ++++---- .../pro/rev1/iso/keymaps/default/keymap.c | 10 ++++---- .../pro/rev2/ansi/keymaps/default/keymap.c | 12 +++++----- .../pro/rev2/iso/keymaps/default/keymap.c | 10 ++++---- .../keymaps/jmdaly_hhkb_split_space/keymap.c | 2 +- .../colorlice/keymaps/default/keymap.c | 6 ++--- .../dygma/raise/keymaps/ansi/keymap.c | 2 +- .../dygma/raise/keymaps/default/keymap.c | 2 +- .../dygma/raise/keymaps/iso/keymap.c | 2 +- .../hnah108/keymaps/default/keymap.c | 2 +- .../handwired/hnah40rgb/keymaps/ansi/keymap.c | 4 ++-- .../hnah40rgb/keymaps/default/keymap.c | 4 ++-- .../handwired/p65rgb/keymaps/default/keymap.c | 4 ++-- .../helix/rev2/keymaps/led_test/keymap.c | 6 ++--- .../hfdkb/ac001/keymaps/default/keymap.c | 2 +- .../keymaps/default/led/custom_gradient.c | 2 +- .../hs60/v1/ansi/keymaps/default/keymap.c | 4 ++-- .../hs60/v1/iso/keymaps/default/keymap.c | 4 ++-- .../idobao/id42/keymaps/default/keymap.c | 6 ++--- .../idobao/id61/keymaps/default/keymap.c | 4 ++-- .../idobao/id63/keymaps/default/keymap.c | 4 ++-- .../idobao/id67/keymaps/default/keymap.c | 4 ++-- .../idobao/id75/keymaps/default75/keymap.c | 8 +++---- .../id80/v3/ansi/keymaps/default/keymap.c | 4 ++-- .../idobao/id87/v2/keymaps/default/keymap.c | 10 ++++---- .../montex/v1rgb/keymaps/default/keymap.c | 10 ++++---- .../idobao/montex/v2/keymaps/default/keymap.c | 10 ++++---- .../ilumkb/simpler61/keymaps/default/keymap.c | 2 +- .../ilumkb/simpler64/keymaps/default/keymap.c | 2 +- .../inland/mk47/keymaps/default/keymap.c | 6 ++--- .../inland/v83p/keymaps/default/keymap.c | 24 +++++++++---------- .../k_type/keymaps/default/keymap.c | 6 ++--- .../piggy60/keymaps/default/keymap.c | 2 +- .../jadookb/jkb65/keymaps/default/keymap.c | 8 +++---- .../jidohun/km113/keymaps/default/keymap.c | 8 +++---- .../keymaps/default/keymap.c | 6 ++--- .../hub20/keymaps/default/keymap.c | 8 +++---- .../hub20/keymaps/left_hand_numpad/keymap.c | 8 +++---- .../hub20/keymaps/right_hand_numpad/keymap.c | 8 +++---- .../jukaie/jk01/keymaps/default/keymap.c | 16 ++++++------- keyboards/junco/keymaps/default/keymap.c | 4 ++-- keyboards/kapl/keymaps/default/keymap.c | 6 ++--- .../kbdcraft/adam64/keymaps/default/keymap.c | 6 ++--- .../baguette66/rgb/keymaps/default/keymap.c | 12 +++++----- .../bella/rgb/keymaps/default/keymap.c | 2 +- .../bella/rgb_iso/keymaps/default/keymap.c | 2 +- .../boop65/rgb/keymaps/default/keymap.c | 4 ++-- .../kbd67/mkiirgb/keymaps/default/keymap.c | 4 ++-- .../mkiirgb_iso/keymaps/default/keymap.c | 4 ++-- .../kbdfans/maja/keymaps/default/keymap.c | 4 ++-- .../keebio/bamfk1/keymaps/default/keymap.c | 2 +- .../keebio/bdn9/keymaps/default/keymap.c | 4 ++-- keyboards/keebio/bdn9/keymaps/test/keymap.c | 2 +- .../keebio/cepstrum/keymaps/default/keymap.c | 6 ++--- .../chiri_ce/keymaps/default/keymap.json | 8 +++---- .../keebio/chocopad/keymaps/default/keymap.c | 4 ++-- .../convolution/keymaps/default/keymap.c | 8 +++---- .../keebio/iris/keymaps/default/keymap.json | 8 +++---- .../keebio/iris_ce/keymaps/default/keymap.c | 8 +++---- .../irispad/keymaps/default/keymap.json | 4 ++-- .../keebio/nyquist/keymaps/default/keymap.c | 4 ++-- .../nyquistpad/keymaps/default/keymap.c | 2 +- .../keebio/sinc/keymaps/default/keymap.c | 6 ++--- keyboards/keebio/sinc/keymaps/iso/keymap.c | 6 ++--- .../model01/keymaps/default/keymap.c | 4 ++-- .../kimiko/rev2/keymaps/default/keymap.c | 10 ++++---- .../q60/ansi/keymaps/default/keymap.c | 4 ++-- .../tgr_lena/keymaps/default/keymap.c | 2 +- .../bm16a/v2/keymaps/default/keymap.c | 4 ++-- .../bm40hsrgb/rev1/keymaps/default/keymap.c | 4 ++-- .../bm40hsrgb/rev2/keymaps/default/keymap.c | 4 ++-- .../bm60hsrgb/rev1/keymaps/default/keymap.c | 2 +- .../bm60hsrgb/rev2/keymaps/default/keymap.c | 2 +- .../rev1/keymaps/default/keymap.c | 2 +- .../rev1/keymaps/default/keymap.c | 2 +- .../keymaps/iso_nordic_sleepmode/keymap.c | 2 +- .../rev2/keymaps/default/keymap.c | 2 +- .../rev1/keymaps/default/keymap.c | 2 +- .../rev2/keymaps/default/keymap.c | 2 +- .../bm65hsrgb/keymaps/default/keymap.c | 2 +- .../rev1/keymaps/default/keymap.c | 2 +- .../bm68hsrgb/rev1/keymaps/default/keymap.c | 2 +- .../bm80hsrgb/keymaps/default/keymap.c | 2 +- .../bm80v2/keymaps/default/keymap.c | 2 +- .../bm80v2_iso/keymaps/default/keymap.c | 2 +- .../bm980hsrgb/keymaps/default/keymap.c | 2 +- .../cstc40/keymaps/default/keymap.c | 4 ++-- .../kuro/kuro65/keymaps/default/keymap.c | 2 +- .../pumpkinpad/keymaps/default/keymap.c | 6 ++--- .../latin17rgb/keymaps/default/keymap.c | 2 +- .../latin60rgb/keymaps/default/keymap.c | 8 +++---- .../latin6rgb/keymaps/default/keymap.c | 2 +- .../latinpad/keymaps/default/keymap.c | 16 ++++++------- .../lfkpad/keymaps/default/keymap.c | 10 ++++---- .../linworks/fave60a/keymaps/default/keymap.c | 2 +- .../linworks/fave84h/keymaps/default/keymap.c | 2 +- .../linworks/fave87h/keymaps/default/keymap.c | 2 +- .../favepada/keymaps/default/keymap.c | 2 +- .../magic_force/mf17/keymaps/default/keymap.c | 6 ++--- .../magic_force/mf34/keymaps/default/keymap.c | 8 +++---- .../matrix/noah/keymaps/default/keymap.c | 2 +- keyboards/matrix/noah/keymaps/iso/keymap.c | 2 +- .../matrix/noah/keymaps/splitspace/keymap.c | 2 +- keyboards/matrix/noah/keymaps/wkl/keymap.c | 2 +- keyboards/matrix/noah/noah.c | 18 -------------- .../delphine/keymaps/default/keymap.c | 2 +- .../infinity875/keymaps/default/keymap.c | 10 ++++---- .../bbpad/keymaps/default/keymap.json | 6 ++--- .../kafkasplit/keymaps/default/keymap.c | 2 +- .../melgeek/mach80/keymaps/default/keymap.c | 4 ++-- keyboards/melgeek/mach80/keymaps/tkl/keymap.c | 4 ++-- keyboards/melgeek/mach80/keymaps/wkl/keymap.c | 4 ++-- .../melgeek/mj61/keymaps/default/keymap.c | 4 ++-- .../melgeek/mj63/keymaps/default/keymap.c | 4 ++-- .../melgeek/mj64/keymaps/default/keymap.c | 4 ++-- .../melgeek/mj65/keymaps/default/keymap.c | 4 ++-- .../melgeek/mojo68/keymaps/default/keymap.c | 4 ++-- .../melgeek/mojo75/keymaps/default/keymap.c | 4 ++-- .../melgeek/tegic/keymaps/default/keymap.c | 4 ++-- .../melgeek/z70ultra/keymaps/default/keymap.c | 4 ++-- .../miiiw/blackio83/keymaps/default/keymap.c | 8 +++---- .../miller/gm862/keymaps/default/keymap.c | 2 +- .../moky/moky67/keymaps/default/keymap.c | 18 +++++++------- .../moky/moky88/keymaps/default/keymap.c | 18 +++++++------- .../monsgeek/m5/keymaps/default/keymap.c | 20 ++++++++-------- .../xo87/rgb/keymaps/default/keymap.c | 2 +- .../xo87/solderable/keymaps/default/keymap.c | 2 +- keyboards/mt/mt64rgb/keymaps/default/keymap.c | 2 +- keyboards/mt/mt84/keymaps/default/keymap.c | 2 +- .../mw65_rgb/keymaps/default/keymap.c | 12 +++++----- .../mwstudio/mw75/keymaps/default/keymap.c | 12 +++++----- .../mwstudio/mw75r2/keymaps/default/keymap.c | 12 +++++----- keyboards/nack/keymaps/default/keymap.c | 6 ++--- .../tb16_rgb/keymaps/default/keymap.c | 4 ++-- .../novelkeys/nk20/keymaps/default/keymap.c | 8 +++---- .../novelkeys/nk65b/keymaps/default/keymap.c | 2 +- .../novelkeys/nk87b/keymaps/default/keymap.c | 2 +- .../nk_classic_tkl/keymaps/default/keymap.c | 2 +- .../keymaps/default/keymap.c | 2 +- .../nk_plus/keymaps/default/keymap.c | 2 +- .../orthograph/keymaps/default/keymap.json | 2 +- .../voice65/hotswap/keymaps/default/keymap.c | 4 ++-- .../voice65/soldered/keymaps/default/keymap.c | 4 ++-- .../albacore/keymaps/default/keymap.c | 4 ++-- .../canoe_gen2/keymaps/default/keymap.c | 4 ++-- .../titan65/hotswap/keymaps/default/keymap.c | 4 ++-- .../phentech/rpk_001/keymaps/default/keymap.c | 2 +- .../keybow2040/keymaps/default/keymap.json | 4 ++-- .../playkbtw/pk64rgb/keymaps/default/keymap.c | 2 +- .../projectd_65_ansi/keymaps/default/keymap.c | 6 ++--- .../projectd/75/ansi/keymaps/default/keymap.c | 6 ++--- .../projectd/75/iso/keymaps/default/keymap.c | 6 ++--- .../protozoa/p01/keymaps/default/keymap.c | 2 +- .../quarkeys/z40/keymaps/default/keymap.c | 8 +++---- .../redragon/k667/keymaps/default/keymap.c | 8 +++---- keyboards/rgbkb/mun/keymaps/default/keymap.c | 12 +++++----- keyboards/rgbkb/pan/keymaps/default/keymap.c | 14 +++++------ .../rgbkb/pan/keymaps/default_eee/keymap.c | 14 +++++------ .../rgbkb/pan/keymaps/default_sss/keymap.c | 6 ++--- .../h4ckb0ard/keymaps/default/keymap.c | 8 +++---- .../rskeys100/keymaps/default/keymap.c | 4 ++-- .../s_ol/0xc_pad/keymaps/default/keymap.c | 2 +- .../skiller_sgk50_s2/keymaps/default/keymap.c | 6 ++--- .../skiller_sgk50_s3/keymaps/default/keymap.c | 8 +++---- .../skiller_sgk50_s4/keymaps/default/keymap.c | 6 ++--- .../frost68/keymaps/default/keymap.c | 2 +- keyboards/skmt/15k/keymaps/default/keymap.c | 6 ++--- .../skyloong/dt40/keymaps/default/keymap.c | 2 +- .../skyloong/gk61/v1/keymaps/default/keymap.c | 4 ++-- .../keymaps/default/keymap.c | 4 ++-- .../smallkeyboard/keymaps/default/keymap.c | 2 +- .../sowbug/68keys/keymaps/default/keymap.c | 6 ++--- .../sowbug/ansi_tkl/keymaps/default/keymap.c | 8 +++---- .../nebula12b/keymaps/default/keymap.c | 2 +- .../nebula68b/keymaps/default/keymap.c | 2 +- .../solder/keymaps/default_split_bs/keymap.c | 2 +- .../aurora/corne/keymaps/default/keymap.json | 4 ++-- .../aurora/helix/keymaps/default/keymap.json | 4 ++-- .../aurora/lily58/keymaps/default/keymap.json | 4 ++-- .../sofle_v2/keymaps/default/keymap.json | 4 ++-- .../aurora/sweep/keymaps/default/keymap.json | 6 ++--- .../splitkb/kyria/keymaps/default/keymap.c | 4 ++-- keyboards/stront/keymaps/default/keymap.c | 6 ++--- keyboards/stront/keymaps/hid/keymap.c | 6 ++--- keyboards/stront/keymaps/i2c/keymap.c | 6 ++--- .../native/ansi/keymaps/default/keymap.c | 8 +++---- .../native/iso/keymaps/default/keymap.c | 8 +++---- .../tkc/portico/keymaps/default/keymap.c | 6 ++--- .../tkc/portico68v2/keymaps/default/keymap.c | 4 ++-- .../le_chiffre/keymaps/default/keymap.c | 4 ++-- .../treasure/type9s3/keymaps/default/keymap.c | 6 ++--- .../tzarc/djinn/keymaps/default/keymap.c | 8 +++---- .../tzarc/ghoul/keymaps/default/keymap.c | 16 ++++++------- .../launch_pad/keymaps/default/keymap.c | 8 +++---- keyboards/wekey/we27/keymaps/default/keymap.c | 10 ++++---- .../winry/winry315/keymaps/default/keymap.c | 6 ++--- .../winry315/keymaps/left_numpad/keymap.c | 10 ++++---- keyboards/wolf/m60_b/keymaps/default/keymap.c | 4 ++-- .../woodkeys/meira/keymaps/takmiya/keymap.c | 4 ++-- .../xbows/knight/keymaps/default/keymap.c | 4 ++-- .../knight_plus/keymaps/default/keymap.c | 4 ++-- .../xbows/nature/keymaps/default/keymap.c | 4 ++-- .../xbows/numpad/keymaps/default/keymap.c | 6 ++--- .../xbows/ranger/keymaps/default/keymap.c | 4 ++-- .../xbows/woody/keymaps/default/keymap.c | 4 ++-- .../xelus/pachi/rgb/keymaps/default/keymap.c | 8 +++---- .../xelus/valor/rev2/keymaps/default/keymap.c | 4 ++-- .../xiudi/xd60/keymaps/crd_ansi/keymap.c | 4 ++-- .../yandrstudio/nz64/keymaps/default/keymap.c | 4 ++-- .../nz67v2/keymaps/default/keymap.c | 4 ++-- .../yandrstudio/tg67/keymaps/default/keymap.c | 4 ++-- .../ymdk/id75/keymaps/default/keymap.json | 2 +- keyboards/ymdk/ymd09/keymaps/default/keymap.c | 6 ++--- .../ymdk/ymd40/air40/keymaps/default/keymap.c | 4 ++-- keyboards/ymdk/ymd62/keymaps/default/keymap.c | 2 +- .../ymd75/rev4/iso/keymaps/default/keymap.c | 2 +- .../yncognito/batpad/keymaps/default/keymap.c | 6 ++--- .../quick17/keymaps/default/keymap.c | 6 ++--- .../lets_split_v3/keymaps/default/keymap.c | 2 +- .../zsa/planck_ez/keymaps/default/keymap.json | 2 +- 345 files changed, 923 insertions(+), 941 deletions(-) diff --git a/keyboards/1upkeyboards/1upocarina/keymaps/default/keymap.c b/keyboards/1upkeyboards/1upocarina/keymaps/default/keymap.c index 86e3f440fee..ff93f51ee4f 100644 --- a/keyboards/1upkeyboards/1upocarina/keymaps/default/keymap.c +++ b/keyboards/1upkeyboards/1upocarina/keymaps/default/keymap.c @@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_1x5( - RGB_TOG, RGB_MOD, KC_TRNS, RGB_VAD, RGB_VAI + RM_TOGG, RM_NEXT, KC_TRNS, RM_VALD, RM_VALU ) }; diff --git a/keyboards/1upkeyboards/1upslider8/keymaps/default/keymap.c b/keyboards/1upkeyboards/1upslider8/keymaps/default/keymap.c index 9e39f9d3e38..2f0ac1976e9 100644 --- a/keyboards/1upkeyboards/1upslider8/keymaps/default/keymap.c +++ b/keyboards/1upkeyboards/1upslider8/keymaps/default/keymap.c @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( - RGB_TOG, + RM_TOGG, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8 ) @@ -26,6 +26,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD)} + [0] = { ENCODER_CCW_CW(RM_PREV, RM_NEXT)} }; #endif diff --git a/keyboards/1upkeyboards/1upsuper16v3/keymaps/default/keymap.c b/keyboards/1upkeyboards/1upsuper16v3/keymaps/default/keymap.c index e7be96bd813..79c99fd7db4 100644 --- a/keyboards/1upkeyboards/1upsuper16v3/keymaps/default/keymap.c +++ b/keyboards/1upkeyboards/1upsuper16v3/keymaps/default/keymap.c @@ -24,9 +24,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { MO(1), KC_P0, KC_PDOT, KC_PENT ), [1] = LAYOUT_ortho_4x4( - RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, - RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, - RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS, + RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, + RM_NEXT, RM_HUED, RM_SATD, RM_VALD, + RM_SPDD, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT ) }; diff --git a/keyboards/1upkeyboards/pi40/keymaps/default/keymap.c b/keyboards/1upkeyboards/pi40/keymaps/default/keymap.c index bc0d37eca05..72445452bc1 100644 --- a/keyboards/1upkeyboards/pi40/keymaps/default/keymap.c +++ b/keyboards/1upkeyboards/pi40/keymaps/default/keymap.c @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ONE] = LAYOUT_ortho_4x12 ( - RGB_TOG, + RM_TOGG, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , @@ -107,7 +107,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_FOUR] = LAYOUT_ortho_4x12 ( KC_MUTE, - _______, QK_BOOT, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , + _______, QK_BOOT, _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_DEL , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ @@ -116,7 +116,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_ONE] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) }, + [_ONE] = { ENCODER_CCW_CW(RM_PREV, RM_NEXT) }, [_TWO] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [_THREE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [_FOUR] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } diff --git a/keyboards/1upkeyboards/pi50/keymaps/default/keymap.c b/keyboards/1upkeyboards/pi50/keymaps/default/keymap.c index bd66c00bff8..40b3c520e0b 100644 --- a/keyboards/1upkeyboards/pi50/keymaps/default/keymap.c +++ b/keyboards/1upkeyboards/pi50/keymaps/default/keymap.c @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ONE] = LAYOUT_ortho_5x12 ( - RGB_TOG, + RM_TOGG, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, @@ -128,7 +128,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_ONE] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) }, + [_ONE] = { ENCODER_CCW_CW(RM_PREV, RM_NEXT) }, [_TWO] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [_THREE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [_FOUR] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } diff --git a/keyboards/1upkeyboards/pi60/keymaps/default/keymap.c b/keyboards/1upkeyboards/pi60/keymaps/default/keymap.c index 8a83e83b529..5d1c82a0233 100644 --- a/keyboards/1upkeyboards/pi60/keymaps/default/keymap.c +++ b/keyboards/1upkeyboards/pi60/keymaps/default/keymap.c @@ -37,8 +37,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [2] = LAYOUT_all( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, RGB_M_SN,RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, KC_TRNS, + RM_TOGG, RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, RM_PREV, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, RGB_M_SN,RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), diff --git a/keyboards/1upkeyboards/pi60_hse/keymaps/default/keymap.c b/keyboards/1upkeyboards/pi60_hse/keymaps/default/keymap.c index 22e1a4c0d99..ddb7f98869f 100644 --- a/keyboards/1upkeyboards/pi60_hse/keymaps/default/keymap.c +++ b/keyboards/1upkeyboards/pi60_hse/keymaps/default/keymap.c @@ -37,8 +37,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [2] = LAYOUT_60_ansi_split_bs_rshift( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, RGB_M_SN,RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, KC_TRNS, + RM_TOGG, RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_PREV, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, RGB_M_SN,RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; diff --git a/keyboards/1upkeyboards/super16/keymaps/default/keymap.c b/keyboards/1upkeyboards/super16/keymaps/default/keymap.c index 4414a658c5d..640687c7908 100644 --- a/keyboards/1upkeyboards/super16/keymaps/default/keymap.c +++ b/keyboards/1upkeyboards/super16/keymaps/default/keymap.c @@ -17,9 +17,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_ortho_4x4( /* Base */ - RGB_TOG, KC_1, KC_U, KC_P, - RGB_MOD, KC_1, KC_U, KC_P, - RGB_TOG, KC_1, KC_U, KC_P, - RGB_MOD, KC_1, KC_U, KC_P + RM_TOGG, KC_1, KC_U, KC_P, + RM_NEXT, KC_1, KC_U, KC_P, + RM_TOGG, KC_1, KC_U, KC_P, + RM_NEXT, KC_1, KC_U, KC_P ), }; diff --git a/keyboards/1upkeyboards/super16v2/keymaps/default/keymap.c b/keyboards/1upkeyboards/super16v2/keymaps/default/keymap.c index ba6d6c4d719..ac30909566d 100644 --- a/keyboards/1upkeyboards/super16v2/keymaps/default/keymap.c +++ b/keyboards/1upkeyboards/super16v2/keymaps/default/keymap.c @@ -25,9 +25,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_ortho_4x4( /* Fn Layer */ - RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, - RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, - RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS, + RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, + RM_NEXT, RM_HUED, RM_SATD, RM_VALD, + RM_SPDD, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT ), }; diff --git a/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.c b/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.c index 14168ee7004..6ccf21e18ff 100644 --- a/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.c +++ b/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.c @@ -25,9 +25,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_ortho_4x4( - RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, - RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, - RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS, + RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, + RM_NEXT, RM_HUED, RM_SATD, RM_VALD, + RM_SPDD, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT ) }; @@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(RM_VALD, RM_VALU) }, [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } }; #endif \ No newline at end of file diff --git a/keyboards/4pplet/perk60_iso/keymaps/default/keymap.c b/keyboards/4pplet/perk60_iso/keymaps/default/keymap.c index d720096ad31..6c2698b4f89 100644 --- a/keyboards/4pplet/perk60_iso/keymaps/default/keymap.c +++ b/keyboards/4pplet/perk60_iso/keymaps/default/keymap.c @@ -29,6 +29,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, RGB_M_B, RGB_M_R, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, RGB_M_P, RGB_M_B, RGB_M_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) }; diff --git a/keyboards/abko/ak84bt/keymaps/default/keymap.c b/keyboards/abko/ak84bt/keymaps/default/keymap.c index 48fab8614b0..6e4c85ac142 100644 --- a/keyboards/abko/ak84bt/keymaps/default/keymap.c +++ b/keyboards/abko/ak84bt/keymaps/default/keymap.c @@ -33,10 +33,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_FnLay] = LAYOUT( QK_BOOT, KC_MY_COMPUTER, KC_WWW_HOME, KC_CALCULATOR, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_MAIL, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RM_NEXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAI, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, XXXXXXX, _______, XXXXXXX, RGB_SPD, RGB_VAD, RGB_SPI + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RM_VALU, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, RM_TOGG, XXXXXXX, _______, XXXXXXX, RM_SPDD, RM_VALD, RM_SPDU ) }; diff --git a/keyboards/acheron/apollo/87h/delta/keymaps/default/keymap.c b/keyboards/acheron/apollo/87h/delta/keymaps/default/keymap.c index 3ad45e36794..94f049f55c4 100755 --- a/keyboards/acheron/apollo/87h/delta/keymaps/default/keymap.c +++ b/keyboards/acheron/apollo/87h/delta/keymaps/default/keymap.c @@ -30,8 +30,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_TOGG, RM_NEXT, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), [2] = LAYOUT_tkl_ansi( diff --git a/keyboards/acheron/apollo/87h/gamma/keymaps/default/keymap.c b/keyboards/acheron/apollo/87h/gamma/keymaps/default/keymap.c index 3ad45e36794..94f049f55c4 100755 --- a/keyboards/acheron/apollo/87h/gamma/keymaps/default/keymap.c +++ b/keyboards/acheron/apollo/87h/gamma/keymaps/default/keymap.c @@ -30,8 +30,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_TOGG, RM_NEXT, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), [2] = LAYOUT_tkl_ansi( diff --git a/keyboards/acheron/apollo/87htsc/keymaps/default/keymap.c b/keyboards/acheron/apollo/87htsc/keymaps/default/keymap.c index f814960810b..44404bbc4c2 100755 --- a/keyboards/acheron/apollo/87htsc/keymaps/default/keymap.c +++ b/keyboards/acheron/apollo/87htsc/keymaps/default/keymap.c @@ -30,8 +30,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_TOGG, RM_NEXT, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), [2] = LAYOUT_tkl_ansi_tsangan( diff --git a/keyboards/acheron/apollo/88htsc/keymaps/default/keymap.c b/keyboards/acheron/apollo/88htsc/keymaps/default/keymap.c index abed7e6fbe6..023ddef74c5 100755 --- a/keyboards/acheron/apollo/88htsc/keymaps/default/keymap.c +++ b/keyboards/acheron/apollo/88htsc/keymaps/default/keymap.c @@ -30,8 +30,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_TOGG, RM_NEXT, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), [2] = LAYOUT_tkl_f13_ansi_tsangan( diff --git a/keyboards/adm42/rev4/keymaps/default/keymap.json b/keyboards/adm42/rev4/keymaps/default/keymap.json index 72eb7d50de4..dce2405bc06 100644 --- a/keyboards/adm42/rev4/keymaps/default/keymap.json +++ b/keyboards/adm42/rev4/keymaps/default/keymap.json @@ -29,9 +29,9 @@ "KC_CAPS", "_______", "_______", "_______", "_______", "KC_CAPS" ], [ - "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RGB_M_B", "RGB_VAD", "RGB_VAI", "RGB_SAD", "RGB_SAI", "XXXXXXX", - "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RGB_TOG", "RGB_MOD", "RGB_RMOD", "RGB_HUD", "RGB_HUI", "XXXXXXX", - "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RGB_M_P", "RGB_SPD", "RGB_SPI", "XXXXXXX", "XXXXXXX", "XXXXXXX", + "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RGB_M_B", "RM_VALD", "RM_VALU", "RM_SATD", "RM_SATU", "XXXXXXX", + "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RM_TOGG", "RM_NEXT", "RM_PREV", "RM_HUED", "RM_HUEU", "XXXXXXX", + "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RGB_M_P", "RM_SPDD", "RM_SPDU", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "MO(5)", "XXXXXXX", "XXXXXXX" ], [ diff --git a/keyboards/adpenrose/akemipad/keymaps/default/keymap.c b/keyboards/adpenrose/akemipad/keymaps/default/keymap.c index 7226b85f2c9..ad71e0281f6 100644 --- a/keyboards/adpenrose/akemipad/keymaps/default/keymap.c +++ b/keyboards/adpenrose/akemipad/keymaps/default/keymap.c @@ -42,8 +42,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI) }, - [2] = { ENCODER_CCW_CW(RGB_SAD, RGB_SAI) }, - [3] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } + [1] = { ENCODER_CCW_CW(RM_HUED, RM_HUEU) }, + [2] = { ENCODER_CCW_CW(RM_SATD, RM_SATU) }, + [3] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) } }; #endif diff --git a/keyboards/adpenrose/akemipad/keymaps/default_numpad/keymap.c b/keyboards/adpenrose/akemipad/keymaps/default_numpad/keymap.c index 080df8d1824..3f76587dde6 100644 --- a/keyboards/adpenrose/akemipad/keymaps/default_numpad/keymap.c +++ b/keyboards/adpenrose/akemipad/keymaps/default_numpad/keymap.c @@ -42,8 +42,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI) }, - [2] = { ENCODER_CCW_CW(RGB_SAD, RGB_SAI) }, - [3] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } + [1] = { ENCODER_CCW_CW(RM_HUED, RM_HUEU) }, + [2] = { ENCODER_CCW_CW(RM_SATD, RM_SATU) }, + [3] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) } }; #endif diff --git a/keyboards/akko/5108/keymaps/default/keymap.c b/keyboards/akko/5108/keymaps/default/keymap.c index ef92432ff57..588d895cd3c 100644 --- a/keyboards/akko/5108/keymaps/default/keymap.c +++ b/keyboards/akko/5108/keymaps/default/keymap.c @@ -46,11 +46,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [WIN_FN] = LAYOUT( /* FN */ _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______,TG(WIN_W),_______,_______,_______,_______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, - _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______,TG(WIN_W),_______,_______,_______,_______, _______, _______, DF(MAC_B),_______,_______, _______, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, RM_HUEU, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, _______, _______, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RM_SATD, RM_VALD, RM_SATU, _______, _______), [MAC_B] = LAYOUT( /* Base */ KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU, @@ -70,10 +70,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_FN] = LAYOUT( /* FN */ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______,TG(MAC_W),_______,_______,_______,_______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______) + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______,TG(MAC_W),_______,_______,_______,_______, _______, _______, DF(WIN_B),_______,_______, _______, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, RM_HUEU, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RM_SATD, RM_VALD, RM_SATU, _______, _______) }; // clang-format on diff --git a/keyboards/akko/acr87/keymaps/default/keymap.c b/keyboards/akko/acr87/keymaps/default/keymap.c index 88bfbc8e1fd..51f21a00977 100644 --- a/keyboards/akko/acr87/keymaps/default/keymap.c +++ b/keyboards/akko/acr87/keymaps/default/keymap.c @@ -47,11 +47,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [WIN_FN] = LAYOUT( /* FN */ _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, - _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, - _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, - _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, _______, _______, _______, + _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, _______, DF(MAC_B),_______,_______, _______, RM_NEXT, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, RM_HUEU, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_VALU, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RM_SATD, RM_VALD, RM_SATU), [MAC_B] = LAYOUT( /* Base */ KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, @@ -70,10 +70,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D), [MAC_FN] = LAYOUT( /* FN */ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, - _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, - _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI) + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, _______, _______, _______, + _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, _______, DF(WIN_B),_______,_______, _______, RM_NEXT, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, RM_HUEU, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_VALU, + _______, _______, _______, _______, _______, _______, _______, _______, RM_SATD, RM_VALD, RM_SATU) }; // clang-format on diff --git a/keyboards/akko/top40/keymaps/default/keymap.c b/keyboards/akko/top40/keymaps/default/keymap.c index fb9df162355..8f06ab969e4 100644 --- a/keyboards/akko/top40/keymaps/default/keymap.c +++ b/keyboards/akko/top40/keymaps/default/keymap.c @@ -31,7 +31,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FN] = LAYOUT( /* Fn */ _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, - _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, KC_HOME, KC_END, RGB_TOG, RGB_MOD, - _______, _______, _______, KC_CALC, _______, AG_TOGG, _______, KC_MUTE, KC_VOLD, KC_VOLU, RGB_VAI, _______, - _______, GU_TOGG, _______, _______, _______, _______, RGB_SPI, RGB_VAD, RGB_SAI) + _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, KC_HOME, KC_END, RM_TOGG, RM_NEXT, + _______, _______, _______, KC_CALC, _______, AG_TOGG, _______, KC_MUTE, KC_VOLD, KC_VOLU, RM_VALU, _______, + _______, GU_TOGG, _______, _______, _______, _______, RM_SPDU, RM_VALD, RM_SATU) }; diff --git a/keyboards/alpaca/wfeclipse/keymaps/default/keymap.c b/keyboards/alpaca/wfeclipse/keymaps/default/keymap.c index 3849b2889c1..548db39a108 100644 --- a/keyboards/alpaca/wfeclipse/keymaps/default/keymap.c +++ b/keyboards/alpaca/wfeclipse/keymaps/default/keymap.c @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRV , KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ,KC_MPRV, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, KC_TRNS, KC_MNXT, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD,RGB_HUD, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, KC_TRNS, KC_MNXT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_PREV, RM_HUED, RM_TOGG, KC_TRNS, KC_TRNS, KC_TRNS ) }; diff --git a/keyboards/arrowmechanics/wings/keymaps/default/keymap.c b/keyboards/arrowmechanics/wings/keymaps/default/keymap.c index 949219b820b..6e0a6a18dcb 100644 --- a/keyboards/arrowmechanics/wings/keymaps/default/keymap.c +++ b/keyboards/arrowmechanics/wings/keymaps/default/keymap.c @@ -10,7 +10,7 @@ enum layers { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [BASE] = LAYOUT( KC_VOLU, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_EQL, KC_PSCR, KC_DEL, - KC_VOLD, KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, RGB_MOD, KC_BTN1, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC, + KC_VOLD, KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, RM_NEXT, KC_BTN1, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC, KC_MPLY, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, C(KC_C), C(KC_V), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_MNXT, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, C(KC_Z), C(KC_Y), KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_MPRV, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_HOME, @@ -20,6 +20,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [BASE] = { ENCODER_CCW_CW(RGB_HUI, RGB_HUD), ENCODER_CCW_CW(KC_WH_U, KC_WH_D) }, + [BASE] = { ENCODER_CCW_CW(RM_HUEU, RM_HUED), ENCODER_CCW_CW(KC_WH_U, KC_WH_D) }, }; #endif diff --git a/keyboards/ashwing66/keymaps/default/keymap.c b/keyboards/ashwing66/keymaps/default/keymap.c index 2b317e19eba..304f888742b 100644 --- a/keyboards/ashwing66/keymaps/default/keymap.c +++ b/keyboards/ashwing66/keymaps/default/keymap.c @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LBRC,KC_PSCR,KC_CAPS ,MO(_LAYERB),KC_LGUI ,KC_LALT ,KC_SPC ,KC_PGDN ,KC_PGUP ,KC_ENT ,KC_BSPC ,MO(_LAYERC),KC_INS ,KC_DEL ,KC_BSLS ,KC_RBRC ), [_LAYERB] = LAYOUT_5x16( - KC_ESC ,RGB_TOG,RGB_RMOD,RGB_MOD ,RGB_VAD ,RGB_VAI ,RGB_SPD ,RGB_SPI ,RGB_HUD ,RGB_HUI ,RGB_SAD ,RGB_SAI , + KC_ESC ,RM_TOGG,RM_PREV ,RM_NEXT ,RM_VALD ,RM_VALU ,RM_SPDD ,RM_SPDU ,RM_HUED ,RM_HUEU ,RM_SATD ,RM_SATU , KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_Y ,KC_BTN1 ,KC_MS_U ,KC_BTN2 ,KC_P ,KC_EQL , KC_LCTL,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_H ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_SCLN ,KC_QUOT , KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LBRC ,KC_MUTE ,KC_RBRC ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT , @@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_LAYERA] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, - [_LAYERB] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI)}, - [_LAYERC] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)} + [_LAYERB] = { ENCODER_CCW_CW(RM_HUED, RM_HUEU)}, + [_LAYERC] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)} }; #endif diff --git a/keyboards/atlantis/ak81_ve/keymaps/default/keymap.c b/keyboards/atlantis/ak81_ve/keymaps/default/keymap.c index 59c23c97d36..afe041d515e 100644 --- a/keyboards/atlantis/ak81_ve/keymaps/default/keymap.c +++ b/keyboards/atlantis/ak81_ve/keymaps/default/keymap.c @@ -27,11 +27,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), [1] = LAYOUT( - KC_SYSTEM_SLEEP, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, RGB_TOG, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, - _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, RGB_VAI, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, - _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, RGB_HUI, RGB_SPD, - _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI) + KC_SYSTEM_SLEEP, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, RM_TOGG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, + _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, RM_VALU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALD, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, RM_HUEU, RM_SPDD, + _______, _______, _______, _______, _______, _______, RM_SATD, RM_HUED, RM_SATU) }; \ No newline at end of file diff --git a/keyboards/atlantis/ps17/keymaps/default/keymap.c b/keyboards/atlantis/ps17/keymaps/default/keymap.c index 36042fbb187..26fe6b30662 100644 --- a/keyboards/atlantis/ps17/keymaps/default/keymap.c +++ b/keyboards/atlantis/ps17/keymaps/default/keymap.c @@ -14,7 +14,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_KP_0, KC_PDOT ), [1] = LAYOUT( - RGB_MOD, + RM_NEXT, TO(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS ), [2] = LAYOUT( - RGB_MOD, + RM_NEXT, TO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS ), [3] = LAYOUT( - RGB_MOD, + RM_NEXT, TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(RGB_HUI, RGB_HUD) }, + [1] = { ENCODER_CCW_CW(RM_HUEU, RM_HUED) }, [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, }; diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/default/keymap.c b/keyboards/bastardkb/charybdis/3x5/keymaps/default/keymap.c index b1bd74957db..e5e0ba1207b 100644 --- a/keyboards/bastardkb/charybdis/3x5/keymaps/default/keymap.c +++ b/keyboards/bastardkb/charybdis/3x5/keymaps/default/keymap.c @@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [LAYER_LOWER] = LAYOUT( // ╭─────────────────────────────────────────────╮ ╭─────────────────────────────────────────────╮ - RGB_TOG, KC_MNXT, KC_MPLY, KC_MPRV, XXXXXXX, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, + RM_TOGG, KC_MNXT, KC_MPLY, KC_MPRV, XXXXXXX, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤ KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_PPLS, KC_4, KC_5, KC_6, KC_PMNS, // ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤ diff --git a/keyboards/bastardkb/charybdis/3x6/keymaps/default/keymap.c b/keyboards/bastardkb/charybdis/3x6/keymaps/default/keymap.c index c3aa67a944a..ba8028104e0 100644 --- a/keyboards/bastardkb/charybdis/3x6/keymaps/default/keymap.c +++ b/keyboards/bastardkb/charybdis/3x6/keymaps/default/keymap.c @@ -41,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [LAYER_LOWER] = LAYOUT( // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮ - XXXXXXX, RGB_TOG, KC_MNXT, KC_MPLY, KC_MPRV, XXXXXXX, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, XXXXXXX, + XXXXXXX, RM_TOGG, KC_MNXT, KC_MPLY, KC_MPRV, XXXXXXX, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, XXXXXXX, // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ XXXXXXX, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_PPLS, KC_4, KC_5, KC_6, KC_PMNS, XXXXXXX, // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/default/keymap.c b/keyboards/bastardkb/charybdis/4x6/keymaps/default/keymap.c index 304e9fc9a48..f440dac8cb7 100644 --- a/keyboards/bastardkb/charybdis/4x6/keymaps/default/keymap.c +++ b/keyboards/bastardkb/charybdis/4x6/keymaps/default/keymap.c @@ -46,11 +46,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS, // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ - RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LBRC, KC_P7, KC_P8, KC_P9, KC_RBRC, XXXXXXX, + RM_NEXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LBRC, KC_P7, KC_P8, KC_P9, KC_RBRC, XXXXXXX, // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ - RGB_TOG, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_PPLS, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PEQL, + RM_TOGG, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_PPLS, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PEQL, // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ - RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, EE_CLR, QK_BOOT, KC_PAST, KC_P1, KC_P2, KC_P3, KC_PSLS, KC_PDOT, + RM_PREV, XXXXXXX, XXXXXXX, XXXXXXX, EE_CLR, QK_BOOT, KC_PAST, KC_P1, KC_P2, KC_P3, KC_PSLS, KC_PDOT, // ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯ XXXXXXX, XXXXXXX, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, KC_P0 diff --git a/keyboards/bastardkb/dilemma/4x6_4/keymaps/default/keymap.c b/keyboards/bastardkb/dilemma/4x6_4/keymaps/default/keymap.c index 2e5564f5e93..4ac52309880 100644 --- a/keyboards/bastardkb/dilemma/4x6_4/keymaps/default/keymap.c +++ b/keyboards/bastardkb/dilemma/4x6_4/keymaps/default/keymap.c @@ -46,11 +46,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS, // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ - RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LBRC, KC_P7, KC_P8, KC_P9, KC_RBRC, XXXXXXX, + RM_NEXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LBRC, KC_P7, KC_P8, KC_P9, KC_RBRC, XXXXXXX, // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ - RGB_TOG, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_PPLS, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PEQL, + RM_TOGG, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_PPLS, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PEQL, // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤ - RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, EE_CLR, QK_BOOT, KC_PAST, KC_P1, KC_P2, KC_P3, KC_PSLS, KC_PDOT, + RM_PREV, XXXXXXX, XXXXXXX, XXXXXXX, EE_CLR, QK_BOOT, KC_PAST, KC_P1, KC_P2, KC_P3, KC_PSLS, KC_PDOT, // ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯ XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______ // ╰───────────────────────────────────╯ ╰───────────────────────────────────╯ diff --git a/keyboards/bastardkb/scylla/keymaps/default/keymap.c b/keyboards/bastardkb/scylla/keymaps/default/keymap.c index 10adac4126c..8e9b0190d47 100644 --- a/keyboards/bastardkb/scylla/keymaps/default/keymap.c +++ b/keyboards/bastardkb/scylla/keymaps/default/keymap.c @@ -41,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [2] = LAYOUT_split_4x6_5(KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, //---------------------------------------------------------//--------------------------------------------------------------// - _______, _______, RGB_RMOD, RGB_TOG, RGB_MOD, KC_LBRC, KC_RBRC, _______, KC_NUM, KC_INS, KC_SCRL, KC_MUTE, + _______, _______, RM_PREV, RM_TOGG, RM_NEXT, KC_LBRC, KC_RBRC, _______, KC_NUM, KC_INS, KC_SCRL, KC_MUTE, //---------------------------------------------------------//--------------------------------------------------------------// _______, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_LPRN, KC_RPRN, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_VOLU, //---------------------------------------------------------//--------------------------------------------------------------// diff --git a/keyboards/bastardkb/skeletyl/keymaps/default/keymap.c b/keyboards/bastardkb/skeletyl/keymaps/default/keymap.c index 56e56d9a434..1f49629c888 100644 --- a/keyboards/bastardkb/skeletyl/keymaps/default/keymap.c +++ b/keyboards/bastardkb/skeletyl/keymaps/default/keymap.c @@ -60,9 +60,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,-----------------------------------------------------. ,-----------------------------------------------------. XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RM_HUEU, RM_SATU, RM_VALU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RM_HUED, RM_SATD, RM_VALD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| KC_LGUI, KC_SPC, _______, _______, KC_ENT, KC_RALT //`--------------------------' `--------------------------' diff --git a/keyboards/bastardkb/tbkmini/keymaps/default/keymap.c b/keyboards/bastardkb/tbkmini/keymaps/default/keymap.c index 551aea127f1..d87e9c2a440 100644 --- a/keyboards/bastardkb/tbkmini/keymaps/default/keymap.c +++ b/keyboards/bastardkb/tbkmini/keymaps/default/keymap.c @@ -60,9 +60,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,-----------------------------------------------------. ,-----------------------------------------------------. QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RM_NEXT, RM_HUED, RM_SATD, RM_VALD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| KC_LGUI, KC_SPC, _______, _______, KC_ENT, KC_RALT //`--------------------------' `--------------------------' diff --git a/keyboards/binepad/bnk9/keymaps/default/keymap.c b/keyboards/binepad/bnk9/keymaps/default/keymap.c index 9ae1e4541f6..60b02105992 100644 --- a/keyboards/binepad/bnk9/keymaps/default/keymap.c +++ b/keyboards/binepad/bnk9/keymaps/default/keymap.c @@ -11,10 +11,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P7, KC_P8, LT(1, KC_P9) ), [1] = LAYOUT( - RGB_TOG, - RGB_HUI, RGB_SAI, RGB_SPI, - RGB_HUD, RGB_SAD, RGB_SPD, - RGB_RMOD, RGB_MOD, _______ + RM_TOGG, + RM_HUEU, RM_SATU, RM_SPDU, + RM_HUED, RM_SATD, RM_SPDD, + RM_PREV, RM_NEXT, _______ ) }; @@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } + [1] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) } }; #endif diff --git a/keyboards/blockboy/ac980mini/keymaps/default/keymap.c b/keyboards/blockboy/ac980mini/keymaps/default/keymap.c index b5541ed23e2..0194281ebfa 100644 --- a/keyboards/blockboy/ac980mini/keymaps/default/keymap.c +++ b/keyboards/blockboy/ac980mini/keymaps/default/keymap.c @@ -40,14 +40,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), // RGB Control [1] = LAYOUT( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_TOG, RGB_SPI, _______, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RM_TOGG, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, - _______, _______, _______, _______, _______, MO(2), _______, RGB_MOD, RGB_HUI, RGB_SAI, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, _______, _______, + _______, _______, _______, _______, _______, MO(2), _______, RM_NEXT, RM_HUEU, RM_SATU, _______, _______, _______ ), [2] = LAYOUT( - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/boardsource/beiwagon/keymaps/default/keymap.c b/keyboards/boardsource/beiwagon/keymaps/default/keymap.c index 584ada48304..4f799550e1c 100644 --- a/keyboards/boardsource/beiwagon/keymaps/default/keymap.c +++ b/keyboards/boardsource/beiwagon/keymaps/default/keymap.c @@ -32,8 +32,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_0, KC_PENT,RAISE ), [_RAISE] = LAYOUT( - KC_7, KC_8, RGB_TOG, - KC_4, KC_5, RGB_MOD, + KC_7, KC_8, RM_TOGG, + KC_4, KC_5, RM_NEXT, KC_1, KC_2, KC_3, KC_0, KC_PENT,_______ ) diff --git a/keyboards/boardsource/equals/60/keymaps/default/keymap.c b/keyboards/boardsource/equals/60/keymaps/default/keymap.c index 48e26a40947..b744ea6c4c3 100644 --- a/keyboards/boardsource/equals/60/keymaps/default/keymap.c +++ b/keyboards/boardsource/equals/60/keymaps/default/keymap.c @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, - KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_RGHT, RGB_MOD, RGB_TOG + KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_RGHT, RM_NEXT, RM_TOGG ), [_RAISE] = LAYOUT_ortho_5x12( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, diff --git a/keyboards/boardsource/equals/avr/keymaps/default/keymap.c b/keyboards/boardsource/equals/avr/keymaps/default/keymap.c index 99a049214b1..6cac7e1a0fe 100644 --- a/keyboards/boardsource/equals/avr/keymaps/default/keymap.c +++ b/keyboards/boardsource/equals/avr/keymaps/default/keymap.c @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, - KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, CK_TOGG, RGB_MOD, RGB_TOG + KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, CK_TOGG, RM_NEXT, RM_TOGG ), [_RAISE] = LAYOUT_ortho_5x12( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, diff --git a/keyboards/boardsource/lulu/keymaps/default/keymap.c b/keyboards/boardsource/lulu/keymaps/default/keymap.c index cbee1401ed5..9c1ed869efd 100644 --- a/keyboards/boardsource/lulu/keymaps/default/keymap.c +++ b/keyboards/boardsource/lulu/keymaps/default/keymap.c @@ -65,7 +65,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | F1 | F2 | F3 | F4 | F5 | F6 |-------. ,-------| | Left | Down | Up |Right | | - * |------+------+------+------+------+------|RGB_TOG| | ] |------+------+------+------+------+------| + * |------+------+------+------+------+------|RM_TOGG| | ] |------+------+------+------+------+------| * | F7 | F8 | F9 | F10 | F11 | F12 |-------| |-------| + | - | = | [ | ] | \ | * `-----------------------------------------/ / \ \-----------------------------------------' * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI | @@ -74,10 +74,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_RAISE] = LAYOUT( - RGB_MOD, RGB_RMOD,RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + RM_NEXT, RM_PREV, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, _______, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, - KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_TOG, _______, KC_PLUS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RM_TOGG, _______, KC_PLUS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, _______, _______, _______, _______, _______, _______, _______, _______ ), /* ADJUST diff --git a/keyboards/boardsource/sessanta/keymaps/default/keymap.json b/keyboards/boardsource/sessanta/keymaps/default/keymap.json index b99333c46d7..d8fb2f8e4a9 100644 --- a/keyboards/boardsource/sessanta/keymaps/default/keymap.json +++ b/keyboards/boardsource/sessanta/keymaps/default/keymap.json @@ -12,8 +12,8 @@ ], [ "QK_BOOT", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "KC_F13", - "QK_RBT", "RGB_MOD", "RGB_VAI", "RGB_HUI", "RGB_SAI", "RGB_TOG", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "EE_CLR", "RGB_RMOD", "RGB_VAD", "RGB_HUD", "RGB_SAD", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "QK_RBT", "RM_NEXT", "RM_VALU", "RM_HUEU", "RM_SATU", "RM_TOGG", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "EE_CLR", "RM_PREV", "RM_VALD", "RM_HUED", "RM_SATD", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______" ] diff --git a/keyboards/boardsource/technik_o/keymaps/default/keymap.c b/keyboards/boardsource/technik_o/keymaps/default/keymap.c index a43d930c4f3..42992691905 100644 --- a/keyboards/boardsource/technik_o/keymaps/default/keymap.c +++ b/keyboards/boardsource/technik_o/keymaps/default/keymap.c @@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , - RGB_TOG, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + RM_TOGG, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), [_RAISE] = LAYOUT_ortho_4x12( KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, - RGB_MOD, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + RM_NEXT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ) }; diff --git a/keyboards/boardsource/technik_s/keymaps/default/keymap.c b/keyboards/boardsource/technik_s/keymaps/default/keymap.c index bae6438d15c..9c215f99e24 100644 --- a/keyboards/boardsource/technik_s/keymaps/default/keymap.c +++ b/keyboards/boardsource/technik_s/keymaps/default/keymap.c @@ -30,12 +30,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_LSFT,KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_UP, KC_ENT , - RGB_TOG, KC_LCTL, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_RIGHT + RM_TOGG, KC_LCTL, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_RIGHT ), [_RAISE] = LAYOUT( KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, - RGB_MOD, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + RM_NEXT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD ), [_LOWER] = LAYOUT( diff --git a/keyboards/boardsource/the_q/keymaps/default/keymap.json b/keyboards/boardsource/the_q/keymaps/default/keymap.json index 69aa6f86296..5cd91661d03 100644 --- a/keyboards/boardsource/the_q/keymaps/default/keymap.json +++ b/keyboards/boardsource/the_q/keymaps/default/keymap.json @@ -16,9 +16,9 @@ "_______", "_______", "_______", "_______", "_______", "_______" ], [ - "QK_BOOT", "_______", "_______", "_______", "_______", "_______", "RGB_VAI", "RGB_HUI", "RGB_SAI", "RGB_MOD", "RGB_TOG", "_______", - "EE_CLR", "_______", "_______", "_______", "_______", "_______", "RGB_VAD", "RGB_HUD", "RGB_SAD", "RGB_RMOD", "_______", "_______", - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "QK_BOOT", "_______", "_______", "_______", "_______", "_______", "RM_VALU", "RM_HUEU", "RM_SATU", "RM_NEXT", "RM_TOGG", "_______", + "EE_CLR", "_______", "_______", "_______", "_______", "_______", "RM_VALD", "RM_HUED", "RM_SATD", "RM_PREV", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______" ] ] diff --git a/keyboards/boardsource/unicorne/keymaps/default/keymap.json b/keyboards/boardsource/unicorne/keymaps/default/keymap.json index 1980bc3c873..1aa29177788 100644 --- a/keyboards/boardsource/unicorne/keymaps/default/keymap.json +++ b/keyboards/boardsource/unicorne/keymaps/default/keymap.json @@ -16,8 +16,8 @@ "_______", "_______", "_______", "_______", "_______", "_______" ], [ - "QK_BOOT", "_______", "_______", "_______", "_______", "_______", "RGB_VAI", "RGB_HUI", "RGB_SAI", "RGB_MOD", "RGB_TOG", "_______", - "EE_CLR", "_______", "_______", "_______", "_______", "_______", "RGB_VAD", "RGB_HUD", "RGB_SAD", "RGB_RMOD", "CK_TOGG", "_______", + "QK_BOOT", "_______", "_______", "_______", "_______", "_______", "RM_VALU", "RM_HUEU", "RM_SATU", "RM_NEXT", "RM_TOGG", "_______", + "EE_CLR", "_______", "_______", "_______", "_______", "_______", "RM_VALD", "RM_HUED", "RM_SATD", "RM_PREV", "CK_TOGG", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______" ] diff --git a/keyboards/boston_meetup/2019/keymaps/default/keymap.c b/keyboards/boston_meetup/2019/keymaps/default/keymap.c index b4d72806402..ea655566366 100644 --- a/keyboards/boston_meetup/2019/keymaps/default/keymap.c +++ b/keyboards/boston_meetup/2019/keymaps/default/keymap.c @@ -78,9 +78,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_RAISE] = LAYOUT( KC_NUM, - RGB_TOG, RGB_MOD, RGB_RMOD, XXXXXXX, - _______, RGB_HUI, RGB_SAI, RGB_VAI, - _______, RGB_HUD, RGB_SAD, RGB_VAD + RM_TOGG, RM_NEXT, RM_PREV, XXXXXXX, + _______, RM_HUEU, RM_SATU, RM_VALU, + _______, RM_HUED, RM_SATD, RM_VALD ), diff --git a/keyboards/bubble75/hotswap/keymaps/default/keymap.c b/keyboards/bubble75/hotswap/keymaps/default/keymap.c index 7ce1f6bf91c..1f878ebe32e 100644 --- a/keyboards/bubble75/hotswap/keymaps/default/keymap.c +++ b/keyboards/bubble75/hotswap/keymaps/default/keymap.c @@ -15,11 +15,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_HUD, - _______, _______, _______, RGB_MOD, RGB_TOG, _______, RGB_SPD, RGB_VAD, RGB_SPI), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SATU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SATD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUEU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, RM_HUED, + _______, _______, _______, RM_NEXT, RM_TOGG, _______, RM_SPDD, RM_VALD, RM_SPDU), [2] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/canary/canary60rgb/keymaps/default/keymap.c b/keyboards/canary/canary60rgb/keymaps/default/keymap.c index 094595130fa..f57f83b933f 100644 --- a/keyboards/canary/canary60rgb/keymaps/default/keymap.c +++ b/keyboards/canary/canary60rgb/keymaps/default/keymap.c @@ -32,8 +32,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [2] = LAYOUT( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, QK_BOOT, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, EE_CLR, + _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/capsunlocked/cu80/v2/ansi/keymaps/default/keymap.c b/keyboards/capsunlocked/cu80/v2/ansi/keymaps/default/keymap.c index b0270d17f90..27725440e44 100644 --- a/keyboards/capsunlocked/cu80/v2/ansi/keymaps/default/keymap.c +++ b/keyboards/capsunlocked/cu80/v2/ansi/keymaps/default/keymap.c @@ -29,10 +29,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_ansi( QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_M_B, RGB_M_R, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUEU, RM_SATU, RM_VALU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUED, RM_SATD, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RGB_SPD, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_TOG, RGB_MOD + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RM_SPDD, + _______, _______, _______, _______, _______, _______, _______, _______, RM_PREV, RM_TOGG, RM_NEXT ) }; diff --git a/keyboards/capsunlocked/cu80/v2/iso/keymaps/default/keymap.c b/keyboards/capsunlocked/cu80/v2/iso/keymaps/default/keymap.c index 4bae95ed076..c13c244a3d2 100644 --- a/keyboards/capsunlocked/cu80/v2/iso/keymaps/default/keymap.c +++ b/keyboards/capsunlocked/cu80/v2/iso/keymaps/default/keymap.c @@ -29,10 +29,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_iso( QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_M_B, RGB_M_R, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUEU, RM_SATU, RM_VALU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUED, RM_SATD, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_TOG, RGB_MOD + _______, _______, _______, _______, _______, _______, _______, _______, RM_PREV, RM_TOGG, RM_NEXT ) }; diff --git a/keyboards/clickety_split/leeloo/keymaps/default/keymap.c b/keyboards/clickety_split/leeloo/keymaps/default/keymap.c index 6bf98244728..65ca6213300 100644 --- a/keyboards/clickety_split/leeloo/keymaps/default/keymap.c +++ b/keyboards/clickety_split/leeloo/keymaps/default/keymap.c @@ -107,8 +107,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, - _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, KC_VOLD, _______, _______, _______, - _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, + _______, RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, _______, _______, _______, KC_VOLD, _______, _______, _______, + _______, RM_NEXT, RM_HUED, RM_SATD, RM_VALD, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/controllerworks/city42/keymaps/default/keymap.c b/keyboards/controllerworks/city42/keymaps/default/keymap.c index 7f46648a7e8..b6b3597e98a 100644 --- a/keyboards/controllerworks/city42/keymaps/default/keymap.c +++ b/keyboards/controllerworks/city42/keymaps/default/keymap.c @@ -58,9 +58,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,-----------------------------------------------------. ,-----------------------------------------------------. QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NUM, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, RM_NEXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RM_NEXT, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, RM_PREV, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT //`--------------------------' `--------------------------' diff --git a/keyboards/controllerworks/mini36/keymaps/default/keymap.c b/keyboards/controllerworks/mini36/keymaps/default/keymap.c index b5fbe49bb29..45f46b47bd7 100644 --- a/keyboards/controllerworks/mini36/keymaps/default/keymap.c +++ b/keyboards/controllerworks/mini36/keymaps/default/keymap.c @@ -58,9 +58,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,--------------------------------------------. ,--------------------------------------------. QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| - RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| - RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RM_NEXT, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT //`--------------------------' `--------------------------' diff --git a/keyboards/controllerworks/mini42/keymaps/default/keymap.c b/keyboards/controllerworks/mini42/keymaps/default/keymap.c index af9a62b4004..50ffd9fd55c 100644 --- a/keyboards/controllerworks/mini42/keymaps/default/keymap.c +++ b/keyboards/controllerworks/mini42/keymaps/default/keymap.c @@ -58,9 +58,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,-----------------------------------------------------. ,-----------------------------------------------------. QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NUM, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RM_NEXT, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT //`--------------------------' `--------------------------' diff --git a/keyboards/crkbd/keymaps/default/keymap.c b/keyboards/crkbd/keymaps/default/keymap.c index f4d6f900ce4..6d8d5b7f1d2 100644 --- a/keyboards/crkbd/keymaps/default/keymap.c +++ b/keyboards/crkbd/keymaps/default/keymap.c @@ -58,11 +58,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [3] = LAYOUT_split_3x6_3( //,-----------------------------------------------------. ,-----------------------------------------------------. - QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RM_NEXT, RM_HUED, RM_SATD, RM_VALD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT //`--------------------------' `--------------------------' @@ -71,9 +71,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(KC_RGHT, KC_LEFT), }, - [1] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(KC_RGHT, KC_LEFT), }, - [2] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(KC_RGHT, KC_LEFT), }, - [3] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(KC_RGHT, KC_LEFT), }, + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(RM_VALD, RM_VALU), ENCODER_CCW_CW(KC_RGHT, KC_LEFT), }, + [1] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(RM_VALD, RM_VALU), ENCODER_CCW_CW(KC_RGHT, KC_LEFT), }, + [2] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(RM_VALD, RM_VALU), ENCODER_CCW_CW(KC_RGHT, KC_LEFT), }, + [3] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(RM_VALD, RM_VALU), ENCODER_CCW_CW(KC_RGHT, KC_LEFT), }, }; #endif diff --git a/keyboards/cxt_studio/keymaps/default/keymap.json b/keyboards/cxt_studio/keymaps/default/keymap.json index 77b4cabc929..9e31833520e 100644 --- a/keyboards/cxt_studio/keymaps/default/keymap.json +++ b/keyboards/cxt_studio/keymaps/default/keymap.json @@ -7,7 +7,7 @@ "KC_ESC", "KC_F11", "KC_NO", "KC_MSTP", "KC_NO", "KC_NO", "KC_MRWD", "KC_MFFD", "KC_NO", "KC_MPLY", "KC_MPLY", "KC_MNXT", - "KC_MUTE", "KC_NO", "KC_NO", "RGB_TOG" + "KC_MUTE", "KC_NO", "KC_NO", "RM_TOGG" ] ] } diff --git a/keyboards/darkproject/kd83a_bfg_edition/keymaps/default/keymap.c b/keyboards/darkproject/kd83a_bfg_edition/keymaps/default/keymap.c index 0c23701f5b8..8218f5fd6c0 100644 --- a/keyboards/darkproject/kd83a_bfg_edition/keymaps/default/keymap.c +++ b/keyboards/darkproject/kd83a_bfg_edition/keymaps/default/keymap.c @@ -46,20 +46,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, MO(Macfn),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [Winfn] = LAYOUT( - QK_BOOT, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, RGB_MOD, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, + QK_BOOT, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, RM_NEXT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, KC_TRNS, KC_TRNS, TO(Win), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, - KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_VALU, KC_TRNS, + KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SPDD, RM_VALD, RM_SPDU), [Macfn] = LAYOUT( - QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, RGB_MOD, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, RM_NEXT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, KC_TRNS, KC_TRNS, TO(Win), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_VALU, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SPDD, RM_VALD, RM_SPDU), }; diff --git a/keyboards/darkproject/kd87a_bfg_edition/keymaps/default/keymap.c b/keyboards/darkproject/kd87a_bfg_edition/keymaps/default/keymap.c index 8d48ed9acfe..4c36cd29ebf 100644 --- a/keyboards/darkproject/kd87a_bfg_edition/keymaps/default/keymap.c +++ b/keyboards/darkproject/kd87a_bfg_edition/keymaps/default/keymap.c @@ -47,19 +47,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [Winfn] = LAYOUT_tkl_ansi( QK_BOOT, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, KC_TRNS, - KC_TRNS, KC_TRNS, TO(Win), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, KC_TRNS, + KC_TRNS, KC_TRNS, TO(Win), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, - KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_VALU, + KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SPDD, RM_VALD, RM_SPDU), [Macfn] = LAYOUT_tkl_ansi( QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, KC_TRNS, - KC_TRNS, KC_TRNS, TO(Win), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, KC_TRNS, + KC_TRNS, KC_TRNS, TO(Win), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_VALU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SPDD, RM_VALD, RM_SPDU), }; diff --git a/keyboards/darmoshark/k3/keymaps/default/keymap.c b/keyboards/darmoshark/k3/keymaps/default/keymap.c index 5c49cab1a3e..8c70bf10f23 100644 --- a/keyboards/darmoshark/k3/keymaps/default/keymap.c +++ b/keyboards/darmoshark/k3/keymaps/default/keymap.c @@ -15,11 +15,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_numpad_6x4( - EE_CLR, _______, RGB_MOD, _______, - KC_CALC, _______, _______, RGB_VAD, - _______, RGB_SPI, _______, - _______, _______, _______, RGB_VAI, - _______, RGB_SPD, _______, - _______, RGB_TOG, _______ + EE_CLR, _______, RM_NEXT, _______, + KC_CALC, _______, _______, RM_VALD, + _______, RM_SPDU, _______, + _______, _______, _______, RM_VALU, + _______, RM_SPDD, _______, + _______, RM_TOGG, _______ ) }; diff --git a/keyboards/dasky/reverb/keymaps/default/keymap.json b/keyboards/dasky/reverb/keymaps/default/keymap.json index c23702d4c0f..bce24be260b 100644 --- a/keyboards/dasky/reverb/keymaps/default/keymap.json +++ b/keyboards/dasky/reverb/keymaps/default/keymap.json @@ -25,8 +25,8 @@ ["KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_PSCR", "QK_BOOT", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "RGB_TOG", "RGB_HUI", "RGB_SAI", "RGB_VAI", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", - "RGB_MOD", "RGB_HUD", "RGB_SAD", "RGB_VAD", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "RM_TOGG", "RM_HUEU", "RM_SATU", "RM_VALU", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "RM_NEXT", "RM_HUED", "RM_SATD", "RM_VALD", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "KC_LGUI", "KC_TRNS", "KC_SPC", "KC_ENT", "KC_TRNS", "KC_RALT"] ] } diff --git a/keyboards/deemen17/de80/keymaps/default/keymap.c b/keyboards/deemen17/de80/keymaps/default/keymap.c index cd354304470..4a1a2563cf4 100644 --- a/keyboards/deemen17/de80/keymaps/default/keymap.c +++ b/keyboards/deemen17/de80/keymaps/default/keymap.c @@ -28,11 +28,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_all( QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SAI, RGB_HUI, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SAD, RGB_HUD, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD, RGB_VAD, RGB_MOD + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_SATU, UG_HUEU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_SATD, UG_HUED, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_TOGG, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_VALU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_PREV, UG_VALD, UG_NEXT ) }; diff --git a/keyboards/dekunukem/duckypad/keymaps/default/keymap.c b/keyboards/dekunukem/duckypad/keymaps/default/keymap.c index 5665bcb799a..7f7a8925fd9 100644 --- a/keyboards/dekunukem/duckypad/keymaps/default/keymap.c +++ b/keyboards/dekunukem/duckypad/keymaps/default/keymap.c @@ -82,10 +82,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_RGB] = LAYOUT( RGB_M_P, RGB_M_B, RGB_M_R, - RGB_M_SW, RGB_SPD, RGB_SPI, - RGB_MOD, RGB_SAD, RGB_SAI, - RGB_RMOD, RGB_HUD, RGB_HUI, - RGB_TOG, RGB_VAD, RGB_VAI, + RGB_M_SW, RM_SPDD, RM_SPDU, + RM_NEXT, RM_SATD, RM_SATU, + RM_PREV, RM_HUED, RM_HUEU, + RM_TOGG, RM_VALD, RM_VALU, RGB_LAYER, KC_NO ) }; diff --git a/keyboards/deng/djam/keymaps/default/keymap.c b/keyboards/deng/djam/keymaps/default/keymap.c index 11508963b10..d46cc6fcc36 100644 --- a/keyboards/deng/djam/keymaps/default/keymap.c +++ b/keyboards/deng/djam/keymaps/default/keymap.c @@ -33,8 +33,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LEFT, KC_RGHT, KC_LSFT, L1_SPC, KC_RSFT, KC_UP, KC_DOWN), [1] = LAYOUT( - RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, RGB_RMOD, - _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, RGB_MOD, RGB_TOG, + RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, _______, RM_PREV, + _______, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, _______, RM_NEXT, RM_TOGG, _______, _______, BL_TOGG, _______, BL_STEP, _______, _______) }; diff --git a/keyboards/deng/thirty/keymaps/default/keymap.c b/keyboards/deng/thirty/keymaps/default/keymap.c index 68bf26ccad5..fcda453e8e6 100644 --- a/keyboards/deng/thirty/keymaps/default/keymap.c +++ b/keyboards/deng/thirty/keymaps/default/keymap.c @@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [4] = LAYOUT_ortho_3x10( - QK_BOOT, KC_BRID, KC_BRIU, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_MOD, - KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_M_B, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, RGB_RMOD, + QK_BOOT, KC_BRID, KC_BRIU, _______, RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, RM_NEXT, + KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_M_B, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, RM_PREV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/doio/kb04/keymaps/default/keymap.c b/keyboards/doio/kb04/keymaps/default/keymap.c index 7df80397fd3..9203aea4816 100644 --- a/keyboards/doio/kb04/keymaps/default/keymap.c +++ b/keyboards/doio/kb04/keymaps/default/keymap.c @@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { MO(_LAY1), KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE ), [_LAY1] = LAYOUT( - KC_TRNS, RGB_HUD, RGB_TOG, RGB_MOD, KC_TRNS + KC_TRNS, RM_HUED, RM_TOGG, RM_NEXT, KC_TRNS ) }; diff --git a/keyboards/doio/kb09/keymaps/default/keymap.c b/keyboards/doio/kb09/keymaps/default/keymap.c index 657a6bc428f..b5a0e5f62de 100644 --- a/keyboards/doio/kb09/keymaps/default/keymap.c +++ b/keyboards/doio/kb09/keymaps/default/keymap.c @@ -42,9 +42,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_C, KC_V, C(KC_M), TO(3), KC_TRNS), [_LAY3] = LAYOUT( - KC_TRNS, RGB_SPI, RGB_SPD, RGB_HUI, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, RGB_SAI, RGB_SAD, RGB_HUD, - KC_TRNS, RGB_MOD, RGB_VAI, RGB_VAD, + KC_TRNS, RM_SPDU, RM_SPDD, RM_HUEU, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, RM_SATU, RM_SATD, RM_HUED, + KC_TRNS, RM_NEXT, RM_VALU, RM_VALD, TO(0), KC_TRNS) }; diff --git a/keyboards/doio/kb12/keymaps/default/keymap.c b/keyboards/doio/kb12/keymaps/default/keymap.c index 72360f1a8b2..21786fd7432 100644 --- a/keyboards/doio/kb12/keymaps/default/keymap.c +++ b/keyboards/doio/kb12/keymaps/default/keymap.c @@ -39,7 +39,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LAY4] = LAYOUT( TO(5), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), [_LAY5] = LAYOUT( - TO(0), RGB_TOG, RGB_MOD, RGB_SPI, RGB_SPD, RGB_SAI, RGB_SAD, RGB_HUI, RGB_HUD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS) + TO(0), RM_TOGG, RM_NEXT, RM_SPDU, RM_SPDD, RM_SATU, RM_SATD, RM_HUEU, RM_HUED, RM_VALU, RM_VALD, KC_TRNS, KC_TRNS) }; diff --git a/keyboards/doio/kb16/keymaps/default/keymap.c b/keyboards/doio/kb16/keymaps/default/keymap.c index fc1f1dcfaaa..9e6c0e8662e 100644 --- a/keyboards/doio/kb16/keymaps/default/keymap.c +++ b/keyboards/doio/kb16/keymaps/default/keymap.c @@ -115,10 +115,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* Row: 0 1 2 3 4 */ [_FN2] = LAYOUT( - RGB_SPI, RGB_SPD, _______, QK_BOOT, _______, - RGB_SAI, RGB_SAD, _______, _______, TO(_BASE), - RGB_TOG, RGB_MOD, RGB_HUI, _______, _______, - _______, RGB_VAI, RGB_HUD, RGB_VAD + RM_SPDU, RM_SPDD, _______, QK_BOOT, _______, + RM_SATU, RM_SATD, _______, _______, TO(_BASE), + RM_TOGG, RM_NEXT, RM_HUEU, _______, _______, + _______, RM_VALU, RM_HUED, RM_VALD ), }; diff --git a/keyboards/doio/kb30/keymaps/default/keymap.c b/keyboards/doio/kb30/keymaps/default/keymap.c index 2e385d24e30..855fba1697e 100644 --- a/keyboards/doio/kb30/keymaps/default/keymap.c +++ b/keyboards/doio/kb30/keymaps/default/keymap.c @@ -47,11 +47,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(3), KC_TRNS), [_LAY3] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_SPI, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_SPD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, RM_SATU, RM_SPDU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUED, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, - KC_TRNS, KC_TRNS, RGB_VAD, RGB_TOG, RGB_VAI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_NEXT, + KC_TRNS, KC_TRNS, RM_VALD, RM_TOGG, RM_VALU, KC_TRNS, TO(0), KC_TRNS) }; diff --git a/keyboards/doio/kb38/keymaps/default/keymap.c b/keyboards/doio/kb38/keymaps/default/keymap.c index 96a548e512e..6f5304c0048 100644 --- a/keyboards/doio/kb38/keymaps/default/keymap.c +++ b/keyboards/doio/kb38/keymaps/default/keymap.c @@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * └───────┴───┴───┘└───┴───┴───┘└───────────┘ */ [_QWERTY] = LAYOUT( - MO(1), KC_BSPC, RGB_RMOD, RGB_TOG, RGB_MOD, KC_F1, KC_F2, KC_F3, + MO(1), KC_BSPC, RM_PREV, RM_TOGG, RM_NEXT, KC_F1, KC_F2, KC_F3, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PAUS, KC_SCRL, KC_PSCR, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_INS, KC_HOME, KC_PGUP, KC_HOME, KC_END, KC_P4, KC_P5, KC_P6, KC_END, KC_DEL, KC_PGDN, @@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT ), [_LAYERTWO] = LAYOUT( - _______, KC_BSPC, RGB_RMOD, RGB_TOG, RGB_MOD, KC_A, QK_RBT, QK_BOOT, + _______, KC_BSPC, RM_PREV, RM_TOGG, RM_NEXT, KC_A, QK_RBT, QK_BOOT, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PAUS, KC_SCRL, KC_PSCR, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_INS, KC_HOME, KC_PGUP, KC_HOME, KC_END, KC_P4, KC_P5, KC_P6, KC_END, KC_DEL, KC_PGDN, diff --git a/keyboards/doio/kb3x/keymaps/default/keymap.c b/keyboards/doio/kb3x/keymaps/default/keymap.c index 934019e8cf5..02dddfe5173 100644 --- a/keyboards/doio/kb3x/keymaps/default/keymap.c +++ b/keyboards/doio/kb3x/keymaps/default/keymap.c @@ -26,7 +26,7 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LAY0] = LAYOUT( - TO(1), RGB_MOD, RGB_TOG, RGB_HUI, RGB_VAD, RGB_VAI, + TO(1), RM_NEXT, RM_TOGG, RM_HUEU, RM_VALD, RM_VALU, KC_MPLY, KC_UP, KC_UP, KC_MNXT, KC_TRNS, KC_MPRV, A(KC_LEFT), KC_TRNS, A(KC_RIGHT), KC_RIGHT, KC_TRNS, KC_LEFT, KC_MPLY, KC_DOWN, KC_DOWN), diff --git a/keyboards/doro67/rgb/keymaps/default/keymap.c b/keyboards/doro67/rgb/keymaps/default/keymap.c index ca9ec2e6121..bc4485af663 100644 --- a/keyboards/doro67/rgb/keymaps/default/keymap.c +++ b/keyboards/doro67/rgb/keymaps/default/keymap.c @@ -59,8 +59,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_65_ansi_blocker( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, QMKBEST, QMKURL, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RM_TOGG, RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RM_PREV, RM_HUED, RM_SATD, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; diff --git a/keyboards/dotmod/dymium65/keymaps/default/keymap.c b/keyboards/dotmod/dymium65/keymaps/default/keymap.c index e18c3b5b230..23e50f2907e 100644 --- a/keyboards/dotmod/dymium65/keymaps/default/keymap.c +++ b/keyboards/dotmod/dymium65/keymaps/default/keymap.c @@ -39,10 +39,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_FN] = LAYOUT( KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BACKSPACE, KC_TRNS, - RGB_TOG, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, RGB_HUI, RGB_HUD, KC_BACKSLASH, KC_TRNS, - KC_CAPS_LOCK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, RGB_SAD, RGB_SAI, KC_ENTER, KC_TRNS, - KC_LEFT_SHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, MO(_LN), KC_SLASH, KC_RIGHT_SHIFT, RGB_VAI, - KC_LEFT_CTRL, KC_LEFT_GUI, KC_LEFT_ALT, KC_SPACE, RGB_MOD, _______, KC_RIGHT_CTRL, RGB_SPD, RGB_VAD, RGB_SPI + RM_TOGG, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, RM_HUEU, RM_HUED, KC_BACKSLASH, KC_TRNS, + KC_CAPS_LOCK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, RM_SATD, RM_SATU, KC_ENTER, KC_TRNS, + KC_LEFT_SHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, MO(_LN), KC_SLASH, KC_RIGHT_SHIFT, RM_VALU, + KC_LEFT_CTRL, KC_LEFT_GUI, KC_LEFT_ALT, KC_SPACE, RM_NEXT, _______, KC_RIGHT_CTRL, RM_SPDD, RM_VALD, RM_SPDU ), [_LN] = LAYOUT( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, KC_BACKSPACE, KC_TRNS, @@ -64,8 +64,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_BASE] = { ENCODER_CCW_CW(KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP) }, - [_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, - [_LN] = { ENCODER_CCW_CW(RGB_SAD, RGB_SAI) }, - [_MT] = { ENCODER_CCW_CW(RGB_SPD, RGB_SPI) }, + [_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) }, + [_LN] = { ENCODER_CCW_CW(RM_SATD, RM_SATU) }, + [_MT] = { ENCODER_CCW_CW(RM_SPDD, RM_SPDU) }, }; #endif diff --git a/keyboards/dp3000/keymaps/default/keymap.c b/keyboards/dp3000/keymaps/default/keymap.c index 6d3561edbc5..1455e153ef8 100644 --- a/keyboards/dp3000/keymaps/default/keymap.c +++ b/keyboards/dp3000/keymaps/default/keymap.c @@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( QK_BOOT, _______, KC_1, KC_2, KC_3, KC_4, - TO(0), TO(2), TO(3), RGB_TOG + TO(0), TO(2), TO(3), RM_TOGG ), [2] = LAYOUT( _______, _______, @@ -50,9 +50,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #if defined (ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(RGB_HUD, RGB_HUI) }, - [1] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP), ENCODER_CCW_CW(RGB_SAD, RGB_SAI) }, - [2] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_SPD, RGB_SPI) }, - [3] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(KC_RIGHT, KC_LEFT)}, + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(RM_HUED, RM_HUEU) }, + [1] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP), ENCODER_CCW_CW(RM_SATD, RM_SATU) }, + [2] = { ENCODER_CCW_CW(RM_VALD, RM_VALU), ENCODER_CCW_CW(RM_SPDD, RM_SPDU) }, + [3] = { ENCODER_CCW_CW(RM_PREV, RM_NEXT), ENCODER_CCW_CW(KC_RIGHT, KC_LEFT)}, }; #endif diff --git a/keyboards/dp60/keymaps/default/keymap.c b/keyboards/dp60/keymaps/default/keymap.c index 3d49bd268fe..0054aef2121 100644 --- a/keyboards/dp60/keymaps/default/keymap.c +++ b/keyboards/dp60/keymaps/default/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_60_ansi_split_bs_rshift( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,_______,KC_PSCR, - QK_BOOT, RGB_TOG,RGB_MOD,_______,KC_F13,KC_F14,_______,_______,_______,_______,_______,KC_PGUP,KC_PGDN,_______, + QK_BOOT, RM_TOGG,RM_NEXT,_______,KC_F13,KC_F14,_______,_______,_______,_______,_______,KC_PGUP,KC_PGDN,_______, _______, _______,_______,_______,_______,_______,KC_LEFT,KC_DOWN, KC_UP,KC_RIGHT,KC_HOME,KC_END,_______, _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______, _______,_______,TG(0),_______), diff --git a/keyboards/dtisaac/dosa40rgb/keymaps/default/keymap.c b/keyboards/dtisaac/dosa40rgb/keymaps/default/keymap.c index 38db55938a0..e9038537f27 100644 --- a/keyboards/dtisaac/dosa40rgb/keymaps/default/keymap.c +++ b/keyboards/dtisaac/dosa40rgb/keymaps/default/keymap.c @@ -45,8 +45,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), [_L2] = LAYOUT( - RGB_TOG, RGB_RMOD, KC_UP, RGB_MOD, RGB_HUI, RGB_VAI, RGB_SAI, RGB_SPI, KC_TRNS, OU_USB, OU_BT, KC_TRNS, - KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, RGB_HUD, RGB_VAD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_BSLS, + RM_TOGG, RM_PREV, KC_UP, RM_NEXT, RM_HUEU, RM_VALU, RM_SATU, RM_SPDU, KC_TRNS, OU_USB, OU_BT, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, RM_HUED, RM_VALD, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_BSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), diff --git a/keyboards/ducky/one2mini/keymaps/ansi/keymap.c b/keyboards/ducky/one2mini/keymaps/ansi/keymap.c index 8ea4a1729f7..2b42eb6e953 100644 --- a/keyboards/ducky/one2mini/keymaps/ansi/keymap.c +++ b/keyboards/ducky/one2mini/keymaps/ansi/keymap.c @@ -48,9 +48,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_COLOUR] = LAYOUT_60_ansi( // 2 3 4 5 6 7 8 9 10 11 12 13 14 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, RGB_TOG, _______, _______, _______, _______ + _______, _______, _______, _______, _______, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, + _______, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, RM_TOGG, _______, _______, _______, _______ ), }; diff --git a/keyboards/ducky/one2mini/keymaps/default/keymap.c b/keyboards/ducky/one2mini/keymaps/default/keymap.c index 537c5a420ec..d8941bacdc6 100644 --- a/keyboards/ducky/one2mini/keymaps/default/keymap.c +++ b/keyboards/ducky/one2mini/keymaps/default/keymap.c @@ -48,9 +48,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_COLOUR] = LAYOUT_all( // 2 3 4 5 6 7 8 9 10 11 12 13 14 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, RGB_TOG, _______, _______, _______, _______ + _______, _______, _______, _______, _______, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, RM_TOGG, _______, _______, _______, _______ ), }; diff --git a/keyboards/ducky/one2mini/keymaps/iso/keymap.c b/keyboards/ducky/one2mini/keymaps/iso/keymap.c index 1c653d0fd52..585655d5541 100644 --- a/keyboards/ducky/one2mini/keymaps/iso/keymap.c +++ b/keyboards/ducky/one2mini/keymaps/iso/keymap.c @@ -48,9 +48,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_COLOUR] = LAYOUT_60_iso( // 2 3 4 5 6 7 8 9 10 11 12 13 14 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, RGB_TOG, _______, _______, _______, _______ + _______, _______, _______, _______, _______, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, RM_TOGG, _______, _______, _______, _______ ), }; diff --git a/keyboards/ducky/one2sf/keymaps/default/keymap.c b/keyboards/ducky/one2sf/keymaps/default/keymap.c index 044b5067f64..bfa354f508d 100644 --- a/keyboards/ducky/one2sf/keymaps/default/keymap.c +++ b/keyboards/ducky/one2sf/keymaps/default/keymap.c @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, KC_INS, _______, KC_UP, KC_PAUSE, KC_PGUP, KC_HOME, KC_PSCR, _______, KC_HOME, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_SCRL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, KC_END, _______, _______, KC_END, - _______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, + _______, _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______ ), @@ -48,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, + _______, _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/ducky/one2sf/keymaps/default_ansi/keymap.c b/keyboards/ducky/one2sf/keymaps/default_ansi/keymap.c index 089f5f5f073..fd65bd543ab 100644 --- a/keyboards/ducky/one2sf/keymaps/default_ansi/keymap.c +++ b/keyboards/ducky/one2sf/keymaps/default_ansi/keymap.c @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, KC_INS, _______, KC_UP, KC_PAUS, KC_PGUP, KC_HOME, KC_PSCR, _______, KC_HOME, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_SCRL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, _______, KC_END, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, + _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______ ), @@ -48,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, + _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/ducky/one2sf/keymaps/default_iso/keymap.c b/keyboards/ducky/one2sf/keymaps/default_iso/keymap.c index be678520e6f..94963fcab59 100644 --- a/keyboards/ducky/one2sf/keymaps/default_iso/keymap.c +++ b/keyboards/ducky/one2sf/keymaps/default_iso/keymap.c @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, KC_INS, _______, KC_UP, KC_PAUS, KC_PGUP, KC_HOME, KC_PSCR, KC_HOME, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_SCRL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, _______, _______, KC_END, - _______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, + _______, _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______ ), @@ -48,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, + _______, _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/dumbpad/v3x/keymaps/default/keymap.c b/keyboards/dumbpad/v3x/keymaps/default/keymap.c index 0c65fac187f..bbd9687ea9d 100644 --- a/keyboards/dumbpad/v3x/keymaps/default/keymap.c +++ b/keyboards/dumbpad/v3x/keymaps/default/keymap.c @@ -50,10 +50,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { \-----------------------------------------------------' */ [1] = LAYOUT( - RGB_TOG, RGB_VAD, RGB_VAI, QK_BOOT, - KC_NO, RGB_HUD, RGB_HUI, KC_NO, - KC_NO, RGB_SAD, RGB_SAI, KC_NO, - KC_NO, _______, RGB_SPD, RGB_SPI, KC_NO + RM_TOGG, RM_VALD, RM_VALU, QK_BOOT, + KC_NO, RM_HUED, RM_HUEU, KC_NO, + KC_NO, RM_SATD, RM_SATU, KC_NO, + KC_NO, _______, RM_SPDD, RM_SPDU, KC_NO ), }; // clang-format on diff --git a/keyboards/durgod/dgk6x/galaxy/keymaps/default/keymap.json b/keyboards/durgod/dgk6x/galaxy/keymaps/default/keymap.json index 83b285786d6..c6834b56600 100644 --- a/keyboards/durgod/dgk6x/galaxy/keymaps/default/keymap.json +++ b/keyboards/durgod/dgk6x/galaxy/keymaps/default/keymap.json @@ -20,20 +20,20 @@ "KC_TRNS", "GU_TOGG", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "MO(3)", "KC_TRNS", "KC_TRNS", "KC_TRNS" ], [ - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_RMOD","RGB_MOD", "RGB_TOG", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_PREV", "RM_NEXT", "RM_TOGG", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_VAI", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "MO(3)", "KC_TRNS", "RGB_SPD", "RGB_VAD", "RGB_SPI" + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_VALU", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "MO(3)", "KC_TRNS", "RM_SPDD", "RM_VALD", "RM_SPDU" ], [ "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_SAI", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_HUD", "RGB_SAD", "RGB_HUI" + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_SATU", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_HUED", "RM_SATD", "RM_HUEU" ] ], "author":"dkjer", diff --git a/keyboards/durgod/dgk6x/hades_ansi/keymaps/default/keymap.json b/keyboards/durgod/dgk6x/hades_ansi/keymaps/default/keymap.json index fc2a11b35cd..c19a834337f 100644 --- a/keyboards/durgod/dgk6x/hades_ansi/keymaps/default/keymap.json +++ b/keyboards/durgod/dgk6x/hades_ansi/keymaps/default/keymap.json @@ -18,18 +18,18 @@ "KC_TRNS", "GU_TOGG", "KC_TRNS", "KC_TRNS", "KC_TRNS", "MO(3)", "KC_TRNS", "KC_APP", "KC_TRNS", "KC_TRNS" ], [ - "KC_TRNS", "KC_MPLY", "KC_MSTP", "KC_MPRV", "KC_MNXT", "KC_VOLD", "KC_VOLU", "KC_MUTE", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_TOG", "RGB_MOD", "RGB_RMOD", "KC_TRNS", + "KC_TRNS", "KC_MPLY", "KC_MSTP", "KC_MPRV", "KC_MNXT", "KC_VOLD", "KC_VOLU", "KC_MUTE", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_TOGG", "RM_NEXT", "RM_PREV", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_VAI", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "MO(3)", "KC_TRNS", "KC_TRNS", "RGB_SPD", "RGB_VAD", "RGB_SPI" + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_VALU", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "MO(3)", "KC_TRNS", "KC_TRNS", "RM_SPDD", "RM_VALD", "RM_SPDU" ], [ "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_SAI", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_HUD", "RGB_SAD", "RGB_HUI" + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_SATU", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_HUED", "RM_SATD", "RM_HUEU" ] ], "author":"J-Sully", diff --git a/keyboards/durgod/dgk6x/hades_iso/keymaps/default/keymap.json b/keyboards/durgod/dgk6x/hades_iso/keymaps/default/keymap.json index f3ecd2cc9b6..987886e72d7 100644 --- a/keyboards/durgod/dgk6x/hades_iso/keymaps/default/keymap.json +++ b/keyboards/durgod/dgk6x/hades_iso/keymaps/default/keymap.json @@ -18,18 +18,18 @@ "KC_TRNS", "GU_TOGG", "KC_TRNS", "KC_TRNS", "KC_TRNS", "MO(3)", "KC_TRNS", "KC_APP", "KC_TRNS", "KC_TRNS" ], [ - "KC_TRNS", "KC_MPLY", "KC_MSTP", "KC_MPRV", "KC_MNXT", "KC_VOLD", "KC_VOLU", "KC_MUTE", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_TOG", "RGB_MOD", "RGB_RMOD", "KC_TRNS", + "KC_TRNS", "KC_MPLY", "KC_MSTP", "KC_MPRV", "KC_MNXT", "KC_VOLD", "KC_VOLU", "KC_MUTE", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_TOGG", "RM_NEXT", "RM_PREV", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_VAI", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "MO(3)", "KC_TRNS", "KC_TRNS", "RGB_SPD", "RGB_VAD", "RGB_SPI" + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_VALU", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "MO(3)", "KC_TRNS", "KC_TRNS", "RM_SPDD", "RM_VALD", "RM_SPDU" ], [ "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_SAI", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_HUD", "RGB_SAD", "RGB_HUI" + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_SATU", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_HUED", "RM_SATD", "RM_HUEU" ] ], "author":"ebastler", diff --git a/keyboards/durgod/dgk6x/venus/keymaps/default/keymap.json b/keyboards/durgod/dgk6x/venus/keymaps/default/keymap.json index ff3f85d9e48..8acd302a055 100644 --- a/keyboards/durgod/dgk6x/venus/keymaps/default/keymap.json +++ b/keyboards/durgod/dgk6x/venus/keymaps/default/keymap.json @@ -18,16 +18,16 @@ "KC_TRNS", "GU_TOGG", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "MO(3)", "KC_TRNS" ], [ - "KC_TRNS", "KC_MPLY", "KC_MSTP", "KC_MPRV", "KC_MNXT", "KC_MUTE", "KC_VOLD", "KC_VOLU", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_TOG", "RGB_MOD", "RGB_RMOD", - "KC_TRNS", "KC_TRNS", "RGB_VAI", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "RGB_SPD", "RGB_VAD", "RGB_SPI", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "KC_MPLY", "KC_MSTP", "KC_MPRV", "KC_MNXT", "KC_MUTE", "KC_VOLD", "KC_VOLU", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_TOGG", "RM_NEXT", "RM_PREV", + "KC_TRNS", "KC_TRNS", "RM_VALU", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "RM_SPDD", "RM_VALD", "RM_SPDU", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "MO(3)", "KC_TRNS", "KC_TRNS" ], [ "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", - "XXXXXXX", "XXXXXXX", "RGB_SAI", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", - "XXXXXXX", "RGB_HUD", "RGB_SAD", "RGB_HUI", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", + "XXXXXXX", "XXXXXXX", "RM_SATU", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", + "XXXXXXX", "RM_HUED", "RM_SATD", "RM_HUEU", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "KC_TRNS", "KC_TRNS", "XXXXXXX" ] diff --git a/keyboards/dztech/dz60rgb/keymaps/default/keymap.c b/keyboards/dztech/dz60rgb/keymaps/default/keymap.c index 87e64544e07..b98886ed1d8 100644 --- a/keyboards/dztech/dz60rgb/keymaps/default/keymap.c +++ b/keyboards/dztech/dz60rgb/keymaps/default/keymap.c @@ -17,8 +17,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [2] = LAYOUT( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, QK_BOOT, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, EE_CLR, + _______, RM_TOGG, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/dztech/dz60rgb_ansi/keymaps/default/keymap.c b/keyboards/dztech/dz60rgb_ansi/keymaps/default/keymap.c index 339d2fa4282..b13c1155287 100644 --- a/keyboards/dztech/dz60rgb_ansi/keymaps/default/keymap.c +++ b/keyboards/dztech/dz60rgb_ansi/keymaps/default/keymap.c @@ -17,8 +17,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [2] = LAYOUT_60_ansi( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, QK_BOOT, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______, + _______, RM_TOGG, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/dztech/dz60rgb_wkl/keymaps/default/keymap.c b/keyboards/dztech/dz60rgb_wkl/keymaps/default/keymap.c index a1bbe830e31..7382750d164 100644 --- a/keyboards/dztech/dz60rgb_wkl/keymaps/default/keymap.c +++ b/keyboards/dztech/dz60rgb_wkl/keymaps/default/keymap.c @@ -17,8 +17,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [2] = LAYOUT_60_ansi_tsangan_split_bs_rshift( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, - _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, QK_BOOT, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______, + _______, RM_TOGG, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/dztech/dz64rgb/keymaps/default/keymap.c b/keyboards/dztech/dz64rgb/keymaps/default/keymap.c index 032473f88fb..6d9b2755139 100644 --- a/keyboards/dztech/dz64rgb/keymaps/default/keymap.c +++ b/keyboards/dztech/dz64rgb/keymaps/default/keymap.c @@ -33,8 +33,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [2] = LAYOUT_64_ansi( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, QK_BOOT, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, EE_CLR, + _______, RM_TOGG, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/dztech/dz65rgb/keymaps/default/keymap.c b/keyboards/dztech/dz65rgb/keymaps/default/keymap.c index 548d55799a6..ae73fdc0a7b 100644 --- a/keyboards/dztech/dz65rgb/keymaps/default/keymap.c +++ b/keyboards/dztech/dz65rgb/keymaps/default/keymap.c @@ -10,8 +10,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_65_ansi( QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, - CTL_T(KC_CAPS), RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, KC_PGDN, + _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, + CTL_T(KC_CAPS), RM_SPDU, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, KC_PGDN, KC_LSFT, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ) diff --git a/keyboards/dztech/tofu/ii/keymaps/default/keymap.c b/keyboards/dztech/tofu/ii/keymaps/default/keymap.c index 2f5a6316e41..f6c93879683 100644 --- a/keyboards/dztech/tofu/ii/keymaps/default/keymap.c +++ b/keyboards/dztech/tofu/ii/keymaps/default/keymap.c @@ -25,8 +25,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT), [1] = LAYOUT( QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, - KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_PGDN, + KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU,RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, + KC_TRNS, RM_SPDU, RM_SPDD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_PGDN, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), }; diff --git a/keyboards/dztech/tofu/jr/keymaps/default/keymap.c b/keyboards/dztech/tofu/jr/keymaps/default/keymap.c index 406c8f7fd5a..cf7b90b55ab 100644 --- a/keyboards/dztech/tofu/jr/keymaps/default/keymap.c +++ b/keyboards/dztech/tofu/jr/keymaps/default/keymap.c @@ -26,8 +26,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_65_ansi( QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, - KC_CAPS, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, KC_PGDN, + _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, + KC_CAPS, RM_SPDU, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, KC_PGDN, KC_LSFT, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ), diff --git a/keyboards/eek/keymaps/ledtest/keymap.c b/keyboards/eek/keymaps/ledtest/keymap.c index 3a6cc6f38cc..232f928be41 100644 --- a/keyboards/eek/keymaps/ledtest/keymap.c +++ b/keyboards/eek/keymaps/ledtest/keymap.c @@ -44,9 +44,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * */ [_QUERTY] = LAYOUT_split_3x5_3( - KC_Q, KC_W, KC_E, KC_R, KC_T, RGBRST, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, - KC_A, KC_S, KC_D, KC_F, KC_G, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, - KC_Z, KC_X, KC_C, KC_V, KC_B, RGB_TOG, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_Q, KC_W, KC_E, KC_R, KC_T, RGBRST, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, + KC_A, KC_S, KC_D, KC_F, KC_G, RM_NEXT, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, + KC_Z, KC_X, KC_C, KC_V, KC_B, RM_TOGG, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LCTL, MO(_LOWER), KC_SPC, KC_BSPC, MO(_RAISE), OSM(MOD_LSFT) ), @@ -65,8 +65,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_ADJUST] = LAYOUT_split_3x5_3( - RGB_VAI, RGB_SAI, RGB_HUI, RGB_MOD, RGB_TOG, _______, KC_F9, KC_F10, KC_F11, KC_F12, - RGB_VAD, RGB_SAD, RGB_HUD, RGB_RMOD, _______, _______, KC_F5, KC_F6, KC_F7, KC_F8, + RM_VALU, RM_SATU, RM_HUEU, RM_NEXT, RM_TOGG, _______, KC_F9, KC_F10, KC_F11, KC_F12, + RM_VALD, RM_SATD, RM_HUED, RM_PREV, _______, _______, KC_F5, KC_F6, KC_F7, KC_F8, _______, _______, _______, _______, _______, QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/eggsworks/egg58/keymaps/default/keymap.c b/keyboards/eggsworks/egg58/keymaps/default/keymap.c index 482a34c1291..aa46b909554 100644 --- a/keyboards/eggsworks/egg58/keymaps/default/keymap.c +++ b/keyboards/eggsworks/egg58/keymaps/default/keymap.c @@ -21,7 +21,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_F12, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_HOME, KC_TRNS, KC_END, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, KC_DEL, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, RGB_MOD, RGB_TOG + KC_TRNS, KC_HOME, KC_TRNS, KC_END, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, RM_HUEU, RM_SATU, RM_VALU, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SPDU, RM_NEXT, RM_TOGG ) }; diff --git a/keyboards/ein_60/keymaps/default/keymap.c b/keyboards/ein_60/keymaps/default/keymap.c index 038e8ce19af..0df24cdcb65 100644 --- a/keyboards/ein_60/keymaps/default/keymap.c +++ b/keyboards/ein_60/keymaps/default/keymap.c @@ -92,8 +92,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------' `------' `-----------------------------------------' */ [_ADJUST] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, RGBRST, RGB_MOD, RGB_VAI, RGB_SAI, RGB_HUI, _______, - _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,RGB_VAD, RGB_SAD, RGB_HUD, RGB_TOG, + _______, _______, _______, _______, _______, _______, _______, RGBRST, RM_NEXT, RM_VALU, RM_SATU, RM_HUEU, _______, + _______, _______, _______, _______, _______, _______, _______, RM_PREV, RM_VALD, RM_SATD, RM_HUED, RM_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT ), diff --git a/keyboards/enviousdesign/delirium/rgb/keymaps/default/keymap.c b/keyboards/enviousdesign/delirium/rgb/keymaps/default/keymap.c index d791874aff0..1152fc70b3d 100644 --- a/keyboards/enviousdesign/delirium/rgb/keymaps/default/keymap.c +++ b/keyboards/enviousdesign/delirium/rgb/keymaps/default/keymap.c @@ -30,11 +30,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_iso( QK_BOOTLOADER, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_MUTE, KC_VOLD, KC_VOLU, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, RGB_SAI, RGB_VAI, - KC_TRNS, KC_TRNS, KC_TRNS, KC_MYCM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD,RGB_SAD, RGB_VAD, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SPD, RGB_HUD + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_NEXT, RM_SATU, RM_VALU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MYCM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_PREV, RM_SATD, RM_VALD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_TOGG, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SPDU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, RM_SPDD, RM_HUED ) }; diff --git a/keyboards/era/linx3/fave65s/keymaps/default/keymap.c b/keyboards/era/linx3/fave65s/keymaps/default/keymap.c index 85eb4fb4ee2..278b466c9ec 100644 --- a/keyboards/era/linx3/fave65s/keymaps/default/keymap.c +++ b/keyboards/era/linx3/fave65s/keymaps/default/keymap.c @@ -15,7 +15,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, RM_TOGG, RM_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; diff --git a/keyboards/era/sirind/brick65/keymaps/default/keymap.c b/keyboards/era/sirind/brick65/keymaps/default/keymap.c index f77a7aabff0..7d55b766325 100644 --- a/keyboards/era/sirind/brick65/keymaps/default/keymap.c +++ b/keyboards/era/sirind/brick65/keymaps/default/keymap.c @@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + KC_TRNS, RM_TOGG, RM_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; diff --git a/keyboards/era/sirind/tomak/keymaps/default/keymap.c b/keyboards/era/sirind/tomak/keymaps/default/keymap.c index 62941ff8b7a..bf070bd9fac 100644 --- a/keyboards/era/sirind/tomak/keymaps/default/keymap.c +++ b/keyboards/era/sirind/tomak/keymaps/default/keymap.c @@ -18,8 +18,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_MOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_TOGG, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_NEXT, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; \ No newline at end of file diff --git a/keyboards/era/sirind/tomak/keymaps/default_ansi/keymap.c b/keyboards/era/sirind/tomak/keymaps/default_ansi/keymap.c index 3823cc69c36..7a1edcb15fb 100644 --- a/keyboards/era/sirind/tomak/keymaps/default_ansi/keymap.c +++ b/keyboards/era/sirind/tomak/keymaps/default_ansi/keymap.c @@ -18,8 +18,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_MOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_TOGG, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_NEXT, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; \ No newline at end of file diff --git a/keyboards/era/sirind/tomak/keymaps/default_ansi_split_bs/keymap.c b/keyboards/era/sirind/tomak/keymaps/default_ansi_split_bs/keymap.c index 87f3072a9e1..20d99d5fa71 100644 --- a/keyboards/era/sirind/tomak/keymaps/default_ansi_split_bs/keymap.c +++ b/keyboards/era/sirind/tomak/keymaps/default_ansi_split_bs/keymap.c @@ -18,8 +18,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_MOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_TOGG, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_NEXT, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; \ No newline at end of file diff --git a/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift/keymap.c b/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift/keymap.c index 6b8fb56e339..e5d064cb471 100644 --- a/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift/keymap.c +++ b/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift/keymap.c @@ -18,8 +18,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_MOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_TOGG, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_NEXT, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; \ No newline at end of file diff --git a/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift_bs/keymap.c b/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift_bs/keymap.c index 380689dd46b..c85224d2344 100644 --- a/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift_bs/keymap.c +++ b/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift_bs/keymap.c @@ -18,8 +18,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_MOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_TOGG, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_NEXT, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; \ No newline at end of file diff --git a/keyboards/evyd13/atom47/keymaps/default/keymap.c b/keyboards/evyd13/atom47/keymaps/default/keymap.c index bba4b999298..f00d689813e 100644 --- a/keyboards/evyd13/atom47/keymaps/default/keymap.c +++ b/keyboards/evyd13/atom47/keymaps/default/keymap.c @@ -48,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_PN] = LAYOUT_split_space( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, - RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, + RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, _______, _______, _______, _______, _______, _______, _______, _______, + RM_NEXT, RM_HUED, RM_SATD, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT), }; diff --git a/keyboards/fancytech/fancyalice66/keymaps/default/keymap.c b/keyboards/fancytech/fancyalice66/keymaps/default/keymap.c index 0fed76c1b31..7ce470a71c3 100644 --- a/keyboards/fancytech/fancyalice66/keymaps/default/keymap.c +++ b/keyboards/fancytech/fancyalice66/keymaps/default/keymap.c @@ -41,9 +41,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QK_BOOT, KC_PSCR, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, RGB_SAD, RGB_TOG, RGB_HUI, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, - _______, _______, _______, _______, _______, RGB_MOD, _______, RGB_VAD, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SATU, RM_SATD, RM_TOGG, RM_HUEU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUED, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, + _______, _______, _______, _______, _______, RM_NEXT, _______, RM_VALD, _______ ) }; \ No newline at end of file diff --git a/keyboards/ferris/keymaps/default/keymap.json b/keyboards/ferris/keymaps/default/keymap.json index cc156df2466..3f927ae5b19 100644 --- a/keyboards/ferris/keymaps/default/keymap.json +++ b/keyboards/ferris/keymaps/default/keymap.json @@ -50,8 +50,8 @@ "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", "KC_TRNS" , "KC_MINS" , "KC_BSLS" , "KC_GRV" , "KC_TRNS", - "RGB_RMOD" , "KC_TRNS", - "KC_TRNS" , "RGB_MOD" + "RM_PREV" , "KC_TRNS", + "KC_TRNS" , "RM_NEXT" ], ["KC_TRNS" , "KC_COLN" , "KC_LT" , "KC_GT" , "KC_SCLN", "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", diff --git a/keyboards/flashquark/horizon_z/keymaps/default/keymap.c b/keyboards/flashquark/horizon_z/keymaps/default/keymap.c index 5b8838c3b2a..eb2dbdc22db 100755 --- a/keyboards/flashquark/horizon_z/keymaps/default/keymap.c +++ b/keyboards/flashquark/horizon_z/keymaps/default/keymap.c @@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL), [_LAYER1] = LAYOUT_60_ansi( /* FN */ QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL , - KC_TRNS, RGB_TOG, KC_UP, RGB_MOD, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT , + KC_TRNS, RM_TOGG, KC_UP, RM_NEXT, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT , KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, KC_MPRV, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), diff --git a/keyboards/frooastboard/walnut/keymaps/default/keymap.c b/keyboards/frooastboard/walnut/keymaps/default/keymap.c index 57058d5de72..bb0e7023897 100644 --- a/keyboards/frooastboard/walnut/keymaps/default/keymap.c +++ b/keyboards/frooastboard/walnut/keymaps/default/keymap.c @@ -13,8 +13,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_all( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, EE_CLR, KC_PSCR, KC_SCRL, KC_PAUS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SAI, RGB_HUI, RGB_SPI, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, - KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD,RGB_VAD, RGB_MOD) + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SATU, RM_HUEU, RM_SPDU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_TOGG, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_VALU, + KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_PREV, RM_VALD, RM_NEXT) }; diff --git a/keyboards/frooastboard/walnut/keymaps/default_ansi/keymap.c b/keyboards/frooastboard/walnut/keymaps/default_ansi/keymap.c index b9abd07d7d3..d785c66438f 100644 --- a/keyboards/frooastboard/walnut/keymaps/default_ansi/keymap.c +++ b/keyboards/frooastboard/walnut/keymaps/default_ansi/keymap.c @@ -13,8 +13,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_nofrow_ansi( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, EE_CLR, KC_PSCR, KC_SCRL, KC_PAUS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SAI, RGB_HUI, RGB_SPI, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, - KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD,RGB_VAD, RGB_MOD) + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SATU, RM_HUEU, RM_SPDU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_TOGG, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_VALU, + KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_PREV, RM_VALD, RM_NEXT) }; diff --git a/keyboards/frooastboard/walnut/keymaps/default_iso/keymap.c b/keyboards/frooastboard/walnut/keymaps/default_iso/keymap.c index e6dd393f15c..e8380f5e2ae 100644 --- a/keyboards/frooastboard/walnut/keymaps/default_iso/keymap.c +++ b/keyboards/frooastboard/walnut/keymaps/default_iso/keymap.c @@ -13,8 +13,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_nofrow_iso( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, EE_CLR, KC_PSCR, KC_SCRL, KC_PAUS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SAI, RGB_HUI, RGB_SPI, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, - KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD,RGB_VAD, RGB_MOD) + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SATU, RM_HUEU, RM_SPDU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_TOGG, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_VALU, + KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_PREV, RM_VALD, RM_NEXT) }; diff --git a/keyboards/fs_streampad/keymaps/default/keymap.c b/keyboards/fs_streampad/keymaps/default/keymap.c index 15997a0839e..bcbeaa0686b 100644 --- a/keyboards/fs_streampad/keymaps/default/keymap.c +++ b/keyboards/fs_streampad/keymaps/default/keymap.c @@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT( - RGB_TOG, RGB_MOD, RGB_RMOD, + RM_TOGG, RM_NEXT, RM_PREV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) diff --git a/keyboards/geekboards/tester/keymaps/default/keymap.c b/keyboards/geekboards/tester/keymaps/default/keymap.c index acf63cb36af..8412a3c550b 100644 --- a/keyboards/geekboards/tester/keymaps/default/keymap.c +++ b/keyboards/geekboards/tester/keymaps/default/keymap.c @@ -1,7 +1,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( /* Base */ - RGB_MOD, KC_1, KC_2, KC_3, + RM_NEXT, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, MO(1) ), [1] = LAYOUT( /* Base */ diff --git a/keyboards/gh60/satan/keymaps/isoHHKB/keymap.c b/keyboards/gh60/satan/keymaps/isoHHKB/keymap.c index b0ec4a72cd4..524b1b1b3f8 100644 --- a/keyboards/gh60/satan/keymaps/isoHHKB/keymap.c +++ b/keyboards/gh60/satan/keymaps/isoHHKB/keymap.c @@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FL] = LAYOUT_60_iso_split_rshift( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_PSCR, QK_BOOT, _______, _______, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_CAPS, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______, RGB_TOG, RGB_MOD, RGB_M_B, RGB_VAI, RGB_VAD, BL_UP, BL_DOWN, _______, + KC_CAPS, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______, UG_TOGG, UG_NEXT, RGB_M_B, UG_VALU, UG_VALD, BL_UP, BL_DOWN, _______, _______, _______, _______, _______, KC_CEDL, _______, BL_TOGG, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______ ) diff --git a/keyboards/gizmo_engineering/gk6/keymaps/12x5/keymap.c b/keyboards/gizmo_engineering/gk6/keymaps/12x5/keymap.c index 374152b9454..5c9208aacfd 100755 --- a/keyboards/gizmo_engineering/gk6/keymaps/12x5/keymap.c +++ b/keyboards/gizmo_engineering/gk6/keymaps/12x5/keymap.c @@ -65,7 +65,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, KC_PIPE, KC_BSLS, + _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, _______, _______, _______, KC_PIPE, KC_BSLS, DB_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/gizmo_engineering/gk6/keymaps/1x2u/keymap.c b/keyboards/gizmo_engineering/gk6/keymaps/1x2u/keymap.c index b303032171a..eac04067517 100755 --- a/keyboards/gizmo_engineering/gk6/keymaps/1x2u/keymap.c +++ b/keyboards/gizmo_engineering/gk6/keymaps/1x2u/keymap.c @@ -65,7 +65,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, KC_PIPE, KC_BSLS, + _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, _______, _______, _______, KC_PIPE, KC_BSLS, DB_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/gizmo_engineering/gk6/keymaps/default/keymap.c b/keyboards/gizmo_engineering/gk6/keymaps/default/keymap.c index b0e1615479c..041353b5a89 100755 --- a/keyboards/gizmo_engineering/gk6/keymaps/default/keymap.c +++ b/keyboards/gizmo_engineering/gk6/keymaps/default/keymap.c @@ -65,7 +65,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, KC_PIPE, KC_BSLS, + _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, _______, _______, _______, KC_PIPE, KC_BSLS, DB_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, KC_RALT ), diff --git a/keyboards/gkeyboard/gpad8_2r/keymaps/default/keymap.c b/keyboards/gkeyboard/gpad8_2r/keymaps/default/keymap.c index 536a1ee7d82..7ad050edb9c 100644 --- a/keyboards/gkeyboard/gpad8_2r/keymaps/default/keymap.c +++ b/keyboards/gkeyboard/gpad8_2r/keymaps/default/keymap.c @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( - KC_MUTE, RGB_TOG, + KC_MUTE, RM_TOGG, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H ), @@ -41,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(RGB_MOD, RGB_RMOD) }, + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(RM_NEXT, RM_PREV) }, [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } diff --git a/keyboards/gkeyboard/greatpad/keymaps/default/keymap.c b/keyboards/gkeyboard/greatpad/keymaps/default/keymap.c index 1fd0edc5ca3..47cf419dd14 100644 --- a/keyboards/gkeyboard/greatpad/keymaps/default/keymap.c +++ b/keyboards/gkeyboard/greatpad/keymaps/default/keymap.c @@ -6,7 +6,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( - KC_MUTE, RGB_TOG, + KC_MUTE, RM_TOGG, KC_P7, KC_P8, KC_P9, KC_PSLS, KC_NUM, KC_P4, KC_P5, KC_P6, KC_PAST, KC_PGUP, KC_P1, KC_P2, KC_P3, KC_PMNS, KC_PGDN, @@ -16,6 +16,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) }, + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(RM_PREV, RM_NEXT) }, }; #endif diff --git a/keyboards/gmmk/gmmk2/p65/ansi/keymaps/default/keymap.c b/keyboards/gmmk/gmmk2/p65/ansi/keymaps/default/keymap.c index 42affd3de62..2de830820a0 100644 --- a/keyboards/gmmk/gmmk2/p65/ansi/keymaps/default/keymap.c +++ b/keyboards/gmmk/gmmk2/p65/ansi/keymaps/default/keymap.c @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_INS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_HUI, RGB_HUD, RGB_SPD, RGB_SPI, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, _______, RGB_VAI, KC_HOME, - _______, _______, _______, QK_BOOT, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD + _______, RM_HUEU, RM_HUED, RM_SPDD, RM_SPDU, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, _______, RM_VALU, KC_HOME, + _______, _______, _______, QK_BOOT, _______, _______, RM_PREV, RM_VALD, RM_NEXT ) }; diff --git a/keyboards/gmmk/gmmk2/p65/iso/keymaps/default/keymap.c b/keyboards/gmmk/gmmk2/p65/iso/keymaps/default/keymap.c index 6a3da299a24..d0f1d08fd11 100644 --- a/keyboards/gmmk/gmmk2/p65/iso/keymaps/default/keymap.c +++ b/keyboards/gmmk/gmmk2/p65/iso/keymaps/default/keymap.c @@ -39,6 +39,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_INS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RGB_HUI, RGB_HUD, RGB_SPD, RGB_SPI, KC_MUTE, KC_VOLU, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, _______, RGB_VAI, KC_HOME, - _______, _______, _______, QK_BOOT, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD) + _______, _______, RM_HUEU, RM_HUED, RM_SPDD, RM_SPDU, KC_MUTE, KC_VOLU, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, _______, RM_VALU, KC_HOME, + _______, _______, _______, QK_BOOT, _______, _______, RM_PREV, RM_VALD, RM_NEXT) }; diff --git a/keyboards/gmmk/gmmk2/p96/ansi/keymaps/default/keymap.c b/keyboards/gmmk/gmmk2/p96/ansi/keymaps/default/keymap.c index 2fc12c4f038..36a9324844e 100644 --- a/keyboards/gmmk/gmmk2/p96/ansi/keymaps/default/keymap.c +++ b/keyboards/gmmk/gmmk2/p96/ansi/keymaps/default/keymap.c @@ -41,6 +41,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_HUI, RGB_HUD, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, - _______, UC_WIN, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD, _______, _______) + _______, RM_HUEU, RM_HUED, RM_SPDD, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, _______, _______, _______, + _______, UC_WIN, _______, _______, _______, _______, _______, RM_PREV, RM_VALD, RM_NEXT, _______, _______) }; diff --git a/keyboards/gmmk/gmmk2/p96/iso/keymaps/default/keymap.c b/keyboards/gmmk/gmmk2/p96/iso/keymaps/default/keymap.c index 0f56355d09b..80684a2d0b9 100644 --- a/keyboards/gmmk/gmmk2/p96/iso/keymaps/default/keymap.c +++ b/keyboards/gmmk/gmmk2/p96/iso/keymaps/default/keymap.c @@ -39,6 +39,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RGB_SAI, RGB_SAD, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, - _______, UC_WIN, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD, _______, _______) + _______, _______, RM_SATU, RM_SATD, RM_SPDD, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, _______, _______, _______, + _______, UC_WIN, _______, _______, _______, _______, _______, RM_PREV, RM_VALD, RM_NEXT, _______, _______) }; diff --git a/keyboards/gmmk/numpad/keymaps/default/keymap.c b/keyboards/gmmk/numpad/keymaps/default/keymap.c index aa1829cdd41..b7f9ff46b37 100644 --- a/keyboards/gmmk/numpad/keymaps/default/keymap.c +++ b/keyboards/gmmk/numpad/keymaps/default/keymap.c @@ -37,10 +37,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT( _______, KC_PSLS, KC_PAST, KC_PMNS, - KC_P7, RGB_VAI, KC_P9, KC_PPLS, - RGB_RMOD, KC_P5, RGB_MOD, KC_CALC, - KC_P1, RGB_VAD, KC_P3, KC_PENT, - RGB_TOG, QK_BOOT + KC_P7, RM_VALU, KC_P9, KC_PPLS, + RM_PREV, KC_P5, RM_NEXT, KC_CALC, + KC_P1, RM_VALD, KC_P3, KC_PENT, + RM_TOGG, QK_BOOT ) }; diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/default/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/default/keymap.c index 95f82d9a3d9..5d9aab5465f 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/default/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/default/keymap.c @@ -49,11 +49,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( _______, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, - _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, - _______, _______, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RGB_HUI, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RGB_MOD, _______, - _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI + _______, RM_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RM_VALU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, + _______, _______, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RM_HUEU, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RM_NEXT, _______, + _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_PREV, RM_SPDU ), diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/default/keymap.c b/keyboards/gmmk/pro/rev1/iso/keymaps/default/keymap.c index 49752bf6a0b..272c18a0dfd 100644 --- a/keyboards/gmmk/pro/rev1/iso/keymaps/default/keymap.c +++ b/keyboards/gmmk/pro/rev1/iso/keymaps/default/keymap.c @@ -49,11 +49,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( _______, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, - _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, - _______, _______, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, RGB_HUI, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RGB_MOD, _______, - _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI + _______, RM_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, + _______, _______, RM_VALU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, RM_HUEU, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RM_NEXT, _______, + _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_PREV, RM_SPDU ), diff --git a/keyboards/gmmk/pro/rev2/ansi/keymaps/default/keymap.c b/keyboards/gmmk/pro/rev2/ansi/keymaps/default/keymap.c index cbea58716e6..2863121e7fa 100644 --- a/keyboards/gmmk/pro/rev2/ansi/keymaps/default/keymap.c +++ b/keyboards/gmmk/pro/rev2/ansi/keymaps/default/keymap.c @@ -49,11 +49,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( _______, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, - _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, - _______, _______, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RGB_HUI, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RGB_MOD, _______, - _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI + _______, RM_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RM_VALU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, + _______, _______, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RM_HUEU, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RM_NEXT, _______, + _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_PREV, RM_SPDU ), @@ -63,6 +63,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } + [1] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) } }; #endif \ No newline at end of file diff --git a/keyboards/gmmk/pro/rev2/iso/keymaps/default/keymap.c b/keyboards/gmmk/pro/rev2/iso/keymaps/default/keymap.c index e22e616505c..fc2abb8b179 100644 --- a/keyboards/gmmk/pro/rev2/iso/keymaps/default/keymap.c +++ b/keyboards/gmmk/pro/rev2/iso/keymaps/default/keymap.c @@ -49,11 +49,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( _______, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, - _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, - _______, _______, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, RGB_HUI, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RGB_MOD, _______, - _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI + _______, RM_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, + _______, _______, RM_VALU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, RM_HUEU, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RM_NEXT, _______, + _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_PREV, RM_SPDU ), diff --git a/keyboards/handwired/co60/keymaps/jmdaly_hhkb_split_space/keymap.c b/keyboards/handwired/co60/keymaps/jmdaly_hhkb_split_space/keymap.c index 1d49d91346a..592a6c6b973 100644 --- a/keyboards/handwired/co60/keymaps/jmdaly_hhkb_split_space/keymap.c +++ b/keyboards/handwired/co60/keymaps/jmdaly_hhkb_split_space/keymap.c @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_L3] = LAYOUT_60_hhkb_split_625u_space( /* Function */ QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, BL_BRTG, BL_TOGG, BL_UP, BL_DOWN,BL_ON, BL_OFF, _______, _______, _______, _______, _______, KC_PGUP, KC_INSERT, KC_DEL, - _______, RGB_TOG, RGB_MOD, RGB_RMOD, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_HOME, KC_END, _______, + _______, UG_TOGG, UG_NEXT, UG_PREV, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_HOME, KC_END, _______, _______, BL_DOWN, _______, _______, _______, _______, _______, DF(_L1), DF(_L2), _______, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/handwired/colorlice/keymaps/default/keymap.c b/keyboards/handwired/colorlice/keymaps/default/keymap.c index 1b17cce81ab..e1c827c7462 100644 --- a/keyboards/handwired/colorlice/keymaps/default/keymap.c +++ b/keyboards/handwired/colorlice/keymaps/default/keymap.c @@ -18,15 +18,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_alice_split_bs( - RGB_TOG, QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSLS, - RGB_MOD, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, + RM_TOGG, QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSLS, + RM_NEXT, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_PGDN, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_LGUI, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL), [1] = LAYOUT_alice_split_bs( _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, - _______, _______, _______, KC_UP, _______, _______, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD , _______, _______, + _______, _______, _______, KC_UP, _______, _______, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD , _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/handwired/dygma/raise/keymaps/ansi/keymap.c b/keyboards/handwired/dygma/raise/keymaps/ansi/keymap.c index 427b9ddb14b..d3bb0f3c1a0 100644 --- a/keyboards/handwired/dygma/raise/keymaps/ansi/keymap.c +++ b/keyboards/handwired/dygma/raise/keymaps/ansi/keymap.c @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, RGB_MOD, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, + KC_LCTL, RM_NEXT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_BSPC, KC_ENT, KC_NO, KC_DEL ) }; diff --git a/keyboards/handwired/dygma/raise/keymaps/default/keymap.c b/keyboards/handwired/dygma/raise/keymaps/default/keymap.c index c766fb72037..9c704165398 100644 --- a/keyboards/handwired/dygma/raise/keymaps/default/keymap.c +++ b/keyboards/handwired/dygma/raise/keymaps/default/keymap.c @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, RGB_MOD, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, + KC_LCTL, RM_NEXT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_BSPC, KC_ENT, KC_NO, KC_DEL ) }; diff --git a/keyboards/handwired/dygma/raise/keymaps/iso/keymap.c b/keyboards/handwired/dygma/raise/keymaps/iso/keymap.c index 2fd0b49b0bd..fe9651d0317 100644 --- a/keyboards/handwired/dygma/raise/keymaps/iso/keymap.c +++ b/keyboards/handwired/dygma/raise/keymaps/iso/keymap.c @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, RGB_MOD, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, + KC_LCTL, RM_NEXT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_BSPC, KC_ENT, KC_NO, KC_DEL ) }; diff --git a/keyboards/handwired/hnah108/keymaps/default/keymap.c b/keyboards/handwired/hnah108/keymaps/default/keymap.c index d2f86a7de9c..530bd3d0b13 100644 --- a/keyboards/handwired/hnah108/keymaps/default/keymap.c +++ b/keyboards/handwired/hnah108/keymaps/default/keymap.c @@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_FN] = LAYOUT_all( - QK_BOOT, BL_STEP, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, BL_STEP, RM_TOGG, RM_NEXT, RM_PREV, RM_HUEU, RM_HUED, RM_VALU, RM_VALD, RM_SPDU, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/handwired/hnah40rgb/keymaps/ansi/keymap.c b/keyboards/handwired/hnah40rgb/keymaps/ansi/keymap.c index 9732c74cfc4..4a21a7bfd67 100644 --- a/keyboards/handwired/hnah40rgb/keymaps/ansi/keymap.c +++ b/keyboards/handwired/hnah40rgb/keymaps/ansi/keymap.c @@ -44,8 +44,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), [_L2] = LAYOUT_ansi(/* Base */ - RGB_TOG, RGB_RMOD, KC_UP, RGB_MOD, RGB_HUI, RGB_VAI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, RGB_HUD, RGB_VAD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, + RM_TOGG, RM_PREV, KC_UP, RM_NEXT, RM_HUEU, RM_VALU, RM_SATU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, RM_HUED, RM_VALD, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TAB, KC_TRNS, KC_TRNS ), }; diff --git a/keyboards/handwired/hnah40rgb/keymaps/default/keymap.c b/keyboards/handwired/hnah40rgb/keymaps/default/keymap.c index 7af40caae72..6f98a272e6c 100644 --- a/keyboards/handwired/hnah40rgb/keymaps/default/keymap.c +++ b/keyboards/handwired/hnah40rgb/keymaps/default/keymap.c @@ -44,8 +44,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_SLSH, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), [_L2] = LAYOUT_all(/* Base */ - RGB_TOG, RGB_RMOD, KC_UP, RGB_MOD, RGB_HUI, RGB_VAI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, RGB_HUD, RGB_VAD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_BSLS, + RM_TOGG, RM_PREV, KC_UP, RM_NEXT, RM_HUEU, RM_VALU, RM_SATU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, RM_HUED, RM_VALD, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_BSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), }; diff --git a/keyboards/handwired/p65rgb/keymaps/default/keymap.c b/keyboards/handwired/p65rgb/keymaps/default/keymap.c index 235a9191301..b9d32333799 100644 --- a/keyboards/handwired/p65rgb/keymaps/default/keymap.c +++ b/keyboards/handwired/p65rgb/keymaps/default/keymap.c @@ -25,8 +25,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_APP, KC_LEFT, KC_DOWN, KC_RIGHT), [1] = LAYOUT( /* FN */ QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_INS, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_HOME, - CTL_T(KC_CAPS),RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_END, + KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU,RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_HOME, + CTL_T(KC_CAPS),RM_SPDU, RM_SPDD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_END, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), diff --git a/keyboards/helix/rev2/keymaps/led_test/keymap.c b/keyboards/helix/rev2/keymaps/led_test/keymap.c index 0074153ccf1..a48a855e022 100644 --- a/keyboards/helix/rev2/keymaps/led_test/keymap.c +++ b/keyboards/helix/rev2/keymaps/led_test/keymap.c @@ -173,8 +173,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, QK_BOOT, RGBRST, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, UG_NEXT, UG_HUED, UG_SATD, UG_VALD ) }; @@ -287,7 +287,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return false; break; //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released - case RGB_MOD: + case QK_UNDERGLOW_MODE_NEXT: #ifdef RGBLIGHT_ENABLE if (record->event.pressed) { rgblight_mode(RGB_current_mode); diff --git a/keyboards/hfdkb/ac001/keymaps/default/keymap.c b/keyboards/hfdkb/ac001/keymaps/default/keymap.c index 56c767503ed..6682e9d4d93 100644 --- a/keyboards/hfdkb/ac001/keymaps/default/keymap.c +++ b/keyboards/hfdkb/ac001/keymaps/default/keymap.c @@ -18,6 +18,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( /* Base */ - RGB_MOD, KC_LCTL, KC_ENT,KC_NO,KC_NO), + RM_NEXT, KC_LCTL, KC_ENT,KC_NO,KC_NO), }; diff --git a/keyboards/horrortroll/handwired_k552/keymaps/default/led/custom_gradient.c b/keyboards/horrortroll/handwired_k552/keymaps/default/led/custom_gradient.c index 346d079a0df..f7e79f4c67e 100644 --- a/keyboards/horrortroll/handwired_k552/keymaps/default/led/custom_gradient.c +++ b/keyboards/horrortroll/handwired_k552/keymaps/default/led/custom_gradient.c @@ -33,7 +33,7 @@ static hsv_t INTERPOLATE_HSV(float step, hsv_t gradient_0, hsv_t gradient_100) { color.s = gradient_0.s + step * (gradient_100.s - gradient_0.s); - // Scale V with global RGB Matrix's V, so users can still control overall brightness with RGB_VAI & RGB_VAD0 + // Scale V with global RGB Matrix's V, so users can still control overall brightness with RM_VALU & RM_VALD color.v = round((gradient_0.v + step * (gradient_100.v - gradient_0.v)) * ((float)rgb_matrix_config.hsv.v / 255)); return color; diff --git a/keyboards/hs60/v1/ansi/keymaps/default/keymap.c b/keyboards/hs60/v1/ansi/keymaps/default/keymap.c index 3d52fe4d521..2e2dd2d2a58 100644 --- a/keyboards/hs60/v1/ansi/keymaps/default/keymap.c +++ b/keyboards/hs60/v1/ansi/keymaps/default/keymap.c @@ -27,8 +27,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_60_ansi( /* FN */ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL , - KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT , KC_TRNS, + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, KC_TRNS, + KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_SPDU, RM_SPDD, KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), }; diff --git a/keyboards/hs60/v1/iso/keymaps/default/keymap.c b/keyboards/hs60/v1/iso/keymaps/default/keymap.c index 5059aabe209..f4e76108b20 100644 --- a/keyboards/hs60/v1/iso/keymaps/default/keymap.c +++ b/keyboards/hs60/v1/iso/keymaps/default/keymap.c @@ -27,8 +27,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_60_iso( /* FN */ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL , - KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT , + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, KC_TRNS, KC_TRNS, + KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_SPDU, RM_SPDD, KC_TRNS, KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), }; diff --git a/keyboards/idobao/id42/keymaps/default/keymap.c b/keyboards/idobao/id42/keymaps/default/keymap.c index ffcef7a7ed9..a3ef12a91d4 100644 --- a/keyboards/idobao/id42/keymaps/default/keymap.c +++ b/keyboards/idobao/id42/keymaps/default/keymap.c @@ -76,8 +76,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [3] = LAYOUT( _______, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, - _______, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX, XXXXXXX, _______, - _______, RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, NK_TOGG, XXXXXXX, XXXXXXX, RGB_VAI, XXXXXXX, - _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI + _______, RM_TOGG, RM_NEXT, RM_HUED, RM_HUEU, RM_SATD, RM_SATU, XXXXXXX, XXXXXXX, XXXXXXX, _______, + _______, RM_PREV, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, NK_TOGG, XXXXXXX, XXXXXXX, RM_VALU, XXXXXXX, + _______, _______, _______, _______, _______, RM_SPDD, RM_VALD, RM_SPDU ), }; diff --git a/keyboards/idobao/id61/keymaps/default/keymap.c b/keyboards/idobao/id61/keymaps/default/keymap.c index 0476f18024a..f689f8ce767 100644 --- a/keyboards/idobao/id61/keymaps/default/keymap.c +++ b/keyboards/idobao/id61/keymaps/default/keymap.c @@ -40,8 +40,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [1] = LAYOUT_60_ansi( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, - _______, _______, KC_UP, _______, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_PSCR, KC_HOME, KC_END, _______, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_PGUP, KC_PGDN, _______, + _______, _______, KC_UP, _______, _______, RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, KC_PSCR, KC_HOME, KC_END, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, RM_NEXT, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, KC_PGUP, KC_PGDN, _______, _______, _______, _______, _______, _______, QK_BOOT, NK_TOGG, _______, _______, KC_INS, KC_DEL, KC_UP, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT ) diff --git a/keyboards/idobao/id63/keymaps/default/keymap.c b/keyboards/idobao/id63/keymaps/default/keymap.c index c6ad7e5abf8..155209eb730 100644 --- a/keyboards/idobao/id63/keymaps/default/keymap.c +++ b/keyboards/idobao/id63/keymaps/default/keymap.c @@ -40,8 +40,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [1] = LAYOUT_60_ansi_arrow( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - _______, RGB_TOG, KC_UP, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_PSCR, KC_SCRL, KC_PAUS, KC_INS, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______, + _______, RM_TOGG, KC_UP, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_PSCR, KC_SCRL, KC_PAUS, KC_INS, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, RM_SPDU, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, NK_TOGG, _______, _______, _______, _______, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END ) diff --git a/keyboards/idobao/id67/keymaps/default/keymap.c b/keyboards/idobao/id67/keymaps/default/keymap.c index 55e6fd88cde..39d86abd7f0 100644 --- a/keyboards/idobao/id67/keymaps/default/keymap.c +++ b/keyboards/idobao/id67/keymaps/default/keymap.c @@ -40,9 +40,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [1] = LAYOUT_65_ansi_blocker( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - _______, RGB_TOG, KC_UP, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, + _______, RM_TOGG, KC_UP, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, _______, _______, - _______, QK_BOOT, RGB_SPI, RGB_SPD, _______, KC_VOLD, KC_MUTE, KC_VOLU, KC_DEL, KC_END, KC_PGDN, _______, _______, _______, + _______, QK_BOOT, RM_SPDU, RM_SPDD, _______, KC_VOLD, KC_MUTE, KC_VOLU, KC_DEL, KC_END, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/idobao/id75/keymaps/default75/keymap.c b/keyboards/idobao/id75/keymaps/default75/keymap.c index 69865b0c0a0..4ef4500c421 100644 --- a/keyboards/idobao/id75/keymaps/default75/keymap.c +++ b/keyboards/idobao/id75/keymaps/default75/keymap.c @@ -59,9 +59,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_NUM, KC_SLSH, KC_ASTR, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - KC_MSEL, KC_CALC, KC_MYCM, KC_MAIL, RGB_HUD, RGB_HUI, KC_P7, KC_P8, KC_P9, KC_MINS, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, - KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, RGB_SAD, RGB_SAI, KC_P4, KC_P5, KC_P6, KC_PLUS, _______, QK_BOOT, _______, _______, _______, - KC_VOLD, KC_MUTE, KC_VOLU, KC_APP, RGB_VAD, RGB_VAI, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, _______, _______, _______, - _______, _______, RGB_TOG, MO(_FN), RGB_RMOD,RGB_MOD, KC_P0, _______, KC_PDOT, KC_PENT, KC_PENT, MO(_FN), _______, _______, _______ + KC_MSEL, KC_CALC, KC_MYCM, KC_MAIL, RM_HUED, RM_HUEU, KC_P7, KC_P8, KC_P9, KC_MINS, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, + KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, RM_SATD, RM_SATU, KC_P4, KC_P5, KC_P6, KC_PLUS, _______, QK_BOOT, _______, _______, _______, + KC_VOLD, KC_MUTE, KC_VOLU, KC_APP, RM_VALD, RM_VALU, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, _______, _______, _______, + _______, _______, RM_TOGG, MO(_FN), RM_PREV, RM_NEXT, KC_P0, _______, KC_PDOT, KC_PENT, KC_PENT, MO(_FN), _______, _______, _______ ), }; diff --git a/keyboards/idobao/id80/v3/ansi/keymaps/default/keymap.c b/keyboards/idobao/id80/v3/ansi/keymaps/default/keymap.c index 92248393de1..b2aa8515e52 100644 --- a/keyboards/idobao/id80/v3/ansi/keymaps/default/keymap.c +++ b/keyboards/idobao/id80/v3/ansi/keymaps/default/keymap.c @@ -48,9 +48,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_80_ansi( QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, - _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, _______, _______, KC_VOLD, + _______, RM_TOGG, _______, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_SPDU, RM_SPDD, _______, _______, KC_VOLD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, RGB_RMOD, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_PGUP, + _______, _______, _______, RM_PREV, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END ) }; diff --git a/keyboards/idobao/id87/v2/keymaps/default/keymap.c b/keyboards/idobao/id87/v2/keymaps/default/keymap.c index 3910ac76bc7..8e3df79ee47 100644 --- a/keyboards/idobao/id87/v2/keymaps/default/keymap.c +++ b/keyboards/idobao/id87/v2/keymaps/default/keymap.c @@ -49,10 +49,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [1] = LAYOUT_tkl_ansi( QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, _______, - _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI, - _______, _______, RGB_RMOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RGB_VAI, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUEU, _______, + _______, RM_TOGG, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SATD, RM_HUED, RM_SATU, + _______, _______, RM_PREV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RM_VALU, + _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_VALD, RM_SPDU ) }; diff --git a/keyboards/idobao/montex/v1rgb/keymaps/default/keymap.c b/keyboards/idobao/montex/v1rgb/keymaps/default/keymap.c index c5c1bf7e180..bd6a7a3bb78 100755 --- a/keyboards/idobao/montex/v1rgb/keymaps/default/keymap.c +++ b/keyboards/idobao/montex/v1rgb/keymaps/default/keymap.c @@ -44,11 +44,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * └───┴───────┴───┴───┘ */ [1] = LAYOUT_numpad_6x5( - QK_BOOT, RGB_TOG, RGB_MOD, KC_PSCR, KC_SCRL, - RGB_HUI, XXXXXXX, RGB_SPD, RGB_SPI, RGB_VAD, - RGB_HUD, KC_HOME, KC_UP, KC_PGUP, RGB_VAI, - RGB_SAI, KC_LEFT, XXXXXXX, KC_RGHT, - RGB_SAD, KC_END, KC_DOWN, KC_PGDN, KC_ENT, + QK_BOOT, RM_TOGG, RM_NEXT, KC_PSCR, KC_SCRL, + RM_HUEU, XXXXXXX, RM_SPDD, RM_SPDU, RM_VALD, + RM_HUED, KC_HOME, KC_UP, KC_PGUP, RM_VALU, + RM_SATU, KC_LEFT, XXXXXXX, KC_RGHT, + RM_SATD, KC_END, KC_DOWN, KC_PGDN, KC_ENT, _______, KC_INS, KC_DEL ) }; diff --git a/keyboards/idobao/montex/v2/keymaps/default/keymap.c b/keyboards/idobao/montex/v2/keymaps/default/keymap.c index db37bc72c7e..cd017317f57 100755 --- a/keyboards/idobao/montex/v2/keymaps/default/keymap.c +++ b/keyboards/idobao/montex/v2/keymaps/default/keymap.c @@ -44,11 +44,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * └───┴───────┴───┘───┘ */ [1] = LAYOUT_numpad_6x5( - QK_BOOT, RGB_TOG, RGB_MOD, KC_PSCR, KC_SCRL, - RGB_HUI, XXXXXXX, RGB_SPD, RGB_SPI, RGB_VAD, - RGB_HUD, KC_HOME, KC_UP, KC_PGUP, RGB_VAI, - RGB_SAI, KC_LEFT, XXXXXXX, KC_RGHT, - RGB_SAD, KC_END, KC_DOWN, KC_PGDN, KC_ENT, + QK_BOOT, RM_TOGG, RM_NEXT, KC_PSCR, KC_SCRL, + RM_HUEU, XXXXXXX, RM_SPDD, RM_SPDU, RM_VALD, + RM_HUED, KC_HOME, KC_UP, KC_PGUP, RM_VALU, + RM_SATU, KC_LEFT, XXXXXXX, KC_RGHT, + RM_SATD, KC_END, KC_DOWN, KC_PGDN, KC_ENT, _______, KC_INS, KC_DEL ) }; diff --git a/keyboards/ilumkb/simpler61/keymaps/default/keymap.c b/keyboards/ilumkb/simpler61/keymaps/default/keymap.c index bd9e605edaf..d6c6a7f1839 100644 --- a/keyboards/ilumkb/simpler61/keymaps/default/keymap.c +++ b/keyboards/ilumkb/simpler61/keymaps/default/keymap.c @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_61_ansi( QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - _______, _______, KC_UP, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, QK_BOOT, + _______, _______, KC_UP, _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, QK_BOOT, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, EE_CLR, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, KC_END, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/ilumkb/simpler64/keymaps/default/keymap.c b/keyboards/ilumkb/simpler64/keymaps/default/keymap.c index bc4b2324809..e338fe6d769 100644 --- a/keyboards/ilumkb/simpler64/keymaps/default/keymap.c +++ b/keyboards/ilumkb/simpler64/keymaps/default/keymap.c @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_64_ansi( QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, + _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, KC_END, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/inland/mk47/keymaps/default/keymap.c b/keyboards/inland/mk47/keymaps/default/keymap.c index dab9c637826..087ed468698 100644 --- a/keyboards/inland/mk47/keymaps/default/keymap.c +++ b/keyboards/inland/mk47/keymaps/default/keymap.c @@ -27,10 +27,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_planck_mit( - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, RGB_MOD, + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, RM_NEXT, KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MSTP, KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, RGB_VAI, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, KC_TRNS + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MSTP, KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, RM_VALU, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_VALD, KC_TRNS ), [2] = LAYOUT_planck_mit( diff --git a/keyboards/inland/v83p/keymaps/default/keymap.c b/keyboards/inland/v83p/keymaps/default/keymap.c index 359939a0159..cc4ea3a4803 100644 --- a/keyboards/inland/v83p/keymaps/default/keymap.c +++ b/keyboards/inland/v83p/keymaps/default/keymap.c @@ -20,12 +20,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_ansi( /* FN */ - EE_CLR, KC_BRID, KC_BRIU, KC_MAIL, KC_WSCH, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, + EE_CLR, KC_BRID, KC_BRIU, KC_MAIL, KC_WSCH, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RM_TOGG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, - _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, RGB_HUD, - _______, GU_TOGG, _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUEU, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_VALU, RM_HUED, + _______, GU_TOGG, _______, _______, _______, _______, _______, RM_SPDD, RM_VALD, RM_SPDU), [MAC_B] = LAYOUT_ansi( /* Base */ KC_ESC, KC_BRID, KC_BRIU, KC_F3, KC_F4, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, KC_MUTE, @@ -36,20 +36,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT_ansi( /* FN */ - EE_CLR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_TOG, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, + EE_CLR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RM_TOGG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, - _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, RGB_HUD, - _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI) + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUEU, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_VALU, RM_HUED, + _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_VALD, RM_SPDU) }; #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [WIN_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, - [WIN_FN] = { ENCODER_CCW_CW(RGB_SAI, RGB_SAD) }, + [WIN_FN] = { ENCODER_CCW_CW(RM_SATU, RM_SATD) }, [MAC_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, - [MAC_FN] = { ENCODER_CCW_CW(RGB_SAI, RGB_SAD) }, + [MAC_FN] = { ENCODER_CCW_CW(RM_SATU, RM_SATD) }, }; #endif diff --git a/keyboards/input_club/k_type/keymaps/default/keymap.c b/keyboards/input_club/k_type/keymaps/default/keymap.c index 452791b13a4..94f10804757 100644 --- a/keyboards/input_club/k_type/keymaps/default/keymap.c +++ b/keyboards/input_club/k_type/keymaps/default/keymap.c @@ -14,10 +14,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_tkl_ansi( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_MOD, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, RM_NEXT, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, RGB_HUI, RGB_SAI, RGB_VAI, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, RM_HUEU, RM_SATU, RM_VALU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUED, RM_SATD, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/jacky_studio/piggy60/keymaps/default/keymap.c b/keyboards/jacky_studio/piggy60/keymaps/default/keymap.c index f3d83c98aed..2330caf6ffe 100644 --- a/keyboards/jacky_studio/piggy60/keymaps/default/keymap.c +++ b/keyboards/jacky_studio/piggy60/keymaps/default/keymap.c @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_PSCR, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_PGUP, KC_HOME, KC_TRNS, KC_VOLU, KC_BRIU, KC_TRNS, KC_WH_U, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, KC_TRNS, KC_VOLD, KC_BRID, KC_TRNS, KC_WH_D, KC_TRNS, KC_TRNS, - RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RM_TOGG, RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; diff --git a/keyboards/jadookb/jkb65/keymaps/default/keymap.c b/keyboards/jadookb/jkb65/keymaps/default/keymap.c index 14055736cdb..8af9c976841 100644 --- a/keyboards/jadookb/jkb65/keymaps/default/keymap.c +++ b/keyboards/jadookb/jkb65/keymaps/default/keymap.c @@ -29,9 +29,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_65_ansi_blocker( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_PSCR, - _______, RGB_RMOD, RGB_HUI, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RGB_HUD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, - GU_ON, GU_OFF, _______, RGB_TOG, _______, MO(2), RGB_SPD, RGB_VAD, RGB_SPI + _______, RM_PREV, RM_HUEU, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RM_HUED, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, + GU_ON, GU_OFF, _______, RM_TOGG, _______, MO(2), RM_SPDD, RM_VALD, RM_SPDU ) }; diff --git a/keyboards/jidohun/km113/keymaps/default/keymap.c b/keyboards/jidohun/km113/keymaps/default/keymap.c index 088adc8742c..31b0c64ad9c 100644 --- a/keyboards/jidohun/km113/keymaps/default/keymap.c +++ b/keyboards/jidohun/km113/keymaps/default/keymap.c @@ -16,11 +16,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( EE_CLR, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_MYCM, KC_CALC, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_MOD, _______, _______, - _______, _______, _______, _______, RGB_MOD, _______, _______, KC_PSCR, KC_PGUP, KC_DEL, _______, _______, _______, _______, TO(0), _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_PREV, RM_NEXT, _______, _______, + _______, _______, _______, _______, RM_NEXT, _______, _______, KC_PSCR, KC_PGUP, KC_DEL, _______, _______, _______, _______, TO(0), _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_PGDN, KC_END, _______, _______, _______, TO(1), _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, TO(2), _______, - _______, GU_TOGG, _______, RGB_TOG, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI,TO(3), _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, TO(2), _______, + _______, GU_TOGG, _______, RM_TOGG, _______, _______, _______, RM_SPDD, RM_VALD, RM_SPDU,TO(3), _______ ), [2] = LAYOUT( diff --git a/keyboards/jlw/vault35_wkl_universal/keymaps/default/keymap.c b/keyboards/jlw/vault35_wkl_universal/keymaps/default/keymap.c index ae5f304eed6..0d813f808a3 100644 --- a/keyboards/jlw/vault35_wkl_universal/keymaps/default/keymap.c +++ b/keyboards/jlw/vault35_wkl_universal/keymaps/default/keymap.c @@ -7,7 +7,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_all( KC_Q, KC_W, KC_E, KC_R, KC_T, KC_VOLU, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_A, KC_S, KC_D, KC_F, KC_G, KC_VOLD, KC_H, KC_J, KC_K, KC_L, KC_QUOT, - KC_Z, KC_X, KC_C, KC_V, KC_B, RGB_TOG, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_Z, KC_X, KC_C, KC_V, KC_B, RM_TOGG, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ESC, MO(1), KC_ENT, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_BSPC ), @@ -29,8 +29,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI) }, - [2] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } + [1] = { ENCODER_CCW_CW(RM_HUED, RM_HUEU) }, + [2] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) } }; #endif diff --git a/keyboards/joshajohnson/hub20/keymaps/default/keymap.c b/keyboards/joshajohnson/hub20/keymaps/default/keymap.c index fe6dd37d051..970d4966208 100644 --- a/keyboards/joshajohnson/hub20/keymaps/default/keymap.c +++ b/keyboards/joshajohnson/hub20/keymaps/default/keymap.c @@ -28,10 +28,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_all( QK_BOOT, _______, - RGB_TOG, RGB_RMOD, RGB_MOD, _______, - _______, RGB_VAD, RGB_VAI, _______, - _______, RGB_HUD, RGB_HUI, _______, - _______, RGB_SAD, RGB_SAI, _______, + RM_TOGG, RM_PREV, RM_NEXT, _______, + _______, RM_VALD, RM_VALU, _______, + _______, RM_HUED, RM_HUEU, _______, + _______, RM_SATD, RM_SATU, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/joshajohnson/hub20/keymaps/left_hand_numpad/keymap.c b/keyboards/joshajohnson/hub20/keymaps/left_hand_numpad/keymap.c index a7853accc5f..6613a809636 100644 --- a/keyboards/joshajohnson/hub20/keymaps/left_hand_numpad/keymap.c +++ b/keyboards/joshajohnson/hub20/keymaps/left_hand_numpad/keymap.c @@ -33,10 +33,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_left_handed( QK_BOOT, _______, - RGB_TOG, RGB_RMOD, RGB_MOD, _______, - _______, RGB_VAD, RGB_VAI, _______, - RGB_HUD, RGB_HUI, _______, - _______, RGB_SAD, RGB_SAI, _______, + RM_TOGG, RM_PREV, RM_NEXT, _______, + _______, RM_VALD, RM_VALU, _______, + RM_HUED, RM_HUEU, _______, + _______, RM_SATD, RM_SATU, _______, _______, _______ ) }; diff --git a/keyboards/joshajohnson/hub20/keymaps/right_hand_numpad/keymap.c b/keyboards/joshajohnson/hub20/keymaps/right_hand_numpad/keymap.c index 78198ab951d..f4ecf869c43 100644 --- a/keyboards/joshajohnson/hub20/keymaps/right_hand_numpad/keymap.c +++ b/keyboards/joshajohnson/hub20/keymaps/right_hand_numpad/keymap.c @@ -35,10 +35,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_right_handed( QK_BOOT, _______, - RGB_TOG, RGB_RMOD, RGB_MOD, _______, - _______, RGB_VAD, RGB_VAI, - _______, RGB_HUD, RGB_HUI, _______, - _______, RGB_SAD, RGB_SAI, + RM_TOGG, RM_PREV, RM_NEXT, _______, + _______, RM_VALD, RM_VALU, + _______, RM_HUED, RM_HUEU, _______, + _______, RM_SATD, RM_SATU, _______, _______, _______ ) }; diff --git a/keyboards/jukaie/jk01/keymaps/default/keymap.c b/keyboards/jukaie/jk01/keymaps/default/keymap.c index 243c782fad2..10a24c45e61 100644 --- a/keyboards/jukaie/jk01/keymaps/default/keymap.c +++ b/keyboards/jukaie/jk01/keymaps/default/keymap.c @@ -46,20 +46,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, MO(Macfn),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [Winfn] = LAYOUT( - QK_BOOT, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, RGB_MOD, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, + QK_BOOT, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, RM_NEXT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, KC_TRNS, KC_TRNS, TO(Win), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, - KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_VALU, KC_TRNS, + KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SPDD, RM_VALD, RM_SPDU), [Macfn] = LAYOUT( - QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, RGB_MOD, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, RM_NEXT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, KC_TRNS, KC_TRNS, TO(Win), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(Mac), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_VALU, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SPDD, RM_VALD, RM_SPDU), }; diff --git a/keyboards/junco/keymaps/default/keymap.c b/keyboards/junco/keymaps/default/keymap.c index 8ff35138913..8fe73e035a3 100644 --- a/keyboards/junco/keymaps/default/keymap.c +++ b/keyboards/junco/keymaps/default/keymap.c @@ -118,8 +118,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT_split4x6_r1( KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, KC_NO, KC_NO, EE_CLR, QK_RBT, DB_TOGG, QK_BOOT, KC_NO, - RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_RMOD, RGB_TOG, KC_NO, DF(_QWERTY), DF(_COLEMAK_DH), KC_NO, KC_NO, KC_NO, + RM_SPDU, RM_HUEU, RM_SATU, RM_VALU, RM_NEXT, KC_NO, KC_NO, EE_CLR, QK_RBT, DB_TOGG, QK_BOOT, KC_NO, + RM_SPDD, RM_HUED, RM_SATD, RM_VALD, RM_PREV, RM_TOGG, KC_NO, DF(_QWERTY), DF(_COLEMAK_DH), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/kapl/keymaps/default/keymap.c b/keyboards/kapl/keymaps/default/keymap.c index 376b2472185..29d72582b42 100644 --- a/keyboards/kapl/keymaps/default/keymap.c +++ b/keyboards/kapl/keymaps/default/keymap.c @@ -37,11 +37,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┐ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, QK_BOOT, //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ - KC_NO, RGB_SAI, RGB_SPI, RGB_VAI, RGB_HUI, RGB_MOD, KC_NO, KC_NO, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, RM_SATU, RM_SPDU, RM_VALU, RM_HUEU, RM_NEXT, KC_NO, KC_NO, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ - KC_NO, RGB_SAD, RGB_SPD, RGB_VAD, RGB_HUD, RGB_RMOD, KC_NO, KC_NO, KC_VOLD, KC_MPLY, KC_MNXT, KC_MPRV, KC_NO, KC_NO, + KC_NO, RM_SATD, RM_SPDD, RM_VALD, RM_HUED, RM_PREV, KC_NO, KC_NO, KC_VOLD, KC_MPLY, KC_MNXT, KC_MPRV, KC_NO, KC_NO, //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ - KC_NO, KC_NO, KC_NO, KC_NO, RGB_TOG, RGB_M_P, KC_NO, KC_NO, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, RM_TOGG, RGB_M_P, KC_NO, KC_NO, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, //├────────┼────────┼────────┼────────┼────────┼─┬──────┴─┬──────┴─┐ ┌─┴──────┬─┴──────┬─┼────────┼────────┼────────┼────────┼────────┤ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO //└────────┴────────┴────────┴────────┴────────┘ └────────┴────────┘ └────────┴────────┘ └────────┴────────┴────────┴────────┴────────┘ diff --git a/keyboards/kbdcraft/adam64/keymaps/default/keymap.c b/keyboards/kbdcraft/adam64/keymaps/default/keymap.c index 0396bd77d15..cdd32beedd8 100644 --- a/keyboards/kbdcraft/adam64/keymaps/default/keymap.c +++ b/keyboards/kbdcraft/adam64/keymaps/default/keymap.c @@ -29,9 +29,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_64_ansi( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - KC_NO, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, KC_PSCR, KC_SCRL, KC_PAUS, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_SPI, RGB_SPD, KC_HOME, KC_PGUP, EE_CLR, + KC_NO, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, KC_PSCR, KC_SCRL, KC_PAUS, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RM_SPDU, RM_SPDD, KC_HOME, KC_PGUP, EE_CLR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, NK_TOGG, KC_NO, KC_NO, KC_INS, KC_END, KC_PGDN, KC_VOLU, KC_MUTE, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, RGB_MOD, KC_VOLD, RGB_TOG + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, RM_NEXT, KC_VOLD, RM_TOGG ) }; diff --git a/keyboards/kbdfans/baguette66/rgb/keymaps/default/keymap.c b/keyboards/kbdfans/baguette66/rgb/keymaps/default/keymap.c index a420edfa7b2..201ea645637 100644 --- a/keyboards/kbdfans/baguette66/rgb/keymaps/default/keymap.c +++ b/keyboards/kbdfans/baguette66/rgb/keymaps/default/keymap.c @@ -25,20 +25,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT,KC_DOWN, KC_RIGHT), [1] = LAYOUT( QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_GRAVE, KC_PGUP, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGDN, - KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, + KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU,RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGDN, + KC_TRNS, RM_SPDU, RM_SPDD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), [2] = LAYOUT( QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_GRAVE, KC_PGUP, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGDN, - KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, + KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU,RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGDN, + KC_TRNS, RM_SPDU, RM_SPDD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), [3] = LAYOUT( QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_GRAVE, KC_PGUP, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGDN, - KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, + KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU,RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGDN, + KC_TRNS, RM_SPDU, RM_SPDD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), }; diff --git a/keyboards/kbdfans/bella/rgb/keymaps/default/keymap.c b/keyboards/kbdfans/bella/rgb/keymaps/default/keymap.c index bc7955c1a86..bde7e448d91 100644 --- a/keyboards/kbdfans/bella/rgb/keymaps/default/keymap.c +++ b/keyboards/kbdfans/bella/rgb/keymaps/default/keymap.c @@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, + KC_TRNS, RM_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) diff --git a/keyboards/kbdfans/bella/rgb_iso/keymaps/default/keymap.c b/keyboards/kbdfans/bella/rgb_iso/keymaps/default/keymap.c index 5391c17755d..927f88c47e7 100644 --- a/keyboards/kbdfans/bella/rgb_iso/keymaps/default/keymap.c +++ b/keyboards/kbdfans/bella/rgb_iso/keymaps/default/keymap.c @@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, EE_CLR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) diff --git a/keyboards/kbdfans/boop65/rgb/keymaps/default/keymap.c b/keyboards/kbdfans/boop65/rgb/keymaps/default/keymap.c index 7ad5c5bf17f..cafcd2152cd 100644 --- a/keyboards/kbdfans/boop65/rgb/keymaps/default/keymap.c +++ b/keyboards/kbdfans/boop65/rgb/keymaps/default/keymap.c @@ -25,8 +25,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), [1] = LAYOUT_65_ansi_blocker( QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, - KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_PGDN, + KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU,RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, + KC_TRNS, RM_SPDU, RM_SPDD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_PGDN, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), [2] = LAYOUT_65_ansi_blocker( diff --git a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/default/keymap.c b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/default/keymap.c index d00b74f7b63..8d7999eaabc 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/default/keymap.c +++ b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/default/keymap.c @@ -10,8 +10,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT), [_LAYER1] = LAYOUT_65_ansi_blocker( /* FN */ QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, - CTL_T(KC_CAPS),RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_PGDN, + KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU,RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, + CTL_T(KC_CAPS),RM_SPDU, RM_SPDD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_PGDN, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), }; diff --git a/keyboards/kbdfans/kbd67/mkiirgb_iso/keymaps/default/keymap.c b/keyboards/kbdfans/kbd67/mkiirgb_iso/keymaps/default/keymap.c index 221cccefb4e..206ed3e19db 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb_iso/keymaps/default/keymap.c +++ b/keyboards/kbdfans/kbd67/mkiirgb_iso/keymaps/default/keymap.c @@ -26,8 +26,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_65_iso_blocker( QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_PGUP, - KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, QK_BOOT, KC_PGDN, + KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_PGUP, + KC_TRNS, RM_SPDU, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, QK_BOOT, KC_PGDN, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT ), diff --git a/keyboards/kbdfans/maja/keymaps/default/keymap.c b/keyboards/kbdfans/maja/keymaps/default/keymap.c index fbc0f593049..7f92ac593a0 100755 --- a/keyboards/kbdfans/maja/keymaps/default/keymap.c +++ b/keyboards/kbdfans/maja/keymaps/default/keymap.c @@ -10,8 +10,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), [1] = LAYOUT( /* FN */ QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QK_BOOT, KC_HOME, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, - CTL_T(KC_CAPS),RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_PGDN, + KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU,RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, + CTL_T(KC_CAPS),RM_SPDU, RM_SPDD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_PGDN, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), }; diff --git a/keyboards/keebio/bamfk1/keymaps/default/keymap.c b/keyboards/keebio/bamfk1/keymaps/default/keymap.c index 8ff3f794a58..80f296a4941 100644 --- a/keyboards/keebio/bamfk1/keymaps/default/keymap.c +++ b/keyboards/keebio/bamfk1/keymaps/default/keymap.c @@ -13,7 +13,7 @@ enum layer_names { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_MAIN] = LAYOUT( - RGB_MOD, // Big Switch + RM_NEXT, // Big Switch TL_LOWR, KC_MUTE // Encoder presses ), [_FN1] = LAYOUT( diff --git a/keyboards/keebio/bdn9/keymaps/default/keymap.c b/keyboards/keebio/bdn9/keymaps/default/keymap.c index dae8cb60358..4e389218f0c 100644 --- a/keyboards/keebio/bdn9/keymaps/default/keymap.c +++ b/keyboards/keebio/bdn9/keymaps/default/keymap.c @@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [0] = LAYOUT( KC_MUTE, KC_HOME, KC_MPLY, - MO(1) , KC_UP , RGB_MOD, + MO(1) , KC_UP , RM_NEXT, KC_LEFT, KC_DOWN, KC_RGHT ), /* @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [1] = LAYOUT( QK_BOOT , BL_STEP, KC_STOP, - _______, KC_HOME, RGB_MOD, + _______, KC_HOME, RM_NEXT, KC_MPRV, KC_END , KC_MNXT ), }; diff --git a/keyboards/keebio/bdn9/keymaps/test/keymap.c b/keyboards/keebio/bdn9/keymaps/test/keymap.c index ecf7338a57e..67eecf967f3 100644 --- a/keyboards/keebio/bdn9/keymaps/test/keymap.c +++ b/keyboards/keebio/bdn9/keymaps/test/keymap.c @@ -10,7 +10,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, - KC_G, KC_H, RGB_MOD + KC_G, KC_H, RM_NEXT ), }; diff --git a/keyboards/keebio/cepstrum/keymaps/default/keymap.c b/keyboards/keebio/cepstrum/keymaps/default/keymap.c index e8fc2e29c95..5bbd5a79ec6 100644 --- a/keyboards/keebio/cepstrum/keymaps/default/keymap.c +++ b/keyboards/keebio/cepstrum/keymaps/default/keymap.c @@ -12,9 +12,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_65xt( - RGB_HUI, RGB_HUD, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - RGB_SAI, RGB_SAD, RGB_TOG, RGB_MOD, KC_UP, _______, QK_BOOT, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, - RGB_VAI, RGB_VAD, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RM_HUEU, RM_HUED, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + RM_SATU, RM_SATD, RM_TOGG, RM_NEXT, KC_UP, _______, QK_BOOT, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, + RM_VALU, RM_VALD, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/keebio/chiri_ce/keymaps/default/keymap.json b/keyboards/keebio/chiri_ce/keymaps/default/keymap.json index 18c9e441e07..2ad48e577d3 100644 --- a/keyboards/keebio/chiri_ce/keymaps/default/keymap.json +++ b/keyboards/keebio/chiri_ce/keymaps/default/keymap.json @@ -13,13 +13,13 @@ [ "KC_GRV" , "KC_1" , "KC_2" , "KC_3" , "KC_4" , "KC_5" , "KC_6" , "KC_7" , "KC_8" , "KC_9" , "KC_0" , "KC_BSPC", "KC_ESC" , "KC_LEFT", "KC_DOWN", "KC_UP" , "KC_RGHT", "KC_LBRC", "KC_RBRC", "KC_P4" , "KC_P5" , "KC_P6" , "KC_PLUS", "KC_PIPE", - "RGB_MOD", "_______", "_______", "_______", "_______", "KC_LCBR", "KC_LPRN", "KC_RPRN", "KC_RCBR", "KC_P1" , "KC_P2" , "KC_P3" , "KC_MINS", "_______", + "RM_NEXT", "_______", "_______", "_______", "_______", "KC_LCBR", "KC_LPRN", "KC_RPRN", "KC_RCBR", "KC_P1" , "KC_P2" , "KC_P3" , "KC_MINS", "_______", "_______", "_______", "KC_DEL" , "KC_DEL" , "_______", "KC_P0" ], [ - "RGB_TOG", "KC_EXLM", "KC_AT" , "KC_HASH", "KC_DLR" , "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "QK_BOOT", - "RGB_MOD", "KC_MPRV", "KC_MNXT", "KC_VOLU", "KC_PGUP", "KC_UNDS", "KC_EQL" , "KC_HOME", "RGB_HUI", "RGB_SAI", "RGB_VAI", "KC_BSLS", - "KC_MUTE", "KC_MSTP", "KC_MPLY", "KC_VOLD", "KC_PGDN", "KC_MINS", "KC_LPRN", "_______", "KC_PLUS", "KC_END" , "RGB_HUD", "RGB_SAD", "RGB_VAD", "_______", + "RM_TOGG", "KC_EXLM", "KC_AT" , "KC_HASH", "KC_DLR" , "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "QK_BOOT", + "RM_NEXT", "KC_MPRV", "KC_MNXT", "KC_VOLU", "KC_PGUP", "KC_UNDS", "KC_EQL" , "KC_HOME", "RM_HUEU", "RM_SATU", "RM_VALU", "KC_BSLS", + "KC_MUTE", "KC_MSTP", "KC_MPLY", "KC_VOLD", "KC_PGDN", "KC_MINS", "KC_LPRN", "_______", "KC_PLUS", "KC_END" , "RM_HUED", "RM_SATD", "RM_VALD", "_______", "_______", "_______", "_______", "_______", "_______", "_______" ], [ diff --git a/keyboards/keebio/chocopad/keymaps/default/keymap.c b/keyboards/keebio/chocopad/keymaps/default/keymap.c index 8c83d72cfe6..17347a1af1b 100644 --- a/keyboards/keebio/chocopad/keymaps/default/keymap.c +++ b/keyboards/keebio/chocopad/keymaps/default/keymap.c @@ -22,8 +22,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_P0, KC_P0, KC_DOT ), [_FN2] = LAYOUT_ortho_4x4( - RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, - RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, + RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, + RM_NEXT, RM_HUED, RM_SATD, RM_VALD, _______, _______, _______, QK_BOOT, BL_STEP, _______, _______, _______ ) diff --git a/keyboards/keebio/convolution/keymaps/default/keymap.c b/keyboards/keebio/convolution/keymaps/default/keymap.c index e9e8d883445..b350d2bda2b 100644 --- a/keyboards/keebio/convolution/keymaps/default/keymap.c +++ b/keyboards/keebio/convolution/keymaps/default/keymap.c @@ -22,9 +22,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_65xt( - RGB_HUI, RGB_HUD, QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, - RGB_SAI, RGB_SAD, RGB_TOG, RGB_MOD, _______, KC_UP, QK_BOOT, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RGB_VAI, RGB_VAD, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RM_HUEU, RM_HUED, QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + RM_SATU, RM_SATD, RM_TOGG, RM_NEXT, _______, KC_UP, QK_BOOT, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RM_VALU, RM_VALD, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -34,6 +34,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, - [1] = { ENCODER_CCW_CW(RGB_MOD, RGB_RMOD), ENCODER_CCW_CW(KC_MNXT, KC_MPRV) }, + [1] = { ENCODER_CCW_CW(RM_NEXT, RM_PREV), ENCODER_CCW_CW(KC_MNXT, KC_MPRV) }, }; #endif diff --git a/keyboards/keebio/iris/keymaps/default/keymap.json b/keyboards/keebio/iris/keymaps/default/keymap.json index 623c532a303..779c59d8348 100644 --- a/keyboards/keebio/iris/keymaps/default/keymap.json +++ b/keyboards/keebio/iris/keymaps/default/keymap.json @@ -15,14 +15,14 @@ "KC_TILD", "KC_EXLM", "KC_AT" , "KC_HASH", "KC_DLR" , "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "KC_PGUP", "KC_GRV" , "_______", "KC_UP" , "_______", "QK_BOOT", "_______", "_______", "KC_P7" , "KC_P8" , "KC_P9" , "KC_P0" , "KC_PGDN", "KC_DEL" , "KC_LEFT", "KC_DOWN", "KC_RGHT", "_______", "KC_LBRC", "KC_RBRC", "KC_P4" , "KC_P5" , "KC_P6" , "KC_PLUS", "KC_PIPE", - "RGB_MOD", "EE_CLR" , "_______", "_______", "_______", "KC_LCBR", "KC_LPRN", "KC_RPRN", "KC_RCBR", "KC_P1" , "KC_P2" , "KC_P3" , "KC_MINS", "_______", + "RM_NEXT", "EE_CLR" , "_______", "_______", "_______", "KC_LCBR", "KC_LPRN", "KC_RPRN", "KC_RCBR", "KC_P1" , "KC_P2" , "KC_P3" , "KC_MINS", "_______", "_______", "_______", "KC_DEL" , "KC_DEL" , "_______", "KC_P0" ], [ "KC_F12" , "KC_F1" , "KC_F2" , "KC_F3" , "KC_F4" , "KC_F5" , "KC_F6" , "KC_F7" , "KC_F8" , "KC_F9" , "KC_F10" , "KC_F11" , - "RGB_TOG", "KC_EXLM", "KC_AT" , "KC_HASH", "KC_DLR" , "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "QK_BOOT", - "RGB_MOD", "KC_MPRV", "KC_MNXT", "KC_VOLU", "KC_PGUP", "KC_UNDS", "KC_EQL" , "KC_HOME", "RGB_HUI", "RGB_SAI", "RGB_VAI", "KC_BSLS", - "KC_MUTE", "KC_MSTP", "KC_MPLY", "KC_VOLD", "KC_PGDN", "KC_MINS", "KC_LPRN", "_______", "KC_PLUS", "KC_END" , "RGB_HUD", "RGB_SAD", "RGB_VAD", "EE_CLR" , + "RM_TOGG", "KC_EXLM", "KC_AT" , "KC_HASH", "KC_DLR" , "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "QK_BOOT", + "RM_NEXT", "KC_MPRV", "KC_MNXT", "KC_VOLU", "KC_PGUP", "KC_UNDS", "KC_EQL" , "KC_HOME", "RM_HUEU", "RM_SATU", "RM_VALU", "KC_BSLS", + "KC_MUTE", "KC_MSTP", "KC_MPLY", "KC_VOLD", "KC_PGDN", "KC_MINS", "KC_LPRN", "_______", "KC_PLUS", "KC_END" , "RM_HUED", "RM_SATD", "RM_VALD", "EE_CLR" , "_______", "_______", "_______", "_______", "_______", "_______" ] ] diff --git a/keyboards/keebio/iris_ce/keymaps/default/keymap.c b/keyboards/keebio/iris_ce/keymaps/default/keymap.c index d5021d647d4..7a0625a36a1 100644 --- a/keyboards/keebio/iris_ce/keymaps/default/keymap.c +++ b/keyboards/keebio/iris_ce/keymaps/default/keymap.c @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_LBRC, KC_RBRC, KC_P4, KC_P5, KC_P6, KC_PLUS, KC_PIPE, //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ - RGB_MOD, EE_CLR, _______, _______, _______, KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_P1, KC_P2, KC_P3, KC_MINS, _______, + RM_NEXT, EE_CLR, _______, _______, _______, KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_P1, KC_P2, KC_P3, KC_MINS, _______, //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ _______, _______, KC_DEL, KC_DEL, _______, KC_P0 // └────────┴────────┴────────┘ └────────┴────────┴────────┘ @@ -43,11 +43,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ - RGB_TOG, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, QK_BOOT, + RM_TOGG, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, QK_BOOT, //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ - RGB_MOD, KC_MPRV, KC_MNXT, KC_VOLU, KC_PGUP, KC_UNDS, KC_EQL, KC_HOME, RGB_HUI, RGB_SAI, RGB_VAI, KC_BSLS, + RM_NEXT, KC_MPRV, KC_MNXT, KC_VOLU, KC_PGUP, KC_UNDS, KC_EQL, KC_HOME, RM_HUEU, RM_SATU, RM_VALU, KC_BSLS, //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ - KC_MUTE, KC_MSTP, KC_MPLY, KC_VOLD, KC_PGDN, KC_MINS, KC_LPRN, _______, KC_PLUS, KC_END, RGB_HUD, RGB_SAD, RGB_VAD, EE_CLR, + KC_MUTE, KC_MSTP, KC_MPLY, KC_VOLD, KC_PGDN, KC_MINS, KC_LPRN, _______, KC_PLUS, KC_END, RM_HUED, RM_SATD, RM_VALD, EE_CLR, //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ _______, _______, _______, _______, _______, _______ // └────────┴────────┴────────┘ └────────┴────────┴────────┘ diff --git a/keyboards/keebio/irispad/keymaps/default/keymap.json b/keyboards/keebio/irispad/keymaps/default/keymap.json index e9c52fa99fd..29aa0609268 100644 --- a/keyboards/keebio/irispad/keymaps/default/keymap.json +++ b/keyboards/keebio/irispad/keymaps/default/keymap.json @@ -15,13 +15,13 @@ "KC_TILD", "KC_EXLM", "KC_AT" , "KC_HASH", "KC_DLR" , "KC_PERC", "KC_GRV" , "_______", "KC_UP" , "_______", "QK_BOOT", "_______", "KC_DEL" , "KC_LEFT", "KC_DOWN", "KC_RGHT", "_______", "KC_LBRC", - "RGB_MOD", "EE_CLR" , "_______", "_______", "_______", "KC_LCBR", "KC_LPRN", + "RM_NEXT", "EE_CLR" , "_______", "_______", "_______", "KC_LCBR", "KC_LPRN", "_______", "_______", "KC_DEL" ], [ "KC_F6" , "KC_F1" , "KC_F2" , "KC_F3" , "KC_F4" , "KC_F5" , "KC_F12", "KC_F7" , "KC_F8" , "KC_F9" , "KC_F10" , "KC_F11" , - "RGB_MOD", "KC_MPRV", "KC_MNXT", "KC_VOLU", "KC_PGUP", "KC_UNDS", + "RM_NEXT", "KC_MPRV", "KC_MNXT", "KC_VOLU", "KC_PGUP", "KC_UNDS", "KC_MUTE", "KC_MSTP", "KC_MPLY", "KC_VOLD", "KC_PGDN", "KC_MINS", "KC_LPRN", "_______", "_______", "_______" ] diff --git a/keyboards/keebio/nyquist/keymaps/default/keymap.c b/keyboards/keebio/nyquist/keymaps/default/keymap.c index df399d355f1..178ff47456d 100644 --- a/keyboards/keebio/nyquist/keymaps/default/keymap.c +++ b/keyboards/keebio/nyquist/keymaps/default/keymap.c @@ -147,7 +147,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT_ortho_5x12( KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - _______, QK_BOOT, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, KC_DEL, + _______, QK_BOOT, RM_TOGG, RM_NEXT, RM_HUED, RM_HUEU, RM_SATD, RM_SATU, RM_VALD, RM_VALU, _______, KC_DEL, _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ @@ -228,7 +228,7 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_QWERTY] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, [_COLEMAK] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, [_DVORAK] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, - [_LOWER] = { ENCODER_CCW_CW(RGB_MOD, RGB_RMOD), ENCODER_CCW_CW(KC_MNXT, KC_MPRV) }, + [_LOWER] = { ENCODER_CCW_CW(RM_NEXT, RM_PREV), ENCODER_CCW_CW(KC_MNXT, KC_MPRV) }, [_RAISE] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, [_ADJUST] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) } }; diff --git a/keyboards/keebio/nyquistpad/keymaps/default/keymap.c b/keyboards/keebio/nyquistpad/keymaps/default/keymap.c index 42c036556d1..5a5a8ad497b 100644 --- a/keyboards/keebio/nyquistpad/keymaps/default/keymap.c +++ b/keyboards/keebio/nyquistpad/keymaps/default/keymap.c @@ -13,7 +13,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { MO(2), KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC ), [1] = LAYOUT_ortho_5x6( - RGB_MOD, _______, _______, _______, _______, _______, + RM_NEXT, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, KC_VOLU, KC_PGUP, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_VOLD, KC_PGDN, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/keebio/sinc/keymaps/default/keymap.c b/keyboards/keebio/sinc/keymaps/default/keymap.c index 171b7a7d057..f0cf80366e0 100644 --- a/keyboards/keebio/sinc/keymaps/default/keymap.c +++ b/keyboards/keebio/sinc/keymaps/default/keymap.c @@ -14,9 +14,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_80_with_macro( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RGB_HUI, RGB_HUD, QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, - RGB_SAI, RGB_SAD, RGB_TOG, RGB_MOD, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RGB_VAI, RGB_VAD, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RM_HUEU, RM_HUED, QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + RM_SATU, RM_SATD, RM_TOGG, RM_NEXT, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RM_VALU, RM_VALD, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/keebio/sinc/keymaps/iso/keymap.c b/keyboards/keebio/sinc/keymaps/iso/keymap.c index f3eaaa5bca0..205af033c6c 100644 --- a/keyboards/keebio/sinc/keymaps/iso/keymap.c +++ b/keyboards/keebio/sinc/keymaps/iso/keymap.c @@ -14,9 +14,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_80_iso_with_macro( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RGB_HUI, RGB_HUD, QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, - RGB_SAI, RGB_SAD, RGB_TOG, RGB_MOD, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RGB_VAI, RGB_VAD, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RM_HUEU, RM_HUED, QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + RM_SATU, RM_SATD, RM_TOGG, RM_NEXT, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RM_VALU, RM_VALD, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/keyboardio/model01/keymaps/default/keymap.c b/keyboards/keyboardio/model01/keymaps/default/keymap.c index 3ed72adb737..756cffcf236 100644 --- a/keyboards/keyboardio/model01/keymaps/default/keymap.c +++ b/keyboards/keyboardio/model01/keymaps/default/keymap.c @@ -26,7 +26,7 @@ enum { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [DEF] = LAYOUT( QK_BOOT , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , TG(NUM), - KC_GRV , KC_Q , KC_W , KC_E , KC_R , KC_T , RGB_MOD, _______, KC_Y , KC_U , KC_I , KC_O , KC_P , KC_EQL , + KC_GRV , KC_Q , KC_W , KC_E , KC_R , KC_T , RM_NEXT, _______, KC_Y , KC_U , KC_I , KC_O , KC_P , KC_EQL , KC_PGUP, KC_A , KC_S , KC_D , KC_F , KC_G , KC_TAB , KC_ENT , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_PGDN, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_ESC , _______, KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_MINS, KC_LCTL, KC_RCTL, @@ -48,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [FUN] = LAYOUT( _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , - KC_TAB , _______, KC_MS_U, _______, KC_BTN3, _______, RGB_TOG, KC_MPRV, KC_MNXT, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_F12 , + KC_TAB , _______, KC_MS_U, _______, KC_BTN3, _______, RM_TOGG, KC_MPRV, KC_MNXT, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_F12 , KC_HOME, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN1, _______, _______, KC_MPLY, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, _______, _______, KC_END , KC_PSCR, KC_INS , _______, KC_BTN2, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_BSLS, KC_PIPE, _______, _______, diff --git a/keyboards/keycapsss/kimiko/rev2/keymaps/default/keymap.c b/keyboards/keycapsss/kimiko/rev2/keymaps/default/keymap.c index e2518afd541..a569beed224 100644 --- a/keyboards/keycapsss/kimiko/rev2/keymaps/default/keymap.c +++ b/keyboards/keycapsss/kimiko/rev2/keymaps/default/keymap.c @@ -103,8 +103,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT( QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX, - RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, KC_VOLU, KC_MUTE, KC_VOLD, XXXXXXX, XXXXXXX, XXXXXXX, + RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX, + RM_NEXT, RM_HUED, RM_SATD, RM_VALD, XXXXXXX, XXXXXXX, KC_VOLU, KC_MUTE, KC_VOLD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) @@ -115,8 +115,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_QWERTY] = { ENCODER_CCW_CW(KC_DOWN, KC_UP), ENCODER_CCW_CW(KC_LEFT, KC_RGHT) }, - [_LOWER] = { ENCODER_CCW_CW(RGB_HUI, KC_TAB), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [_RAISE] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_SPD, RGB_SPI) }, - [_ADJUST] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(RGB_SAD, RGB_SAI) }, + [_LOWER] = { ENCODER_CCW_CW(RM_HUEU, KC_TAB), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_RAISE] = { ENCODER_CCW_CW(RM_VALD, RM_VALU), ENCODER_CCW_CW(RM_SPDD, RM_SPDU) }, + [_ADJUST] = { ENCODER_CCW_CW(RM_PREV, RM_NEXT), ENCODER_CCW_CW(RM_SATD, RM_SATU) }, }; #endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/q60/ansi/keymaps/default/keymap.c b/keyboards/keychron/q60/ansi/keymaps/default/keymap.c index 48c38a8c853..16fc41fcf51 100644 --- a/keyboards/keychron/q60/ansi/keymaps/default/keymap.c +++ b/keyboards/keychron/q60/ansi/keymaps/default/keymap.c @@ -44,8 +44,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [FUNC] = LAYOUT_ansi_60( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, + RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), diff --git a/keyboards/kopibeng/tgr_lena/keymaps/default/keymap.c b/keyboards/kopibeng/tgr_lena/keymaps/default/keymap.c index 7b4fd9db819..cec02156dac 100644 --- a/keyboards/kopibeng/tgr_lena/keymaps/default/keymap.c +++ b/keyboards/kopibeng/tgr_lena/keymaps/default/keymap.c @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_BOOT, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; diff --git a/keyboards/kprepublic/bm16a/v2/keymaps/default/keymap.c b/keyboards/kprepublic/bm16a/v2/keymaps/default/keymap.c index 0cb2b68fb97..5ff7d3edb6e 100644 --- a/keyboards/kprepublic/bm16a/v2/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm16a/v2/keymaps/default/keymap.c @@ -12,8 +12,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_ortho_4x4( QK_BOOT, KC_PAST, KC_PSLS, _______, - RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, - RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, + RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, + RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______ ) }; diff --git a/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/default/keymap.c b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/default/keymap.c index 838561269a2..55892c8bf80 100755 --- a/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/default/keymap.c @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , - RGB_TOG, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + RM_TOGG, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), /* Lower @@ -94,7 +94,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_planck_mit( - _______, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , + _______, QK_BOOT, DB_TOGG, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_DEL , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/kprepublic/bm40hsrgb/rev2/keymaps/default/keymap.c b/keyboards/kprepublic/bm40hsrgb/rev2/keymaps/default/keymap.c index 5f389e4caf7..187bdca5349 100755 --- a/keyboards/kprepublic/bm40hsrgb/rev2/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm40hsrgb/rev2/keymaps/default/keymap.c @@ -39,7 +39,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , - RGB_TOG, KC_LCTL, KC_LALT, KC_LGUI, TL_LOWR, KC_SPC, TL_UPPR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + RM_TOGG, KC_LCTL, KC_LALT, KC_LGUI, TL_LOWR, KC_SPC, TL_UPPR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), /* Lower @@ -91,7 +91,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_ortho_4x12_1x2uC( - _______, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , + _______, QK_BOOT, DB_TOGG, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_DEL , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/kprepublic/bm60hsrgb/rev1/keymaps/default/keymap.c b/keyboards/kprepublic/bm60hsrgb/rev1/keymaps/default/keymap.c index f89dd675a00..8ee2387bd8c 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev1/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm60hsrgb/rev1/keymaps/default/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_60_ansi_arrow( QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, + _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/keymaps/default/keymap.c b/keyboards/kprepublic/bm60hsrgb/rev2/keymaps/default/keymap.c index 51ac4708fcd..7b6d1ae6932 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm60hsrgb/rev2/keymaps/default/keymap.c @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_60_ansi_arrow( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QK_BOOT, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, + _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev1/keymaps/default/keymap.c b/keyboards/kprepublic/bm60hsrgb_ec/rev1/keymaps/default/keymap.c index 680c20327b9..2cf8d792f8b 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev1/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev1/keymaps/default/keymap.c @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, + _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev1/keymaps/default/keymap.c b/keyboards/kprepublic/bm60hsrgb_iso/rev1/keymaps/default/keymap.c index 558f03e1f2d..b82babca7fe 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev1/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev1/keymaps/default/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_60_iso_arrow( QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, + _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev1/keymaps/iso_nordic_sleepmode/keymap.c b/keyboards/kprepublic/bm60hsrgb_iso/rev1/keymaps/iso_nordic_sleepmode/keymap.c index 4e874b26df7..a7859aa8e94 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev1/keymaps/iso_nordic_sleepmode/keymap.c +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev1/keymaps/iso_nordic_sleepmode/keymap.c @@ -60,7 +60,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------' */ [1] = LAYOUT( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, + _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.c b/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.c index 3b7ca14c98e..f3aa8083f18 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.c @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_60_iso_arrow( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QK_BOOT, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, + _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/default/keymap.c b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/default/keymap.c index db0ba7cd50d..32a8c86c021 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/default/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_60_ansi( QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, + _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/keymaps/default/keymap.c b/keyboards/kprepublic/bm60hsrgb_poker/rev2/keymaps/default/keymap.c index dac3e07c7cf..637d49d467a 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/keymaps/default/keymap.c @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_60_ansi( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QK_BOOT, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, + _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/kprepublic/bm65hsrgb/keymaps/default/keymap.c b/keyboards/kprepublic/bm65hsrgb/keymaps/default/keymap.c index 1b3ce7a4565..daae44d0996 100644 --- a/keyboards/kprepublic/bm65hsrgb/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm65hsrgb/keymaps/default/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_65_ansi_blocker( KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/kprepublic/bm65hsrgb_iso/rev1/keymaps/default/keymap.c b/keyboards/kprepublic/bm65hsrgb_iso/rev1/keymaps/default/keymap.c index 4b5364fc9b6..ca4df9e000f 100644 --- a/keyboards/kprepublic/bm65hsrgb_iso/rev1/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm65hsrgb_iso/rev1/keymaps/default/keymap.c @@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_65_iso_blocker( QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, + _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/kprepublic/bm68hsrgb/rev1/keymaps/default/keymap.c b/keyboards/kprepublic/bm68hsrgb/rev1/keymaps/default/keymap.c index 27812c7bbec..7b2cf7e0f45 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev1/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm68hsrgb/rev1/keymaps/default/keymap.c @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_65_ansi( KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, + _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/kprepublic/bm80hsrgb/keymaps/default/keymap.c b/keyboards/kprepublic/bm80hsrgb/keymaps/default/keymap.c index 69b3540a3a2..893141eff98 100644 --- a/keyboards/kprepublic/bm80hsrgb/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm80hsrgb/keymaps/default/keymap.c @@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/kprepublic/bm80v2/keymaps/default/keymap.c b/keyboards/kprepublic/bm80v2/keymaps/default/keymap.c index 090d61bed03..dbb11a97f37 100644 --- a/keyboards/kprepublic/bm80v2/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm80v2/keymaps/default/keymap.c @@ -16,7 +16,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_ansi( QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/kprepublic/bm80v2_iso/keymaps/default/keymap.c b/keyboards/kprepublic/bm80v2_iso/keymaps/default/keymap.c index 5cd13af6652..c4ab980dd57 100644 --- a/keyboards/kprepublic/bm80v2_iso/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm80v2_iso/keymaps/default/keymap.c @@ -15,7 +15,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_iso( QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/kprepublic/bm980hsrgb/keymaps/default/keymap.c b/keyboards/kprepublic/bm980hsrgb/keymaps/default/keymap.c index 084ae6e11fd..c80fb02ae5a 100644 --- a/keyboards/kprepublic/bm980hsrgb/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm980hsrgb/keymaps/default/keymap.c @@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/kprepublic/cstc40/keymaps/default/keymap.c b/keyboards/kprepublic/cstc40/keymaps/default/keymap.c index e47ff226a93..4d1be333ce9 100644 --- a/keyboards/kprepublic/cstc40/keymaps/default/keymap.c +++ b/keyboards/kprepublic/cstc40/keymaps/default/keymap.c @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , - RGB_TOG, KC_LCTL, KC_LALT, KC_LGUI, TL_LOWR, KC_SPC, TL_UPPR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + RM_TOGG, KC_LCTL, KC_LALT, KC_LGUI, TL_LOWR, KC_SPC, TL_UPPR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), /* Lower @@ -85,7 +85,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [3] = LAYOUT_planck_mit( - _______, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL, + _______, QK_BOOT, DB_TOGG, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/kuro/kuro65/keymaps/default/keymap.c b/keyboards/kuro/kuro65/keymaps/default/keymap.c index cb8d125a8f7..4224bb8a3e2 100644 --- a/keyboards/kuro/kuro65/keymaps/default/keymap.c +++ b/keyboards/kuro/kuro65/keymaps/default/keymap.c @@ -62,7 +62,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [FN1] = LAYOUT_65_iso( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, - KC_NO, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_NO, KC_NO, KC_NO, KC_HOME, + KC_NO, RM_TOGG, RM_NEXT, RM_PREV, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_NO, KC_NO, KC_NO, KC_HOME, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_END, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MPLY, KC_VOLU, KC_END, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_MPRV, KC_VOLD, KC_MNXT diff --git a/keyboards/laser_ninja/pumpkinpad/keymaps/default/keymap.c b/keyboards/laser_ninja/pumpkinpad/keymaps/default/keymap.c index 8b60519b90f..9250d0d6b86 100644 --- a/keyboards/laser_ninja/pumpkinpad/keymaps/default/keymap.c +++ b/keyboards/laser_ninja/pumpkinpad/keymaps/default/keymap.c @@ -24,8 +24,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F8, MO(1), KC_F10 ), [1] = LAYOUT( - RGB_TOG, RGB_MOD, RGB_RMOD, - RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, - RGB_VAI, RGB_VAD, _______ + RM_TOGG, RM_NEXT, RM_PREV, + RM_HUEU, RM_HUED, RM_SATU, RM_SATD, + RM_VALU, RM_VALD, _______ ) }; diff --git a/keyboards/latincompass/latin17rgb/keymaps/default/keymap.c b/keyboards/latincompass/latin17rgb/keymaps/default/keymap.c index 237f4a6d659..9a421e209d7 100644 --- a/keyboards/latincompass/latin17rgb/keymaps/default/keymap.c +++ b/keyboards/latincompass/latin17rgb/keymaps/default/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P0, KC_PDOT, KC_PENT ), [1] = LAYOUT_numpad_5x4( - RGB_TOG, RGB_MOD, KC_PMNS, _______, + RM_TOGG, RM_NEXT, KC_PMNS, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, _______, _______, _______, diff --git a/keyboards/latincompass/latin60rgb/keymaps/default/keymap.c b/keyboards/latincompass/latin60rgb/keymaps/default/keymap.c index 763f54c00a1..95654d6feb0 100644 --- a/keyboards/latincompass/latin60rgb/keymaps/default/keymap.c +++ b/keyboards/latincompass/latin60rgb/keymaps/default/keymap.c @@ -24,16 +24,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_SPC, KC_PGUP, KC_PGDN ), [1] = LAYOUT_60_latin_hhkb( - RGB_TOG, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + RM_TOGG, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, KC_UP, _______, _______, _______, KC_CALC, _______, KC_INS, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_UP, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, NK_TOGG, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______,_______, KC_LALT, _______, _______, _______, _______ ), [2] = LAYOUT_60_latin_hhkb( - RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, RGB_SPI, RGB_SPD, KC_F11, KC_F12, KC_DEL, - _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, QK_BOOT, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______, + RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, RM_SPDU, RM_SPDD, KC_F11, KC_F12, KC_DEL, + _______, RM_TOGG, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, _______, _______, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/latincompass/latin6rgb/keymaps/default/keymap.c b/keyboards/latincompass/latin6rgb/keymaps/default/keymap.c index 90b96751ef6..efcff4f56ae 100644 --- a/keyboards/latincompass/latin6rgb/keymaps/default/keymap.c +++ b/keyboards/latincompass/latin6rgb/keymaps/default/keymap.c @@ -20,7 +20,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P4, KC_P5, MO(1), KC_P1, KC_P2, KC_P3), [1] = LAYOUT_numpad_2x3( - RGB_TOG, RGB_MOD, MO(1), + RM_TOGG, RM_NEXT, MO(1), AU_ON, AU_OFF, MI_ON), [2] = LAYOUT_numpad_2x3( KC_P4, KC_P5, MO(1), diff --git a/keyboards/latincompass/latinpad/keymaps/default/keymap.c b/keyboards/latincompass/latinpad/keymaps/default/keymap.c index cf966d68269..6d2af556ed3 100644 --- a/keyboards/latincompass/latinpad/keymaps/default/keymap.c +++ b/keyboards/latincompass/latinpad/keymaps/default/keymap.c @@ -17,13 +17,13 @@ * .---------------. * |NUMLOCK|Calc. | * |--------------------------------. - * |RGB_TOG|RGB_MOD|RGB_M_K|RGB_M_X | + * |RM_TOGG|RM_NEXT|RGB_M_K|RGB_M_X | * |-------|-------|-------|--------| - * |RGB_SAI|RGB_SAD|RGB_HUI|RGB_HUD | + * |RM_SATU|RM_SATD|RM_HUEU|RM_HUED | * |-------|-------|-------|--------| - * |RGB_VAI|RGB_VAD|RGB_SPI|RGB_SPD | + * |RM_VALU|RM_VALD|RM_SPDU|RM_SPDD | * |-------|-------|-------|--------| - * |RGB_SPI|RGB_SPD|RGB_TOG|KC_TRNS | + * |RM_SPDU|RM_SPDD|RM_TOGG|KC_TRNS | * .--------------------------------. */ @@ -37,10 +37,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P0, KC_PDOT,KC_DELETE, KC_KP_ENTER), [1] = LAYOUT( KC_NUM, KC_CALCULATOR, - RGB_TOG, RGB_MOD, RGB_M_K, RGB_M_X, - RGB_SAI, RGB_SAD, RGB_HUI, RGB_HUD, - RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, - RGB_SPI, RGB_SPD, RGB_TOG, KC_TRNS), + RM_TOGG, RM_NEXT, RGB_M_K, RGB_M_X, + RM_SATU, RM_SATD, RM_HUEU, RM_HUED, + RM_VALU, RM_VALD, RM_SPDU, RM_SPDD, + RM_SPDU, RM_SPDD, RM_TOGG, KC_TRNS), }; static void render_logo(void) { diff --git a/keyboards/lfkeyboards/lfkpad/keymaps/default/keymap.c b/keyboards/lfkeyboards/lfkpad/keymaps/default/keymap.c index 05f42b8b98e..6a5eae6b261 100644 --- a/keyboards/lfkeyboards/lfkpad/keymaps/default/keymap.c +++ b/keyboards/lfkeyboards/lfkpad/keymaps/default/keymap.c @@ -13,11 +13,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* RGB */ [1] = LAYOUT_numpad_6x4( - RGB_SAI, RGB_VAI, RGB_HUI, _______, - RGB_SAD, RGB_VAD, RGB_HUD, _______, - RGB_M_X, RGB_M_G, RGB_MOD, - RGB_M_SW,RGB_M_SN,RGB_M_K, RGB_RMOD, + RM_SATU, RM_VALU, RM_HUEU, _______, + RM_SATD, RM_VALD, RM_HUED, _______, + RGB_M_X, RGB_M_G, RM_NEXT, + RGB_M_SW,RGB_M_SN,RGB_M_K, RM_PREV, RGB_M_P, RGB_M_B, RGB_M_R, - XXXXXXX, XXXXXXX, RGB_TOG + XXXXXXX, XXXXXXX, RM_TOGG ) }; diff --git a/keyboards/linworks/fave60a/keymaps/default/keymap.c b/keyboards/linworks/fave60a/keymaps/default/keymap.c index 350b9571efe..e683f0c8a60 100644 --- a/keyboards/linworks/fave60a/keymaps/default/keymap.c +++ b/keyboards/linworks/fave60a/keymaps/default/keymap.c @@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_DEL, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; diff --git a/keyboards/linworks/fave84h/keymaps/default/keymap.c b/keyboards/linworks/fave84h/keymaps/default/keymap.c index 64e5dc07d30..3c95786d152 100644 --- a/keyboards/linworks/fave84h/keymaps/default/keymap.c +++ b/keyboards/linworks/fave84h/keymaps/default/keymap.c @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LAYER1] = LAYOUT_tkl_ansi_tsangan_split_bs( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT diff --git a/keyboards/linworks/fave87h/keymaps/default/keymap.c b/keyboards/linworks/fave87h/keymaps/default/keymap.c index f669452b2e5..d3c53b2a0bd 100644 --- a/keyboards/linworks/fave87h/keymaps/default/keymap.c +++ b/keyboards/linworks/fave87h/keymaps/default/keymap.c @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LAYER1] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT diff --git a/keyboards/linworks/favepada/keymaps/default/keymap.c b/keyboards/linworks/favepada/keymaps/default/keymap.c index e17d76109ab..ddeafbb71ec 100644 --- a/keyboards/linworks/favepada/keymaps/default/keymap.c +++ b/keyboards/linworks/favepada/keymaps/default/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P0, KC_PDOT, KC_PENT ), [1] = LAYOUT_numpad_6x4( - KC_TRNS, RGB_TOG, RGB_MOD, KC_D, + KC_TRNS, RM_TOGG, RM_NEXT, KC_D, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_P7, KC_P8, KC_P9, KC_P4, KC_P5, KC_P6, KC_PPLS, diff --git a/keyboards/magic_force/mf17/keymaps/default/keymap.c b/keyboards/magic_force/mf17/keymaps/default/keymap.c index 1ebe11b6d9d..c845d80f133 100755 --- a/keyboards/magic_force/mf17/keymaps/default/keymap.c +++ b/keyboards/magic_force/mf17/keymaps/default/keymap.c @@ -25,8 +25,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P0, KC_PDOT, KC_PENT), [1] = LAYOUT_numpad_5x4( KC_TRNS, KC_CALCULATOR, KC_BSPC, KC_TRNS, - RGB_MOD, RGB_VAI, RGB_HUI, - RGB_SPD, RGB_TOG, RGB_SPI, QK_BOOTLOADER, - RGB_RMOD, RGB_VAD, RGB_HUD, + RM_NEXT, RM_VALU, RM_HUEU, + RM_SPDD, RM_TOGG, RM_SPDU, QK_BOOTLOADER, + RM_PREV, RM_VALD, RM_HUED, KC_TRNS, KC_TRNS, QK_CLEAR_EEPROM), }; \ No newline at end of file diff --git a/keyboards/magic_force/mf34/keymaps/default/keymap.c b/keyboards/magic_force/mf34/keymaps/default/keymap.c index 03135be2264..0ee4db2985f 100755 --- a/keyboards/magic_force/mf34/keymaps/default/keymap.c +++ b/keyboards/magic_force/mf34/keymaps/default/keymap.c @@ -30,10 +30,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [_FN] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOTLOADER, - RGB_TOG, RGB_HUI, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_HUD, RGB_RMOD, KC_TRNS, KC_TRNS, KC_TRNS, + RM_TOGG, RM_HUEU, RM_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_HUED, RM_PREV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, - RGB_SPD, RGB_VAD, RGB_SPI, KC_TRNS, KC_TRNS, QK_CLEAR_EEPROM), + RM_VALU, KC_TRNS, KC_TRNS, KC_TRNS, + RM_SPDD, RM_VALD, RM_SPDU, KC_TRNS, KC_TRNS, QK_CLEAR_EEPROM), }; diff --git a/keyboards/matrix/noah/keymaps/default/keymap.c b/keyboards/matrix/noah/keymaps/default/keymap.c index daa4ae833ab..452867d856c 100644 --- a/keyboards/matrix/noah/keymaps/default/keymap.c +++ b/keyboards/matrix/noah/keymaps/default/keymap.c @@ -13,7 +13,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_CAPS, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT), [1] = LAYOUT_default( KC_BSLS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, - QK_BOOT, RGB_TOG, RGB_MOD, _______, KC_F13, KC_F14, KC_F24, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, UG_TOGG, UG_NEXT, _______, RM_TOGG, RM_NEXT, KC_F24, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, _______), diff --git a/keyboards/matrix/noah/keymaps/iso/keymap.c b/keyboards/matrix/noah/keymaps/iso/keymap.c index fad13f30268..2f57e4b92b5 100644 --- a/keyboards/matrix/noah/keymaps/iso/keymap.c +++ b/keyboards/matrix/noah/keymaps/iso/keymap.c @@ -13,7 +13,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_CAPS, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN,KC_RIGHT), [1] = LAYOUT_iso( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - QK_BOOT, RGB_TOG, RGB_MOD, _______, KC_F13, KC_F14, KC_F24, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, UG_TOGG, UG_NEXT, _______, RM_TOGG, RM_NEXT, KC_F24, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), diff --git a/keyboards/matrix/noah/keymaps/splitspace/keymap.c b/keyboards/matrix/noah/keymaps/splitspace/keymap.c index fe231abb503..c9287123f78 100644 --- a/keyboards/matrix/noah/keymaps/splitspace/keymap.c +++ b/keyboards/matrix/noah/keymaps/splitspace/keymap.c @@ -13,7 +13,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_CAPS, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT), [1] = LAYOUT_default_splitspace( KC_BSLS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, - QK_BOOT, RGB_TOG, RGB_MOD, _______, KC_F13, KC_F14, KC_F24, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, UG_TOGG, UG_NEXT, _______, RM_TOGG, RM_NEXT, KC_F24, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), diff --git a/keyboards/matrix/noah/keymaps/wkl/keymap.c b/keyboards/matrix/noah/keymaps/wkl/keymap.c index dec76f1b374..2e2377f18d2 100644 --- a/keyboards/matrix/noah/keymaps/wkl/keymap.c +++ b/keyboards/matrix/noah/keymaps/wkl/keymap.c @@ -13,7 +13,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_CAPS, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT), [1] = LAYOUT_wkl( KC_BSLS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, - QK_BOOT, RGB_TOG, RGB_MOD, _______, KC_F13, KC_F14, KC_F24, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, UG_TOGG, UG_NEXT, _______, RM_TOGG, RM_NEXT, KC_F24, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), diff --git a/keyboards/matrix/noah/noah.c b/keyboards/matrix/noah/noah.c index 22d159328a4..959490e4f70 100644 --- a/keyboards/matrix/noah/noah.c +++ b/keyboards/matrix/noah/noah.c @@ -95,21 +95,3 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {1, C9_16, C7_15, C6_15}, // RGB5012 }; #endif - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { - switch(keycode) { - #ifdef RGB_MATRIX_ENABLE - case KC_F13: // toggle rgb matrix - rgb_matrix_toggle(); - return false; - case KC_F14: - rgb_matrix_step(); - return false; - #endif - default: - break; - } - } - return process_record_user(keycode, record); -} diff --git a/keyboards/mechlovin/delphine/keymaps/default/keymap.c b/keyboards/mechlovin/delphine/keymaps/default/keymap.c index 81bd4ffdf72..6498b69262c 100644 --- a/keyboards/mechlovin/delphine/keymaps/default/keymap.c +++ b/keyboards/mechlovin/delphine/keymaps/default/keymap.c @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_ortho_6x4( - KC_ESC, BL_STEP, RGB_TOG, RGB_MOD, + KC_ESC, BL_STEP, RM_TOGG, RM_NEXT, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_P4, KC_P5, KC_P6, KC_PEQL, diff --git a/keyboards/mechlovin/infinity875/keymaps/default/keymap.c b/keyboards/mechlovin/infinity875/keymaps/default/keymap.c index 750a94dab57..010038d1134 100644 --- a/keyboards/mechlovin/infinity875/keymaps/default/keymap.c +++ b/keyboards/mechlovin/infinity875/keymaps/default/keymap.c @@ -26,10 +26,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_all( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SAI, RGB_HUI, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SAD, RGB_HUD, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, - KC_TRNS, KC_BSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD, RGB_VAD, RGB_MOD + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SATU, RM_HUEU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SATD, RM_HUED, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_TOGG, + KC_TRNS, KC_BSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_VALU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_PREV, RM_VALD, RM_NEXT ) }; diff --git a/keyboards/mechwild/bbpad/keymaps/default/keymap.json b/keyboards/mechwild/bbpad/keymaps/default/keymap.json index d0e924191b9..33043e41ac1 100644 --- a/keyboards/mechwild/bbpad/keymaps/default/keymap.json +++ b/keyboards/mechwild/bbpad/keymaps/default/keymap.json @@ -12,9 +12,9 @@ ], [ "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "RGB_RMOD", "KC_TRNS", "RGB_MOD", "KC_TRNS", "KC_TRNS", + "RM_PREV", "KC_TRNS", "RM_NEXT", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_NUM", "RGB_TOG" + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_NUM", "RM_TOGG" ] ], "config": { @@ -24,6 +24,6 @@ }, "encoders": [ [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}], - [{"ccw": "RGB_VAD", "cw": "RGB_VAI"}] + [{"ccw": "RM_VALD", "cw": "RM_VALU"}] ] } diff --git a/keyboards/meetlab/kafkasplit/keymaps/default/keymap.c b/keyboards/meetlab/kafkasplit/keymaps/default/keymap.c index db6ccd89125..9cc5d83624d 100644 --- a/keyboards/meetlab/kafkasplit/keymaps/default/keymap.c +++ b/keyboards/meetlab/kafkasplit/keymaps/default/keymap.c @@ -64,7 +64,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| KC_LCTL, XXXXXXX, KC_AMPR, KC_PIPE, KC_BSLS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_TILD, KC_GRV, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| - KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, KC_PERC, XXXXXXX, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_RSFT, + KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, KC_PERC, XXXXXXX, RM_TOGG, RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, KC_RSFT, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| _______, KC_LGUI, _______, KC_SPC, KC_ENT, _______, _______, KC_LALT //`---------------------------------' `-----------------------------------' diff --git a/keyboards/melgeek/mach80/keymaps/default/keymap.c b/keyboards/melgeek/mach80/keymaps/default/keymap.c index 49b67c40b3b..c566d773f12 100755 --- a/keyboards/melgeek/mach80/keymaps/default/keymap.c +++ b/keyboards/melgeek/mach80/keymaps/default/keymap.c @@ -29,8 +29,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_ansi( /* FN */ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, KC_END, _______, - _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, QK_BOOT, _______, KC_INS, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______, + _______, RM_TOGG, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, _______, _______, _______, QK_BOOT, _______, KC_INS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ) diff --git a/keyboards/melgeek/mach80/keymaps/tkl/keymap.c b/keyboards/melgeek/mach80/keymaps/tkl/keymap.c index 3ce16cd7363..732e188e976 100755 --- a/keyboards/melgeek/mach80/keymaps/tkl/keymap.c +++ b/keyboards/melgeek/mach80/keymaps/tkl/keymap.c @@ -29,8 +29,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_ansi( /* FN */ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, KC_END, _______, - _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, QK_BOOT, _______, KC_INS, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______, + _______, RM_TOGG, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, _______, _______, _______, QK_BOOT, _______, KC_INS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ) diff --git a/keyboards/melgeek/mach80/keymaps/wkl/keymap.c b/keyboards/melgeek/mach80/keymaps/wkl/keymap.c index fcaae9338af..3bc9ca064cd 100755 --- a/keyboards/melgeek/mach80/keymaps/wkl/keymap.c +++ b/keyboards/melgeek/mach80/keymaps/wkl/keymap.c @@ -29,8 +29,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_ansi_wkl( /* FN */ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, KC_END, _______, - _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, QK_BOOT, _______, KC_INS, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______, + _______, RM_TOGG, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, _______, _______, _______, QK_BOOT, _______, KC_INS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ) diff --git a/keyboards/melgeek/mj61/keymaps/default/keymap.c b/keyboards/melgeek/mj61/keymaps/default/keymap.c index d11223bd341..a9d237ca1da 100644 --- a/keyboards/melgeek/mj61/keymaps/default/keymap.c +++ b/keyboards/melgeek/mj61/keymaps/default/keymap.c @@ -33,8 +33,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [2] = LAYOUT_60_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______, + _______, RM_TOGG, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/melgeek/mj63/keymaps/default/keymap.c b/keyboards/melgeek/mj63/keymaps/default/keymap.c index 1bac2f819c1..c926cf61b79 100644 --- a/keyboards/melgeek/mj63/keymaps/default/keymap.c +++ b/keyboards/melgeek/mj63/keymaps/default/keymap.c @@ -33,8 +33,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [2] = LAYOUT_60_ansi_arrow( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______, + _______, RM_TOGG, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/melgeek/mj64/keymaps/default/keymap.c b/keyboards/melgeek/mj64/keymaps/default/keymap.c index 775afccbff1..a20a84cabad 100644 --- a/keyboards/melgeek/mj64/keymaps/default/keymap.c +++ b/keyboards/melgeek/mj64/keymaps/default/keymap.c @@ -26,8 +26,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_64_ansi( /* FN */ QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, KC_HOME, KC_PGUP, EE_CLR, + _______, RM_TOGG, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, KC_HOME, KC_PGUP, EE_CLR, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, KC_INS, KC_END, KC_PGDN, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ) diff --git a/keyboards/melgeek/mj65/keymaps/default/keymap.c b/keyboards/melgeek/mj65/keymaps/default/keymap.c index 4e96ba55f13..31ea954fa1e 100644 --- a/keyboards/melgeek/mj65/keymaps/default/keymap.c +++ b/keyboards/melgeek/mj65/keymaps/default/keymap.c @@ -26,8 +26,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_65_ansi( /* FN */ QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, - _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, KC_HOME, _______, EE_CLR, _______, + _______, RM_TOGG, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, KC_HOME, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, KC_INS, KC_END, _______, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ) diff --git a/keyboards/melgeek/mojo68/keymaps/default/keymap.c b/keyboards/melgeek/mojo68/keymaps/default/keymap.c index d5c1d919850..8b9245d639c 100755 --- a/keyboards/melgeek/mojo68/keymaps/default/keymap.c +++ b/keyboards/melgeek/mojo68/keymaps/default/keymap.c @@ -26,8 +26,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_68_ansi( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_PSCR, - _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, KC_HOME, _______, EE_CLR, _______, + _______, RM_TOGG, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, KC_HOME, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, KC_INS, KC_END, KC_MPLY, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ) diff --git a/keyboards/melgeek/mojo75/keymaps/default/keymap.c b/keyboards/melgeek/mojo75/keymaps/default/keymap.c index 730ce55bf61..c287b86fe14 100644 --- a/keyboards/melgeek/mojo75/keymaps/default/keymap.c +++ b/keyboards/melgeek/mojo75/keymaps/default/keymap.c @@ -28,8 +28,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_75_ansi( /* FN */ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, KC_END, - _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, _______, _______, QK_BOOT, KC_INS, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, EE_CLR, _______, + _______, RM_TOGG, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, _______, _______, _______, QK_BOOT, KC_INS, + _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ) diff --git a/keyboards/melgeek/tegic/keymaps/default/keymap.c b/keyboards/melgeek/tegic/keymaps/default/keymap.c index 4c1e241549c..c5edf2821a8 100755 --- a/keyboards/melgeek/tegic/keymaps/default/keymap.c +++ b/keyboards/melgeek/tegic/keymaps/default/keymap.c @@ -28,8 +28,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( /* FN */ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, KC_END, _______, - _______, RGB_TOG, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, _______, QK_BOOT, _______, KC_INS, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, _______, + _______, RM_TOGG, _______, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_NEXT, _______, QK_BOOT, _______, KC_INS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ) diff --git a/keyboards/melgeek/z70ultra/keymaps/default/keymap.c b/keyboards/melgeek/z70ultra/keymaps/default/keymap.c index 29877965728..dbb588efaea 100644 --- a/keyboards/melgeek/z70ultra/keymaps/default/keymap.c +++ b/keyboards/melgeek/z70ultra/keymaps/default/keymap.c @@ -26,8 +26,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_65_ansi_blocker( /* FN */ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, _______, - _______, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, _______, + _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, _______, + _______, RM_SPDU, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ), diff --git a/keyboards/miiiw/blackio83/keymaps/default/keymap.c b/keyboards/miiiw/blackio83/keymaps/default/keymap.c index dc906f7e2c8..9a611417d90 100644 --- a/keyboards/miiiw/blackio83/keymaps/default/keymap.c +++ b/keyboards/miiiw/blackio83/keymaps/default/keymap.c @@ -43,8 +43,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, - _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, + _______, _______, _______, _______, _______, _______, _______, RM_PREV, RM_VALD, RM_NEXT ), /* Keymap MAC_BL: Mac Base Layer @@ -65,7 +65,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, - _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, + _______, _______, _______, _______, _______, _______, _______, RM_PREV, RM_VALD, RM_NEXT ), }; diff --git a/keyboards/miller/gm862/keymaps/default/keymap.c b/keyboards/miller/gm862/keymaps/default/keymap.c index 2eb134f53da..f6c2b264f70 100644 --- a/keyboards/miller/gm862/keymaps/default/keymap.c +++ b/keyboards/miller/gm862/keymaps/default/keymap.c @@ -10,7 +10,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL), [_LAYER1] = LAYOUT_60_ansi( /* FN */ QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL , - KC_TRNS, RGB_TOG, KC_UP, RGB_MOD, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT , + KC_TRNS, RM_TOGG, KC_UP, RM_NEXT, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT , KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, KC_MPRV, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), diff --git a/keyboards/moky/moky67/keymaps/default/keymap.c b/keyboards/moky/moky67/keymaps/default/keymap.c index aab6493c2e9..7a396e12dc0 100644 --- a/keyboards/moky/moky67/keymaps/default/keymap.c +++ b/keyboards/moky/moky67/keymaps/default/keymap.c @@ -15,10 +15,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( /* Base */ KC_GRV, KC_MYCM, KC_WHOM, KC_MAIL, KC_CALC, KC_MSEL, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, - _______, TO(0), TO(2), _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, - _______, GU_TOGG, _______, EE_CLR, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI), + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_NEXT, _______, + _______, TO(0), TO(2), _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, + _______, GU_TOGG, _______, EE_CLR, _______, _______, _______, RM_SPDD, RM_VALD, RM_SPDU), [2] = LAYOUT( /* Base */ KC_ESC, KC_BRMD, KC_BRMU, KC_F3, _______, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_BSPC, _______, @@ -29,10 +29,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [3] = LAYOUT( /* FN */ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, _______, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, - _______, TO(0), TO(2), _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, - _______, _______, _______, EE_CLR, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI), + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_NEXT, _______, + _______, TO(0), TO(2), _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, + _______, _______, _______, EE_CLR, _______, _______, _______, RM_SPDD, RM_VALD, RM_SPDU), }; // clang-format on @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD)}, - [1] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD)}, + [1] = { ENCODER_CCW_CW(RM_PREV, RM_NEXT)}, [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS)}, [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS)}, }; diff --git a/keyboards/moky/moky88/keymaps/default/keymap.c b/keyboards/moky/moky88/keymaps/default/keymap.c index 5b86c306cfd..7ae5e0d8a15 100644 --- a/keyboards/moky/moky88/keymaps/default/keymap.c +++ b/keyboards/moky/moky88/keymaps/default/keymap.c @@ -16,11 +16,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_f13_ansi( /* Base */ _______, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_CALC, KC_WSCH, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, RGB_TOG, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, RGB_MOD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, RM_TOGG, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SATD, RM_SATU, RM_NEXT, _______, _______, _______, _______, TO(0), TO(2), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, - _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_VAD, RGB_HUI), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RM_HUED, RM_VALD, RM_HUEU), [2] = LAYOUT_tkl_f13_ansi( /* Base */ KC_ESC, KC_BRMD, KC_BRMU, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, KC_PSCR, KC_SCRL, KC_PAUSE, @@ -32,17 +32,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [3] = LAYOUT_tkl_f13_ansi( /* FN */ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_PSCR, KC_SCRL, KC_PAUSE, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, RGB_TOG, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, RGB_MOD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, RM_TOGG, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SATD, RM_SATU, RM_NEXT, _______, _______, _______, _______, TO(0), TO(2), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_VAD, RGB_HUI), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, + _______, _______, _______, _______, _______, _______, _______, _______, RM_HUED, RM_VALD, RM_HUEU), }; const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD)}, - [1] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD)}, + [1] = { ENCODER_CCW_CW(RM_PREV, RM_NEXT)}, [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS)}, [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS)}, }; diff --git a/keyboards/monsgeek/m5/keymaps/default/keymap.c b/keyboards/monsgeek/m5/keymaps/default/keymap.c index 6fe98a89d6c..bb10cb9f82f 100644 --- a/keyboards/monsgeek/m5/keymaps/default/keymap.c +++ b/keyboards/monsgeek/m5/keymaps/default/keymap.c @@ -47,11 +47,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [WIN_FN] = LAYOUT( /* FN */ _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______,TG(WIN_WASD),_______,_______,_______,_______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, - _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______,TG(WIN_WASD),_______,_______,_______,_______, _______, _______, DF(MAC_B),_______,_______, _______, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, RM_HUEU, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, _______, _______, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RM_SATD, RM_VALD, RM_SATU, _______, _______), [MAC_B] = LAYOUT( /* Base */ KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU, @@ -70,10 +70,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D, _______, _______), [MAC_FN] = LAYOUT( /* FN */ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______,TG(MAC_WASD),_______,_______,_______,_______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______) + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______,TG(MAC_WASD),_______,_______,_______,_______, _______, _______, DF(WIN_B),_______,_______, _______, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, RM_HUEU, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RM_SATD, RM_VALD, RM_SATU, _______, _______) }; // clang-format on diff --git a/keyboards/monstargear/xo87/rgb/keymaps/default/keymap.c b/keyboards/monstargear/xo87/rgb/keymaps/default/keymap.c index 8e5ab5b6175..175b6c1fab8 100644 --- a/keyboards/monstargear/xo87/rgb/keymaps/default/keymap.c +++ b/keyboards/monstargear/xo87/rgb/keymaps/default/keymap.c @@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_ansi( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/monstargear/xo87/solderable/keymaps/default/keymap.c b/keyboards/monstargear/xo87/solderable/keymaps/default/keymap.c index ba3079afda1..f6f7573e192 100644 --- a/keyboards/monstargear/xo87/solderable/keymaps/default/keymap.c +++ b/keyboards/monstargear/xo87/solderable/keymaps/default/keymap.c @@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_all( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_UP, diff --git a/keyboards/mt/mt64rgb/keymaps/default/keymap.c b/keyboards/mt/mt64rgb/keymaps/default/keymap.c index 6c0d1a83fd7..594311d43d3 100644 --- a/keyboards/mt/mt64rgb/keymaps/default/keymap.c +++ b/keyboards/mt/mt64rgb/keymaps/default/keymap.c @@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_64_ansi( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9 , KC_F10, KC_F11, KC_F12, _______, _______, _______,_______,_______, _______,_______, _______, _______,_______,_______, _______,_______,_______, _______, - RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, _______, _______,_______, _______, + RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_SPDU, RM_SPDD, _______, _______,_______, _______, _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, _______,_______,_______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/mt/mt84/keymaps/default/keymap.c b/keyboards/mt/mt84/keymaps/default/keymap.c index 2b3371257c6..698805ca17e 100644 --- a/keyboards/mt/mt84/keymaps/default/keymap.c +++ b/keyboards/mt/mt84/keymaps/default/keymap.c @@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RGB_TOG, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, _______, _______,_______, _______,_______, + RM_TOGG, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_SPDU, RM_SPDD, _______, _______,_______, _______,_______, _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, _______,_______,_______,_______, _______, _______, _______, _______, KC_TRNS, _______, _______, _______, _______, _______ ) diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/default/keymap.c b/keyboards/mwstudio/mw65_rgb/keymaps/default/keymap.c index 77750b51743..23d476af0e5 100644 --- a/keyboards/mwstudio/mw65_rgb/keymaps/default/keymap.c +++ b/keyboards/mwstudio/mw65_rgb/keymaps/default/keymap.c @@ -21,15 +21,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, RGB_TOG, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, RM_TOGG, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_HUI, - RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_SAD, - _______, _______, _______, _______, RGB_MOD, _______, RGB_SPD, RGB_VAD, RGB_SPI + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RM_HUEU, + RM_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUED, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SATU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, RM_SATD, + _______, _______, _______, _______, RM_NEXT, _______, RM_SPDD, RM_VALD, RM_SPDU ) }; diff --git a/keyboards/mwstudio/mw75/keymaps/default/keymap.c b/keyboards/mwstudio/mw75/keymaps/default/keymap.c index 1a7b9bf0677..e1fbf3f30a6 100644 --- a/keyboards/mwstudio/mw75/keymaps/default/keymap.c +++ b/keyboards/mwstudio/mw75/keymaps/default/keymap.c @@ -20,7 +20,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_VOLD, RGB_TOG, KC_VOLU, + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_VOLD, RM_TOGG, KC_VOLU, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, @@ -30,10 +30,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, - RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_SAD, - _______, _______, _______, _______, RGB_MOD, _______, RGB_SPD, RGB_VAD, RGB_SPI + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUEU, + RM_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUED, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SATU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, RM_SATD, + _______, _______, _______, _______, RM_NEXT, _______, RM_SPDD, RM_VALD, RM_SPDU ), }; diff --git a/keyboards/mwstudio/mw75r2/keymaps/default/keymap.c b/keyboards/mwstudio/mw75r2/keymaps/default/keymap.c index 5976aec91f7..7adb32297e7 100644 --- a/keyboards/mwstudio/mw75r2/keymaps/default/keymap.c +++ b/keyboards/mwstudio/mw75r2/keymaps/default/keymap.c @@ -20,7 +20,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_TOG, + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RM_TOGG, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, @@ -30,10 +30,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, - RGB_TOG, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_SAD, - _______, _______, _______, _______, RGB_MOD, _______, RGB_SPD, RGB_VAD, RGB_SPI + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUEU, + RM_TOGG, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUED, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SATU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, RM_SATD, + _______, _______, _______, _______, RM_NEXT, _______, RM_SPDD, RM_VALD, RM_SPDU ), }; diff --git a/keyboards/nack/keymaps/default/keymap.c b/keyboards/nack/keymaps/default/keymap.c index 79ff514e8cc..08314400584 100644 --- a/keyboards/nack/keymaps/default/keymap.c +++ b/keyboards/nack/keymaps/default/keymap.c @@ -53,13 +53,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* __________________________________________________________________________________________________________________________________________________________________________ | \ \ \ \ \ \ \ \ \ \ \ \ \ \ */ // | |-RGB TOGGLE-|-CHANGE RGB-|-RGB HUE UP-|-RGB SAT UP-|------------|------------|------------|------------|------------|------------|------------|------------|-QK_BOOT KBD--| - RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + RM_TOGG, RM_NEXT, RM_HUEU, RM_SATU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, // | |------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------| MU_TOGG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, // | |------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|-RGB LIGHT +|------------| - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_VAI, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RM_VALU, KC_NO, // | |------------|------------|------------|---FN_1-----|------------|------------|----FN_2----|------------|------------|------------|------------|-RGB LIGHT -|------------| - KC_NO, KC_NO, KC_NO, MO(NUM), KC_NO, KC_NO, TO(BASE), KC_NO, KC_NO, KC_NO, KC_NO, RGB_VAD, KC_NO + KC_NO, KC_NO, KC_NO, MO(NUM), KC_NO, KC_NO, TO(BASE), KC_NO, KC_NO, KC_NO, KC_NO, RM_VALD, KC_NO // \|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________|____________| ) }; diff --git a/keyboards/ning/tiny_board/tb16_rgb/keymaps/default/keymap.c b/keyboards/ning/tiny_board/tb16_rgb/keymaps/default/keymap.c index f8ef14aa93f..6a39460b39c 100644 --- a/keyboards/ning/tiny_board/tb16_rgb/keymaps/default/keymap.c +++ b/keyboards/ning/tiny_board/tb16_rgb/keymaps/default/keymap.c @@ -29,8 +29,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * └───┴───┴───┴───┘ */ [0] = LAYOUT_ortho_4x4( - KC_P7, KC_P8, KC_P9, RGB_TOG, - KC_P4, KC_P5, KC_P6, RGB_MOD, + KC_P7, KC_P8, KC_P9, RM_TOGG, + KC_P4, KC_P5, KC_P6, RM_NEXT, KC_P1, KC_P2, KC_P3, KC_PMNS, KC_P0, KC_PDOT, KC_PENT, KC_PPLS ) diff --git a/keyboards/novelkeys/nk20/keymaps/default/keymap.c b/keyboards/novelkeys/nk20/keymaps/default/keymap.c index 26a066f1504..315f89e8c1f 100644 --- a/keyboards/novelkeys/nk20/keymaps/default/keymap.c +++ b/keyboards/novelkeys/nk20/keymaps/default/keymap.c @@ -26,9 +26,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( /* FN */ KC_NUM, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_SPD, RGB_SPI, KC_TRNS, - RGB_TOG, RGB_MOD, RGB_HUD, KC_TRNS, - RGB_SAD, RGB_SAI, RGB_HUI, - RGB_VAD, RGB_VAI, KC_TRNS, KC_TRNS, + KC_TRNS, RM_SPDD, RM_SPDU, KC_TRNS, + RM_TOGG, RM_NEXT, RM_HUED, KC_TRNS, + RM_SATD, RM_SATU, RM_HUEU, + RM_VALD, RM_VALU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) }; diff --git a/keyboards/novelkeys/nk65b/keymaps/default/keymap.c b/keyboards/novelkeys/nk65b/keymaps/default/keymap.c index 1a2496db27a..d675d70ca52 100755 --- a/keyboards/novelkeys/nk65b/keymaps/default/keymap.c +++ b/keyboards/novelkeys/nk65b/keymaps/default/keymap.c @@ -27,6 +27,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_TOGG, RM_NEXT, RM_HUED, RM_HUEU, RM_SATD, RM_SATU, RM_VALD, RM_VALU, RM_SPDD, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), }; diff --git a/keyboards/novelkeys/nk87b/keymaps/default/keymap.c b/keyboards/novelkeys/nk87b/keymaps/default/keymap.c index 6960d0bdfa8..e43ea201f6f 100644 --- a/keyboards/novelkeys/nk87b/keymaps/default/keymap.c +++ b/keyboards/novelkeys/nk87b/keymaps/default/keymap.c @@ -29,6 +29,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS, + KC_TRNS, RM_TOGG, RM_NEXT, RM_HUED, RM_HUEU, RM_SATD, RM_SATU, RM_VALD, RM_VALU, RM_SPDD, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) }; diff --git a/keyboards/novelkeys/nk_classic_tkl/keymaps/default/keymap.c b/keyboards/novelkeys/nk_classic_tkl/keymaps/default/keymap.c index a0ea79c45f4..6f647f54f97 100644 --- a/keyboards/novelkeys/nk_classic_tkl/keymaps/default/keymap.c +++ b/keyboards/novelkeys/nk_classic_tkl/keymaps/default/keymap.c @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, RGB_SPD, RGB_SPI, _______, _______, + _______, RM_TOGG, RM_NEXT, RM_HUED, RM_HUEU, RM_SATD, RM_SATU, RM_VALD, RM_VALU, RM_SPDD, RM_SPDU, _______, _______, _______, _______, _______, RETRO_RGB, _______, _______, _______, _______, _______, _______), }; diff --git a/keyboards/novelkeys/nk_classic_tkl_iso/keymaps/default/keymap.c b/keyboards/novelkeys/nk_classic_tkl_iso/keymaps/default/keymap.c index 8939cde8a4c..23014881bd4 100644 --- a/keyboards/novelkeys/nk_classic_tkl_iso/keymaps/default/keymap.c +++ b/keyboards/novelkeys/nk_classic_tkl_iso/keymaps/default/keymap.c @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, RGB_SPD, RGB_SPI, _______, _______, + _______, _______, RM_TOGG, RM_NEXT, RM_HUED, RM_HUEU, RM_SATD, RM_SATU, RM_VALD, RM_VALU, RM_SPDD, RM_SPDU, _______, _______, _______, _______, _______, RETRO_RGB, _______, _______, _______, _______, _______, _______), }; diff --git a/keyboards/novelkeys/nk_plus/keymaps/default/keymap.c b/keyboards/novelkeys/nk_plus/keymaps/default/keymap.c index 358ea8b18ba..b5ac4486664 100644 --- a/keyboards/novelkeys/nk_plus/keymaps/default/keymap.c +++ b/keyboards/novelkeys/nk_plus/keymaps/default/keymap.c @@ -27,6 +27,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, RM_TOGG, RM_NEXT, RM_HUED, RM_HUEU, RM_SATD, RM_SATU, RM_VALD, RM_VALU, RM_SPDD, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) }; diff --git a/keyboards/orthograph/keymaps/default/keymap.json b/keyboards/orthograph/keymaps/default/keymap.json index 8d2f53c71a8..128016b7421 100644 --- a/keyboards/orthograph/keymaps/default/keymap.json +++ b/keyboards/orthograph/keymaps/default/keymap.json @@ -18,7 +18,7 @@ "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_INS", "KC_HOME", "KC_PGUP", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_DEL", "KC_END", "KC_PGDN", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_MOD","KC_TRNS", "RGB_TOG", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_NEXT","KC_TRNS", "RM_TOGG", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" ] ] } \ No newline at end of file diff --git a/keyboards/owlab/voice65/hotswap/keymaps/default/keymap.c b/keyboards/owlab/voice65/hotswap/keymaps/default/keymap.c index 5d640c162b2..d189bc66f6e 100644 --- a/keyboards/owlab/voice65/hotswap/keymaps/default/keymap.c +++ b/keyboards/owlab/voice65/hotswap/keymaps/default/keymap.c @@ -28,9 +28,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_65_ansi_blocker( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, QK_BOOT, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_HOME, + KC_TRNS, UG_TOGG, UG_NEXT, UG_PREV, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_HOME, KC_TRNS, KC_VOLU, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, - KC_TRNS, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_TRNS, KC_TRNS, KC_F22, KC_TRNS, + KC_TRNS, RM_TOGG, RM_NEXT, RM_PREV, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_TRNS, KC_F22, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F23, KC_TRNS ), [2] = LAYOUT_65_ansi_blocker( diff --git a/keyboards/owlab/voice65/soldered/keymaps/default/keymap.c b/keyboards/owlab/voice65/soldered/keymaps/default/keymap.c index 5d640c162b2..fc92357cf51 100644 --- a/keyboards/owlab/voice65/soldered/keymaps/default/keymap.c +++ b/keyboards/owlab/voice65/soldered/keymaps/default/keymap.c @@ -28,9 +28,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_65_ansi_blocker( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, QK_BOOT, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_HOME, + KC_TRNS, RM_TOGG, RM_NEXT, RM_PREV, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_HOME, KC_TRNS, KC_VOLU, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, - KC_TRNS, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_TRNS, KC_TRNS, KC_F22, KC_TRNS, + KC_TRNS, UG_TOGG, UG_NEXT, UG_PREV, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, KC_TRNS, KC_TRNS, KC_F22, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F23, KC_TRNS ), [2] = LAYOUT_65_ansi_blocker( diff --git a/keyboards/paprikman/albacore/keymaps/default/keymap.c b/keyboards/paprikman/albacore/keymaps/default/keymap.c index 022250caf10..9d50ba024e4 100644 --- a/keyboards/paprikman/albacore/keymaps/default/keymap.c +++ b/keyboards/paprikman/albacore/keymaps/default/keymap.c @@ -21,7 +21,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { MO(1), KC_MPRV, KC_MPLY, KC_MNXT ), [1] = LAYOUT( - RGB_TOG, RGB_MOD, RGB_VAI, - _______, RGB_SPI, RGB_SPD, RGB_VAD + RM_TOGG, RM_NEXT, RM_VALU, + _______, RM_SPDU, RM_SPDD, RM_VALD ), }; diff --git a/keyboards/percent/canoe_gen2/keymaps/default/keymap.c b/keyboards/percent/canoe_gen2/keymaps/default/keymap.c index a434fd184a9..a21efb23226 100644 --- a/keyboards/percent/canoe_gen2/keymaps/default/keymap.c +++ b/keyboards/percent/canoe_gen2/keymaps/default/keymap.c @@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, - _______, _______, _______, _______, RGB_MOD, _______, _______, _______, _______), + _______, RM_TOGG, RM_NEXT, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, + _______, _______, _______, _______, RM_NEXT, _______, _______, _______, _______), }; diff --git a/keyboards/phase_studio/titan65/hotswap/keymaps/default/keymap.c b/keyboards/phase_studio/titan65/hotswap/keymaps/default/keymap.c index 5da05af159a..5885b934827 100644 --- a/keyboards/phase_studio/titan65/hotswap/keymaps/default/keymap.c +++ b/keyboards/phase_studio/titan65/hotswap/keymaps/default/keymap.c @@ -26,8 +26,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT( KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, - _______, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RM_PREV, RM_HUED, RM_SATD, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/phentech/rpk_001/keymaps/default/keymap.c b/keyboards/phentech/rpk_001/keymaps/default/keymap.c index b07a7f64c05..3cc983f7076 100644 --- a/keyboards/phentech/rpk_001/keymaps/default/keymap.c +++ b/keyboards/phentech/rpk_001/keymaps/default/keymap.c @@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RM_TOGG, RM_NEXT, RM_PREV, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/pimoroni/keybow2040/keymaps/default/keymap.json b/keyboards/pimoroni/keybow2040/keymaps/default/keymap.json index 8f26d6c78fe..e099c287333 100644 --- a/keyboards/pimoroni/keybow2040/keymaps/default/keymap.json +++ b/keyboards/pimoroni/keybow2040/keymaps/default/keymap.json @@ -15,8 +15,8 @@ [ "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", "KC_TRANSPARENT", - "RGB_SAD", "RGB_SAI", "RGB_HUD", "RGB_HUI", - "KC_TRANSPARENT", "RGB_TOG", "RGB_RMOD", "RGB_MOD", + "RM_SATD", "RM_SATU", "RM_HUED", "RM_HUEU", + "KC_TRANSPARENT", "RM_TOGG", "RM_PREV", "RM_NEXT", "TO(0)" ] ] diff --git a/keyboards/playkbtw/pk64rgb/keymaps/default/keymap.c b/keyboards/playkbtw/pk64rgb/keymaps/default/keymap.c index 1b3b6fe1023..ee8e4e0967a 100644 --- a/keyboards/playkbtw/pk64rgb/keymaps/default/keymap.c +++ b/keyboards/playkbtw/pk64rgb/keymaps/default/keymap.c @@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_64_ansi( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9 , KC_F10, KC_F11, KC_F12, _______, _______, _______,_______,_______, _______,_______, _______, _______,_______,_______, _______,_______,_______, _______, - RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, _______, _______,_______, _______, + RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_SPDU, RM_SPDD, _______, _______,_______, _______, _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, _______,_______,_______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/projectd/65/projectd_65_ansi/keymaps/default/keymap.c b/keyboards/projectd/65/projectd_65_ansi/keymaps/default/keymap.c index e7a34d3467d..f8700f624b1 100644 --- a/keyboards/projectd/65/projectd_65_ansi/keymaps/default/keymap.c +++ b/keyboards/projectd/65/projectd_65_ansi/keymaps/default/keymap.c @@ -80,10 +80,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), [1] = LAYOUT( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_TOGG, RM_NEXT, RM_PREV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, RGB_VAI, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI), + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, RM_VALU, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, RM_SPDD, RM_VALD, RM_SPDU), [2] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/projectd/75/ansi/keymaps/default/keymap.c b/keyboards/projectd/75/ansi/keymaps/default/keymap.c index 36e49374819..699f6915daf 100644 --- a/keyboards/projectd/75/ansi/keymaps/default/keymap.c +++ b/keyboards/projectd/75/ansi/keymaps/default/keymap.c @@ -32,10 +32,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, RGB_TOG, RGB_MOD, RGB_RMOD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RM_TOGG, RM_NEXT, RM_PREV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, - _______, _______, _______, _______, MO(2), _______, _______, RGB_SPD, RGB_VAD, RGB_SPI), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, + _______, _______, _______, _______, MO(2), _______, _______, RM_SPDD, RM_VALD, RM_SPDU), [2] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/projectd/75/iso/keymaps/default/keymap.c b/keyboards/projectd/75/iso/keymaps/default/keymap.c index 2f6e6cf3105..e61afe5adac 100644 --- a/keyboards/projectd/75/iso/keymaps/default/keymap.c +++ b/keyboards/projectd/75/iso/keymaps/default/keymap.c @@ -32,10 +32,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, RGB_TOG, RGB_MOD, RGB_RMOD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, RM_TOGG, RM_NEXT, RM_PREV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, - _______, _______, _______, _______, MO(2), _______, _______, RGB_SPD, RGB_VAD, RGB_SPI), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, + _______, _______, _______, _______, MO(2), _______, _______, RM_SPDD, RM_VALD, RM_SPDU), [2] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/protozoa/p01/keymaps/default/keymap.c b/keyboards/protozoa/p01/keymaps/default/keymap.c index 61ef46c9099..949d77902b3 100644 --- a/keyboards/protozoa/p01/keymaps/default/keymap.c +++ b/keyboards/protozoa/p01/keymaps/default/keymap.c @@ -31,7 +31,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, RM_TOGG, RM_NEXT, RM_HUED, RM_HUEU, RM_SATD, RM_SATU, RM_VALD, RM_VALU, RM_SPDD, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) }; diff --git a/keyboards/quarkeys/z40/keymaps/default/keymap.c b/keyboards/quarkeys/z40/keymaps/default/keymap.c index 8a08e47153f..2524fc43ee8 100644 --- a/keyboards/quarkeys/z40/keymaps/default/keymap.c +++ b/keyboards/quarkeys/z40/keymaps/default/keymap.c @@ -45,10 +45,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-------+------+------+------+------+-------------+------+------+------+-------+------' */ [1] = LAYOUT_planck_mit( - QK_BOOT, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, KC_BSLS, KC_7, KC_8, KC_9, RGB_TOG, _______, - _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_PLUS, KC_MINS, KC_4, KC_5, KC_6, RGB_MOD, _______, - _______, KC_VOLD, KC_VOLU, _______, _______, KC_ASTR, KC_SLSH, KC_1, KC_2, KC_3, RGB_HUI, _______, - RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_0, _______, _______, KC_DOT, RGB_HUD, KC_EQL + QK_BOOT, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, KC_BSLS, KC_7, KC_8, KC_9, RM_TOGG, _______, + _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_PLUS, KC_MINS, KC_4, KC_5, KC_6, RM_NEXT, _______, + _______, KC_VOLD, KC_VOLU, _______, _______, KC_ASTR, KC_SLSH, KC_1, KC_2, KC_3, RM_HUEU, _______, + RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, KC_0, _______, _______, KC_DOT, RM_HUED, KC_EQL ), /* [2] diff --git a/keyboards/redragon/k667/keymaps/default/keymap.c b/keyboards/redragon/k667/keymaps/default/keymap.c index d4c2eb964a2..8d1a07592c0 100644 --- a/keyboards/redragon/k667/keymaps/default/keymap.c +++ b/keyboards/redragon/k667/keymaps/default/keymap.c @@ -25,7 +25,7 @@ enum layer_names #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [_FnLay] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, + [_FnLay] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) }, }; #endif @@ -40,10 +40,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_FnLay] = LAYOUT( QK_BOOT, KC_MY_COMPUTER, KC_WWW_HOME, KC_CALCULATOR, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_MAIL, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RM_NEXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAI, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, XXXXXXX, _______, XXXXXXX, RGB_SPD, RGB_VAD, RGB_SPI + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RM_VALU, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, RM_TOGG, XXXXXXX, _______, XXXXXXX, RM_SPDD, RM_VALD, RM_SPDU ) }; diff --git a/keyboards/rgbkb/mun/keymaps/default/keymap.c b/keyboards/rgbkb/mun/keymaps/default/keymap.c index 100e5f745ea..a309aef8099 100644 --- a/keyboards/rgbkb/mun/keymaps/default/keymap.c +++ b/keyboards/rgbkb/mun/keymaps/default/keymap.c @@ -75,9 +75,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LPRN, KC_RPRN, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCBR, KC_RCBR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_SENT, - KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, ADJUST, KC_SPC, KC_DEL, KC_ENT, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,KC_RCTL, + KC_LCTL, KC_LGUI, KC_LALT, RM_TOGG, ADJUST, KC_SPC, KC_DEL, KC_ENT, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,KC_RCTL, - KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV, RGB_HUI, RGB_HUD, RGB_RMOD,RGB_TOG, RGB_MOD + KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV, RM_HUEU, RM_HUED, RM_PREV, RM_TOGG, RM_NEXT ), [_COLEMAK] = LAYOUT( @@ -112,10 +112,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, - _______, RGB_SAD, RGB_VAI, RGB_SAI, QK_BOOT, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, - _______, RGB_HUD, RGB_VAD, RGB_HUI, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, - _______, RGB_SPD, _______, RGB_SPI, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, GAME, - _______, RGB_RMOD,_______, RGB_MOD, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, QWERTY, COLEMAK, + _______, RM_SATD, RM_VALU, RM_SATU, QK_BOOT, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, + _______, RM_HUED, RM_VALD, RM_HUEU, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, + _______, RM_SPDD, _______, RM_SPDU, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, GAME, + _______, RM_PREV, _______, RM_NEXT, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, QWERTY, COLEMAK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/rgbkb/pan/keymaps/default/keymap.c b/keyboards/rgbkb/pan/keymaps/default/keymap.c index 887056723eb..3647ae2ad65 100644 --- a/keyboards/rgbkb/pan/keymaps/default/keymap.c +++ b/keyboards/rgbkb/pan/keymaps/default/keymap.c @@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC, - KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, MO(_ADJ),KC_SPC, KC_SPC, MO(_FN), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT + KC_LCTL, KC_LGUI, KC_LALT, RM_TOGG, MO(_ADJ),KC_SPC, KC_SPC, MO(_FN), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT ), [_COLEMAK] = LAYOUT_all( @@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, FN_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC, KC_ENT, - KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, MO(_ADJ),KC_SPC, KC_SPC, MO(_FN), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT + KC_LCTL, KC_LGUI, KC_LALT, RM_TOGG, MO(_ADJ),KC_SPC, KC_SPC, MO(_FN), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT ), [_FN] = LAYOUT_all( @@ -54,15 +54,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_PGDN, KC_UP, KC_PGUP, _______, _______, _______, KC_PGDN, KC_UP, KC_PGUP, KC_PSCR, KC_HOME, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_END, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, _______, KC_RBRC, _______, _______, _______, - _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, _______ ), [_ADJ] = LAYOUT_all( KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, - _______, RGB_SAD, RGB_VAI, RGB_SAI, QK_BOOT, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, - _______, RGB_HUD, RGB_VAD, RGB_HUI, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, - _______, RGB_SPD, _______, RGB_SPI, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, - _______, _______, _______, RGB_MOD, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, _QWERTY, _COLEMAK + _______, RM_SATD, RM_VALU, RM_SATU, QK_BOOT, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, + _______, RM_HUED, RM_VALD, RM_HUEU, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, + _______, RM_SPDD, _______, RM_SPDU, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, + _______, _______, _______, RM_NEXT, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, _QWERTY, _COLEMAK ) }; diff --git a/keyboards/rgbkb/pan/keymaps/default_eee/keymap.c b/keyboards/rgbkb/pan/keymaps/default_eee/keymap.c index 57b0dafd6a4..2de45d88e67 100644 --- a/keyboards/rgbkb/pan/keymaps/default_eee/keymap.c +++ b/keyboards/rgbkb/pan/keymaps/default_eee/keymap.c @@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SC_RSPC, - KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, MO(_ADJ),KC_SPC, KC_SPC, MO(_FN), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + KC_LCTL, KC_LGUI, KC_LALT, RM_TOGG, MO(_ADJ),KC_SPC, KC_SPC, MO(_FN), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), [_COLEMAK] = LAYOUT_eee( @@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, FN_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, - KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, MO(_ADJ),KC_SPC, KC_SPC, MO(_FN), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + KC_LCTL, KC_LGUI, KC_LALT, RM_TOGG, MO(_ADJ),KC_SPC, KC_SPC, MO(_FN), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), [_FN] = LAYOUT_eee( @@ -54,15 +54,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_PGDN, KC_UP, KC_PGUP, _______, _______, _______, KC_PGDN, KC_UP, KC_PGUP, KC_PSCR, KC_HOME, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_END, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, _______, KC_RBRC, _______, _______, - _______, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, _______ ), [_ADJ] = LAYOUT_eee( KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_PSCR, - _______, RGB_SAD, RGB_VAI, RGB_SAI, QK_BOOT, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, - _______, RGB_HUD, RGB_VAD, RGB_HUI, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, - _______, RGB_SPD, _______, RGB_SPI, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, - _______, _______, _______, RGB_MOD, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, QWERTY, COLEMAK + _______, RM_SATD, RM_VALU, RM_SATU, QK_BOOT, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, + _______, RM_HUED, RM_VALD, RM_HUEU, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, + _______, RM_SPDD, _______, RM_SPDU, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, + _______, _______, _______, RM_NEXT, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, QWERTY, COLEMAK ) }; diff --git a/keyboards/rgbkb/pan/keymaps/default_sss/keymap.c b/keyboards/rgbkb/pan/keymaps/default_sss/keymap.c index a872175c75c..b0b8bd18982 100644 --- a/keyboards/rgbkb/pan/keymaps/default_sss/keymap.c +++ b/keyboards/rgbkb/pan/keymaps/default_sss/keymap.c @@ -59,9 +59,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJ] = LAYOUT_sss( KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, - _______, RGB_SAD, RGB_VAI, RGB_SAI, QK_BOOT, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, - _______, RGB_HUD, RGB_VAD, RGB_HUI, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, - _______, RGB_SPD, _______, RGB_SPI, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, + _______, RM_SATD, RM_VALU, RM_SATU, QK_BOOT, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, + _______, RM_HUED, RM_VALD, RM_HUEU, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, + _______, RM_SPDD, _______, RM_SPDU, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, QWERTY, _______, COLEMAK ) }; diff --git a/keyboards/rot13labs/h4ckb0ard/keymaps/default/keymap.c b/keyboards/rot13labs/h4ckb0ard/keymaps/default/keymap.c index ab938a9b3d1..45f71179895 100755 --- a/keyboards/rot13labs/h4ckb0ard/keymaps/default/keymap.c +++ b/keyboards/rot13labs/h4ckb0ard/keymaps/default/keymap.c @@ -38,8 +38,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* SPC - RGB control layer */ [3] = LAYOUT( - KC_ESC, KC_Q, RGB_M_SW, KC_E, RGB_M_R, KC_T, KC_Y, RGB_SPD, RGB_SPI, RGB_RMOD, RGB_MOD, KC_DEL, - KC_TAB, KC_A, RGB_M_P, KC_D, KC_F, KC_G, KC_H, RGB_SAD, RGB_SAI, RGB_TOG, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, RGB_M_B, KC_N, KC_M, KC_RCTL, RGB_VAI, DF(0), - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, _______, RGB_HUD, RGB_VAD, RGB_HUI), + KC_ESC, KC_Q, RGB_M_SW, KC_E, RGB_M_R, KC_T, KC_Y, RM_SPDD, RM_SPDU, RM_PREV, RM_NEXT, KC_DEL, + KC_TAB, KC_A, RGB_M_P, KC_D, KC_F, KC_G, KC_H, RM_SATD, RM_SATU, RM_TOGG, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, RGB_M_B, KC_N, KC_M, KC_RCTL, RM_VALU, DF(0), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, _______, RM_HUED, RM_VALD, RM_HUEU), }; \ No newline at end of file diff --git a/keyboards/ryanskidmore/rskeys100/keymaps/default/keymap.c b/keyboards/ryanskidmore/rskeys100/keymaps/default/keymap.c index 8b88f90dae1..3d7a3830515 100644 --- a/keyboards/ryanskidmore/rskeys100/keymaps/default/keymap.c +++ b/keyboards/ryanskidmore/rskeys100/keymaps/default/keymap.c @@ -37,8 +37,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALD, _______, _______, _______ ), }; diff --git a/keyboards/s_ol/0xc_pad/keymaps/default/keymap.c b/keyboards/s_ol/0xc_pad/keymaps/default/keymap.c index 562d8950712..15d84b6d72e 100644 --- a/keyboards/s_ol/0xc_pad/keymaps/default/keymap.c +++ b/keyboards/s_ol/0xc_pad/keymaps/default/keymap.c @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( - RGB_RMOD, RGB_MOD, + RM_PREV, RM_NEXT, KC_CUT , KC_COPY, KC_PSTE, KC_PGUP, KC_PGDN, KC_VOLU, KC_VOLD, KC_1 , KC_2 , KC_3 diff --git a/keyboards/sharkoon/skiller_sgk50_s2/keymaps/default/keymap.c b/keyboards/sharkoon/skiller_sgk50_s2/keymaps/default/keymap.c index 01e78f31240..823d779b7f3 100644 --- a/keyboards/sharkoon/skiller_sgk50_s2/keymaps/default/keymap.c +++ b/keyboards/sharkoon/skiller_sgk50_s2/keymaps/default/keymap.c @@ -15,11 +15,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_all( - EE_CLR, KC_MPLY, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_SPD, RGB_SPI, _______, _______, KC_PSCR, KC_SCRL, _______, _______, _______, _______, _______, _______, + EE_CLR, KC_MPLY, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RM_SPDD, RM_SPDU, _______, _______, KC_PSCR, KC_SCRL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, - _______, GU_TOGG, _______, _______, _______, _______, _______, RGB_HUI, RGB_VAD, RGB_MOD, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, _______, _______, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, RM_HUEU, RM_VALD, RM_NEXT, _______, _______ ), }; diff --git a/keyboards/sharkoon/skiller_sgk50_s3/keymaps/default/keymap.c b/keyboards/sharkoon/skiller_sgk50_s3/keymaps/default/keymap.c index dd09e560605..38a52dad284 100644 --- a/keyboards/sharkoon/skiller_sgk50_s3/keymaps/default/keymap.c +++ b/keyboards/sharkoon/skiller_sgk50_s3/keymaps/default/keymap.c @@ -15,10 +15,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_all( EE_CLR, KC_MPLY, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, RGB_SAI, - _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, RM_SATU, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SATD, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, - _______, GU_TOGG, _______, _______, _______, _______, _______, RGB_HUI, RGB_VAD, RGB_MOD + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, RM_HUEU, RM_VALD, RM_NEXT ), }; diff --git a/keyboards/sharkoon/skiller_sgk50_s4/keymaps/default/keymap.c b/keyboards/sharkoon/skiller_sgk50_s4/keymaps/default/keymap.c index 84e72510d79..a8a64d1f2dc 100644 --- a/keyboards/sharkoon/skiller_sgk50_s4/keymaps/default/keymap.c +++ b/keyboards/sharkoon/skiller_sgk50_s4/keymaps/default/keymap.c @@ -14,9 +14,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_all( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - _______, _______, _______, _______, _______, _______, KC_INS, _______, KC_UP, KC_PAUS, KC_PGUP, KC_HOME, KC_PSCR, RGB_VAI, + _______, _______, _______, _______, _______, _______, KC_INS, _______, KC_UP, KC_PAUS, KC_PGUP, KC_HOME, KC_PSCR, RM_VALU, _______, _______, _______, _______, _______, _______, KC_SCRL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, RGB_VAD, _______, - _______, GU_TOGG, _______, _______, _______, _______, RGB_HUI, RGB_MOD + _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, RM_VALD, _______, + _______, GU_TOGG, _______, _______, _______, _______, RM_HUEU, RM_NEXT ) }; diff --git a/keyboards/skeletonkbd/frost68/keymaps/default/keymap.c b/keyboards/skeletonkbd/frost68/keymaps/default/keymap.c index 3d0d6dc794c..be7c414f8aa 100644 --- a/keyboards/skeletonkbd/frost68/keymaps/default/keymap.c +++ b/keyboards/skeletonkbd/frost68/keymaps/default/keymap.c @@ -20,7 +20,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_L1] = LAYOUT( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_PSCR, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_SPDU, RM_SPDD, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LNG2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_TRNS), diff --git a/keyboards/skmt/15k/keymaps/default/keymap.c b/keyboards/skmt/15k/keymaps/default/keymap.c index 74144f71a5a..093a813f952 100644 --- a/keyboards/skmt/15k/keymaps/default/keymap.c +++ b/keyboards/skmt/15k/keymaps/default/keymap.c @@ -19,8 +19,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F1, KC_KP_7, KC_KP_4, KC_KP_1, KC_KP_0 ), [1] = LAYOUT_default( - RGB_TOG,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - RGB_MOD,RGB_HUI,RGB_SAI,RGB_VAI,RGB_SPI, - RGB_RMOD,RGB_HUD,RGB_SAD,RGB_VAD,RGB_SPD + RM_TOGG,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + RM_NEXT,RM_HUEU,RM_SATU,RM_VALU,RM_SPDU, + RM_PREV,RM_HUED,RM_SATD,RM_VALD,RM_SPDD ) }; diff --git a/keyboards/skyloong/dt40/keymaps/default/keymap.c b/keyboards/skyloong/dt40/keymaps/default/keymap.c index c8f828156a9..9f7503930bb 100644 --- a/keyboards/skyloong/dt40/keymaps/default/keymap.c +++ b/keyboards/skyloong/dt40/keymaps/default/keymap.c @@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_O, KC_I, KC_BSPC, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_L, KC_P, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_RSFT, KC_UP, RGB_TOG, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_RSFT, KC_UP, RM_TOGG, KC_LCTL, KC_LALT, KC_SPC, KC_LWIN, KC_SPC, KC_K, KC_SPC, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT ) }; diff --git a/keyboards/skyloong/gk61/v1/keymaps/default/keymap.c b/keyboards/skyloong/gk61/v1/keymaps/default/keymap.c index 4ddb35f6f44..615d66fe6ff 100644 --- a/keyboards/skyloong/gk61/v1/keymaps/default/keymap.c +++ b/keyboards/skyloong/gk61/v1/keymaps/default/keymap.c @@ -36,8 +36,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Fn+ */ [_FN] = LAYOUT_all( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, - RGB_TOG, RGB_VAD, RGB_VAI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLD, KC_VOLU, KC_MUTE, - RGB_MOD, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MPRV, KC_MNXT, KC_MPLY, + RM_TOGG, RM_VALD, RM_VALU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLD, KC_VOLU, KC_MUTE, + RM_NEXT, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MPRV, KC_MNXT, KC_MPLY, KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_UP, KC_RSFT, KC_CALC, KC_MAIL, KC_NO, KC_SPC, KC_SPC, KC_SPC, KC_LEFT, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO ), diff --git a/keyboards/sleepy_craft_studios/sleepy_keeb_split/keymaps/default/keymap.c b/keyboards/sleepy_craft_studios/sleepy_keeb_split/keymaps/default/keymap.c index 65bd5c46097..3ac3ccbfebb 100644 --- a/keyboards/sleepy_craft_studios/sleepy_keeb_split/keymaps/default/keymap.c +++ b/keyboards/sleepy_craft_studios/sleepy_keeb_split/keymaps/default/keymap.c @@ -17,13 +17,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRV, KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(2), KC_UP, KC_DOWN, KC_LEFT, KC_RGHT ), [_RAISE] = LAYOUT_ortho_4x12( - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, RGB_MOD, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, UG_NEXT, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ), [_FN] = LAYOUT_ortho_4x12( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, RGB_TOG, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, UG_TOGG, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY diff --git a/keyboards/smallkeyboard/keymaps/default/keymap.c b/keyboards/smallkeyboard/keymaps/default/keymap.c index 9ab00be05cb..e39fde99c17 100644 --- a/keyboards/smallkeyboard/keymaps/default/keymap.c +++ b/keyboards/smallkeyboard/keymaps/default/keymap.c @@ -20,7 +20,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P1, KC_P2, MO(1), KC_P3, KC_P4, KC_P3), [1] = LAYOUT_ortho_2x3( - RGB_TOG, RGB_MOD, MO(1), + RM_TOGG, RM_NEXT, MO(1), AU_ON, AU_OFF, MI_ON), [2] = LAYOUT_ortho_2x3( KC_P4, KC_P5, MO(1), diff --git a/keyboards/sowbug/68keys/keymaps/default/keymap.c b/keyboards/sowbug/68keys/keymaps/default/keymap.c index b8c34f9525a..0fe7465c884 100644 --- a/keyboards/sowbug/68keys/keymaps/default/keymap.c +++ b/keyboards/sowbug/68keys/keymaps/default/keymap.c @@ -34,13 +34,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────────────┐ ┌────────┬────────┐ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_HOME, //├────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────────────┤ ├────────┼────────┤ - BL_TOGG, BL_STEP, KC_UP, _______, _______, _______, _______, _______, RGB_SPI, KC_PSCR, KC_SCRL, KC_PAUS, _______, KC_BSLS, _______, KC_END, + BL_TOGG, BL_STEP, KC_UP, _______, _______, _______, _______, _______, RM_SPDU, KC_PSCR, KC_SCRL, KC_PAUS, _______, KC_BSLS, _______, KC_END, //├────────────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴────────────┤ └────────┴────────┘ _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_QUOT, KC_ENTER, //├──────────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───────────────────┤ ┌────────┐ - _______, _______, KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, _______, KC_END, _______, RGB_MOD, + _______, _______, KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, _______, KC_END, _______, RM_NEXT, //├──────────┬───────┴──┬─────┴────┬───┴────────┴────────┴────────┴────────┴────────┴──────┬─┴────────┼────────┴─┬──────────┬────┬──────┴─┬────────┼────────┐ - _______, _______, _______, _______, _______, _______, KC_MENU, RGB_VAI, RGB_TOG, RGB_HUI + _______, _______, _______, _______, _______, _______, KC_MENU, RM_VALU, RM_TOGG, RM_HUEU //└──────────┴──────────┴──────────┴───────────────────────────────────────────────────────┴──────────┴──────────┴──────────┘ └────────┴────────┴────────┘ ) diff --git a/keyboards/sowbug/ansi_tkl/keymaps/default/keymap.c b/keyboards/sowbug/ansi_tkl/keymaps/default/keymap.c index 0015ae8c34e..894fd67a7dc 100644 --- a/keyboards/sowbug/ansi_tkl/keymaps/default/keymap.c +++ b/keyboards/sowbug/ansi_tkl/keymaps/default/keymap.c @@ -28,11 +28,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, QK_BOOT , + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, QK_BOOT, _______, BL_TOGG, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_VOLU, - _______, RGB_SPD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, - _______, RGB_RMOD,RGB_VAD, RGB_MOD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_TOG, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, RM_SPDD, RM_VALU, RM_SPDU, RM_HUEU, RM_SATU, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, + _______, RM_PREV, RM_VALD, RM_NEXT, RM_HUED, RM_SATD, _______, _______, _______, _______, _______, _______, _______, + _______, RM_TOGG, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), /* diff --git a/keyboards/spaceholdings/nebula12b/keymaps/default/keymap.c b/keyboards/spaceholdings/nebula12b/keymaps/default/keymap.c index f6c680d095e..d7297e3fa9b 100755 --- a/keyboards/spaceholdings/nebula12b/keymaps/default/keymap.c +++ b/keyboards/spaceholdings/nebula12b/keymaps/default/keymap.c @@ -23,7 +23,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { MO(1), KC_P0, KC_PDOT), [1] = LAYOUT_ortho_4x3( /* FN */ - RGB_TOG, RGB_MOD, KC_TRNS, + RM_TOGG, RM_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PENT) diff --git a/keyboards/spaceholdings/nebula68b/keymaps/default/keymap.c b/keyboards/spaceholdings/nebula68b/keymaps/default/keymap.c index c42ca071f3f..e441b52cab1 100644 --- a/keyboards/spaceholdings/nebula68b/keymaps/default/keymap.c +++ b/keyboards/spaceholdings/nebula68b/keymaps/default/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_68_ansi( /* FN */ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, _______, - _______, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, + _______, RM_TOGG, RM_NEXT, RM_HUED, RM_HUEU, RM_SATD, RM_SATU, RM_VALD, RM_VALU, RM_SPDD, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, KC_VOLD, KC_MUTE, _______, _______, _______, _______, _______, _______, _______) diff --git a/keyboards/spaceholdings/nebula68b/solder/keymaps/default_split_bs/keymap.c b/keyboards/spaceholdings/nebula68b/solder/keymaps/default_split_bs/keymap.c index 68fe5d22fd4..353a36d0189 100755 --- a/keyboards/spaceholdings/nebula68b/solder/keymaps/default_split_bs/keymap.c +++ b/keyboards/spaceholdings/nebula68b/solder/keymaps/default_split_bs/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_68_ansi_split_bs( /* FN */ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, _______, _______, - _______, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, + _______, RM_TOGG, RM_NEXT, RM_HUED, RM_HUEU, RM_SATD, RM_SATU, RM_VALD, RM_VALU, RM_SPDD, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, KC_VOLD, KC_MUTE, _______, _______, _______, _______, _______, _______, _______) diff --git a/keyboards/splitkb/aurora/corne/keymaps/default/keymap.json b/keyboards/splitkb/aurora/corne/keymaps/default/keymap.json index 75918297c5a..8c4861dda3f 100644 --- a/keyboards/splitkb/aurora/corne/keymaps/default/keymap.json +++ b/keyboards/splitkb/aurora/corne/keymaps/default/keymap.json @@ -24,8 +24,8 @@ ], [ "QK_BOOT" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , - "RGB_TOG" , "RGB_HUI" , "RGB_SAI" , "RGB_VAI" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , - "RGB_MOD" , "RGB_HUD" , "RGB_SAD" , "RGB_VAD" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , + "RM_TOGG" , "RM_HUEU" , "RM_SATU" , "RM_VALU" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , + "RM_NEXT" , "RM_HUED" , "RM_SATD" , "RM_VALD" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "KC_LGUI" , "_______" , "KC_SPC" , "KC_ENT" , "_______" , "KC_RALT" ] diff --git a/keyboards/splitkb/aurora/helix/keymaps/default/keymap.json b/keyboards/splitkb/aurora/helix/keymaps/default/keymap.json index bc818a73224..5411d349412 100644 --- a/keyboards/splitkb/aurora/helix/keymaps/default/keymap.json +++ b/keyboards/splitkb/aurora/helix/keymaps/default/keymap.json @@ -43,8 +43,8 @@ "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "_______", "QK_BOOT", "_______", "EE_CLR", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "KC_DEL", "_______", "_______", "_______", "_______", "_______", "AG_NORM", "AG_SWAP", "_______", "_______", "_______", "_______", "_______", - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "RGB_TOG", "RGB_HUI", "RGB_SAI", "RGB_VAI", - "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "RGB_MOD", "RGB_HUD", "RGB_SAD", "RGB_VAD" + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "RM_TOGG", "RM_HUEU", "RM_SATU", "RM_VALU", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "RM_NEXT", "RM_HUED", "RM_SATD", "RM_VALD" ] ], "layout": "LAYOUT", diff --git a/keyboards/splitkb/aurora/lily58/keymaps/default/keymap.json b/keyboards/splitkb/aurora/lily58/keymaps/default/keymap.json index de46093800e..ed1bfcf9e73 100644 --- a/keyboards/splitkb/aurora/lily58/keymaps/default/keymap.json +++ b/keyboards/splitkb/aurora/lily58/keymaps/default/keymap.json @@ -28,8 +28,8 @@ [ "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", - "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RGB_TOG", "RGB_HUI", "RGB_SAI", "RGB_VAI", - "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RGB_MOD", "RGB_HUD", "RGB_SAD", "RGB_VAD", + "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RM_TOGG", "RM_HUEU", "RM_SATU", "RM_VALU", + "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RM_NEXT", "RM_HUED", "RM_SATD", "RM_VALD", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______" ] ], diff --git a/keyboards/splitkb/aurora/sofle_v2/keymaps/default/keymap.json b/keyboards/splitkb/aurora/sofle_v2/keymaps/default/keymap.json index 226952964b9..19146dbde13 100644 --- a/keyboards/splitkb/aurora/sofle_v2/keymaps/default/keymap.json +++ b/keyboards/splitkb/aurora/sofle_v2/keymaps/default/keymap.json @@ -28,8 +28,8 @@ [ "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , - "XXXXXXX" , "RGB_TOG" , "RGB_HUI" , "RGB_SAI" , "RGB_VAI" , "XXXXXXX" , "XXXXXXX" , "KC_VOLD" , "KC_MUTE" , "KC_VOLU" , "XXXXXXX" , "XXXXXXX" , - "XXXXXXX" , "RGB_MOD" , "RGB_HUD" , "RGB_SAD" , "RGB_VAD" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "KC_MPRV" , "KC_MPLY" , "KC_MNXT" , "XXXXXXX" , "XXXXXXX" , + "XXXXXXX" , "RM_TOGG" , "RM_HUEU" , "RM_SATU" , "RM_VALU" , "XXXXXXX" , "XXXXXXX" , "KC_VOLD" , "KC_MUTE" , "KC_VOLU" , "XXXXXXX" , "XXXXXXX" , + "XXXXXXX" , "RM_NEXT" , "RM_HUED" , "RM_SATD" , "RM_VALD" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "XXXXXXX" , "KC_MPRV" , "KC_MPLY" , "KC_MNXT" , "XXXXXXX" , "XXXXXXX" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" , "_______" ] ], diff --git a/keyboards/splitkb/aurora/sweep/keymaps/default/keymap.json b/keyboards/splitkb/aurora/sweep/keymaps/default/keymap.json index ade21d5ece1..1d308d531f8 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/default/keymap.json +++ b/keyboards/splitkb/aurora/sweep/keymaps/default/keymap.json @@ -11,9 +11,9 @@ "KC_P0" , "KC_BSPC" , "LT(7,KC_SPC)" , "KC_P1" ], [ - "RGB_TOG" , "RGB_MOD" , "RGB_HUI" , "RGB_SAI" , "RGB_VAI" , "RGB_SPI" , "KC_BTN1" , "KC_WH_U" , "KC_BTN2" , "KC_TRNS", + "RM_TOGG" , "RM_NEXT" , "RM_HUEU" , "RM_SATU" , "RM_VALU" , "RM_SPDU" , "KC_BTN1" , "KC_WH_U" , "KC_BTN2" , "KC_TRNS", "KC_TRNS" , "KC_BTN2" , "KC_NO" , "KC_BTN1" , "KC_TRNS" , "KC_TRNS" , "KC_MS_L" , "KC_MS_D" , "KC_MS_U" , "KC_MS_R", - "KC_TRNS" , "RGB_RMOD" , "RGB_HUD" , "RGB_SAD" , "RGB_VAD" , "RGB_SPD" , "KC_WH_L" , "KC_WH_D" , "KC_WH_R" , "KC_TRNS", + "KC_TRNS" , "RM_PREV" , "RM_HUED" , "RM_SATD" , "RM_VALD" , "RM_SPDD" , "KC_WH_L" , "KC_WH_D" , "KC_WH_R" , "KC_TRNS", "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" ], [ @@ -26,7 +26,7 @@ "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_UNDS" , "KC_PIPE" , "KC_QUOT" , "KC_TRNS", "KC_CIRC" , "KC_ASTR" , "KC_AMPR" , "KC_NO" , "KC_TRNS" , "KC_HASH" , "KC_TILD" , "KC_SLSH" , "KC_DQUO" , "KC_DLR", "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_MINS" , "KC_BSLS" , "KC_GRV" , "KC_TRNS", - "RGB_RMOD" , "KC_TRNS" , "KC_TRNS" , "RGB_MOD" + "RM_PREV" , "KC_TRNS" , "KC_TRNS" , "RM_NEXT" ], [ "KC_TRNS" , "KC_COLN" , "KC_LT" , "KC_GT" , "KC_SCLN" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS", diff --git a/keyboards/splitkb/kyria/keymaps/default/keymap.c b/keyboards/splitkb/kyria/keymaps/default/keymap.c index dacbc423b2c..55122930787 100644 --- a/keyboards/splitkb/kyria/keymaps/default/keymap.c +++ b/keyboards/splitkb/kyria/keymaps/default/keymap.c @@ -189,8 +189,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT( _______, _______, _______, QWERTY , _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, DVORAK , _______, _______, RGB_TOG, RGB_SAI, RGB_HUI, RGB_VAI, RGB_MOD, _______, - _______, _______, _______, COLEMAK, _______, _______,_______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_VAD, RGB_RMOD, _______, + _______, _______, _______, DVORAK , _______, _______, RM_TOGG, RM_SATU, RM_HUEU, RM_VALU, RM_NEXT, _______, + _______, _______, _______, COLEMAK, _______, _______,_______, _______, _______, _______, _______, RM_SATD, RM_HUED, RM_VALD, RM_PREV, _______, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/stront/keymaps/default/keymap.c b/keyboards/stront/keymaps/default/keymap.c index 793a2495c7c..d9418c50f08 100644 --- a/keyboards/stront/keymaps/default/keymap.c +++ b/keyboards/stront/keymaps/default/keymap.c @@ -98,9 +98,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_SYS] = LAYOUT( - BL_DOWN, BL_UP, BL_TOGG, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, RGB_RMOD, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, - EH_LEFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EH_RGHT, EH_RGHT, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, EH_LEFT, + BL_DOWN, BL_UP, BL_TOGG, XXXXXXX, XXXXXXX, RM_TOGG, RM_NEXT, RM_PREV, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, RGB_M_P, + EH_LEFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EH_RGHT, EH_RGHT, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, EH_LEFT, _______, QK_BOOT, _______, _______, QK_BOOT, _______ ) // clang-format on diff --git a/keyboards/stront/keymaps/hid/keymap.c b/keyboards/stront/keymaps/hid/keymap.c index 11cb89c48ee..806f92f7a98 100644 --- a/keyboards/stront/keymaps/hid/keymap.c +++ b/keyboards/stront/keymaps/hid/keymap.c @@ -90,9 +90,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_SYS] = LAYOUT( - BL_DOWN, BL_UP, BL_TOGG, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, RGB_RMOD, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, - EH_LEFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EH_RGHT, EH_RGHT, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, EH_LEFT, + BL_DOWN, BL_UP, BL_TOGG, XXXXXXX, XXXXXXX, RM_TOGG, RM_NEXT, RM_PREV, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, RGB_M_P, + EH_LEFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EH_RGHT, EH_RGHT, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, EH_LEFT, _______, QK_BOOT, _______, _______, QK_BOOT, _______ ) // clang-format on diff --git a/keyboards/stront/keymaps/i2c/keymap.c b/keyboards/stront/keymaps/i2c/keymap.c index 793a2495c7c..d9418c50f08 100644 --- a/keyboards/stront/keymaps/i2c/keymap.c +++ b/keyboards/stront/keymaps/i2c/keymap.c @@ -98,9 +98,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_SYS] = LAYOUT( - BL_DOWN, BL_UP, BL_TOGG, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, RGB_RMOD, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, - EH_LEFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EH_RGHT, EH_RGHT, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, EH_LEFT, + BL_DOWN, BL_UP, BL_TOGG, XXXXXXX, XXXXXXX, RM_TOGG, RM_NEXT, RM_PREV, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, RGB_M_P, + EH_LEFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EH_RGHT, EH_RGHT, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, EH_LEFT, _______, QK_BOOT, _______, _______, QK_BOOT, _______ ) // clang-format on diff --git a/keyboards/teleport/native/ansi/keymaps/default/keymap.c b/keyboards/teleport/native/ansi/keymaps/default/keymap.c index 692aa49359f..381228f42d7 100644 --- a/keyboards/teleport/native/ansi/keymaps/default/keymap.c +++ b/keyboards/teleport/native/ansi/keymaps/default/keymap.c @@ -42,10 +42,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_FN1] = LAYOUT_75_ansi( /* keymap for layer 2 */ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD, - RGB_TOG, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, - KC_TRNS, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_TOGG, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_PREV, + RM_TOGG, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_NEXT, + KC_TRNS, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(GAME),KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) diff --git a/keyboards/teleport/native/iso/keymaps/default/keymap.c b/keyboards/teleport/native/iso/keymaps/default/keymap.c index 1f226c6358d..1ad7cb1f629 100644 --- a/keyboards/teleport/native/iso/keymaps/default/keymap.c +++ b/keyboards/teleport/native/iso/keymaps/default/keymap.c @@ -42,10 +42,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_FN1] = LAYOUT_75_iso( /* keymap for layer 2 */ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD, - RGB_TOG, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, - KC_TRNS, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_TOGG, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_PREV, + RM_TOGG, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_NEXT, + KC_TRNS, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(GAME),KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), diff --git a/keyboards/tkc/portico/keymaps/default/keymap.c b/keyboards/tkc/portico/keymaps/default/keymap.c index d00d0bbf2c8..e83249bf81f 100644 --- a/keyboards/tkc/portico/keymaps/default/keymap.c +++ b/keyboards/tkc/portico/keymaps/default/keymap.c @@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef RGB_BACKLIGHT_PORTICO [1] = LAYOUT_65_ansi_blocker( QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, - _______, EF_INC, EF_DEC, BR_INC, BR_DEC, H1_INC, H1_DEC, S1_INC, S1_DEC, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, + _______, EF_INC, EF_DEC, BR_INC, BR_DEC, H1_INC, H1_DEC, S1_INC, S1_DEC, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, KC_CAPS, _______, _______, _______, _______, H2_INC, H2_DEC, S2_INC, S2_DEC, _______, _______, _______, _______, KC_PGDN, KC_LSFT, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT @@ -44,8 +44,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #else [1] = LAYOUT_65_ansi_blocker( QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, - KC_CAPS, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, + _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, + KC_CAPS, RM_SPDU, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_LSFT, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ), diff --git a/keyboards/tkc/portico68v2/keymaps/default/keymap.c b/keyboards/tkc/portico68v2/keymaps/default/keymap.c index 6a15b176138..7c190f387f1 100644 --- a/keyboards/tkc/portico68v2/keymaps/default/keymap.c +++ b/keyboards/tkc/portico68v2/keymaps/default/keymap.c @@ -27,8 +27,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_65_ansi_blocker( QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, - KC_CAPS, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, + _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGUP, + KC_CAPS, RM_SPDU, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_LSFT, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ) diff --git a/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c b/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c index c7e12ebbb71..291f98a60e3 100644 --- a/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c +++ b/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c @@ -49,8 +49,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_NAV] = LAYOUT( QK_BOOT, _______, AG_NORM, AG_SWAP, DB_TOGG, KC_TRNS, KC_GRV, KC_PGDN, KC_UP, KC_PGUP, KC_SCLN, - RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, - RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_NO, KC_MINS, KC_INT1, KC_COMM, KC_DOT, KC_BSLS, + RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, KC_NO, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, + RM_NEXT, RM_HUED, RM_SATD, RM_VALD, KC_NO, KC_MINS, KC_INT1, KC_COMM, KC_DOT, KC_BSLS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS ) }; diff --git a/keyboards/treasure/type9s3/keymaps/default/keymap.c b/keyboards/treasure/type9s3/keymaps/default/keymap.c index aecf899e6cf..1c789f3ebad 100644 --- a/keyboards/treasure/type9s3/keymaps/default/keymap.c +++ b/keyboards/treasure/type9s3/keymaps/default/keymap.c @@ -6,15 +6,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_ortho_3x3( - MO(1), KC_MPLY, RGB_TOG, + MO(1), KC_MPLY, RM_TOGG, KC_VOLD, KC_MUTE, KC_VOLU, KC_KP_1, KC_KP_2, KC_KP_3 ), [1] = LAYOUT_ortho_3x3( KC_TRNS, RGB_M_P, MO(2), - RGB_MOD, RGB_HUI, RGB_VAI, - RGB_RMOD, RGB_HUD, RGB_VAD + RM_NEXT, RM_HUEU, RM_VALU, + RM_PREV, RM_HUED, RM_VALD ), [2] = LAYOUT_ortho_3x3( diff --git a/keyboards/tzarc/djinn/keymaps/default/keymap.c b/keyboards/tzarc/djinn/keymaps/default/keymap.c index 972b9c97a67..b63e1624c7b 100644 --- a/keyboards/tzarc/djinn/keymaps/default/keymap.c +++ b/keyboards/tzarc/djinn/keymaps/default/keymap.c @@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_LGUI, MO(_LOWER),KC_SPC, KC_NO, KC_NO, KC_SPC, MO(_RAISE),KC_LALT, - RGB_RMOD, RGB_MOD, + RM_PREV, RM_NEXT, KC_UP, KC_UP, KC_LEFT, _______, KC_RIGHT, KC_LEFT, _______, KC_RIGHT, KC_DOWN, KC_DOWN @@ -64,9 +64,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // clang-format off const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_QWERTY] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [_LOWER] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI), ENCODER_CCW_CW(RGB_SAD, RGB_SAI) }, - [_RAISE] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_SPD, RGB_SPI) }, - [_ADJUST] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(KC_LEFT, KC_RIGHT) }, + [_LOWER] = { ENCODER_CCW_CW(RM_HUED, RM_HUEU), ENCODER_CCW_CW(RM_SATD, RM_SATU) }, + [_RAISE] = { ENCODER_CCW_CW(RM_VALD, RM_VALU), ENCODER_CCW_CW(RM_SPDD, RM_SPDU) }, + [_ADJUST] = { ENCODER_CCW_CW(RM_PREV, RM_NEXT), ENCODER_CCW_CW(KC_LEFT, KC_RIGHT) }, }; // clang-format on diff --git a/keyboards/tzarc/ghoul/keymaps/default/keymap.c b/keyboards/tzarc/ghoul/keymaps/default/keymap.c index 57010c3a7bf..e572e5ab018 100644 --- a/keyboards/tzarc/ghoul/keymaps/default/keymap.c +++ b/keyboards/tzarc/ghoul/keymaps/default/keymap.c @@ -27,25 +27,25 @@ extern void ui_task(void); // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT( - KC_Q, KC_W, KC_E, KC_R, KC_T, RGB_MOD, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_Q, KC_W, KC_E, KC_R, KC_T, RM_NEXT, KC_Y, KC_U, KC_I, KC_O, KC_P, HOME_A, HOME_S, HOME_D, HOME_F, KC_G, KC_H, HOME_J, HOME_K, HOME_L, HOME_SCLN, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ESC, KC_LCTL, KC_LGUI, KC_SPC, LOWER, RAISE, KC_SPC, KC_LALT, KC_BSPC, SC_SENT ), [_LOWER] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), [_RAISE] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), [_ADJUST] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, KC_TRNS, KC_TRNS, DB_TOGG, EE_CLR, QK_BOOT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_NEXT, KC_TRNS, KC_TRNS, DB_TOGG, EE_CLR, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS @@ -54,10 +54,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // clang-format on const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_QWERTY] = {ENCODER_CCW_CW(RGB_HUI, RGB_HUD)}, - [_LOWER] = {ENCODER_CCW_CW(RGB_HUI, RGB_HUD)}, - [_RAISE] = {ENCODER_CCW_CW(RGB_HUI, RGB_HUD)}, - [_ADJUST] = {ENCODER_CCW_CW(RGB_HUI, RGB_HUD)}, + [_QWERTY] = {ENCODER_CCW_CW(RM_HUEU, RM_HUED)}, + [_LOWER] = {ENCODER_CCW_CW(RM_HUEU, RM_HUED)}, + [_RAISE] = {ENCODER_CCW_CW(RM_HUEU, RM_HUED)}, + [_ADJUST] = {ENCODER_CCW_CW(RM_HUEU, RM_HUED)}, }; layer_state_t layer_state_set_user(layer_state_t state) { diff --git a/keyboards/ungodly/launch_pad/keymaps/default/keymap.c b/keyboards/ungodly/launch_pad/keymaps/default/keymap.c index fb7a1e90be3..701e3f6dc9a 100644 --- a/keyboards/ungodly/launch_pad/keymaps/default/keymap.c +++ b/keyboards/ungodly/launch_pad/keymaps/default/keymap.c @@ -118,10 +118,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-------------------' */ [2] = LAYOUT_ortho_5x4( - KC_LUP, XXXXXXX, XXXXXXX, RGB_TOG, - RGB_HUD, RGB_HUI, XXXXXXX, RGB_M_P, - RGB_SAD, RGB_SAI, XXXXXXX, RGB_MOD, - RGB_VAD, RGB_VAI, XXXXXXX, XXXXXXX, + KC_LUP, XXXXXXX, XXXXXXX, RM_TOGG, + RM_HUED, RM_HUEU, XXXXXXX, RGB_M_P, + RM_SATD, RM_SATU, XXXXXXX, RM_NEXT, + RM_VALD, RM_VALU, XXXXXXX, XXXXXXX, QK_BOOT, QK_BOOT, XXXXXXX, XXXXXXX ), }; diff --git a/keyboards/wekey/we27/keymaps/default/keymap.c b/keyboards/wekey/we27/keymaps/default/keymap.c index cd2d215d2c7..7574c90e7ca 100644 --- a/keyboards/wekey/we27/keymaps/default/keymap.c +++ b/keyboards/wekey/we27/keymaps/default/keymap.c @@ -20,16 +20,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_numpad_6x5( KC_ESC , KC_PWR , KC_SLEP, KC_F11 , KC_MUTE, KC_NUM, KC_BSPC, KC_PSLS, KC_PAST, KC_PMNS, - RGB_MOD, KC_P7 , KC_P8 , KC_P9 , - RGB_RMOD, KC_P4 , KC_P5 , KC_P6 , KC_PPLS, - RGB_TOG, KC_P1 , KC_P2 , KC_P3 , + RM_NEXT, KC_P7 , KC_P8 , KC_P9 , + RM_PREV, KC_P4 , KC_P5 , KC_P6 , KC_PPLS, + RM_TOGG, KC_P1 , KC_P2 , KC_P3 , MO(1) , KC_P0 , KC_PDOT, KC_PENT ), [1] = LAYOUT_numpad_6x5( _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, _______, - RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, - RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, _______, + RM_SPDU, RM_HUEU, RM_SATU, RM_VALU, + RM_SPDD, RM_HUED, RM_SATD, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT ), diff --git a/keyboards/winry/winry315/keymaps/default/keymap.c b/keyboards/winry/winry315/keymaps/default/keymap.c index a0bc2706ca3..d884d08ea41 100644 --- a/keyboards/winry/winry315/keymaps/default/keymap.c +++ b/keyboards/winry/winry315/keymaps/default/keymap.c @@ -25,9 +25,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // RGB configuration [_RGB] = LAYOUT_top( RGB_M_P, RGB_M_B, RGB_M_R, - RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, - RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, - KC_TRNS, RGB_TOG, RGB_M_P, RGB_M_B, RGB_M_R + RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, + RM_PREV, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, + KC_TRNS, RM_TOGG, RGB_M_P, RGB_M_B, RGB_M_R ), }; // clang-format on diff --git a/keyboards/winry/winry315/keymaps/left_numpad/keymap.c b/keyboards/winry/winry315/keymaps/left_numpad/keymap.c index caa8811a5d0..0ee17748141 100644 --- a/keyboards/winry/winry315/keymaps/left_numpad/keymap.c +++ b/keyboards/winry/winry315/keymaps/left_numpad/keymap.c @@ -25,11 +25,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* RGB configuration */ [_RGB] = LAYOUT_left( - RGB_M_R, KC_TRNS, RGB_SPD, RGB_SPI, - RGB_TOG, RGB_HUD, RGB_HUI, - RGB_M_B, RGB_M_P, RGB_SAD, RGB_SAI, - KC_NO, RGB_VAD, RGB_VAI, - RGB_M_P, KC_NUM, RGB_RMOD,RGB_MOD + RGB_M_R, KC_TRNS, RM_SPDD, RM_SPDU, + RM_TOGG, RM_HUED, RM_HUEU, + RGB_M_B, RGB_M_P, RM_SATD, RM_SATU, + KC_NO, RM_VALD, RM_VALU, + RGB_M_P, KC_NUM, RM_PREV, RM_NEXT ), }; // clang-format on diff --git a/keyboards/wolf/m60_b/keymaps/default/keymap.c b/keyboards/wolf/m60_b/keymaps/default/keymap.c index 152ab88b50d..3c0fd2bc36e 100644 --- a/keyboards/wolf/m60_b/keymaps/default/keymap.c +++ b/keyboards/wolf/m60_b/keymaps/default/keymap.c @@ -31,8 +31,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LAYER1] = LAYOUT_60_hhkb( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_PSCR, KC_SCRL, KC_TRNS, KC_TRNS, + KC_TRNS, RM_SPDU, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) diff --git a/keyboards/woodkeys/meira/keymaps/takmiya/keymap.c b/keyboards/woodkeys/meira/keymaps/takmiya/keymap.c index bba1b5583ee..6442000ce13 100644 --- a/keyboards/woodkeys/meira/keymaps/takmiya/keymap.c +++ b/keyboards/woodkeys/meira/keymaps/takmiya/keymap.c @@ -103,7 +103,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT( BL_TOGG, QK_BOOT, _______, KC_MRWD, KC_MPLY, KC_MFFD, KC_PSCR, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL, - BL_STEP, RGB_MOD, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, + BL_STEP, UG_NEXT, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) @@ -191,7 +191,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released #ifdef RGBLIGHT_ENABLE - case RGB_MOD: + case QK_UNDERGLOW_MODE_NEXT: if (record->event.pressed) { rgblight_mode(RGB_current_mode); rgblight_step(); diff --git a/keyboards/xbows/knight/keymaps/default/keymap.c b/keyboards/xbows/knight/keymaps/default/keymap.c index 45f8afa8ff1..33d832f9f84 100644 --- a/keyboards/xbows/knight/keymaps/default/keymap.c +++ b/keyboards/xbows/knight/keymaps/default/keymap.c @@ -42,8 +42,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_MYCM, KC_MSEL, KC_MAIL, NK_TOGG, EE_CLR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NUM, - RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, - KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, + RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, + KC_TRNS, RM_SPDD, RM_VALD, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MPRV, KC_VOLD, KC_MNXT) }; diff --git a/keyboards/xbows/knight_plus/keymaps/default/keymap.c b/keyboards/xbows/knight_plus/keymaps/default/keymap.c index d7b3a65672b..c77980cf5b6 100644 --- a/keyboards/xbows/knight_plus/keymaps/default/keymap.c +++ b/keyboards/xbows/knight_plus/keymaps/default/keymap.c @@ -42,8 +42,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_MYCM, KC_MSEL, KC_MAIL, NK_TOGG, EE_CLR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NUM, - RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, - KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, + RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, + KC_TRNS, RM_SPDD, RM_VALD, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MPRV, KC_VOLD, KC_MNXT) }; diff --git a/keyboards/xbows/nature/keymaps/default/keymap.c b/keyboards/xbows/nature/keymaps/default/keymap.c index 4ce9eaa9644..edd690cdd82 100644 --- a/keyboards/xbows/nature/keymaps/default/keymap.c +++ b/keyboards/xbows/nature/keymaps/default/keymap.c @@ -42,8 +42,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_MYCM, KC_MSEL, KC_MAIL, NK_TOGG, EE_CLR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NUM, - RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, - KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, + RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, + KC_TRNS, RM_SPDD, RM_VALD, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MPRV, KC_VOLD, KC_MNXT) }; diff --git a/keyboards/xbows/numpad/keymaps/default/keymap.c b/keyboards/xbows/numpad/keymaps/default/keymap.c index 177478ef9fa..52c916114f5 100644 --- a/keyboards/xbows/numpad/keymaps/default/keymap.c +++ b/keyboards/xbows/numpad/keymaps/default/keymap.c @@ -42,8 +42,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( QK_BOOT, EE_CLR, KC_TRNS, KC_TRNS, KC_CALC, KC_MYCM, KC_MSEL, KC_MAIL, - RGB_MOD, RGB_VAI, RGB_HUI, KC_VOLD, - RGB_SPD, RGB_TOG, RGB_SPI, KC_VOLU, - KC_TRNS, RGB_VAD, KC_TRNS, KC_TRNS, + RM_NEXT, RM_VALU, RM_HUEU, KC_VOLD, + RM_SPDD, RM_TOGG, RM_SPDU, KC_VOLU, + KC_TRNS, RM_VALD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) }; diff --git a/keyboards/xbows/ranger/keymaps/default/keymap.c b/keyboards/xbows/ranger/keymaps/default/keymap.c index 1cce103f8d3..f0e1d5c6f63 100644 --- a/keyboards/xbows/ranger/keymaps/default/keymap.c +++ b/keyboards/xbows/ranger/keymaps/default/keymap.c @@ -42,8 +42,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_ansi( QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_MYCM, KC_MSEL, KC_MAIL, NK_TOGG, EE_CLR, KC_NUM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_SPDD, RM_VALD, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MPRV, KC_VOLD, KC_MNXT) }; diff --git a/keyboards/xbows/woody/keymaps/default/keymap.c b/keyboards/xbows/woody/keymaps/default/keymap.c index ea2cf42e2ee..062ac97f6cb 100644 --- a/keyboards/xbows/woody/keymaps/default/keymap.c +++ b/keyboards/xbows/woody/keymaps/default/keymap.c @@ -9,8 +9,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [1] = LAYOUT( /* FN */ QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_HOME, - KC_CAPS, RGB_SPI, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_END, + KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_HOME, + KC_CAPS, RM_SPDU, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT) }; diff --git a/keyboards/xelus/pachi/rgb/keymaps/default/keymap.c b/keyboards/xelus/pachi/rgb/keymaps/default/keymap.c index 3f41f8ca402..8031a750d78 100644 --- a/keyboards/xelus/pachi/rgb/keymaps/default/keymap.c +++ b/keyboards/xelus/pachi/rgb/keymaps/default/keymap.c @@ -27,9 +27,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_tkl_ansi_tsangan( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT , RGB_TOG, RGB_HUI, RGB_SAI, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, RGB_HUD, RGB_SAD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, RM_TOGG, RM_HUEU, RM_SATU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_NEXT, RM_HUED, RM_SATD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD,RGB_VAD, RGB_MOD) + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_VALU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_PREV, RM_VALD, RM_NEXT) }; diff --git a/keyboards/xelus/valor/rev2/keymaps/default/keymap.c b/keyboards/xelus/valor/rev2/keymaps/default/keymap.c index af6823a5a48..b51d9d5d3ed 100644 --- a/keyboards/xelus/valor/rev2/keymaps/default/keymap.c +++ b/keyboards/xelus/valor/rev2/keymaps/default/keymap.c @@ -25,8 +25,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_all( - RGB_TOG, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, - RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RM_TOGG, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, + RM_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS diff --git a/keyboards/xiudi/xd60/keymaps/crd_ansi/keymap.c b/keyboards/xiudi/xd60/keymaps/crd_ansi/keymap.c index a5be75c180b..9cd135176cc 100644 --- a/keyboards/xiudi/xd60/keymaps/crd_ansi/keymap.c +++ b/keyboards/xiudi/xd60/keymaps/crd_ansi/keymap.c @@ -23,8 +23,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FL] = LAYOUT_60_ansi( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, KC_HOME, KC_UP, KC_END, _______, _______, _______, _______, KC_MUTE, _______, _______, KC_PGDN, KC_PGUP, QK_BOOT, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_SCRL, KC_VOLD, KC_VOLU, KC_PAUS, _______, _______, RGB_TOG, - _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, RGB_MOD, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_SCRL, KC_VOLD, KC_VOLU, KC_PAUS, _______, _______, UG_TOGG, + _______, _______, _______, _______, _______, _______, _______, _______, UG_VALD, UG_VALU, UG_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/yandrstudio/nz64/keymaps/default/keymap.c b/keyboards/yandrstudio/nz64/keymaps/default/keymap.c index 9283a3f9751..26f9a0c748d 100644 --- a/keyboards/yandrstudio/nz64/keymaps/default/keymap.c +++ b/keyboards/yandrstudio/nz64/keymaps/default/keymap.c @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( KC_GRV , KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, URGB_K, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, URGB_K, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, KC_TRNS, KC_TRNS, KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_TOGG, RM_NEXT, RM_PREV, RM_VALU, RM_VALD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) }; diff --git a/keyboards/yandrstudio/nz67v2/keymaps/default/keymap.c b/keyboards/yandrstudio/nz67v2/keymaps/default/keymap.c index 522b8d1043d..01d3781d4ff 100644 --- a/keyboards/yandrstudio/nz67v2/keymaps/default/keymap.c +++ b/keyboards/yandrstudio/nz67v2/keymaps/default/keymap.c @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_all( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, URGB_K, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, URGB_K, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, KC_TRNS, KC_TRNS, KC_TRNS, GU_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_TOGG, RM_NEXT, RM_PREV, RM_VALU, RM_VALD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) }; diff --git a/keyboards/yandrstudio/tg67/keymaps/default/keymap.c b/keyboards/yandrstudio/tg67/keymaps/default/keymap.c index 17e31d90c51..e5d11b01782 100644 --- a/keyboards/yandrstudio/tg67/keymaps/default/keymap.c +++ b/keyboards/yandrstudio/tg67/keymaps/default/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_TOGG, RM_NEXT, RM_PREV, RM_VALU, RM_VALD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) }; diff --git a/keyboards/ymdk/id75/keymaps/default/keymap.json b/keyboards/ymdk/id75/keymaps/default/keymap.json index cfea8be4947..7d0664c0a6b 100644 --- a/keyboards/ymdk/id75/keymaps/default/keymap.json +++ b/keyboards/ymdk/id75/keymaps/default/keymap.json @@ -16,7 +16,7 @@ [ "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "RGB_MOD", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "RM_NEXT", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "QK_BOOT" ] diff --git a/keyboards/ymdk/ymd09/keymaps/default/keymap.c b/keyboards/ymdk/ymd09/keymaps/default/keymap.c index 035bc079b88..820235abcf3 100644 --- a/keyboards/ymdk/ymd09/keymaps/default/keymap.c +++ b/keyboards/ymdk/ymd09/keymaps/default/keymap.c @@ -21,8 +21,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_KP_4, LT(1, KC_KP_5), KC_KP_6, KC_KP_1, KC_KP_2, KC_KP_3), - [1] = LAYOUT(RGB_RMOD, RGB_VAI, RGB_MOD, - RGB_HUI, KC_TRNS, RGB_SAI, - RGB_HUD, RGB_VAD, RGB_SAD), + [1] = LAYOUT(RM_PREV, RM_VALU, RM_NEXT, + RM_HUEU, KC_TRNS, RM_SATU, + RM_HUED, RM_VALD, RM_SATD), }; diff --git a/keyboards/ymdk/ymd40/air40/keymaps/default/keymap.c b/keyboards/ymdk/ymd40/air40/keymaps/default/keymap.c index b798dce7b2b..ea09ee215ad 100644 --- a/keyboards/ymdk/ymd40/air40/keymaps/default/keymap.c +++ b/keyboards/ymdk/ymd40/air40/keymaps/default/keymap.c @@ -43,8 +43,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ), [_ADJUST] = LAYOUT_ortho_4x12( - QK_BOOT, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, DB_TOGG, - _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, + QK_BOOT, RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, _______, _______, _______, _______, _______, _______, DB_TOGG, + _______, RM_NEXT, RM_HUED, RM_SATD, RM_VALD, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/ymdk/ymd62/keymaps/default/keymap.c b/keyboards/ymdk/ymd62/keymaps/default/keymap.c index 79c128295ef..e5be1d7910a 100644 --- a/keyboards/ymdk/ymd62/keymaps/default/keymap.c +++ b/keyboards/ymdk/ymd62/keymaps/default/keymap.c @@ -14,6 +14,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL , KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT , KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_M_P, KC_TRNS, KC_TRNS, + KC_TRNS, RM_TOGG, RM_NEXT, RM_PREV, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RGB_M_P, KC_TRNS, KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) }; \ No newline at end of file diff --git a/keyboards/ymdk/ymd75/rev4/iso/keymaps/default/keymap.c b/keyboards/ymdk/ymd75/rev4/iso/keymaps/default/keymap.c index 15dc1dc8b70..3f5225c4321 100644 --- a/keyboards/ymdk/ymd75/rev4/iso/keymaps/default/keymap.c +++ b/keyboards/ymdk/ymd75/rev4/iso/keymaps/default/keymap.c @@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_75_iso( QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RM_TOGG, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/yncognito/batpad/keymaps/default/keymap.c b/keyboards/yncognito/batpad/keymaps/default/keymap.c index 6cf40a182ec..26ad7e81eb0 100644 --- a/keyboards/yncognito/batpad/keymaps/default/keymap.c +++ b/keyboards/yncognito/batpad/keymaps/default/keymap.c @@ -19,15 +19,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_ortho_2x4( KC_Q, KC_W, KC_E, KC_R, - KC_LGUI, KC_SPC, RGB_TOG, RGB_MOD + KC_LGUI, KC_SPC, RM_TOGG, RM_NEXT ), [1] = LAYOUT_ortho_2x4( KC_Q, KC_W, KC_E, KC_R, - KC_LGUI, KC_SPC, RGB_TOG, RGB_MOD + KC_LGUI, KC_SPC, RM_TOGG, RM_NEXT ), [2] = LAYOUT_ortho_2x4( KC_Q, KC_W, KC_E, KC_R, - KC_LGUI, KC_SPC, RGB_TOG, RGB_MOD + KC_LGUI, KC_SPC, RM_TOGG, RM_NEXT ), diff --git a/keyboards/yushakobo/quick17/keymaps/default/keymap.c b/keyboards/yushakobo/quick17/keymaps/default/keymap.c index 2bde382cae4..80e1b04ca53 100644 --- a/keyboards/yushakobo/quick17/keymaps/default/keymap.c +++ b/keyboards/yushakobo/quick17/keymaps/default/keymap.c @@ -35,11 +35,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_EDIT2] = LAYOUT( KC_ESC, KC_Q, KC_BTN3,KC_INS, KC_ENT, KC_DEL, KC_LCTL,KC_LBRC,KC_RBRC,KC_PGDN,KC_PGUP,LCTL(KC_Y), - KC_LSFT,TO(3), RGB_TOG,TO(0), _______,KC_NO + KC_LSFT,TO(3), RM_TOGG,TO(0), _______,KC_NO ), [_FN] = LAYOUT( - KC_ESC, KC_LANG,KC_NO, RGB_TOG,KC_MNXT,KC_VOLU, - KC_CAPS,KC_NUM, KC_NO, RGB_MOD,KC_MPRV,KC_VOLD, + KC_ESC, KC_LANG,KC_NO, RM_TOGG,KC_MNXT,KC_VOLU, + KC_CAPS,KC_NUM, KC_NO, RM_NEXT,KC_MPRV,KC_VOLD, CG_NORM,CG_LSWP,EE_CLR, QK_BOOT,TO(0), KC_MUTE ) }; diff --git a/keyboards/ziptyze/lets_split_v3/keymaps/default/keymap.c b/keyboards/ziptyze/lets_split_v3/keymaps/default/keymap.c index d640e1bf234..cd899c8a89e 100644 --- a/keyboards/ziptyze/lets_split_v3/keymaps/default/keymap.c +++ b/keyboards/ziptyze/lets_split_v3/keymaps/default/keymap.c @@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [3] = LAYOUT_ortho_4x12( - _______, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , + _______, QK_BOOT, DB_TOGG, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_DEL , _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/zsa/planck_ez/keymaps/default/keymap.json b/keyboards/zsa/planck_ez/keymaps/default/keymap.json index 4b27cc2970a..b9f0cd2ae4f 100644 --- a/keyboards/zsa/planck_ez/keymaps/default/keymap.json +++ b/keyboards/zsa/planck_ez/keymaps/default/keymap.json @@ -5,7 +5,7 @@ ["KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPC", "KC_ESC", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_LSFT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_ENT", "CW_TOGG", "KC_LCTL", "KC_LALT", "KC_LGUI", "TL_LOWR", "KC_SPC", "TL_UPPR", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RGHT"], ["KC_TILD", "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "KC_BSPC", "KC_DEL", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_UNDS", "KC_PLUS", "KC_LCBR", "KC_RCBR", "KC_PIPE", "KC_TRNS", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "S(KC_NUHS)", "S(KC_NUBS)", "KC_HOME", "KC_END", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MNXT", "KC_VOLD", "KC_VOLU", "KC_MPLY"], ["KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_BSPC", "KC_DEL", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_MINS", "KC_EQL", "KC_LBRC", "KC_RBRC", "KC_BSLS", "KC_TRNS", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "KC_NUHS", "KC_NUBS", "KC_PGUP", "KC_PGDN", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MNXT", "KC_VOLD", "KC_VOLU", "KC_MPLY"], - ["KC_TRNS", "QK_BOOT", "DB_TOGG", "RGB_TOG", "RGB_MOD", "RGB_HUI", "RGB_HUD", "RGB_SAI", "RGB_SAD", "RGB_VAI", "RGB_VAD", "KC_DEL", "KC_TRNS", "KC_TRNS", "MU_NEXT", "AU_ON", "AU_OFF", "AG_NORM", "AG_SWAP", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "AU_PREV", "AU_NEXT", "MU_ON", "MU_OFF", "MI_ON", "MI_OFF", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"] + ["KC_TRNS", "QK_BOOT", "DB_TOGG", "RM_TOGG", "RM_NEXT", "RM_HUEU", "RM_HUED", "RM_SATU", "RM_SATD", "RM_VALU", "RM_VALD", "KC_DEL", "KC_TRNS", "KC_TRNS", "MU_NEXT", "AU_ON", "AU_OFF", "AG_NORM", "AG_SWAP", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "AU_PREV", "AU_NEXT", "MU_ON", "MU_OFF", "MI_ON", "MI_OFF", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"] ], "layout": "LAYOUT_planck_1x2uC", "config": { From 36f306b4a5973568997691b6b820a863bbb6b043 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 24 Nov 2024 20:35:21 +0000 Subject: [PATCH 064/365] Provide method to save a single default layer in the full range of 0-31 (#24639) --- quantum/eeconfig.c | 25 ++++++++++++++++++++----- quantum/eeconfig.h | 5 +++-- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/quantum/eeconfig.c b/quantum/eeconfig.c index ffbbf43a95c..e27f604f124 100644 --- a/quantum/eeconfig.c +++ b/quantum/eeconfig.c @@ -3,7 +3,6 @@ #include #include "eeprom.h" #include "eeconfig.h" -#include "action_layer.h" #if defined(EEPROM_DRIVER) # include "eeprom_driver.h" @@ -52,7 +51,7 @@ void eeconfig_init_quantum(void) { eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); eeprom_update_byte(EECONFIG_DEBUG, 0); default_layer_state = (layer_state_t)1 << 0; - eeprom_update_byte(EECONFIG_DEFAULT_LAYER, default_layer_state); + eeconfig_update_default_layer(default_layer_state); // Enable oneshot and autocorrect by default: 0b0001 0100 0000 0000 eeprom_update_word(EECONFIG_KEYMAP, 0x1400); eeprom_update_byte(EECONFIG_BACKLIGHT, 0); @@ -160,14 +159,30 @@ void eeconfig_update_debug(uint8_t val) { * * FIXME: needs doc */ -uint8_t eeconfig_read_default_layer(void) { - return eeprom_read_byte(EECONFIG_DEFAULT_LAYER); +layer_state_t eeconfig_read_default_layer(void) { + uint8_t val = eeprom_read_byte(EECONFIG_DEFAULT_LAYER); + +#ifdef DEFAULT_LAYER_STATE_IS_VALUE_NOT_BITMASK + // stored as a layer number, so convert back to bitmask + return 1 << val; +#else + // stored as 8-bit-wide bitmask, so read the value directly - handling padding to 16/32 bit layer_state_t + return val; +#endif } /** \brief eeconfig update default layer * * FIXME: needs doc */ -void eeconfig_update_default_layer(uint8_t val) { +void eeconfig_update_default_layer(layer_state_t state) { +#ifdef DEFAULT_LAYER_STATE_IS_VALUE_NOT_BITMASK + // stored as a layer number, so only store the highest layer + uint8_t val = get_highest_layer(state); +#else + // stored as 8-bit-wide bitmask, so write the value directly - handling truncation from 16/32 bit layer_state_t + uint8_t val = state; +#endif + eeprom_update_byte(EECONFIG_DEFAULT_LAYER, val); } diff --git a/quantum/eeconfig.h b/quantum/eeconfig.h index fa0dd799d19..11cf1ccbca8 100644 --- a/quantum/eeconfig.h +++ b/quantum/eeconfig.h @@ -22,6 +22,7 @@ along with this program. If not, see . #include // offsetof #include "eeprom.h" #include "util.h" +#include "action_layer.h" // layer_state_t #ifndef EECONFIG_MAGIC_NUMBER # define EECONFIG_MAGIC_NUMBER (uint16_t)0xFEE5 // When changing, decrement this value to avoid future re-init issues @@ -122,8 +123,8 @@ void eeconfig_disable(void); uint8_t eeconfig_read_debug(void); void eeconfig_update_debug(uint8_t val); -uint8_t eeconfig_read_default_layer(void); -void eeconfig_update_default_layer(uint8_t val); +layer_state_t eeconfig_read_default_layer(void); +void eeconfig_update_default_layer(layer_state_t val); uint16_t eeconfig_read_keymap(void); void eeconfig_update_keymap(uint16_t val); From b7b0eb76a9c3fa9731a90814a225fd1e63d59366 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Wed, 27 Nov 2024 21:19:17 +1100 Subject: [PATCH 065/365] `develop` 2024q4 changelog. (#24638) --- docs/ChangeLog/20241124.md | 122 +++++++++++++++++++++++++++++++ docs/_sidebar.json | 2 +- docs/breaking_changes.md | 20 ++--- docs/breaking_changes_history.md | 1 + 4 files changed, 134 insertions(+), 11 deletions(-) create mode 100644 docs/ChangeLog/20241124.md diff --git a/docs/ChangeLog/20241124.md b/docs/ChangeLog/20241124.md new file mode 100644 index 00000000000..f18c5d981ef --- /dev/null +++ b/docs/ChangeLog/20241124.md @@ -0,0 +1,122 @@ +# QMK Breaking Changes - 2024 November 24 Changelog + +## Notable Features + +November 2024 brings a relatively lightweight QMK release. As with previous cycles, almost all PRs were related to cleanup or re-organization of aspects of QMK. + +One notable item is the removal of `arm_atsam` -- this affects users with `massdrop/ctrl` or `massdrop/alt` keyboards. These have no current replacement, but support for an alternative to the `arm_atsam` backend is nearing completion. Unfortunately the alternative backend didn't make this quarter's list of merges, so there's a temporary removal of these boards. Users who need to build for these targets should stay on the `0.26.x` version of QMK until these boards have been restored. + +## Changes Requiring User Action + +### Updated Keyboard Codebases + +One note with updated keyboard names -- historical keyboard names are still considered valid when using [External Userspace](../newbs_external_userspace) for builds. If you're already using External Userspace, you do not need to move your keymap inside your repository. + +| Old Keyboard Name | New Keyboard Name | +|-------------------|-------------------------| +| saevus/cor | concreteflowers/cor | +| saevus/cor_tkl | concreteflowers/cor_tkl | + +## Deprecation Notices + +In line with the [notice period](../support_deprecation_policy#how-much-advance-notice-will-be-given), deprecation notices for larger items are listed here. + +### RGB Keycode Overhaul ([#23679](https://github.com/qmk/qmk_firmware/pull/23679), [#24484](https://github.com/qmk/qmk_firmware/pull/24484), [#24490](https://github.com/qmk/qmk_firmware/pull/24490)) + +RGB keycodes have been reworked to allow for both rgblight and rgb_matrix to coexist for the handful of boards in the repo with both enabled. Previously, `RGB_xxx` style keycodes were available, but now for rgblight we have `UG_xxx` (underglow), and `RM_xxx` for rgb_matrix. Default keymaps have been updated to reflect whichever system the respective board enables. + +Longer-term, `RGB_xxx` style keycodes will be removed, but for now they act as if they're `UG_xxx`, and `UG_xxx` keycodes act upon both rgblight and rgb_matrix simultaneously. Put simply, the existing `RGB_xxx` keycodes act as they always have, giving users time to transition across to the new keycodes instead. + +### ADNS9800 and PMW33xx sensor firmware ROM removal ([#24428](https://github.com/qmk/qmk_firmware/pull/24428)) + +Following on from the last Breaking Changes cycle, Binary blobs for optical sensors have been removed from the QMK codebase. Hooks allowing users to supply their own have been put in place; users wishing to source firmware blobs and integrate them into their keymap may do so. Doing so renders their firmware un-distributable due to licensing incompatibility with the GPL -- as such user firmware containing such blobs must not be distributed. + +Please get in touch with the QMK team on Discord if your sensor is no longer functional. + +## Full changelist + +Core: +* Refactor F4 ld files to use common files ([#18059](https://github.com/qmk/qmk_firmware/pull/18059)) +* Add LD7032 support to QP. ([#20828](https://github.com/qmk/qmk_firmware/pull/20828)) +* Add combo key repress feature ([#22858](https://github.com/qmk/qmk_firmware/pull/22858)) +* Add Layer Lock feature ([#23430](https://github.com/qmk/qmk_firmware/pull/23430)) +* Added MCU support for ArteryTek AT32F415 ([#23445](https://github.com/qmk/qmk_firmware/pull/23445)) +* Allow codegen of `keymap.json` => `keymap.c` without requiring layers/layout etc. ([#23451](https://github.com/qmk/qmk_firmware/pull/23451)) +* Separate RGBLight/RGB Matrix keycode handling ([#23679](https://github.com/qmk/qmk_firmware/pull/23679)) +* Allow for inverted SPI CS logic ([#23699](https://github.com/qmk/qmk_firmware/pull/23699)) +* Add timer_save and _restore functions. ([#23887](https://github.com/qmk/qmk_firmware/pull/23887)) +* Allow for `get_hardware_id()` to be used for serial number. ([#24053](https://github.com/qmk/qmk_firmware/pull/24053)) +* Segregrate keycode at pre-process record quantum ([#24194](https://github.com/qmk/qmk_firmware/pull/24194)) +* Add ability to poweroff ADNS5050 sensor ([#24223](https://github.com/qmk/qmk_firmware/pull/24223)) +* quantum: util: add bit and bitmask helpers ([#24229](https://github.com/qmk/qmk_firmware/pull/24229)) +* Add new connection keycodes for Bluetooth, 2.4GHz. ([#24251](https://github.com/qmk/qmk_firmware/pull/24251)) +* `usb_device_state`: consolidate usb state handling across implementations ([#24258](https://github.com/qmk/qmk_firmware/pull/24258)) +* Remove global k_rgb_matrix_split ([#24348](https://github.com/qmk/qmk_firmware/pull/24348)) +* util: uf2families: sync with upstream ([#24351](https://github.com/qmk/qmk_firmware/pull/24351)) +* [Maintenance] builddefs: common_rules: overhaul debug information generation ([#24352](https://github.com/qmk/qmk_firmware/pull/24352)) +* Add easier way to set default single layer ([#24376](https://github.com/qmk/qmk_firmware/pull/24376)) +* Tweak OS detect, add OS_DETECTION_SINGLE_REPORT ([#24379](https://github.com/qmk/qmk_firmware/pull/24379)) +* Reinstate global `k_rgb_matrix_split` ([#24388](https://github.com/qmk/qmk_firmware/pull/24388)) +* Bring supported STM32F4 configs in line with F4x1 ([#24413](https://github.com/qmk/qmk_firmware/pull/24413)) +* Extended wheel reports ([#24422](https://github.com/qmk/qmk_firmware/pull/24422)) +* Remove binary blobs from optical sensors. ([#24428](https://github.com/qmk/qmk_firmware/pull/24428)) +* Remove `STM32_PWM_USE_ADVANCED` references ([#24432](https://github.com/qmk/qmk_firmware/pull/24432)) +* Remove `RING_BUFFERED_6KRO_REPORT_ENABLE` due to disuse. ([#24433](https://github.com/qmk/qmk_firmware/pull/24433)) +* Move pointing device driver code ([#24445](https://github.com/qmk/qmk_firmware/pull/24445)) +* Add svlinky converter ([#24449](https://github.com/qmk/qmk_firmware/pull/24449)) +* Update combo user function variable ([#24467](https://github.com/qmk/qmk_firmware/pull/24467)) +* `qmk find`: expand operator support ([#24468](https://github.com/qmk/qmk_firmware/pull/24468)) +* Rename RGB and HSV structs ([#24471](https://github.com/qmk/qmk_firmware/pull/24471)) +* RGBLight: Improve RGB Test animation ([#24477](https://github.com/qmk/qmk_firmware/pull/24477)) +* Change default ARM hardware PWM WS2812 tick frequency to 800kHz ([#24508](https://github.com/qmk/qmk_firmware/pull/24508)) +* Add pointing tests ([#24513](https://github.com/qmk/qmk_firmware/pull/24513)) +* Joystick: add support for 8-way hat switch ([#24515](https://github.com/qmk/qmk_firmware/pull/24515)) +* Refactor Riverflow matrix effect with runner ([#24520](https://github.com/qmk/qmk_firmware/pull/24520)) +* Update Pixel Rain to respect LED range limits ([#24532](https://github.com/qmk/qmk_firmware/pull/24532)) +* Update Jellybean Raindrops to respect LED range limits ([#24534](https://github.com/qmk/qmk_firmware/pull/24534)) +* Refactor Breathing effect with runner ([#24535](https://github.com/qmk/qmk_firmware/pull/24535)) +* Refactor LED Breathing effect with runner ([#24540](https://github.com/qmk/qmk_firmware/pull/24540)) +* Expose rgb_matrix_update_pwm_buffers to be available in keymaps ([#24573](https://github.com/qmk/qmk_firmware/pull/24573)) +* Simple Python script to show polling rate ([#24622](https://github.com/qmk/qmk_firmware/pull/24622)) +* Add keycode PDF(layer) to set the default layer in EEPROM ([#24630](https://github.com/qmk/qmk_firmware/pull/24630)) +* Provide method to save a single default layer in the full range of 0-31 ([#24639](https://github.com/qmk/qmk_firmware/pull/24639)) + +CLI: +* Refactor painter arguments to table instead of commandline ([#24456](https://github.com/qmk/qmk_firmware/pull/24456)) +* `qmk new-keyboard`: separate dev board and MCU selection ([#24548](https://github.com/qmk/qmk_firmware/pull/24548)) +* Bump minimum required Python version ([#24554](https://github.com/qmk/qmk_firmware/pull/24554)) + +Submodule updates: +* Remove `arm_atsam` platform ([#24337](https://github.com/qmk/qmk_firmware/pull/24337)) + +Keyboards: +* add ergodox Community Layout for LAYOUT_ergodox keyboards ([#22963](https://github.com/qmk/qmk_firmware/pull/22963)) +* Cutie Club Fidelity Layout Additions ([#23838](https://github.com/qmk/qmk_firmware/pull/23838)) +* Add Ploopyco functions for host state control ([#23953](https://github.com/qmk/qmk_firmware/pull/23953)) +* Corne rev4 ([#24084](https://github.com/qmk/qmk_firmware/pull/24084)) +* Rename saevus to concreteflowers ([#24249](https://github.com/qmk/qmk_firmware/pull/24249)) +* Remove `60_tsangan_hhkb` community layout ([#24355](https://github.com/qmk/qmk_firmware/pull/24355)) +* add USART configuration to config.h for PS/2 mouse support ([#24398](https://github.com/qmk/qmk_firmware/pull/24398)) +* Add SteelSeries Prime+ mouse ([#24408](https://github.com/qmk/qmk_firmware/pull/24408)) +* Rename RGB/HSV structs: keyboard-level code ([#24476](https://github.com/qmk/qmk_firmware/pull/24476)) +* xiudi/xd002: Remove broken oversized `multilayer_rgb` keymap ([#24480](https://github.com/qmk/qmk_firmware/pull/24480)) +* Update keycodes for keyboards with RGB Matrix ([#24484](https://github.com/qmk/qmk_firmware/pull/24484)) +* Cipulot Updates ([#24539](https://github.com/qmk/qmk_firmware/pull/24539)) +* Update keymaps to use PDF keycode ([#24633](https://github.com/qmk/qmk_firmware/pull/24633)) +* Remove keyboard use of eeconfig_read_default_layer ([#24635](https://github.com/qmk/qmk_firmware/pull/24635)) + +Keyboard fixes: +* Fix rendering of `keymap_config.no_gui` within `led_update_kb` ([#24473](https://github.com/qmk/qmk_firmware/pull/24473)) +* Fix duplication of core `GU_TOGG` keycode ([#24474](https://github.com/qmk/qmk_firmware/pull/24474)) +* keebio/nyquist: Remove invalid I2C config ([#24479](https://github.com/qmk/qmk_firmware/pull/24479)) +* horrortroll/nyx/rev1: Fix compilation of custom RGB effect ([#24481](https://github.com/qmk/qmk_firmware/pull/24481)) + +Others: +* Improve consistency of syntax within `data/constants/keycodes` ([#24528](https://github.com/qmk/qmk_firmware/pull/24528)) + +Bugs: +* WS2812 API rework ([#24364](https://github.com/qmk/qmk_firmware/pull/24364)) +* Backward compatibility for new RGB keycode handling ([#24490](https://github.com/qmk/qmk_firmware/pull/24490)) +* Fix compiliation issues with OS Detection ([#24502](https://github.com/qmk/qmk_firmware/pull/24502)) +* Revert removal of `QK_OUTPUT_AUTO`, fixup docs to reflect. ([#24593](https://github.com/qmk/qmk_firmware/pull/24593)) +* Review fixes for layer lock feature ([#24627](https://github.com/qmk/qmk_firmware/pull/24627)) diff --git a/docs/_sidebar.json b/docs/_sidebar.json index 15c3cbec317..a68516b5de4 100644 --- a/docs/_sidebar.json +++ b/docs/_sidebar.json @@ -205,7 +205,7 @@ { "text": "My Pull Request Was Flagged", "link": "/breaking_changes_instructions" }, { "text": "Most Recent ChangeLog", - "link": "/ChangeLog/20240825" + "link": "/ChangeLog/20241124" }, { "text": "Past Breaking Changes", "link": "/breaking_changes_history" }, { "text": "Deprecation Policy", "link": "/support_deprecation_policy" } diff --git a/docs/breaking_changes.md b/docs/breaking_changes.md index 536fda5fd67..132c5943cc1 100644 --- a/docs/breaking_changes.md +++ b/docs/breaking_changes.md @@ -10,25 +10,25 @@ Practically, this means QMK merges the `develop` branch into the `master` branch ## What has been included in past Breaking Changes? +* [2024 Nov 24](ChangeLog/20241124) * [2024 Aug 25](ChangeLog/20240825) * [2024 May 26](ChangeLog/20240526) -* [2024 Feb 25](ChangeLog/20240225) * [Older Breaking Changes](breaking_changes_history) ## When is the next Breaking Change? -The next Breaking Change is scheduled for November 24, 2024. +The next Breaking Change is scheduled for February 23, 2025. ### Important Dates -* 2024 Aug 25 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions. -* 2024 Oct 27 - `develop` closed to new PRs. -* 2024 Oct 27 - Call for testers. -* 2024 Nov 10 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes -* 2024 Nov 17 - `develop` is locked, only critical bugfix PRs merged. -* 2024 Nov 22 - `master` is locked, no PRs merged. -* 2024 Nov 24 - Merge `develop` to `master`. -* 2024 Nov 24 - `master` is unlocked. PRs can be merged again. +* 2024 Nov 24 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions. +* 2025 Jan 26 - `develop` closed to new PRs. +* 2025 Jan 26 - Call for testers. +* 2025 Feb 9 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes +* 2025 Feb 16 - `develop` is locked, only critical bugfix PRs merged. +* 2024 Nov 21 - `master` is locked, no PRs merged. +* 2025 Feb 23 - Merge `develop` to `master`. +* 2025 Feb 23 - `master` is unlocked. PRs can be merged again. ## What changes will be included? diff --git a/docs/breaking_changes_history.md b/docs/breaking_changes_history.md index 1596aa1f54a..f877f426395 100644 --- a/docs/breaking_changes_history.md +++ b/docs/breaking_changes_history.md @@ -2,6 +2,7 @@ This page links to all previous changelogs from the QMK Breaking Changes process. +* [2024 Nov 24](ChangeLog/20241124) - version 0.27.0 * [2024 Aug 25](ChangeLog/20240825) - version 0.26.0 * [2024 May 26](ChangeLog/20240526) - version 0.25.0 * [2024 Feb 25](ChangeLog/20240225) - version 0.24.0 From eb04b94eecbb9b3e64ca9c74f937b5f762440b17 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Wed, 27 Nov 2024 21:26:34 +1100 Subject: [PATCH 066/365] Merge point for 2024q4 breaking change. --- readme.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/readme.md b/readme.md index e5c0d41b7b3..62aed120662 100644 --- a/readme.md +++ b/readme.md @@ -1,7 +1,3 @@ -# THIS IS THE DEVELOP BRANCH - -Warning- This is the `develop` branch of QMK Firmware. You may encounter broken code here. Please see [Breaking Changes](https://docs.qmk.fm/#/breaking_changes) for more information. - # Quantum Mechanical Keyboard Firmware [![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) From b0ac5bcf915c84fb25c260158fae7e7073e2c7b3 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Wed, 27 Nov 2024 21:31:31 +1100 Subject: [PATCH 067/365] Branch point for 2025q1 breaking change --- readme.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/readme.md b/readme.md index 62aed120662..e5c0d41b7b3 100644 --- a/readme.md +++ b/readme.md @@ -1,3 +1,7 @@ +# THIS IS THE DEVELOP BRANCH + +Warning- This is the `develop` branch of QMK Firmware. You may encounter broken code here. Please see [Breaking Changes](https://docs.qmk.fm/#/breaking_changes) for more information. + # Quantum Mechanical Keyboard Firmware [![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) From 66d0d53dc1041ce148612ccde9da7ec78668ce7a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 28 Nov 2024 19:45:59 +0000 Subject: [PATCH 068/365] Bump JamesIves/github-pages-deploy-action from 4.6.9 to 4.7.1 (#24654) Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.9 to 4.7.1. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.9...v4.7.1) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index e04bcd080b1..95a2cfa3af2 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -56,7 +56,7 @@ jobs: - name: Deploy if: ${{ github.event_name == 'push' && github.repository == 'qmk/qmk_firmware' }} - uses: JamesIves/github-pages-deploy-action@v4.6.9 + uses: JamesIves/github-pages-deploy-action@v4.7.1 with: token: ${{ secrets.GITHUB_TOKEN }} branch: gh-pages From 50491c44ca4651e6c1ba1fabefed96b633cd3cfa Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 29 Nov 2024 21:51:16 +0000 Subject: [PATCH 069/365] moky/moky88: Remove use of deprecated defines (#24656) --- keyboards/moky/moky88/config.h | 3 +- keyboards/moky/moky88/moky88.c | 176 ++++++++++++++++----------------- 2 files changed, 89 insertions(+), 90 deletions(-) diff --git a/keyboards/moky/moky88/config.h b/keyboards/moky/moky88/config.h index a673a38069c..7c102e1a976 100644 --- a/keyboards/moky/moky88/config.h +++ b/keyboards/moky/moky88/config.h @@ -15,5 +15,4 @@ /* RGB Driver */ #define AW20216S_CS_PIN_1 D2 #define AW20216S_CS_PIN_2 B8 -#define AW20216S_EN_PIN_1 B9 -#define AW20216S_EN_PIN_2 B9 +#define AW20216S_EN_PIN B9 diff --git a/keyboards/moky/moky88/moky88.c b/keyboards/moky/moky88/moky88.c index 3cbd6e14681..2de672f94f3 100644 --- a/keyboards/moky/moky88/moky88.c +++ b/keyboards/moky/moky88/moky88.c @@ -23,97 +23,97 @@ const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = { * | | G location * | | | B location * | | | | */ - {0, CS18_SW2, CS17_SW2, CS16_SW2 }, // 0 Esc - {0, CS18_SW3, CS17_SW3, CS16_SW3 }, // 1 F1 - {0, CS18_SW4, CS17_SW4, CS16_SW4 }, // 2 F2 - {0, CS18_SW5, CS17_SW5, CS16_SW5 }, // 3 F3 - {0, CS18_SW6, CS17_SW6, CS16_SW6 }, // 4 F4 - {0, CS18_SW7, CS17_SW7, CS16_SW7 }, // 5 F5 - {0, CS18_SW8, CS17_SW8, CS16_SW8 }, // 6 F6 - {0, CS18_SW9, CS17_SW9, CS16_SW9 }, // 7 F7 - {0, CS18_SW10, CS17_SW10, CS16_SW10 }, // 8 F8 - {0, CS18_SW11, CS17_SW11, CS16_SW11 }, // 9 F9 - {0, CS18_SW12, CS17_SW12, CS16_SW12 }, // 10 F10 - {1, CS18_SW1, CS17_SW1, CS16_SW1 }, // 11 F11 - {1, CS18_SW2, CS17_SW2, CS16_SW2 }, // 12 F12 - {1, CS18_SW3, CS17_SW3, CS16_SW3 }, // 13 MUTE - {1, CS18_SW4, CS17_SW4, CS16_SW4 }, // 14 PSCR - {1, CS18_SW5, CS17_SW5, CS16_SW5 }, // 15 SCRL - {1, CS18_SW6, CS17_SW6, CS16_SW6 }, // 16 PAUSE + {0, SW2_CS18, SW2_CS17, SW2_CS16 }, // 0 Esc + {0, SW3_CS18, SW3_CS17, SW3_CS16 }, // 1 F1 + {0, SW4_CS18, SW4_CS17, SW4_CS16 }, // 2 F2 + {0, SW5_CS18, SW5_CS17, SW5_CS16 }, // 3 F3 + {0, SW6_CS18, SW6_CS17, SW6_CS16 }, // 4 F4 + {0, SW7_CS18, SW7_CS17, SW7_CS16 }, // 5 F5 + {0, SW8_CS18, SW8_CS17, SW8_CS16 }, // 6 F6 + {0, SW9_CS18, SW9_CS17, SW9_CS16 }, // 7 F7 + {0, SW10_CS18, SW10_CS17, SW10_CS16 }, // 8 F8 + {0, SW11_CS18, SW11_CS17, SW11_CS16 }, // 9 F9 + {0, SW12_CS18, SW12_CS17, SW12_CS16 }, // 10 F10 + {1, SW1_CS18, SW1_CS17, SW1_CS16 }, // 11 F11 + {1, SW2_CS18, SW2_CS17, SW2_CS16 }, // 12 F12 + {1, SW3_CS18, SW3_CS17, SW3_CS16 }, // 13 MUTE + {1, SW4_CS18, SW4_CS17, SW4_CS16 }, // 14 PSCR + {1, SW5_CS18, SW5_CS17, SW5_CS16 }, // 15 SCRL + {1, SW6_CS18, SW6_CS17, SW6_CS16 }, // 16 PAUSE - {0, CS15_SW2, CS14_SW2, CS13_SW2 }, // 17 `~ - {0, CS15_SW3, CS14_SW3, CS13_SW3 }, // 18 1 - {0, CS15_SW4, CS14_SW4, CS13_SW4 }, // 19 2 - {0, CS15_SW5, CS14_SW5, CS13_SW5 }, // 20 3 - {0, CS15_SW6, CS14_SW6, CS13_SW6 }, // 21 4 - {0, CS15_SW7, CS14_SW7, CS13_SW7 }, // 22 5 - {0, CS15_SW8, CS14_SW8, CS13_SW8 }, // 23 6 - {0, CS15_SW9, CS14_SW9, CS13_SW9 }, // 24 7 - {0, CS15_SW10, CS14_SW10, CS13_SW10 }, // 25 8 - {0, CS15_SW11, CS14_SW11, CS13_SW11 }, // 26 9 - {0, CS15_SW12, CS14_SW12, CS13_SW12 }, // 27 0 - {1, CS15_SW1, CS14_SW1, CS13_SW1 }, // 28 -_ - {1, CS15_SW2, CS14_SW2, CS13_SW2 }, // 29 =+ - {1, CS15_SW3, CS14_SW3, CS13_SW3 }, // 30 BSPC - {1, CS15_SW4, CS14_SW4, CS13_SW4 }, // 31 INS - {1, CS15_SW5, CS14_SW5, CS13_SW5 }, // 32 HOME - {1, CS15_SW6, CS14_SW6, CS13_SW6 }, // 33 PGUP + {0, SW2_CS15, SW2_CS14, SW2_CS13 }, // 17 `~ + {0, SW3_CS15, SW3_CS14, SW3_CS13 }, // 18 1 + {0, SW4_CS15, SW4_CS14, SW4_CS13 }, // 19 2 + {0, SW5_CS15, SW5_CS14, SW5_CS13 }, // 20 3 + {0, SW6_CS15, SW6_CS14, SW6_CS13 }, // 21 4 + {0, SW7_CS15, SW7_CS14, SW7_CS13 }, // 22 5 + {0, SW8_CS15, SW8_CS14, SW8_CS13 }, // 23 6 + {0, SW9_CS15, SW9_CS14, SW9_CS13 }, // 24 7 + {0, SW10_CS15, SW10_CS14, SW10_CS13 }, // 25 8 + {0, SW11_CS15, SW11_CS14, SW11_CS13 }, // 26 9 + {0, SW12_CS15, SW12_CS14, SW12_CS13 }, // 27 0 + {1, SW1_CS15, SW1_CS14, SW1_CS13 }, // 28 -_ + {1, SW2_CS15, SW2_CS14, SW2_CS13 }, // 29 =+ + {1, SW3_CS15, SW3_CS14, SW3_CS13 }, // 30 BSPC + {1, SW4_CS15, SW4_CS14, SW4_CS13 }, // 31 INS + {1, SW5_CS15, SW5_CS14, SW5_CS13 }, // 32 HOME + {1, SW6_CS15, SW6_CS14, SW6_CS13 }, // 33 PGUP - {0, CS12_SW2, CS11_SW2, CS10_SW2 }, // 34 Tab - {0, CS12_SW3, CS11_SW3, CS10_SW3 }, // 35 Q - {0, CS12_SW4, CS11_SW4, CS10_SW4 }, // 36 W - {0, CS12_SW5, CS11_SW5, CS10_SW5 }, // 37 E - {0, CS12_SW6, CS11_SW6, CS10_SW6 }, // 38 R - {0, CS12_SW7, CS11_SW7, CS10_SW7 }, // 39 T - {0, CS12_SW8, CS11_SW8, CS10_SW8 }, // 40 Y - {0, CS12_SW9, CS11_SW9, CS10_SW9 }, // 41 U - {0, CS12_SW10, CS11_SW10, CS10_SW10 }, // 42 I - {0, CS12_SW11, CS11_SW11, CS10_SW11 }, // 43 O - {0, CS12_SW12, CS11_SW12, CS10_SW12 }, // 44 P - {1, CS12_SW1, CS11_SW1, CS10_SW1 }, // 45 [{ - {1, CS12_SW2, CS11_SW2, CS10_SW2 }, // 48 ]} - {1, CS12_SW3, CS11_SW3, CS10_SW3 }, // 47 \| - {1, CS12_SW4, CS11_SW4, CS10_SW4 }, // 48 Del - {1, CS12_SW5, CS11_SW5, CS10_SW5 }, // 49 End - {1, CS12_SW6, CS11_SW6, CS10_SW6 }, // 50 PGDN + {0, SW2_CS12, SW2_CS11, SW2_CS10 }, // 34 Tab + {0, SW3_CS12, SW3_CS11, SW3_CS10 }, // 35 Q + {0, SW4_CS12, SW4_CS11, SW4_CS10 }, // 36 W + {0, SW5_CS12, SW5_CS11, SW5_CS10 }, // 37 E + {0, SW6_CS12, SW6_CS11, SW6_CS10 }, // 38 R + {0, SW7_CS12, SW7_CS11, SW7_CS10 }, // 39 T + {0, SW8_CS12, SW8_CS11, SW8_CS10 }, // 40 Y + {0, SW9_CS12, SW9_CS11, SW9_CS10 }, // 41 U + {0, SW10_CS12, SW10_CS11, SW10_CS10 }, // 42 I + {0, SW11_CS12, SW11_CS11, SW11_CS10 }, // 43 O + {0, SW12_CS12, SW12_CS11, SW12_CS10 }, // 44 P + {1, SW1_CS12, SW1_CS11, SW1_CS10 }, // 45 [{ + {1, SW2_CS12, SW2_CS11, SW2_CS10 }, // 48 ]} + {1, SW3_CS12, SW3_CS11, SW3_CS10 }, // 47 \| + {1, SW4_CS12, SW4_CS11, SW4_CS10 }, // 48 Del + {1, SW5_CS12, SW5_CS11, SW5_CS10 }, // 49 End + {1, SW6_CS12, SW6_CS11, SW6_CS10 }, // 50 PGDN - {0, CS1_SW2, CS2_SW2, CS3_SW2 }, // 51 Caps - {0, CS1_SW3, CS2_SW3, CS3_SW3 }, // 52 A - {0, CS1_SW4, CS2_SW4, CS3_SW4 }, // 33 S - {0, CS1_SW5, CS2_SW5, CS3_SW5 }, // 54 D - {0, CS1_SW6, CS2_SW6, CS3_SW6 }, // 55 F - {0, CS1_SW7, CS2_SW7, CS3_SW7 }, // 56 G - {0, CS1_SW8, CS2_SW8, CS3_SW8 }, // 57 H - {0, CS1_SW9, CS2_SW9, CS3_SW9 }, // 58 J - {0, CS1_SW10, CS2_SW10, CS3_SW10 }, // 59 K - {0, CS1_SW11, CS2_SW11, CS3_SW11 }, // 60 L - {0, CS1_SW12, CS2_SW12, CS3_SW12 }, // 61 ;: - {1, CS1_SW1, CS2_SW1, CS3_SW1 }, // 62 ' - {1, CS1_SW3, CS2_SW3, CS3_SW3 }, // 63 Enter + {0, SW2_CS1, SW2_CS2, SW2_CS3 }, // 51 Caps + {0, SW3_CS1, SW3_CS2, SW3_CS3 }, // 52 A + {0, SW4_CS1, SW4_CS2, SW4_CS3 }, // 33 S + {0, SW5_CS1, SW5_CS2, SW5_CS3 }, // 54 D + {0, SW6_CS1, SW6_CS2, SW6_CS3 }, // 55 F + {0, SW7_CS1, SW7_CS2, SW7_CS3 }, // 56 G + {0, SW8_CS1, SW8_CS2, SW8_CS3 }, // 57 H + {0, SW9_CS1, SW9_CS2, SW9_CS3 }, // 58 J + {0, SW10_CS1, SW10_CS2, SW10_CS3 }, // 59 K + {0, SW11_CS1, SW11_CS2, SW11_CS3 }, // 60 L + {0, SW12_CS1, SW12_CS2, SW12_CS3 }, // 61 ;: + {1, SW1_CS1, SW1_CS2, SW1_CS3 }, // 62 ' + {1, SW3_CS1, SW3_CS2, SW3_CS3 }, // 63 Enter - {0, CS4_SW2, CS5_SW2, CS6_SW2 }, // 64 Shift - {0, CS4_SW4, CS5_SW4, CS6_SW4 }, // 65 Z - {0, CS4_SW5, CS5_SW5, CS6_SW5 }, // 66 X - {0, CS4_SW6, CS5_SW6, CS6_SW6 }, // 67 C - {0, CS4_SW7, CS5_SW7, CS6_SW7 }, // 68 V - {0, CS4_SW8, CS5_SW8, CS6_SW8 }, // 69 B - {0, CS4_SW9, CS5_SW9, CS6_SW9 }, // 70 N - {0, CS4_SW10, CS5_SW10, CS6_SW10 }, // 71 M - {0, CS4_SW11, CS5_SW11, CS6_SW11 }, // 72 ,< - {0, CS4_SW12, CS5_SW12, CS6_SW12 }, // 73 .> - {1, CS4_SW1, CS5_SW1, CS6_SW1 }, // 74 ? - {1, CS4_SW3, CS5_SW3, CS6_SW3 }, // 75 Shift - {1, CS4_SW5, CS5_SW5, CS6_SW5 }, // 76 Up + {0, SW2_CS4, SW2_CS5, SW2_CS6 }, // 64 Shift + {0, SW4_CS4, SW4_CS5, SW4_CS6 }, // 65 Z + {0, SW5_CS4, SW5_CS5, SW5_CS6 }, // 66 X + {0, SW6_CS4, SW6_CS5, SW6_CS6 }, // 67 C + {0, SW7_CS4, SW7_CS5, SW7_CS6 }, // 68 V + {0, SW8_CS4, SW8_CS5, SW8_CS6 }, // 69 B + {0, SW9_CS4, SW9_CS5, SW9_CS6 }, // 70 N + {0, SW10_CS4, SW10_CS5, SW10_CS6 }, // 71 M + {0, SW11_CS4, SW11_CS5, SW11_CS6 }, // 72 ,< + {0, SW12_CS4, SW12_CS5, SW12_CS6 }, // 73 .> + {1, SW1_CS4, SW1_CS5, SW1_CS6 }, // 74 ? + {1, SW3_CS4, SW3_CS5, SW3_CS6 }, // 75 Shift + {1, SW5_CS4, SW5_CS5, SW5_CS6 }, // 76 Up - {0, CS7_SW2, CS8_SW2, CS9_SW2 }, // 77 Ctrl_L - {0, CS7_SW3, CS8_SW3, CS9_SW3 }, // 78 Win_L - {0, CS7_SW4, CS8_SW4, CS9_SW4 }, // 79 ALT_L - {0, CS7_SW8, CS8_SW8, CS9_SW8 }, // 80 SPACE - {0, CS7_SW12, CS8_SW12, CS9_SW12 }, // 81 ALT_L - {1, CS7_SW1, CS8_SW1, CS9_SW1 }, // 82 Win_L - {1, CS7_SW2, CS8_SW2, CS9_SW2 }, // 83 Fn - {1, CS7_SW3, CS8_SW3, CS9_SW3 }, // 84 Ctrl_L - {1, CS7_SW4, CS8_SW4, CS9_SW4 }, // 85 Left - {1, CS7_SW5, CS8_SW5, CS9_SW5 }, // 86 Down - {1, CS7_SW6, CS8_SW6, CS9_SW6 }, // 87 Right + {0, SW2_CS7, SW2_CS8, SW2_CS9 }, // 77 Ctrl_L + {0, SW3_CS7, SW3_CS8, SW3_CS9 }, // 78 Win_L + {0, SW4_CS7, SW4_CS8, SW4_CS9 }, // 79 ALT_L + {0, SW8_CS7, SW8_CS8, SW8_CS9 }, // 80 SPACE + {0, SW12_CS7, SW12_CS8, SW12_CS9 }, // 81 ALT_L + {1, SW1_CS7, SW1_CS8, SW1_CS9 }, // 82 Win_L + {1, SW2_CS7, SW2_CS8, SW2_CS9 }, // 83 Fn + {1, SW3_CS7, SW3_CS8, SW3_CS9 }, // 84 Ctrl_L + {1, SW4_CS7, SW4_CS8, SW4_CS9 }, // 85 Left + {1, SW5_CS7, SW5_CS8, SW5_CS9 }, // 86 Down + {1, SW6_CS7, SW6_CS8, SW6_CS9 }, // 87 Right }; From 97547ac762a48b343b4b49de4f144f127da3c131 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 30 Nov 2024 16:30:05 +1100 Subject: [PATCH 070/365] Update leftover RGB keycodes (#24653) --- docs/configurator_default_keymaps.md | 4 ++-- keyboards/era/sirind/tomak79h/keymaps/default/keymap.c | 4 ++-- keyboards/keebfront/vanguard65/keymaps/default/keymap.c | 4 ++-- keyboards/keebio/iris_lm/keymaps/default/keymap.c | 8 ++++---- keyboards/xdboards/recon/keymaps/default/keymap.c | 4 ++-- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/configurator_default_keymaps.md b/docs/configurator_default_keymaps.md index 40304dc57b7..0dfc41ea21d 100644 --- a/docs/configurator_default_keymaps.md +++ b/docs/configurator_default_keymaps.md @@ -54,7 +54,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [1] = LAYOUT_all( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, BL_TOGG, BL_DOWN, BL_UP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_TOGG, UG_NEXT, UG_HUED, UG_HUEU, UG_SATD, UG_SATU, UG_VALD, UG_VALU, BL_TOGG, BL_DOWN, BL_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -82,7 +82,7 @@ The default keymap uses the `LAYOUT_all` macro, so that will be the value of the "KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "MO(1)", "KC_RGUI", "KC_RCTL", "KC_LEFT", "KC_DOWN", "KC_RGHT" ], [ - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_TOG", "RGB_MOD", "RGB_HUD", "RGB_HUI", "RGB_SAD", "RGB_SAI", "RGB_VAD", "RGB_VAI", "BL_TOGG", "BL_DOWN", "BL_UP", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "UG_TOGG", "UG_NEXT", "UG_HUED", "UG_HUEU", "UG_SATD", "UG_SATU", "UG_VALD", "UG_VALU", "BL_TOGG", "BL_DOWN", "BL_UP", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_VOLU", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "QK_BOOT", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MPLY", "KC_MNXT", "KC_VOLD", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", diff --git a/keyboards/era/sirind/tomak79h/keymaps/default/keymap.c b/keyboards/era/sirind/tomak79h/keymaps/default/keymap.c index 7b8a5b8a139..d1434f8cd00 100644 --- a/keyboards/era/sirind/tomak79h/keymaps/default/keymap.c +++ b/keyboards/era/sirind/tomak79h/keymaps/default/keymap.c @@ -17,8 +17,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_MOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_TOGG, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_NEXT, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; \ No newline at end of file diff --git a/keyboards/keebfront/vanguard65/keymaps/default/keymap.c b/keyboards/keebfront/vanguard65/keymaps/default/keymap.c index 3768ba89cc9..225873183e2 100644 --- a/keyboards/keebfront/vanguard65/keymaps/default/keymap.c +++ b/keyboards/keebfront/vanguard65/keymaps/default/keymap.c @@ -34,8 +34,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LAYER1] = LAYOUT_all( _______, QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_END, - _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, _______, - _______, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, _______, + _______, UG_SPDU, UG_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT ) diff --git a/keyboards/keebio/iris_lm/keymaps/default/keymap.c b/keyboards/keebio/iris_lm/keymaps/default/keymap.c index d5021d647d4..7a0625a36a1 100644 --- a/keyboards/keebio/iris_lm/keymaps/default/keymap.c +++ b/keyboards/keebio/iris_lm/keymaps/default/keymap.c @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_LBRC, KC_RBRC, KC_P4, KC_P5, KC_P6, KC_PLUS, KC_PIPE, //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ - RGB_MOD, EE_CLR, _______, _______, _______, KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_P1, KC_P2, KC_P3, KC_MINS, _______, + RM_NEXT, EE_CLR, _______, _______, _______, KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_P1, KC_P2, KC_P3, KC_MINS, _______, //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ _______, _______, KC_DEL, KC_DEL, _______, KC_P0 // └────────┴────────┴────────┘ └────────┴────────┴────────┘ @@ -43,11 +43,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ - RGB_TOG, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, QK_BOOT, + RM_TOGG, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, QK_BOOT, //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ - RGB_MOD, KC_MPRV, KC_MNXT, KC_VOLU, KC_PGUP, KC_UNDS, KC_EQL, KC_HOME, RGB_HUI, RGB_SAI, RGB_VAI, KC_BSLS, + RM_NEXT, KC_MPRV, KC_MNXT, KC_VOLU, KC_PGUP, KC_UNDS, KC_EQL, KC_HOME, RM_HUEU, RM_SATU, RM_VALU, KC_BSLS, //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ - KC_MUTE, KC_MSTP, KC_MPLY, KC_VOLD, KC_PGDN, KC_MINS, KC_LPRN, _______, KC_PLUS, KC_END, RGB_HUD, RGB_SAD, RGB_VAD, EE_CLR, + KC_MUTE, KC_MSTP, KC_MPLY, KC_VOLD, KC_PGDN, KC_MINS, KC_LPRN, _______, KC_PLUS, KC_END, RM_HUED, RM_SATD, RM_VALD, EE_CLR, //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ _______, _______, _______, _______, _______, _______ // └────────┴────────┴────────┘ └────────┴────────┴────────┘ diff --git a/keyboards/xdboards/recon/keymaps/default/keymap.c b/keyboards/xdboards/recon/keymaps/default/keymap.c index 30d96e09bad..841f8b0b6a7 100644 --- a/keyboards/xdboards/recon/keymaps/default/keymap.c +++ b/keyboards/xdboards/recon/keymaps/default/keymap.c @@ -145,8 +145,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_RGB] = LAYOUT( KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - RGB_TOG, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + RM_TOGG, RM_PREV, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO , KC_NO, KC_NO, KC_NO, KC_NO , KC_NO, KC_NO, KC_NO, KC_NO , KC_NO, KC_NO, KC_NO, KC_NO , KC_NO, KC_NO, KC_NO From 1da8aa8259fe624e30f0f2c09a814798caebb9f6 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 30 Nov 2024 16:30:45 +1100 Subject: [PATCH 071/365] Improve "feature/encoder config both specified" warnings (#24641) --- lib/python/qmk/info.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index 5dae353538a..74a62721a3d 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -292,7 +292,7 @@ def _extract_features(info_data, rules): info_data['features'] = {} if key in info_data['features']: - _log_warning(info_data, 'Feature %s is specified in both info.json and rules.mk, the rules.mk value wins.' % (key,)) + _log_warning(info_data, 'Feature %s is specified in both info.json (%s) and rules.mk (%s). The rules.mk value wins.' % (key, info_data['features'], value)) info_data['features'][key] = value info_data['config_h_features'][key] = value @@ -415,7 +415,7 @@ def _extract_encoders(info_data, config_c): info_data['encoder'] = {} if 'rotary' in info_data['encoder']: - _log_warning(info_data, 'Encoder config is specified in both config.h and info.json (encoder.rotary) (Value: %s), the config.h value wins.' % info_data['encoder']['rotary']) + _log_warning(info_data, 'Encoder config is specified in both config.h (%s) and info.json (%s). The config.h value wins.' % (encoders, info_data['encoder']['rotary'])) info_data['encoder']['rotary'] = encoders From df9bf9efa1bb0844f01c1c2fcc4ad7da78b30ac4 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sat, 30 Nov 2024 22:51:41 +1100 Subject: [PATCH 072/365] Update ChibiOS to latest stable branch. (#24651) --- lib/chibios | 2 +- lib/chibios-contrib | 2 +- .../GENERIC_STM32_H723XG/configs/mcuconf.h | 2 ++ .../boards/QMK_PROTON_C/configs/chconf.h | 23 +++++++++++++++++++ .../chibios/boards/common/configs/chconf.h | 23 +++++++++++++++++++ 5 files changed, 50 insertions(+), 2 deletions(-) diff --git a/lib/chibios b/lib/chibios index be44b3305f9..9dd6eaf669e 160000 --- a/lib/chibios +++ b/lib/chibios @@ -1 +1 @@ -Subproject commit be44b3305f9a9fe5f2f49a4e7b978db322dc463e +Subproject commit 9dd6eaf669e83eb9d5aaabe736ecfdf2f790a9fd diff --git a/lib/chibios-contrib b/lib/chibios-contrib index 77cb0a4f758..b643aad980d 160000 --- a/lib/chibios-contrib +++ b/lib/chibios-contrib @@ -1 +1 @@ -Subproject commit 77cb0a4f7589f89e724f5e6ecb1d76d514dd1212 +Subproject commit b643aad980d061021565c55745925c2cde4a3c6f diff --git a/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/mcuconf.h index 0239ec5273b..09096c39778 100644 --- a/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/mcuconf.h @@ -182,6 +182,7 @@ #define STM32_IRQ_FDCAN1_PRIORITY 10 #define STM32_IRQ_FDCAN2_PRIORITY 10 +#define STM32_IRQ_FDCAN3_PRIORITY 10 #define STM32_IRQ_MDMA_PRIORITY 9 @@ -235,6 +236,7 @@ */ #define STM32_CAN_USE_FDCAN1 FALSE #define STM32_CAN_USE_FDCAN2 FALSE +#define STM32_CAN_USE_FDCAN3 FALSE /* * DAC driver system settings. diff --git a/platforms/chibios/boards/QMK_PROTON_C/configs/chconf.h b/platforms/chibios/boards/QMK_PROTON_C/configs/chconf.h index cc10304a3fb..e92b7aeb984 100644 --- a/platforms/chibios/boards/QMK_PROTON_C/configs/chconf.h +++ b/platforms/chibios/boards/QMK_PROTON_C/configs/chconf.h @@ -49,6 +49,19 @@ #define CH_CFG_SMP_MODE FALSE #endif +/** + * @brief Kernel hardening level. + * @details This option is the level of functional-safety checks enabled + * in the kerkel. The meaning is: + * - 0: No checks, maximum performance. + * - 1: Reasonable checks. + * - 2: All checks. + * . + */ +#if !defined(CH_CFG_HARDENING_LEVEL) +#define CH_CFG_HARDENING_LEVEL 0 +#endif + /** @} */ /*===========================================================================*/ @@ -360,6 +373,16 @@ #define CH_CFG_USE_MAILBOXES TRUE #endif +/** + * @brief Memory checks APIs. + * @details If enabled then the memory checks APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MEMCHECKS) +#define CH_CFG_USE_MEMCHECKS TRUE +#endif + /** * @brief Core Memory Manager APIs. * @details If enabled then the core memory manager APIs are included diff --git a/platforms/chibios/boards/common/configs/chconf.h b/platforms/chibios/boards/common/configs/chconf.h index 5db836e37c2..6381298ef7b 100644 --- a/platforms/chibios/boards/common/configs/chconf.h +++ b/platforms/chibios/boards/common/configs/chconf.h @@ -49,6 +49,19 @@ #define CH_CFG_SMP_MODE FALSE #endif +/** + * @brief Kernel hardening level. + * @details This option is the level of functional-safety checks enabled + * in the kerkel. The meaning is: + * - 0: No checks, maximum performance. + * - 1: Reasonable checks. + * - 2: All checks. + * . + */ +#if !defined(CH_CFG_HARDENING_LEVEL) +#define CH_CFG_HARDENING_LEVEL 0 +#endif + /** @} */ /*===========================================================================*/ @@ -360,6 +373,16 @@ #define CH_CFG_USE_MAILBOXES FALSE #endif +/** + * @brief Memory checks APIs. + * @details If enabled then the memory checks APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MEMCHECKS) +#define CH_CFG_USE_MEMCHECKS TRUE +#endif + /** * @brief Core Memory Manager APIs. * @details If enabled then the core memory manager APIs are included From 5eb53be671b4103626d0c0bb7828474d8be03ec7 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 1 Dec 2024 19:24:44 +0000 Subject: [PATCH 073/365] Avoid loading keymap rules.mk twice (#24665) --- builddefs/build_keyboard.mk | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/builddefs/build_keyboard.mk b/builddefs/build_keyboard.mk index afad67a76da..7d58c29462a 100644 --- a/builddefs/build_keyboard.mk +++ b/builddefs/build_keyboard.mk @@ -197,8 +197,10 @@ ifneq ("$(wildcard $(KEYMAP_JSON))", "") KEYMAP_C := $(INTERMEDIATE_OUTPUT)/src/keymap.c KEYMAP_H := $(INTERMEDIATE_OUTPUT)/src/config.h - # Load the keymap-level rules.mk if exists - -include $(KEYMAP_PATH)/rules.mk + ifeq ($(OTHER_KEYMAP_C),) + # Load the keymap-level rules.mk if exists (and we havent already loaded it for keymap.c) + -include $(KEYMAP_PATH)/rules.mk + endif # Load any rules.mk content from keymap.json INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --output $(INTERMEDIATE_OUTPUT)/src/rules.mk $(KEYMAP_JSON)) From b022d3bc6b9c6c1816272bcc6ad5d0f03c2d96a5 Mon Sep 17 00:00:00 2001 From: Less/Rikki <86894501+lesshonor@users.noreply.github.com> Date: Sun, 1 Dec 2024 23:01:05 -0500 Subject: [PATCH 074/365] [Keyboard] Add fistbnmp (#24595) --- keyboards/rpiguy9907/fistbnmp/keyboard.json | 178 ++++++++++++++++++ .../fistbnmp/keymaps/default/keymap.json | 14 ++ keyboards/rpiguy9907/fistbnmp/readme.md | 27 +++ 3 files changed, 219 insertions(+) create mode 100644 keyboards/rpiguy9907/fistbnmp/keyboard.json create mode 100644 keyboards/rpiguy9907/fistbnmp/keymaps/default/keymap.json create mode 100644 keyboards/rpiguy9907/fistbnmp/readme.md diff --git a/keyboards/rpiguy9907/fistbnmp/keyboard.json b/keyboards/rpiguy9907/fistbnmp/keyboard.json new file mode 100644 index 00000000000..b4e76341e00 --- /dev/null +++ b/keyboards/rpiguy9907/fistbnmp/keyboard.json @@ -0,0 +1,178 @@ +{ + "manufacturer": "rpiguy9907", + "keyboard_name": "fistbnmp", + "maintainer": "lesshonor", + "bootloader": "atmel-dfu", + "bootloader_instructions": "Press the button labeled SW1 on the back of the PCB.", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["C6", "C7", "B4", "F7", "D0", "D6", "D3", "D4", "D5"], + "rows": ["F0", "B6", "D7", "B5"] + }, + "processor": "atmega32u4", + "url": "https://github.com/rpiguy9907", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT_3u": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + {"matrix": [2, 6], "x": 6, "y": 2}, + {"matrix": [2, 7], "x": 7, "y": 2}, + {"matrix": [2, 8], "x": 8, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 4], "x": 3, "y": 3, "w": 3}, + {"matrix": [3, 6], "x": 6, "y": 3}, + {"matrix": [3, 7], "x": 7, "y": 3}, + {"matrix": [3, 8], "x": 8, "y": 3} + ] + }, + "LAYOUT_7u": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + {"matrix": [2, 6], "x": 6, "y": 2}, + {"matrix": [2, 7], "x": 7, "y": 2}, + {"matrix": [2, 8], "x": 8, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 4], "x": 1, "y": 3, "w": 7}, + {"matrix": [3, 8], "x": 8, "y": 3} + ] + }, + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + {"matrix": [2, 6], "x": 6, "y": 2}, + {"matrix": [2, 7], "x": 7, "y": 2}, + {"matrix": [2, 8], "x": 8, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 5], "x": 5, "y": 3}, + {"matrix": [3, 6], "x": 6, "y": 3}, + {"matrix": [3, 7], "x": 7, "y": 3}, + {"matrix": [3, 8], "x": 8, "y": 3} + ] + }, + "LAYOUT_split_space": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + {"matrix": [2, 6], "x": 6, "y": 2}, + {"matrix": [2, 7], "x": 7, "y": 2}, + {"matrix": [2, 8], "x": 8, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3, "w": 1.5}, + {"matrix": [3, 5], "x": 4.5, "y": 3, "w": 1.5}, + {"matrix": [3, 6], "x": 6, "y": 3}, + {"matrix": [3, 7], "x": 7, "y": 3}, + {"matrix": [3, 8], "x": 8, "y": 3} + ] + } + } +} diff --git a/keyboards/rpiguy9907/fistbnmp/keymaps/default/keymap.json b/keyboards/rpiguy9907/fistbnmp/keymaps/default/keymap.json new file mode 100644 index 00000000000..4cc23703e2b --- /dev/null +++ b/keyboards/rpiguy9907/fistbnmp/keymaps/default/keymap.json @@ -0,0 +1,14 @@ +{ + "keyboard": "rpiguy9907/fistbnmp", + "keymap": "default", + "version": 1, + "layout": "LAYOUT_all", + "layers": [ + [ + "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", + "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", + "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_P", "KC_DOT", + "KC_LCTL", "KC_LALT", "KC_LGUI", "KC_SPC", "KC_SPC", "KC_RIGHT", "KC_LEFT", "KC_DOWN", "KC_UP" + ] + ] +} diff --git a/keyboards/rpiguy9907/fistbnmp/readme.md b/keyboards/rpiguy9907/fistbnmp/readme.md new file mode 100644 index 00000000000..2b6721f9262 --- /dev/null +++ b/keyboards/rpiguy9907/fistbnmp/readme.md @@ -0,0 +1,27 @@ +# FistBNMP + +![FistBNMP assembled proto and bare PCB](https://i.redd.it/uv34770qmc371.jpg) + +A compact 9u layout with support for standard Cherry MX and Low Profile MX switches. + +* Keyboard Maintainer: [rpiguy9907](https://github.com/rpiguy9907), [lesshonor](https://github.com/lesshonor) +* Hardware Supported: FistBNMP PCB (atmega32u4, atmel-dfu) +* Hardware Availability: Files available on request; ask in the 40% Discord + +Make example for this keyboard (after setting up your build environment): + + make rpiguy9907/fistbnmp:default + +Flashing example for this keyboard: + + make rpiguy9907/fistbnmp:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top left key and plug in the keyboard. This will also clear EEPROM, so it is a good first step if the keyboard is misbehaving. +* **Physical reset button**: Briefly press the button labeled `SW1` on the back of the PCB. +* **Keycode in layout**: There is no key mapped to `QK_BOOT` in the pre-created keymaps, but you may assign this key in any keymaps you create. From 39c40f55cb3a7c808ff322177435042cb40153bb Mon Sep 17 00:00:00 2001 From: "Christian C. Berclaz" Date: Mon, 2 Dec 2024 05:05:29 +0100 Subject: [PATCH 075/365] Add Xlant XL keyboard (#24608) Co-authored-by: jack --- keyboards/zlant_xl/keyboard.json | 89 +++++++++++++++++++++ keyboards/zlant_xl/keymaps/default/keymap.c | 42 ++++++++++ keyboards/zlant_xl/readme.md | 26 ++++++ 3 files changed, 157 insertions(+) create mode 100644 keyboards/zlant_xl/keyboard.json create mode 100644 keyboards/zlant_xl/keymaps/default/keymap.c create mode 100644 keyboards/zlant_xl/readme.md diff --git a/keyboards/zlant_xl/keyboard.json b/keyboards/zlant_xl/keyboard.json new file mode 100644 index 00000000000..540f1e75069 --- /dev/null +++ b/keyboards/zlant_xl/keyboard.json @@ -0,0 +1,89 @@ +{ + "manufacturer": "Ziptyze", + "keyboard_name": "ZlantXL", + "maintainer": "chrisgve", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["D6", "D5", "C7", "C5", "D3", "D4"], + "rows": ["C4", "C6", "B1", "B0", "B3", "B2", "B5", "B4", "B7", "B6"] + }, + "processor": "atmega32u2", + "usb": { + "device_version": "0.0.1", + "pid": "0x6800", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [1, 0], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "3", "matrix": [1, 1], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 2], "x": 4, "y": 0}, + {"label": "5", "matrix": [1, 2], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 3], "x": 6, "y": 0}, + {"label": "7", "matrix": [1, 3], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 4], "x": 8, "y": 0}, + {"label": "9", "matrix": [1, 4], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 5], "x": 10, "y": 0}, + {"label": "Del", "matrix": [1, 5], "x": 11, "y": 0}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 1}, + {"label": "Q", "matrix": [3, 0], "x": 1, "y": 1}, + {"label": "W", "matrix": [2, 1], "x": 2, "y": 1}, + {"label": "E", "matrix": [3, 1], "x": 3, "y": 1}, + {"label": "R", "matrix": [2, 2], "x": 4, "y": 1}, + {"label": "T", "matrix": [3, 2], "x": 5, "y": 1}, + {"label": "Y", "matrix": [2, 3], "x": 6, "y": 1}, + {"label": "U", "matrix": [3, 3], "x": 7, "y": 1}, + {"label": "I", "matrix": [2, 4], "x": 8, "y": 1}, + {"label": "O", "matrix": [3, 4], "x": 9, "y": 1}, + {"label": "P", "matrix": [2, 5], "x": 10, "y": 1}, + {"label": "Backspace", "matrix": [3, 5], "x": 11, "y": 1}, + {"label": "Keycaps", "matrix": [4, 0], "x": 0, "y": 2}, + {"label": "A", "matrix": [5, 0], "x": 1, "y": 2}, + {"label": "S", "matrix": [4, 1], "x": 2, "y": 2}, + {"label": "D", "matrix": [5, 1], "x": 3, "y": 2}, + {"label": "F", "matrix": [4, 2], "x": 4, "y": 2}, + {"label": "G", "matrix": [5, 2], "x": 5, "y": 2}, + {"label": "H", "matrix": [4, 3], "x": 6, "y": 2}, + {"label": "J", "matrix": [5, 3], "x": 7, "y": 2}, + {"label": "K", "matrix": [4, 4], "x": 8, "y": 2}, + {"label": "L", "matrix": [5, 4], "x": 9, "y": 2}, + {"label": ";", "matrix": [4, 5], "x": 10, "y": 2}, + {"label": "'", "matrix": [5, 5], "x": 11, "y": 2}, + {"label": "Shift", "matrix": [6, 0], "x": 0, "y": 3}, + {"label": "Z", "matrix": [7, 0], "x": 1, "y": 3}, + {"label": "X", "matrix": [6, 1], "x": 2, "y": 3}, + {"label": "C", "matrix": [7, 1], "x": 3, "y": 3}, + {"label": "V", "matrix": [6, 2], "x": 4, "y": 3}, + {"label": "B", "matrix": [7, 2], "x": 5, "y": 3}, + {"label": "N", "matrix": [6, 3], "x": 6, "y": 3}, + {"label": "M", "matrix": [7, 3], "x": 7, "y": 3}, + {"label": ",", "matrix": [6, 4], "x": 8, "y": 3}, + {"label": ".", "matrix": [7, 4], "x": 9, "y": 3}, + {"label": "/", "matrix": [6, 5], "x": 10, "y": 3}, + {"label": "Enter", "matrix": [7, 5], "x": 11, "y": 3}, + {"label": "", "matrix": [8, 0], "x": 0, "y": 4}, + {"label": "Ctrl", "matrix": [9, 0], "x": 1, "y": 4}, + {"label": "Alt", "matrix": [8, 1], "x": 2, "y": 4}, + {"label": "GUI", "matrix": [9, 1], "x": 3, "y": 4}, + {"label": "MO(2)", "matrix": [8, 2], "x": 4, "y": 4}, + {"label": " ", "matrix": [9, 2], "x": 5, "y": 4}, + {"label": " ", "matrix": [8, 3], "x": 6, "y": 4}, + {"label": "MO(1)", "matrix": [9, 3], "x": 7, "y": 4}, + {"label": "Left", "matrix": [8, 4], "x": 8, "y": 4}, + {"label": "Down", "matrix": [9, 4], "x": 9, "y": 4}, + {"label": "Up", "matrix": [8, 5], "x": 10, "y": 4}, + {"label": "Right", "matrix": [9, 5], "x": 11, "y": 4} + ] + } + } +} diff --git a/keyboards/zlant_xl/keymaps/default/keymap.c b/keyboards/zlant_xl/keymaps/default/keymap.c new file mode 100644 index 00000000000..c92960048f6 --- /dev/null +++ b/keyboards/zlant_xl/keymaps/default/keymap.c @@ -0,0 +1,42 @@ +/* Copyright 2024 Christian C. Berclaz + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers { + BASE, + FN +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [BASE] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + _______, KC_LCTL, KC_LALT, KC_LGUI, KC_LSFT, KC_SPC, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + [FN] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ) +}; +// clang-format on diff --git a/keyboards/zlant_xl/readme.md b/keyboards/zlant_xl/readme.md new file mode 100644 index 00000000000..aab5746096f --- /dev/null +++ b/keyboards/zlant_xl/readme.md @@ -0,0 +1,26 @@ +# ZLANT XL + +![ZLANT XL](https://imgur.com/Vcmjwro.jpg) +_A unique 50% mechanical keyboard that uses a slanted ortholinear layout_ + +- Keyboard Maintainer: [chrisgve](https://github.com/chrisgve) +- Hardware Supported: Zlant XL w/Ziptyze's atmega32u2 powered controller [The Rune](https://1upkeyboards.com/shop/controllers/the-rune-by-ziptyze/) +- Hardware Availability: [1UP Keyboards](https://1upkeyboards.com/shop/keyboard-kits/diy-40-kits/zlantxl-50-mechanical-keyboard-kit/) + +Make example for this keyboard (after setting up your build environment): + + make zlant_xl:default + +Flashing example for this keyboard: + + make zlant_xl:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +- **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +- **Physical reset button**: Briefly press the button on the back of the board (button on The Rune) +- **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From b599c785483c82236d1e8a61e3e8deefac14422f Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Sun, 1 Dec 2024 21:58:18 -0800 Subject: [PATCH 076/365] Fix Quantum Painter compiliation issues with heavy optimization (#24667) --- quantum/painter/qgf.c | 8 ++++---- quantum/painter/qp_draw_image.c | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/quantum/painter/qgf.c b/quantum/painter/qgf.c index bc2df949334..07c3f80314c 100644 --- a/quantum/painter/qgf.c +++ b/quantum/painter/qgf.c @@ -255,10 +255,10 @@ bool qgf_validate_stream(qp_stream_t *stream) { // Read and validate all the frames (automatically validates the frame offset descriptor in the process) for (uint16_t i = 0; i < frame_count; ++i) { // Validate the frame descriptor block - uint8_t bpp; - bool has_palette; - bool is_panel_native; - bool has_delta; + uint8_t bpp = 0; + bool has_palette = false; + bool is_panel_native = false; + bool has_delta = false; if (!qgf_validate_frame_descriptor(stream, i, &bpp, &has_palette, &is_panel_native, &has_delta)) { return false; } diff --git a/quantum/painter/qp_draw_image.c b/quantum/painter/qp_draw_image.c index 18fa38cb19f..a225039af4c 100644 --- a/quantum/painter/qp_draw_image.c +++ b/quantum/painter/qp_draw_image.c @@ -318,9 +318,9 @@ static deferred_token qp_render_animation_state(animation_state_t *state, uint16 } static uint32_t animation_callback(uint32_t trigger_time, void *cb_arg) { - animation_state_t *state = (animation_state_t *)cb_arg; - uint16_t delay_ms; - bool ret = qp_render_animation_state(state, &delay_ms); + animation_state_t *state = (animation_state_t *)cb_arg; + uint16_t delay_ms = 0; + bool ret = qp_render_animation_state(state, &delay_ms); if (!ret) { // Setting the device to NULL clears the animation slot state->device = NULL; From be7786bfc6f8e14a796cf13991428d1ef8135f26 Mon Sep 17 00:00:00 2001 From: Stephen Onnen Date: Mon, 2 Dec 2024 08:57:34 -0600 Subject: [PATCH 077/365] Addition of Hotdog Pad (#24650) * Add Hotdog Pad * remove encoder_map feature * Add rules.mk * move rules.mk into keymap * Update keyboards/onnenon/hotdog_pad/keyboard.json Co-authored-by: Joel Challis * Update keyboards/onnenon/hotdog_pad/keyboard.json Co-authored-by: Joel Challis * Update keyboards/onnenon/hotdog_pad/keymaps/default/keymap.c Co-authored-by: Joel Challis * Update keyboards/onnenon/hotdog_pad/keymaps/default/keymap.c Co-authored-by: Joel Challis * add hotdog_pad.c * fix reversed encoder pins * Update keyboards/onnenon/hotdog_pad/hotdog_pad.c Co-authored-by: Joel Challis --------- Co-authored-by: Joel Challis --- keyboards/onnenon/hotdog_pad/hotdog_pad.c | 12 +++++ keyboards/onnenon/hotdog_pad/keyboard.json | 53 +++++++++++++++++++ .../hotdog_pad/keymaps/default/keymap.c | 14 +++++ .../hotdog_pad/keymaps/default/rules.mk | 1 + keyboards/onnenon/hotdog_pad/readme.md | 24 +++++++++ 5 files changed, 104 insertions(+) create mode 100644 keyboards/onnenon/hotdog_pad/hotdog_pad.c create mode 100644 keyboards/onnenon/hotdog_pad/keyboard.json create mode 100644 keyboards/onnenon/hotdog_pad/keymaps/default/keymap.c create mode 100644 keyboards/onnenon/hotdog_pad/keymaps/default/rules.mk create mode 100644 keyboards/onnenon/hotdog_pad/readme.md diff --git a/keyboards/onnenon/hotdog_pad/hotdog_pad.c b/keyboards/onnenon/hotdog_pad/hotdog_pad.c new file mode 100644 index 00000000000..c48274fb554 --- /dev/null +++ b/keyboards/onnenon/hotdog_pad/hotdog_pad.c @@ -0,0 +1,12 @@ +// Copyright 2024 Stephen Onnen (@onnenon) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +void keyboard_pre_init_kb(void) { + // Enable the power pin for the Xiao Seeed rp2040 onboard NeoPixel + gpio_set_pin_output(GP11); + gpio_write_pin_high(GP11); + + keyboard_pre_init_user(); +} diff --git a/keyboards/onnenon/hotdog_pad/keyboard.json b/keyboards/onnenon/hotdog_pad/keyboard.json new file mode 100644 index 00000000000..3831e7afedc --- /dev/null +++ b/keyboards/onnenon/hotdog_pad/keyboard.json @@ -0,0 +1,53 @@ +{ + "manufacturer": "onnenon", + "keyboard_name": "Hotdog Pad", + "maintainer": "onnenon", + "processor": "RP2040", + "bootloader": "rp2040", + "matrix_pins": { + "direct": [["GP1", "GP2", "GP4", "GP6", "GP0"]] + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x0001", + "vid": "0x4F4E" + }, + "features": { + "encoder": true, + "rgblight": true, + "extrakey": true, + "mousekey": true + }, + "encoder": { + "rotary": [{ "pin_a": "GP29", "pin_b": "GP28" }] + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "x": 0, "y": 0, "matrix": [0, 0] }, + { "x": 1, "y": 0, "matrix": [0, 1] }, + { "x": 2, "y": 0, "matrix": [0, 2] }, + { "x": 3, "y": 0, "matrix": [0, 3] }, + { "x": 4, "y": 0, "matrix": [0, 4] } + ] + } + }, + "ws2812": { + "pin": "GP12", + "driver": "vendor" + }, + "rgblight": { + "led_count": 1, + "max_brightness": 185, + "animations": { + "breathing": true, + "rainbow_mood": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + } +} diff --git a/keyboards/onnenon/hotdog_pad/keymaps/default/keymap.c b/keyboards/onnenon/hotdog_pad/keymaps/default/keymap.c new file mode 100644 index 00000000000..93702490981 --- /dev/null +++ b/keyboards/onnenon/hotdog_pad/keymaps/default/keymap.c @@ -0,0 +1,14 @@ +// Copyright 2024 Stephen Onnen (@onnenon) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT(KC_A, KC_B, KC_C, KC_D, KC_MUTE) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, +}; +#endif diff --git a/keyboards/onnenon/hotdog_pad/keymaps/default/rules.mk b/keyboards/onnenon/hotdog_pad/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/onnenon/hotdog_pad/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/onnenon/hotdog_pad/readme.md b/keyboards/onnenon/hotdog_pad/readme.md new file mode 100644 index 00000000000..c3b0699c21d --- /dev/null +++ b/keyboards/onnenon/hotdog_pad/readme.md @@ -0,0 +1,24 @@ +# Hotdog Pad + +* Keyboard Maintainer: [Stephen Onnen](https://github.com/onnenon) +* Hardware Supported: Seeed Studio XIAO RP2040 +* Hardware Availability: https://github.com/onnenon/hotdog_pad + +Make example for this keyboard (after setting up your build environment): + + make onnenon/hotdog_pad:default + +Flashing example for this keyboard: + + make onnenon/hotdog_pad:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available + From e592a7da0017a57a476debee2355f8dbb5d81349 Mon Sep 17 00:00:00 2001 From: Nibell Date: Mon, 2 Dec 2024 16:00:29 +0100 Subject: [PATCH 078/365] [Keyboard] Added nibell micropad4x4 (#24662) * feat: added nibell micropad4x4 * chore: updated readme * chore: updated keymap * feat: added layers * chore: added bootloader doc * Added layers * changed RSHIFT and RCTRL * Update keyboards/nibell/micropad4x4/keyboard.json Co-authored-by: Duncan Sutherland * Update keyboards/nibell/micropad4x4/readme.md --------- Co-authored-by: Duncan Sutherland Co-authored-by: jack --- keyboards/nibell/micropad4x4/keyboard.json | 50 +++++++++++ .../micropad4x4/keymaps/default/keymap.c | 90 +++++++++++++++++++ keyboards/nibell/micropad4x4/readme.md | 26 ++++++ 3 files changed, 166 insertions(+) create mode 100644 keyboards/nibell/micropad4x4/keyboard.json create mode 100644 keyboards/nibell/micropad4x4/keymaps/default/keymap.c create mode 100644 keyboards/nibell/micropad4x4/readme.md diff --git a/keyboards/nibell/micropad4x4/keyboard.json b/keyboards/nibell/micropad4x4/keyboard.json new file mode 100644 index 00000000000..b992f501cf5 --- /dev/null +++ b/keyboards/nibell/micropad4x4/keyboard.json @@ -0,0 +1,50 @@ +{ + "manufacturer": "nibell", + "keyboard_name": "nibell/micropad4x4", + "maintainer": "Linus Nibell", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP2", "GP3", "GP4", "GP5"], + "rows": ["GP10", "GP11", "GP12", "GP13"] + }, + "processor": "RP2040", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0xFEED", + "vid": "0x4C4E" + }, + "community_layouts": ["ortho_4x4"], + "layouts": { + "LAYOUT_ortho_4x4": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3} + ] + } + } +} diff --git a/keyboards/nibell/micropad4x4/keymaps/default/keymap.c b/keyboards/nibell/micropad4x4/keymaps/default/keymap.c new file mode 100644 index 00000000000..1da79514edc --- /dev/null +++ b/keyboards/nibell/micropad4x4/keymaps/default/keymap.c @@ -0,0 +1,90 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base + * ┌──────┬─────┬──────┬───────┐ + * │NUMLK │ │ │QK_BOOT│ + * ├──────┼─────├──────┼───────┤ + * │NUMPAD│MINI │ FN │ │ + * ├──────┼─────┼──────┼───────┤ + * │ 1 │ 2 │ 3 │ 4 │ + * ├──────┼─────┼──────┼───────┤ + * │ │ │RSHIFT│ RCTRL │ + * └──────┴─────┴──────┴───────┘ + */ + [0] = LAYOUT_ortho_4x4( + KC_NUM, KC_NO, KC_NO, QK_BOOT, + TO(1), TO(2), TO(3), KC_NO, + KC_1, KC_2, KC_3, KC_4, + KC_NO, KC_NO, KC_RSFT, KC_RCTL + ), + + /* Numpad + * ┌─────┬─────┬─────┬─────┐ + * │ 7 │ 8 │ 9 │ * │ + * ├─────┼─────├─────┼─────┤ + * │ 4 │ 5 │ 6 │ - │ + * ├─────┼─────┼─────┼─────┤ + * │ 1 │ 2 │ 3 │ + │ + * ├─────┼─────┼─────┼─────┤ + * │ 0 │ . │ / │ = │ + * └─────┴─────┴─────┴─────┘ + */ + [1] = LAYOUT_ortho_4x4( + KC_P7, KC_P8, KC_P9, KC_PAST, + KC_P4, KC_P5, KC_P6, KC_PMNS, + KC_P1, KC_P2, KC_P3, KC_PPLS, + KC_P0, KC_PDOT, KC_PSLS, LT(3, KC_PENT) + ), + + /* Mini KeyBoard + * ┌─────┬─────┬─────┬─────┐ + * │ ESC │ 1 │ 2 │ 3 │ + * ├─────┼─────┼─────┼─────┤ + * │ TAB │ Q │ W │ E │ + * ├─────┼─────┼─────┼─────┤ + * │SHIFT│ A │ S │ D │ + * ├─────┼─────┼─────┼─────┤ + * │CTRL │ C │ R │SPACE│ + * └─────┴─────┴─────┴─────┘ + */ + [2] = LAYOUT_ortho_4x4( + LT(3, KC_ESC), KC_1, KC_2, KC_3, + KC_TAB, KC_Q, KC_W, KC_E, + KC_LSFT, KC_A, KC_S, KC_D, + KC_LCTL, KC_C, KC_R, KC_SPC + ), + + /* FN Keyboard + * ┌─────┬─────┬─────┬─────┐ + * │ F1 │ F2 │ F3 │ F4 │ + * ├─────┼─────┼─────┼─────┤ + * │ F5 │ F6 │ F7 │ F8 │ + * ├─────┼─────┼─────┼─────┤ + * │ F9 │ F10 │ F11 │ F12 │ + * ├─────┼─────┼─────┼─────┤ + * │BASE │ │ │ │ + * └─────┴─────┴─────┴─────┘ + */ + [3] = LAYOUT_ortho_4x4( + KC_F1, KC_F2, KC_F3, KC_F4, + KC_F5, KC_F6, KC_F7, KC_F8, + KC_F9, KC_F10, KC_F11, KC_F12, + TO(0), KC_NO, KC_NO, KC_NO + ), +}; diff --git a/keyboards/nibell/micropad4x4/readme.md b/keyboards/nibell/micropad4x4/readme.md new file mode 100644 index 00000000000..6fec293b650 --- /dev/null +++ b/keyboards/nibell/micropad4x4/readme.md @@ -0,0 +1,26 @@ +# Micropad 4x4 + +![Micropad 4x4](https://imgur.com/ugfJLXJ.jpg) + +A budget-friendly 4x4 Macropad + +* Keyboard Maintainer: [nibell](https://github.com/Nibell) +* Hardware Supported: Raspberry Pi Pico +* Hardware Availability: [GitHub](https://github.com/Nibell/Keyboards/tree/main/micropad4x4) + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Physical reset button**: Hold the button down on the raspberry pi pico while plugging it in. There is no reset button on the pcb. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available + +Make example for this keyboard (after setting up your build environment): + + make nibell/micropad4x4:default + +Flashing example for this keyboard: + + make nibell/macropad4x4:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). From fa3be8a3fb6bc45ed60674b6a7c7bc80d8d00594 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=E1=BA=AFn?= <59417802+MaiTheSan@users.noreply.github.com> Date: Mon, 2 Dec 2024 07:02:29 -0800 Subject: [PATCH 079/365] sawnsprojects/bunnygirl65: Fix typo in name (#24668) --- keyboards/sawnsprojects/bunnygirl65/keyboard.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/sawnsprojects/bunnygirl65/keyboard.json b/keyboards/sawnsprojects/bunnygirl65/keyboard.json index 810d481b5dc..92dca8693d6 100644 --- a/keyboards/sawnsprojects/bunnygirl65/keyboard.json +++ b/keyboards/sawnsprojects/bunnygirl65/keyboard.json @@ -1,5 +1,5 @@ { - "manufacturer": "auaera", + "manufacturer": "auaena", "keyboard_name": "Bunnygirl65", "maintainer": "MaiTheSan", "bootloader": "stm32-dfu", From 0ad3ffdfbce15406acf318d8db335c4bf612bc7a Mon Sep 17 00:00:00 2001 From: Thanh Son Tran <62438883+trnthsn@users.noreply.github.com> Date: Mon, 2 Dec 2024 22:20:48 +0700 Subject: [PATCH 080/365] [Keyboard] Add support E8ghty (#24632) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update support S6xty5 * Delete chconf.h * Update manufacturer, community layout for hhkb * Update layout * fix row index * Update tyson60s * Update community layout and layout name * Update remove rgb test mode * Update capslock led * Apply suggestions from code review Co-authored-by: Duncan Sutherland * Remove deprecated s6xty5 * Update support for E8ghty * remove rgb test mode * Update community layout * Update fix pipeline build ci * Apply suggestions from code review Co-authored-by: Duncan Sutherland --------- Co-authored-by: Trần Thanh Sơn Co-authored-by: Duncan Sutherland --- keyboards/trnthsn/e8ghty/config.h | 23 + keyboards/trnthsn/e8ghty/halconf.h | 21 + keyboards/trnthsn/e8ghty/info.json | 577 ++++++++++++++++++ .../trnthsn/e8ghty/keymaps/default/keymap.c | 39 ++ keyboards/trnthsn/e8ghty/mcuconf.h | 22 + keyboards/trnthsn/e8ghty/readme.md | 27 + keyboards/trnthsn/e8ghty/rules.mk | 1 + .../trnthsn/e8ghty/stm32f072/keyboard.json | 4 + .../trnthsn/e8ghty/stm32f103/keyboard.json | 4 + 9 files changed, 718 insertions(+) create mode 100644 keyboards/trnthsn/e8ghty/config.h create mode 100644 keyboards/trnthsn/e8ghty/halconf.h create mode 100644 keyboards/trnthsn/e8ghty/info.json create mode 100644 keyboards/trnthsn/e8ghty/keymaps/default/keymap.c create mode 100644 keyboards/trnthsn/e8ghty/mcuconf.h create mode 100644 keyboards/trnthsn/e8ghty/readme.md create mode 100644 keyboards/trnthsn/e8ghty/rules.mk create mode 100644 keyboards/trnthsn/e8ghty/stm32f072/keyboard.json create mode 100644 keyboards/trnthsn/e8ghty/stm32f103/keyboard.json diff --git a/keyboards/trnthsn/e8ghty/config.h b/keyboards/trnthsn/e8ghty/config.h new file mode 100644 index 00000000000..ae9f251eb6e --- /dev/null +++ b/keyboards/trnthsn/e8ghty/config.h @@ -0,0 +1,23 @@ +/* +Copyright 2024 ThanhSon.Mech + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define WS2812_SPI_DRIVER SPID2 +#define WS2812_SPI_MOSI_PAL_MODE 0 +#define WS2812_SPI_SCK_PAL_MODE 0 +#define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/trnthsn/e8ghty/halconf.h b/keyboards/trnthsn/e8ghty/halconf.h new file mode 100644 index 00000000000..b8f0a217c4b --- /dev/null +++ b/keyboards/trnthsn/e8ghty/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2024 ThanhSon.Mech + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_SPI TRUE + +#include_next diff --git a/keyboards/trnthsn/e8ghty/info.json b/keyboards/trnthsn/e8ghty/info.json new file mode 100644 index 00000000000..ec4e724878e --- /dev/null +++ b/keyboards/trnthsn/e8ghty/info.json @@ -0,0 +1,577 @@ +{ + "manufacturer": "ThanhSon.Mech", + "keyboard_name": "E8ghty", + "maintainer": "trnthsn", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["A8", "B14", "B12", "B11", "B10", "B1", "B0", "A7", "A6", "A5", "A3", "A2", "A1", "A0", "C14", "C13", "B5"], + "rows": ["A15", "A10", "A9", "A4", "C15", "B9"] + }, + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "led_count": 26, + "sleep": true + }, + "ws2812": { + "pin": "B15", + "driver": "spi" + }, + "indicators": { + "caps_lock": "B4" + }, + "url": "", + "usb": { + "vid": "0x5453", + "pid": "0x3830", + "device_version": "0.0.1" + }, + "community_layouts": ["tkl_ansi_tsangan", "tkl_ansi_tsangan_split_bs_rshift", "tkl_f13_ansi_tsangan", "tkl_f13_ansi_tsangan_split_bs_rshift"], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, + + {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0}, + + {"label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0}, + + {"label": "Play/Pause", "matrix": [0, 13], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [3, 12], "x": 13, "y": 1.25}, + {"label": "Backspace", "matrix": [1, 13], "x": 14, "y": 1.25}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"label": "Shift", "matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 4.25}, + + {"label": "Up", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "Left", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "Down", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "Right", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, + + {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0}, + + {"label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0}, + + {"label": "Play/Pause", "matrix": [0, 13], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "PgUp", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"label": "Up", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "Left", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "Down", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "Right", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, + + {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0}, + + {"label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0}, + + {"label": "Play/Pause", "matrix": [0, 13], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [3, 12], "x": 13, "y": 1.25}, + {"label": "Backspace", "matrix": [1, 13], "x": 14, "y": 1.25}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 4.25}, + + {"label": "Up", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "Left", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "Down", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "Right", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 5], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "Fn", "matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 5], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [3, 12], "x": 13, "y": 1.25}, + {"label": "Delete", "matrix": [1, 13], "x": 14, "y": 1.25}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "Shift", "matrix": [4, 13], "x": 14, "y": 4.25}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "Fn", "matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/trnthsn/e8ghty/keymaps/default/keymap.c b/keyboards/trnthsn/e8ghty/keymaps/default/keymap.c new file mode 100644 index 00000000000..f16b0d5eb4f --- /dev/null +++ b/keyboards/trnthsn/e8ghty/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ + // │Esc││F1 │F2 │F3 │F4 ││F5 │F6 │F7 │F8 ││F9 │F10│F11│F12││F13│ │Prs│Srk│Ps │ + // └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ + // ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ + // │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ ` │Bsp│ │Ins│Hm │PgU│ + // ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ + // │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ + // ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤ └───┴───┴───┘ + // │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │Ent │ + // ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ ┌───┐ + // │Sft │ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │Fn │ │ ↑ │ + // ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + // │Ctrl │Win│Alt │ │Alt │Win│Ctrl │ │ ← │ ↓ │ → │ + // └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPLY, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, UG_TOGG, _______, _______, _______, _______, UG_NEXT, UG_VALD, UG_VALU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, + _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_VOLD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/trnthsn/e8ghty/mcuconf.h b/keyboards/trnthsn/e8ghty/mcuconf.h new file mode 100644 index 00000000000..3bf940e0bec --- /dev/null +++ b/keyboards/trnthsn/e8ghty/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2024 ThanhSon.Mech + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE diff --git a/keyboards/trnthsn/e8ghty/readme.md b/keyboards/trnthsn/e8ghty/readme.md new file mode 100644 index 00000000000..7a46bf2c4c9 --- /dev/null +++ b/keyboards/trnthsn/e8ghty/readme.md @@ -0,0 +1,27 @@ +# E8ghty + +![trnthsn/e8ghty](https://imgur.com/M4Oudco.png) + +A TKL keyboard PCB compatible with various keyboard cases. Supports both right USB Type-C connector and bottom USB Type-C connector, 1 FPC header, and 3 JST SH positions for a daughter board. + +* Keyboard Maintainer: [ThanhSon.Mech](https://github.com/trnthsn) +* Hardware Supported: STM32F103/STM32F072, Geon F1 xx, TKD Cycle 8, Keycult, ... +* Hardware Availability: [ThanhSon.Mech](https://www.facebook.com/ThanhSon.mech) + +Make example for this keyboard (after setting up your build environment): + + make trnthsn/e8ghty:default + +Flashing example for this keyboard: + + make trnthsn/e8ghty:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/trnthsn/e8ghty/rules.mk b/keyboards/trnthsn/e8ghty/rules.mk new file mode 100644 index 00000000000..e06e8fe182d --- /dev/null +++ b/keyboards/trnthsn/e8ghty/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = trnthsn/e8ghty/stm32f103 diff --git a/keyboards/trnthsn/e8ghty/stm32f072/keyboard.json b/keyboards/trnthsn/e8ghty/stm32f072/keyboard.json new file mode 100644 index 00000000000..b5d728b1cdf --- /dev/null +++ b/keyboards/trnthsn/e8ghty/stm32f072/keyboard.json @@ -0,0 +1,4 @@ +{ + "processor": "STM32F072", + "bootloader": "stm32-dfu", +} diff --git a/keyboards/trnthsn/e8ghty/stm32f103/keyboard.json b/keyboards/trnthsn/e8ghty/stm32f103/keyboard.json new file mode 100644 index 00000000000..5b2b6bc7d93 --- /dev/null +++ b/keyboards/trnthsn/e8ghty/stm32f103/keyboard.json @@ -0,0 +1,4 @@ +{ + "processor": "STM32F103", + "bootloader": "uf2boot", +} From cd286e4b9db186b3a42b918ff043986ab9504ca3 Mon Sep 17 00:00:00 2001 From: suikagiken <115451678+suikagiken@users.noreply.github.com> Date: Tue, 3 Dec 2024 00:30:02 +0900 Subject: [PATCH 081/365] [Keyboard] Add suika27melo (#24616) * add keyboard suika27melo * Update keyboards/suikagiken/suika27melo/keyboard.json Co-authored-by: jack * Update keyboards/suikagiken/suika27melo/keyboard.json Co-authored-by: jack * Update keyboards/suikagiken/suika27melo/readme.md Co-authored-by: jack * Update keyboards/suikagiken/suika27melo/readme.md Co-authored-by: jack * change to imgur link --------- Co-authored-by: jack --- keyboards/suikagiken/suika27melo/config.h | 5 ++ .../suikagiken/suika27melo/keyboard.json | 64 +++++++++++++++++++ .../suika27melo/keymaps/default/keymap.json | 12 ++++ .../suika27melo/keymaps/midi/keymap.json | 12 ++++ keyboards/suikagiken/suika27melo/readme.md | 44 +++++++++++++ 5 files changed, 137 insertions(+) create mode 100644 keyboards/suikagiken/suika27melo/config.h create mode 100644 keyboards/suikagiken/suika27melo/keyboard.json create mode 100644 keyboards/suikagiken/suika27melo/keymaps/default/keymap.json create mode 100644 keyboards/suikagiken/suika27melo/keymaps/midi/keymap.json create mode 100644 keyboards/suikagiken/suika27melo/readme.md diff --git a/keyboards/suikagiken/suika27melo/config.h b/keyboards/suikagiken/suika27melo/config.h new file mode 100644 index 00000000000..7d35e3c4369 --- /dev/null +++ b/keyboards/suikagiken/suika27melo/config.h @@ -0,0 +1,5 @@ +// Copyright 2025 @suikagiken +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once +#define MIDI_ADVANCED diff --git a/keyboards/suikagiken/suika27melo/keyboard.json b/keyboards/suikagiken/suika27melo/keyboard.json new file mode 100644 index 00000000000..cba25611296 --- /dev/null +++ b/keyboards/suikagiken/suika27melo/keyboard.json @@ -0,0 +1,64 @@ +{ + "manufacturer": "suikagiken", + "keyboard_name": "suika27melo", + "maintainer": "suikagiken", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "midi": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["F0", "B4", "B5", "D7", "B6", "D6", "C6", "C7", "D0"], + "rows": ["F1", "F4", "D1", "D2"] + }, + "url": "https://github.com/suikagiken/suika27melo", + "usb": { + "device_version": "1.1.0", + "vid": "0x4B48", + "pid": "0x0201" + }, + "build": { + "debounce_type": "sym_eager_pk" + }, + "debounce": 50, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix":[0, 0], "x":0, "y":0}, + {"matrix":[0, 1], "x":2, "y":0}, + {"matrix":[0, 2], "x":3, "y":0}, + {"matrix":[0, 4], "x":5, "y":0}, + {"matrix":[0, 5], "x":6, "y":0}, + {"matrix":[0, 6], "x":7, "y":0}, + {"matrix":[2, 1], "x":9, "y":0}, + {"matrix":[2, 2], "x":10, "y":0}, + {"matrix":[2, 4], "x":12, "y":0}, + {"matrix":[2, 5], "x":13, "y":0}, + {"matrix":[2, 6], "x":14, "y":0}, + {"matrix":[1, 0], "x":0, "y":1}, + {"matrix":[1, 1], "x":1.5, "y":1}, + {"matrix":[1, 2], "x":2.5, "y":1}, + {"matrix":[1, 3], "x":3.5, "y":1}, + {"matrix":[1, 4], "x":4.5, "y":1}, + {"matrix":[1, 5], "x":5.5, "y":1}, + {"matrix":[1, 6], "x":6.5, "y":1}, + {"matrix":[1, 7], "x":7.5, "y":1}, + {"matrix":[3, 1], "x":8.5, "y":1}, + {"matrix":[3, 2], "x":9.5, "y":1}, + {"matrix":[3, 3], "x":10.5, "y":1}, + {"matrix":[3, 4], "x":11.5, "y":1}, + {"matrix":[3, 5], "x":12.5, "y":1}, + {"matrix":[3, 6], "x":13.5, "y":1}, + {"matrix":[3, 7], "x":14.5, "y":1}, + {"matrix":[3, 8], "x":15.5, "y":1} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/suikagiken/suika27melo/keymaps/default/keymap.json b/keyboards/suikagiken/suika27melo/keymaps/default/keymap.json new file mode 100644 index 00000000000..dadd846e48e --- /dev/null +++ b/keyboards/suikagiken/suika27melo/keymaps/default/keymap.json @@ -0,0 +1,12 @@ +{ + "author": "@suikagiken", + "keyboard": "suikagiken/suika85ergo", + "keymap": "default", + "layout": "LAYOUT", + "layers": [ + [ + "KC_A", "KC_D", "KC_F", "KC_I", "KC_K", "KC_M", "KC_P", "KC_R", "KC_U", "KC_W", "KC_Y", + "KC_B", "KC_C", "KC_E", "KC_G", "KC_H", "KC_J", "KC_L", "KC_N", "KC_O", "KC_Q", "KC_S", "KC_T", "KC_V", "KC_X", "KC_Z", "KC_SPC" + ] + ] +} diff --git a/keyboards/suikagiken/suika27melo/keymaps/midi/keymap.json b/keyboards/suikagiken/suika27melo/keymaps/midi/keymap.json new file mode 100644 index 00000000000..189665ddbfa --- /dev/null +++ b/keyboards/suikagiken/suika27melo/keymaps/midi/keymap.json @@ -0,0 +1,12 @@ +{ + "author": "@suikagiken", + "keyboard": "suikagiken/suika85ergo", + "keymap": "midi", + "layout": "LAYOUT", + "layers": [ + [ + "MI_OCTU", "MI_Cs1", "MI_Ds1", "MI_Fs1", "MI_Gs1", "MI_As1", "MI_Cs2", "MI_Ds2", "MI_Fs2", "MI_Gs2", "MI_As2", + "MI_OCTD", "MI_C1", "MI_D1", "MI_E1", "MI_F1", "MI_G1", "MI_A1", "MI_B1", "MI_C2", "MI_D2", "MI_E2", "MI_F2", "MI_G2", "MI_A2", "MI_B2", "MI_C2" + ] + ] +} diff --git a/keyboards/suikagiken/suika27melo/readme.md b/keyboards/suikagiken/suika27melo/readme.md new file mode 100644 index 00000000000..1aa46565f00 --- /dev/null +++ b/keyboards/suikagiken/suika27melo/readme.md @@ -0,0 +1,44 @@ +# suika27melo +(English Follows Japanese) + +## 概要 +![suika27melo1](https://i.imgur.com/iFz3c1U.jpg) +![suika27melo2](https://i.imgur.com/xR7KpVR.jpg) + +suika27meloは2オクターブのピアノ鍵盤型マクロキーパッドです。 +通常のマクロキーパッドとしても使えるほか、MIDIキーボードとしてDAWソフトの入力や演奏に使用できます。 + +* 制作 : すいか技研 (Website: https://suikagiken.net GitHub: [suikagiken](https://github.com/suikagiken) ) +* 販売 : すいか技研の[booth](https://suikagiken.booth.pm/)にて販売予定です + +## ビルドガイド + +[こちら](https://github.com/suikagiken/suika27melo/blob/main/buildguide_1.1.md)からご覧下さい。 + +--- + +## Overview + +suika27melo is a 2-octave piano shaped macro keypad. +You can use it as a normal macro keypad, or use it as a MIDI keyboard for DAW software input and musical performance. + +* Keyboard Maintainer: [suikagiken](https://github.com/suikagiken) +* Hardware Availability: Available at [booth](https://suikagiken.booth.pm/) soon. + +Make example for this keyboard (after setting up your build environment): + + make suikagiken/suika27melo:default + +Flashing example for this keyboard: + + make suikagiken/suika27melo:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the top left key) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 28320f0cb5e42a9178c0f0b71da057b87060b358 Mon Sep 17 00:00:00 2001 From: Thanh Son Tran <62438883+trnthsn@users.noreply.github.com> Date: Mon, 2 Dec 2024 22:37:02 +0700 Subject: [PATCH 082/365] [Keyboard] Add support S6xty5Neo Rev.2 (#24631) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update support S6xty5 * Delete chconf.h * Update manufacturer, community layout for hhkb * Update layout * fix row index * Update tyson60s * Update community layout and layout name * Update remove rgb test mode * Update capslock led * Apply suggestions from code review Co-authored-by: Duncan Sutherland * Add support for S6xty5Neo Rev.2 * Remove deprecated s6xty5 * Update layout * Apply suggestions from code review Co-authored-by: Duncan Sutherland * Move mcuconf and config to outer folder --------- Co-authored-by: Trần Thanh Sơn Co-authored-by: Duncan Sutherland --- keyboards/trnthsn/s6xty5neor2/config.h | 23 ++ keyboards/trnthsn/s6xty5neor2/halconf.h | 22 ++ keyboards/trnthsn/s6xty5neor2/info.json | 255 ++++++++++++++++++ .../s6xty5neor2/keymaps/default/keymap.c | 41 +++ keyboards/trnthsn/s6xty5neor2/mcuconf.h | 22 ++ keyboards/trnthsn/s6xty5neor2/readme.md | 27 ++ keyboards/trnthsn/s6xty5neor2/rules.mk | 1 + .../s6xty5neor2/stm32f072/keyboard.json | 4 + .../s6xty5neor2/stm32f103/keyboard.json | 4 + 9 files changed, 399 insertions(+) create mode 100644 keyboards/trnthsn/s6xty5neor2/config.h create mode 100644 keyboards/trnthsn/s6xty5neor2/halconf.h create mode 100644 keyboards/trnthsn/s6xty5neor2/info.json create mode 100644 keyboards/trnthsn/s6xty5neor2/keymaps/default/keymap.c create mode 100644 keyboards/trnthsn/s6xty5neor2/mcuconf.h create mode 100644 keyboards/trnthsn/s6xty5neor2/readme.md create mode 100644 keyboards/trnthsn/s6xty5neor2/rules.mk create mode 100644 keyboards/trnthsn/s6xty5neor2/stm32f072/keyboard.json create mode 100644 keyboards/trnthsn/s6xty5neor2/stm32f103/keyboard.json diff --git a/keyboards/trnthsn/s6xty5neor2/config.h b/keyboards/trnthsn/s6xty5neor2/config.h new file mode 100644 index 00000000000..ae9f251eb6e --- /dev/null +++ b/keyboards/trnthsn/s6xty5neor2/config.h @@ -0,0 +1,23 @@ +/* +Copyright 2024 ThanhSon.Mech + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define WS2812_SPI_DRIVER SPID2 +#define WS2812_SPI_MOSI_PAL_MODE 0 +#define WS2812_SPI_SCK_PAL_MODE 0 +#define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/trnthsn/s6xty5neor2/halconf.h b/keyboards/trnthsn/s6xty5neor2/halconf.h new file mode 100644 index 00000000000..337ed5da182 --- /dev/null +++ b/keyboards/trnthsn/s6xty5neor2/halconf.h @@ -0,0 +1,22 @@ +/* Copyright 2024 ThanhSon.Mech + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD +#include_next diff --git a/keyboards/trnthsn/s6xty5neor2/info.json b/keyboards/trnthsn/s6xty5neor2/info.json new file mode 100644 index 00000000000..ba20dbc2ba9 --- /dev/null +++ b/keyboards/trnthsn/s6xty5neor2/info.json @@ -0,0 +1,255 @@ +{ + "manufacturer": "ThanhSon.Mech", + "keyboard_name": "S6xty5Neo Rev.2", + "maintainer": "trnthsn", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["A4", "A3", "A2", "A1", "A0", "A5", "A8", "B14", "B12", "B11", "B10", "B1", "B0", "A7", "A6"], + "rows": ["B4", "A10", "A9", "B7", "B9"] + }, + "indicators": { + "caps_lock": "C13" + }, + "url": "", + "usb": { + "vid": "0x5453", + "pid": "0x4E45", + "device_version": "0.0.1" + }, + "community_layouts": ["65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs"], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [2, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 14], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [2, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/trnthsn/s6xty5neor2/keymaps/default/keymap.c b/keyboards/trnthsn/s6xty5neor2/keymaps/default/keymap.c new file mode 100644 index 00000000000..bc6c2e32715 --- /dev/null +++ b/keyboards/trnthsn/s6xty5neor2/keymaps/default/keymap.c @@ -0,0 +1,41 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + // │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Bsp│Del│ + // ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ + // │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │PgU│ + // ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + // │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgD│ + // ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + // │Shf │Shf│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │End│ + // ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤ + // │Ctrl │GUI│ Alt │ │ Fn │ │ ← │ ↓ │ → │ + // └─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ + + + [0] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + MO(2) , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/trnthsn/s6xty5neor2/mcuconf.h b/keyboards/trnthsn/s6xty5neor2/mcuconf.h new file mode 100644 index 00000000000..3bf940e0bec --- /dev/null +++ b/keyboards/trnthsn/s6xty5neor2/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2024 ThanhSon.Mech + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE diff --git a/keyboards/trnthsn/s6xty5neor2/readme.md b/keyboards/trnthsn/s6xty5neor2/readme.md new file mode 100644 index 00000000000..6c7e595abef --- /dev/null +++ b/keyboards/trnthsn/s6xty5neor2/readme.md @@ -0,0 +1,27 @@ +# S6xty5Neo Rev.2 + +![S6xty5Neo Rev.2](https://imgur.com/C6X3fCI.png) + +A 65% keyboard PCB compatible with Neo65. Supports Neo65 keyboard like an out-of-the-box PCB without any modification. + +* Keyboard Maintainer: [Trnthsn](https://github.com/trnthsn) +* Hardware Supported: STM32, S6xty5Neo Rev.2, Neo65 +* Hardware Availability: [ThanhSon.Mech](https://www.facebook.com/ThanhSon.mech) + +Make example for this keyboard (after setting up your build environment): + + make trnthsn/s6xty5neor2:default + +Flashing example for this keyboard: + + make trnthsn/s6xty5neor2:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/trnthsn/s6xty5neor2/rules.mk b/keyboards/trnthsn/s6xty5neor2/rules.mk new file mode 100644 index 00000000000..1fc77fba728 --- /dev/null +++ b/keyboards/trnthsn/s6xty5neor2/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = trnthsn/s6xty5neor2/stm32f103 diff --git a/keyboards/trnthsn/s6xty5neor2/stm32f072/keyboard.json b/keyboards/trnthsn/s6xty5neor2/stm32f072/keyboard.json new file mode 100644 index 00000000000..b5d728b1cdf --- /dev/null +++ b/keyboards/trnthsn/s6xty5neor2/stm32f072/keyboard.json @@ -0,0 +1,4 @@ +{ + "processor": "STM32F072", + "bootloader": "stm32-dfu", +} diff --git a/keyboards/trnthsn/s6xty5neor2/stm32f103/keyboard.json b/keyboards/trnthsn/s6xty5neor2/stm32f103/keyboard.json new file mode 100644 index 00000000000..5b2b6bc7d93 --- /dev/null +++ b/keyboards/trnthsn/s6xty5neor2/stm32f103/keyboard.json @@ -0,0 +1,4 @@ +{ + "processor": "STM32F103", + "bootloader": "uf2boot", +} From e4e66c61ad9278124699dd452c7f7e5518e772a3 Mon Sep 17 00:00:00 2001 From: Thomas Queste Date: Mon, 2 Dec 2024 17:48:26 +0100 Subject: [PATCH 083/365] [murcielago] Enable split watchdog (#24463) --- keyboards/murcielago/rev1/config.h | 1 + .../murcielago/rev1/keymaps/default/keymap.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/keyboards/murcielago/rev1/config.h b/keyboards/murcielago/rev1/config.h index 17f316d6af8..0d61c034de6 100644 --- a/keyboards/murcielago/rev1/config.h +++ b/keyboards/murcielago/rev1/config.h @@ -20,6 +20,7 @@ along with this program. If not, see . /* split options, use EEPROM for side detection */ #define EE_HANDS #define SPLIT_USB_DETECT +#define SPLIT_WATCHDOG_ENABLE /* * Feature disable options diff --git a/keyboards/murcielago/rev1/keymaps/default/keymap.c b/keyboards/murcielago/rev1/keymaps/default/keymap.c index 63fbb04f7bf..8dc5e210748 100644 --- a/keyboards/murcielago/rev1/keymaps/default/keymap.c +++ b/keyboards/murcielago/rev1/keymaps/default/keymap.c @@ -1,3 +1,19 @@ +/* +Copyright 2020 elagil + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ #include QMK_KEYBOARD_H enum layers { From 09dfbf8efe5655947b92361a6bdbf8aa2adc0b88 Mon Sep 17 00:00:00 2001 From: Josh Hinnebusch Date: Mon, 2 Dec 2024 11:49:11 -0500 Subject: [PATCH 084/365] [Keyboard] Add h88 gen2 (#24454) * initial commit * small updates * matrix fix * fix rgb lighting * updates * fix rgb pin * pin fixes * readme update * json formatting * Update keyboards/hineybush/h88_g2/config.h Co-authored-by: Drashna Jaelre --------- Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Drashna Jaelre --- keyboards/hineybush/h88_g2/config.h | 19 + keyboards/hineybush/h88_g2/halconf.h | 20 + keyboards/hineybush/h88_g2/keyboard.json | 1174 +++++++++++++++++ .../hineybush/h88_g2/keymaps/default/keymap.c | 42 + keyboards/hineybush/h88_g2/mcuconf.h | 21 + keyboards/hineybush/h88_g2/readme.md | 27 + 6 files changed, 1303 insertions(+) create mode 100644 keyboards/hineybush/h88_g2/config.h create mode 100644 keyboards/hineybush/h88_g2/halconf.h create mode 100644 keyboards/hineybush/h88_g2/keyboard.json create mode 100644 keyboards/hineybush/h88_g2/keymaps/default/keymap.c create mode 100644 keyboards/hineybush/h88_g2/mcuconf.h create mode 100644 keyboards/hineybush/h88_g2/readme.md diff --git a/keyboards/hineybush/h88_g2/config.h b/keyboards/hineybush/h88_g2/config.h new file mode 100644 index 00000000000..ccde4ac624e --- /dev/null +++ b/keyboards/hineybush/h88_g2/config.h @@ -0,0 +1,19 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#define BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_PWM_CHANNEL 1 +#define BACKLIGHT_PAL_MODE 1 diff --git a/keyboards/hineybush/h88_g2/halconf.h b/keyboards/hineybush/h88_g2/halconf.h new file mode 100644 index 00000000000..976d17d8919 --- /dev/null +++ b/keyboards/hineybush/h88_g2/halconf.h @@ -0,0 +1,20 @@ +/* Copyright 2024 Josh Hinnebusch + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/hineybush/h88_g2/keyboard.json b/keyboards/hineybush/h88_g2/keyboard.json new file mode 100644 index 00000000000..983cbcc1f58 --- /dev/null +++ b/keyboards/hineybush/h88_g2/keyboard.json @@ -0,0 +1,1174 @@ +{ + "manufacturer": "Hiney LLC", + "keyboard_name": "h88_g2", + "maintainer": "hineybush", + "backlight": { + "pin": "A6" + }, + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "backlight": true, + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "indicators": { + "caps_lock": "B12", + "scroll_lock": "B14" + }, + "matrix_pins": { + "cols": ["B11", "B10", "B2", "B1", "B0", "A7", "A5", "A4", "A3", "F1", "C15", "C14", "F0", "C13", "B9", "B8", "B5"], + "rows": ["A15", "B3", "B4", "A0", "B6", "B7"] + }, + "processor": "STM32F072", + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "brightness_steps": 8, + "default": { + "val": 128 + }, + "led_count": 24, + "max_brightness": 200, + "saturation_steps": 8, + "sleep": true + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0002", + "vid": "0x4069" + }, + "ws2812": { + "pin": "B15" + }, + "community_layouts": ["tkl_f13_ansi", "tkl_f13_ansi_split_bs_rshift", "tkl_f13_ansi_tsangan", "tkl_f13_ansi_tsangan_split_bs_rshift", "tkl_f13_iso", "tkl_f13_iso_split_bs_rshift", "tkl_f13_iso_tsangan", "tkl_f13_iso_tsangan_split_bs_rshift", "tkl_f13_iso_wkl", "tkl_f13_iso_wkl_split_bs_rshift"], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 11], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 11], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi_wkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 11], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 11], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso_wkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso_wkl_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/hineybush/h88_g2/keymaps/default/keymap.c b/keyboards/hineybush/h88_g2/keymaps/default/keymap.c new file mode 100644 index 00000000000..d9dbaf08e70 --- /dev/null +++ b/keyboards/hineybush/h88_g2/keymaps/default/keymap.c @@ -0,0 +1,42 @@ +// Copyright 2023 Josh Hinnebusch +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴───────┼───┴┬────┬────┤ ┌───┼───┼───┐ + * │Ctrl│GUI │Alt │ │ Fn │ GUI│Ctrl│ │ ← │ ↓ │ → │ + * └────┴────┴────┴─────────────────────────────┴────┴────┴────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_0, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_TOGG, UG_NEXT, UG_HUED, UG_HUEU, UG_SATD, UG_SATU, UG_VALD, UG_VALU, KC_TRNS, BL_TOGG, BL_DOWN, BL_UP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + +}; diff --git a/keyboards/hineybush/h88_g2/mcuconf.h b/keyboards/hineybush/h88_g2/mcuconf.h new file mode 100644 index 00000000000..7e226e43711 --- /dev/null +++ b/keyboards/hineybush/h88_g2/mcuconf.h @@ -0,0 +1,21 @@ +/* Copyright 2024 Josh Hinnebusch + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include_next + +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/hineybush/h88_g2/readme.md b/keyboards/hineybush/h88_g2/readme.md new file mode 100644 index 00000000000..e5cd60b432d --- /dev/null +++ b/keyboards/hineybush/h88_g2/readme.md @@ -0,0 +1,27 @@ +# h88_g2 + +[h88_g2](https://i.imgur.com/t7chDf8h.png) + +New generation of the h88 keyboard PCB platform with an STM32 microcontroller. + +* Keyboard Maintainer: [Josh Hinnebusch](https://github.com/hineybush) +* Hardware Supported: H88 G2 PCB w/ STM32F072 MCU +* Hardware Availability: [hineybush.com](https://hineybush.com) + +Make example for this keyboard (after setting up your build environment): + + make hineybush/h88_g2:default + +Flashing example for this keyboard: + + make hineybush/h88_g2:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix Escape and plug in the keyboard. +* **Physical reset button**: Press the button on the back of the PCB for a minumum of 3 seconds, then release. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. From 50966934b2d7fd30514068cf262caf2213630159 Mon Sep 17 00:00:00 2001 From: takashicompany Date: Tue, 3 Dec 2024 02:10:01 +0900 Subject: [PATCH 085/365] Add new keyboard "Jourkey" (#24409) * jourkey * rotary encoder * fix keymap * jourkey * format json * Update keyboards/takashicompany/jourkey/readme.md Co-authored-by: Joel Challis * fix layout * Update readme.md --------- Co-authored-by: Joel Challis --- .../takashicompany/jourkey/keyboard.json | 51 +++++++++++++++++++ .../jourkey/keymaps/default/keymap.c | 18 +++++++ .../jourkey/keymaps/default/rules.mk | 1 + keyboards/takashicompany/jourkey/readme.md | 41 +++++++++++++++ 4 files changed, 111 insertions(+) create mode 100644 keyboards/takashicompany/jourkey/keyboard.json create mode 100644 keyboards/takashicompany/jourkey/keymaps/default/keymap.c create mode 100644 keyboards/takashicompany/jourkey/keymaps/default/rules.mk create mode 100644 keyboards/takashicompany/jourkey/readme.md diff --git a/keyboards/takashicompany/jourkey/keyboard.json b/keyboards/takashicompany/jourkey/keyboard.json new file mode 100644 index 00000000000..01847cfa53c --- /dev/null +++ b/keyboards/takashicompany/jourkey/keyboard.json @@ -0,0 +1,51 @@ +{ + "manufacturer": "takashicompany", + "keyboard_name": "Jourkey", + "maintainer": "takashicompany", + "development_board": "promicro", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "D1", "pin_b": "D0"} + ] + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "direct": [ + ["D4", "C6", "D7", "E6", "B4", "F5", "F6", "F7", "B5", "B1", "B3", "B2", "B6"] + ] + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0062", + "vid": "0x7463" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [0, 6], "x": 1.5, "y": 1}, + {"matrix": [0, 7], "x": 2.5, "y": 1}, + {"matrix": [0, 8], "x": 3.5, "y": 1, "w": 1.5}, + {"matrix": [0, 9], "x": 0, "y": 2, "w":1.75}, + {"matrix": [0, 10], "x": 1.75, "y": 2}, + {"matrix": [0, 11], "x": 2.75, "y": 2}, + {"matrix": [0, 12], "x": 3.75, "y": 2, "w":1.25} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/takashicompany/jourkey/keymaps/default/keymap.c b/keyboards/takashicompany/jourkey/keymaps/default/keymap.c new file mode 100644 index 00000000000..fa642bc6e2e --- /dev/null +++ b/keyboards/takashicompany/jourkey/keymaps/default/keymap.c @@ -0,0 +1,18 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, + KC_TAB, KC_Q, KC_W, KC_ENT, + KC_LCTL, KC_A, KC_S, KC_RSFT + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN) } +}; +#endif diff --git a/keyboards/takashicompany/jourkey/keymaps/default/rules.mk b/keyboards/takashicompany/jourkey/keymaps/default/rules.mk new file mode 100644 index 00000000000..a40474b4d5c --- /dev/null +++ b/keyboards/takashicompany/jourkey/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/takashicompany/jourkey/readme.md b/keyboards/takashicompany/jourkey/readme.md new file mode 100644 index 00000000000..b76dd7cbb8c --- /dev/null +++ b/keyboards/takashicompany/jourkey/readme.md @@ -0,0 +1,41 @@ +# Joukey + +![takashicompany/jourkey](https://i.imgur.com/pCrTbKn.jpeg) + +Jourkey was designed as “a keyboard for taking pictures with scenery while traveling. + +The layout is like a smaller version of a traditional keyboard. +Decorate it with your favorite keycaps and case to make it your travel companion. + +Of course, it can also be used as a macro pad. + +--- + +Jourkeyは「旅先で景色と写真を撮るためのキーボード」としてデザインされました。 + +従来のキーボードを小さくしたようなレイアウトです。 +お気に入りのキーキャップやケースでデコレーションして貴方の旅のお供になります。 + +もちろん、マクロパッドとして使用することも可能です。 + +* Keyboard Maintainer: [takashicompany](https://github.com/takashicompany) +* Hardware Supported: Jourkey PCB, Pro Micro +* Hardware Availability: https://github.com/takashicompany/jourkey + +Make example for this keyboard (after setting up your build environment): + + make takashicompany/jourkey:default + +Flashing example for this keyboard: + + make takashicompany/jourkey:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From c8fe565ee6528942cfc71187e32237b39ab7320a Mon Sep 17 00:00:00 2001 From: VeyPatch <126267034+VeyPatch@users.noreply.github.com> Date: Mon, 2 Dec 2024 22:26:10 +0100 Subject: [PATCH 086/365] [Keyboard] Add splitkb.com's Halcyon Kyria rev4 (#24512) * Add Halcyon Kyria Rev4 * Remove bootmagic and unused features * Fix encoderindex * Update readme.md * Remove rgblight * Implement requested changes * Add encoder update user * Remove rules.mk and add VIK configuration * Move options to config.h * Update RGB keycodes (qmk#24484) * implement changes --------- Co-authored-by: harvey-splitkb <126267034+harvey-splitkb@users.noreply.github.com> --- keyboards/splitkb/halcyon/kyria/info.json | 68 +++++ .../halcyon/kyria/keymaps/default/keymap.c | 206 +++++++++++++++ .../halcyon/kyria/keymaps/default/readme.md | 242 ++++++++++++++++++ keyboards/splitkb/halcyon/kyria/readme.md | 31 +++ keyboards/splitkb/halcyon/kyria/rev4/config.h | 32 +++ .../splitkb/halcyon/kyria/rev4/halconf.h | 14 + .../splitkb/halcyon/kyria/rev4/keyboard.json | 168 ++++++++++++ .../splitkb/halcyon/kyria/rev4/mcuconf.h | 14 + keyboards/splitkb/halcyon/kyria/rev4/rev4.c | 28 ++ 9 files changed, 803 insertions(+) create mode 100755 keyboards/splitkb/halcyon/kyria/info.json create mode 100755 keyboards/splitkb/halcyon/kyria/keymaps/default/keymap.c create mode 100755 keyboards/splitkb/halcyon/kyria/keymaps/default/readme.md create mode 100755 keyboards/splitkb/halcyon/kyria/readme.md create mode 100755 keyboards/splitkb/halcyon/kyria/rev4/config.h create mode 100644 keyboards/splitkb/halcyon/kyria/rev4/halconf.h create mode 100755 keyboards/splitkb/halcyon/kyria/rev4/keyboard.json create mode 100644 keyboards/splitkb/halcyon/kyria/rev4/mcuconf.h create mode 100644 keyboards/splitkb/halcyon/kyria/rev4/rev4.c diff --git a/keyboards/splitkb/halcyon/kyria/info.json b/keyboards/splitkb/halcyon/kyria/info.json new file mode 100755 index 00000000000..8e49bb12f3b --- /dev/null +++ b/keyboards/splitkb/halcyon/kyria/info.json @@ -0,0 +1,68 @@ +{ + "manufacturer": "splitkb.com", + "maintainer": "splitkb.com", + "url": "https://splitkb.com", + "usb": { + "device_version": "1.0.0", + "vid": "0x8D1D" + }, + "layout_aliases": { + "LAYOUT": "LAYOUT_split_3x6_5" + }, + "layouts": { + "LAYOUT_split_3x6_5": { + "layout": [ + {"label": "L06", "matrix": [0, 6], "x": 0, "y": 0.75}, + {"label": "L05", "matrix": [0, 5], "x": 1, "y": 0.75}, + {"label": "L04", "matrix": [0, 4], "x": 2, "y": 0.25}, + {"label": "L03", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "L02", "matrix": [0, 2], "x": 4, "y": 0.25}, + {"label": "L01", "matrix": [0, 1], "x": 5, "y": 0.5}, + {"label": "R01", "matrix": [4, 1], "x": 10.5, "y": 0.5}, + {"label": "R02", "matrix": [4, 2], "x": 11.5, "y": 0.25}, + {"label": "R03", "matrix": [4, 3], "x": 12.5, "y": 0}, + {"label": "R04", "matrix": [4, 4], "x": 13.5, "y": 0.25}, + {"label": "R05", "matrix": [4, 5], "x": 14.5, "y": 0.75}, + {"label": "R06", "matrix": [4, 6], "x": 15.5, "y": 0.75}, + {"label": "L12", "matrix": [1, 6], "x": 0, "y": 1.75}, + {"label": "L11", "matrix": [1, 5], "x": 1, "y": 1.75}, + {"label": "L10", "matrix": [1, 4], "x": 2, "y": 1.25}, + {"label": "L09", "matrix": [1, 3], "x": 3, "y": 1}, + {"label": "L08", "matrix": [1, 2], "x": 4, "y": 1.25}, + {"label": "L07", "matrix": [1, 1], "x": 5, "y": 1.5}, + {"label": "R07", "matrix": [5, 1], "x": 10.5, "y": 1.5}, + {"label": "R08", "matrix": [5, 2], "x": 11.5, "y": 1.25}, + {"label": "R09", "matrix": [5, 3], "x": 12.5, "y": 1}, + {"label": "R10", "matrix": [5, 4], "x": 13.5, "y": 1.25}, + {"label": "R11", "matrix": [5, 5], "x": 14.5, "y": 1.75}, + {"label": "R12", "matrix": [5, 6], "x": 15.5, "y": 1.75}, + {"label": "L20", "matrix": [2, 6], "x": 0, "y": 2.75}, + {"label": "L19", "matrix": [2, 5], "x": 1, "y": 2.75}, + {"label": "L18", "matrix": [2, 4], "x": 2, "y": 2.25}, + {"label": "L17", "matrix": [2, 3], "x": 3, "y": 2}, + {"label": "L16", "matrix": [2, 2], "x": 4, "y": 2.25}, + {"label": "L15", "matrix": [2, 1], "x": 5, "y": 2.5}, + {"label": "L14", "matrix": [3, 3], "x": 6, "y": 3}, + {"label": "L13", "matrix": [2, 0], "x": 7, "y": 3.25}, + {"label": "R13", "matrix": [6, 0], "x": 8.5, "y": 3.25}, + {"label": "R14", "matrix": [7, 3], "x": 9.5, "y": 3}, + {"label": "R15", "matrix": [6, 1], "x": 10.5, "y": 2.5}, + {"label": "R16", "matrix": [6, 2], "x": 11.5, "y": 2.25}, + {"label": "R17", "matrix": [6, 3], "x": 12.5, "y": 2}, + {"label": "R18", "matrix": [6, 4], "x": 13.5, "y": 2.25}, + {"label": "R19", "matrix": [6, 5], "x": 14.5, "y": 2.75}, + {"label": "R20", "matrix": [6, 6], "x": 15.5, "y": 2.75}, + {"label": "L25", "matrix": [3, 4], "x": 2.5, "y": 3.25}, + {"label": "L24", "matrix": [3, 2], "x": 3.5, "y": 3.25}, + {"label": "L23", "matrix": [3, 1], "x": 4.5, "y": 3.5}, + {"label": "L22", "matrix": [3, 5], "x": 5.5, "y": 4}, + {"label": "L21", "matrix": [3, 0], "x": 6.5, "y": 4.25}, + {"label": "R21", "matrix": [7, 0], "x": 9, "y": 4.25}, + {"label": "R22", "matrix": [7, 5], "x": 10, "y": 4}, + {"label": "R23", "matrix": [7, 1], "x": 11, "y": 3.5}, + {"label": "R24", "matrix": [7, 2], "x": 12, "y": 3.25}, + {"label": "R25", "matrix": [7, 4], "x": 13, "y": 3.25} + ] + } + } +} diff --git a/keyboards/splitkb/halcyon/kyria/keymaps/default/keymap.c b/keyboards/splitkb/halcyon/kyria/keymaps/default/keymap.c new file mode 100755 index 00000000000..78fd8d4fab0 --- /dev/null +++ b/keyboards/splitkb/halcyon/kyria/keymaps/default/keymap.c @@ -0,0 +1,206 @@ +// Copyright 2024 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layers { + _QWERTY = 0, + _DVORAK, + _COLEMAK_DH, + _NAV, + _SYM, + _FUNCTION, + _ADJUST, +}; + + +// Aliases for readability +#define QWERTY DF(_QWERTY) +#define COLEMAK DF(_COLEMAK_DH) +#define DVORAK DF(_DVORAK) + +#define SYM MO(_SYM) +#define NAV MO(_NAV) +#define FKEYS MO(_FUNCTION) +#define ADJUST MO(_ADJUST) + +#define CTL_ESC MT(MOD_LCTL, KC_ESC) +#define CTL_QUOT MT(MOD_RCTL, KC_QUOTE) +#define CTL_MINS MT(MOD_RCTL, KC_MINUS) +#define ALT_ENT MT(MOD_LALT, KC_ENT) + +// Note: LAlt/Enter (ALT_ENT) is not the same thing as the keyboard shortcut Alt+Enter. +// The notation `mod/tap` denotes a key that activates the modifier `mod` when held down, and +// produces the key `tap` when tapped (i.e. pressed and released). + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* + * Base Layer: QWERTY + * + * ,-------------------------------------------. ,-------------------------------------------. + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * |Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' "| + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + * | | | Enter| | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_QWERTY] = LAYOUT( + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y, KC_U , KC_I , KC_O , KC_P , KC_BSPC, + CTL_ESC , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H, KC_J , KC_K , KC_L ,KC_SCLN,CTL_QUOT, + KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_N, KC_M ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, + ADJUST , KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP + ), + +/* + * Base Layer: Dvorak + * + * ,-------------------------------------------. ,-------------------------------------------. + * | Tab | ' " | , < | . > | P | Y | | F | G | C | R | L | Bksp | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * |Ctrl/Esc| A | O | E | U | I | | D | H | T | N | S |Ctrl/- _| + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | LShift | ; : | Q | J | K | X | [ { |CapsLk| |F-keys| ] } | B | M | W | V | Z | RShift | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + * | | | Enter| | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_DVORAK] = LAYOUT( + KC_TAB ,KC_QUOTE,KC_COMM, KC_DOT, KC_P , KC_Y , KC_F, KC_G , KC_C , KC_R , KC_L , KC_BSPC, + CTL_ESC , KC_A , KC_O , KC_E , KC_U , KC_I , KC_D, KC_H , KC_T , KC_N , KC_S , CTL_MINS, + KC_LSFT ,KC_SCLN, KC_Q , KC_J , KC_K , KC_X , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_B, KC_M , KC_W , KC_V , KC_Z , KC_RSFT, + ADJUST, KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP + ), + +/* + * Base Layer: Colemak DH + * + * ,-------------------------------------------. ,-------------------------------------------. + * | Tab | Q | W | F | P | B | | J | L | U | Y | ; : | Bksp | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * |Ctrl/Esc| A | R | S | T | G | | M | N | E | I | O |Ctrl/' "| + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | LShift | Z | X | C | D | V | [ { |CapsLk| |F-keys| ] } | K | H | , < | . > | / ? | RShift | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + * | | | Enter| | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_COLEMAK_DH] = LAYOUT( + KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_B , KC_J, KC_L , KC_U , KC_Y ,KC_SCLN, KC_BSPC, + CTL_ESC , KC_A , KC_R , KC_S , KC_T , KC_G , KC_M, KC_N , KC_E , KC_I , KC_O , CTL_QUOT, + KC_LSFT , KC_Z , KC_X , KC_C , KC_D , KC_V , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_K, KC_H ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, + ADJUST, KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP + ), + +/* + * Nav Layer: Media, navigation + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | | | | | | | PgUp | Home | ↑ | End | VolUp| Delete | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | GUI | Alt | Ctrl | Shift| | | PgDn | ← | ↓ | → | VolDn| Insert | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | | | | | | |ScLck | | | | Pause|M Prev|M Play|M Next|VolMut| PrtSc | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_NAV] = LAYOUT( + _______, _______, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_VOLU, KC_DEL, + _______, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_VOLD, KC_INS, + _______, _______, _______, _______, _______, _______, _______, KC_SCRL, _______, _______,KC_PAUSE, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_PSCR, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +/* + * Sym Layer: Numbers and symbols + * + * ,-------------------------------------------. ,-------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | = | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | + | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | | \ | : | ; | - | [ | { | | | | } | ] | _ | , | . | / | ? | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_SYM] = LAYOUT( + KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_EQL , + KC_TILD , KC_EXLM, KC_AT , KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PLUS, + KC_PIPE , KC_BSLS, KC_COLN, KC_SCLN, KC_MINS, KC_LBRC, KC_LCBR, _______, _______, KC_RCBR, KC_RBRC, KC_UNDS, KC_COMM, KC_DOT, KC_SLSH, KC_QUES, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +/* + * Function Layer: Function keys + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | F9 | F10 | F11 | F12 | | | | | | | | | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | F5 | F6 | F7 | F8 | | | | Shift| Ctrl | Alt | GUI | | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | F1 | F2 | F3 | F4 | | | | | | | | | | | | | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_FUNCTION] = LAYOUT( + _______, KC_F9 , KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, + _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , _______, _______, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, _______, + _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +/* + * Adjust Layer: Default layer settings, RGB + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | | |QWERTY| | | | | | | | | | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | | |Dvorak| | | | TOG | SAI | HUI | VAI | MOD | | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | | |Colmak| | | | | | | | | SAD | HUD | VAD | RMOD | | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_ADJUST] = LAYOUT( + _______, _______, _______, QWERTY , _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, DVORAK , _______, _______, RM_TOGG, RM_SATU, RM_HUEU, RM_VALU, RM_NEXT, _______, + _______, _______, _______, COLEMAK, _______, _______,_______, _______, _______, _______, _______, RM_SATD, RM_HUED, RM_VALD, RM_PREV, _______, + _______, _______, _______,_______, _______, _______, _______, _______, _______, _______ + ), + +// /* +// * Layer template +// * +// * ,-------------------------------------------. ,-------------------------------------------. +// * | | | | | | | | | | | | | | +// * |--------+------+------+------+------+------| |------+------+------+------+------+--------| +// * | | | | | | | | | | | | | | +// * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +// * | | | | | | | | | | | | | | | | | | +// * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' +// * | | | | | | | | | | | | +// * | | | | | | | | | | | | +// * `----------------------------------' `----------------------------------' +// */ +// [_LAYERINDEX] = LAYOUT( +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +// ), +// +}; \ No newline at end of file diff --git a/keyboards/splitkb/halcyon/kyria/keymaps/default/readme.md b/keyboards/splitkb/halcyon/kyria/keymaps/default/readme.md new file mode 100755 index 00000000000..e56bbbb773c --- /dev/null +++ b/keyboards/splitkb/halcyon/kyria/keymaps/default/readme.md @@ -0,0 +1,242 @@ +# Halcyon Kyria's Default Keymap + +![KLE render of the default Halcyon Kyria keymap with QWERTY as the base layer. Layers are shown in sublegends.](https://i.ibb.co/RQZx2dY/default-kyria2.jpg) + + +The default keymap contains 5 layers which allows it to include all keys found on an ANSI layout TKL keyboard plus media keys. + +The five different layers are the following: +1. Base layer (QWERTY, Colemak-DH or Dvorak) +2. Navigation layer +3. Symbols/Numbers layer +4. Function layer +5. Adjust layer + +## Base layer(s) +``` +Base Layer: - + +,-------------------------------------------. ,-------------------------------------------. +| Tab | - | - | - | - | - | | - | - | - | - | - | Bksp | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +|Ctrl/Esc| - | - | - | - | - | | - | - | - | - | - |Ctrl/ - | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| LShift | - | - | - | - | - | [ { |CapsLk| |F-Keys| ] } | - | - | - | - | - | RShift | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + | | | Enter| | | | | | | | | + `----------------------------------' `----------------------------------' +``` +Three different well-known keyboard layouts are provided to fill in the placeholder `-` keys: QWERTY, Colemak-DH, and Dvorak. The default layer can be changed at runtime, more info on that in the section on the [adjust layer](#adjust-layer). + +For the rest of this write-up, the base layer will be assumed to be QWERTY and will be used as a reference to describe physical keys, e.g. “B key” vs, the much more verbose, “lower inner index key”. + +``` +Base Layer: QWERTY + +,-------------------------------------------. ,-------------------------------------------. +| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' "| +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + | | | Enter| | | | | | | | | + `----------------------------------' `----------------------------------' +``` + +Aside from variations in the alpha cluster, the rest of the base keys remain the same and are designed to feel familiar. + +![Step-by-step animation of the transformation of an ortholinear TKL to a Kyria](https://i.imgur.com/uVDCOek.gif) + +
+After making transformations to the classic ANSI US QWERTY TKL 60% to arrive to the layout of the Kyria, as illustrated in the animation above, the result looks like this: + +``` +,-------------------------------------------. ,-------------------------------------------. +| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +| Cap Lk | A | S | D | F | G | | H | J | K | L | ; : | ' " | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| LShift | Z | X | C | V | B | | | | | | N | M | , < | . > | / ? | RShift | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + | LCtrl| LGUI | LAlt | Space| | | | Space| AltGr| RGUI | Menu | + | | | | | | | | | | | | + `----------------------------------' '----------------------------------' +``` + +First thing to notice is the presence of blank keys. To fill in the blank keys above the Space keys, we can take inspiration from other split keyboards featuring an extra inner index column on each half. A common mapping for those kind of keys are the bracket keys that got removed in the fourth step of the animated transformation. The thumb keys besides Spaces is prime real estate for dedicated layer-switching keys. It doesn't matter on which side is assigned the sym-layer-switch key but it helps to keep the nav-layer-switch on the left in order to keep the arrow keys on the right side like on a classic keyboard, so we'll put nav on the left and sym on the right. We'll address the remaining blank thumb keys later. + +The base layer is starting to form but there remains some flaws. One glaring issue is the position of Control. Control is a very commonly used function but the key on which it sits right now is way too tucked in under the hand to be able to press it comfortably with either the thumb or the pinky from resting position. In fact, installing a rotary encoder there is a common move among Kyria users and I guarantee you that activating Control by holding down a rotary encoder does not spark joy. Instead, let's employ a popular trick that involves remapping the current Caps Lock key, which is positioned at a comfortable position on the keyboard, to Control. + +We can go further though; a variant of this trick makes the Control key produce Escape when tapped. This is called a “modtap”. There is no use to tapping Control by itself without chording it with another key and there is no use to holding down the Esc key so why not combine the two into a single key? + +All of this leaves us with three blank keys. + +``` +,-------------------------------------------. ,-------------------------------------------. +| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : | ' " | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| LShift | Z | X | C | V | B | [ { | | | | ] } | N | M | , < | . > | / ? | RShift | +`--------+-------------+--------------------+------+------| |------+------+--------------------+------+---------------' + | | LGUI | LAlt | Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + | | | | | | | | | | | | + `----------------------------------' '----------------------------------' +``` + +These keys are not easily reachable while touch typing (that is, not reachable without picking up your hand) and should thus be associated with functions that you are not likely to be typed within a stream of text. The idea is that if you have to pick up your hand to hit a key, you want it to be at a time when you are likely to be pausing your interaction with the machine, rather than in the midst of a flurry of typing. They're thus well suited for accessing the adjust layer and the function layer. We can also toss in Caps Lock even though it is an editing-type function that gets used within a stream of text because shouting in ALL-CAPS should be a deliberate action. + +``` +,-------------------------------------------. ,-------------------------------------------. +| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : | ' " | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + |Adjust| LGUI | LAlt | Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' +``` + +The next glaring issue is the absence of an Enter key on the current base layer this far. Enter is a very frequently used key so it deserves to be placed at a good spot in the keymap. The best way to insert it in the keymap with minimal changes to the current layout is to use modtaps. A tempting solution is to turn the RShift key into a RShift/Enter modtap but that can result in chat messages sent too frustratingly early when you're not used to it. Using GUI is also sub-optimal because tapping the GUI modifier actually has a use as opposed to taps of the Control or the Shift key. Pressing and releasing the GUI key by itself opens the App menu in many desktop environments. The natural choice is thus LAlt/Enter. That way, Enter is 1u away from resting thumb position and is unlikely to get accidentally activated because Alt is very rarely used in the midst of prose. + +Finally, we're one Quality-Of-Life update away from the actual base layer. Ctrl/' " not only preserves symmetry in the keymap with Ctrl/Esc but also helps balance the load between your pinkies and invites you to use both hands instead of contortions. Perhaps more importantly, it also frees you from the necessity of picking up your hand, breaking touch typing position and pressing a pinky key with your ring finger in order to execute Ctrl+A or Ctrl+Z. That becomes even more important on a board with such an aggressive pinky columnar stagger like the Kyria. + + +``` +,-------------------------------------------. ,-------------------------------------------. +| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' "| +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + | | | Enter| | | | | | | | | + `----------------------------------' `----------------------------------' +``` + +
+ +## Navigation layer + +``` +Nav Layer: Media, navigation + +,-------------------------------------------. ,-------------------------------------------. +| | | | | | | | PgUp | Home | ↑ | End | VolUp| Delete | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +| | GUI | Alt | Ctrl | Shift| | | PgDn | ← | ↓ | → | VolDn| Insert | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| | | | | | | |ScLck | | | | Pause|M Prev|M Play|M Next|VolMut| PrtSc | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + | | | | | | | | | | | | + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' +``` + +This is where you'll find all the keys that are generally between the main block of a classic keyboard and the numpad in addition to media controls and modifiers on easy access on the home row for fast and comfortable chording with navigation keys. + +Useful mnemonics: +- “GACS” to remember the order of the modifiers on the left-hand home row +- Scroll Lock is on the same key as Caps Lock because they're both locks +- Delete is on the same key as Backspace because they both erase characters +- Home is the leftmost position on the current line so it is above . Same logic applies for End. +- Media Previous = ⏮, Media Next = ⏭ +- Page Up, Page Down and Volume Up, Volume Down are positioned like the main Up and Down keys. + +## Sym layer +``` +Sym Layer: Numbers, symbols + +,-------------------------------------------. ,-------------------------------------------. +| ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | = | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +| ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | + | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| | | \ | : | ; | - | [ | { | | | | } | ] | _ | , | . | / | ? | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + | | | | | | | | | | | | + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' +``` +The top row is the unshifted num row, the home row of the layer is the shifted num row and the bottom row contains the hyphen `-` and the underscore `_` on the best lower row spot because of how frequent they are as well as redundant symbols that are already present on the base layer but are reproduced here to avoid juggling back and forth between base, shift, and sym when typing a string of symbols. + +The layout of the first two rows needs no introduction, you're already used to them but it's worth looking into the structure of the bottom row. + +The two halves are mirrored in a sense. On the right, you can find , . / at their usual spots with the addition of Shift+/=? to the right of the / key to remove the need to press simultaneously Sym and a Shift key to access `?`. + +Now, if you look at the left side, you'll notice that the mirror of , is ;, the mirror of . is : and the mirror of / is \\. The same logic used for Shift+/=? also applies to Shift+\\=|. + +In case you wish to combine Shift with a symbol key anyways, you can hold down Shift on the base layer with your pinky, activate Sym with your right thumb and while still holding down the Shift key, tap your desired symbol key. Same thing if you need Ctrl+Digit. + +## Function layer +``` +Function Layer: Function keys + +,-------------------------------------------. ,-------------------------------------------. +| | F9 | F10 | F11 | F12 | | | | | | | | | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +| | F5 | F6 | F7 | F8 | | | | Shift| Ctrl | Alt | GUI | | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| | F1 | F2 | F3 | F4 | | | | | | | | | | | | | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + | | | | | | | | | | | | + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' +``` +In a similar fashion to the nav layer, pressing down `FKEYS` with the right thumb enables a numpad of function keys on the opposite hand and modifiers on the right-hand home row. Once again, mirror symmetry is leveraged in this keymap for the order of the right-hand modifiers. + +The Alt modifier, despite being situated on the right half of the keyboard is *not* `KC_RALT`, it is `KC_LALT`. `KC_RALT` is actually the AltGr key which generally acts very differently to the left Alt key. Keyboard shortcuts involving AltGr+F# are rare and infrequent as opposed to the much more common Alt+F# shortcuts. Consequently, `KC_LALT` was chosen for the function layer. + +Since there are more than 10 function keys, the cluster of F-keys does not follow the usual 3×3+1 numpad arrangement. + + +## Adjust layer +``` +Adjust Layer: Default layer settings, RGB + +,-------------------------------------------. ,-------------------------------------------. +| | | |QWERTY| | | | | | | | | | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +| | | |Dvorak| | | | TOG | SAI | HUI | VAI | MOD | | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| | | |Colmak| | | | | | | | | SAD | HUD | VAD | RMOD | | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + | | | | | | | | | | | | + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' +``` + +Default layer settings on the left and various RGB underglow controls on the right. + +The default layer settings are lined up on the middle finger column because the home middle finger key is D on QWERTY (like the “D” in “Dvorak”) and the lower middle finger key is C on QWERTY (like the “C” in “Colemak”). I can hear you say that “QWERTY” doesn't start with “E” but Dvorak and Colemak were already aligned in a column so the QWERTY may as well join the formation. + +NOTE: The default layer settings set by those keys are *NOT* stored in EEPROM and thus do not persist through boots. If you wish to change the default layer in a non-volatile manner, either change the order of the layers in the firmware, for example like so if you want to set Dvorak as the new default: +```c +enum layers { + _DVORAK = 0, + _QWERTY, + _COLEMAK_DH, + _NAV, + _SYM, + _FUNCTION, + _ADJUST +}; +``` +or re-define the `QWERTY`, `COLEMAK` and `DVORAK` keys to point to custom keycodes starting on `SAFE_RANGE` and calling the `set_single_persistent_default_layer` function inside of `process_record_user`. + +## Hardware Features + +### Rotary Encoder +The left rotary encoder is programmed to control the volume whereas the right encoder sends PgUp or PgDn on every turn. + +## Going further… + +This default keymap can be used as is, unchanged, as a daily driver for your Kyria but you're invited to treat your keymap like a bonsai. At the beginning, it's just like the default keymap but from time to time, you can tweak it a little. Cut a little key here, let another combo grow there. Slowly but surely it will be a unique keymap that will fit you like a glove. + +Check out the #keymap-ideas channel on the official SplitKB Discord server for inspiration. diff --git a/keyboards/splitkb/halcyon/kyria/readme.md b/keyboards/splitkb/halcyon/kyria/readme.md new file mode 100755 index 00000000000..62689d35b05 --- /dev/null +++ b/keyboards/splitkb/halcyon/kyria/readme.md @@ -0,0 +1,31 @@ +# Halcyon Kyria + +![splitkb/halcyon/kyria](https://i.imgur.com/n7WuUs9.jpg) + +The Halcyon Kyria rev4 is the fourth Kyria revision and the first keyboard in our Halcyon range. Similar to Aurora, all keyboards in the series share the same feature set. The key highlights: + +- Halcyon keyboards come preassembled! You won't need a soldering iron. +- You'll be able to install [VIK](https://github.com/sadekbaroudi/vik) modules. +- It'll come fully documented, which includes the unboxing, assembly (with only a screwdriver), first installation and some advanced use cases. +- Both the connection to the host device as well as the interconnect between the keyboard halves use USB C. +- The controller has full ESD protection on all USB C ports, as well as all switch matrix GPIO! +- The controller is interchangable. If part of your keyboard ever breaks, we can replace just the bits that need replacing. + +* Keyboard Maintainer: [splitkb.com](https://github.com/splitkb.com) +* Hardware Availability: [splitkb.com](https://splitkb.com). + +Make example for this keyboard (after setting up your build environment): + + make splitkb/halcyon/kyria/rev4:default + +The keyboard can be flashed by copying the resulting `.uf2` file onto the `RPI-RP2` flash drive. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Reset button**: Double-tap the reset button at the top of the controller, right above the USB-C port. +* **Bootloader reset**: Hold down the "Boot" button and plug in the keyboard. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/splitkb/halcyon/kyria/rev4/config.h b/keyboards/splitkb/halcyon/kyria/rev4/config.h new file mode 100755 index 00000000000..c09744f9238 --- /dev/null +++ b/keyboards/splitkb/halcyon/kyria/rev4/config.h @@ -0,0 +1,32 @@ +// Copyright 2024 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// Make it easier to enter the bootloader +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U + +// UART1, communication between the two halves +#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode. +#define SERIAL_USART_TX_PIN GP28 // USART TX pin +#define SERIAL_USART_RX_PIN GP29 // USART RX pin +#define SERIAL_PIO_USE_PIO1 // Use PIO1 as PIO0 is used for WS2812 driver + +// VBUS detection +#define USB_VBUS_PIN GP1 + +//// VIK + +// GPIO1 = GP27 +// GPIO2 = GP26 +// CS = GP13 + +#define I2C_DRIVER I2C0 +#define I2C1_SDA_PIN GP16 +#define I2C1_SCL_PIN GP17 + +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN GP14 +#define SPI_MOSI_PIN GP15 +#define SPI_MISO_PIN GP12 \ No newline at end of file diff --git a/keyboards/splitkb/halcyon/kyria/rev4/halconf.h b/keyboards/splitkb/halcyon/kyria/rev4/halconf.h new file mode 100644 index 00000000000..1050ebf3130 --- /dev/null +++ b/keyboards/splitkb/halcyon/kyria/rev4/halconf.h @@ -0,0 +1,14 @@ +// Copyright 2024 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +//// VIK + +#define HAL_USE_I2C TRUE + +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#include_next \ No newline at end of file diff --git a/keyboards/splitkb/halcyon/kyria/rev4/keyboard.json b/keyboards/splitkb/halcyon/kyria/rev4/keyboard.json new file mode 100755 index 00000000000..c9e891964b1 --- /dev/null +++ b/keyboards/splitkb/halcyon/kyria/rev4/keyboard.json @@ -0,0 +1,168 @@ +{ + "keyboard_name": "Halcyon Kyria rev4", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "GP23", "pin_b": "GP22", "resolution": 2} + ] + }, + "features": { + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP19", "GP20", "GP25", "GP4", "GP9", "GP10", "GP5"], + "rows": ["GP8", "GP11", "GP7", "GP6"] + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "multisplash": true, + "pixel_flow": true, + "pixel_fractal": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "solid_color": true, + "solid_multisplash": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "default": { + "animation": "cycle_left_right" + }, + "driver": "ws2812", + "layout": [ + {"x": 75, "y": 2, "flags": 2}, + {"x": 50, "y": 1, "flags": 2}, + {"x": 14, "y": 4, "flags": 2}, + {"x": 25, "y": 45, "flags": 2}, + {"x": 58, "y": 49, "flags": 2}, + {"x": 94, "y": 53, "flags": 2}, + {"matrix": [3, 0], "x": 94, "y": 64, "flags": 4}, + {"matrix": [3, 5], "x": 79, "y": 60, "flags": 4}, + {"matrix": [3, 1], "x": 65, "y": 53, "flags": 4}, + {"matrix": [3, 2], "x": 51, "y": 49, "flags": 4}, + {"matrix": [3, 4], "x": 36, "y": 49, "flags": 4}, + {"matrix": [2, 0], "x": 101, "y": 49, "flags": 4}, + {"matrix": [3, 3], "x": 87, "y": 45, "flags": 4}, + {"matrix": [2, 1], "x": 72, "y": 38, "flags": 4}, + {"matrix": [2, 2], "x": 58, "y": 34, "flags": 4}, + {"matrix": [2, 3], "x": 43, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 29, "y": 34, "flags": 4}, + {"matrix": [2, 5], "x": 14, "y": 41, "flags": 4}, + {"matrix": [2, 6], "x": 0, "y": 41, "flags": 4}, + {"matrix": [1, 1], "x": 72, "y": 23, "flags": 4}, + {"matrix": [1, 2], "x": 58, "y": 19, "flags": 4}, + {"matrix": [1, 3], "x": 43, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 29, "y": 19, "flags": 4}, + {"matrix": [1, 5], "x": 14, "y": 26, "flags": 4}, + {"matrix": [1, 6], "x": 0, "y": 26, "flags": 4}, + {"matrix": [0, 1], "x": 72, "y": 8, "flags": 4}, + {"matrix": [0, 2], "x": 58, "y": 4, "flags": 4}, + {"matrix": [0, 3], "x": 43, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 29, "y": 4, "flags": 4}, + {"matrix": [0, 5], "x": 14, "y": 11, "flags": 4}, + {"matrix": [0, 6], "x": 0, "y": 11, "flags": 4}, + {"x": 149, "y": 2, "flags": 2}, + {"x": 174, "y": 1, "flags": 2}, + {"x": 210, "y": 4, "flags": 2}, + {"x": 199, "y": 45, "flags": 2}, + {"x": 166, "y": 49, "flags": 2}, + {"x": 130, "y": 53, "flags": 2}, + {"matrix": [7, 0], "x": 130, "y": 64, "flags": 4}, + {"matrix": [7, 5], "x": 145, "y": 60, "flags": 4}, + {"matrix": [7, 1], "x": 159, "y": 53, "flags": 4}, + {"matrix": [7, 2], "x": 173, "y": 49, "flags": 4}, + {"matrix": [7, 4], "x": 188, "y": 49, "flags": 4}, + {"matrix": [6, 0], "x": 123, "y": 49, "flags": 4}, + {"matrix": [7, 3], "x": 137, "y": 45, "flags": 4}, + {"matrix": [6, 1], "x": 152, "y": 38, "flags": 4}, + {"matrix": [6, 2], "x": 166, "y": 34, "flags": 4}, + {"matrix": [6, 3], "x": 181, "y": 30, "flags": 4}, + {"matrix": [6, 4], "x": 195, "y": 34, "flags": 4}, + {"matrix": [6, 5], "x": 210, "y": 41, "flags": 4}, + {"matrix": [6, 6], "x": 224, "y": 41, "flags": 4}, + {"matrix": [5, 1], "x": 152, "y": 23, "flags": 4}, + {"matrix": [5, 2], "x": 166, "y": 19, "flags": 4}, + {"matrix": [5, 3], "x": 181, "y": 15, "flags": 4}, + {"matrix": [5, 4], "x": 195, "y": 19, "flags": 4}, + {"matrix": [5, 5], "x": 210, "y": 26, "flags": 4}, + {"matrix": [5, 6], "x": 224, "y": 26, "flags": 4}, + {"matrix": [4, 1], "x": 152, "y": 8, "flags": 4}, + {"matrix": [4, 2], "x": 166, "y": 4, "flags": 4}, + {"matrix": [4, 3], "x": 181, "y": 0, "flags": 4}, + {"matrix": [4, 4], "x": 195, "y": 4, "flags": 4}, + {"matrix": [4, 5], "x": 210, "y": 11, "flags": 4}, + {"matrix": [4, 6], "x": 224, "y": 11, "flags": 4} + ], + "max_brightness": 128, + "sleep": true, + "split_count": [31, 31] + }, + "split": { + "enabled": true, + "handedness": { + "pin": "GP24" + }, + "matrix_pins": { + "right": { + "cols": ["GP5", "GP10", "GP9", "GP4", "GP25", "GP20", "GP19"], + "rows": ["GP8", "GP11", "GP7", "GP6"] + } + }, + "serial": { + "driver": "vendor" + }, + "transport": { + "sync": { + "matrix_state": true + } + } + }, + "usb": { + "pid": "0x7FCE" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP3" + } +} diff --git a/keyboards/splitkb/halcyon/kyria/rev4/mcuconf.h b/keyboards/splitkb/halcyon/kyria/rev4/mcuconf.h new file mode 100644 index 00000000000..6792b923f10 --- /dev/null +++ b/keyboards/splitkb/halcyon/kyria/rev4/mcuconf.h @@ -0,0 +1,14 @@ +// Copyright 2024 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +//// VIK + +#undef RP_I2C_USE_I2C0 +#define RP_I2C_USE_I2C0 TRUE + +#undef RP_SPI_USE_SPI1 +#define RP_SPI_USE_SPI1 TRUE \ No newline at end of file diff --git a/keyboards/splitkb/halcyon/kyria/rev4/rev4.c b/keyboards/splitkb/halcyon/kyria/rev4/rev4.c new file mode 100644 index 00000000000..27671b9d7ce --- /dev/null +++ b/keyboards/splitkb/halcyon/kyria/rev4/rev4.c @@ -0,0 +1,28 @@ +// Copyright 2024 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { + return false; + } + if (index == 0) { + // Volume control + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (index == 1) { + // Page up/Page down + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } + return false; +} +#endif From 191172aa4e03081ec36cc918a6ac7ffe289162d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=E1=BA=AFn?= <59417802+MaiTheSan@users.noreply.github.com> Date: Mon, 2 Dec 2024 23:35:24 -0800 Subject: [PATCH 087/365] [Keyboard] Add NCR80 ALPS SKFL/FR (#24625) * ADD NCR80 ALPS SKFL/FR * fix * Update config.h * Update config.h * Update keyboards/salane/ncr80alpsskfl/keyboard.json Co-authored-by: Duncan Sutherland * Update keyboards/salane/ncr80alpsskfl/keymaps/default/keymap.c Co-authored-by: Duncan Sutherland * Update keyboards/salane/ncr80alpsskfl/keymaps/default/keymap.c Co-authored-by: Duncan Sutherland * Update keyboards/salane/ncr80alpsskfl/keyboard.json Co-authored-by: jack * Update keyboards/salane/ncr80alpsskfl/readme.md Co-authored-by: jack --------- Co-authored-by: Duncan Sutherland Co-authored-by: jack --- keyboards/salane/ncr80alpsskfl/config.h | 17 +++ keyboards/salane/ncr80alpsskfl/keyboard.json | 124 ++++++++++++++++++ .../ncr80alpsskfl/keymaps/default/keymap.c | 28 ++++ keyboards/salane/ncr80alpsskfl/readme.md | 29 ++++ 4 files changed, 198 insertions(+) create mode 100644 keyboards/salane/ncr80alpsskfl/config.h create mode 100644 keyboards/salane/ncr80alpsskfl/keyboard.json create mode 100644 keyboards/salane/ncr80alpsskfl/keymaps/default/keymap.c create mode 100644 keyboards/salane/ncr80alpsskfl/readme.md diff --git a/keyboards/salane/ncr80alpsskfl/config.h b/keyboards/salane/ncr80alpsskfl/config.h new file mode 100644 index 00000000000..cc6fb298f41 --- /dev/null +++ b/keyboards/salane/ncr80alpsskfl/config.h @@ -0,0 +1,17 @@ +/* +Copyright 2024 Salane +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define RP2040_FLASH_GENERIC_03H diff --git a/keyboards/salane/ncr80alpsskfl/keyboard.json b/keyboards/salane/ncr80alpsskfl/keyboard.json new file mode 100644 index 00000000000..512593d351e --- /dev/null +++ b/keyboards/salane/ncr80alpsskfl/keyboard.json @@ -0,0 +1,124 @@ +{ + "keyboard_name": "NCR80 ALPS SKFL", + "manufacturer": "Salane", + "url": "", + "maintainer": "Mai The San", + "processor": "RP2040", + "bootloader": "rp2040", + "usb": { + "vid": "0x534C", + "pid": "0x087A", + "device_version": "0.0.1" + }, + "matrix_pins": { + "rows": ["GP24", "GP9", "GP10", "GP13", "GP12", "GP11"], + "cols": ["GP16", "GP17", "GP18", "GP19", "GP20", "GP21", "GP22", "GP23", "GP25", "GP26", "GP27", "GP28", "GP29", "GP6", "GP5", "GP4", "GP3"] + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true + }, + "indicators": { + "num_lock": "GP0", + "caps_lock": "GP1", + "scroll_lock": "GP2" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "K01", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "K02", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "K03", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "K04", "matrix": [0, 4], "x": 5, "y": 0}, + {"label": "K05", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "K06", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "K07", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "K08", "matrix": [0, 8], "x": 9.5, "y": 0}, + {"label": "K09", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "K0A", "matrix": [0, 10], "x": 12, "y": 0}, + {"label": "K0B", "matrix": [0, 11], "x": 13, "y": 0}, + {"label": "K0C", "matrix": [0, 12], "x": 14, "y": 0}, + + {"label": "K10", "matrix": [1, 0], "x": 0, "y": 2}, + {"label": "K11", "matrix": [1, 1], "x": 1, "y": 2}, + {"label": "K12", "matrix": [1, 2], "x": 2, "y": 2}, + {"label": "K13", "matrix": [1, 3], "x": 3, "y": 2}, + {"label": "K14", "matrix": [1, 4], "x": 4, "y": 2}, + {"label": "K15", "matrix": [1, 5], "x": 5, "y": 2}, + {"label": "K16", "matrix": [1, 6], "x": 6, "y": 2}, + {"label": "K17", "matrix": [1, 7], "x": 7, "y": 2}, + {"label": "K18", "matrix": [1, 8], "x": 8, "y": 2}, + {"label": "K19", "matrix": [1, 9], "x": 9, "y": 2}, + {"label": "K1A", "matrix": [1, 10], "x": 10, "y": 2}, + {"label": "K1B", "matrix": [1, 11], "x": 11, "y": 2}, + {"label": "K1C", "matrix": [1, 12], "x": 12, "y": 2}, + {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 2}, + {"label": "K1D", "matrix": [1, 13], "x": 14, "y": 2}, + {"label": "K1E", "matrix": [1, 14], "x": 15.25, "y": 2}, + {"label": "K1F", "matrix": [1, 15], "x": 16.25, "y": 2}, + {"label": "K1G", "matrix": [1, 16], "x": 17.25, "y": 2}, + + {"label": "K20", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.5}, + {"label": "K21", "matrix": [2, 1], "x": 1.5, "y": 3}, + {"label": "K22", "matrix": [2, 2], "x": 2.5, "y": 3}, + {"label": "K23", "matrix": [2, 3], "x": 3.5, "y": 3}, + {"label": "K24", "matrix": [2, 4], "x": 4.5, "y": 3}, + {"label": "K25", "matrix": [2, 5], "x": 5.5, "y": 3}, + {"label": "K26", "matrix": [2, 6], "x": 6.5, "y": 3}, + {"label": "K27", "matrix": [2, 7], "x": 7.5, "y": 3}, + {"label": "K28", "matrix": [2, 8], "x": 8.5, "y": 3}, + {"label": "K29", "matrix": [2, 9], "x": 9.5, "y": 3}, + {"label": "K2A", "matrix": [2, 10], "x": 10.5, "y": 3}, + {"label": "K2B", "matrix": [2, 11], "x": 11.5, "y": 3}, + {"label": "K2C", "matrix": [2, 12], "x": 12.5, "y": 3}, + {"label": "K2D", "matrix": [2, 13], "x": 13.5, "y": 3, "w": 1.5}, + {"label": "K2E", "matrix": [2, 14], "x": 15.25, "y": 3}, + {"label": "K2F", "matrix": [2, 15], "x": 16.25, "y": 3}, + {"label": "K2G", "matrix": [2, 16], "x": 17.25, "y": 3}, + + {"label": "K30", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.75}, + {"label": "K31", "matrix": [3, 1], "x": 1.75, "y": 4}, + {"label": "K32", "matrix": [3, 2], "x": 2.75, "y": 4}, + {"label": "K33", "matrix": [3, 3], "x": 3.75, "y": 4}, + {"label": "K34", "matrix": [3, 4], "x": 4.75, "y": 4}, + {"label": "K35", "matrix": [3, 5], "x": 5.75, "y": 4}, + {"label": "K36", "matrix": [3, 6], "x": 6.75, "y": 4}, + {"label": "K37", "matrix": [3, 7], "x": 7.75, "y": 4}, + {"label": "K38", "matrix": [3, 8], "x": 8.75, "y": 4}, + {"label": "K39", "matrix": [3, 9], "x": 9.75, "y": 4}, + {"label": "K3A", "matrix": [3, 10], "x": 10.75, "y": 4}, + {"label": "K3B", "matrix": [3, 11], "x": 11.75, "y": 4}, + {"label": "K3D", "matrix": [3, 13], "x": 12.75, "y": 4, "w": 2.25}, + + {"label": "K40", "matrix": [4, 0], "x": 0, "y": 5, "w": 2.25}, + {"label": "K42", "matrix": [4, 2], "x": 2.25, "y": 5}, + {"label": "K43", "matrix": [4, 3], "x": 3.25, "y": 5}, + {"label": "K44", "matrix": [4, 4], "x": 4.25, "y": 5}, + {"label": "K45", "matrix": [4, 5], "x": 5.25, "y": 5}, + {"label": "K46", "matrix": [4, 6], "x": 6.25, "y": 5}, + {"label": "K47", "matrix": [4, 7], "x": 7.25, "y": 5}, + {"label": "K48", "matrix": [4, 8], "x": 8.25, "y": 5}, + {"label": "K49", "matrix": [4, 9], "x": 9.25, "y": 5}, + {"label": "K4A", "matrix": [4, 10], "x": 10.25, "y": 5}, + {"label": "K4B", "matrix": [4, 11], "x": 11.25, "y": 5}, + {"label": "K4C", "matrix": [4, 12], "x": 12.25, "y": 5, "w": 1.75}, + {"label": "K4D", "matrix": [4, 13], "x": 14, "y": 5}, + {"label": "K4F", "matrix": [4, 15], "x": 16.25, "y": 5}, + + {"label": "K50", "matrix": [5, 0], "x": 0, "y": 6, "w": 1.5}, + {"label": "K51", "matrix": [5, 1], "x": 1.5, "y": 6}, + {"label": "K52", "matrix": [5, 2], "x": 2.5, "y": 6, "w": 1.5}, + {"label": "K57", "matrix": [5, 7], "x": 4, "y": 6, "w": 7}, + {"label": "K5B", "matrix": [5, 11], "x": 11, "y": 6, "w": 1.5}, + {"label": "K5C", "matrix": [5, 12], "x": 12.5, "y": 6}, + {"label": "K5D", "matrix": [5, 13], "x": 13.5, "y": 6, "w": 1.5}, + {"label": "K5E", "matrix": [5, 14], "x": 15.25, "y": 6}, + {"label": "K5F", "matrix": [5, 15], "x": 16.25, "y": 6}, + {"label": "K5G", "matrix": [5, 16], "x": 17.25, "y": 6} + ] + } + } +} diff --git a/keyboards/salane/ncr80alpsskfl/keymaps/default/keymap.c b/keyboards/salane/ncr80alpsskfl/keymaps/default/keymap.c new file mode 100644 index 00000000000..e0db9263417 --- /dev/null +++ b/keyboards/salane/ncr80alpsskfl/keymaps/default/keymap.c @@ -0,0 +1,28 @@ +/* Copyright 2023 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_SLSH, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/keyboards/salane/ncr80alpsskfl/readme.md b/keyboards/salane/ncr80alpsskfl/readme.md new file mode 100644 index 00000000000..a8e0c0725ac --- /dev/null +++ b/keyboards/salane/ncr80alpsskfl/readme.md @@ -0,0 +1,29 @@ +# NCR80 ALPS SKFL + +![NCR80 ALPS SKFL](https://i.imgur.com/X964J2P.jpeg) + + PCB Replace for NCR80 with ALPS SKFL switch. + + **Firmware files are SPECIFIC to each board. Firmware files from one, will not work on the other.** Please use the `.hex` or `.bin` appropriate for your board. + +* Keyboard Maintainer: [Mai The San](https://github.com/MaiTheSan) +* Hardware Supported: NCR80 +* Hardware Availability: [Github](https://github.com/MaiTheSan/NCR80-ALPS-SKFL) + +Make examples for this keyboard (after setting up your build environment): + + make salane/ncr80alpsskfl:default + +Flashing example for this keyboard: + + make salane/ncr80alpsskfl:default:flash + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: short 2 pin in the back of pcb and plug the usb in +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file From c5eeac9686b9ff163c91546adc569eb6d433359b Mon Sep 17 00:00:00 2001 From: gtips <51393966+gtips@users.noreply.github.com> Date: Tue, 3 Dec 2024 16:46:37 +0900 Subject: [PATCH 088/365] [Keyboard] Add keyboard reviung46 (#24245) * add keyboard reviung46 * modified keyboards/reviung/reviung46/readme.md * modified keyboards/reviung/reviung46/keyboard.json * modified keyboards/reviung/reviung46/readme.md * fix keyboards/reviung/reviung46/keyboard.json * fix keyboards/reviung/reviung46/keymaps/default/keymap.c fix keyboards/reviung/reviung46/keymaps/via/keymap.c * fix keyboards/reviung/reviung46/keymaps/via/keymap.c * fix keyboards/reviung/reviung46/keyboard.json * fix keyboards/reviung/reviung46/keyboard.json * modified reviung/reviung46/readme.md * fixed keyboards/reviung/reviung46/keyboard.json * fixed keyboards/reviung/reviung46/keymaps/default/keymap.c deleted keyboards/reviung/reviung46/keymaps/via/keymap.c deleted keyboards/reviung/reviung46/keymaps/via/rules.mk * fix keyboards/reviung/reviung46/keyboard.json and keyboards/reviung/reviung46/keymaps/default/keymap.c * Update keyboards/reviung/reviung46/readme.md --------- Co-authored-by: jack --- keyboards/reviung/reviung46/keyboard.json | 463 ++++++++++++++++++ .../reviung46/keymaps/default/keymap.c | 47 ++ keyboards/reviung/reviung46/readme.md | 27 + 3 files changed, 537 insertions(+) create mode 100644 keyboards/reviung/reviung46/keyboard.json create mode 100644 keyboards/reviung/reviung46/keymaps/default/keymap.c create mode 100644 keyboards/reviung/reviung46/readme.md diff --git a/keyboards/reviung/reviung46/keyboard.json b/keyboards/reviung/reviung46/keyboard.json new file mode 100644 index 00000000000..cdf9a24e177 --- /dev/null +++ b/keyboards/reviung/reviung46/keyboard.json @@ -0,0 +1,463 @@ +{ + "keyboard_name": "reviung46", + "manufacturer": "gtips", + "url": "https://github.com/gtips/reviung/tree/master/reviung46/", + "maintainer": "gtips", + "usb": { + "vid": "0x4E95", + "pid": "0x4E19", + "device_version": "0.0.1" + }, + "rgblight": { + "hue_steps": 16, + "saturation_steps": 16, + "brightness_steps": 16, + "led_count": 10, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "alternating": true, + "twinkle": true + } + }, + "ws2812": { + "pin": "D3" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "matrix_pins": { + "cols": ["B5", "C6", "D4", "D0", "D1", "D2"], + "rows": ["B6", "B2", "B3", "B1", "F7", "F6", "F5", "F4"] + }, + "diode_direction": "COL2ROW", + "development_board": "promicro", + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [0, 3], "x": 5.5, "y": 0}, + {"matrix": [0, 4], "x": 6.5, "y": 0}, + {"matrix": [0, 5], "x": 7.5, "y": 0}, + {"matrix": [4, 0], "x": 8.5, "y": 0}, + {"matrix": [4, 1], "x": 9.5, "y": 0}, + {"matrix": [4, 2], "x": 10.5, "y": 0}, + {"matrix": [4, 3], "x": 11.5, "y": 0}, + {"matrix": [4, 4], "x": 12.5, "y": 0}, + {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 3.75, "y": 1}, + {"matrix": [1, 2], "x": 4.75, "y": 1}, + {"matrix": [1, 3], "x": 5.75, "y": 1}, + {"matrix": [1, 4], "x": 6.75, "y": 1}, + {"matrix": [1, 5], "x": 7.75, "y": 1}, + {"matrix": [5, 0], "x": 8.75, "y": 1}, + {"matrix": [5, 1], "x": 9.75, "y": 1}, + {"matrix": [5, 2], "x": 10.75, "y": 1}, + {"matrix": [5, 3], "x": 11.75, "y": 1}, + {"matrix": [5, 4], "x": 12.75, "y": 1}, + {"matrix": [5, 5], "x": 13.75, "y": 1, "w": 1.25}, + + {"matrix": [2, 0], "x": 1, "y": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, + {"matrix": [2, 2], "x": 4.25, "y": 2}, + {"matrix": [2, 3], "x": 5.25, "y": 2}, + {"matrix": [2, 4], "x": 6.25, "y": 2}, + {"matrix": [2, 5], "x": 7.25, "y": 2}, + {"matrix": [6, 0], "x": 8.25, "y": 2}, + {"matrix": [6, 1], "x": 9.25, "y": 2}, + {"matrix": [6, 2], "x": 10.25, "y": 2}, + {"matrix": [6, 3], "x": 11.25, "y": 2}, + {"matrix": [6, 4], "x": 12.25, "y": 2}, + {"matrix": [6, 5], "x": 13.25, "y": 2, "w": 1.75}, + + {"matrix": [3, 0], "x": 0, "y": 3.25}, + {"matrix": [3, 1], "x": 1, "y": 3.25}, + {"matrix": [3, 2], "x": 2, "y": 3.25}, + {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3, "w": 1.25}, + {"matrix": [3, 5], "x": 6, "y": 3, "w": 2.25}, + {"matrix": [7, 0], "x": 8.25, "y": 3, "w": 2.75}, + {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, + {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, + {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_225u_enter": { + "layout": [ + {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [0, 3], "x": 5.5, "y": 0}, + {"matrix": [0, 4], "x": 6.5, "y": 0}, + {"matrix": [0, 5], "x": 7.5, "y": 0}, + {"matrix": [4, 0], "x": 8.5, "y": 0}, + {"matrix": [4, 1], "x": 9.5, "y": 0}, + {"matrix": [4, 2], "x": 10.5, "y": 0}, + {"matrix": [4, 3], "x": 11.5, "y": 0}, + {"matrix": [4, 4], "x": 12.5, "y": 0}, + {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 3.75, "y": 1}, + {"matrix": [1, 2], "x": 4.75, "y": 1}, + {"matrix": [1, 3], "x": 5.75, "y": 1}, + {"matrix": [1, 4], "x": 6.75, "y": 1}, + {"matrix": [1, 5], "x": 7.75, "y": 1}, + {"matrix": [5, 0], "x": 8.75, "y": 1}, + {"matrix": [5, 1], "x": 9.75, "y": 1}, + {"matrix": [5, 2], "x": 10.75, "y": 1}, + {"matrix": [5, 3], "x": 11.75, "y": 1}, + {"matrix": [5, 5], "x": 12.75, "y": 1, "w": 2.25}, + + {"matrix": [2, 0], "x": 1, "y": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, + {"matrix": [2, 2], "x": 4.25, "y": 2}, + {"matrix": [2, 3], "x": 5.25, "y": 2}, + {"matrix": [2, 4], "x": 6.25, "y": 2}, + {"matrix": [2, 5], "x": 7.25, "y": 2}, + {"matrix": [6, 0], "x": 8.25, "y": 2}, + {"matrix": [6, 1], "x": 9.25, "y": 2}, + {"matrix": [6, 2], "x": 10.25, "y": 2}, + {"matrix": [6, 3], "x": 11.25, "y": 2}, + {"matrix": [6, 4], "x": 12.25, "y": 2}, + {"matrix": [6, 5], "x": 13.25, "y": 2, "w": 1.75}, + + {"matrix": [3, 0], "x": 0, "y": 3.25}, + {"matrix": [3, 1], "x": 1, "y": 3.25}, + {"matrix": [3, 2], "x": 2, "y": 3.25}, + {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3, "w": 1.25}, + {"matrix": [3, 5], "x": 6, "y": 3, "w": 2.25}, + {"matrix": [7, 0], "x": 8.25, "y": 3, "w": 2.75}, + {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, + {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, + {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_275u_r_shift": { + "layout": [ + {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [0, 3], "x": 5.5, "y": 0}, + {"matrix": [0, 4], "x": 6.5, "y": 0}, + {"matrix": [0, 5], "x": 7.5, "y": 0}, + {"matrix": [4, 0], "x": 8.5, "y": 0}, + {"matrix": [4, 1], "x": 9.5, "y": 0}, + {"matrix": [4, 2], "x": 10.5, "y": 0}, + {"matrix": [4, 3], "x": 11.5, "y": 0}, + {"matrix": [4, 4], "x": 12.5, "y": 0}, + {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 3.75, "y": 1}, + {"matrix": [1, 2], "x": 4.75, "y": 1}, + {"matrix": [1, 3], "x": 5.75, "y": 1}, + {"matrix": [1, 4], "x": 6.75, "y": 1}, + {"matrix": [1, 5], "x": 7.75, "y": 1}, + {"matrix": [5, 0], "x": 8.75, "y": 1}, + {"matrix": [5, 1], "x": 9.75, "y": 1}, + {"matrix": [5, 2], "x": 10.75, "y": 1}, + {"matrix": [5, 3], "x": 11.75, "y": 1}, + {"matrix": [5, 4], "x": 12.75, "y": 1}, + {"matrix": [5, 5], "x": 13.75, "y": 1, "w": 1.25}, + + {"matrix": [2, 0], "x": 1, "y": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, + {"matrix": [2, 2], "x": 4.25, "y": 2}, + {"matrix": [2, 3], "x": 5.25, "y": 2}, + {"matrix": [2, 4], "x": 6.25, "y": 2}, + {"matrix": [2, 5], "x": 7.25, "y": 2}, + {"matrix": [6, 0], "x": 8.25, "y": 2}, + {"matrix": [6, 1], "x": 9.25, "y": 2}, + {"matrix": [6, 2], "x": 10.25, "y": 2}, + {"matrix": [6, 3], "x": 11.25, "y": 2}, + {"matrix": [6, 5], "x": 12.25, "y": 2, "w": 2.75}, + + {"matrix": [3, 0], "x": 0, "y": 3.25}, + {"matrix": [3, 1], "x": 1, "y": 3.25}, + {"matrix": [3, 2], "x": 2, "y": 3.25}, + {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3, "w": 1.25}, + {"matrix": [3, 5], "x": 6, "y": 3, "w": 2.25}, + {"matrix": [7, 0], "x": 8.25, "y": 3, "w": 2.75}, + {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, + {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, + {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_625u_space": { + "layout": [ + {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [0, 3], "x": 5.5, "y": 0}, + {"matrix": [0, 4], "x": 6.5, "y": 0}, + {"matrix": [0, 5], "x": 7.5, "y": 0}, + {"matrix": [4, 0], "x": 8.5, "y": 0}, + {"matrix": [4, 1], "x": 9.5, "y": 0}, + {"matrix": [4, 2], "x": 10.5, "y": 0}, + {"matrix": [4, 3], "x": 11.5, "y": 0}, + {"matrix": [4, 4], "x": 12.5, "y": 0}, + {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 3.75, "y": 1}, + {"matrix": [1, 2], "x": 4.75, "y": 1}, + {"matrix": [1, 3], "x": 5.75, "y": 1}, + {"matrix": [1, 4], "x": 6.75, "y": 1}, + {"matrix": [1, 5], "x": 7.75, "y": 1}, + {"matrix": [5, 0], "x": 8.75, "y": 1}, + {"matrix": [5, 1], "x": 9.75, "y": 1}, + {"matrix": [5, 2], "x": 10.75, "y": 1}, + {"matrix": [5, 3], "x": 11.75, "y": 1}, + {"matrix": [5, 4], "x": 12.75, "y": 1}, + {"matrix": [5, 5], "x": 13.75, "y": 1, "w": 1.25}, + + {"matrix": [2, 0], "x": 1, "y": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, + {"matrix": [2, 2], "x": 4.25, "y": 2}, + {"matrix": [2, 3], "x": 5.25, "y": 2}, + {"matrix": [2, 4], "x": 6.25, "y": 2}, + {"matrix": [2, 5], "x": 7.25, "y": 2}, + {"matrix": [6, 0], "x": 8.25, "y": 2}, + {"matrix": [6, 1], "x": 9.25, "y": 2}, + {"matrix": [6, 2], "x": 10.25, "y": 2}, + {"matrix": [6, 3], "x": 11.25, "y": 2}, + {"matrix": [6, 4], "x": 12.25, "y": 2}, + {"matrix": [6, 5], "x": 13.25, "y": 2, "w": 1.75}, + + {"matrix": [3, 0], "x": 0, "y": 3.25}, + {"matrix": [3, 1], "x": 1, "y": 3.25}, + {"matrix": [3, 2], "x": 2, "y": 3.25}, + {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, + {"matrix": [3, 5], "x": 4.75, "y": 3, "w": 6.25}, + {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, + {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, + {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_225u_enter_275u_r_shift": { + "layout": [ + {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [0, 3], "x": 5.5, "y": 0}, + {"matrix": [0, 4], "x": 6.5, "y": 0}, + {"matrix": [0, 5], "x": 7.5, "y": 0}, + {"matrix": [4, 0], "x": 8.5, "y": 0}, + {"matrix": [4, 1], "x": 9.5, "y": 0}, + {"matrix": [4, 2], "x": 10.5, "y": 0}, + {"matrix": [4, 3], "x": 11.5, "y": 0}, + {"matrix": [4, 4], "x": 12.5, "y": 0}, + {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 3.75, "y": 1}, + {"matrix": [1, 2], "x": 4.75, "y": 1}, + {"matrix": [1, 3], "x": 5.75, "y": 1}, + {"matrix": [1, 4], "x": 6.75, "y": 1}, + {"matrix": [1, 5], "x": 7.75, "y": 1}, + {"matrix": [5, 0], "x": 8.75, "y": 1}, + {"matrix": [5, 1], "x": 9.75, "y": 1}, + {"matrix": [5, 2], "x": 10.75, "y": 1}, + {"matrix": [5, 3], "x": 11.75, "y": 1}, + {"matrix": [5, 5], "x": 12.75, "y": 1, "w": 2.25}, + + {"matrix": [2, 0], "x": 1, "y": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, + {"matrix": [2, 2], "x": 4.25, "y": 2}, + {"matrix": [2, 3], "x": 5.25, "y": 2}, + {"matrix": [2, 4], "x": 6.25, "y": 2}, + {"matrix": [2, 5], "x": 7.25, "y": 2}, + {"matrix": [6, 0], "x": 8.25, "y": 2}, + {"matrix": [6, 1], "x": 9.25, "y": 2}, + {"matrix": [6, 2], "x": 10.25, "y": 2}, + {"matrix": [6, 3], "x": 11.25, "y": 2}, + {"matrix": [6, 5], "x": 12.25, "y": 2, "w": 2.75}, + + {"matrix": [3, 0], "x": 0, "y": 3.25}, + {"matrix": [3, 1], "x": 1, "y": 3.25}, + {"matrix": [3, 2], "x": 2, "y": 3.25}, + {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3, "w": 1.25}, + {"matrix": [3, 5], "x": 6, "y": 3, "w": 2.25}, + {"matrix": [7, 0], "x": 8.25, "y": 3, "w": 2.75}, + {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, + {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, + {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_225u_enter_625u_space": { + "layout": [ + {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [0, 3], "x": 5.5, "y": 0}, + {"matrix": [0, 4], "x": 6.5, "y": 0}, + {"matrix": [0, 5], "x": 7.5, "y": 0}, + {"matrix": [4, 0], "x": 8.5, "y": 0}, + {"matrix": [4, 1], "x": 9.5, "y": 0}, + {"matrix": [4, 2], "x": 10.5, "y": 0}, + {"matrix": [4, 3], "x": 11.5, "y": 0}, + {"matrix": [4, 4], "x": 12.5, "y": 0}, + {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 3.75, "y": 1}, + {"matrix": [1, 2], "x": 4.75, "y": 1}, + {"matrix": [1, 3], "x": 5.75, "y": 1}, + {"matrix": [1, 4], "x": 6.75, "y": 1}, + {"matrix": [1, 5], "x": 7.75, "y": 1}, + {"matrix": [5, 0], "x": 8.75, "y": 1}, + {"matrix": [5, 1], "x": 9.75, "y": 1}, + {"matrix": [5, 2], "x": 10.75, "y": 1}, + {"matrix": [5, 3], "x": 11.75, "y": 1}, + {"matrix": [5, 5], "x": 12.75, "y": 1, "w": 2.25}, + + {"matrix": [2, 0], "x": 1, "y": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, + {"matrix": [2, 2], "x": 4.25, "y": 2}, + {"matrix": [2, 3], "x": 5.25, "y": 2}, + {"matrix": [2, 4], "x": 6.25, "y": 2}, + {"matrix": [2, 5], "x": 7.25, "y": 2}, + {"matrix": [6, 0], "x": 8.25, "y": 2}, + {"matrix": [6, 1], "x": 9.25, "y": 2}, + {"matrix": [6, 2], "x": 10.25, "y": 2}, + {"matrix": [6, 3], "x": 11.25, "y": 2}, + {"matrix": [6, 4], "x": 12.25, "y": 2}, + {"matrix": [6, 5], "x": 13.25, "y": 2, "w": 1.75}, + + {"matrix": [3, 0], "x": 0, "y": 3.25}, + {"matrix": [3, 1], "x": 1, "y": 3.25}, + {"matrix": [3, 2], "x": 2, "y": 3.25}, + {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, + {"matrix": [3, 5], "x": 4.75, "y": 3, "w": 6.25}, + {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, + {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, + {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_275u_r_shift_625u_space": { + "layout": [ + {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [0, 3], "x": 5.5, "y": 0}, + {"matrix": [0, 4], "x": 6.5, "y": 0}, + {"matrix": [0, 5], "x": 7.5, "y": 0}, + {"matrix": [4, 0], "x": 8.5, "y": 0}, + {"matrix": [4, 1], "x": 9.5, "y": 0}, + {"matrix": [4, 2], "x": 10.5, "y": 0}, + {"matrix": [4, 3], "x": 11.5, "y": 0}, + {"matrix": [4, 4], "x": 12.5, "y": 0}, + {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 3.75, "y": 1}, + {"matrix": [1, 2], "x": 4.75, "y": 1}, + {"matrix": [1, 3], "x": 5.75, "y": 1}, + {"matrix": [1, 4], "x": 6.75, "y": 1}, + {"matrix": [1, 5], "x": 7.75, "y": 1}, + {"matrix": [5, 0], "x": 8.75, "y": 1}, + {"matrix": [5, 1], "x": 9.75, "y": 1}, + {"matrix": [5, 2], "x": 10.75, "y": 1}, + {"matrix": [5, 3], "x": 11.75, "y": 1}, + {"matrix": [5, 4], "x": 12.75, "y": 1}, + {"matrix": [5, 5], "x": 13.75, "y": 1, "w": 1.25}, + + {"matrix": [2, 0], "x": 1, "y": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, + {"matrix": [2, 2], "x": 4.25, "y": 2}, + {"matrix": [2, 3], "x": 5.25, "y": 2}, + {"matrix": [2, 4], "x": 6.25, "y": 2}, + {"matrix": [2, 5], "x": 7.25, "y": 2}, + {"matrix": [6, 0], "x": 8.25, "y": 2}, + {"matrix": [6, 1], "x": 9.25, "y": 2}, + {"matrix": [6, 2], "x": 10.25, "y": 2}, + {"matrix": [6, 3], "x": 11.25, "y": 2}, + {"matrix": [6, 5], "x": 12.25, "y": 2, "w": 2.75}, + + {"matrix": [3, 0], "x": 0, "y": 3.25}, + {"matrix": [3, 1], "x": 1, "y": 3.25}, + {"matrix": [3, 2], "x": 2, "y": 3.25}, + {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, + {"matrix": [3, 5], "x": 4.75, "y": 3, "w": 6.25}, + {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, + {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, + {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_225u_enter_275u_r_shift_625u_space": { + "layout": [ + {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [0, 3], "x": 5.5, "y": 0}, + {"matrix": [0, 4], "x": 6.5, "y": 0}, + {"matrix": [0, 5], "x": 7.5, "y": 0}, + {"matrix": [4, 0], "x": 8.5, "y": 0}, + {"matrix": [4, 1], "x": 9.5, "y": 0}, + {"matrix": [4, 2], "x": 10.5, "y": 0}, + {"matrix": [4, 3], "x": 11.5, "y": 0}, + {"matrix": [4, 4], "x": 12.5, "y": 0}, + {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 3.75, "y": 1}, + {"matrix": [1, 2], "x": 4.75, "y": 1}, + {"matrix": [1, 3], "x": 5.75, "y": 1}, + {"matrix": [1, 4], "x": 6.75, "y": 1}, + {"matrix": [1, 5], "x": 7.75, "y": 1}, + {"matrix": [5, 0], "x": 8.75, "y": 1}, + {"matrix": [5, 1], "x": 9.75, "y": 1}, + {"matrix": [5, 2], "x": 10.75, "y": 1}, + {"matrix": [5, 3], "x": 11.75, "y": 1}, + {"matrix": [5, 5], "x": 12.75, "y": 1, "w": 2.25}, + + {"matrix": [2, 0], "x": 1, "y": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, + {"matrix": [2, 2], "x": 4.25, "y": 2}, + {"matrix": [2, 3], "x": 5.25, "y": 2}, + {"matrix": [2, 4], "x": 6.25, "y": 2}, + {"matrix": [2, 5], "x": 7.25, "y": 2}, + {"matrix": [6, 0], "x": 8.25, "y": 2}, + {"matrix": [6, 1], "x": 9.25, "y": 2}, + {"matrix": [6, 2], "x": 10.25, "y": 2}, + {"matrix": [6, 3], "x": 11.25, "y": 2}, + {"matrix": [6, 5], "x": 12.25, "y": 2, "w": 2.75}, + + {"matrix": [3, 0], "x": 0, "y": 3.25}, + {"matrix": [3, 1], "x": 1, "y": 3.25}, + {"matrix": [3, 2], "x": 2, "y": 3.25}, + {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, + {"matrix": [3, 5], "x": 4.75, "y": 3, "w": 6.25}, + {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, + {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, + {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/reviung/reviung46/keymaps/default/keymap.c b/keyboards/reviung/reviung46/keymaps/default/keymap.c new file mode 100644 index 00000000000..60f1d32a709 --- /dev/null +++ b/keyboards/reviung/reviung46/keymaps/default/keymap.c @@ -0,0 +1,47 @@ +// Copyright 2024 gtips (@gtips) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _LOWER, + _RAISE, + _ADJUST, +}; + +#define SF_SS RSFT_T(KC_SLSH) +#define SP_LO LT(_LOWER, KC_SPC) +#define SP_RA LT(_RAISE, KC_SPC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SF_SS, + KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LALT, SP_LO, SP_RA, KC_LALT, KC_RGUI, KC_RCTL + ), + [_LOWER] = LAYOUT( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, KC_QUOT, + _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, XXXXXXX, XXXXXXX, XXXXXXX, KC_SLSH, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_RAISE] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, KC_END, KC_PGUP, KC_PGDN, XXXXXXX, KC_DQUO, + _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, KC_QUES, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_ADJUST] = LAYOUT( + UG_VALU, UG_SATU, UG_HUEU, UG_NEXT, XXXXXXX, UG_TOGG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + UG_VALD, UG_SATD, UG_HUED, UG_PREV, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_VOLU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_MUTE, KC_VOLD, KC_MPLY, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX + ), +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} diff --git a/keyboards/reviung/reviung46/readme.md b/keyboards/reviung/reviung46/readme.md new file mode 100644 index 00000000000..0914155d143 --- /dev/null +++ b/keyboards/reviung/reviung46/readme.md @@ -0,0 +1,27 @@ +# reviung46 + +![reviung46](https://i.imgur.com/hAanqOQ.jpeg) + +The REVIUNG46 is 42-46 key keyboard. + +* Keyboard Maintainer: [gtips](https://github.com/gtips) +* Hardware Supported: REVIUNG46 PCB. +* Hardware Availability: [PCB & Case Data](https://github.com/gtips/reviung/tree/master/reviung46) + +Make example for this keyboard (after setting up your build environment): + + make reviung46:default + +Flashing example for this keyboard: + + make reviung46:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 93765bb0ef9206517ef4c1d98d5b00ccec7bde28 Mon Sep 17 00:00:00 2001 From: russell-myers1 <124931768+russell-myers1@users.noreply.github.com> Date: Tue, 3 Dec 2024 10:35:39 -0800 Subject: [PATCH 089/365] Update hardware_keyboard_guidelines.md to Fix Typos (#24671) Corrected a typo in the phrase "iOS device need lessthan 100" to "iOS devices need less than 100." This was to improve clarity and professionalism of the doc. --- docs/hardware_keyboard_guidelines.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/hardware_keyboard_guidelines.md b/docs/hardware_keyboard_guidelines.md index de67fa3bc39..7f17c46748d 100644 --- a/docs/hardware_keyboard_guidelines.md +++ b/docs/hardware_keyboard_guidelines.md @@ -111,7 +111,7 @@ The `post_config.h` file can be used for additional post-processing, depending o #define USB_MAX_POWER_CONSUMPTION 400 #else // fix iPhone and iPad power adapter issue - // iOS device need lessthan 100 + // iOS devices need less than 100 #define USB_MAX_POWER_CONSUMPTION 100 #endif From f0eb2460d9e5b6e71ff76da3f341795ac53e1ec2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Dec 2024 19:31:16 +0000 Subject: [PATCH 090/365] Bump JamesIves/github-pages-deploy-action from 4.7.1 to 4.7.2 (#24672) Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.7.1 to 4.7.2. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.7.1...v4.7.2) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 95a2cfa3af2..edce1a6e5c8 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -56,7 +56,7 @@ jobs: - name: Deploy if: ${{ github.event_name == 'push' && github.repository == 'qmk/qmk_firmware' }} - uses: JamesIves/github-pages-deploy-action@v4.7.1 + uses: JamesIves/github-pages-deploy-action@v4.7.2 with: token: ${{ secrets.GITHUB_TOKEN }} branch: gh-pages From e7f138831727aa0aecb0eb3b5959bfdd3a714567 Mon Sep 17 00:00:00 2001 From: Vaarai Date: Tue, 3 Dec 2024 23:40:07 +0100 Subject: [PATCH 091/365] Add cornia keyboard (#24442) * Add cornia keyboard * Update Fire keymap * [Cornia/Doc] Host image on imgur * [Cornia/config] Remove unnecessary defines * [Cornia] Move I2C stuff to keyboard level * [Cornia/config] Remove unnecessary defines & move all callbacks to keymap.c * [Cornia] Use tri-layer in default keymap * [Cornia/makefiles] remove license headers & root makefile * [Cornia] Put common configuration to top keyboard level * [Cornia] Remove unecessary custom keycodes * [Cornia] Fix readme * [Cornia] Fix RGB keycodes * [Cornia] Fix config files * [Cornia] Fix readme * [Cornia] Fix mcuconf.h license --- keyboards/cornia/config.h | 30 +++ keyboards/cornia/cornia.c | 44 ++++ keyboards/cornia/cornia.h | 21 ++ keyboards/cornia/info.json | 139 +++++++++++++ keyboards/cornia/keymaps/default/keymap.c | 75 +++++++ keyboards/cornia/keymaps/default/rules.mk | 1 + keyboards/cornia/keymaps/fire/config.h | 33 +++ keyboards/cornia/keymaps/fire/keymap.c | 226 +++++++++++++++++++++ keyboards/cornia/keymaps/fire/keymap.h | 55 +++++ keyboards/cornia/keymaps/fire/rules.mk | 8 + keyboards/cornia/keymaps/fire/tap_dances.c | 154 ++++++++++++++ keyboards/cornia/keymaps/fire/tap_dances.h | 47 +++++ keyboards/cornia/mcuconf.h | 25 +++ keyboards/cornia/readme.md | 46 +++++ keyboards/cornia/v0_6/keyboard.json | 12 ++ keyboards/cornia/v1/keyboard.json | 21 ++ 16 files changed, 937 insertions(+) create mode 100644 keyboards/cornia/config.h create mode 100644 keyboards/cornia/cornia.c create mode 100644 keyboards/cornia/cornia.h create mode 100644 keyboards/cornia/info.json create mode 100644 keyboards/cornia/keymaps/default/keymap.c create mode 100644 keyboards/cornia/keymaps/default/rules.mk create mode 100644 keyboards/cornia/keymaps/fire/config.h create mode 100644 keyboards/cornia/keymaps/fire/keymap.c create mode 100644 keyboards/cornia/keymaps/fire/keymap.h create mode 100644 keyboards/cornia/keymaps/fire/rules.mk create mode 100644 keyboards/cornia/keymaps/fire/tap_dances.c create mode 100644 keyboards/cornia/keymaps/fire/tap_dances.h create mode 100644 keyboards/cornia/mcuconf.h create mode 100644 keyboards/cornia/readme.md create mode 100644 keyboards/cornia/v0_6/keyboard.json create mode 100644 keyboards/cornia/v1/keyboard.json diff --git a/keyboards/cornia/config.h b/keyboards/cornia/config.h new file mode 100644 index 00000000000..dbf7031b623 --- /dev/null +++ b/keyboards/cornia/config.h @@ -0,0 +1,30 @@ +/* Copyright 2024 Vaarai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Select hand configuration */ +// #define MASTER_LEFT +#define MASTER_RIGHT +// #define EE_HANDS + +/* I²C config */ +#define I2C_DRIVER I2CD1 +#define I2C1_SDA_PIN GP10 +#define I2C1_SCL_PIN GP11 + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // Timeout window in ms in which the double tap can occur. \ No newline at end of file diff --git a/keyboards/cornia/cornia.c b/keyboards/cornia/cornia.c new file mode 100644 index 00000000000..9a090473331 --- /dev/null +++ b/keyboards/cornia/cornia.c @@ -0,0 +1,44 @@ +/* Copyright 2024 Vaarai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "cornia.h" + +// 'Cornia', 32x32px +#define OLED_LOGO_CORNIA {\ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, \ + 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xe0, 0x00, \ + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xfd, 0xe1, \ + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, \ + 0x00, 0x00, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0x3f, 0x07, 0x00, 0x00, 0x00, 0x07, 0x3f, 0xff, 0xff, \ + 0xff, 0xf8, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ + 0x00, 0x1e, 0x1f, 0x1f, 0x1f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, \ + 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x0e, 0x00 \ + } + +void cornia_render_logo(void) { +#ifdef OLED_ENABLE + static const char PROGMEM logo[] = OLED_LOGO_CORNIA; + oled_write_raw_P(logo, sizeof(logo)); +#endif +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + cornia_render_logo(); + return true; +} diff --git a/keyboards/cornia/cornia.h b/keyboards/cornia/cornia.h new file mode 100644 index 00000000000..2cee8d4a685 --- /dev/null +++ b/keyboards/cornia/cornia.h @@ -0,0 +1,21 @@ +/* Copyright 2024 Vaarai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +void cornia_render_logo(void); diff --git a/keyboards/cornia/info.json b/keyboards/cornia/info.json new file mode 100644 index 00000000000..7c0b5aabf2c --- /dev/null +++ b/keyboards/cornia/info.json @@ -0,0 +1,139 @@ +{ + "manufacturer": "Vaarai", + "maintainer": "Vaarai", + "url": "https://github.com/Vaarai/Cornia", + "usb": { + "vid": "0xFEED" + }, + "processor": "RP2040", + "bootloader": "rp2040", + "split": { + "enabled": true, + "serial": { + "driver": "vendor", + "pin": "GP1" + }, + "transport": { + "sync": { + "matrix_state": true + } + } + }, + "features": { + "extrakey": true, + "mousekey": true, + "bootmagic": true, + "nkro": true, + "oled": true, + "rgb_matrix": true + }, + "community_layouts": [ "split_3x6_3" ], + "layout_aliases": { + "LAYOUT": "LAYOUT_split_3x6_3" + }, + "layouts": { + "LAYOUT_split_3x6_3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.3}, + {"matrix": [0, 1], "x": 1, "y": 0.3}, + {"matrix": [0, 2], "x": 2, "y": 0.1}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0.1}, + {"matrix": [0, 5], "x": 5, "y": 0.2}, + {"matrix": [4, 5], "x": 9, "y": 0.2}, + {"matrix": [4, 4], "x": 10, "y": 0.1}, + {"matrix": [4, 3], "x": 11, "y": 0}, + {"matrix": [4, 2], "x": 12, "y": 0.1}, + {"matrix": [4, 1], "x": 13, "y": 0.3}, + {"matrix": [4, 0], "x": 14, "y": 0.3}, + {"matrix": [1, 0], "x": 0, "y": 1.3}, + {"matrix": [1, 1], "x": 1, "y": 1.3}, + {"matrix": [1, 2], "x": 2, "y": 1.1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1.1}, + {"matrix": [1, 5], "x": 5, "y": 1.2}, + {"matrix": [5, 5], "x": 9, "y": 1.2}, + {"matrix": [5, 4], "x": 10, "y": 1.1}, + {"matrix": [5, 3], "x": 11, "y": 1}, + {"matrix": [5, 2], "x": 12, "y": 1.1}, + {"matrix": [5, 1], "x": 13, "y": 1.3}, + {"matrix": [5, 0], "x": 14, "y": 1.3}, + {"matrix": [2, 0], "x": 0, "y": 2.3}, + {"matrix": [2, 1], "x": 1, "y": 2.3}, + {"matrix": [2, 2], "x": 2, "y": 2.1}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2.1}, + {"matrix": [2, 5], "x": 5, "y": 2.2}, + {"matrix": [6, 5], "x": 9, "y": 2.2}, + {"matrix": [6, 4], "x": 10, "y": 2.1}, + {"matrix": [6, 3], "x": 11, "y": 2}, + {"matrix": [6, 2], "x": 12, "y": 2.1}, + {"matrix": [6, 1], "x": 13, "y": 2.3}, + {"matrix": [6, 0], "x": 14, "y": 2.3}, + {"matrix": [3, 3], "x": 4, "y": 3.7}, + {"matrix": [3, 4], "x": 5, "y": 3.7}, + {"matrix": [3, 5], "x": 6, "y": 3.2}, + {"matrix": [7, 5], "x": 8, "y": 3.2}, + {"matrix": [7, 4], "x": 9, "y": 3.7}, + {"matrix": [7, 3], "x": 10, "y": 3.7} + ] + } + }, + "ws2812": { + "driver": "vendor", + "pin": "GP0" + }, + "rgb_matrix": { + "driver": "ws2812", + "sleep": true, + "split_count": [21, 21], + "animations": { + "static_gradient": true, + "breathing": true + }, + "layout": [ + {"matrix": [3, 5], "x": 95, "y": 63, "flags": 1}, + {"matrix": [2, 5], "x": 85, "y": 39, "flags": 4}, + {"matrix": [1, 5], "x": 85, "y": 21, "flags": 4}, + {"matrix": [0, 5], "x": 85, "y": 4, "flags": 4}, + {"matrix": [0, 4], "x": 68, "y": 2, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 19, "flags": 4}, + {"matrix": [2, 4], "x": 68, "y": 37, "flags": 4}, + {"matrix": [3, 4], "x": 80, "y": 58, "flags": 1}, + {"matrix": [3, 3], "x": 60, "y": 55, "flags": 1}, + {"matrix": [2, 3], "x": 50, "y": 35, "flags": 4}, + {"matrix": [1, 3], "x": 50, "y": 13, "flags": 4}, + {"matrix": [0, 3], "x": 50, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 33, "y": 3, "flags": 4}, + {"matrix": [1, 2], "x": 33, "y": 20, "flags": 4}, + {"matrix": [2, 2], "x": 33, "y": 37, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 42, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 24, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 7, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 7, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 24, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 41, "flags": 1}, + {"matrix": [7, 5], "x": 129, "y": 63, "flags": 1}, + {"matrix": [6, 5], "x": 139, "y": 39, "flags": 4}, + {"matrix": [5, 5], "x": 139, "y": 21, "flags": 4}, + {"matrix": [4, 5], "x": 139, "y": 4, "flags": 4}, + {"matrix": [4, 4], "x": 156, "y": 2, "flags": 4}, + {"matrix": [5, 4], "x": 156, "y": 19, "flags": 4}, + {"matrix": [6, 4], "x": 156, "y": 37, "flags": 4}, + {"matrix": [7, 4], "x": 144, "y": 58, "flags": 1}, + {"matrix": [7, 3], "x": 164, "y": 55, "flags": 1}, + {"matrix": [6, 3], "x": 174, "y": 35, "flags": 4}, + {"matrix": [5, 3], "x": 174, "y": 13, "flags": 4}, + {"matrix": [4, 3], "x": 174, "y": 0, "flags": 4}, + {"matrix": [4, 2], "x": 191, "y": 3, "flags": 4}, + {"matrix": [5, 2], "x": 191, "y": 20, "flags": 4}, + {"matrix": [6, 2], "x": 191, "y": 37, "flags": 4}, + {"matrix": [6, 1], "x": 208, "y": 42, "flags": 4}, + {"matrix": [5, 1], "x": 208, "y": 24, "flags": 4}, + {"matrix": [4, 1], "x": 208, "y": 7, "flags": 4}, + {"matrix": [4, 0], "x": 224, "y": 7, "flags": 1}, + {"matrix": [5, 0], "x": 224, "y": 24, "flags": 1}, + {"matrix": [6, 0], "x": 224, "y": 41, "flags": 1} + ] + } +} \ No newline at end of file diff --git a/keyboards/cornia/keymaps/default/keymap.c b/keyboards/cornia/keymaps/default/keymap.c new file mode 100644 index 00000000000..1aa48d471ff --- /dev/null +++ b/keyboards/cornia/keymaps/default/keymap.c @@ -0,0 +1,75 @@ +/* Copyright 2024 Vaarai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +/* Layers definitions */ +enum layers { + _ALPHA, + _LOWER, + _UPPER, + _ADJUST, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_ALPHA] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTL, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LSFT, TL_LOWR, KC_SPC, KC_ENT, TL_UPPR, KC_RSFT + //`--------------------------' `--------------------------' + ), + + [_LOWER] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LALT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_RALT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, _______, _______, _______, _______, _______ + //`--------------------------' `--------------------------' + ), + + [_UPPER] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, KC_SLSH, KC_LCBR, KC_LPRN, KC_LBRC, KC_MINS, KC_UNDS, KC_RBRC, KC_RPRN, KC_RCBR, KC_BSLS, _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, XXXXXXX, KC_GRV, KC_QUES, KC_EQL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, KC_RGUI + //`--------------------------' `--------------------------' + ), + + [_ADJUST] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, RM_TOGG, RM_HUEU, RM_VALU, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + //|--------+--------+--------+--------+--------|--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, RM_NEXT, RM_HUED, RM_VALD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______ + //`--------------------------' `--------------------------' + ), +}; \ No newline at end of file diff --git a/keyboards/cornia/keymaps/default/rules.mk b/keyboards/cornia/keymaps/default/rules.mk new file mode 100644 index 00000000000..7c9bf212a6f --- /dev/null +++ b/keyboards/cornia/keymaps/default/rules.mk @@ -0,0 +1 @@ +TRI_LAYER_ENABLE = yes diff --git a/keyboards/cornia/keymaps/fire/config.h b/keyboards/cornia/keymaps/fire/config.h new file mode 100644 index 00000000000..a40a881bf5b --- /dev/null +++ b/keyboards/cornia/keymaps/fire/config.h @@ -0,0 +1,33 @@ +/* Copyright 2024 Vaarai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Split */ +#define SPLIT_ACTIVITY_ENABLE +#define SPLIT_LAYER_STATE_ENABLE +#define SPLIT_LED_STATE_ENABLE +#define SPLIT_MODS_ENABLE + +/* Trackpad */ +#define SPLIT_POINTING_ENABLE +#define POINTING_DEVICE_RIGHT +#define POINTING_DEVICE_ROTATION_90 +#define CIRQUE_PINNACLE_DIAMETER_MM 40 +#define CIRQUE_PINNACLE_TAP_ENABLE +#define CIRQUE_PINNACLE_CURVED_OVERLAY +#define CIRQUE_PINNACLE_POSITION_MODE CIRQUE_PINNACLE_RELATIVE_MODE +#define CIRQUE_PINNACLE_ATTENUATION EXTREG__TRACK_ADCCONFIG__ADC_ATTENUATE_2X diff --git a/keyboards/cornia/keymaps/fire/keymap.c b/keyboards/cornia/keymaps/fire/keymap.c new file mode 100644 index 00000000000..9215c61f9ca --- /dev/null +++ b/keyboards/cornia/keymaps/fire/keymap.c @@ -0,0 +1,226 @@ +/* Copyright 2024 Vaarai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +#include "./keymap.h" +#include "./tap_dances.h" + +/* Flag to enable/disable trackpad scroll */ +bool set_scrolling = false; + +/* Variables to store accumulated scroll values */ +float scroll_accumulated_h = 0; +float scroll_accumulated_v = 0; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_ALPHA] = LAYOUT_split_3x6_3( /* Fire (Oxey) : https://bit.ly/layout-doc-v2 */ + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_ESC, KC_P, KC_L, KC_D, KC_G, KC_V, KC_Q, KC_F, KC_O, KC_U, KC_COMM, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TAB, KC_N, KC_R, KC_T, KC_S, KC_Y, KC_J, KC_H, KC_A, KC_E, KC_I, KC_LALT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_X, KC_K, KC_C, KC_W, KC_Z, KC_B, KC_M, KC_QUOT, KC_SCLN, KC_DOT, KC_RCTL, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + TD(TD_SFT_CAPSW), TD(TD_NAV_ACCENT), KC_SPC, KC_ENT, TD(TD_NUM_ACCENT), TD(TD_SFT_CAPSW) + //`--------------------------' `--------------------------' + ), + + [_NAV] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, G(KC_L), XXXXXXX, CK_SCRL, C(KC_A), XXXXXXX, KC_BTN1, KC_BTN2, KC_BTN3, XXXXXXX, XXXXXXX, KC_DEL, + //|--------+--------+ GUI V +--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, C(KC_X), G(KC_V), C(KC_V), C(KC_C), C(KC_Z), KC_WH_U, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, _______, + //|ALT LEFT+--------+ ALT SFT+scrnshot+--------+--------| |--------+--------+--------+--------+--------+--------| + A(KC_LEFT),C(KC_S),S(KC_LALT), CK_SSHT,C(KC_F), C(KC_Y), KC_WH_D, KC_HOME, CK_SELL, CK_SELR, KC_END, _______, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, _______, _______, _______,MO(_ADJUST),_______ + //`--------------------------' `--------------------------' + ), + + [_NUM] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + //|--------+-- / ---+-- { ---+-- ( ---+-- [ ---+-- - ---| |--- _ --+--- ] --+-- ) ---+-- } ---+-- \ ---+--------| + _______, KC_SLSH, KC_LCBR, KC_LPRN, KC_LBRC, KC_MINS, KC_UNDS, KC_RBRC, KC_RPRN, KC_RCBR, KC_BSLS, _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, XXXXXXX, KC_GRV, KC_QUES, KC_EQL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + _______,MO(_ADJUST),_______, _______, _______, KC_RGUI + //`--------------------------' `--------------------------' + ), + + [_ADJUST] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, RM_TOGG, RM_HUEU, RM_VALU, CK_DPII, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + //|--------+--------+--------+--------+--------|--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, RM_NEXT, RM_HUED, RM_VALD, CK_DPID, XXXXXXX, TO(_G0), TO(_G1), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______ + //`--------------------------' `--------------------------' + ), + + /* Generic game */ + [_G0] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_ESC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, KC_LSFT, KC_A, KC_S, KC_D, KC_F, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LGUI, KC_LCTL, KC_Z, KC_X, KC_C, KC_V, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_SPC, KC_SPC, XXXXXXX, XXXXXXX, TG(_G0), XXXXXXX + //`--------------------------' `--------------------------' + ), + + /* Warframe */ + [_G1] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TAB, KC_ESC, KC_Q, KC_W, KC_1, KC_2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_F, KC_LSFT, KC_A, KC_S, KC_D, KC_3, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LGUI, KC_LCTL, KC_M, KC_Y, KC_X, KC_4, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_SPC,CK_RKJMP, KC_5, XXXXXXX, TG(_G1), XXXXXXX + //`--------------------------' `--------------------------' + ), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case CK_RKJMP: /* Warframe rocket jump */ + if (record->event.pressed) { + SEND_STRING(SS_DOWN(X_C)); + } else { + SEND_STRING(SS_DOWN(X_SPC) SS_DELAY(50) SS_UP(X_C) SS_DELAY(50) SS_UP(X_SPC)); + } + return false; + case CK_DPII: /* Increase trackpad DPI */ + if (record->event.pressed) { + pointing_device_set_cpi(pointing_device_get_cpi()+100); + } + return false; + case CK_DPID: /* Decrease trackpad DPI */ + if (record->event.pressed) { + pointing_device_set_cpi(pointing_device_get_cpi()-100); + } + return false; + case CK_SCRL: /* Toggle set_scrolling when CK_SCRL key is pressed or released */ + set_scrolling = record->event.pressed; + return false; + } + /* Accented letters */ + if (accent_state != ACCENT_NONE && record->event.pressed) + { + switch (keycode) { + case KC_A: + SEND_STRING(SS_ACCENT_A_GRAVE); + break; + case KC_C: + SEND_STRING(SS_ACCENT_C_CEDIL); + break; + case KC_E: + switch (accent_state) { + case ACCENT_LEFT: + SEND_STRING(SS_ACCENT_E_ACUTE); break; + case ACCENT_RIGHT: + SEND_STRING(SS_ACCENT_E_GRAVE); break; + case ACCENT_NONE: + break; + } + break; + case KC_O: + SEND_STRING(SS_ACCENT_O_CIRCU); + break; + case KC_U: + SEND_STRING(SS_ACCENT_U_GRAVE); + break; + } + accent_state = ACCENT_NONE; + return false; + } + return true; +} + +bool shutdown_user(bool jump_to_bootloader) { + oled_clear(); + oled_set_cursor(0, 2); + if (jump_to_bootloader) { + oled_write_P(PSTR("FLASH"), false); + } else { + oled_write_P(PSTR("RESET"), false); + } + oled_render_dirty(true); + return false; +} + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_270; +} + +bool oled_task_user(void) { + /* Print cornia logo */ + cornia_render_logo(); + + /* Print layer status */ + oled_set_cursor(0, 7); + switch (get_highest_layer(layer_state)) { + case _ALPHA: + oled_write_ln("ALPHA", 0); + break; + case _NAV: + oled_write_ln("NAV", 0); + break; + case _NUM: + oled_write_ln("NUM", 0); + break; + case _ADJUST: + oled_write_ln("ADJUS", 0); + break; + case _G0: + oled_write_ln("GAME0", 0); + break; + case _G1: + oled_write_ln("GAME1", 0); + break; + } + return false; +} + +report_mouse_t pointing_device_task_user(report_mouse_t mouse_report) { + /* Check if drag scrolling is active */ + if (set_scrolling) { + /* Calculate and accumulate scroll values based on mouse movement and divisors */ + scroll_accumulated_h += (float)mouse_report.x / SCROLL_DIVISOR_H; + scroll_accumulated_v += (float)mouse_report.y / SCROLL_DIVISOR_V; + + /* Assign integer parts of accumulated scroll values to the mouse report */ + mouse_report.h = (int8_t)scroll_accumulated_h; + mouse_report.v = (int8_t)scroll_accumulated_v; + + /* Update accumulated scroll values by subtracting the integer parts */ + scroll_accumulated_h -= (int8_t)scroll_accumulated_h; + scroll_accumulated_v -= (int8_t)scroll_accumulated_v; + + /* Clear the X and Y values of the mouse report */ + mouse_report.x = 0; + mouse_report.y = 0; + } + return mouse_report; +} \ No newline at end of file diff --git a/keyboards/cornia/keymaps/fire/keymap.h b/keyboards/cornia/keymaps/fire/keymap.h new file mode 100644 index 00000000000..719c2b97a85 --- /dev/null +++ b/keyboards/cornia/keymaps/fire/keymap.h @@ -0,0 +1,55 @@ +/* Copyright 2024 Vaarai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include QMK_KEYBOARD_H + +/* Trackpad srolling speed adjustment */ +#define SCROLL_DIVISOR_H 8.0 +#define SCROLL_DIVISOR_V 8.0 + +/* Trackpad srolling enablement flag */ +extern bool set_scrolling; + +/* Layers definitions */ +enum layers { + _ALPHA, + _NAV, + _NUM, + _ADJUST, + _G0, + _G1 +}; + +/* Custom Keycodes (CK_xxx) */ +#define CK_SSHT LSG(KC_S) +#define CK_SELL LSFT(LCTL(KC_LEFT)) +#define CK_SELR LSFT(LCTL(KC_RIGHT)) + +typedef enum { + CK_RKJMP = SAFE_RANGE, /* Warframe rocket/bullet jump */ + CK_DPII, + CK_DPID, + CK_SCRL, +} cornia_custom_keycodes_t; + +#define SS_ACCENT_A_GRAVE SS_DOWN(X_LALT) SS_TAP(X_P1) SS_TAP(X_P3) SS_TAP(X_P3) SS_UP(X_LALT) /* à */ +#define SS_ACCENT_C_CEDIL SS_DOWN(X_LALT) SS_TAP(X_P1) SS_TAP(X_P3) SS_TAP(X_P5) SS_UP(X_LALT) /* ç */ +#define SS_ACCENT_E_ACUTE SS_DOWN(X_LALT) SS_TAP(X_P1) SS_TAP(X_P3) SS_TAP(X_P0) SS_UP(X_LALT) /* é */ +#define SS_ACCENT_E_GRAVE SS_DOWN(X_LALT) SS_TAP(X_P1) SS_TAP(X_P3) SS_TAP(X_P8) SS_UP(X_LALT) /* è */ +#define SS_ACCENT_O_CIRCU SS_DOWN(X_LALT) SS_TAP(X_P1) SS_TAP(X_P4) SS_TAP(X_P7) SS_UP(X_LALT) /* ô */ +#define SS_ACCENT_U_GRAVE SS_DOWN(X_LALT) SS_TAP(X_P0) SS_TAP(X_P2) SS_TAP(X_P4) SS_TAP(X_P9) SS_UP(X_LALT) /* ù */ diff --git a/keyboards/cornia/keymaps/fire/rules.mk b/keyboards/cornia/keymaps/fire/rules.mk new file mode 100644 index 00000000000..221d810975e --- /dev/null +++ b/keyboards/cornia/keymaps/fire/rules.mk @@ -0,0 +1,8 @@ +SRC += tap_dances.c + +CAPS_WORD_ENABLE = yes +TAP_DANCE_ENABLE = yes + +# Cirque Trackpad I²C configuration +POINTING_DEVICE_ENABLE = yes +POINTING_DEVICE_DRIVER = cirque_pinnacle_i2c diff --git a/keyboards/cornia/keymaps/fire/tap_dances.c b/keyboards/cornia/keymaps/fire/tap_dances.c new file mode 100644 index 00000000000..63f99115497 --- /dev/null +++ b/keyboards/cornia/keymaps/fire/tap_dances.c @@ -0,0 +1,154 @@ +/* Copyright 2024 Vaarai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +#include "./tap_dances.h" +#include "./keymap.h" + +/* define a type containing as many tapdance states as you need */ +typedef enum { + SINGLE_TAP, + SINGLE_HOLD, + DOUBLE_TAP, + DOUBLE_HOLD, + OTHER_TAP +} td_state_t; + +/* Create a global instance of the tapdance state type */ +static td_state_t td_state; +accent_state_t accent_state = ACCENT_NONE; + +tap_dance_action_t tap_dance_actions[TAP_DANCE_ACTIONS_COUNT] = { + [TD_SFT_CAPSW] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_shift_capsword_finished, dance_shift_capsword_reset), + [TD_NAV_ACCENT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_nav_accent_finished, dance_nav_accent_reset), + [TD_NUM_ACCENT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_num_accent_finished, dance_num_accent_reset) +}; + +int cur_dance (tap_dance_state_t *state) { + if (state->count == 1) { + if (state->interrupted || !state->pressed) + { + return SINGLE_TAP; + } else { + return SINGLE_HOLD; + } + } + if (state->count == 2) + { + if (state->interrupted || !state->pressed) + { + return DOUBLE_TAP; + } else { + return DOUBLE_HOLD; + } + } else { + return OTHER_TAP; + } +} + +void dance_shift_capsword_finished (tap_dance_state_t *state, void *user_data) +{ + td_state = cur_dance(state); + switch (td_state) { + case SINGLE_TAP: + case SINGLE_HOLD: + register_code(KC_LSFT); + break; + case DOUBLE_TAP: + case DOUBLE_HOLD: + caps_word_on(); + break; + case OTHER_TAP: + break; + } +} + +void dance_shift_capsword_reset (tap_dance_state_t *state, void *user_data) +{ + switch (td_state) { + case SINGLE_TAP: + case SINGLE_HOLD: + unregister_code(KC_LSFT); + break; + case DOUBLE_TAP: + case DOUBLE_HOLD: + case OTHER_TAP: + break; + } +} + +void dance_nav_accent_finished (tap_dance_state_t *state, void *user_data) +{ + td_state = cur_dance(state); + switch (td_state) { + case SINGLE_TAP: + case SINGLE_HOLD: + layer_on(_NAV); + break; + case DOUBLE_TAP: + case DOUBLE_HOLD: + accent_state = ACCENT_LEFT; + break; + case OTHER_TAP: + break; + } +} + +void dance_nav_accent_reset (tap_dance_state_t *state, void *user_data) +{ + switch (td_state) { + case SINGLE_TAP: + case SINGLE_HOLD: + layer_off(_NAV); + break; + case DOUBLE_TAP: + case DOUBLE_HOLD: + case OTHER_TAP: + break; + } +} + +void dance_num_accent_finished (tap_dance_state_t *state, void *user_data) +{ + td_state = cur_dance(state); + switch (td_state) { + case SINGLE_TAP: + case SINGLE_HOLD: + layer_on(_NUM); + break; + case DOUBLE_TAP: + case DOUBLE_HOLD: + accent_state = ACCENT_RIGHT; + break; + case OTHER_TAP: + break; + } +} + +void dance_num_accent_reset (tap_dance_state_t *state, void *user_data) +{ + switch (td_state) { + case SINGLE_TAP: + case SINGLE_HOLD: + layer_off(_NUM); + break; + case DOUBLE_TAP: + case DOUBLE_HOLD: + case OTHER_TAP: + break; + } +} \ No newline at end of file diff --git a/keyboards/cornia/keymaps/fire/tap_dances.h b/keyboards/cornia/keymaps/fire/tap_dances.h new file mode 100644 index 00000000000..082e81f3ce0 --- /dev/null +++ b/keyboards/cornia/keymaps/fire/tap_dances.h @@ -0,0 +1,47 @@ +/* Copyright 2024 Vaarai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include QMK_KEYBOARD_H + +/* Tap dances definitions */ +enum tap_dances { + TD_SFT_CAPSW, + TD_NAV_ACCENT, + TD_NUM_ACCENT, + TAP_DANCE_ACTIONS_COUNT /* Utility to get TD_xxx count */ +}; + +/* Accented letters */ +typedef enum { + ACCENT_NONE, + ACCENT_LEFT, + ACCENT_RIGHT +} accent_state_t; + +extern accent_state_t accent_state; + +extern tap_dance_action_t tap_dance_actions[TAP_DANCE_ACTIONS_COUNT]; + +void dance_shift_capsword_finished (tap_dance_state_t *state, void *user_data); +void dance_shift_capsword_reset (tap_dance_state_t *state, void *user_data); + +void dance_nav_accent_finished (tap_dance_state_t *state, void *user_data); +void dance_nav_accent_reset (tap_dance_state_t *state, void *user_data); + +void dance_num_accent_finished (tap_dance_state_t *state, void *user_data); +void dance_num_accent_reset (tap_dance_state_t *state, void *user_data); diff --git a/keyboards/cornia/mcuconf.h b/keyboards/cornia/mcuconf.h new file mode 100644 index 00000000000..9c018283f8d --- /dev/null +++ b/keyboards/cornia/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright 2024 Vaarai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef RP_I2C_USE_I2C0 +#define RP_I2C_USE_I2C0 FALSE + +#undef RP_I2C_USE_I2C1 +#define RP_I2C_USE_I2C1 TRUE \ No newline at end of file diff --git a/keyboards/cornia/readme.md b/keyboards/cornia/readme.md new file mode 100644 index 00000000000..3051d010a9f --- /dev/null +++ b/keyboards/cornia/readme.md @@ -0,0 +1,46 @@ +# Cornia Keyboard + +![Cornia v1](https://i.imgur.com/3vRlvi3.jpeg) + +A split keyboard with 3x6 column strongly staggered keys and 3 thumb keys + +* Keyboard Maintainer: [Vaarai](https://github.com/Vaarai) +* Hardware Supported: Cornia PCB, RP2040 / 0xCB-Helios +* Hardware Availability: [PCB Data](https://github.com/Vaarai/Cornia) + +Make example for this keyboard (after setting up your build environment): + + make cornia/v1:default + +Flashing example for this keyboard: + + make cornia/v1:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK ? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +The Cornia PCBs have a reset button on the bottom side near to the TRRS jack. + +To enter in to the bootloader you can either: +- Hold reset when plugging in that half of the keyboard. +- Double press reset if firmware was already flashed and if RP2040 is used +- Press NAV+NUM+ESC if firmware was already flashed no matter what controller is used + +## Keymaps + +Two keymaps are available for now, below are their [KLE](https://www.keyboard-layout-editor.com/) views: +- [Default QWERTY layout for Cornia keyboard](https://www.keyboard-layout-editor.com/#/gists/5af136790cefe4b35cdf02ca52c1fccc) +- [Fire layout for Cornia keyboard](https://www.keyboard-layout-editor.com/#/gists/a40345c92e1f3f326426ef890ebf4d1c) (Based on [Fire (Oxey)](https://docs.google.com/document/d/1Ic-h8UxGe5-Q0bPuYNgE3NoWiI8ekeadvSQ5YysrwII) layout) + +## OLED Display & Cirque Trackpad + +The Cornia Keyboard also support OLED Display and Cirque Trackpad through I²C, an implementation is available in `fire` keymap. + +To use it please make with the following command: + + make cornia/v1:fire + +And flash with: + + make cornia/v1:fire:flash \ No newline at end of file diff --git a/keyboards/cornia/v0_6/keyboard.json b/keyboards/cornia/v0_6/keyboard.json new file mode 100644 index 00000000000..5e4b96da21c --- /dev/null +++ b/keyboards/cornia/v0_6/keyboard.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Cornia v0.6", + "usb": { + "pid": "0x0600", + "device_version": "0.6.0" + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": [ "GP29", "GP28", "GP27", "GP26", "GP22", "GP20" ], + "rows": [ "GP4", "GP5", "GP6", "GP7" ] + } +} diff --git a/keyboards/cornia/v1/keyboard.json b/keyboards/cornia/v1/keyboard.json new file mode 100644 index 00000000000..90a54f288eb --- /dev/null +++ b/keyboards/cornia/v1/keyboard.json @@ -0,0 +1,21 @@ +{ + "keyboard_name": "Cornia v1", + "usb": { + "pid": "0x1000", + "device_version": "1.0.0" + }, + "split": { + + "handedness": { + "pin": "GP25" + } + }, + "matrix_pins": { + "direct":[ + ["GP27", "GP4", "GP28", "GP3", "GP29", "GP2"], + ["GP5", "GP26", "GP6", "GP22", "GP7", "GP20"], + ["GP8", "GP15", "GP9", "GP14", "GP12", "GP13"], + [ null, null, null, "GP16", "GP23", "GP21"] + ] + } +} From 85222dfd8caaec4c914e74720718f4288f530b0f Mon Sep 17 00:00:00 2001 From: Stephen Edwards Date: Tue, 3 Dec 2024 16:43:14 -0600 Subject: [PATCH 092/365] Add a keyboard entry for yacobo model m replacement control boards (#23827) * add the keyboard * Update keyboards/ibm/model_m/yacobo/keyboard.json Co-authored-by: jack <0x6a73@protonmail.com> * remove dead file * PR Comments * standardize comments * PR Comments --------- Co-authored-by: Stephen Edwards Co-authored-by: jack --- keyboards/ibm/model_m/yacobo/config.h | 22 ++ keyboards/ibm/model_m/yacobo/keyboard.json | 285 ++++++++++++++++++ .../model_m/yacobo/keymaps/default/keymap.c | 30 ++ keyboards/ibm/model_m/yacobo/readme.md | 28 ++ keyboards/ibm/model_m/yacobo/yacobo.c | 26 ++ 5 files changed, 391 insertions(+) create mode 100644 keyboards/ibm/model_m/yacobo/config.h create mode 100644 keyboards/ibm/model_m/yacobo/keyboard.json create mode 100644 keyboards/ibm/model_m/yacobo/keymaps/default/keymap.c create mode 100644 keyboards/ibm/model_m/yacobo/readme.md create mode 100644 keyboards/ibm/model_m/yacobo/yacobo.c diff --git a/keyboards/ibm/model_m/yacobo/config.h b/keyboards/ibm/model_m/yacobo/config.h new file mode 100644 index 00000000000..f8e96c8d6e2 --- /dev/null +++ b/keyboards/ibm/model_m/yacobo/config.h @@ -0,0 +1,22 @@ +/* Copyright 2024 Stephen Edwards + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * Adapted from the Model H Project by Jonathan Hawthorn. + */ + +#pragma once + +/* The status LED on the Blue Pill. */ +#define BLUE_PILL_STATUS_LED C13 diff --git a/keyboards/ibm/model_m/yacobo/keyboard.json b/keyboards/ibm/model_m/yacobo/keyboard.json new file mode 100644 index 00000000000..7ea9c6a621c --- /dev/null +++ b/keyboards/ibm/model_m/yacobo/keyboard.json @@ -0,0 +1,285 @@ +{ + "manufacturer": "IBM", + "keyboard_name": "Model M (Yacobo)", + "maintainer": "sje-mse", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true + }, + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "indicators": { + "num_lock": "B11", + "caps_lock": "B10", + "scroll_lock": "B1", + "on_state": 0 + }, + "matrix_pins": { + "cols": ["B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15", "A10", "A9", "A8", "B15", "B14", "B13", "B12", "A0"], + "rows": ["A1", "A2", "A3", "A4", "A5", "A6", "A7","B0"], + "ghost": true + }, + "development_board": "bluepill", + "url": "https://github.com/sje-mse/yacobo", + "usb": { + "device_version": "1.0.0", + "max_power": 100, + "pid": "0xB155", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT_fullsize_ansi_wkl": { + "layout": [ + {"label": "Esc", "matrix": [0, 2], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [2, 3], "x": 2, "y": 0}, + {"label": "F2", "matrix": [2, 4], "x": 3, "y": 0}, + {"label": "F3", "matrix": [1, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 8], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [1, 9], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [2, 9], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [2, 6], "x": 11, "y": 0}, + {"label": "F10", "matrix": [3, 6], "x": 12, "y": 0}, + {"label": "F11", "matrix": [3, 11], "x": 13, "y": 0}, + {"label": "F12", "matrix": [3, 12], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [3, 15], "x": 15.5, "y": 0}, + {"label": "Scroll Lock", "matrix": [4, 15], "x": 16.5, "y": 0}, + {"label": "Pause", "matrix": [6, 14], "x": 17.5, "y": 0}, + + {"label": "`", "matrix": [2, 2], "x": 0, "y": 1.5}, + {"label": "1", "matrix": [3, 2], "x": 1, "y": 1.5}, + {"label": "2", "matrix": [3, 3], "x": 2, "y": 1.5}, + {"label": "3", "matrix": [3, 4], "x": 3, "y": 1.5}, + {"label": "4", "matrix": [3, 5], "x": 4, "y": 1.5}, + {"label": "5", "matrix": [2, 5], "x": 5, "y": 1.5}, + {"label": "6", "matrix": [2, 7], "x": 6, "y": 1.5}, + {"label": "7", "matrix": [3, 7], "x": 7, "y": 1.5}, + {"label": "8", "matrix": [3, 8], "x": 8, "y": 1.5}, + {"label": "9", "matrix": [3, 9], "x": 9, "y": 1.5}, + {"label": "0", "matrix": [3, 10], "x": 10, "y": 1.5}, + {"label": "-", "matrix": [2, 10], "x": 11, "y": 1.5}, + {"label": "=", "matrix": [2, 8], "x": 12, "y": 1.5}, + {"label": "Backspace", "matrix": [1, 6], "x": 13, "y": 1.5, "w": 2}, + + {"label": "Insert", "matrix": [2, 12], "x": 15.5, "y": 1.5}, + {"label": "Home", "matrix": [2, 14], "x": 16.5, "y": 1.5}, + {"label": "Page Up", "matrix": [2, 13], "x": 17.5, "y": 1.5}, + + {"label": "Num Lock", "matrix": [6, 11], "x": 19, "y": 1.5}, + {"label": "/", "matrix": [6, 12], "x": 20, "y": 1.5}, + {"label": "*", "matrix": [6, 13], "x": 21, "y": 1.5}, + {"label": "-", "matrix": [7, 13], "x": 22, "y": 1.5}, + + {"label": "Tab", "matrix": [1, 2], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [4, 2], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [4, 3], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [4, 4], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [4, 5], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [4, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [4, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [4, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [4, 10], "x": 10.5, "y": 2.5}, + {"label": "[", "matrix": [1, 10], "x": 11.5, "y": 2.5}, + {"label": "]", "matrix": [1, 8], "x": 12.5, "y": 2.5}, + {"label": "\\", "matrix": [5, 6], "x": 13.5, "y": 2.5, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 11], "x": 15.5, "y": 2.5}, + {"label": "End", "matrix": [3, 14], "x": 16.5, "y": 2.5}, + {"label": "Page Down", "matrix": [3, 13], "x": 17.5, "y": 2.5}, + + {"label": "7", "matrix": [4, 11], "x": 19, "y": 2.5}, + {"label": "8", "matrix": [4, 12], "x": 20, "y": 2.5}, + {"label": "9", "matrix": [4, 13], "x": 21, "y": 2.5}, + {"label": "+", "matrix": [4, 14], "x": 22, "y": 2.5, "h": 2}, + + {"label": "Caps Lock", "matrix": [1, 3], "x": 0, "y": 3.5, "w": 1.25}, + {"label": "A", "matrix": [5, 2], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [5, 3], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [5, 4], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [5, 5], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [0, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [0, 7], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [5, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [5, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [5, 9], "x": 9.75, "y": 3.5}, + {"label": ";", "matrix": [5, 10], "x": 10.75, "y": 3.5}, + {"label": "'", "matrix": [0, 10], "x": 11.75, "y": 3.5}, + {"label": "Enter", "matrix": [6, 6], "x": 12.75, "y": 3.5, "w": 2.25}, + + {"label": "4", "matrix": [1, 11], "x": 19, "y": 3.5}, + {"label": "5", "matrix": [1, 12], "x": 20, "y": 3.5}, + {"label": "6", "matrix": [1, 13], "x": 21, "y": 3.5}, + + {"label": "Shift", "matrix": [1, 1], "x": 0, "y": 4.5, "w": 2.25}, + {"label": "Z", "matrix": [6, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [6, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [6, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [6, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [7, 5], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [7, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [6, 7], "x": 8.25, "y": 4.5}, + {"label": ",", "matrix": [6, 8], "x": 9.25, "y": 4.5}, + {"label": ".", "matrix": [6, 9], "x": 10.25, "y": 4.5}, + {"label": "/", "matrix": [7, 10], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [6, 1], "x": 12.25, "y": 4.5, "w": 2.75}, + + {"label": "\u2191", "matrix": [0, 14], "x": 16.5, "y": 4.5}, + + {"label": "1", "matrix": [5, 11], "x": 19, "y": 4.5}, + {"label": "2", "matrix": [5, 12], "x": 20, "y": 4.5}, + {"label": "3", "matrix": [5, 13], "x": 21, "y": 4.5}, + {"label": "Enter", "matrix": [5, 14], "x": 22, "y": 4.5, "h": 2}, + + {"label": "Ctrl", "matrix": [2, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"label": "Alt", "matrix": [0, 15], "x": 2.5, "y": 5.5, "w": 1.5}, + {"label": "Space", "matrix": [7, 6], "x": 4, "y": 5.5, "w": 7}, + {"label": "Alt Gr", "matrix": [7, 15], "x": 11, "y": 5.5, "w": 1.5}, + {"label": "Ctrl", "matrix": [6, 0], "x": 13.5, "y": 5.5, "w": 1.5}, + + {"label": "\u2190", "matrix": [7, 14], "x": 15.5, "y": 5.5}, + {"label": "\u2193", "matrix": [7, 11], "x": 16.5, "y": 5.5}, + {"label": "\u2192", "matrix": [7, 12], "x": 17.5, "y": 5.5}, + + {"label": "0", "matrix": [0, 11], "x": 19, "y": 5.5, "w": 2}, + {"label": ".", "matrix": [0, 13], "x": 21, "y": 5.5} + ] + }, + "LAYOUT_fullsize_iso_wkl": { + "layout": [ + {"label": "Esc", "matrix": [0, 2], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [2, 3], "x": 2, "y": 0}, + {"label": "F2", "matrix": [2, 4], "x": 3, "y": 0}, + {"label": "F3", "matrix": [1, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 8], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [1, 9], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [2, 9], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [2, 6], "x": 11, "y": 0}, + {"label": "F10", "matrix": [3, 6], "x": 12, "y": 0}, + {"label": "F11", "matrix": [3, 11], "x": 13, "y": 0}, + {"label": "F12", "matrix": [3, 12], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [3, 15], "x": 15.5, "y": 0}, + {"label": "Scroll Lock", "matrix": [4, 15], "x": 16.5, "y": 0}, + {"label": "Pause", "matrix": [6, 14], "x": 17.5, "y": 0}, + + {"label": "`", "matrix": [2, 2], "x": 0, "y": 1.5}, + {"label": "1", "matrix": [3, 2], "x": 1, "y": 1.5}, + {"label": "2", "matrix": [3, 3], "x": 2, "y": 1.5}, + {"label": "3", "matrix": [3, 4], "x": 3, "y": 1.5}, + {"label": "4", "matrix": [3, 5], "x": 4, "y": 1.5}, + {"label": "5", "matrix": [2, 5], "x": 5, "y": 1.5}, + {"label": "6", "matrix": [2, 7], "x": 6, "y": 1.5}, + {"label": "7", "matrix": [3, 7], "x": 7, "y": 1.5}, + {"label": "8", "matrix": [3, 8], "x": 8, "y": 1.5}, + {"label": "9", "matrix": [3, 9], "x": 9, "y": 1.5}, + {"label": "0", "matrix": [3, 10], "x": 10, "y": 1.5}, + {"label": "-", "matrix": [2, 10], "x": 11, "y": 1.5}, + {"label": "=", "matrix": [2, 8], "x": 12, "y": 1.5}, + {"label": "Backspace", "matrix": [1, 6], "x": 13, "y": 1.5, "w": 2}, + + {"label": "Insert", "matrix": [2, 12], "x": 15.5, "y": 1.5}, + {"label": "Home", "matrix": [2, 14], "x": 16.5, "y": 1.5}, + {"label": "Page Up", "matrix": [2, 13], "x": 17.5, "y": 1.5}, + + {"label": "Num Lock", "matrix": [6, 11], "x": 19, "y": 1.5}, + {"label": "/", "matrix": [6, 12], "x": 20, "y": 1.5}, + {"label": "*", "matrix": [6, 13], "x": 21, "y": 1.5}, + {"label": "-", "matrix": [7, 13], "x": 22, "y": 1.5}, + + {"label": "Tab", "matrix": [1, 2], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [4, 2], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [4, 3], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [4, 4], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [4, 5], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [4, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [4, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [4, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [4, 10], "x": 10.5, "y": 2.5}, + {"label": "[", "matrix": [1, 10], "x": 11.5, "y": 2.5}, + {"label": "]", "matrix": [1, 8], "x": 12.5, "y": 2.5}, + + {"label": "Delete", "matrix": [2, 11], "x": 15.5, "y": 2.5}, + {"label": "End", "matrix": [3, 14], "x": 16.5, "y": 2.5}, + {"label": "Page Down", "matrix": [3, 13], "x": 17.5, "y": 2.5}, + + {"label": "7", "matrix": [4, 11], "x": 19, "y": 2.5}, + {"label": "8", "matrix": [4, 12], "x": 20, "y": 2.5}, + {"label": "9", "matrix": [4, 13], "x": 21, "y": 2.5}, + {"label": "+", "matrix": [4, 14], "x": 22, "y": 2.5, "h": 2}, + + {"label": "Caps Lock", "matrix": [1, 3], "x": 0, "y": 3.5, "w": 1.25}, + {"label": "A", "matrix": [5, 2], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [5, 3], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [5, 4], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [5, 5], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [0, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [0, 7], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [5, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [5, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [5, 9], "x": 9.75, "y": 3.5}, + {"label": ";", "matrix": [5, 10], "x": 10.75, "y": 3.5}, + {"label": "'", "matrix": [0, 10], "x": 11.75, "y": 3.5}, + {"label": "#", "matrix": [6, 10], "x": 12.75, "y": 3.5}, + {"label": "Enter", "matrix": [6, 6], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + + {"label": "4", "matrix": [1, 11], "x": 19, "y": 3.5}, + {"label": "5", "matrix": [1, 12], "x": 20, "y": 3.5}, + {"label": "6", "matrix": [1, 13], "x": 21, "y": 3.5}, + + {"label": "Shift", "matrix": [1, 1], "x": 0, "y": 4.5, "w": 1.25}, + {"label": "\\", "matrix": [0, 3], "x": 1.25, "y": 4.5}, + {"label": "Z", "matrix": [6, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [6, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [6, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [6, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [7, 5], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [7, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [6, 7], "x": 8.25, "y": 4.5}, + {"label": ",", "matrix": [6, 8], "x": 9.25, "y": 4.5}, + {"label": ".", "matrix": [6, 9], "x": 10.25, "y": 4.5}, + {"label": "/", "matrix": [7, 10], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [6, 1], "x": 12.25, "y": 4.5, "w": 2.75}, + + {"label": "\u2191", "matrix": [0, 14], "x": 16.5, "y": 4.5}, + + {"label": "1", "matrix": [5, 11], "x": 19, "y": 4.5}, + {"label": "2", "matrix": [5, 12], "x": 20, "y": 4.5}, + {"label": "3", "matrix": [5, 13], "x": 21, "y": 4.5}, + {"label": "Enter", "matrix": [5, 14], "x": 22, "y": 4.5, "h": 2}, + + {"label": "Ctrl", "matrix": [2, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"label": "Alt", "matrix": [0, 15], "x": 2.5, "y": 5.5, "w": 1.5}, + {"label": "Space", "matrix": [7, 6], "x": 4, "y": 5.5, "w": 7}, + {"label": "Alt Gr", "matrix": [7, 15], "x": 11, "y": 5.5, "w": 1.5}, + {"label": "Ctrl", "matrix": [6, 0], "x": 13.5, "y": 5.5, "w": 1.5}, + + {"label": "\u2190", "matrix": [7, 14], "x": 15.5, "y": 5.5}, + {"label": "\u2193", "matrix": [7, 11], "x": 16.5, "y": 5.5}, + {"label": "\u2192", "matrix": [7, 12], "x": 17.5, "y": 5.5}, + + {"label": "0", "matrix": [0, 11], "x": 19, "y": 5.5, "w": 2}, + {"label": ".", "matrix": [0, 13], "x": 21, "y": 5.5} + ] + } + } +} diff --git a/keyboards/ibm/model_m/yacobo/keymaps/default/keymap.c b/keyboards/ibm/model_m/yacobo/keymaps/default/keymap.c new file mode 100644 index 00000000000..27647d4ed3c --- /dev/null +++ b/keyboards/ibm/model_m/yacobo/keymaps/default/keymap.c @@ -0,0 +1,30 @@ +/* Copyright 2021 Stephen Edwards + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * Adapted from the Model H Project by Jonathan Hawthorn. + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_fullsize_ansi_wkl( /* Base layer */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), +}; diff --git a/keyboards/ibm/model_m/yacobo/readme.md b/keyboards/ibm/model_m/yacobo/readme.md new file mode 100644 index 00000000000..d0cafa1d444 --- /dev/null +++ b/keyboards/ibm/model_m/yacobo/readme.md @@ -0,0 +1,28 @@ +# yacobo + +![yacobo](https://i.imgur.com/1nfuWoa.jpeg) + +*A replacement qmk-compatible control board for the 101-key Model M keyboards. +Inspired by and based on the ModelH by jhawthorn, in comparison this design uses 100% through-hole components, including the widely available STM32F103C8T6 "Blue Pill" development board, for ease of assembly.* + +* Keyboard Maintainer: [Stephen Edwards](https://github.com/sje-mse) +* Hardware Supported: IBM 101-key Model M with Yacobo replacement control boards. +* Hardware Availability: [Yacobo PCB](https://github.com/sje-mse/yacobo). + +Make example for this keyboard (after setting up your build environment): + + make yacobo:default + +Flashing example for this keyboard: + + make yacobo:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Press the "Reset" button on the Blue Pill daughterboard. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/ibm/model_m/yacobo/yacobo.c b/keyboards/ibm/model_m/yacobo/yacobo.c new file mode 100644 index 00000000000..7664facacc7 --- /dev/null +++ b/keyboards/ibm/model_m/yacobo/yacobo.c @@ -0,0 +1,26 @@ +/* Copyright 2024 Stephen Edwards + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * Adapted from the Model H Project by Jonathan Hawthorn. + */ + +#include "quantum.h" + + +void keyboard_pre_init_kb(void) { + gpio_set_pin_output(BLUE_PILL_STATUS_LED); + gpio_write_pin(BLUE_PILL_STATUS_LED, 0); + keyboard_pre_init_user(); +} From a794ceeb5168cf82bdbe6d10690596b9cda6fcc3 Mon Sep 17 00:00:00 2001 From: GustawXYZ <129527844+GustawXYZ@users.noreply.github.com> Date: Wed, 4 Dec 2024 00:09:24 +0100 Subject: [PATCH 093/365] [Keyboard] Add dactyl_manuform_pi_pico (#23891) Adds new keyboard under handwired/dactyl_manuform_pi_pico It is a dactyl_manuform(5x6) running on Pi Pico micro controller --- .../dactyl_manuform_pi_pico/config.h | 9 ++ .../dactyl_manuform_pi_pico/keyboard.json | 123 ++++++++++++++++++ .../keymaps/default/keymap.c | 65 +++++++++ .../dactyl_manuform_pi_pico/readme.md | 32 +++++ 4 files changed, 229 insertions(+) create mode 100644 keyboards/handwired/dactyl_manuform_pi_pico/config.h create mode 100644 keyboards/handwired/dactyl_manuform_pi_pico/keyboard.json create mode 100644 keyboards/handwired/dactyl_manuform_pi_pico/keymaps/default/keymap.c create mode 100644 keyboards/handwired/dactyl_manuform_pi_pico/readme.md diff --git a/keyboards/handwired/dactyl_manuform_pi_pico/config.h b/keyboards/handwired/dactyl_manuform_pi_pico/config.h new file mode 100644 index 00000000000..c622149a4a9 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform_pi_pico/config.h @@ -0,0 +1,9 @@ +// Copyright 2023 Gustaw.xyz (@Gustaw.xyz) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U +#define SERIAL_USART_FULL_DUPLEX +#define SERIAL_USART_TX_PIN GP9 +#define SERIAL_USART_RX_PIN GP8 diff --git a/keyboards/handwired/dactyl_manuform_pi_pico/keyboard.json b/keyboards/handwired/dactyl_manuform_pi_pico/keyboard.json new file mode 100644 index 00000000000..57202c802a7 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform_pi_pico/keyboard.json @@ -0,0 +1,123 @@ +{ + "manufacturer": "GustawXYZ", + "keyboard_name": "dactyl_manuform_pi_pico", + "maintainer": "GustawXYZ", + "bootloader": "rp2040", + "processor": "RP2040", + "url": "https://github.com/GustawXYZ/dactyl_manuform_pi_pico", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "split": { + "enabled": true, + "handedness": { + "pin": "GP22" + }, + "serial": { + "driver": "vendor" + }, + "transport": { + "watchdog": true + } + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["GP10", "GP11", "GP12", "GP13", "GP14", "GP15"], + "rows": ["GP21", "GP20", "GP19", "GP18", "GP17", "GP16"] + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + + {"matrix": [6, 0], "x": 11, "y": 0}, + {"matrix": [6, 1], "x": 12, "y": 0}, + {"matrix": [6, 2], "x": 13, "y": 0}, + {"matrix": [6, 3], "x": 14, "y": 0}, + {"matrix": [6, 4], "x": 15, "y": 0}, + {"matrix": [6, 5], "x": 16, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + + {"matrix": [7, 0], "x": 11, "y": 1}, + {"matrix": [7, 1], "x": 12, "y": 1}, + {"matrix": [7, 2], "x": 13, "y": 1}, + {"matrix": [7, 3], "x": 14, "y": 1}, + {"matrix": [7, 4], "x": 15, "y": 1}, + {"matrix": [7, 5], "x": 16, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + + {"matrix": [8, 0], "x": 11, "y": 2}, + {"matrix": [8, 1], "x": 12, "y": 2}, + {"matrix": [8, 2], "x": 13, "y": 2}, + {"matrix": [8, 3], "x": 14, "y": 2}, + {"matrix": [8, 4], "x": 15, "y": 2}, + {"matrix": [8, 5], "x": 16, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 5], "x": 5, "y": 3}, + + {"matrix": [9, 0], "x": 11, "y": 3}, + {"matrix": [9, 1], "x": 12, "y": 3}, + {"matrix": [9, 2], "x": 13, "y": 3}, + {"matrix": [9, 3], "x": 14, "y": 3}, + {"matrix": [9, 4], "x": 15, "y": 3}, + {"matrix": [9, 5], "x": 16, "y": 3}, + + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [4, 3], "x": 3, "y": 4}, + + {"matrix": [10, 2], "x": 13, "y": 4}, + {"matrix": [10, 3], "x": 14, "y": 4}, + + {"matrix": [4, 4], "x": 4, "y": 5}, + {"matrix": [4, 5], "x": 5, "y": 5}, + + {"matrix": [10, 0], "x": 11, "y": 5}, + {"matrix": [10, 1], "x": 12, "y": 5}, + + {"matrix": [5, 4], "x": 6, "y": 6}, + {"matrix": [5, 5], "x": 7, "y": 6}, + + {"matrix": [11, 0], "x": 9, "y": 6}, + {"matrix": [11, 1], "x": 10, "y": 6}, + + {"matrix": [5, 2], "x": 6, "y": 7}, + {"matrix": [5, 3], "x": 7, "y": 7}, + + {"matrix": [11, 2], "x": 9, "y": 7}, + {"matrix": [11, 3], "x": 10, "y": 7} + ] + } + } +} diff --git a/keyboards/handwired/dactyl_manuform_pi_pico/keymaps/default/keymap.c b/keyboards/handwired/dactyl_manuform_pi_pico/keymaps/default/keymap.c new file mode 100644 index 00000000000..cd78aef7a97 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform_pi_pico/keymaps/default/keymap.c @@ -0,0 +1,65 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layers { + _QWERTY, + _SYMBOLS, + _GAMING, + _ARROWS, + _WINMGR, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + LALT(KC_LSFT), LALT(KC_SPC), LALT(KC_SPC), LGUI(KC_LALT), + KC_SPC, TT(_SYMBOLS), TT(_ARROWS), LALT(KC_ENTER), + KC_LCTL, KC_LGUI, KC_LGUI, KC_RCTL, + KC_LALT, TT(_WINMGR), TT(_GAMING), KC_LALT), + + [_SYMBOLS] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_CAPS_LOCK, LSFT(KC_BSLS), KC_BSLS, LSFT(KC_LBRC), LSFT(KC_RBRC), KC_TRNS, KC_TRNS, LSFT(KC_7), LSFT(KC_8), LSFT(KC_9), LCTL(KC_EQUAL), LGUI(KC_EQUAL), + TO(_QWERTY), LSFT(KC_EQUAL), KC_MINUS, LSFT(KC_9), LSFT(KC_0), KC_GRAVE, KC_BSLS, LSFT(KC_4), LSFT(KC_5), LSFT(KC_6), LCTL(KC_MINUS), LGUI(KC_MINUS), + KC_TRNS, KC_EQUAL, LSFT(KC_MINUS), KC_LBRC, KC_RBRC, LSFT(KC_GRAVE), LSFT(KC_BSLS), LSFT(KC_1), LSFT(KC_2), LSFT(KC_3), KC_COMMA, KC_CALC, + KC_TRNS, KC_TRNS, LSFT(KC_0), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, LSFT(KC_0), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + QK_RBT, KC_TRNS, KC_TRNS, KC_TRNS), + + [_GAMING] = LAYOUT( + KC_6, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_7, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_ESC, KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, + KC_8, KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_9, KC_0, KC_TRNS, KC_TRNS, + KC_SPC, MO(_ARROWS), KC_TRNS, KC_ENTER, + KC_G, KC_M, KC_TRNS, KC_TRNS, + KC_LALT, TO(_QWERTY), TO(_QWERTY), KC_TRNS), + + [_ARROWS] = LAYOUT( + KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_NUM, KC_KP_SLASH, KC_P7, KC_P8, KC_P9, KC_MINUS, LCTL(KC_LEFT), LCTL(KC_DOWN), LCTL(KC_UP), LCTL(KC_RGHT), KC_TRNS, KC_DELETE, + TO(_QWERTY), KC_KP_PLUS, KC_P4, KC_P5, KC_P6, KC_DOT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_END, KC_PSCR, + KC_UNDS, KC_KP_MINUS, KC_P1, KC_P2, KC_P3, KC_COMMA, KC_HOME, KC_MPLY, KC_MPRV, KC_MNXT, KC_MUTE, KC_INS, + KC_KP_DOT, KC_P0, KC_VOLD, KC_VOLU, + KC_P0, TO(_WINMGR), KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, QK_RBT), + + [_WINMGR] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_F1, LGUI(KC_7), LGUI(KC_8), LGUI(KC_9), KC_F4, KC_F7, SGUI(KC_7), SGUI(KC_8), SGUI(KC_9), KC_F10, KC_TRNS, + TO(_QWERTY), KC_F2, LGUI(KC_4), LGUI(KC_5), LGUI(KC_6), KC_F5, KC_F8, SGUI(KC_4), SGUI(KC_5), SGUI(KC_6), KC_F11, KC_TRNS, + KC_TRNS, KC_F3, LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), KC_F6, KC_F9, SGUI(KC_1), SGUI(KC_2), SGUI(KC_3), KC_F12, KC_TRNS, + KC_TRNS, LGUI(KC_0), SGUI(KC_0), KC_TRNS, + LGUI(KC_0), KC_TRNS, KC_TRNS, SGUI(KC_0), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + LCTL(LGUI(KC_Q)), KC_TRNS, KC_TRNS, KC_TRNS) +}; + diff --git a/keyboards/handwired/dactyl_manuform_pi_pico/readme.md b/keyboards/handwired/dactyl_manuform_pi_pico/readme.md new file mode 100644 index 00000000000..808f030fb0a --- /dev/null +++ b/keyboards/handwired/dactyl_manuform_pi_pico/readme.md @@ -0,0 +1,32 @@ +# dactyl_manuform_pi_pico + +![dactyl_manuform_pi_pico](https://i.imgur.com/T9b74bI.jpg) + +This is a dactyl_manuform 5x6 running Rasrberry Pi Pico. +It's based on alcor_dactyl but with more reasonable GPIO layout for Pi Pico +and clasic dactyl_manuform layout (pinkies have only 4 rows). + +Build instructions: https://github.com/GustawXYZ/dactyl_manuform_pi_pico/ + +* Keyboard Maintainer: [Gustaw.xyz](https://github.com/Gustaw.xyz) +* Hardware Supported: Raspberry Pi Pico and other RP2040 +* Hardware Availability: https://www.raspberrypi.com/products/raspberry-pi-pico/ +* 3D Print model: https://github.com/abstracthat/dactyl-manuform + +Make example for this keyboard (after setting up your build environment): + + make handwired/dactyl_manuform_pi_pico:default + +Flashing example for this keyboard: + + make handwired/dactyl_manuform_pi_pico:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From c2bc6e2b3c4edd20587b881b480232734f966212 Mon Sep 17 00:00:00 2001 From: Can Baytok Date: Wed, 4 Dec 2024 17:37:02 +0100 Subject: [PATCH 094/365] [Keyboard] Add cans12erv2 (#24628) Co-authored-by: jack Co-authored-by: Duncan Sutherland Co-authored-by: Drashna Jaelre Co-authored-by: Can Baytok --- keyboards/handwired/cans12erv2/keyboard.json | 49 +++++++++++++++++++ .../cans12erv2/keymaps/default/keymap.c | 17 +++++++ .../cans12erv2/keymaps/default/rules.mk | 1 + keyboards/handwired/cans12erv2/readme.md | 27 ++++++++++ 4 files changed, 94 insertions(+) create mode 100644 keyboards/handwired/cans12erv2/keyboard.json create mode 100644 keyboards/handwired/cans12erv2/keymaps/default/keymap.c create mode 100644 keyboards/handwired/cans12erv2/keymaps/default/rules.mk create mode 100644 keyboards/handwired/cans12erv2/readme.md diff --git a/keyboards/handwired/cans12erv2/keyboard.json b/keyboards/handwired/cans12erv2/keyboard.json new file mode 100644 index 00000000000..ed0e78cd94e --- /dev/null +++ b/keyboards/handwired/cans12erv2/keyboard.json @@ -0,0 +1,49 @@ +{ + "manufacturer": "Can Baytok", + "keyboard_name": "Cans12erV2", + "maintainer": "canbaytok", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "GP14", "pin_b": "GP15"} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP9", "GP10", "GP11", "GP12"], + "rows": ["GP13", "GP7", "GP8"] + }, + "host_language": "german", + "processor": "RP2040", + "url": "https://github.com/canbaytok/Cans12erV2", + "usb": { + "device_version": "1.0.0", + "pid": "0xABC0", + "vid": "0x4342" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0, "encoder": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2} + ] + } + } +} diff --git a/keyboards/handwired/cans12erv2/keymaps/default/keymap.c b/keyboards/handwired/cans12erv2/keymaps/default/keymap.c new file mode 100644 index 00000000000..0619369bb27 --- /dev/null +++ b/keyboards/handwired/cans12erv2/keymaps/default/keymap.c @@ -0,0 +1,17 @@ +// Copyright 2024 Can Baytok (https://github.com/canbaytok) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_A, KC_B, KC_C, KC_D, + KC_E, KC_F, KC_G, KC_H, + KC_I, KC_J, KC_K, KC_L + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } +}; +#endif diff --git a/keyboards/handwired/cans12erv2/keymaps/default/rules.mk b/keyboards/handwired/cans12erv2/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/handwired/cans12erv2/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/handwired/cans12erv2/readme.md b/keyboards/handwired/cans12erv2/readme.md new file mode 100644 index 00000000000..fa08efacc77 --- /dev/null +++ b/keyboards/handwired/cans12erv2/readme.md @@ -0,0 +1,27 @@ +# Cans12erV2 +![Cans12erV2](https://i.imgur.com/3fkbydJ.png) + +New version of my 12-key orthogonal macro keypad with hot swappable keyswitch support and an encoder knob. + +* Keyboard Maintainer: [Can Baytok](https://github.com/canbaytok) +* Build Instructions: [Github](https://github.com/canbaytok/Cans12erV2) +* Hardware Supported: RP2040 Zero +* Hardware Availability: amazon, aliexpress (RP2040 Zero clones work too) + +Make example for this keyboard (after setting up your build environment): + + make handwired/cans12erv2:default + +Flashing example for this keyboard: + + make handwired/cans12erv2:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Quickly double press the reset button on the PCB to make the RP2040 boot into its uf2 mode +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file From 88d4462e528a64a50942b718e9b7705b4d6dd3dd Mon Sep 17 00:00:00 2001 From: Marco Pelegrini Date: Wed, 4 Dec 2024 08:51:40 -0800 Subject: [PATCH 095/365] [Keyboard] Add Marcopad (#24636) * Marcopad debut * Applying core review suggestions * Optional layout with backlit * Line feeds and replacing dev board configs * Function to toggle backlight * Move to RGB Matrix * Fixing capitalization * Review comments --------- Co-authored-by: Marco Pelegrini --- keyboards/marcopad/keyboard.json | 80 +++++++++++++++++++++ keyboards/marcopad/keymaps/backlit/keymap.c | 44 ++++++++++++ keyboards/marcopad/keymaps/backlit/rules.mk | 4 ++ keyboards/marcopad/keymaps/default/keymap.c | 21 ++++++ keyboards/marcopad/readme.md | 27 +++++++ 5 files changed, 176 insertions(+) create mode 100644 keyboards/marcopad/keyboard.json create mode 100644 keyboards/marcopad/keymaps/backlit/keymap.c create mode 100644 keyboards/marcopad/keymaps/backlit/rules.mk create mode 100644 keyboards/marcopad/keymaps/default/keymap.c create mode 100644 keyboards/marcopad/readme.md diff --git a/keyboards/marcopad/keyboard.json b/keyboards/marcopad/keyboard.json new file mode 100644 index 00000000000..c0a8ca37c04 --- /dev/null +++ b/keyboards/marcopad/keyboard.json @@ -0,0 +1,80 @@ +{ + "manufacturer": "pelegrini.ca", + "keyboard_name": "MarcoPad", + "maintainer": "Marco Pelegrini", + "bootloader": "rp2040", + "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP4", "GP26", "GP27"], + "rows": ["GP15", "GP14", "GP29"] + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "dual_beacon": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "solid_reactive": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "splash": true, + "typing_heatmap": true + }, + "default": { + "animation": "splash", + "hue": 132, + "sat": 102, + "speed": 80, + "val": 255 + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 0, "y": 32, "flags": 4}, + {"matrix": [0, 2], "x": 0, "y": 64, "flags": 4}, + {"matrix": [1, 0], "x": 112, "y": 0, "flags": 4}, + {"matrix": [1, 1], "x": 112, "y": 32, "flags": 4}, + {"matrix": [1, 2], "x": 112, "y": 64, "flags": 4}, + {"matrix": [2, 0], "x": 224, "y": 0, "flags": 4}, + {"matrix": [2, 1], "x": 224, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 224, "y": 64, "flags": 4} + ], + "sleep": true + }, + "url": "https://pelegrini.ca/marcopad", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP28" + }, + "community_layouts": ["ortho_3x3"], + "layouts": { + "LAYOUT_ortho_3x3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 0, "y": 1}, + {"matrix": [0, 2], "x": 0, "y": 2}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 1, "y": 2}, + {"matrix": [2, 0], "x": 2, "y": 0}, + {"matrix": [2, 1], "x": 2, "y": 1}, + {"matrix": [2, 2], "x": 2, "y": 2} + ] + } + } +} diff --git a/keyboards/marcopad/keymaps/backlit/keymap.c b/keyboards/marcopad/keymaps/backlit/keymap.c new file mode 100644 index 00000000000..d70df8e6f75 --- /dev/null +++ b/keyboards/marcopad/keymaps/backlit/keymap.c @@ -0,0 +1,44 @@ +// Copyright (c) 2022 Marco Pelegrini +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┐ + * │ 7 │ 8 │ 9 │ + * ├───┼───┼───┤ + * │ 4 │ 5 │ 6 │ + * ├───┼───┼───┤ + * │ 1 │ 2 │ 3 │ + * └───┴───┴───┘ + */ + [0] = LAYOUT_ortho_3x3( + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, + KC_P1, KC_P2, KC_P3 + ) +}; + +const uint16_t PROGMEM backlight_next[] = {KC_P7, KC_P8, COMBO_END}; +const uint16_t PROGMEM backlight_toggle[] = {KC_P7, KC_P9, COMBO_END}; +const uint16_t PROGMEM hue_up[] = {KC_P7, KC_P4, COMBO_END}; +const uint16_t PROGMEM hue_down[] = {KC_P7, KC_P1, COMBO_END}; +const uint16_t PROGMEM sat_up[] = {KC_P7, KC_P5, COMBO_END}; +const uint16_t PROGMEM sat_down[] = {KC_P7, KC_P2, COMBO_END}; +const uint16_t PROGMEM value_up[] = {KC_P7, KC_P6, COMBO_END}; +const uint16_t PROGMEM value_down[] = {KC_P7, KC_P3, COMBO_END}; +const uint16_t PROGMEM speed_up[] = {KC_P8, KC_P4, COMBO_END}; +const uint16_t PROGMEM speed_down[] = {KC_P8, KC_P1, COMBO_END}; +combo_t key_combos[] = { + COMBO(backlight_next, RGB_MODE_FORWARD), + COMBO(backlight_toggle, RGB_TOG), + COMBO(hue_up, RGB_HUI), + COMBO(hue_down, RGB_HUD), + COMBO(sat_up, RGB_SAI), + COMBO(sat_down, RGB_SAD), + COMBO(value_up, RGB_VAI), + COMBO(value_down, RGB_VAD), + COMBO(speed_up, RGB_SPI), + COMBO(speed_down, RGB_SPD) +}; diff --git a/keyboards/marcopad/keymaps/backlit/rules.mk b/keyboards/marcopad/keymaps/backlit/rules.mk new file mode 100644 index 00000000000..c358f546050 --- /dev/null +++ b/keyboards/marcopad/keymaps/backlit/rules.mk @@ -0,0 +1,4 @@ +# Copyright (c) 2022 Marco Pelegrini +# SPDX-License-Identifier: GPL-2.0-or-later + +COMBO_ENABLE = yes diff --git a/keyboards/marcopad/keymaps/default/keymap.c b/keyboards/marcopad/keymaps/default/keymap.c new file mode 100644 index 00000000000..b892c0e80c8 --- /dev/null +++ b/keyboards/marcopad/keymaps/default/keymap.c @@ -0,0 +1,21 @@ +// Copyright (c) 2022 Marco Pelegrini +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┐ + * │ 7 │ 8 │ 9 │ + * ├───┼───┼───┤ + * │ 4 │ 5 │ 6 │ + * ├───┼───┼───┤ + * │ 1 │ 2 │ 3 │ + * └───┴───┴───┘ + */ + [0] = LAYOUT_ortho_3x3( + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, + KC_P1, KC_P2, KC_P3 + ) +}; diff --git a/keyboards/marcopad/readme.md b/keyboards/marcopad/readme.md new file mode 100644 index 00000000000..6bc1733f30c --- /dev/null +++ b/keyboards/marcopad/readme.md @@ -0,0 +1,27 @@ +# MarcoPad + +![marcopad](https://i.imgur.com/AnC9SeW.png) + +*A compact 3x3 keys macropad built with RP-2040 Zero* + +* Keyboard Maintainer: [pelegrini.ca](https://pelegrini.ca/marcopad) +* Hardware Supported: [MarcoPad](https://pelegrini.ca/marcopad) +* Hardware Availability: [MarcoPad](https://pelegrini.ca/marcopad) + +Make example for this keyboard (after setting up your build environment): + + make marcopad:default + +Flashing example for this keyboard: + + make marcopad:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (top left key) and plug in the keyboard +* **Physical reset button**: Using 2 paperclips, press and hold the BOOT button, then short press the RESET button on the back of the MarcoPad +* **Physical reset button + plug in**: Using a paperclip, press and hold the BOOT button, then plug in the MarcoPad From 8094a1d182a64f1188ff9d952d71c8f6c267d823 Mon Sep 17 00:00:00 2001 From: Cipulot <40441626+Cipulot@users.noreply.github.com> Date: Wed, 4 Dec 2024 17:55:08 +0100 Subject: [PATCH 096/365] Addition of EC Constellation (#24644) * Addition of EC Constellation * Fix layout macro name --- keyboards/cipulot/ec_constellation/config.h | 63 ++++++ keyboards/cipulot/ec_constellation/halconf.h | 21 ++ .../cipulot/ec_constellation/keyboard.json | 185 ++++++++++++++++++ .../keymaps/65_ansi_rwkl/keymap.c | 43 ++++ .../ec_constellation/keymaps/default/keymap.c | 43 ++++ keyboards/cipulot/ec_constellation/mcuconf.h | 22 +++ .../cipulot/ec_constellation/post_rules.mk | 1 + keyboards/cipulot/ec_constellation/readme.md | 26 +++ keyboards/cipulot/ec_constellation/rules.mk | 1 + 9 files changed, 405 insertions(+) create mode 100644 keyboards/cipulot/ec_constellation/config.h create mode 100644 keyboards/cipulot/ec_constellation/halconf.h create mode 100644 keyboards/cipulot/ec_constellation/keyboard.json create mode 100644 keyboards/cipulot/ec_constellation/keymaps/65_ansi_rwkl/keymap.c create mode 100644 keyboards/cipulot/ec_constellation/keymaps/default/keymap.c create mode 100644 keyboards/cipulot/ec_constellation/mcuconf.h create mode 100644 keyboards/cipulot/ec_constellation/post_rules.mk create mode 100644 keyboards/cipulot/ec_constellation/readme.md create mode 100644 keyboards/cipulot/ec_constellation/rules.mk diff --git a/keyboards/cipulot/ec_constellation/config.h b/keyboards/cipulot/ec_constellation/config.h new file mode 100644 index 00000000000..1a2ecf54a0b --- /dev/null +++ b/keyboards/cipulot/ec_constellation/config.h @@ -0,0 +1,63 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +#define UNUSED_POSITIONS_LIST { {3, 1}, {4, 3}, {4, 4}, {4, 5}, {4, 7}, {4, 8}, {4, 9} } + +#define MATRIX_ROW_PINS \ + { A8, A15, B12, B8, B9 } + +#define AMUX_COUNT 1 +#define AMUX_MAX_COLS_COUNT 15 + +#define AMUX_EN_PINS \ + { B5 } + +#define AMUX_SEL_PINS \ + { B6, B7, B4, B3 } + +#define AMUX_COL_CHANNELS_SIZES \ + { 15 } + +#define AMUX_0_COL_CHANNELS \ + { 7, 6, 5, 4, 3, 2, 1, 0, 9, 15, 14, 13, 10, 11, 12} + +#define AMUX_COL_CHANNELS AMUX_0_COL_CHANNELS + +#define DISCHARGE_PIN A2 +#define ANALOG_PORT A3 + +#define DEFAULT_ACTUATION_MODE 0 +#define DEFAULT_MODE_0_ACTUATION_LEVEL 550 +#define DEFAULT_MODE_0_RELEASE_LEVEL 500 +#define DEFAULT_MODE_1_INITIAL_DEADZONE_OFFSET DEFAULT_MODE_0_ACTUATION_LEVEL +#define DEFAULT_MODE_1_ACTUATION_OFFSET 70 +#define DEFAULT_MODE_1_RELEASE_OFFSET 70 +#define DEFAULT_EXTREMUM 1023 +#define EXPECTED_NOISE_FLOOR 0 +#define NOISE_FLOOR_THRESHOLD 50 +#define BOTTOMING_CALIBRATION_THRESHOLD 50 +#define DEFAULT_NOISE_FLOOR_SAMPLING_COUNT 30 +#define DEFAULT_BOTTOMING_READING 1023 +#define DEFAULT_CALIBRATION_STARTER true + +#define DISCHARGE_TIME 10 + +#define EECONFIG_KB_DATA_SIZE 159 diff --git a/keyboards/cipulot/ec_constellation/halconf.h b/keyboards/cipulot/ec_constellation/halconf.h new file mode 100644 index 00000000000..6b63cb5af98 --- /dev/null +++ b/keyboards/cipulot/ec_constellation/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_ADC TRUE + +#include_next diff --git a/keyboards/cipulot/ec_constellation/keyboard.json b/keyboards/cipulot/ec_constellation/keyboard.json new file mode 100644 index 00000000000..15187c472f2 --- /dev/null +++ b/keyboards/cipulot/ec_constellation/keyboard.json @@ -0,0 +1,185 @@ +{ + "manufacturer": "Cipulot", + "keyboard_name": "Constellation EC", + "maintainer": "Cipulot", + "bootloader": "stm32-dfu", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "eeprom": { + "wear_leveling": { + "backing_size": 4096 + } + }, + "features": { + "bootmagic": false, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "processor": "STM32F411", + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x6BC9", + "shared_endpoint": { + "keyboard": true + }, + "vid": "0x6369" + }, + "layout_aliases": { + "LAYOUT_all": "LAYOUT_65_ansi_rwkl_split_bs" + }, + "layouts": { + "LAYOUT_65_ansi_rwkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 13], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 11.75, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_rwkl_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [1, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 13], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 11.75, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/cipulot/ec_constellation/keymaps/65_ansi_rwkl/keymap.c b/keyboards/cipulot/ec_constellation/keymaps/65_ansi_rwkl/keymap.c new file mode 100644 index 00000000000..acc4c91e4c3 --- /dev/null +++ b/keyboards/cipulot/ec_constellation/keymaps/65_ansi_rwkl/keymap.c @@ -0,0 +1,43 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_65_ansi_rwkl( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_65_ansi_rwkl( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, + _______, _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_65_ansi_rwkl( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_constellation/keymaps/default/keymap.c b/keyboards/cipulot/ec_constellation/keymaps/default/keymap.c new file mode 100644 index 00000000000..18d1418be21 --- /dev/null +++ b/keyboards/cipulot/ec_constellation/keymaps/default/keymap.c @@ -0,0 +1,43 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_65_ansi_rwkl_split_bs( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_65_ansi_rwkl_split_bs( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, _______, + _______, _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_65_ansi_rwkl_split_bs( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_constellation/mcuconf.h b/keyboards/cipulot/ec_constellation/mcuconf.h new file mode 100644 index 00000000000..1679d3fbc04 --- /dev/null +++ b/keyboards/cipulot/ec_constellation/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE diff --git a/keyboards/cipulot/ec_constellation/post_rules.mk b/keyboards/cipulot/ec_constellation/post_rules.mk new file mode 100644 index 00000000000..5dba48cc5fd --- /dev/null +++ b/keyboards/cipulot/ec_constellation/post_rules.mk @@ -0,0 +1 @@ +include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/ec_constellation/readme.md b/keyboards/cipulot/ec_constellation/readme.md new file mode 100644 index 00000000000..16bbdcdf6f8 --- /dev/null +++ b/keyboards/cipulot/ec_constellation/readme.md @@ -0,0 +1,26 @@ +# Constellation EC + +![Constellation EC](https://i.imgur.com/ndgUV63.jpeg) + +EC version of the Constellation keyboard. + +* Keyboard Maintainer: [cipulot](https://github.com/cipulot) +* Hardware Supported: Constellation EC PCB +* Hardware Availability: [Keyboard Treehouse](https://keyboardtreehouse.com/collections/constellation) + +Make example for this keyboard (after setting up your build environment): + + make cipulot/ec_constellation:default + +Flashing example for this keyboard: + + make cipulot/ec_constellation:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Physical reset**: Long short the exposed pins on the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cipulot/ec_constellation/rules.mk b/keyboards/cipulot/ec_constellation/rules.mk new file mode 100644 index 00000000000..1716098b3e1 --- /dev/null +++ b/keyboards/cipulot/ec_constellation/rules.mk @@ -0,0 +1 @@ +OPT = 3 From 5dc92edf11946dca663c6723d8039e734126ccb0 Mon Sep 17 00:00:00 2001 From: Cipulot <40441626+Cipulot@users.noreply.github.com> Date: Wed, 4 Dec 2024 17:57:16 +0100 Subject: [PATCH 097/365] Addition of EC1-AT (#24645) --- keyboards/cipulot/ec1_at/config.h | 61 ++++++++ keyboards/cipulot/ec1_at/halconf.h | 21 +++ keyboards/cipulot/ec1_at/keyboard.json | 142 ++++++++++++++++++ .../cipulot/ec1_at/keymaps/default/keymap.c | 42 ++++++ keyboards/cipulot/ec1_at/mcuconf.h | 22 +++ keyboards/cipulot/ec1_at/post_rules.mk | 1 + keyboards/cipulot/ec1_at/readme.md | 26 ++++ keyboards/cipulot/ec1_at/rules.mk | 1 + 8 files changed, 316 insertions(+) create mode 100644 keyboards/cipulot/ec1_at/config.h create mode 100644 keyboards/cipulot/ec1_at/halconf.h create mode 100644 keyboards/cipulot/ec1_at/keyboard.json create mode 100644 keyboards/cipulot/ec1_at/keymaps/default/keymap.c create mode 100644 keyboards/cipulot/ec1_at/mcuconf.h create mode 100644 keyboards/cipulot/ec1_at/post_rules.mk create mode 100644 keyboards/cipulot/ec1_at/readme.md create mode 100644 keyboards/cipulot/ec1_at/rules.mk diff --git a/keyboards/cipulot/ec1_at/config.h b/keyboards/cipulot/ec1_at/config.h new file mode 100644 index 00000000000..5e7af3fac57 --- /dev/null +++ b/keyboards/cipulot/ec1_at/config.h @@ -0,0 +1,61 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define MATRIX_ROWS 5 +#define MATRIX_COLS 21 + +#define UNUSED_POSITIONS_LIST { {2, 16}, {4, 5}, {4, 7}, {4, 9}, {4, 12}, {4, 16} } + +#define MATRIX_ROW_PINS {A8, B15, B14, B12, B13} + +#define AMUX_COUNT 2 +#define AMUX_MAX_COLS_COUNT 16 + +#define AMUX_EN_PINS {B5, A15} + +#define AMUX_SEL_PINS {B6, B7, B4, B3} + +#define AMUX_COL_CHANNELS_SIZES {16, 5} + +#define AMUX_0_COL_CHANNELS {5, 6, 7, 4, 3, 2, 1, 0, 8, 15, 14, 13, 12, 10, 9, 11} + +#define AMUX_1_COL_CHANNELS {4, 2, 1, 0, 3} + +#define AMUX_COL_CHANNELS AMUX_0_COL_CHANNELS, AMUX_1_COL_CHANNELS + +#define DISCHARGE_PIN A2 +#define ANALOG_PORT A3 + +#define DEFAULT_ACTUATION_MODE 0 +#define DEFAULT_MODE_0_ACTUATION_LEVEL 550 +#define DEFAULT_MODE_0_RELEASE_LEVEL 500 +#define DEFAULT_MODE_1_INITIAL_DEADZONE_OFFSET DEFAULT_MODE_0_ACTUATION_LEVEL +#define DEFAULT_MODE_1_ACTUATION_OFFSET 70 +#define DEFAULT_MODE_1_RELEASE_OFFSET 70 +#define DEFAULT_EXTREMUM 1023 +#define EXPECTED_NOISE_FLOOR 0 +#define NOISE_FLOOR_THRESHOLD 50 +#define BOTTOMING_CALIBRATION_THRESHOLD 50 +#define DEFAULT_NOISE_FLOOR_SAMPLING_COUNT 30 +#define DEFAULT_BOTTOMING_READING 1023 +#define DEFAULT_CALIBRATION_STARTER true + +#define DISCHARGE_TIME 10 + +#define EECONFIG_KB_DATA_SIZE 219 +#define DYNAMIC_KEYMAP_MACRO_COUNT 30 diff --git a/keyboards/cipulot/ec1_at/halconf.h b/keyboards/cipulot/ec1_at/halconf.h new file mode 100644 index 00000000000..6b63cb5af98 --- /dev/null +++ b/keyboards/cipulot/ec1_at/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_ADC TRUE + +#include_next diff --git a/keyboards/cipulot/ec1_at/keyboard.json b/keyboards/cipulot/ec1_at/keyboard.json new file mode 100644 index 00000000000..9a7a0ae04e7 --- /dev/null +++ b/keyboards/cipulot/ec1_at/keyboard.json @@ -0,0 +1,142 @@ +{ + "manufacturer": "Cipulot", + "keyboard_name": "EC1-AT", + "maintainer": "Cipulot", + "bootloader": "stm32-dfu", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "eeprom": { + "wear_leveling": { + "backing_size": 16384 + } + }, + "features": { + "bootmagic": false, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "processor": "STM32F411", + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x6BCE", + "shared_endpoint": { + "keyboard": true + }, + "vid": "0x6369" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.25, "y": 0}, + {"matrix": [0, 6], "x": 6.25, "y": 0}, + {"matrix": [0, 7], "x": 7.25, "y": 0}, + {"matrix": [0, 8], "x": 8.25, "y": 0}, + {"matrix": [0, 9], "x": 9.25, "y": 0}, + {"matrix": [0, 10], "x": 10.25, "y": 0}, + {"matrix": [0, 11], "x": 11.25, "y": 0}, + {"matrix": [0, 12], "x": 12.25, "y": 0}, + {"matrix": [0, 13], "x": 13.25, "y": 0}, + {"matrix": [0, 14], "x": 14.25, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.5, "y": 0}, + {"matrix": [0, 18], "x": 18.5, "y": 0}, + {"matrix": [0, 19], "x": 19.5, "y": 0}, + {"matrix": [0, 20], "x": 20.5, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2.25, "y": 1, "w": 1.5}, + {"matrix": [1, 3], "x": 3.75, "y": 1}, + {"matrix": [1, 4], "x": 4.75, "y": 1}, + {"matrix": [1, 5], "x": 5.75, "y": 1}, + {"matrix": [1, 6], "x": 6.75, "y": 1}, + {"matrix": [1, 7], "x": 7.75, "y": 1}, + {"matrix": [1, 8], "x": 8.75, "y": 1}, + {"matrix": [1, 9], "x": 9.75, "y": 1}, + {"matrix": [1, 10], "x": 10.75, "y": 1}, + {"matrix": [1, 11], "x": 11.75, "y": 1}, + {"matrix": [1, 12], "x": 12.75, "y": 1}, + {"matrix": [1, 13], "x": 13.75, "y": 1}, + {"matrix": [1, 14], "x": 14.75, "y": 1}, + {"matrix": [1, 15], "x": 15.75, "y": 1, "w": 0.75}, + {"matrix": [1, 16], "x": 16.5, "y": 1, "w": 0.75}, + {"matrix": [1, 17], "x": 17.5, "y": 1}, + {"matrix": [1, 18], "x": 18.5, "y": 1}, + {"matrix": [1, 19], "x": 19.5, "y": 1}, + {"matrix": [1, 20], "x": 20.5, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2.25, "y": 2, "w": 1.75}, + {"matrix": [2, 3], "x": 4, "y": 2}, + {"matrix": [2, 4], "x": 5, "y": 2}, + {"matrix": [2, 5], "x": 6, "y": 2}, + {"matrix": [2, 6], "x": 7, "y": 2}, + {"matrix": [2, 7], "x": 8, "y": 2}, + {"matrix": [2, 8], "x": 9, "y": 2}, + {"matrix": [2, 9], "x": 10, "y": 2}, + {"matrix": [2, 10], "x": 11, "y": 2}, + {"matrix": [2, 11], "x": 12, "y": 2}, + {"matrix": [2, 12], "x": 13, "y": 2}, + {"matrix": [2, 13], "x": 14, "y": 2}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [2, 15], "x": 16, "y": 2, "w": 1.25}, + {"matrix": [2, 17], "x": 17.5, "y": 2}, + {"matrix": [2, 18], "x": 18.5, "y": 2}, + {"matrix": [2, 19], "x": 19.5, "y": 2}, + {"matrix": [2, 20], "x": 20.5, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25}, + {"matrix": [3, 3], "x": 3.5, "y": 3}, + {"matrix": [3, 4], "x": 4.5, "y": 3}, + {"matrix": [3, 5], "x": 5.5, "y": 3}, + {"matrix": [3, 6], "x": 6.5, "y": 3}, + {"matrix": [3, 7], "x": 7.5, "y": 3}, + {"matrix": [3, 8], "x": 8.5, "y": 3}, + {"matrix": [3, 9], "x": 9.5, "y": 3}, + {"matrix": [3, 10], "x": 10.5, "y": 3}, + {"matrix": [3, 11], "x": 11.5, "y": 3}, + {"matrix": [3, 12], "x": 12.5, "y": 3}, + {"matrix": [3, 13], "x": 13.5, "y": 3}, + {"matrix": [3, 14], "x": 14.5, "y": 3}, + {"matrix": [3, 15], "x": 15.5, "y": 3, "w": 0.75}, + {"matrix": [3, 16], "x": 16.25, "y": 3}, + {"matrix": [3, 17], "x": 17.5, "y": 3}, + {"matrix": [3, 18], "x": 18.5, "y": 3}, + {"matrix": [3, 19], "x": 19.5, "y": 3}, + {"matrix": [3, 20], "x": 20.5, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5}, + {"matrix": [4, 3], "x": 3.75, "y": 4}, + {"matrix": [4, 4], "x": 4.75, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 6.25, "y": 4, "w": 1.5}, + {"matrix": [4, 8], "x": 7.75, "y": 4, "w": 2.5}, + {"matrix": [4, 10], "x": 10.25, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 11.75, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.25, "y": 4, "w": 1.5}, + {"matrix": [4, 14], "x": 14.75, "y": 4}, + {"matrix": [4, 15], "x": 15.75, "y": 4, "w": 1.5}, + {"matrix": [4, 17], "x": 17.5, "y": 4}, + {"matrix": [4, 18], "x": 18.5, "y": 4}, + {"matrix": [4, 19], "x": 19.5, "y": 4}, + {"matrix": [4, 20], "x": 20.5, "y": 4} + ] + } + } +} diff --git a/keyboards/cipulot/ec1_at/keymaps/default/keymap.c b/keyboards/cipulot/ec1_at/keymaps/default/keymap.c new file mode 100644 index 00000000000..b0e5e3aac35 --- /dev/null +++ b/keyboards/cipulot/ec1_at/keymaps/default/keymap.c @@ -0,0 +1,42 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT( + _______, _______, QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + _______, _______, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_ENTER, KC_P7, KC_P8, KC_P9, KC_PMNS, + _______, _______, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENTER, KC_P4, KC_P5, KC_P6, KC_PPLS, + _______, _______, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, MO(1), KC_P1, KC_P2, KC_P3, KC_PENT, + _______, _______, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RALT, MO(1), KC_RCTL, KC_P0, KC_P0, KC_PDOT, KC_PENT), + + [1] = LAYOUT( + _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RIGHT, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______), + + [2] = LAYOUT( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec1_at/mcuconf.h b/keyboards/cipulot/ec1_at/mcuconf.h new file mode 100644 index 00000000000..1679d3fbc04 --- /dev/null +++ b/keyboards/cipulot/ec1_at/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE diff --git a/keyboards/cipulot/ec1_at/post_rules.mk b/keyboards/cipulot/ec1_at/post_rules.mk new file mode 100644 index 00000000000..5dba48cc5fd --- /dev/null +++ b/keyboards/cipulot/ec1_at/post_rules.mk @@ -0,0 +1 @@ +include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/ec1_at/readme.md b/keyboards/cipulot/ec1_at/readme.md new file mode 100644 index 00000000000..8e2081dae74 --- /dev/null +++ b/keyboards/cipulot/ec1_at/readme.md @@ -0,0 +1,26 @@ +# EC1-AT + +![EC1-AT](https://i.imgur.com/69OrQsh.png) + +EC version of the W1-AT keyboard. + +* Keyboard Maintainer: [cipulot](https://github.com/cipulot) +* Hardware Supported: EC1-AT +* Hardware Availability: TBD + +Make example for this keyboard (after setting up your build environment): + + make cipulot/ec1_at:default + +Flashing example for this keyboard: + + make cipulot/ec1_at:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Physical reset**: Long press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cipulot/ec1_at/rules.mk b/keyboards/cipulot/ec1_at/rules.mk new file mode 100644 index 00000000000..1716098b3e1 --- /dev/null +++ b/keyboards/cipulot/ec1_at/rules.mk @@ -0,0 +1 @@ +OPT = 3 From d01303c060a9c9d33fa79ba0372ea7403ae18a3c Mon Sep 17 00:00:00 2001 From: kbd0 <108237598+kbd0@users.noreply.github.com> Date: Wed, 4 Dec 2024 12:07:26 -0500 Subject: [PATCH 098/365] [Keyboard] add kbd0 Curve0 60 ANSI (#24609) * add kbd0/curve0/60_ansi keyboard * Apply suggestions from code review Co-authored-by: jack * Apply suggestions from code review Co-authored-by: Duncan Sutherland --------- Co-authored-by: unknown Co-authored-by: jack Co-authored-by: Duncan Sutherland --- keyboards/kbd0/curve0/60_ansi/keyboard.json | 228 ++++++++++++++++++ .../60_ansi/keymaps/default/keymap.json | 22 ++ keyboards/kbd0/curve0/60_ansi/readme.md | 27 +++ 3 files changed, 277 insertions(+) create mode 100644 keyboards/kbd0/curve0/60_ansi/keyboard.json create mode 100644 keyboards/kbd0/curve0/60_ansi/keymaps/default/keymap.json create mode 100644 keyboards/kbd0/curve0/60_ansi/readme.md diff --git a/keyboards/kbd0/curve0/60_ansi/keyboard.json b/keyboards/kbd0/curve0/60_ansi/keyboard.json new file mode 100644 index 00000000000..64c39cd24ef --- /dev/null +++ b/keyboards/kbd0/curve0/60_ansi/keyboard.json @@ -0,0 +1,228 @@ +{ + "manufacturer": "kbd0", + "keyboard_name": "kbd0/curve0/60_ansi", + "maintainer": "kbd0", + "bootloader": "rp2040", + "bootloader_instructions": "Hold the top left key of the keyboard while plugging in the keyboard", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP6", "GP5", "GP4", "GP7", "GP10", "GP9", "GP11", "GP12", "GP13", "GP14", "GP25", "GP20", "GP19", "GP18", "GP16"], + "rows": ["GP23", "GP22", "GP21", "GP24", "GP17"] + }, + "processor": "RP2040", + "url": "https://kbd0.com/item/curve0", + "usb": { + "device_version": "1.0.0", + "pid": "0xC000", + "vid": "0xCBD0" + }, + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift"], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + } + } +} diff --git a/keyboards/kbd0/curve0/60_ansi/keymaps/default/keymap.json b/keyboards/kbd0/curve0/60_ansi/keymaps/default/keymap.json new file mode 100644 index 00000000000..d84bfd2bf47 --- /dev/null +++ b/keyboards/kbd0/curve0/60_ansi/keymaps/default/keymap.json @@ -0,0 +1,22 @@ +{ + "author": "kbd0", + "keyboard": "kbd0/curve0/60_ansi", + "keymap": "default", + "layout": "LAYOUT_all", + "layers": [ + [ + "KC_ESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_MINS", "KC_EQL", "KC_BSLS", "KC_BSPC", + "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_LBRC", "KC_RBRC", "KC_BSLS", + "KC_CAPS", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_ENT", + "KC_LSFT", "KC_NUBS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT", "MO(1)", + "KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "KC_RGUI", "KC_APP", "KC_RCTL" + ], + [ + "KC_GRV", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "_______", "KC_DEL", + "_______", "_______", "KC_UP", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "_______", "KC_LEFT", "KC_DOWN", "KC_RGHT", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______" + ] + ] +} diff --git a/keyboards/kbd0/curve0/60_ansi/readme.md b/keyboards/kbd0/curve0/60_ansi/readme.md new file mode 100644 index 00000000000..f97ec673129 --- /dev/null +++ b/keyboards/kbd0/curve0/60_ansi/readme.md @@ -0,0 +1,27 @@ +# kbd0/curve0/60_ansi + +![Curve0](https://i.imgur.com/y5ZIbWI.jpeg) + +Curve0 - Curved stainless steel keyboard by kbd0 + +* Keyboard Maintainer: [kbd0](https://github.com/kbd0) +* Hardware Supported: Curve0 PCB +* Hardware Availability: [kbd0.com](https://kbd0.com/item/curve0) + +Make example for this keyboard (after setting up your build environment): + + make kbd0/curve0/60_ansi:default + +Flashing example for this keyboard: + + make kbd0/curve0/60_ansi:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold the top left key of the keyboard while plugging in the keyboard +* **Physical reset button**: Hold the button on the main PCB (inside the keyboard) while plugging in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 3c324cb5e6989713c050a959ef7854427d8bca0f Mon Sep 17 00:00:00 2001 From: Vino Rodrigues <366673+vinorodrigues@users.noreply.github.com> Date: Thu, 5 Dec 2024 04:10:11 +1100 Subject: [PATCH 099/365] [Keyboard] Add Binepad BNK8 keyboard (#24598) * Add Binepad BNK8 keyboard * Moved keymap.c to keymap.json * Fix product page URL * RGB_ -> RM_ keycodes after this round of breaking changes Co-authored-by: Ryan --------- Co-authored-by: Ryan --- keyboards/binepad/bnk8/config.h | 7 ++ keyboards/binepad/bnk8/keyboard.json | 88 +++++++++++++++++++ .../binepad/bnk8/keymaps/default/keymap.json | 40 +++++++++ keyboards/binepad/bnk8/readme.md | 26 ++++++ 4 files changed, 161 insertions(+) create mode 100644 keyboards/binepad/bnk8/config.h create mode 100755 keyboards/binepad/bnk8/keyboard.json create mode 100644 keyboards/binepad/bnk8/keymaps/default/keymap.json create mode 100755 keyboards/binepad/bnk8/readme.md diff --git a/keyboards/binepad/bnk8/config.h b/keyboards/binepad/bnk8/config.h new file mode 100644 index 00000000000..40eea2db812 --- /dev/null +++ b/keyboards/binepad/bnk8/config.h @@ -0,0 +1,7 @@ +// Copyright 2024 binepad (@binepad) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// Timing for SK6812 +#define WS2812_T1H 650 diff --git a/keyboards/binepad/bnk8/keyboard.json b/keyboards/binepad/bnk8/keyboard.json new file mode 100755 index 00000000000..550aa779617 --- /dev/null +++ b/keyboards/binepad/bnk8/keyboard.json @@ -0,0 +1,88 @@ +{ + "manufacturer": "binepad", + "keyboard_name": "BNK8", + "maintainer": "binepad", + "bootloader": "stm32duino", + "bootloader_instructions": "Hold down the key at (0x0) in the matrix (the top left key) and plug in the keyboard.", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "A7", "pin_b": "A0", "resolution": 2} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["B3", "B4", "C13"], + "rows": ["C14", "B13", "B12"] + }, + "processor": "STM32F103", + "rgb_matrix": { + "animations": { + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_pinwheel": true, + "cycle_up_down": true, + "jellybean_raindrops": true, + "riverflow": true, + "solid_reactive": true, + "solid_reactive_simple": true, + "solid_splash": true, + "splash": true, + "starlight": true, + "starlight_dual_hue": true, + "starlight_dual_sat": true + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 112, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 80, "y": 32, "flags": 4}, + {"matrix": [1, 1], "x": 112, "y": 32, "flags": 4}, + {"matrix": [1, 2], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 80, "y": 64, "flags": 4}, + {"matrix": [2, 1], "x": 112, "y": 64, "flags": 4}, + {"matrix": [2, 2], "x": 144, "y": 64, "flags": 4} + ], + "led_process_limit": 9, + "max_brightness": 180, + "sleep": true + }, + "url": "https://www.binepad.com/product-page/bnk8", + "usb": { + "device_version": "1.0.0", + "vid": "0x4249", + "pid": "0x4E41" + }, + "eeprom": { + "wear_leveling": { + "backing_size": 1024 + } + }, + "ws2812": { + "pin": "C15" + }, + "community_layouts": ["ortho_3x3"], + "layouts": { + "LAYOUT_ortho_3x3": { + "layout": [ + {"label": "1", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "2", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "Knob", "matrix": [0, 2], "x": 2, "y": 0, "encoder": 0}, + {"label": "3", "matrix": [1, 0], "x": 0, "y": 1}, + {"label": "4", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "5", "matrix": [1, 2], "x": 2, "y": 1}, + {"label": "6", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "7", "matrix": [2, 1], "x": 1, "y": 2}, + {"label": "8", "matrix": [2, 2], "x": 2, "y": 2} + ] + } + } +} diff --git a/keyboards/binepad/bnk8/keymaps/default/keymap.json b/keyboards/binepad/bnk8/keymaps/default/keymap.json new file mode 100644 index 00000000000..51b5e066197 --- /dev/null +++ b/keyboards/binepad/bnk8/keymaps/default/keymap.json @@ -0,0 +1,40 @@ +{ + "keyboard": "binepad/bnk8", + "version": 1, + "author": "binepad", + "notes": "Copyright 2024 Binepad (@binepad) \n SPDX-License-Identifier: GPL-2.0-or-later \n This file is a keymap.json file for binepad/bnk8", + "keymap": "default", + "layout": "LAYOUT_ortho_3x3", + "layers": [ + [ + "KC_P1", "KC_P2", "KC_MUTE", + "KC_P3", "KC_P4", "KC_P5", + "KC_P6", "KC_P7", "LT(1, KC_P8)" + ], + [ + "RM_HUEU", "RM_SATU", "RM_SPDU", + "RM_HUED", "RM_SATD", "RM_SPDD", + "RM_TOGG", "RM_NEXT", "_______" + + ] + ], + "config": { + "features": { + "encoder_map": true + } + }, + "encoders": [ + [ + { + "ccw": "KC_VOLD", + "cw": "KC_VOLU" + } + ], + [ + { + "ccw": "RM_VALD", + "cw": "RM_VALU" + } + ] + ] +} diff --git a/keyboards/binepad/bnk8/readme.md b/keyboards/binepad/bnk8/readme.md new file mode 100755 index 00000000000..89ceb863a1d --- /dev/null +++ b/keyboards/binepad/bnk8/readme.md @@ -0,0 +1,26 @@ +# BINEPAD BNK8 + +![BINEPAD BNK8](https://i.imgur.com/HFIZg48h.jpeg) + +A compact 8-key 3x3 macropad with a rotary encoder at the top right. + +* Keyboard Maintainer: [binepad](https://github.com/binepad) +* Hardware Supported: BINPAD BNK8 +* Hardware Availability: [binepad.com](https://binepad.com/products/bnk8) + +Make example for this keyboard (after setting up your build environment): + + make binepad/bnk8:default + +Flashing example for this keyboard: + + make binepad/bnk8:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key) and plug in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From d76f7bfac3bffdfbcc664a677db3e13100ad2879 Mon Sep 17 00:00:00 2001 From: Andrew Kannan Date: Thu, 5 Dec 2024 13:18:25 -0500 Subject: [PATCH 100/365] Add Cerberus to QMK (#24226) * Add Cerberus to QMK * Update readme to add hotswap callouts * Update readme formatting * Use format json to update keyboard.json formatting * Split Cerberus HS and Solderable into separate folders * Update JSON formatting * make solderable keymaps a bit more useful * Backlight fix on solderable * Update keyboards/cannonkeys/cerberus/hotswap/keyboard.json Co-authored-by: jack * Remove cerberus VIA keymaps * Apply suggestions from code review Change some whitespace Co-authored-by: Drashna Jaelre * Add RGB control keycodes to cerberus keymap * Add backlight controls to default keymap on solderable version * Update keyboards/cannonkeys/cerberus/readme.md --------- Co-authored-by: jack Co-authored-by: Drashna Jaelre --- keyboards/cannonkeys/cerberus/config.h | 9 + keyboards/cannonkeys/cerberus/halconf.h | 9 + .../cannonkeys/cerberus/hotswap/keyboard.json | 311 ++++++++ .../cerberus/hotswap/keymaps/default/keymap.c | 26 + .../cannonkeys/cerberus/hotswap/rules.mk | 2 + keyboards/cannonkeys/cerberus/info.json | 50 ++ keyboards/cannonkeys/cerberus/mcuconf.h | 9 + keyboards/cannonkeys/cerberus/readme.md | 28 + .../cannonkeys/cerberus/solderable/config.h | 8 + .../cannonkeys/cerberus/solderable/halconf.h | 10 + .../cerberus/solderable/keyboard.json | 711 ++++++++++++++++++ .../solderable/keymaps/default/keymap.c | 25 + .../cerberus/solderable/matrix_diagram.md | 24 + .../cannonkeys/cerberus/solderable/mcuconf.h | 9 + .../cannonkeys/cerberus/solderable/rules.mk | 2 + 15 files changed, 1233 insertions(+) create mode 100644 keyboards/cannonkeys/cerberus/config.h create mode 100644 keyboards/cannonkeys/cerberus/halconf.h create mode 100644 keyboards/cannonkeys/cerberus/hotswap/keyboard.json create mode 100644 keyboards/cannonkeys/cerberus/hotswap/keymaps/default/keymap.c create mode 100644 keyboards/cannonkeys/cerberus/hotswap/rules.mk create mode 100644 keyboards/cannonkeys/cerberus/info.json create mode 100644 keyboards/cannonkeys/cerberus/mcuconf.h create mode 100644 keyboards/cannonkeys/cerberus/readme.md create mode 100644 keyboards/cannonkeys/cerberus/solderable/config.h create mode 100644 keyboards/cannonkeys/cerberus/solderable/halconf.h create mode 100644 keyboards/cannonkeys/cerberus/solderable/keyboard.json create mode 100644 keyboards/cannonkeys/cerberus/solderable/keymaps/default/keymap.c create mode 100644 keyboards/cannonkeys/cerberus/solderable/matrix_diagram.md create mode 100644 keyboards/cannonkeys/cerberus/solderable/mcuconf.h create mode 100644 keyboards/cannonkeys/cerberus/solderable/rules.mk diff --git a/keyboards/cannonkeys/cerberus/config.h b/keyboards/cannonkeys/cerberus/config.h new file mode 100644 index 00000000000..84ea5d9acd0 --- /dev/null +++ b/keyboards/cannonkeys/cerberus/config.h @@ -0,0 +1,9 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define WS2812_SPI_DRIVER SPID2 +#define WS2812_SPI_MOSI_PAL_MODE 0 +#define WS2812_SPI_SCK_PAL_MODE 0 +#define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/cannonkeys/cerberus/halconf.h b/keyboards/cannonkeys/cerberus/halconf.h new file mode 100644 index 00000000000..d0f34b102cb --- /dev/null +++ b/keyboards/cannonkeys/cerberus/halconf.h @@ -0,0 +1,9 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_SPI TRUE + +#include_next + diff --git a/keyboards/cannonkeys/cerberus/hotswap/keyboard.json b/keyboards/cannonkeys/cerberus/hotswap/keyboard.json new file mode 100644 index 00000000000..78890d942e7 --- /dev/null +++ b/keyboards/cannonkeys/cerberus/hotswap/keyboard.json @@ -0,0 +1,311 @@ +{ + "keyboard_name": "Cerberus HS", + "usb": { + "pid": "0x0034" + }, + "community_layouts": ["tkl_nofrow_ansi"], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "~", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, + {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, + {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3}, + {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, + {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, + {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_ansi": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, + {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, + {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, + {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, + {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_ansi_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, + {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, + {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}, + {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, + {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, + {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "~", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, + {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, + {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3}, + {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}, + {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, + {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, + {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} + ] + } + } +} diff --git a/keyboards/cannonkeys/cerberus/hotswap/keymaps/default/keymap.c b/keyboards/cannonkeys/cerberus/hotswap/keymaps/default/keymap.c new file mode 100644 index 00000000000..865dbff4003 --- /dev/null +++ b/keyboards/cannonkeys/cerberus/hotswap/keymaps/default/keymap.c @@ -0,0 +1,26 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +enum layer_names { + _BASE, + _FN1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_LGUI, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, + UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, UG_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, UG_HUED, UG_SATD, UG_VALD, UG_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, UG_PREV, UG_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/cannonkeys/cerberus/hotswap/rules.mk b/keyboards/cannonkeys/cerberus/hotswap/rules.mk new file mode 100644 index 00000000000..0ab54aaaf71 --- /dev/null +++ b/keyboards/cannonkeys/cerberus/hotswap/rules.mk @@ -0,0 +1,2 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF diff --git a/keyboards/cannonkeys/cerberus/info.json b/keyboards/cannonkeys/cerberus/info.json new file mode 100644 index 00000000000..c260c2fcd59 --- /dev/null +++ b/keyboards/cannonkeys/cerberus/info.json @@ -0,0 +1,50 @@ +{ + "manufacturer": "CannonKeys", + "maintainer": "awkannan", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": true, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["B0", "C15", "C14", "A7", "A5", "C13", "A4", "A2", "A1", "A0", "B9", "B8", "B7", "A3", "B6", "B4", "B3", "A15"], + "rows": ["B11", "B10", "B2", "F0", "B5"] + }, + "processor": "STM32F072", + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "led_count": 4 + }, + "url": "https://cannonkeys.com", + "usb": { + "device_version": "0.0.1", + "vid": "0xCA04" + }, + "ws2812": { + "driver": "spi", + "pin": "B15" + } +} diff --git a/keyboards/cannonkeys/cerberus/mcuconf.h b/keyboards/cannonkeys/cerberus/mcuconf.h new file mode 100644 index 00000000000..32f9fbd6db8 --- /dev/null +++ b/keyboards/cannonkeys/cerberus/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE diff --git a/keyboards/cannonkeys/cerberus/readme.md b/keyboards/cannonkeys/cerberus/readme.md new file mode 100644 index 00000000000..848d746594d --- /dev/null +++ b/keyboards/cannonkeys/cerberus/readme.md @@ -0,0 +1,28 @@ +# Cerberus Keyboard by CannonKeys + +This folder contains firmware for both the Solderable and Hotswap version of Cerberus + +The hotswap PCB does not support per-key LEDs and has reduced layout support (no ISO) + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: STM32F072CBT6 + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/cerberus/hotswap:default + make cannonkeys/cerberus/solderable:default + +Flashing example for this keyboard: + + make cannonkeys/cerberus/hotswap:default:flash + make cannonkeys/cerberus/solderable:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Toggle the switch on the back of the pcb to "1" and briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cannonkeys/cerberus/solderable/config.h b/keyboards/cannonkeys/cerberus/solderable/config.h new file mode 100644 index 00000000000..9e5e637de41 --- /dev/null +++ b/keyboards/cannonkeys/cerberus/solderable/config.h @@ -0,0 +1,8 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_PWM_CHANNEL 1 +#define BACKLIGHT_PAL_MODE 1 diff --git a/keyboards/cannonkeys/cerberus/solderable/halconf.h b/keyboards/cannonkeys/cerberus/solderable/halconf.h new file mode 100644 index 00000000000..fc641ca42f9 --- /dev/null +++ b/keyboards/cannonkeys/cerberus/solderable/halconf.h @@ -0,0 +1,10 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + + +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next + diff --git a/keyboards/cannonkeys/cerberus/solderable/keyboard.json b/keyboards/cannonkeys/cerberus/solderable/keyboard.json new file mode 100644 index 00000000000..3797df38513 --- /dev/null +++ b/keyboards/cannonkeys/cerberus/solderable/keyboard.json @@ -0,0 +1,711 @@ +{ + "keyboard_name": "Cerberus", + "backlight": { + "breathing": true, + "levels": 6, + "pin": "A6" + }, + "features": { + "backlight": true + }, + "indicators": { + "caps_lock": "F1", + "on_state": 0 + }, + "usb": { + "pid": "0x0031" + }, + "community_layouts": ["tkl_nofrow_ansi", "tkl_nofrow_iso"], + "layout_aliases": { + "LAYOUT_all": "LAYOUT" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "`", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Page Up", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "\\", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, + {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, + {"label": "Page Down", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "#", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "x": 13.75, "y": 2, "w": 1.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "\\", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3}, + {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, + {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, + {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_ansi": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, + {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, + {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, + {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, + {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_ansi_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "~", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, + {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, + {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3}, + {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, + {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, + {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_ansi_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, + {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, + {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}, + {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, + {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, + {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "~", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, + {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, + {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3}, + {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}, + {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, + {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, + {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_iso": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "\"", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "\u00a3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, + {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, + {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "@", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "~", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, + {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, + {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_iso_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "\"", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "\u00a3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "\u00ac", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, + {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, + {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "@", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "~", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3}, + {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, + {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, + {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_iso_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "\"", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "\u00a3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, + {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, + {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "@", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "~", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}, + {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, + {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, + {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_iso_tsangan_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "\"", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "\u00a3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "\u00ac", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, + {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, + {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "@", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "~", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3}, + {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}, + {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, + {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, + {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} + ] + } + } +} diff --git a/keyboards/cannonkeys/cerberus/solderable/keymaps/default/keymap.c b/keyboards/cannonkeys/cerberus/solderable/keymaps/default/keymap.c new file mode 100644 index 00000000000..2b87af0e997 --- /dev/null +++ b/keyboards/cannonkeys/cerberus/solderable/keymaps/default/keymap.c @@ -0,0 +1,25 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +enum layer_names { + _BASE, + _FN1, +}; +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_LGUI, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, + UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, UG_SPDU, BL_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, UG_HUED, UG_SATD, UG_VALD, UG_SPDD, BL_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, UG_PREV, UG_NEXT, KC_TRNS, BL_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/cannonkeys/cerberus/solderable/matrix_diagram.md b/keyboards/cannonkeys/cerberus/solderable/matrix_diagram.md new file mode 100644 index 00000000000..5beb866f724 --- /dev/null +++ b/keyboards/cannonkeys/cerberus/solderable/matrix_diagram.md @@ -0,0 +1,24 @@ +# Matrix Diagram for Cerberus + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │ │0F │0G │0H │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ ┌─────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1E │ │1F │1G │1H │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ┌──┴┐2E │ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2E │ │2C │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ └───┴────┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3E │ │3G │ ISO Enter +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ ┌───┼───┼───┐ +│40 │41 │42 │45 │4A │4B │4C │4E │ │4F │4G │4H │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ +┌────────┐ ┌──────────┐ +│30 │ 2.25u LShift 2.75u RShift │3C │ +└────────┘ └──────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│40 │41 │42 │45 │4B │4C │4E │ Tsangan/WKL +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +``` diff --git a/keyboards/cannonkeys/cerberus/solderable/mcuconf.h b/keyboards/cannonkeys/cerberus/solderable/mcuconf.h new file mode 100644 index 00000000000..931e93d66f0 --- /dev/null +++ b/keyboards/cannonkeys/cerberus/solderable/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/cannonkeys/cerberus/solderable/rules.mk b/keyboards/cannonkeys/cerberus/solderable/rules.mk new file mode 100644 index 00000000000..0ab54aaaf71 --- /dev/null +++ b/keyboards/cannonkeys/cerberus/solderable/rules.mk @@ -0,0 +1,2 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF From 09fdabf37c5004b1a580d32f61dd093625e62f8a Mon Sep 17 00:00:00 2001 From: suikagiken <115451678+suikagiken@users.noreply.github.com> Date: Fri, 6 Dec 2024 03:58:28 +0900 Subject: [PATCH 101/365] Fix keymap.json error of keyboard/suikagiken/suika27melo (#24677) --- keyboards/suikagiken/suika27melo/keymaps/default/keymap.json | 4 ++-- keyboards/suikagiken/suika27melo/keymaps/midi/keymap.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/suikagiken/suika27melo/keymaps/default/keymap.json b/keyboards/suikagiken/suika27melo/keymaps/default/keymap.json index dadd846e48e..48807b2b86d 100644 --- a/keyboards/suikagiken/suika27melo/keymaps/default/keymap.json +++ b/keyboards/suikagiken/suika27melo/keymaps/default/keymap.json @@ -1,6 +1,6 @@ { - "author": "@suikagiken", - "keyboard": "suikagiken/suika85ergo", + "author": "suikagiken", + "keyboard": "suikagiken/suika27melo", "keymap": "default", "layout": "LAYOUT", "layers": [ diff --git a/keyboards/suikagiken/suika27melo/keymaps/midi/keymap.json b/keyboards/suikagiken/suika27melo/keymaps/midi/keymap.json index 189665ddbfa..5caad459794 100644 --- a/keyboards/suikagiken/suika27melo/keymaps/midi/keymap.json +++ b/keyboards/suikagiken/suika27melo/keymaps/midi/keymap.json @@ -1,6 +1,6 @@ { - "author": "@suikagiken", - "keyboard": "suikagiken/suika85ergo", + "author": "suikagiken", + "keyboard": "suikagiken/suika27melo", "keymap": "midi", "layout": "LAYOUT", "layers": [ From 03937e0c86109b7a488794bb8568d53d48d4ed16 Mon Sep 17 00:00:00 2001 From: Patrickemm Date: Fri, 6 Dec 2024 00:43:35 -0500 Subject: [PATCH 102/365] Add Macroflow Original macropad firmware (#24538) * Adding Macroflow Macropad * Macroflow_Macropad * Macroflow_Macropad * Adding My Macropad * Adding Macroflow Macropad * Adding Macroflow Macropad * Adding Macroflow Macropad * Adding Macroflow Macropad * Adding Macroflow Macropad * Added License Headers * Updated code for merge * Added License Header * Added Encoder Map * Updated Files * Fixed Matrix * Update keyboards/macroflow_original/keyboard.json Co-authored-by: Drashna Jaelre * Update keyboards/macroflow_original/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/macroflow_original/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/macroflow_original/keymaps/default/rules.mk Co-authored-by: Drashna Jaelre * Update keyboards/macroflow_original/macroflow_original.c Co-authored-by: Drashna Jaelre --------- Co-authored-by: Drashna Jaelre --- keyboards/macroflow_original/keyboard.json | 52 +++++ .../keymaps/default/keymap.c | 101 +++++++++ .../keymaps/default/rules.mk | 1 + .../macroflow_original/macroflow_original.c | 200 ++++++++++++++++++ keyboards/macroflow_original/readme.md | 27 +++ 5 files changed, 381 insertions(+) create mode 100644 keyboards/macroflow_original/keyboard.json create mode 100644 keyboards/macroflow_original/keymaps/default/keymap.c create mode 100644 keyboards/macroflow_original/keymaps/default/rules.mk create mode 100644 keyboards/macroflow_original/macroflow_original.c create mode 100644 keyboards/macroflow_original/readme.md diff --git a/keyboards/macroflow_original/keyboard.json b/keyboards/macroflow_original/keyboard.json new file mode 100644 index 00000000000..58cabba08ef --- /dev/null +++ b/keyboards/macroflow_original/keyboard.json @@ -0,0 +1,52 @@ +{ + "manufacturer": "Customacros", + "keyboard_name": "Macroflow Original", + "maintainer": "Patrickemm", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "encoder": true, + "oled": true + }, + "matrix_pins": { + "cols": ["B1", "B3", "B2", "F7"], + "rows": ["E6", "B4", "B5"] + }, + "development_board": "promicro", + "url": "https://github.com/Patrickemm", + "usb": { + "device_version": "1.0.0", + "pid": "0x0002", + "vid": "0x504D" + }, + "dynamic_keymap": { + "layer_count": 8 + }, + "layouts": { + "LAYOUT": { + "layout": [ + + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2} + ] + } + }, + "encoder": { + "rotary": [ + {"pin_b": "F5", "pin_a": "F4"} + ] + } +} diff --git a/keyboards/macroflow_original/keymaps/default/keymap.c b/keyboards/macroflow_original/keymaps/default/keymap.c new file mode 100644 index 00000000000..76ef39bf5a7 --- /dev/null +++ b/keyboards/macroflow_original/keymaps/default/keymap.c @@ -0,0 +1,101 @@ +// Copyright 2024 Patrick Mathern (@Patrickemm) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +// Define the keycode, `QK_USER` avoids collisions with existing keycodes +enum keycodes { + KC_CYCLE_LAYERS = QK_USER, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_0, KC_CYCLE_LAYERS, + KC_1, KC_2, KC_3, KC_4, + KC_5, KC_6, KC_7, KC_8 + ), + [1] = LAYOUT( + KC_9, KC_CYCLE_LAYERS, + KC_A, KC_B, KC_C, KC_D, + KC_E, KC_F, KC_G, KC_H + ), + [2] = LAYOUT( + KC_I, KC_CYCLE_LAYERS, + KC_J, KC_K, KC_L, KC_M, + KC_N, KC_O, KC_P, KC_Q + ), + [3] = LAYOUT( + KC_R, KC_CYCLE_LAYERS, + KC_S, KC_T, KC_U, KC_V, + KC_W, KC_X, KC_Y, KC_Z + ), + [4] = LAYOUT( + KC_TRNS, KC_CYCLE_LAYERS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [5] = LAYOUT( + KC_TRNS, KC_CYCLE_LAYERS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [6] = LAYOUT( + KC_TRNS, KC_CYCLE_LAYERS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [7] = LAYOUT( + KC_TRNS, KC_CYCLE_LAYERS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + +// 1st layer on the cycle +#define LAYER_CYCLE_START 0 +// Last layer on the cycle +#define LAYER_CYCLE_END 7 + +// Add the behaviour of this new keycode +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_CYCLE_LAYERS: + // Our logic will happen on presses, nothing is done on releases + if (!record->event.pressed) { + // We've already handled the keycode (doing nothing), let QMK know so no further code is run unnecessarily + return false; + } + + uint8_t current_layer = get_highest_layer(layer_state); + + // Check if we are within the range, if not quit + if (current_layer > LAYER_CYCLE_END || current_layer < LAYER_CYCLE_START) { + return false; + } + + uint8_t next_layer = current_layer + 1; + if (next_layer > LAYER_CYCLE_END) { + next_layer = LAYER_CYCLE_START; + } + layer_move(next_layer); + return false; + + // Process other keycodes normally + default: + return true; + } +} + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN) }, + [1] = { ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, + [4] = { ENCODER_CCW_CW(_______, _______) }, + [5] = { ENCODER_CCW_CW(_______, _______) }, + [6] = { ENCODER_CCW_CW(_______, _______) }, + [7] = { ENCODER_CCW_CW(_______, _______) } +}; +#endif diff --git a/keyboards/macroflow_original/keymaps/default/rules.mk b/keyboards/macroflow_original/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/macroflow_original/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/macroflow_original/macroflow_original.c b/keyboards/macroflow_original/macroflow_original.c new file mode 100644 index 00000000000..fd91fd510e5 --- /dev/null +++ b/keyboards/macroflow_original/macroflow_original.c @@ -0,0 +1,200 @@ +// Copyright 2024 Patrick Mathern (@Patrickemm) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +static uint16_t oled_logo_timer = 0; +static bool has_startup_ran = false; + +#ifndef SHOW_LOGO +# define SHOW_LOGO 2500 +#endif + +enum layer_names { + one, + two, + three, + four, + five, + six, + seven, + eight +}; + +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + return OLED_ROTATION_180; +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + if (!has_startup_ran) { + static const char startUp [] PROGMEM = { + // 'startUp', 128x32px + 0, 0, 0,128,192,192,128,128, 0, 0,192,192, 0, 0, 0,192,192, 0, 0,128,128,192,192,128, 0, 0,192,192,192,192,192,192,192, 0, 0,128,128,192,192,128, 0, 0, 0,192,192,128, 0, 0, 0, 0,192,192,128, 0, 0, 0,128,192,192, 0, 0, 0, 0, 0,128,128,192,192,128, 0, 0,128,192,192,192,192,128,128, 0, 0, 0,128,192,192,192,128, 0, 0, 0,128,128,192,192,128, 0, 0, 0, 0, 0, 0, 0,128,192,192,128, 0, 0, 0, 0,128,192,192,128,128, 0, 0,192,192,192, 0, 0, 0, 0,128,192,192, 0,0, + 0, 0,255,255, 1, 1, 1, 31, 30, 0,255,255, 0, 0, 0,255,255, 0, 30,127,241,193,129, 7, 15, 0, 1, 1, 1,255,255, 1, 1, 0,254,255, 1, 1, 1,255,255, 0, 0,255, 63,255,224, 0,128,254, 63,255,255, 0, 0,224,255, 15,127,255,192, 0, 0,254,255, 1, 1, 1, 31, 31, 0,255,255,129,129,129,255,127, 0, 0,255,255, 1, 1, 1,255,255, 0, 30,127,241,193,129, 7, 15, 0, 0, 0, 0,252,255, 3, 1, 1, 3, 31, 30, 0,255,255, 1, 1, 1,255,254, 0,255,255,127,252, 0, 0,240,255,255,255, 0, 0, 0, 0,255,255,128,128,192,252, 60, 0,127,255,128,128,128,255,127, 0,120,248,128,129,131,255,254, 0, 0, 0, 0,255,255, 0, 0, 0,127,255,128,128,128,255,255, 0, 0,255, 0, 3,255,248,255, 15, 0,255,255, 0,248,255, 27, 24, 24, 63,255,224, 0,127,255,128,128,128,252,124, 0,255,255, 3, 1, 3,127,254,240, 0,127,255,128,128,128,255,127, 0,120,248,128,129,131,255,254, 0,128,128, 0, 63,255,192,128,128,224,252, 60, 0,255,255,128,128,128,255,127, 0,255,255, 0, 31,255,252,127, 1,255,255, 0, 0,0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0 + }; + oled_write_raw_P(startUp, sizeof(startUp)); + if (timer_elapsed(oled_logo_timer) >= SHOW_LOGO) { + has_startup_ran = true; + oled_clear(); + } + } else { + static const char PROGMEM layerImage[4][67+1] = { + { 224,224,224,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,224,224,224,224, 0, 0, 0, 0, 0,224,224,224,128, 0, 0, 0, 0,128,224,224,224, 0, 0, 0,224,224,224,224,224,224,224,224,224,224,224, 0, 0,224,224,224,224,224,224,224,224,224,192,128, 0 }, + { 255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,255,255,127, 15,127,255,255,240, 0, 0, 0, 0, 3, 15,127,252,240,240,252,127, 15, 3, 0, 0, 0, 0,255,255,255,255,192,192,192,192,192, 0, 0, 0, 0,255,255,255,255,192,192,192,225,255,255,255,127 }, + { 255,255,255,255,192,192,192,192,192,192,192, 0, 0,192,254,255,255,127, 28, 28, 28,127,255,255,254,192, 0, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,129,129,129,129,129,128,128, 0, 0,255,255,255,255, 1, 1, 7,127,255,255,248,192 }, + { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 3, 3, 3, 3 }, + }; + + static const char PROGMEM layer1[4][30+1] = { + { 128,224,240,240,248,248,248,248,248,248,248,120,120, 56, 56, 24, 24, 24,248,248,248,248,248,248,248,248,240,240,224,128 }, + { 255,255,255,255,255,255,255,255,255,255,255,252,252,252, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255 }, + { 255,255,255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255 }, + { 1, 7, 15, 15, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 28, 28, 28, 28, 31, 31, 31, 31, 31, 31, 31, 31, 15, 15, 7, 1 } + }; + + static const char PROGMEM layer2[4][30+1] = { + { 128,224,240,240,248,248,248,248,248,248,120, 56, 24, 24, 24, 24, 24, 24, 56,120,248,248,248,248,248,248,240,240,224,128 }, + { 255,255,255,255,255,255,255,255,255,255,248,248,248,254,255, 63, 6, 0,128,224,255,255,255,255,255,255,255,255,255,255 }, + { 255,255,255,255,255,255,255,255,255,255, 63, 15, 7, 1, 64,112,120,126,127,127,255,255,255,255,255,255,255,255,255,255 }, + { 1, 7, 15, 15, 31, 31, 31, 31, 31, 31, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 31, 31, 31, 31, 31, 31, 15, 15, 7, 1 } + }; + + static const char PROGMEM layer3[4][30+1] = { + { 128,224,240,240,248,248,248,248,248,248,120, 56, 24, 24, 24, 24, 24, 24, 56,120,248,248,248,248,248,248,240,240,224,128 }, + { 255,255,255,255,255,255,255,255,255,255,248,248,248, 62, 63, 63, 30, 0,128,192,255,255,255,255,255,255,255,255,255,255 }, + { 255,255,255,255,255,255,255,255,255,255, 31, 31, 31,126,254,254,124, 0, 0, 1,255,255,255,255,255,255,255,255,255,255 }, + { 1, 7, 15, 15, 31, 31, 31, 31, 31, 31, 30, 28, 24, 24, 24, 24, 24, 24, 28, 30, 31, 31, 31, 31, 31, 31, 15, 15, 7, 1 } + }; + + static const char PROGMEM layer4[4][30+1] = { + { 128,224,240,240,248,248,248,248,248,248,248,248,248,248,120, 24, 24, 24, 24,248,248,248,248,248,248,248,240,240,224,128 }, + { 255,255,255,255,255,255,255,255,255,255,255, 63, 7, 1,192,240, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255 }, + { 255,255,255,255,255,255,255,255,255,255,192,192,192,194,195,195, 0, 0, 0,195,195,255,255,255,255,255,255,255,255,255 }, + { 1, 7, 15, 15, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 28, 28, 28, 31, 31, 31, 31, 31, 31, 31, 15, 15, 7, 1 } + }; + + static const char PROGMEM layer5[4][30+1] = { + { 128,224,240,240,248,248,248,248,248,248, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,248,248,248,248,248,248,240,240,224,128 }, + { 255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0,143,143,143, 15, 15, 31,255,255,255,255,255,255,255,255,255,255 }, + { 255,255,255,255,255,255,255,255,255,255,142, 14, 14, 30,127,127,127, 0, 0, 0,224,255,255,255,255,255,255,255,255,255 }, + { 1, 7, 15, 15, 31, 31, 31, 31, 31, 31, 31, 30, 28, 28, 28, 28, 28, 28, 30, 31, 31, 31, 31, 31, 31, 31, 15, 15, 7, 1 } + }; + + static const char PROGMEM layer6[4][30+1] = { + { 128,224,240,240,248,248,248,248,248,248,248, 56, 24, 24, 24, 24, 24, 24, 24, 56,248,248,248,248,248,248,240,240,224,128 }, + { 255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0, 31, 31, 31, 24, 24, 56,255,255,255,255,255,255,255,255,255,255 }, + { 255,255,255,255,255,255,255,255,255,255,128, 0, 0, 0,127,127,127, 0, 0, 0,128,255,255,255,255,255,255,255,255,255 }, + { 1, 7, 15, 15, 31, 31, 31, 31, 31, 31, 31, 30, 28, 28, 28, 28, 28, 28, 28, 30, 31, 31, 31, 31, 31, 31, 15, 15, 7, 1 } + }; + + static const char PROGMEM layer7[4][30+1] = { + { 128,224,240,240,248,248,248,248,248,248, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,248,248,248,248,248,248,240,240,224,128 }, + { 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 31, 3, 0,128,248,255,255,255,255,255,255,255,255,255,255 }, + { 255,255,255,255,255,255,255,255,255,255,255,255,127, 15, 1, 0,192,252,255,255,255,255,255,255,255,255,255,255,255,255 }, + { 1, 7, 15, 15, 31, 31, 31, 31, 31, 31, 31, 31, 28, 28, 28, 28, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 15, 15, 7, 1 } + }; + + static const char PROGMEM layer8[4][30+1] = { + { 128,224,240,240,248,248,248,248,248,248,248, 56, 24, 24, 24, 24, 24, 24, 24, 56,248,248,248,248,248,248,240,240,224,128 }, + { 255,255,255,255,255,255,255,255,255,255,224,128, 0, 0, 31, 31, 31, 0, 0,128,224,255,255,255,255,255,255,255,255,255 }, + { 255,255,255,255,255,255,255,255,255,255,129, 0, 0, 0,126,126,126, 0, 0, 0,129,255,255,255,255,255,255,255,255,255 }, + { 1, 7, 15, 15, 31, 31, 31, 31, 31, 31, 31, 30, 28, 28, 28, 28, 28, 28, 28, 30, 31, 31, 31, 31, 31, 31, 15, 15, 7, 1 } + }; + + oled_set_cursor(1, 0); // start pos + oled_write_raw_P(layerImage[0], sizeof(layerImage[0])); + oled_set_cursor(1, 1); // move to next line + oled_write_raw_P(layerImage[1], sizeof(layerImage[1])); + oled_set_cursor(1, 2); // move to next line + oled_write_raw_P(layerImage[2], sizeof(layerImage[2])); + oled_set_cursor(1, 3); // move to next line + oled_write_raw_P(layerImage[3], sizeof(layerImage[3])); + + switch (get_highest_layer(layer_state)) { + case one : + oled_set_cursor(16, 0); // move 20 columns out + oled_write_raw_P(layer1[0], sizeof(layer1[0])); + oled_set_cursor(16, 1); // move 20 columns out + oled_write_raw_P(layer1[1], sizeof(layer1[1])); + oled_set_cursor(16, 2); // move 20 columns out + oled_write_raw_P(layer1[2], sizeof(layer1[2])); + oled_set_cursor(16, 3); // move 20 columns out + oled_write_raw_P(layer1[3], sizeof(layer1[3])); + break; + case two : + oled_set_cursor(16, 0); // move 20 columns out + oled_write_raw_P(layer2[0], sizeof(layer2[0])); + oled_set_cursor(16, 1); // move 20 columns out + oled_write_raw_P(layer2[1], sizeof(layer2[1])); + oled_set_cursor(16, 2); // move 20 columns out + oled_write_raw_P(layer2[2], sizeof(layer2[2])); + oled_set_cursor(16, 3); // move 20 columns out + oled_write_raw_P(layer2[3], sizeof(layer2[3])); + break; + case three : + oled_set_cursor(16, 0); // move 20 columns out + oled_write_raw_P(layer3[0], sizeof(layer3[0])); + oled_set_cursor(16, 1); // move 20 columns out + oled_write_raw_P(layer3[1], sizeof(layer3[1])); + oled_set_cursor(16, 2); // move 20 columns out + oled_write_raw_P(layer3[2], sizeof(layer3[2])); + oled_set_cursor(16, 3); // move 20 columns out + oled_write_raw_P(layer3[3], sizeof(layer3[3])); + break; + case four : + oled_set_cursor(16, 0); // move 20 columns out + oled_write_raw_P(layer4[0], sizeof(layer4[0])); + oled_set_cursor(16, 1); // move 20 columns out + oled_write_raw_P(layer4[1], sizeof(layer4[1])); + oled_set_cursor(16, 2); // move 20 columns out + oled_write_raw_P(layer4[2], sizeof(layer4[2])); + oled_set_cursor(16, 3); // move 20 columns out + oled_write_raw_P(layer4[3], sizeof(layer4[3])); + break; + case five : + oled_set_cursor(16, 0); // move 20 columns out + oled_write_raw_P(layer5[0], sizeof(layer5[0])); + oled_set_cursor(16, 1); // move 20 columns out + oled_write_raw_P(layer5[1], sizeof(layer5[1])); + oled_set_cursor(16, 2); // move 20 columns out + oled_write_raw_P(layer5[2], sizeof(layer5[2])); + oled_set_cursor(16, 3); // move 20 columns out + oled_write_raw_P(layer5[3], sizeof(layer5[3])); + break; + case six : + oled_set_cursor(16, 0); // move 20 columns out + oled_write_raw_P(layer6[0], sizeof(layer6[0])); + oled_set_cursor(16, 1); // move 20 columns out + oled_write_raw_P(layer6[1], sizeof(layer6[1])); + oled_set_cursor(16, 2); // move 20 columns out + oled_write_raw_P(layer6[2], sizeof(layer6[2])); + oled_set_cursor(16, 3); // move 20 columns out + oled_write_raw_P(layer6[3], sizeof(layer6[3])); + break; + case seven : + oled_set_cursor(16, 0); // move 20 columns out + oled_write_raw_P(layer7[0], sizeof(layer7[0])); + oled_set_cursor(16, 1); // move 20 columns out + oled_write_raw_P(layer7[1], sizeof(layer7[1])); + oled_set_cursor(16, 2); // move 20 columns out + oled_write_raw_P(layer7[2], sizeof(layer7[2])); + oled_set_cursor(16, 3); // move 20 columns out + oled_write_raw_P(layer7[3], sizeof(layer7[3])); + break; + case eight : + oled_set_cursor(16, 0); // move 20 columns out + oled_write_raw_P(layer8[0], sizeof(layer8[0])); + oled_set_cursor(16, 1); // move 20 columns out + oled_write_raw_P(layer8[1], sizeof(layer8[1])); + oled_set_cursor(16, 2); // move 20 columns out + oled_write_raw_P(layer8[2], sizeof(layer8[2])); + oled_set_cursor(16, 3); // move 20 columns out + oled_write_raw_P(layer8[3], sizeof(layer8[3])); + break; + } + } + return false; +} diff --git a/keyboards/macroflow_original/readme.md b/keyboards/macroflow_original/readme.md new file mode 100644 index 00000000000..a38fefa8663 --- /dev/null +++ b/keyboards/macroflow_original/readme.md @@ -0,0 +1,27 @@ +# macroflow_original + +![Imgur](https://i.imgur.com/hIytJTl.png) + +*A 2x4 macropad with a built in encoder and OLED screen* + +* Keyboard Maintainer: [Patrickemm](https://github.com/Patrickemm) +* Hardware Supported: *Pro Micro compatible development board* +* Hardware Availability: *https://www.ebay.com/usr/handycache* + +Make example for this keyboard (after setting up your build environment): + + make macroflow_original:default + +Flashing example for this keyboard: + + make macroflow_original:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From a12ff287eed88d928430b63f4f7faff3b6fb5ebc Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 7 Dec 2024 09:05:40 +1100 Subject: [PATCH 103/365] Organise default community layouts summary (#24500) * Organise default community layouts summary * Remove erroneous layout --- layouts/default/readme.md | 565 ++++++++++++++++++++++++++++++-------- 1 file changed, 450 insertions(+), 115 deletions(-) diff --git a/layouts/default/readme.md b/layouts/default/readme.md index e5350088224..3c6da941fbb 100644 --- a/layouts/default/readme.md +++ b/layouts/default/readme.md @@ -2,10 +2,14 @@ ## Summary of Layouts -### 60% Form Factor +
+60% Form Factor + +### `LAYOUT_60_abnt2` + +60% ABNT2 layout ``` -LAYOUT_60_abnt2 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -19,8 +23,11 @@ LAYOUT_60_abnt2 └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ ``` +### `LAYOUT_60_ansi` + +60% ANSI layout + ``` -LAYOUT_60_ansi ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -34,8 +41,11 @@ LAYOUT_60_ansi └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ ``` +### `LAYOUT_60_ansi_arrow` + +60% ANSI layout with arrow cluster + ``` -LAYOUT_60_ansi_arrow ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -49,8 +59,11 @@ LAYOUT_60_ansi_arrow └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_60_ansi_arrow_split_bs` + +60% ANSI layout with arrow cluster and split backspace + ``` -LAYOUT_60_ansi_arrow_split_bs ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -64,8 +77,11 @@ LAYOUT_60_ansi_arrow_split_bs └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_60_ansi_split_bs_rshift` + +60% ANSI layout with split backspace and split right shift + ``` -LAYOUT_60_ansi_split_bs_rshift ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -79,8 +95,11 @@ LAYOUT_60_ansi_split_bs_rshift └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ ``` +### `LAYOUT_60_ansi_tsangan` + +60% ANSI layout with Tsangan bottom row + ``` -LAYOUT_60_ansi_tsangan ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -94,8 +113,11 @@ LAYOUT_60_ansi_tsangan └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ ``` +### `LAYOUT_60_ansi_tsangan_split_bs_rshift` + +60% ANSI layout with Tsangan bottom row, split backspace, and split right shift + ``` -LAYOUT_60_ansi_tsangan_split_bs_rshift ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -109,8 +131,11 @@ LAYOUT_60_ansi_tsangan_split_bs_rshift └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ ``` +### `LAYOUT_60_ansi_wkl` + +60% ANSI layout with no Windows (GUI) keys + ``` -LAYOUT_60_ansi_wkl ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -124,8 +149,11 @@ LAYOUT_60_ansi_wkl └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ ``` +### `LAYOUT_60_ansi_wkl_split_bs_rshift` + +60% ANSI layout with no Windows (GUI) keys, split backspace, and split right shift + ``` -LAYOUT_60_ansi_wkl_split_bs_rshift ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -139,8 +167,11 @@ LAYOUT_60_ansi_wkl_split_bs_rshift └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ ``` +### `LAYOUT_60_hhkb` + +60% ANSI layout with HHKB bottom row, split backspace, and split right shift + ``` -LAYOUT_60_hhkb ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -154,8 +185,11 @@ LAYOUT_60_hhkb └───┴─────┴───────────────────────────┴─────┴───┘ ``` +### `LAYOUT_60_iso` + +60% ISO layout + ``` -LAYOUT_60_iso ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -169,8 +203,11 @@ LAYOUT_60_iso └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ ``` +### `LAYOUT_60_iso_arrow` + +60% ISO layout with arrow cluster + ``` -LAYOUT_60_iso_arrow ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -184,8 +221,11 @@ LAYOUT_60_iso_arrow └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_60_iso_arrow_split_bs` + +60% ISO layout with arrow cluster and split backspace + ``` -LAYOUT_60_iso_arrow_split_bs ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -199,8 +239,11 @@ LAYOUT_60_iso_arrow_split_bs └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_60_iso_split_bs_rshift` + +60% ISO layout with split backspace and split right shift + ``` -LAYOUT_60_iso_split_bs_rshift ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -214,8 +257,11 @@ LAYOUT_60_iso_split_bs_rshift └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ ``` +### `LAYOUT_60_iso_tsangan` + +60% ISO layout with Tsangan bottom row + ``` -LAYOUT_60_iso_tsangan ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -229,8 +275,11 @@ LAYOUT_60_iso_tsangan └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ ``` +### `LAYOUT_60_iso_tsangan_split_bs_rshift` + +60% ISO layout with Tsangan bottom row, split backspace, and split right shift + ``` -LAYOUT_60_iso_tsangan_split_bs_rshift ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -244,8 +293,11 @@ LAYOUT_60_iso_tsangan_split_bs_rshift └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ ``` +### `LAYOUT_60_iso_wkl` + +60% ISO layout with no Windows (GUI) keys + ``` -LAYOUT_60_iso_wkl ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -259,8 +311,11 @@ LAYOUT_60_iso_wkl └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ ``` +### `LAYOUT_60_iso_wkl_split_bs_rshift` + +60% ISO layout with no Windows (GUI) keys, split backspace, and split right shift + ``` -LAYOUT_60_iso_wkl_split_bs_rshift ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -274,8 +329,11 @@ LAYOUT_60_iso_wkl_split_bs_rshift └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ ``` +### `LAYOUT_60_jis` + +60% JIS layout + ``` -LAYOUT_60_jis ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -289,8 +347,11 @@ LAYOUT_60_jis └────┴────┴────┴────┴──────────────┴────┴────┴────┴────┴────┘ ``` +### `LAYOUT_64_ansi` + +64% ANSI layout + ``` -LAYOUT_64_ansi ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -304,8 +365,11 @@ LAYOUT_64_ansi └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_64_iso` + +64% ISO layout + ``` -LAYOUT_64_iso ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -318,11 +382,16 @@ LAYOUT_64_iso │ │ │ │ │ │ │ │ │ │ └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ ``` +
-### 65%+ Form Factor +
+65%+ Form Factor + +### `LAYOUT_65_ansi` + +65% ANSI layout ``` -LAYOUT_65_ansi ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ @@ -336,8 +405,11 @@ LAYOUT_65_ansi └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_65_ansi_blocker` + +65% ANSI layout with blocker + ``` -LAYOUT_65_ansi_blocker ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ @@ -351,8 +423,11 @@ LAYOUT_65_ansi_blocker └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_65_ansi_blocker_split_bs` + +65% ANSI layout with blocker and split backspace + ``` -LAYOUT_65_ansi_blocker_split_bs ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ @@ -366,8 +441,11 @@ LAYOUT_65_ansi_blocker_split_bs └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_65_ansi_blocker_tsangan` + +65% ANSI layout with blocker and Tsangan bottom row + ``` -LAYOUT_65_ansi_blocker_tsangan ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ @@ -381,8 +459,11 @@ LAYOUT_65_ansi_blocker_tsangan └─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ ``` +### `LAYOUT_65_ansi_blocker_tsangan_split_bs` + +65% ANSI layout with blocker, Tsangan bottom row, and split backspace + ``` -LAYOUT_65_ansi_blocker_tsangan_split_bs ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ @@ -396,8 +477,11 @@ LAYOUT_65_ansi_blocker_tsangan_split_bs └─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ ``` +### `LAYOUT_65_ansi_split_bs` + +65% ANSI layout with split backspace + ``` -LAYOUT_65_ansi_split_bs ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ @@ -411,8 +495,11 @@ LAYOUT_65_ansi_split_bs └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_65_iso` + +65% ISO layout + ``` -LAYOUT_65_iso ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ @@ -426,8 +513,11 @@ LAYOUT_65_iso └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_65_iso_blocker` + +65% ISO layout with blocker + ``` -LAYOUT_65_iso_blocker ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ @@ -441,8 +531,11 @@ LAYOUT_65_iso_blocker └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_65_iso_blocker_split_bs` + +65% ISO layout with blocker and split backspace + ``` -LAYOUT_65_iso_blocker_split_bs ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ @@ -456,8 +549,11 @@ LAYOUT_65_iso_blocker_split_bs └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_65_iso_blocker_tsangan` + +65% ISO layout with blocker and Tsangan bottom row + ``` -LAYOUT_65_iso_blocker_tsangan ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ @@ -471,8 +567,11 @@ LAYOUT_65_iso_blocker_tsangan └─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ ``` +### `LAYOUT_65_iso_blocker_tsangan_split_bs` + +65% ISO layout with blocker, Tsangan bottom row, and split backspace + ``` -LAYOUT_65_iso_blocker_tsangan_split_bs ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ @@ -486,8 +585,11 @@ LAYOUT_65_iso_blocker_tsangan_split_bs └─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ ``` +### `LAYOUT_65_iso_split_bs` + +65% ISO layout with split backspace + ``` -LAYOUT_65_iso_split_bs ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ @@ -501,8 +603,11 @@ LAYOUT_65_iso_split_bs └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_66_ansi` + +66% ANSI layout + ``` -LAYOUT_66_ansi ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┤ @@ -516,8 +621,11 @@ LAYOUT_66_ansi └────┴───┴────┴────────────────────────┴────┴────┴────┴───┴───┴───┘ ``` +### `LAYOUT_66_iso` + +66% ISO layout + ``` -LAYOUT_66_iso ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┤ @@ -531,8 +639,11 @@ LAYOUT_66_iso └────┴───┴────┴────────────────────────┴────┴────┴────┴───┴───┴───┘ ``` +### `LAYOUT_68_ansi` + +68% ANSI layout + ``` -LAYOUT_68_ansi ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┤ @@ -546,8 +657,11 @@ LAYOUT_68_ansi └────┴────┴────┴────────────────────────┴────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_68_iso` + +68% ISO layout + ``` -LAYOUT_68_iso ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┤ @@ -560,11 +674,16 @@ LAYOUT_68_iso │ │ │ │ │ │ │ │ │ │ │ │ └────┴────┴────┴────────────────────────┴────┴────┴────┘ └───┴───┴───┘ ``` +
-### 75% Form Factor +
+75% Form Factor + +### `LAYOUT_75_ansi` + +75% ANSI layout ``` -LAYOUT_75_ansi ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┤ @@ -580,8 +699,11 @@ LAYOUT_75_ansi └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_75_iso` + +75% ISO layout + ``` -LAYOUT_75_iso ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┤ @@ -596,11 +718,16 @@ LAYOUT_75_iso │ │ │ │ │ │ │ │ │ │ │ └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ ``` +
-### Tenkeyless Layouts +
+Tenkeyless (TKL) Form Factor + +### `LAYOUT_tkl_ansi` + +TKL ANSI layout ``` -LAYOUT_tkl_ansi ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -617,8 +744,11 @@ LAYOUT_tkl_ansi └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_ansi_split_bs_rshift` + +TKL ANSI layout with split backspace and split right shift + ``` -LAYOUT_tkl_ansi_split_bs_rshift ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -635,8 +765,11 @@ LAYOUT_tkl_ansi_split_bs_rshift └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_ansi_tsangan` + +TKL ANSI layout with Tsangan bottom row + ``` -LAYOUT_tkl_ansi_tsangan ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -653,8 +786,11 @@ LAYOUT_tkl_ansi_tsangan └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_ansi_tsangan_split_bs_rshift` + +TKL ANSI layout with Tsangan bottom row, split backspace, and split right shift + ``` -LAYOUT_tkl_ansi_tsangan_split_bs_rshift ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -671,8 +807,11 @@ LAYOUT_tkl_ansi_tsangan_split_bs_rshift └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_ansi_wkl` + +TKL ANSI layout with no Windows (GUI) keys + ``` -LAYOUT_tkl_ansi_wkl ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -689,8 +828,11 @@ LAYOUT_tkl_ansi_wkl └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_ansi_wkl_split_bs_rshift` + +TKL ANSI layout with no Windows (GUI) keys, split backspace, and split right shift + ``` -LAYOUT_tkl_ansi_wkl_split_bs_rshift ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -707,8 +849,11 @@ LAYOUT_tkl_ansi_wkl_split_bs_rshift └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_iso` + +TKL ISO layout + ``` -LAYOUT_tkl_iso ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -725,8 +870,11 @@ LAYOUT_tkl_iso └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_iso_split_bs_rshift` + +TKL ISO layout with split backspace and split right shift + ``` -LAYOUT_tkl_iso_split_bs_rshift ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -743,8 +891,11 @@ LAYOUT_tkl_iso_split_bs_rshift └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_iso_tsangan` + +TKL ISO layout with Tsangan bottom row + ``` -LAYOUT_tkl_iso_tsangan ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -761,8 +912,11 @@ LAYOUT_tkl_iso_tsangan └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_iso_tsangan_split_bs_rshift` + +TKL ISO layout with Tsangan bottom row, split backspace, and split right shift + ``` -LAYOUT_tkl_iso_tsangan_split_bs_rshift ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -779,8 +933,11 @@ LAYOUT_tkl_iso_tsangan_split_bs_rshift └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_iso_wkl` + +TKL ISO layout with no Windows (GUI) keys + ``` -LAYOUT_tkl_iso_wkl ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -797,8 +954,11 @@ LAYOUT_tkl_iso_wkl └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_iso_wkl_split_bs_rshift` + +TKL ISO layout with no Windows (GUI) keys, split backspace, and split right shift + ``` -LAYOUT_tkl_iso_wkl_split_bs_rshift ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -815,8 +975,11 @@ LAYOUT_tkl_iso_wkl_split_bs_rshift └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_jis` + +TKL JIS layout + ``` -LAYOUT_tkl_jis ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -833,8 +996,11 @@ LAYOUT_tkl_jis └────┴────┴────┴────┴──────────────┴────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_f13_ansi` + +TKL ANSI layout with F13 key + ``` -LAYOUT_tkl_f13_ansi ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -851,8 +1017,11 @@ LAYOUT_tkl_f13_ansi └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_f13_ansi_split_bs_rshift` + +TKL ANSI layout with F13 key, split backspace, and split right shift + ``` -LAYOUT_tkl_f13_ansi_split_bs_rshift ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -869,8 +1038,11 @@ LAYOUT_tkl_f13_ansi_split_bs_rshift └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_f13_ansi_tsangan` + +TKL ANSI layout with F13 key and Tsangan bottom row + ``` -LAYOUT_tkl_f13_ansi_tsangan ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -887,8 +1059,11 @@ LAYOUT_tkl_f13_ansi_tsangan └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift` + +TKL ANSI layout with F13 key, Tsangan bottom row, split backspace, and split right shift + ``` -LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -905,8 +1080,11 @@ LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_f13_ansi_wkl` + +TKL ANSI layout with F13 key and no Windows (GUI) keys + ``` -LAYOUT_tkl_f13_ansi_wkl ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -923,8 +1101,11 @@ LAYOUT_tkl_f13_ansi_wkl └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_f13_ansi_wkl_split_bs_rshift` + +TKL ANSI layout with F13 key, no Windows (GUI) keys, split backspace, and split right shift + ``` -LAYOUT_tkl_f13_ansi_wkl_split_bs_rshift ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -941,8 +1122,11 @@ LAYOUT_tkl_f13_ansi_wkl_split_bs_rshift └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_f13_iso` + +TKL ISO layout with F13 key + ``` -LAYOUT_tkl_f13_iso ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -959,8 +1143,11 @@ LAYOUT_tkl_f13_iso └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_f13_iso_split_bs_rshift` + +TKL ISO layout with F13 key, split backspace, and split right shift + ``` -LAYOUT_tkl_f13_iso_split_bs_rshift ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -977,8 +1164,11 @@ LAYOUT_tkl_f13_iso_split_bs_rshift └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_f13_iso_tsangan` + +TKL ISO layout with F13 key and Tsangan bottom row + ``` -LAYOUT_tkl_f13_iso_tsangan ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -995,8 +1185,11 @@ LAYOUT_tkl_f13_iso_tsangan └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift` + +TKL ISO layout with F13 key, Tsangan bottom row, split backspace, and split right shift + ``` -LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -1013,8 +1206,11 @@ LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_f13_iso_wkl` + +TKL ISO layout with F13 key and no Windows (GUI) keys + ``` -LAYOUT_tkl_f13_iso_wkl ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -1031,8 +1227,11 @@ LAYOUT_tkl_f13_iso_wkl └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_f13_iso_wkl_split_bs_rshift` + +TKL ISO layout with F13 key, no Windows (GUI) keys, split backspace, and split right shift + ``` -LAYOUT_tkl_f13_iso_wkl_split_bs_rshift ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -1049,8 +1248,11 @@ LAYOUT_tkl_f13_iso_wkl_split_bs_rshift └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_f13_jis` + +TKL JIS layout with F13 key + ``` -LAYOUT_tkl_f13_jis ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -1067,8 +1269,11 @@ LAYOUT_tkl_f13_jis └────┴────┴────┴────┴──────────────┴────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_nofrow_ansi` + +TKL ANSI layout with no function row + ``` -LAYOUT_tkl_nofrow_ansi ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ @@ -1082,8 +1287,11 @@ LAYOUT_tkl_nofrow_ansi └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_nofrow_iso` + +TKL ISO layout with no function row + ``` -LAYOUT_tkl_nofrow_iso ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ @@ -1096,11 +1304,16 @@ LAYOUT_tkl_nofrow_iso │ │ │ │ │ │ │ │ │ │ │ │ │ └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` +
-### 96% Form Factor +
+96% Form Factor + +### `LAYOUT_96_ansi` + +96% ANSI layout ``` -LAYOUT_96_ansi ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┼───┼───┼───┤ @@ -1116,8 +1329,11 @@ LAYOUT_96_ansi └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_96_iso` + +96% ISO layout + ``` -LAYOUT_96_iso ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┼───┼───┼───┤ @@ -1132,12 +1348,16 @@ LAYOUT_96_iso │ │ │ │ │ │ │ │ │ │ │ │ │ │ └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` +
+
+Fullsize (100%+) Form Factor -### Fullsize Form Factor +### `LAYOUT_fullsize_ansi` + +Fullsize ANSI layout ``` -LAYOUT_fullsize_ansi ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -1154,8 +1374,11 @@ LAYOUT_fullsize_ansi └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ ``` +### `LAYOUT_fullsize_iso` + +Fullsize ISO layout + ``` -LAYOUT_fullsize_iso ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -1172,8 +1395,11 @@ LAYOUT_fullsize_iso └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ ``` +### `LAYOUT_fullsize_jis` + +Fullsize JIS layout + ``` -LAYOUT_fullsize_jis ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -1190,8 +1416,11 @@ LAYOUT_fullsize_jis └────┴────┴────┴────┴────────────┴────┴────┴───┴───┴───┴────┘ └───┴───┴───┘ └───────┴───┴───┘ ``` +### `LAYOUT_fullsize_extended_ansi` + +Fullsize ANSI layout with additional keys above numpad + ``` -LAYOUT_fullsize_extended_ansi ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┴───┘ @@ -1208,8 +1437,11 @@ LAYOUT_fullsize_extended_ansi └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ ``` +### `LAYOUT_fullsize_extended_iso` + +Fullsize ISO layout with additional keys above numpad + ``` -LAYOUT_fullsize_extended_iso ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┴───┘ @@ -1226,8 +1458,11 @@ LAYOUT_fullsize_extended_iso └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ ``` +### `LAYOUT_fullsize_extended_jis` + +Fullsize JIS layout with additional keys above numpad + ``` -LAYOUT_fullsize_extended_jis ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┴───┘ @@ -1243,11 +1478,16 @@ LAYOUT_fullsize_extended_jis │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └────┴────┴────┴────┴────────────┴────┴────┴───┴───┴───┴────┘ └───┴───┴───┘ └───────┴───┴───┘ ``` +
-### Split Layouts +
+Split Layouts + +### `LAYOUT_alice` + +Alice-style split layout ``` -LAYOUT_alice ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ┌┴──┬┘ ┌┴───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┘ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┴┐ @@ -1261,8 +1501,11 @@ LAYOUT_alice └─────┘ └─────┴───────┴─────┘ └──────────┴─────┘ └─────┘ ``` +### `LAYOUT_alice_split_bs` + +Alice-style split layout with split backspace + ``` -LAYOUT_alice_split_bs ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ┌┴──┬┘ ┌┴───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┘ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┐ @@ -1276,8 +1519,11 @@ LAYOUT_alice_split_bs └─────┘ └─────┴───────┴─────┘ └──────────┴─────┘ └─────┘ ``` +### `LAYOUT_ergodox` + +Ergodox-style split layout + ``` -LAYOUT_ergodox ┌─────┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬─────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─────┼───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┼─────┤ @@ -1296,8 +1542,11 @@ LAYOUT_ergodox └───┴───┴───┘ └───┴───┴───┘ ``` +### `LAYOUT_split_3x5_2` + +3x5 split layout with two thumb keys + ``` -LAYOUT_split_3x5_2 ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ @@ -1310,8 +1559,11 @@ LAYOUT_split_3x5_2 └───┴───┘ └───┴───┘ ``` +### `LAYOUT_split_3x5_3` + +3x5 split layout with three thumb keys + ``` -LAYOUT_split_3x5_3 ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ @@ -1324,8 +1576,11 @@ LAYOUT_split_3x5_3 └───┴───┴───┘ └───┴───┴───┘ ``` +### `LAYOUT_split_3x6_3` + +3x6 split layout with three thumb keys + ``` -LAYOUT_split_3x6_3 ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ @@ -1337,11 +1592,16 @@ LAYOUT_split_3x6_3 │ │ │ │ │ │ │ │ └───┴───┴───┘ └───┴───┴───┘ ``` +
-### Numpads +
+Number Pads + +### `LAYOUT_numpad_4x4` + +4x4 number pad ``` -LAYOUT_numpad_4x4 ┌───┬───┬───┬───┐ │ │ │ │ │ ├───┼───┼───┤ │ @@ -1353,8 +1613,11 @@ LAYOUT_numpad_4x4 └───────┴───┴───┘ ``` +### `LAYOUT_numpad_5x4` + +5x4 number pad + ``` -LAYOUT_numpad_5x4 ┌───┬───┬───┬───┐ │ │ │ │ │ ├───┼───┼───┼───┤ @@ -1368,8 +1631,11 @@ LAYOUT_numpad_5x4 └───────┴───┴───┘ ``` +### `LAYOUT_numpad_5x6` + +5x6 number pad + ``` -LAYOUT_numpad_5x6 ┌───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┤ @@ -1383,8 +1649,11 @@ LAYOUT_numpad_5x6 └───┴───┴───────┴───┴───┘ ``` +### `LAYOUT_numpad_6x4` + +6x4 number pad + ``` -LAYOUT_numpad_6x4 ┌───┬───┬───┬───┐ │ │ │ │ │ ├───┼───┼───┼───┤ @@ -1400,8 +1669,11 @@ LAYOUT_numpad_6x4 └───────┴───┴───┘ ``` +### `LAYOUT_numpad_6x5` + +6x5 number pad + ``` -LAYOUT_numpad_6x5 ┌───┬───┬───┬───┬───┐ │ │ │ │ │ │ ├───┼───┼───┼───┼───┤ @@ -1416,18 +1688,26 @@ LAYOUT_numpad_6x5 │ │ │ │ │ └───┴───────┴───┴───┘ ``` +
-### Ortholinear Layouts +
+Ortholinear Layouts + +### `LAYOUT_ortho_1x1` + +1x1 ortholinear layout ``` -LAYOUT_ortho_1x1 ┌───┐ │ │ └───┘ ``` +### `LAYOUT_ortho_2x3` + +2x3 ortholinear layout + ``` -LAYOUT_ortho_2x3 ┌───┬───┬───┐ │ │ │ │ ├───┼───┼───┤ @@ -1435,8 +1715,11 @@ LAYOUT_ortho_2x3 └───┴───┴───┘ ``` +### `LAYOUT_ortho_2x6` + +2x6 ortholinear layout + ``` -LAYOUT_ortho_2x6 ┌───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┤ @@ -1444,8 +1727,11 @@ LAYOUT_ortho_2x6 └───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_ortho_3x3` + +3x3 ortholinear layout + ``` -LAYOUT_ortho_3x3 ┌───┬───┬───┐ │ │ │ │ ├───┼───┼───┤ @@ -1455,8 +1741,11 @@ LAYOUT_ortho_3x3 └───┴───┴───┘ ``` +### `LAYOUT_ortho_3x10` + +3x10 ortholinear layout + ``` -LAYOUT_ortho_3x10 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -1466,8 +1755,11 @@ LAYOUT_ortho_3x10 └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_ortho_4x10` + +4x10 ortholinear layout + ``` -LAYOUT_ortho_4x10 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -1479,8 +1771,11 @@ LAYOUT_ortho_4x10 └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_ortho_4x12` + +4x12 ortholinear layout + ``` -LAYOUT_ortho_4x12 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -1492,8 +1787,11 @@ LAYOUT_ortho_4x12 └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_ortho_4x16` + +4x16 ortholinear layout + ``` -LAYOUT_ortho_4x16 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -1505,8 +1803,11 @@ LAYOUT_ortho_4x16 └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_ortho_4x4` + +4x4 ortholinear layout + ``` -LAYOUT_ortho_4x4 ┌───┬───┬───┬───┐ │ │ │ │ │ ├───┼───┼───┼───┤ @@ -1518,8 +1819,11 @@ LAYOUT_ortho_4x4 └───┴───┴───┴───┘ ``` +### `LAYOUT_ortho_4x6` + +4x6 ortholinear layout + ``` -LAYOUT_ortho_4x6 ┌───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┤ @@ -1531,8 +1835,11 @@ LAYOUT_ortho_4x6 └───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_ortho_5x5` + +5x5 ortholinear layout + ``` -LAYOUT_ortho_5x5 ┌───┬───┬───┬───┬───┐ │ │ │ │ │ │ ├───┼───┼───┼───┼───┤ @@ -1546,8 +1853,11 @@ LAYOUT_ortho_5x5 └───┴───┴───┴───┴───┘ ``` +### `LAYOUT_ortho_5x10` + +5x10 ortholinear layout + ``` -LAYOUT_ortho_5x10 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -1561,8 +1871,11 @@ LAYOUT_ortho_5x10 └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_ortho_5x12` + +5x12 ortholinear layout + ``` -LAYOUT_ortho_5x12 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -1576,8 +1889,11 @@ LAYOUT_ortho_5x12 └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_ortho_5x13` + +5x13 ortholinear layout + ``` -LAYOUT_ortho_5x13 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -1591,8 +1907,11 @@ LAYOUT_ortho_5x13 └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_ortho_5x14` + +5x14 ortholinear layout + ``` -LAYOUT_ortho_5x14 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -1606,8 +1925,11 @@ LAYOUT_ortho_5x14 └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_ortho_5x15` + +5x15 ortholinear layout + ``` -LAYOUT_ortho_5x15 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -1621,8 +1943,11 @@ LAYOUT_ortho_5x15 └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_ortho_5x4` + +5x4 ortholinear layout + ``` -LAYOUT_ortho_5x4 ┌───┬───┬───┬───┐ │ │ │ │ │ ├───┼───┼───┼───┤ @@ -1636,8 +1961,11 @@ LAYOUT_ortho_5x4 └───┴───┴───┴───┘ ``` +### `LAYOUT_ortho_6x4` + +6x4 ortholinear layout + ``` -LAYOUT_ortho_6x4 ┌───┬───┬───┬───┐ │ │ │ │ │ ├───┼───┼───┼───┤ @@ -1653,8 +1981,11 @@ LAYOUT_ortho_6x4 └───┴───┴───┴───┘ ``` +### `LAYOUT_ortho_6x13` + +6x13 ortholinear layout + ``` -LAYOUT_ortho_6x13 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -1670,8 +2001,11 @@ LAYOUT_ortho_6x13 └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_planck_mit` + +4x12 ortholinear layout with center 2u space + ``` -LAYOUT_planck_mit ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -1682,3 +2016,4 @@ LAYOUT_planck_mit │ │ │ │ │ │ │ │ │ │ │ │ └───┴───┴───┴───┴───┴───────┴───┴───┴───┴───┴───┘ ``` +
From 782f91a73a0f6d4128f9454509b4a207af269f8b Mon Sep 17 00:00:00 2001 From: era <73109780+eerraa@users.noreply.github.com> Date: Sun, 8 Dec 2024 15:06:03 +0900 Subject: [PATCH 104/365] [Keyboard] Add SIRIND Tomak79S (#24684) * Add Tomak79S Add Tomak79S * Update keyboards/era/sirind/tomak79s/keymaps/default/keymap.c Co-authored-by: jack <0x6a73@protonmail.com> --------- Co-authored-by: jack --- keyboards/era/sirind/tomak79s/config.h | 15 + keyboards/era/sirind/tomak79s/keyboard.json | 675 ++++++++++++++++++ .../sirind/tomak79s/keymaps/default/keymap.c | 24 + keyboards/era/sirind/tomak79s/readme.md | 27 + keyboards/era/sirind/tomak79s/tomak79s.c | 16 + 5 files changed, 757 insertions(+) create mode 100644 keyboards/era/sirind/tomak79s/config.h create mode 100644 keyboards/era/sirind/tomak79s/keyboard.json create mode 100644 keyboards/era/sirind/tomak79s/keymaps/default/keymap.c create mode 100644 keyboards/era/sirind/tomak79s/readme.md create mode 100644 keyboards/era/sirind/tomak79s/tomak79s.c diff --git a/keyboards/era/sirind/tomak79s/config.h b/keyboards/era/sirind/tomak79s/config.h new file mode 100644 index 00000000000..f04429bcd89 --- /dev/null +++ b/keyboards/era/sirind/tomak79s/config.h @@ -0,0 +1,15 @@ +// Copyright 2024 Hyojin Bak (@eerraa) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* Split configuration */ +#define USB_VBUS_PIN GP19 +#define SERIAL_USART_FULL_DUPLEX +#define SERIAL_USART_TX_PIN GP0 +#define SERIAL_USART_RX_PIN GP1 +#define SERIAL_USART_PIN_SWAP + +/* Reset */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U \ No newline at end of file diff --git a/keyboards/era/sirind/tomak79s/keyboard.json b/keyboards/era/sirind/tomak79s/keyboard.json new file mode 100644 index 00000000000..9011a359ad5 --- /dev/null +++ b/keyboards/era/sirind/tomak79s/keyboard.json @@ -0,0 +1,675 @@ +{ + "manufacturer": "SIRIND", + "keyboard_name": "Tomak79S", + "maintainer": "eerraa", + "bootloader": "rp2040", + "build": { + "debounce_type": "sym_defer_pk" + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP29", "GP22", "GP5", "GP6", "GP7", "GP4", "GP3", "GP2", null], + "rows": ["GP28", "GP23", "GP24", "GP25", "GP26", "GP27"] + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "flower_blooming": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "multisplash": true, + "pixel_flow": true, + "pixel_fractal": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "riverflow": true, + "solid_multisplash": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_splash": true, + "splash": true, + "starlight": true, + "starlight_dual_hue": true, + "starlight_dual_sat": true, + "typing_heatmap": true + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 20, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 33, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 47, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 93, "y": 0, "flags": 4}, + {"matrix": [1, 7], "x": 95, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 81, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 68, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 54, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 41, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 27, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 14, "y": 15, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 20, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 34, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 47, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 61, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 75, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 88, "y": 26, "flags": 4}, + {"matrix": [3, 6], "x": 92, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 78, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 51, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 37, "y": 38, "flags": 4}, + {"matrix": [3, 1], "x": 24, "y": 38, "flags": 4}, + {"matrix": [3, 0], "x": 5, "y": 38, "flags": 1}, + {"matrix": [3, 0], "x": 2, "y": 38, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 49, "flags": 1}, + {"matrix": [4, 0], "x": 8, "y": 49, "flags": 1}, + {"matrix": [4, 1], "x": 17, "y": 49, "flags": 4}, + {"matrix": [4, 2], "x": 31, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 44, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 58, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 71, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 85, "y": 49, "flags": 4}, + {"matrix": [5, 6], "x": 93, "y": 64, "flags": 1}, + {"matrix": [5, 5], "x": 71, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 37, "y": 61, "flags": 1}, + {"matrix": [5, 1], "x": 20, "y": 61, "flags": 1}, + {"matrix": [5, 0], "x": 3, "y": 61, "flags": 1}, + {"matrix": [6, 8], "x": 221, "y": 0, "flags": 4}, + {"matrix": [6, 7], "x": 205, "y": 0, "flags": 4}, + {"matrix": [6, 5], "x": 185, "y": 0, "flags": 4}, + {"matrix": [6, 4], "x": 171, "y": 0, "flags": 4}, + {"matrix": [6, 3], "x": 158, "y": 0, "flags": 4}, + {"matrix": [6, 2], "x": 144, "y": 0, "flags": 4}, + {"matrix": [6, 1], "x": 124, "y": 0, "flags": 4}, + {"matrix": [6, 0], "x": 111, "y": 0, "flags": 4}, + {"matrix": [7, 0], "x": 109, "y": 15, "flags": 4}, + {"matrix": [7, 1], "x": 123, "y": 15, "flags": 4}, + {"matrix": [7, 2], "x": 136, "y": 15, "flags": 4}, + {"matrix": [7, 3], "x": 150, "y": 15, "flags": 4}, + {"matrix": [7, 4], "x": 163, "y": 15, "flags": 4}, + {"matrix": [7, 5], "x": 177, "y": 15, "flags": 4}, + {"matrix": [7, 6], "x": 191, "y": 15, "flags": 1}, + {"matrix": [7, 7], "x": 197, "y": 15, "flags": 1}, + {"matrix": [7, 7], "x": 204, "y": 15, "flags": 1}, + {"matrix": [7, 8], "x": 221, "y": 15, "flags": 1}, + {"matrix": [8, 8], "x": 221, "y": 26, "flags": 4}, + {"matrix": [8, 7], "x": 200, "y": 26, "flags": 4}, + {"matrix": [8, 6], "x": 184, "y": 26, "flags": 4}, + {"matrix": [8, 5], "x": 170, "y": 26, "flags": 4}, + {"matrix": [8, 4], "x": 157, "y": 26, "flags": 4}, + {"matrix": [8, 3], "x": 143, "y": 26, "flags": 4}, + {"matrix": [8, 2], "x": 130, "y": 26, "flags": 4}, + {"matrix": [8, 1], "x": 116, "y": 26, "flags": 4}, + {"matrix": [8, 0], "x": 102, "y": 26, "flags": 4}, + {"matrix": [9, 0], "x": 106, "y": 38, "flags": 4}, + {"matrix": [9, 1], "x": 119, "y": 38, "flags": 4}, + {"matrix": [9, 2], "x": 133, "y": 38, "flags": 4}, + {"matrix": [9, 3], "x": 147, "y": 38, "flags": 4}, + {"matrix": [9, 4], "x": 160, "y": 38, "flags": 4}, + {"matrix": [9, 5], "x": 174, "y": 38, "flags": 4}, + {"matrix": [9, 6], "x": 187, "y": 38, "flags": 4}, + {"matrix": [9, 7], "x": 200, "y": 38, "flags": 1}, + {"matrix": [9, 7], "x": 202, "y": 34, "flags": 1}, + {"matrix": [10, 7], "x": 208, "y": 52, "flags": 4}, + {"matrix": [10, 6], "x": 186, "y": 49, "flags": 1}, + {"matrix": [10, 5], "x": 167, "y": 49, "flags": 4}, + {"matrix": [10, 4], "x": 153, "y": 49, "flags": 4}, + {"matrix": [10, 3], "x": 140, "y": 49, "flags": 4}, + {"matrix": [10, 2], "x": 126, "y": 49, "flags": 4}, + {"matrix": [10, 1], "x": 113, "y": 49, "flags": 4}, + {"matrix": [10, 0], "x": 99, "y": 49, "flags": 4}, + {"matrix": [11, 2], "x": 123, "y": 64, "flags": 4}, + {"matrix": [11, 4], "x": 160, "y": 61, "flags": 1}, + {"matrix": [11, 5], "x": 177, "y": 61, "flags": 1}, + {"matrix": [11, 6], "x": 194, "y": 64, "flags": 4}, + {"matrix": [11, 7], "x": 208, "y": 64, "flags": 4}, + {"matrix": [11, 8], "x": 221, "y": 64, "flags": 4}, + {"x": 224, "y": 53, "flags": 2}, + {"x": 224, "y": 51, "flags": 2}, + {"x": 224, "y": 49, "flags": 2}, + {"x": 224, "y": 48, "flags": 2}, + {"x": 224, "y": 46, "flags": 2}, + {"x": 224, "y": 44, "flags": 2}, + {"x": 224, "y": 43, "flags": 2}, + {"x": 224, "y": 41, "flags": 2}, + {"x": 224, "y": 39, "flags": 2} + ], + "sleep": true, + "split_count": [43, 59] + }, + "split": { + "bootmagic": { + "matrix": [6, 0] + }, + "enabled": true, + "handedness": { + "pin": "GP20" + }, + "matrix_pins": { + "right": { + "cols": ["GP25", "GP24", "GP23", "GP22", "GP7", "GP6", "GP5", "GP4", "GP2"], + "rows": ["GP29", "GP28", "GP27", "GP26", "GP11", "GP3"] + } + }, + "serial": { + "driver": "vendor" + }, + "transport": { + "sync": { + "indicators": true, + "layer_state": true, + "matrix_state": true + } + } + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0013", + "vid": "0x4552" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP17" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 1.5, "y": 0}, + {"matrix": [0, 3], "x": 2.5, "y": 0}, + {"matrix": [0, 4], "x": 3.5, "y": 0}, + {"matrix": [0, 5], "x": 4.5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [6, 0], "x": 9.5, "y": 0}, + {"matrix": [6, 1], "x": 10.5, "y": 0}, + {"matrix": [6, 2], "x": 12, "y": 0}, + {"matrix": [6, 3], "x": 13, "y": 0}, + {"matrix": [6, 4], "x": 14, "y": 0}, + {"matrix": [6, 5], "x": 15, "y": 0}, + {"matrix": [6, 7], "x": 16.5, "y": 0}, + {"matrix": [6, 8], "x": 17.75, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [7, 0], "x": 9.5, "y": 1.25}, + {"matrix": [7, 1], "x": 10.5, "y": 1.25}, + {"matrix": [7, 2], "x": 11.5, "y": 1.25}, + {"matrix": [7, 3], "x": 12.5, "y": 1.25}, + {"matrix": [7, 4], "x": 13.5, "y": 1.25}, + {"matrix": [7, 5], "x": 14.5, "y": 1.25}, + {"matrix": [7, 6], "x": 15.5, "y": 1.25}, + {"matrix": [7, 7], "x": 16.5, "y": 1.25}, + {"matrix": [7, 8], "x": 17.75, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [8, 0], "x": 9, "y": 2.25}, + {"matrix": [8, 1], "x": 10, "y": 2.25}, + {"matrix": [8, 2], "x": 11, "y": 2.25}, + {"matrix": [8, 3], "x": 12, "y": 2.25}, + {"matrix": [8, 4], "x": 13, "y": 2.25}, + {"matrix": [8, 5], "x": 14, "y": 2.25}, + {"matrix": [8, 6], "x": 15, "y": 2.25}, + {"matrix": [8, 7], "x": 16, "y": 2.25, "w": 1.5}, + {"matrix": [8, 8], "x": 17.75, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [9, 0], "x": 9.25, "y": 3.25}, + {"matrix": [9, 1], "x": 10.25, "y": 3.25}, + {"matrix": [9, 2], "x": 11.25, "y": 3.25}, + {"matrix": [9, 3], "x": 12.25, "y": 3.25}, + {"matrix": [9, 4], "x": 13.25, "y": 3.25}, + {"matrix": [9, 5], "x": 14.25, "y": 3.25}, + {"matrix": [9, 6], "x": 15.25, "y": 3.25}, + {"matrix": [9, 7], "x": 16.25, "y": 3.25, "w": 1.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [10, 0], "x": 8.75, "y": 4.25}, + {"matrix": [10, 1], "x": 9.75, "y": 4.25}, + {"matrix": [10, 2], "x": 10.75, "y": 4.25}, + {"matrix": [10, 3], "x": 11.75, "y": 4.25}, + {"matrix": [10, 4], "x": 12.75, "y": 4.25}, + {"matrix": [10, 5], "x": 13.75, "y": 4.25}, + {"matrix": [10, 6], "x": 14.75, "y": 4.25, "w": 1.75}, + {"matrix": [10, 7], "x": 16.75, "y": 4.5}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 5], "x": 4.75, "y": 5.5, "w": 2.25}, + {"matrix": [5, 6], "x": 7, "y": 5.5}, + {"matrix": [11, 2], "x": 9.5, "y": 5.5, "w": 2.75}, + {"matrix": [11, 4], "x": 13, "y": 5.25, "w": 1.5}, + {"matrix": [11, 5], "x": 14.5, "y": 5.25}, + {"matrix": [11, 6], "x": 15.75, "y": 5.5}, + {"matrix": [11, 7], "x": 16.75, "y": 5.5}, + {"matrix": [11, 8], "x": 17.75, "y": 5.5} + ] + }, + "LAYOUT_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 1.5, "y": 0}, + {"matrix": [0, 3], "x": 2.5, "y": 0}, + {"matrix": [0, 4], "x": 3.5, "y": 0}, + {"matrix": [0, 5], "x": 4.5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [6, 0], "x": 9.5, "y": 0}, + {"matrix": [6, 1], "x": 10.5, "y": 0}, + {"matrix": [6, 2], "x": 12, "y": 0}, + {"matrix": [6, 3], "x": 13, "y": 0}, + {"matrix": [6, 4], "x": 14, "y": 0}, + {"matrix": [6, 5], "x": 15, "y": 0}, + {"matrix": [6, 7], "x": 16.5, "y": 0}, + {"matrix": [6, 8], "x": 17.75, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [7, 0], "x": 9.5, "y": 1.25}, + {"matrix": [7, 1], "x": 10.5, "y": 1.25}, + {"matrix": [7, 2], "x": 11.5, "y": 1.25}, + {"matrix": [7, 3], "x": 12.5, "y": 1.25}, + {"matrix": [7, 4], "x": 13.5, "y": 1.25}, + {"matrix": [7, 5], "x": 14.5, "y": 1.25}, + {"matrix": [7, 7], "x": 15.5, "y": 1.25, "w": 2}, + {"matrix": [7, 8], "x": 17.75, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [8, 0], "x": 9, "y": 2.25}, + {"matrix": [8, 1], "x": 10, "y": 2.25}, + {"matrix": [8, 2], "x": 11, "y": 2.25}, + {"matrix": [8, 3], "x": 12, "y": 2.25}, + {"matrix": [8, 4], "x": 13, "y": 2.25}, + {"matrix": [8, 5], "x": 14, "y": 2.25}, + {"matrix": [8, 6], "x": 15, "y": 2.25}, + {"matrix": [8, 7], "x": 16, "y": 2.25, "w": 1.5}, + {"matrix": [8, 8], "x": 17.75, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [9, 0], "x": 9.25, "y": 3.25}, + {"matrix": [9, 1], "x": 10.25, "y": 3.25}, + {"matrix": [9, 2], "x": 11.25, "y": 3.25}, + {"matrix": [9, 3], "x": 12.25, "y": 3.25}, + {"matrix": [9, 4], "x": 13.25, "y": 3.25}, + {"matrix": [9, 5], "x": 14.25, "y": 3.25}, + {"matrix": [9, 7], "x": 15.25, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [10, 0], "x": 8.75, "y": 4.25}, + {"matrix": [10, 1], "x": 9.75, "y": 4.25}, + {"matrix": [10, 2], "x": 10.75, "y": 4.25}, + {"matrix": [10, 3], "x": 11.75, "y": 4.25}, + {"matrix": [10, 4], "x": 12.75, "y": 4.25}, + {"matrix": [10, 5], "x": 13.75, "y": 4.25}, + {"matrix": [10, 6], "x": 14.75, "y": 4.25, "w": 1.75}, + {"matrix": [10, 7], "x": 16.75, "y": 4.5}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 5], "x": 4.75, "y": 5.5, "w": 2.25}, + {"matrix": [5, 6], "x": 7, "y": 5.5}, + {"matrix": [11, 2], "x": 9.5, "y": 5.5, "w": 2.75}, + {"matrix": [11, 4], "x": 13, "y": 5.25, "w": 1.5}, + {"matrix": [11, 5], "x": 14.5, "y": 5.25}, + {"matrix": [11, 6], "x": 15.75, "y": 5.5}, + {"matrix": [11, 7], "x": 16.75, "y": 5.5}, + {"matrix": [11, 8], "x": 17.75, "y": 5.5} + ] + }, + "LAYOUT_ansi_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 1.5, "y": 0}, + {"matrix": [0, 3], "x": 2.5, "y": 0}, + {"matrix": [0, 4], "x": 3.5, "y": 0}, + {"matrix": [0, 5], "x": 4.5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [6, 0], "x": 9.5, "y": 0}, + {"matrix": [6, 1], "x": 10.5, "y": 0}, + {"matrix": [6, 2], "x": 12, "y": 0}, + {"matrix": [6, 3], "x": 13, "y": 0}, + {"matrix": [6, 4], "x": 14, "y": 0}, + {"matrix": [6, 5], "x": 15, "y": 0}, + {"matrix": [6, 7], "x": 16.5, "y": 0}, + {"matrix": [6, 8], "x": 17.75, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [7, 0], "x": 9.5, "y": 1.25}, + {"matrix": [7, 1], "x": 10.5, "y": 1.25}, + {"matrix": [7, 2], "x": 11.5, "y": 1.25}, + {"matrix": [7, 3], "x": 12.5, "y": 1.25}, + {"matrix": [7, 4], "x": 13.5, "y": 1.25}, + {"matrix": [7, 5], "x": 14.5, "y": 1.25}, + {"matrix": [7, 6], "x": 15.5, "y": 1.25}, + {"matrix": [7, 7], "x": 16.5, "y": 1.25}, + {"matrix": [7, 8], "x": 17.75, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [8, 0], "x": 9, "y": 2.25}, + {"matrix": [8, 1], "x": 10, "y": 2.25}, + {"matrix": [8, 2], "x": 11, "y": 2.25}, + {"matrix": [8, 3], "x": 12, "y": 2.25}, + {"matrix": [8, 4], "x": 13, "y": 2.25}, + {"matrix": [8, 5], "x": 14, "y": 2.25}, + {"matrix": [8, 6], "x": 15, "y": 2.25}, + {"matrix": [8, 7], "x": 16, "y": 2.25, "w": 1.5}, + {"matrix": [8, 8], "x": 17.75, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [9, 0], "x": 9.25, "y": 3.25}, + {"matrix": [9, 1], "x": 10.25, "y": 3.25}, + {"matrix": [9, 2], "x": 11.25, "y": 3.25}, + {"matrix": [9, 3], "x": 12.25, "y": 3.25}, + {"matrix": [9, 4], "x": 13.25, "y": 3.25}, + {"matrix": [9, 5], "x": 14.25, "y": 3.25}, + {"matrix": [9, 7], "x": 15.25, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [10, 0], "x": 8.75, "y": 4.25}, + {"matrix": [10, 1], "x": 9.75, "y": 4.25}, + {"matrix": [10, 2], "x": 10.75, "y": 4.25}, + {"matrix": [10, 3], "x": 11.75, "y": 4.25}, + {"matrix": [10, 4], "x": 12.75, "y": 4.25}, + {"matrix": [10, 5], "x": 13.75, "y": 4.25}, + {"matrix": [10, 6], "x": 14.75, "y": 4.25, "w": 1.75}, + {"matrix": [10, 7], "x": 16.75, "y": 4.5}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 5], "x": 4.75, "y": 5.5, "w": 2.25}, + {"matrix": [5, 6], "x": 7, "y": 5.5}, + {"matrix": [11, 2], "x": 9.5, "y": 5.5, "w": 2.75}, + {"matrix": [11, 4], "x": 13, "y": 5.25, "w": 1.5}, + {"matrix": [11, 5], "x": 14.5, "y": 5.25}, + {"matrix": [11, 6], "x": 15.75, "y": 5.5}, + {"matrix": [11, 7], "x": 16.75, "y": 5.5}, + {"matrix": [11, 8], "x": 17.75, "y": 5.5} + ] + }, + "LAYOUT_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 1.5, "y": 0}, + {"matrix": [0, 3], "x": 2.5, "y": 0}, + {"matrix": [0, 4], "x": 3.5, "y": 0}, + {"matrix": [0, 5], "x": 4.5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [6, 0], "x": 9.5, "y": 0}, + {"matrix": [6, 1], "x": 10.5, "y": 0}, + {"matrix": [6, 2], "x": 12, "y": 0}, + {"matrix": [6, 3], "x": 13, "y": 0}, + {"matrix": [6, 4], "x": 14, "y": 0}, + {"matrix": [6, 5], "x": 15, "y": 0}, + {"matrix": [6, 7], "x": 16.5, "y": 0}, + {"matrix": [6, 8], "x": 17.75, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [7, 0], "x": 9.5, "y": 1.25}, + {"matrix": [7, 1], "x": 10.5, "y": 1.25}, + {"matrix": [7, 2], "x": 11.5, "y": 1.25}, + {"matrix": [7, 3], "x": 12.5, "y": 1.25}, + {"matrix": [7, 4], "x": 13.5, "y": 1.25}, + {"matrix": [7, 5], "x": 14.5, "y": 1.25}, + {"matrix": [7, 7], "x": 15.5, "y": 1.25, "w": 2}, + {"matrix": [7, 8], "x": 17.75, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [8, 0], "x": 9, "y": 2.25}, + {"matrix": [8, 1], "x": 10, "y": 2.25}, + {"matrix": [8, 2], "x": 11, "y": 2.25}, + {"matrix": [8, 3], "x": 12, "y": 2.25}, + {"matrix": [8, 4], "x": 13, "y": 2.25}, + {"matrix": [8, 5], "x": 14, "y": 2.25}, + {"matrix": [8, 6], "x": 15, "y": 2.25}, + {"matrix": [8, 8], "x": 17.75, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [9, 0], "x": 9.25, "y": 3.25}, + {"matrix": [9, 1], "x": 10.25, "y": 3.25}, + {"matrix": [9, 2], "x": 11.25, "y": 3.25}, + {"matrix": [9, 3], "x": 12.25, "y": 3.25}, + {"matrix": [9, 4], "x": 13.25, "y": 3.25}, + {"matrix": [9, 5], "x": 14.25, "y": 3.25}, + {"matrix": [9, 6], "x": 15.25, "y": 3.25}, + {"matrix": [9, 7], "x": 16.25, "y": 3.25, "w": 1.25, "h": 2}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [10, 0], "x": 8.75, "y": 4.25}, + {"matrix": [10, 1], "x": 9.75, "y": 4.25}, + {"matrix": [10, 2], "x": 10.75, "y": 4.25}, + {"matrix": [10, 3], "x": 11.75, "y": 4.25}, + {"matrix": [10, 4], "x": 12.75, "y": 4.25}, + {"matrix": [10, 5], "x": 13.75, "y": 4.25}, + {"matrix": [10, 6], "x": 14.75, "y": 4.25, "w": 1.75}, + {"matrix": [10, 7], "x": 16.75, "y": 4.5}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 5], "x": 4.75, "y": 5.5, "w": 2.25}, + {"matrix": [5, 6], "x": 7, "y": 5.5}, + {"matrix": [11, 2], "x": 9.5, "y": 5.5, "w": 2.75}, + {"matrix": [11, 4], "x": 13, "y": 5.25, "w": 1.5}, + {"matrix": [11, 5], "x": 14.5, "y": 5.25}, + {"matrix": [11, 6], "x": 15.75, "y": 5.5}, + {"matrix": [11, 7], "x": 16.75, "y": 5.5}, + {"matrix": [11, 8], "x": 17.75, "y": 5.5} + ] + }, + "LAYOUT_iso_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 1.5, "y": 0}, + {"matrix": [0, 3], "x": 2.5, "y": 0}, + {"matrix": [0, 4], "x": 3.5, "y": 0}, + {"matrix": [0, 5], "x": 4.5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [6, 0], "x": 9.5, "y": 0}, + {"matrix": [6, 1], "x": 10.5, "y": 0}, + {"matrix": [6, 2], "x": 12, "y": 0}, + {"matrix": [6, 3], "x": 13, "y": 0}, + {"matrix": [6, 4], "x": 14, "y": 0}, + {"matrix": [6, 5], "x": 15, "y": 0}, + {"matrix": [6, 7], "x": 16.5, "y": 0}, + {"matrix": [6, 8], "x": 17.75, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [7, 0], "x": 9.5, "y": 1.25}, + {"matrix": [7, 1], "x": 10.5, "y": 1.25}, + {"matrix": [7, 2], "x": 11.5, "y": 1.25}, + {"matrix": [7, 3], "x": 12.5, "y": 1.25}, + {"matrix": [7, 4], "x": 13.5, "y": 1.25}, + {"matrix": [7, 5], "x": 14.5, "y": 1.25}, + {"matrix": [7, 6], "x": 15.5, "y": 1.25}, + {"matrix": [7, 7], "x": 16.5, "y": 1.25}, + {"matrix": [7, 8], "x": 17.75, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [8, 0], "x": 9, "y": 2.25}, + {"matrix": [8, 1], "x": 10, "y": 2.25}, + {"matrix": [8, 2], "x": 11, "y": 2.25}, + {"matrix": [8, 3], "x": 12, "y": 2.25}, + {"matrix": [8, 4], "x": 13, "y": 2.25}, + {"matrix": [8, 5], "x": 14, "y": 2.25}, + {"matrix": [8, 6], "x": 15, "y": 2.25}, + {"matrix": [8, 8], "x": 17.75, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [9, 0], "x": 9.25, "y": 3.25}, + {"matrix": [9, 1], "x": 10.25, "y": 3.25}, + {"matrix": [9, 2], "x": 11.25, "y": 3.25}, + {"matrix": [9, 3], "x": 12.25, "y": 3.25}, + {"matrix": [9, 4], "x": 13.25, "y": 3.25}, + {"matrix": [9, 5], "x": 14.25, "y": 3.25}, + {"matrix": [9, 6], "x": 15.25, "y": 3.25}, + {"matrix": [9, 7], "x": 16.25, "y": 3.25, "w": 1.25, "h": 2}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [10, 0], "x": 8.75, "y": 4.25}, + {"matrix": [10, 1], "x": 9.75, "y": 4.25}, + {"matrix": [10, 2], "x": 10.75, "y": 4.25}, + {"matrix": [10, 3], "x": 11.75, "y": 4.25}, + {"matrix": [10, 4], "x": 12.75, "y": 4.25}, + {"matrix": [10, 5], "x": 13.75, "y": 4.25}, + {"matrix": [10, 6], "x": 14.75, "y": 4.25, "w": 1.75}, + {"matrix": [10, 7], "x": 16.75, "y": 4.5}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 5], "x": 4.75, "y": 5.5, "w": 2.25}, + {"matrix": [5, 6], "x": 7, "y": 5.5}, + {"matrix": [11, 2], "x": 9.5, "y": 5.5, "w": 2.75}, + {"matrix": [11, 4], "x": 13, "y": 5.25, "w": 1.5}, + {"matrix": [11, 5], "x": 14.5, "y": 5.25}, + {"matrix": [11, 6], "x": 15.75, "y": 5.5}, + {"matrix": [11, 7], "x": 16.75, "y": 5.5}, + {"matrix": [11, 8], "x": 17.75, "y": 5.5} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/era/sirind/tomak79s/keymaps/default/keymap.c b/keyboards/era/sirind/tomak79s/keymaps/default/keymap.c new file mode 100644 index 00000000000..9ac7334d489 --- /dev/null +++ b/keyboards/era/sirind/tomak79s/keymaps/default/keymap.c @@ -0,0 +1,24 @@ +// Copyright 2024 Hyojin Bak (@eerraa) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_TOGG, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, RM_NEXT, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; \ No newline at end of file diff --git a/keyboards/era/sirind/tomak79s/readme.md b/keyboards/era/sirind/tomak79s/readme.md new file mode 100644 index 00000000000..5fc275bc65d --- /dev/null +++ b/keyboards/era/sirind/tomak79s/readme.md @@ -0,0 +1,27 @@ +# Tomak79S, Solder ver + +![Tomak79S](https://i.imgur.com/Pq2itWD.jpeg) + +Ergonomics Split Keyboard powered by RP2040. + +* Keyboard Maintainer: [ERA](https://github.com/eerraa) +* Hardware supported: SIRIND Tomak79 +* Hardware availability: [Syryan](https://srind.mysoho.com/) + +Make example for this keyboard (after setting up your build environment): + + make era/sirind/tomak79s:default + +Flashing example for this keyboard: + + make era/sirind/tomak79s:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the 'top-left(ESC, F7)' key and plug in the keyboard. +* **Physical reset**: Short the 'RESET' and 'GND' holes twice within one second, or plug in the keyboard with the 'BOOT' and 'GND' holes shorted. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. \ No newline at end of file diff --git a/keyboards/era/sirind/tomak79s/tomak79s.c b/keyboards/era/sirind/tomak79s/tomak79s.c new file mode 100644 index 00000000000..f5f3165b640 --- /dev/null +++ b/keyboards/era/sirind/tomak79s/tomak79s.c @@ -0,0 +1,16 @@ +// Copyright 2023 Hyojin Bak (@eerraa) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + if (host_keyboard_led_state().caps_lock) { + for (uint8_t i = 93; i <= 101; i++) { + rgb_matrix_set_color(i, 0, 128, 128); + } + } + return true; +} \ No newline at end of file From 68f67e23aaab1585ea1190425f75e31179826eae Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 8 Dec 2024 14:35:12 +0000 Subject: [PATCH 105/365] skyloong/gk61: Remove overriding of core keycode behaviour (#24655) --- keyboards/skyloong/gk61/pro/config.h | 3 - keyboards/skyloong/gk61/pro/pro.c | 149 +++++------------------- keyboards/skyloong/gk61/pro_48/config.h | 4 - keyboards/skyloong/gk61/pro_48/pro_48.c | 93 +-------------- 4 files changed, 32 insertions(+), 217 deletions(-) diff --git a/keyboards/skyloong/gk61/pro/config.h b/keyboards/skyloong/gk61/pro/config.h index db02496f8b4..aeea36e0bcc 100644 --- a/keyboards/skyloong/gk61/pro/config.h +++ b/keyboards/skyloong/gk61/pro/config.h @@ -7,6 +7,3 @@ #define IS31FL3743A_SDB_PIN C1 #define CAPS_LOCK_INDEX 28 -#define WIN_MOD_INDEX 16 -#define MAC_MOD_INDEX 17 -#define WIN_LOCK_INDEX 54 diff --git a/keyboards/skyloong/gk61/pro/pro.c b/keyboards/skyloong/gk61/pro/pro.c index 2299977e0ef..11411ba2b19 100644 --- a/keyboards/skyloong/gk61/pro/pro.c +++ b/keyboards/skyloong/gk61/pro/pro.c @@ -1,11 +1,8 @@ // Copyright 2023 linlin012 (@linlin012) // SPDX-License-Identifier: GPL-2.0-or-later #include "quantum.h" -int FN_WIN = 0; -int FN_MAC = 0; -int L_WIN = 0; -int L_MAC = 0; +#if defined(RGB_MATRIX_ENABLE) const is31fl3743a_led_t PROGMEM g_is31fl3743a_leds[IS31FL3743A_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver @@ -83,7 +80,32 @@ const is31fl3743a_led_t PROGMEM g_is31fl3743a_leds[IS31FL3743A_LED_COUNT] = { {0, SW10_CS13, SW10_CS14, SW10_CS15} }; -#if defined(RGB_MATRIX_ENABLE) /*&& defined(CAPS_LOCK_INDEX)*/ +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { + return false; + } + + if (host_keyboard_led_state().caps_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_INDEX, 255, 255, 255); + } else { + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_INDEX, 0, 0, 0); + } + } + + return false; +} + +void suspend_power_down_kb(void) { + gpio_write_pin_low(IS31FL3743A_SDB_PIN); + suspend_power_down_user(); +} + +void suspend_wakeup_init_kb(void) { + gpio_write_pin_high(IS31FL3743A_SDB_PIN); + suspend_wakeup_init_user(); +} +#endif bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (!process_record_user(keycode, record)) { @@ -105,124 +127,9 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { } 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 - default: - return true; - } - -} - -bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { - if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { - return false; } - if (host_keyboard_led_state().caps_lock) { - RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_INDEX, 255, 255, 255); - } else { - if (!rgb_matrix_get_flags()) { - RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_INDEX, 0, 0, 0); - } - } - - switch (get_highest_layer(layer_state)) { - 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; - - - 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; - - 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 false; -} - -#endif - -void suspend_power_down_kb() { -# ifdef RGB_MATRIX_ENABLE - gpio_write_pin_low(IS31FL3743A_SDB_PIN); -# endif - suspend_power_down_user(); -} - -void suspend_wakeup_init_kb() { -# ifdef RGB_MATRIX_ENABLE - gpio_write_pin_high(IS31FL3743A_SDB_PIN); -# endif - suspend_wakeup_init_user(); + return true; } void board_init(void) { diff --git a/keyboards/skyloong/gk61/pro_48/config.h b/keyboards/skyloong/gk61/pro_48/config.h index 5b4976e2dad..7e45ac83543 100644 --- a/keyboards/skyloong/gk61/pro_48/config.h +++ b/keyboards/skyloong/gk61/pro_48/config.h @@ -7,7 +7,3 @@ #define IS31FL3743A_SDB_PIN A4 #define CAPS_LOCK_INDEX 28 -#define WIN_MOD_INDEX 16 -#define MAC_MOD_INDEX 17 - -#define g_suspend_state rgb_matrix_get_suspend_state() diff --git a/keyboards/skyloong/gk61/pro_48/pro_48.c b/keyboards/skyloong/gk61/pro_48/pro_48.c index 6da76a17670..11411ba2b19 100644 --- a/keyboards/skyloong/gk61/pro_48/pro_48.c +++ b/keyboards/skyloong/gk61/pro_48/pro_48.c @@ -1,12 +1,8 @@ // Copyright 2023 linlin012 (@linlin012) // SPDX-License-Identifier: GPL-2.0-or-later #include "quantum.h" -_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)*/ +#if defined(RGB_MATRIX_ENABLE) const is31fl3743a_led_t PROGMEM g_is31fl3743a_leds[IS31FL3743A_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver @@ -97,57 +93,9 @@ bool rgb_matrix_indicators_advanced_kb(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 false; } - void suspend_power_down_kb(void) { gpio_write_pin_low(IS31FL3743A_SDB_PIN); suspend_power_down_user(); @@ -177,44 +125,11 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { } break; } } - return false; + 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 - default: - return true; } + + return true; } void board_init(void) { From 1c6d3d0cbc52eefce3c244ed958566204b9d65a7 Mon Sep 17 00:00:00 2001 From: Feags <41646528+Feags@users.noreply.github.com> Date: Sun, 8 Dec 2024 22:30:26 -0500 Subject: [PATCH 106/365] Adding new keyboard Promenade RP24S (#24689) * adding keymaps for krado industries * Modified default keymap.c files to be the same as via. * Changing vendor ID for Krado Industries * Suggested changes made Making changes suggested by zvecr. Removed dynamic_layer indicator, updated copyright year, deleted unused layers in keymaps. Co-authored-by: Joel Challis * rgbpin for ws2812 changed in info.json * Added encoder mapping rule file for default keymaps; added Fn layer shortcuts to Promenade layouts * Added rules.mk with encoder mapping for encoder boards at keymaps level. * Deleted extra key in LAYOUT * Update keyboards/kradoindustries/kousa/rules.mk Move WS2812 Driver from rules.mk to info.json Co-authored-by: jack * Update keyboards/kradoindustries/kousa/info.json Move WS2812 Driver from rules.mk to info.json Co-authored-by: jack * Update keyboards/kradoindustries/kousa/keymaps/default/keymap.c Move WS2812 Driver from rules.mk to info.json Co-authored-by: jack * Reverting settings.json * Encoder map code change [2]>[NUM_DIRECTIONS] * Adding Promenade RP24S Adding Promenade RP24S keyboard.json, default keymap, and readme * Adding layer access to Promenade RP24S Adding layer access to layers 1 and 2 --------- Co-authored-by: Joel Challis Co-authored-by: jack --- .../promenade_rp24s/keyboard.json | 140 ++++++++++++++++++ .../promenade_rp24s/keymaps/default/keymap.c | 102 +++++++++++++ .../promenade_rp24s/keymaps/default/rules.mk | 1 + .../kradoindustries/promenade_rp24s/readme.md | 29 ++++ 4 files changed, 272 insertions(+) create mode 100644 keyboards/kradoindustries/promenade_rp24s/keyboard.json create mode 100644 keyboards/kradoindustries/promenade_rp24s/keymaps/default/keymap.c create mode 100644 keyboards/kradoindustries/promenade_rp24s/keymaps/default/rules.mk create mode 100644 keyboards/kradoindustries/promenade_rp24s/readme.md diff --git a/keyboards/kradoindustries/promenade_rp24s/keyboard.json b/keyboards/kradoindustries/promenade_rp24s/keyboard.json new file mode 100644 index 00000000000..c0d4a7f535f --- /dev/null +++ b/keyboards/kradoindustries/promenade_rp24s/keyboard.json @@ -0,0 +1,140 @@ +{ + "keyboard_name": "Promenade RP24S", + "manufacturer": "Krado Industries", + "url": "https://www.kradoindustries.com/", + "maintainer": "Krado Industries", + "processor": "RP2040", + "bootloader": "rp2040", + "usb": { + "vid": "0x4B72", + "pid": "0x4B6D", + "device_version": "1.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true, + "encoder": true, + "rgblight": true + }, + + "encoder": { + "rotary": [ + { "pin_a": "GP12", "pin_b": "GP15" }, + { "pin_a": "GP12", "pin_b": "GP16" }, + { "pin_a": "GP15", "pin_b": "GP18" }, + { "pin_a": "GP16", "pin_b": "GP18" }, + { "pin_a": "GP11", "pin_b": "GP15" }, + { "pin_a": "GP16", "pin_b": "GP11" }, + { "pin_a": "GP16", "pin_b": "GP15" }, + { "pin_a": "GP18", "pin_b": "GP12" } + ] + }, + + "ws2812": { + "pin": "GP26", + "driver": "vendor" + }, + "rgblight": { + "led_count": 14, + "sleep": true, + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + } + }, + + + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["GP20", "GP10", "GP9", "GP8", "GP7", "GP6", "GP14", "GP13", "GP5", "GP4", "GP3", "GP2", "GP1", "GP0"], + "rows": ["GP29", "GP28", "GP27", "GP19", "GP17"] + }, + + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0, "w":1.5}, + {"matrix": [0, 1], "x":1.5, "y":0}, + {"matrix": [0, 2], "x":2.5, "y":0}, + {"matrix": [0, 3], "x":3.5, "y":0}, + {"matrix": [0, 4], "x":4.5, "y":0}, + {"matrix": [0, 5], "x":5.5, "y":0}, + {"matrix": [0, 6], "x":6.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0, 10], "x":10.5, "y":0}, + {"matrix": [0, 11], "x":11.5, "y":0}, + {"matrix": [0, 12], "x":12.5, "y":0}, + {"matrix": [0, 13], "x":13.5, "y":0, "w":1.5}, + {"matrix": [1, 0], "x":0, "y":1, "w":1.5}, + {"matrix": [1, 1], "x":1.5, "y":1}, + {"matrix": [1, 2], "x":2.5, "y":1}, + {"matrix": [1, 3], "x":3.5, "y":1}, + {"matrix": [1, 4], "x":4.5, "y":1}, + {"matrix": [1, 5], "x":5.5, "y":1}, + {"matrix": [1, 6], "x":6.5, "y":1}, + {"matrix": [1, 7], "x":7.5, "y":1}, + {"matrix": [1, 8], "x":8.5, "y":1}, + {"matrix": [1, 9], "x":9.5, "y":1}, + {"matrix": [1, 10], "x":10.5, "y":1}, + {"matrix": [1, 11], "x":11.5, "y":1}, + {"matrix": [1, 12], "x":12.5, "y":1}, + {"matrix": [1, 13], "x":13.5, "y":1, "w":1.5}, + {"matrix": [2, 0], "x":0, "y":2, "w":1.5}, + {"matrix": [2, 1], "x":1.5, "y":2}, + {"matrix": [2, 2], "x":2.5, "y":2}, + {"matrix": [2, 3], "x":3.5, "y":2}, + {"matrix": [2, 4], "x":4.5, "y":2}, + {"matrix": [2, 5], "x":5.5, "y":2}, + {"matrix": [2, 6], "x":6.5, "y":2}, + {"matrix": [2, 7], "x":7.5, "y":2}, + {"matrix": [2, 8], "x":8.5, "y":2}, + {"matrix": [2, 9], "x":9.5, "y":2}, + {"matrix": [2, 10], "x":10.5, "y":2}, + {"matrix": [2, 11], "x":11.5, "y":2}, + {"matrix": [2, 12], "x":12.5, "y":2}, + {"matrix": [2, 13], "x":13.5, "y":2, "w":1.5}, + {"matrix": [3, 0], "x":0, "y":3, "w":1.5}, + {"matrix": [3, 1], "x":1.5, "y":3}, + {"matrix": [3, 2], "x":2.5, "y":3}, + {"matrix": [3, 3], "x":3.5, "y":3}, + {"matrix": [3, 4], "x":4.5, "y":3}, + {"matrix": [3, 5], "x":5.5, "y":3}, + {"matrix": [3, 6], "x":6.5, "y":3}, + {"matrix": [3, 7], "x":7.5, "y":3}, + {"matrix": [3, 8], "x":8.5, "y":3}, + {"matrix": [3, 9], "x":9.5, "y":3}, + {"matrix": [3, 10], "x":10.5, "y":3}, + {"matrix": [3, 11], "x":11.5, "y":3}, + {"matrix": [3, 12], "x":12.5, "y":3}, + {"matrix": [3, 13], "x":13.5, "y":3, "w":1.5}, + {"matrix": [4, 0], "x":0, "y":4, "w":1.5}, + {"matrix": [4, 1], "x":1.5, "y":4}, + {"matrix": [4, 2], "x":2.5, "y":4}, + {"matrix": [4, 3], "x":3.5, "y":4}, + {"matrix": [4, 4], "x":4.5, "y":4}, + {"matrix": [4, 5], "x":5.5, "y":4}, + {"matrix": [4, 6], "x":6.5, "y":4}, + {"matrix": [4, 7], "x":7.5, "y":4}, + {"matrix": [4, 8], "x":8.5, "y":4}, + {"matrix": [4, 9], "x":9.5, "y":4}, + {"matrix": [4, 10], "x":10.5, "y":4}, + {"matrix": [4, 11], "x":11.5, "y":4}, + {"matrix": [4, 12], "x":12.5, "y":4}, + {"matrix": [4, 13], "x":13.5, "y":4, "w":1.5}] + } + } +} diff --git a/keyboards/kradoindustries/promenade_rp24s/keymaps/default/keymap.c b/keyboards/kradoindustries/promenade_rp24s/keymaps/default/keymap.c new file mode 100644 index 00000000000..ed36cc85fbb --- /dev/null +++ b/keyboards/kradoindustries/promenade_rp24s/keymaps/default/keymap.c @@ -0,0 +1,102 @@ +/* +Copyright 2024 Matt F + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + + +#define _FN MO(3) +#define FN_BACK LT(3, KC_BSPC) +#define ZOOMIN C(KC_EQL) +#define ZOOMOUT C(KC_MINS) +#define NTAB C(KC_TAB) +#define BTAB C(S(KC_TAB)) + + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + + /* Base Layer + + + * .-----------------------------------------------------------------------------------------------------------------------------------. + * | Grave | 1 | 2 | 3 | 4 | 5 | - | = | 6 | 7 | 8 | 9 | 0 | Backspace | + * | | | | | | | | | | | | | | | + * |-----------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------| + * | Tab | Q | W | E | R | T | [ | ] | Y | U | I | O | P | Del | + * | | | | | | | | | | | | | | | + * |-----------+--------+--------+--------+--------+--------|--------+--------|--------+--------+--------+-----------------+-----------| + * | FN_BACK | A | S | D | F | G | [ | ] | H | J | K | L | " | Enter | + * | | | | | | | | | | | | | ' | | + * |-----------+--------+--------+--------+--------+--------|--------+--------|--------+--------+--------------------------+-----------| + * | LShift | Z | X | C | V | B | BTab | NTab | N | M | < | > | ? | RShift | + * | | | | | | | | | | | , | . | / | | + * |-----------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+-----------| + * | LCTRL | LGUI | LALT | FN | Space | Space |Space |Space | Space | Space | Space | RALT | FN | RCTRL | + * | | | | | | | | | | | | | | | + * '-----------------------------------------------------------------------------------------------------------------------------------' + */ + + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + FN_BACK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LBRC, KC_RBRC, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, + SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, BTAB, NTAB, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC, + KC_LCTL, KC_LGUI, KC_LALT, _FN, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, _FN, KC_RCTL + ), + + [1] = LAYOUT( /* Layer One */ + + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LBRC, KC_RBRC, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGUP, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, _FN, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, _FN, KC_RCTL + ), + + + [2] = LAYOUT( /* Layer Two */ + + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, ZOOMIN, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + FN_BACK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LBRC, KC_RBRC, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, ZOOMOUT, KC_LBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, _FN, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, _FN, KC_RCTL + ), + + [3] = LAYOUT( /* Layer Three */ + + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + _______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, DF(0) , DF(1) , _______, _______, _______, _______, KC_PSCR, KC_BSLS, + _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, KC_SCLN, KC_QUOT, + _______, _______, _______, _______, _______, _______, DF(2) , _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_BSLS, KC_CAPS, + _______, _______, _______, _______, _______, _______, KC_ENT, KC_ENT, _______, _______, _______, _______, _______, QK_BOOT + ) + +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(UG_NEXT, UG_PREV), + ENCODER_CCW_CW(KC_LBRC, KC_RBRC), ENCODER_CCW_CW(C(KC_MINS), C(KC_EQL)), + ENCODER_CCW_CW(C(KC_Z), C(S(KC_Z))), ENCODER_CCW_CW(KC_PGUP, KC_PGDN), + ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_UP, KC_DOWN)}, + [1 ... 3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), + ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), + ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), + ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______)} +}; +#endif \ No newline at end of file diff --git a/keyboards/kradoindustries/promenade_rp24s/keymaps/default/rules.mk b/keyboards/kradoindustries/promenade_rp24s/keymaps/default/rules.mk new file mode 100644 index 00000000000..a40474b4d5c --- /dev/null +++ b/keyboards/kradoindustries/promenade_rp24s/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/kradoindustries/promenade_rp24s/readme.md b/keyboards/kradoindustries/promenade_rp24s/readme.md new file mode 100644 index 00000000000..9685cb82963 --- /dev/null +++ b/keyboards/kradoindustries/promenade_rp24s/readme.md @@ -0,0 +1,29 @@ +# Promenade RP24S + +![Promenade RP24S](https://i.imgur.com/uQOhmmJ.jpeg) + +The Promenade RP24S is the solder version of the [Promenade](https://github.com/qmk/qmk_firmware/tree/master/keyboards/kradoindustries/promenade) pcb which is based on the [Boardwalk](https://github.com/qmk/qmk_firmware/tree/master/keyboards/boardwalk), a 60% ortholinear keyboard that uses 1.5u Ergodoxian modifier keys. The original Boardwalk's split hand and 65% layouts are supported, and a new 50% extended layout similar to [RGBKB's Pan](https://github.com/qmk/qmk_firmware/tree/master/keyboards/rgbkb/pan) with two right-side macro columns was also added. In addition to Pok3r-style 60% tray mounting points, the pcb also has edge cuts for use in gummy o-ring mount boards like the Bakeneko60. Some additional spacebar options including 3u, 6u, and triple 2u were added. The pcb has two footprint locations for a JST connector, many breakout pins, and 19 rotary encoder locations. The MCU has been upgraded to a RP2040 with 32M-bit of flash memory. + + +* Keyboard Maintainer: [Feags](https://github.com/Feags) / [Krado Industries](https://kradoindustries.com/) +* Hardware Supported: Promenade pcb. Many 60% cases. +* Hardware Availability: [Krado Industries](https://kradoindustries.com/) + +Make example for this keyboard (after setting up your build environment): + + make kradoindustries/promenade_rp24s:default + +Flashing example for this keyboard: + + make kradoindustries/promenade_rp24s:default:flash + + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file From 379bb770057eb4d8c49fb748813fc1b589802acc Mon Sep 17 00:00:00 2001 From: Amund Tenstad Date: Mon, 9 Dec 2024 06:44:12 +0100 Subject: [PATCH 107/365] fix: KC_MEDIA_PLAY_PAUSE label (#24693) --- data/constants/keycodes/keycodes_0.0.1_basic.hjson | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/constants/keycodes/keycodes_0.0.1_basic.hjson b/data/constants/keycodes/keycodes_0.0.1_basic.hjson index 430211eccae..66aba7b1fc1 100644 --- a/data/constants/keycodes/keycodes_0.0.1_basic.hjson +++ b/data/constants/keycodes/keycodes_0.0.1_basic.hjson @@ -1140,7 +1140,7 @@ "0x00AE": { "group": "media", "key": "KC_MEDIA_PLAY_PAUSE", - "label": "Mute", + "label": "Play/Pause Track", "aliases": [ "KC_MPLY" ] From 3c359529445942eda9c9efc3e448f059a5d24cc0 Mon Sep 17 00:00:00 2001 From: nuess0r Date: Mon, 9 Dec 2024 07:21:49 +0100 Subject: [PATCH 108/365] Adding ctrl-M replacement controller for IBM Model M (#24375) * This is a configuration of QMK intended to be used with the [ctrl-M controller](https://github.com/nuess0r/ctrl-M). * Move USB_MAX_POWER_CONSUMPTION to data driven due to upstream change * Clean up according to PR checklist Check the keymaps/nuess0r how you can make better use of your Model M including Windows, multimedia keys etc. * Move CAPS_HOLD feature from default build to custom keymap * More data driven configuration Move layout definition from ctrl_m.h to info.json Move has_ghost to info.json -> this makes the config.h file obsolete * Implement changes suggested by review * Removing user keymap (nuess0r) to follow current guidelines The nuess0r keymap which is shipped with the ctrl-M controller is kept here: https://github.com/nuess0r/qmk_firmware/tree/nuess0r_keymap * Changed image hosting location to Github requested in review by drashna * Changed image hosting location to imgur * Settings removed from info.json that are disabled by default. * Change URL as suggested by @dunk2k Not pointing to the QMK firmware but to the replacement controller electronics project. * Migrate build target markers to keyboard.json * Adding tindie link and implement review suggestions * Removing via keymap to follow current guidelines Will be moved to the https://github.com/the-via/qmk_userspace_via repo. * Add LAYOUT_all to support ANSI and ISO keyboards with the same firmware Add a LAYOUT_all similar to other keyboards that defines all available keys. Change the default keymap to use the _all layout so both ANSI and ISO Model M variants work out of the box. * Remove unnecessary enum from default keymap Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> --------- Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> --- keyboards/ibm/model_m/ctrl_m/keyboard.json | 409 ++++++++++++++++++ .../model_m/ctrl_m/keymaps/default/keymap.c | 27 ++ keyboards/ibm/model_m/ctrl_m/readme.md | 27 ++ 3 files changed, 463 insertions(+) create mode 100644 keyboards/ibm/model_m/ctrl_m/keyboard.json create mode 100644 keyboards/ibm/model_m/ctrl_m/keymaps/default/keymap.c create mode 100644 keyboards/ibm/model_m/ctrl_m/readme.md diff --git a/keyboards/ibm/model_m/ctrl_m/keyboard.json b/keyboards/ibm/model_m/ctrl_m/keyboard.json new file mode 100644 index 00000000000..41801215c13 --- /dev/null +++ b/keyboards/ibm/model_m/ctrl_m/keyboard.json @@ -0,0 +1,409 @@ +{ + "keyboard_name": "ctrl-M", + "manufacturer": "nuess0r", + "url": "https://github.com/nuess0r/ctrl-m", + "maintainer": "nuess0r", + "usb": { + "vid": "0x1D50", + "pid": "0x6180", + "device_version": "1.0.0", + "max_power": 100 + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": false + }, + "matrix_pins": { + "cols": ["A15", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "C13", "C14", "C15", "F0", "F1", "A0", "A1", "A2"], + "rows": ["A3", "A4", "A5", "A6", "A7", "B0", "B1", "B2"], + "ghost": true + }, + "diode_direction": "ROW2COL", + "indicators": { + "num_lock": "B10", + "caps_lock": "B12", + "scroll_lock": "B11", + "on_state": 0 + }, + "bootmagic": { + "matrix": [0, 2] + }, + "processor": "STM32F072", + "bootloader": "stm32-dfu", + "layouts": { + "LAYOUT_fullsize_ansi_wkl": { + "layout": [ + {"label": "Esc", "matrix": [0, 2], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [2, 3], "x": 2, "y": 0}, + {"label": "F2", "matrix": [2, 4], "x": 3, "y": 0}, + {"label": "F3", "matrix": [1, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 8], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [1, 9], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [2, 9], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [2, 6], "x": 11, "y": 0}, + {"label": "F10", "matrix": [3, 6], "x": 12, "y": 0}, + {"label": "F11", "matrix": [3, 11], "x": 13, "y": 0}, + {"label": "F12", "matrix": [3, 12], "x": 14, "y": 0}, + + {"label": "PrtSc", "matrix": [3, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [4, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [6, 14], "x": 17.25, "y": 0}, + + {"label": "~", "matrix": [2, 2], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [3, 2], "x": 1, "y": 1.5}, + {"label": "@", "matrix": [3, 3], "x": 2, "y": 1.5}, + {"label": "#", "matrix": [3, 4], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [3, 5], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [2, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [2, 7], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [3, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [3, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [3, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [3, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [2, 10], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [2, 8], "x": 12, "y": 1.5}, + {"label": "Backspace", "matrix": [1, 6], "x": 13, "y": 1.5, "w": 2}, + + {"label": "Insert", "matrix": [2, 12], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [2, 14], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [2, 13], "x": 17.25, "y": 1.5}, + + {"label": "Num Lock", "matrix": [6, 11], "x": 18.5, "y": 1.5}, + {"label": "/", "matrix": [6, 12], "x": 19.5, "y": 1.5}, + {"label": "*", "matrix": [6, 13], "x": 20.5, "y": 1.5}, + {"label": "-", "matrix": [7, 13], "x": 21.5, "y": 1.5}, + + {"label": "Tab", "matrix": [1, 2], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [4, 2], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [4, 3], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [4, 4], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [4, 5], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [4, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [4, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [4, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [4, 10], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [1, 10], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [1, 8], "x": 12.5, "y": 2.5}, + {"label": "|", "matrix": [5, 6], "x": 13.5, "y": 2.5, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 11], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [3, 14], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [3, 13], "x": 17.25, "y": 2.5}, + + {"label": "7", "matrix": [4, 11], "x": 18.5, "y": 2.5}, + {"label": "8", "matrix": [4, 12], "x": 19.5, "y": 2.5}, + {"label": "9", "matrix": [4, 13], "x": 20.5, "y": 2.5}, + {"label": "+", "matrix": [4, 14], "x": 21.5, "y": 2.5, "h": 2}, + + {"label": "Caps Lock", "matrix": [1, 3], "x": 0, "y": 3.5, "w": 1.5}, + {"label": "A", "matrix": [5, 2], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [5, 3], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [5, 4], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [5, 5], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [0, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [0, 7], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [5, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [5, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [5, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [5, 10], "x": 10.75, "y": 3.5}, + {"label": "\"", "matrix": [0, 10], "x": 11.75, "y": 3.5}, + {"label": "Enter", "matrix": [6, 6], "x": 12.75, "y": 3.5, "w": 2.25}, + + {"label": "4", "matrix": [1, 11], "x": 18.5, "y": 3.5}, + {"label": "5", "matrix": [1, 12], "x": 19.5, "y": 3.5}, + {"label": "6", "matrix": [1, 13], "x": 20.5, "y": 3.5}, + + {"label": "Shift", "matrix": [1, 1], "x": 0, "y": 4.5, "w": 2.25}, + {"label": "Z", "matrix": [6, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [6, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [6, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [6, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [7, 5], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [7, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [6, 7], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [6, 8], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [6, 9], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [7, 10], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [6, 1], "x": 12.25, "y": 4.5, "w": 2.75}, + + {"label": "\u2191", "matrix": [0, 14], "x": 16.25, "y": 4.5}, + + {"label": "1", "matrix": [5, 11], "x": 18.5, "y": 4.5}, + {"label": "2", "matrix": [5, 12], "x": 19.5, "y": 4.5}, + {"label": "3", "matrix": [5, 13], "x": 20.5, "y": 4.5}, + {"label": "Enter", "matrix": [5, 14], "x": 21.5, "y": 4.5, "h": 2}, + + {"label": "Ctrl", "matrix": [2, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"label": "Alt", "matrix": [0, 15], "x": 2.5, "y": 5.5, "w": 1.5}, + {"matrix": [7, 6], "x": 4, "y": 5.5, "w": 7}, + {"label": "Alt", "matrix": [7, 15], "x": 11, "y": 5.5, "w": 1.5}, + {"label": "Ctrl", "matrix": [6, 0], "x": 13.5, "y": 5.5, "w": 1.5}, + + {"label": "\u2190", "matrix": [7, 14], "x": 15.25, "y": 5.5}, + {"label": "\u2193", "matrix": [7, 11], "x": 16.25, "y": 5.5}, + {"label": "\u2192", "matrix": [7, 12], "x": 17.25, "y": 5.5}, + + {"label": "0", "matrix": [0, 12], "x": 18.5, "y": 5.5, "w": 2}, + {"label": ".", "matrix": [0, 13], "x": 20.5, "y": 5.5} + ] + }, + "LAYOUT_fullsize_iso_wkl": { + "layout": [ + {"label": "Esc", "matrix": [0, 2], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [2, 3], "x": 2, "y": 0}, + {"label": "F2", "matrix": [2, 4], "x": 3, "y": 0}, + {"label": "F3", "matrix": [1, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 8], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [1, 9], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [2, 9], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [2, 6], "x": 11, "y": 0}, + {"label": "F10", "matrix": [3, 6], "x": 12, "y": 0}, + {"label": "F11", "matrix": [3, 11], "x": 13, "y": 0}, + {"label": "F12", "matrix": [3, 12], "x": 14, "y": 0}, + + {"label": "PrtSc", "matrix": [3, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [4, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [6, 14], "x": 17.25, "y": 0}, + + {"label": "~", "matrix": [2, 2], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [3, 2], "x": 1, "y": 1.5}, + {"label": "@", "matrix": [3, 3], "x": 2, "y": 1.5}, + {"label": "#", "matrix": [3, 4], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [3, 5], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [2, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [2, 7], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [3, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [3, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [3, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [3, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [2, 10], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [2, 8], "x": 12, "y": 1.5}, + {"label": "Backspace", "matrix": [1, 6], "x": 13, "y": 1.5, "w": 2}, + + {"label": "Insert", "matrix": [2, 12], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [2, 14], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [2, 13], "x": 17.25, "y": 1.5}, + + {"label": "Num Lock", "matrix": [6, 11], "x": 18.5, "y": 1.5}, + {"label": "/", "matrix": [6, 12], "x": 19.5, "y": 1.5}, + {"label": "*", "matrix": [6, 13], "x": 20.5, "y": 1.5}, + {"label": "-", "matrix": [7, 13], "x": 21.5, "y": 1.5}, + + {"label": "Tab", "matrix": [1, 2], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [4, 2], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [4, 3], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [4, 4], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [4, 5], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [4, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [4, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [4, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [4, 10], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [1, 10], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [1, 8], "x": 12.5, "y": 2.5}, + + {"label": "Delete", "matrix": [2, 11], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [3, 14], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [3, 13], "x": 17.25, "y": 2.5}, + + {"label": "7", "matrix": [4, 11], "x": 18.5, "y": 2.5}, + {"label": "8", "matrix": [4, 12], "x": 19.5, "y": 2.5}, + {"label": "9", "matrix": [4, 13], "x": 20.5, "y": 2.5}, + {"label": "+", "matrix": [4, 14], "x": 21.5, "y": 2.5, "h": 2}, + + {"label": "Caps Lock", "matrix": [1, 3], "x": 0, "y": 3.5, "w": 1.5}, + {"label": "A", "matrix": [5, 2], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [5, 3], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [5, 4], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [5, 5], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [0, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [0, 7], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [5, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [5, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [5, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [5, 10], "x": 10.75, "y": 3.5}, + {"label": "\"", "matrix": [0, 10], "x": 11.75, "y": 3.5}, + {"label": "NUHS", "matrix": [6, 10], "x": 12.75, "y": 3.5}, + {"label": "Enter", "matrix": [6, 6], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + + {"label": "4", "matrix": [1, 11], "x": 18.5, "y": 3.5}, + {"label": "5", "matrix": [1, 12], "x": 19.5, "y": 3.5}, + {"label": "6", "matrix": [1, 13], "x": 20.5, "y": 3.5}, + + {"label": "Shift", "matrix": [1, 1], "x": 0, "y": 4.5, "w": 1.25}, + {"label": "NUBS", "matrix": [0, 3], "x": 1.25, "y": 4.5}, + {"label": "Z", "matrix": [6, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [6, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [6, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [6, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [7, 5], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [7, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [6, 7], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [6, 8], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [6, 9], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [7, 10], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [6, 1], "x": 12.25, "y": 4.5, "w": 2.75}, + + {"label": "\u2191", "matrix": [0, 14], "x": 16.25, "y": 4.5}, + + {"label": "1", "matrix": [5, 11], "x": 18.5, "y": 4.5}, + {"label": "2", "matrix": [5, 12], "x": 19.5, "y": 4.5}, + {"label": "3", "matrix": [5, 13], "x": 20.5, "y": 4.5}, + {"label": "Enter", "matrix": [5, 14], "x": 21.5, "y": 4.5, "h": 2}, + + {"label": "Ctrl", "matrix": [2, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"label": "Alt", "matrix": [0, 15], "x": 2.5, "y": 5.5, "w": 1.5}, + {"matrix": [7, 6], "x": 4, "y": 5.5, "w": 7}, + {"label": "Alt", "matrix": [7, 15], "x": 11, "y": 5.5, "w": 1.5}, + {"label": "Ctrl", "matrix": [6, 0], "x": 13.5, "y": 5.5, "w": 1.5}, + + {"label": "\u2190", "matrix": [7, 14], "x": 15.25, "y": 5.5}, + {"label": "\u2193", "matrix": [7, 11], "x": 16.25, "y": 5.5}, + {"label": "\u2192", "matrix": [7, 12], "x": 17.25, "y": 5.5}, + + {"label": "0", "matrix": [0, 12], "x": 18.5, "y": 5.5, "w": 2}, + {"label": ".", "matrix": [0, 13], "x": 20.5, "y": 5.5} + ] + }, + "LAYOUT_all": { + "layout": [ + {"label": "Esc", "matrix": [0, 2], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [2, 3], "x": 2, "y": 0}, + {"label": "F2", "matrix": [2, 4], "x": 3, "y": 0}, + {"label": "F3", "matrix": [1, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 8], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [1, 9], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [2, 9], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [2, 6], "x": 11, "y": 0}, + {"label": "F10", "matrix": [3, 6], "x": 12, "y": 0}, + {"label": "F11", "matrix": [3, 11], "x": 13, "y": 0}, + {"label": "F12", "matrix": [3, 12], "x": 14, "y": 0}, + + {"label": "PrtSc", "matrix": [3, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [4, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [6, 14], "x": 17.25, "y": 0}, + + {"label": "~", "matrix": [2, 2], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [3, 2], "x": 1, "y": 1.5}, + {"label": "@", "matrix": [3, 3], "x": 2, "y": 1.5}, + {"label": "#", "matrix": [3, 4], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [3, 5], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [2, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [2, 7], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [3, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [3, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [3, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [3, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [2, 10], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [2, 8], "x": 12, "y": 1.5}, + {"label": "Backspace", "matrix": [1, 6], "x": 13, "y": 1.5, "w": 2}, + + {"label": "Insert", "matrix": [2, 12], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [2, 14], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [2, 13], "x": 17.25, "y": 1.5}, + + {"label": "Num Lock", "matrix": [6, 11], "x": 18.5, "y": 1.5}, + {"label": "/", "matrix": [6, 12], "x": 19.5, "y": 1.5}, + {"label": "*", "matrix": [6, 13], "x": 20.5, "y": 1.5}, + {"label": "-", "matrix": [7, 13], "x": 21.5, "y": 1.5}, + + {"label": "Tab", "matrix": [1, 2], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [4, 2], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [4, 3], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [4, 4], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [4, 5], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [4, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [4, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [4, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [4, 10], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [1, 10], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [1, 8], "x": 12.5, "y": 2.5}, + {"label": "|", "matrix": [5, 6], "x": 13.5, "y": 2.5, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 11], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [3, 14], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [3, 13], "x": 17.25, "y": 2.5}, + + {"label": "7", "matrix": [4, 11], "x": 18.5, "y": 2.5}, + {"label": "8", "matrix": [4, 12], "x": 19.5, "y": 2.5}, + {"label": "9", "matrix": [4, 13], "x": 20.5, "y": 2.5}, + {"label": "+", "matrix": [4, 14], "x": 21.5, "y": 2.5, "h": 2}, + + {"label": "Caps Lock", "matrix": [1, 3], "x": 0, "y": 3.5, "w": 1.5}, + {"label": "A", "matrix": [5, 2], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [5, 3], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [5, 4], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [5, 5], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [0, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [0, 7], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [5, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [5, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [5, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [5, 10], "x": 10.75, "y": 3.5}, + {"label": "\"", "matrix": [0, 10], "x": 11.75, "y": 3.5}, + {"label": "NUHS", "matrix": [6, 10], "x": 12.75, "y": 3.5}, + {"label": "Enter", "matrix": [6, 6], "x": 13.75, "y": 3.5, "w": 1.25}, + + {"label": "4", "matrix": [1, 11], "x": 18.5, "y": 3.5}, + {"label": "5", "matrix": [1, 12], "x": 19.5, "y": 3.5}, + {"label": "6", "matrix": [1, 13], "x": 20.5, "y": 3.5}, + + {"label": "Shift", "matrix": [1, 1], "x": 0, "y": 4.5, "w": 1.25}, + {"label": "NUBS", "matrix": [0, 3], "x": 1.25, "y": 4.5}, + {"label": "Z", "matrix": [6, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [6, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [6, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [6, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [7, 5], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [7, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [6, 7], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [6, 8], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [6, 9], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [7, 10], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [6, 1], "x": 12.25, "y": 4.5, "w": 2.75}, + + {"label": "\u2191", "matrix": [0, 14], "x": 16.25, "y": 4.5}, + + {"label": "1", "matrix": [5, 11], "x": 18.5, "y": 4.5}, + {"label": "2", "matrix": [5, 12], "x": 19.5, "y": 4.5}, + {"label": "3", "matrix": [5, 13], "x": 20.5, "y": 4.5}, + {"label": "Enter", "matrix": [5, 14], "x": 21.5, "y": 4.5, "h": 2}, + + {"label": "Ctrl", "matrix": [2, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"label": "Alt", "matrix": [0, 15], "x": 2.5, "y": 5.5, "w": 1.5}, + {"matrix": [7, 6], "x": 4, "y": 5.5, "w": 7}, + {"label": "Alt", "matrix": [7, 15], "x": 11, "y": 5.5, "w": 1.5}, + {"label": "Ctrl", "matrix": [6, 0], "x": 13.5, "y": 5.5, "w": 1.5}, + + {"label": "\u2190", "matrix": [7, 14], "x": 15.25, "y": 5.5}, + {"label": "\u2193", "matrix": [7, 11], "x": 16.25, "y": 5.5}, + {"label": "\u2192", "matrix": [7, 12], "x": 17.25, "y": 5.5}, + + {"label": "0", "matrix": [0, 12], "x": 18.5, "y": 5.5, "w": 2}, + {"label": ".", "matrix": [0, 13], "x": 20.5, "y": 5.5} + ] + } + } +} diff --git a/keyboards/ibm/model_m/ctrl_m/keymaps/default/keymap.c b/keyboards/ibm/model_m/ctrl_m/keymaps/default/keymap.c new file mode 100644 index 00000000000..741cb1c4ba7 --- /dev/null +++ b/keyboards/ibm/model_m/ctrl_m/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2020 Michael Schwingen + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( /* Base layer - standard layout without any special functions */ + KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_INS , KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , KC_END , KC_PGDN, KC_P7, KC_P8 , KC_P9 , KC_PPLS, + KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT , KC_P4, KC_P5 , KC_P6 , + KC_LSFT, KC_NUBS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_P1, KC_P2 , KC_P3 , KC_PENT, + KC_LCTL, KC_LALT, KC_SPC , KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ) +}; diff --git a/keyboards/ibm/model_m/ctrl_m/readme.md b/keyboards/ibm/model_m/ctrl_m/readme.md new file mode 100644 index 00000000000..aab3a685f2e --- /dev/null +++ b/keyboards/ibm/model_m/ctrl_m/readme.md @@ -0,0 +1,27 @@ +# ctrl-M + +![ctrl-M PCB](https://i.imgur.com/wUqY8N3.jpeg) + +This is a configuration of QMK intended to be used with the [ctrl-M controller](https://github.com/nuess0r/ctrl-M). Many thanks to iw0rm3r, ashpil, mschwingen and all QMK contributors for working on similar projects and providing the foundation for this! + +* Keyboard Maintainer: [nuess0r](https://github.com/nuess0r) +* Hardware Supported: [ctrl-M](https://github.com/nuess0r/ctrl-m) +* Hardware Availability: [tindie shop](https://www.tindie.com/products/brain4free/ctrl-m/) + +Example how to compile for this keyboard (after setting up your build environment): + + make ibm/model_m/ctrl_m:default + +Flashing example for this keyboard: + + make ibm/model_m/ctrl_m:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the Escape key and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB and plug in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 39958fe85458ac9cc29694a0bb49c12e1b561d71 Mon Sep 17 00:00:00 2001 From: Lostdotfish Date: Mon, 9 Dec 2024 06:31:49 +0000 Subject: [PATCH 109/365] [Keyboard] Add Orbweaver (#24692) * Create README.md * Add files via upload * Create keymap.c * Update README.md * Update keyboards/lostdotfish/rp2040_orbweaver/README.md Co-authored-by: Drashna Jaelre * Update keyboards/lostdotfish/rp2040_orbweaver/keyboard.json Co-authored-by: Drashna Jaelre * Rename README.md to readme.md * Update readme.md * Update keyboards/lostdotfish/rp2040_orbweaver/keyboard.json Co-authored-by: Drashna Jaelre * Update keyboards/lostdotfish/rp2040_orbweaver/mcuconf.h Co-authored-by: Drashna Jaelre * Update keyboard.json * Update keyboards/lostdotfish/rp2040_orbweaver/config.h Co-authored-by: Drashna Jaelre * Update keyboard.json * Update mcuconf.h * Update rp2040_orbweaver.c * Delete keyboards/lostdotfish/rp2040_orbweaver/halconf.h * Update config.h * Update readme.md * Update readme.md * Update readme.md * Update keyboards/lostdotfish/rp2040_orbweaver/keyboard.json --------- Co-authored-by: Drashna Jaelre Co-authored-by: jack --- .../lostdotfish/rp2040_orbweaver/config.h | 21 +++ .../rp2040_orbweaver/keyboard.json | 141 ++++++++++++++++++ .../rp2040_orbweaver/keymaps/default/keymap.c | 78 ++++++++++ .../lostdotfish/rp2040_orbweaver/mcuconf.h | 9 ++ .../lostdotfish/rp2040_orbweaver/readme.md | 51 +++++++ .../rp2040_orbweaver/rp2040_orbweaver.c | 64 ++++++++ 6 files changed, 364 insertions(+) create mode 100644 keyboards/lostdotfish/rp2040_orbweaver/config.h create mode 100644 keyboards/lostdotfish/rp2040_orbweaver/keyboard.json create mode 100644 keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c create mode 100644 keyboards/lostdotfish/rp2040_orbweaver/mcuconf.h create mode 100644 keyboards/lostdotfish/rp2040_orbweaver/readme.md create mode 100644 keyboards/lostdotfish/rp2040_orbweaver/rp2040_orbweaver.c diff --git a/keyboards/lostdotfish/rp2040_orbweaver/config.h b/keyboards/lostdotfish/rp2040_orbweaver/config.h new file mode 100644 index 00000000000..da2709dc5b3 --- /dev/null +++ b/keyboards/lostdotfish/rp2040_orbweaver/config.h @@ -0,0 +1,21 @@ +/* Copyright 2024 lostdotfish +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#pragma once +#define I2C_DRIVER I2CD0 +#define I2C1_SDA_PIN GP12 +#define I2C1_SCL_PIN GP13 +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND diff --git a/keyboards/lostdotfish/rp2040_orbweaver/keyboard.json b/keyboards/lostdotfish/rp2040_orbweaver/keyboard.json new file mode 100644 index 00000000000..b711d9c4a89 --- /dev/null +++ b/keyboards/lostdotfish/rp2040_orbweaver/keyboard.json @@ -0,0 +1,141 @@ + +{ + "manufacturer": "Lostdotfish", + "keyboard_name": "rp2040_orbweaver", + "maintainer": "Lostdotfish", + "url": "https://geekhack.org/index.php?topic=124092.0", + "bootloader": "rp2040", + "processor": "RP2040", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "rgb_matrix": { + "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"x": 20, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 40, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 0, "y": 20, "flags": 4}, + {"matrix": [1, 0], "x": 20, "y": 20, "flags": 4}, + {"matrix": [1, 1], "x": 40, "y": 20, "flags": 4}, + {"matrix": [1, 2], "x": 60, "y": 20, "flags": 4}, + {"matrix": [1, 3], "x": 80, "y": 20, "flags": 4}, + {"matrix": [1, 4], "x": 0, "y": 40, "flags": 4}, + {"matrix": [2, 0], "x": 20, "y": 40, "flags": 4}, + {"matrix": [2, 1], "x": 40, "y": 40, "flags": 4}, + {"matrix": [2, 2], "x": 60, "y": 40, "flags": 4}, + {"matrix": [2, 3], "x": 80, "y": 40, "flags": 4}, + {"matrix": [2, 4], "x": 0, "y": 60, "flags": 4}, + {"matrix": [3, 0], "x": 20, "y": 60, "flags": 4}, + {"matrix": [3, 1], "x": 40, "y": 60, "flags": 4}, + {"matrix": [3, 2], "x": 60, "y": 60, "flags": 4}, + {"matrix": [3, 4], "x": 80, "y": 60, "flags": 4} + ], + "led_flush_limit": 26, + "led_process_limit": 5, + "max_brightness": 220, + "sleep": true, + "center_point": [40, 30], + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "flower_blooming": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_fractal": true, + "pixel_flow": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true, + "starlight": true, + "starlight_dual_sat": true, + "starlight_dual_hue": true, + "riverflow": true + } +}, + "matrix_pins": { + "rows": ["GP0", "GP1", "GP2", "GP3", "GP10", "GP9"], + "cols": ["GP4", "GP5", "GP8", "GP7", "GP6"] + }, + + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [4, 3], "x": 3, "y": 4}, + {"matrix": [4, 4], "x": 4, "y": 4}, + {"matrix": [5, 0], "x": 0, "y": 5}, + ] + } + } +} diff --git a/keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c b/keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c new file mode 100644 index 00000000000..f98f656bc9f --- /dev/null +++ b/keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c @@ -0,0 +1,78 @@ +/* Copyright 2024 lostdotfish +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include QMK_KEYBOARD_H + + +enum orbweaver_layers { + _DEFAULT, + _LETTERS, + _CONTROL +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +//generic default keymap with Razor defaults (+ 20 shifts layer) + + [_DEFAULT] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, + KC_LSFT, KC_Z, KC_X, KC_C, TO(1), + KC_LALT, KC_UP, KC_DOWN, KC_RIGHT, KC_LEFT, + KC_SPACE + ), + +//Second example keymap with all modifier keys replaced with numbers or letters + + [_LETTERS] = LAYOUT( + KC_0, KC_1, KC_2, KC_3, KC_4, + KC_I, KC_Q, KC_W, KC_E, KC_R, + KC_J, KC_A, KC_S, KC_D, KC_F, + KC_K, KC_Z, KC_X, KC_C, TO(2), + KC_L, KC_UP, KC_DOWN, KC_RIGHT, KC_LEFT, + KC_SPACE + ), + +//, RGB Contol Keymap + [_CONTROL] = LAYOUT( + RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, + RM_PREV, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, + RM_TOGG, KC_A, KC_S, KC_D, KC_F, + KC_K, KC_Z, KC_X, KC_C, TO(0), + KC_L, KC_UP, KC_DOWN, KC_RIGHT, KC_LEFT, + KC_SPACE + ) + +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + gpio_write_pin_high(GP23); + gpio_write_pin_high(GP24); + gpio_write_pin_high(GP25); + switch (get_highest_layer(state)) { + case _DEFAULT: + gpio_write_pin_low(GP23); + break; + case _LETTERS: + gpio_write_pin_low(GP25); + break; + case _CONTROL: + gpio_write_pin_low(GP24); + break; + } + return state; +} diff --git a/keyboards/lostdotfish/rp2040_orbweaver/mcuconf.h b/keyboards/lostdotfish/rp2040_orbweaver/mcuconf.h new file mode 100644 index 00000000000..f9b642b1f4e --- /dev/null +++ b/keyboards/lostdotfish/rp2040_orbweaver/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2023 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef RP_I2C_USE_I2C0 +#define RP_I2C_USE_I2C0 TRUE diff --git a/keyboards/lostdotfish/rp2040_orbweaver/readme.md b/keyboards/lostdotfish/rp2040_orbweaver/readme.md new file mode 100644 index 00000000000..0a4a64d7d61 --- /dev/null +++ b/keyboards/lostdotfish/rp2040_orbweaver/readme.md @@ -0,0 +1,51 @@ +# rp2040_orbweaver +QMK firmware for RP2040 based MCU replacement PCB for the Razer Orbweaver gaming keypad + +![RP2040 Orbweaver](https://i.imgur.com/GCPRUbs.png) + + +This firmware is for the Razer Orbweaver Chroma keypad with a custom, plug and play, RP2040 MCU PCB. For installation instructions and board availability see [geekhack](https://geekhack.org/index.php?topic=124092.0). + +The firmware controls a 6x5 key matrix (4x5 keypad + 6 additional keys on the thumb pad and up to 4 additional keys added by user). It also controls a IS31FL3731 RGB Matrix controller (on the Chroma model) via I2C interface. This requires a single I2C Driver with 20 common anode RGB LEDs. + +Key 20 (bottom right) is used to switch layers. + +The default key map provides 3 preset layers. + +(layer 0) is a generic layer based on the original Razer defaults. +(layer 1) replaces modifier keys with letter keys. +(layer 2) replaces the 2 top rows with RGB control keys. + +The three LEDs on the thumb pad indicate the active layer. + +Blue = layer 0 +Green = layer 1 +Yellow = layer 3 + +All LEDs will be off when any other (user added) layout is activated + +A set of RGB animations are included in confg.h. These are controlled by activating the Yellow layer and using keys 01 - 11 (11 toggles the lighting on and off - see /keymaps/default/keymap.c for more information) + +Many thanks to a_marmot. Without his original handwired project, this board would not have been possible. His original work can be found here. [geekhack](https://geekhack.org/index.php?topic=119396.0). + +* Keyboard Maintainer: [Lostdotfish](https://github.com/Lostdotfish) +* Hardware Supported: RP2040 + IS31FL3731 +* Hardware Availability: [https://geekhack.org/index.php?topic=124092.0](https://geekhack.org/index.php?topic=124092.0) + +Make example for this keyboard (after setting up your build environment): + + make lostdotfish/rp2040_orbweaver:default + +Flashing example for this keyboard: + + make lostdotfish/rp2040_orbweaver:default:flash + + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* Press and hold the upper left hand key on the main keyboard while you plug in the USB. +* Press and release the boot button on the top of the RP2040_Orbweaver v2.0 inside the modded unit. diff --git a/keyboards/lostdotfish/rp2040_orbweaver/rp2040_orbweaver.c b/keyboards/lostdotfish/rp2040_orbweaver/rp2040_orbweaver.c new file mode 100644 index 00000000000..a1ba7c8d1fa --- /dev/null +++ b/keyboards/lostdotfish/rp2040_orbweaver/rp2040_orbweaver.c @@ -0,0 +1,64 @@ +/* Copyright 2024 lostdotfish +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include "rgb_matrix.h" +#include "quantum.h" + +void keyboard_pre_init_kb(void) { + // Initialize Reset pins + + gpio_set_pin_output(GP23); + gpio_set_pin_output(GP24); + gpio_set_pin_output(GP25); + + gpio_write_pin_high(GP23); + gpio_write_pin_high(GP24); + gpio_write_pin_high(GP25); + + keyboard_pre_init_user(); +} + + + +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C9_1, C8_1, C7_1}, //top left key. + {0, C9_2, C8_2, C7_2}, + {0, C9_3, C8_3, C7_3}, + {0, C9_4, C8_4, C7_4}, + {0, C9_5, C8_5, C7_5}, //top right key. + {0, C9_6, C8_6, C7_6}, + {0, C9_7, C8_7, C6_6}, + {0, C9_8, C7_7, C6_7}, + {0, C1_8, C2_8, C3_8}, + {0, C1_7, C2_7, C3_7}, + {0, C1_6, C2_6, C3_6}, + {0, C1_5, C2_5, C3_5}, + {0, C1_4, C2_4, C3_4}, + {0, C1_3, C2_3, C3_3}, + {0, C1_2, C2_2, C4_3}, + {0, C1_1, C3_2, C4_2}, //lower left key + {0, C9_9, C8_9, C7_9}, + {0, C9_10, C8_10, C7_10}, + {0, C9_11, C8_11, C7_11}, + {0, C9_12, C8_12, C7_12} //lower right key + +}; From 388c3c6d1256a2b66a3ac23d28d8f8937ffdc039 Mon Sep 17 00:00:00 2001 From: Cipulot <40441626+Cipulot@users.noreply.github.com> Date: Mon, 9 Dec 2024 07:33:40 +0100 Subject: [PATCH 110/365] Addition of EC65X (#24648) --- keyboards/cipulot/ec_65x/config.h | 69 +++ keyboards/cipulot/ec_65x/halconf.h | 23 + keyboards/cipulot/ec_65x/keyboard.json | 420 ++++++++++++++++++ .../ec_65x/keymaps/65_ansi_blocker/keymap.c | 42 ++ .../keymaps/65_ansi_blocker_tsangan/keymap.c | 42 ++ .../ec_65x/keymaps/65_iso_blocker/keymap.c | 42 ++ .../keymaps/65_iso_blocker_tsangan/keymap.c | 42 ++ .../cipulot/ec_65x/keymaps/default/keymap.c | 42 ++ keyboards/cipulot/ec_65x/mcuconf.h | 25 ++ keyboards/cipulot/ec_65x/post_rules.mk | 1 + keyboards/cipulot/ec_65x/readme.md | 26 ++ keyboards/cipulot/ec_65x/rules.mk | 1 + 12 files changed, 775 insertions(+) create mode 100644 keyboards/cipulot/ec_65x/config.h create mode 100644 keyboards/cipulot/ec_65x/halconf.h create mode 100644 keyboards/cipulot/ec_65x/keyboard.json create mode 100644 keyboards/cipulot/ec_65x/keymaps/65_ansi_blocker/keymap.c create mode 100644 keyboards/cipulot/ec_65x/keymaps/65_ansi_blocker_tsangan/keymap.c create mode 100644 keyboards/cipulot/ec_65x/keymaps/65_iso_blocker/keymap.c create mode 100644 keyboards/cipulot/ec_65x/keymaps/65_iso_blocker_tsangan/keymap.c create mode 100644 keyboards/cipulot/ec_65x/keymaps/default/keymap.c create mode 100644 keyboards/cipulot/ec_65x/mcuconf.h create mode 100644 keyboards/cipulot/ec_65x/post_rules.mk create mode 100644 keyboards/cipulot/ec_65x/readme.md create mode 100644 keyboards/cipulot/ec_65x/rules.mk diff --git a/keyboards/cipulot/ec_65x/config.h b/keyboards/cipulot/ec_65x/config.h new file mode 100644 index 00000000000..142f7a140ec --- /dev/null +++ b/keyboards/cipulot/ec_65x/config.h @@ -0,0 +1,69 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +#define MATRIX_ROW_PINS \ + { A8, A15, B13, B8, B9} + +#define AMUX_COUNT 1 +#define AMUX_MAX_COLS_COUNT 16 + +#define AMUX_EN_PINS \ + { B5 } + +#define AMUX_SEL_PINS \ + { B6, B7, B4, B3 } + +#define AMUX_COL_CHANNELS_SIZES \ + { 16 } + +#define AMUX_0_COL_CHANNELS \ + { 7, 6, 5, 4, 3, 2, 1, 0, 8, 15, 14, 12, 11, 13, 9, 10} + +#define AMUX_COL_CHANNELS AMUX_0_COL_CHANNELS + +#define DISCHARGE_PIN A2 +#define ANALOG_PORT A3 + +#define DEFAULT_ACTUATION_MODE 0 +#define DEFAULT_MODE_0_ACTUATION_LEVEL 550 +#define DEFAULT_MODE_0_RELEASE_LEVEL 500 +#define DEFAULT_MODE_1_INITIAL_DEADZONE_OFFSET DEFAULT_MODE_0_ACTUATION_LEVEL +#define DEFAULT_MODE_1_ACTUATION_OFFSET 70 +#define DEFAULT_MODE_1_RELEASE_OFFSET 70 +#define DEFAULT_EXTREMUM 1023 +#define EXPECTED_NOISE_FLOOR 0 +#define NOISE_FLOOR_THRESHOLD 50 +#define BOTTOMING_CALIBRATION_THRESHOLD 50 +#define DEFAULT_NOISE_FLOOR_SAMPLING_COUNT 30 +#define DEFAULT_BOTTOMING_READING 1023 +#define DEFAULT_CALIBRATION_STARTER true + +#define DISCHARGE_TIME 10 + +#define EECONFIG_KB_DATA_SIZE 169 + +// PWM driver with direct memory access (DMA) support +#define WS2812_PWM_COMPLEMENTARY_OUTPUT +#define WS2812_PWM_DRIVER PWMD1 +#define WS2812_PWM_CHANNEL 3 +#define WS2812_PWM_PAL_MODE 1 +#define WS2812_DMA_STREAM STM32_DMA2_STREAM5 +#define WS2812_DMA_CHANNEL 6 diff --git a/keyboards/cipulot/ec_65x/halconf.h b/keyboards/cipulot/ec_65x/halconf.h new file mode 100644 index 00000000000..fb0f77d82f9 --- /dev/null +++ b/keyboards/cipulot/ec_65x/halconf.h @@ -0,0 +1,23 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_ADC TRUE +#define HAL_USE_PAL TRUE +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/cipulot/ec_65x/keyboard.json b/keyboards/cipulot/ec_65x/keyboard.json new file mode 100644 index 00000000000..2baf3ea5f01 --- /dev/null +++ b/keyboards/cipulot/ec_65x/keyboard.json @@ -0,0 +1,420 @@ +{ + "manufacturer": "Cipulot", + "keyboard_name": "EC 65X", + "maintainer": "Cipulot", + "bootloader": "stm32-dfu", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "eeprom": { + "wear_leveling": { + "backing_size": 4096 + } + }, + "features": { + "bootmagic": false, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "processor": "STM32F411", + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "led_count": 19 + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x6BD1", + "shared_endpoint": { + "keyboard": true + }, + "vid": "0x6369" + }, + "ws2812": { + "driver": "pwm", + "pin": "B15" + }, + "layouts": { + "LAYOUT_65_ansi_blocker": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 15], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 15], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [1, 15], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 15], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [1, 15], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 15], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 0.75}, + {"matrix": [1, 14], "x": 14.25, "y": 1, "w": 0.75}, + {"matrix": [1, 15], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25}, + {"matrix": [2, 15], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 4], "x": 3.75, "y": 4, "w": 2.25}, + {"matrix": [4, 6], "x": 6, "y": 4, "w": 1.25}, + {"matrix": [4, 8], "x": 7.25, "y": 4, "w": 2.75}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/cipulot/ec_65x/keymaps/65_ansi_blocker/keymap.c b/keyboards/cipulot/ec_65x/keymaps/65_ansi_blocker/keymap.c new file mode 100644 index 00000000000..9af029b2e33 --- /dev/null +++ b/keyboards/cipulot/ec_65x/keymaps/65_ansi_blocker/keymap.c @@ -0,0 +1,42 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_65_ansi_blocker( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_65_ansi_blocker( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, MO(2), _______, _______, _______), + + [2] = LAYOUT_65_ansi_blocker( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_65x/keymaps/65_ansi_blocker_tsangan/keymap.c b/keyboards/cipulot/ec_65x/keymaps/65_ansi_blocker_tsangan/keymap.c new file mode 100644 index 00000000000..69f17a0ae47 --- /dev/null +++ b/keyboards/cipulot/ec_65x/keymaps/65_ansi_blocker_tsangan/keymap.c @@ -0,0 +1,42 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_65_ansi_blocker_tsangan( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_65_ansi_blocker_tsangan( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, MO(2), _______, _______, _______), + + [2] = LAYOUT_65_ansi_blocker_tsangan( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_65x/keymaps/65_iso_blocker/keymap.c b/keyboards/cipulot/ec_65x/keymaps/65_iso_blocker/keymap.c new file mode 100644 index 00000000000..0d695c2978c --- /dev/null +++ b/keyboards/cipulot/ec_65x/keymaps/65_iso_blocker/keymap.c @@ -0,0 +1,42 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_65_iso_blocker( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENTER, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_PGDN, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_65_iso_blocker( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, MO(2), _______, _______, _______), + + [2] = LAYOUT_65_iso_blocker( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_65x/keymaps/65_iso_blocker_tsangan/keymap.c b/keyboards/cipulot/ec_65x/keymaps/65_iso_blocker_tsangan/keymap.c new file mode 100644 index 00000000000..867167cdea6 --- /dev/null +++ b/keyboards/cipulot/ec_65x/keymaps/65_iso_blocker_tsangan/keymap.c @@ -0,0 +1,42 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_65_iso_blocker_tsangan( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENTER, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_PGDN, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_65_iso_blocker_tsangan( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, MO(2), _______, _______, _______), + + [2] = LAYOUT_65_iso_blocker_tsangan( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_65x/keymaps/default/keymap.c b/keyboards/cipulot/ec_65x/keymaps/default/keymap.c new file mode 100644 index 00000000000..e7fb368b0c7 --- /dev/null +++ b/keyboards/cipulot/ec_65x/keymaps/default/keymap.c @@ -0,0 +1,42 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_all( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_ENTER, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENTER, KC_PGDN, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_all( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______), + + [2] = LAYOUT_all( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_65x/mcuconf.h b/keyboards/cipulot/ec_65x/mcuconf.h new file mode 100644 index 00000000000..88185d8e9da --- /dev/null +++ b/keyboards/cipulot/ec_65x/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE + +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/cipulot/ec_65x/post_rules.mk b/keyboards/cipulot/ec_65x/post_rules.mk new file mode 100644 index 00000000000..5dba48cc5fd --- /dev/null +++ b/keyboards/cipulot/ec_65x/post_rules.mk @@ -0,0 +1 @@ +include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/ec_65x/readme.md b/keyboards/cipulot/ec_65x/readme.md new file mode 100644 index 00000000000..786d2b45042 --- /dev/null +++ b/keyboards/cipulot/ec_65x/readme.md @@ -0,0 +1,26 @@ +# EC 65X + +![EC 65X PCB](https://i.imgur.com/8B86zsO.png) + +Universal 65% Electrostatic Capacitive PCB, with multi-layout support. + +* Keyboard Maintainer: [cipulot](https://github.com/cipulot) +* Hardware Supported: EC 65X +* Hardware Availability: TBD + +Make example for this keyboard (after setting up your build environment): + + make cipulot/ec_66x:default + +Flashing example for this keyboard: + + make cipulot/ec_66x:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Physical button**: Long press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cipulot/ec_65x/rules.mk b/keyboards/cipulot/ec_65x/rules.mk new file mode 100644 index 00000000000..3aa0e2bf061 --- /dev/null +++ b/keyboards/cipulot/ec_65x/rules.mk @@ -0,0 +1 @@ +OPT = 2 From 847257c3c757c475eb9f47493252cc55b0e08f51 Mon Sep 17 00:00:00 2001 From: Cipulot <40441626+Cipulot@users.noreply.github.com> Date: Mon, 9 Dec 2024 07:34:07 +0100 Subject: [PATCH 111/365] Addition of EC TKL X (#24647) --- keyboards/cipulot/ec_tkl_x/config.h | 68 ++ keyboards/cipulot/ec_tkl_x/halconf.h | 23 + keyboards/cipulot/ec_tkl_x/keyboard.json | 714 ++++++++++++++++++ .../cipulot/ec_tkl_x/keymaps/default/keymap.c | 45 ++ .../keymaps/tkl_ansi_tsangan/keymap.c | 45 ++ .../keymaps/tkl_f13_ansi_tsangan/keymap.c | 45 ++ .../keymaps/tkl_f13_iso_tsangan/keymap.c | 45 ++ .../ec_tkl_x/keymaps/tkl_f13_jis/keymap.c | 47 ++ .../ec_tkl_x/keymaps/tkl_iso_tsangan/keymap.c | 45 ++ .../cipulot/ec_tkl_x/keymaps/tkl_jis/keymap.c | 47 ++ keyboards/cipulot/ec_tkl_x/mcuconf.h | 25 + keyboards/cipulot/ec_tkl_x/post_rules.mk | 1 + keyboards/cipulot/ec_tkl_x/readme.md | 26 + keyboards/cipulot/ec_tkl_x/rules.mk | 1 + 14 files changed, 1177 insertions(+) create mode 100644 keyboards/cipulot/ec_tkl_x/config.h create mode 100644 keyboards/cipulot/ec_tkl_x/halconf.h create mode 100644 keyboards/cipulot/ec_tkl_x/keyboard.json create mode 100644 keyboards/cipulot/ec_tkl_x/keymaps/default/keymap.c create mode 100644 keyboards/cipulot/ec_tkl_x/keymaps/tkl_ansi_tsangan/keymap.c create mode 100644 keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_ansi_tsangan/keymap.c create mode 100644 keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_iso_tsangan/keymap.c create mode 100644 keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_jis/keymap.c create mode 100644 keyboards/cipulot/ec_tkl_x/keymaps/tkl_iso_tsangan/keymap.c create mode 100644 keyboards/cipulot/ec_tkl_x/keymaps/tkl_jis/keymap.c create mode 100644 keyboards/cipulot/ec_tkl_x/mcuconf.h create mode 100644 keyboards/cipulot/ec_tkl_x/post_rules.mk create mode 100644 keyboards/cipulot/ec_tkl_x/readme.md create mode 100644 keyboards/cipulot/ec_tkl_x/rules.mk diff --git a/keyboards/cipulot/ec_tkl_x/config.h b/keyboards/cipulot/ec_tkl_x/config.h new file mode 100644 index 00000000000..04d19a5f54e --- /dev/null +++ b/keyboards/cipulot/ec_tkl_x/config.h @@ -0,0 +1,68 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define MATRIX_ROWS 6 +#define MATRIX_COLS 18 + +#define UNUSED_POSITIONS_LIST { {0, 13}, {3, 14}, {3, 15}, {3, 16}, {3, 17}, {4, 15}, {4, 17}, {5, 3}, {5, 5}, {5, 7}, {5, 10}, {5, 15} } + +#define MATRIX_ROW_PINS {A15, B5, B12, B10, B6, B7} + +#define AMUX_COUNT 2 +#define AMUX_MAX_COLS_COUNT 15 + +#define AMUX_EN_PINS {B13, A10} + +#define AMUX_SEL_PINS {A8, A9, B14, B15} + +#define AMUX_COL_CHANNELS_SIZES {15, 3} + +#define AMUX_0_COL_CHANNELS {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14} + +#define AMUX_1_COL_CHANNELS {3, 0, 1} + +#define AMUX_COL_CHANNELS AMUX_0_COL_CHANNELS, AMUX_1_COL_CHANNELS + +#define DISCHARGE_PIN A4 +#define ANALOG_PORT A2 + +#define DEFAULT_ACTUATION_MODE 0 +#define DEFAULT_MODE_0_ACTUATION_LEVEL 550 +#define DEFAULT_MODE_0_RELEASE_LEVEL 500 +#define DEFAULT_MODE_1_INITIAL_DEADZONE_OFFSET DEFAULT_MODE_0_ACTUATION_LEVEL +#define DEFAULT_MODE_1_ACTUATION_OFFSET 70 +#define DEFAULT_MODE_1_RELEASE_OFFSET 70 +#define DEFAULT_EXTREMUM 1023 +#define EXPECTED_NOISE_FLOOR 0 +#define NOISE_FLOOR_THRESHOLD 50 +#define BOTTOMING_CALIBRATION_THRESHOLD 50 +#define DEFAULT_NOISE_FLOOR_SAMPLING_COUNT 30 +#define DEFAULT_BOTTOMING_READING 1023 +#define DEFAULT_CALIBRATION_STARTER true + +#define DISCHARGE_TIME 10 + +// #define DEBUG_MATRIX_SCAN_RATE +#define EECONFIG_KB_DATA_SIZE 225 + +// PWM driver with direct memory access (DMA) support +#define WS2812_PWM_DRIVER PWMD3 +#define WS2812_PWM_CHANNEL 1 +#define WS2812_PWM_PAL_MODE 2 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 +#define WS2812_DMA_CHANNEL 5 diff --git a/keyboards/cipulot/ec_tkl_x/halconf.h b/keyboards/cipulot/ec_tkl_x/halconf.h new file mode 100644 index 00000000000..fb0f77d82f9 --- /dev/null +++ b/keyboards/cipulot/ec_tkl_x/halconf.h @@ -0,0 +1,23 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_ADC TRUE +#define HAL_USE_PAL TRUE +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/cipulot/ec_tkl_x/keyboard.json b/keyboards/cipulot/ec_tkl_x/keyboard.json new file mode 100644 index 00000000000..9149fb1d3bc --- /dev/null +++ b/keyboards/cipulot/ec_tkl_x/keyboard.json @@ -0,0 +1,714 @@ +{ + "manufacturer": "Cipulot", + "keyboard_name": "EC TKL X", + "maintainer": "Cipulot", + "bootloader": "stm32-dfu", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "eeprom": { + "wear_leveling": { + "backing_size": 8192 + } + }, + "features": { + "bootmagic": false, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "processor": "STM32F411", + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "led_count": 22 + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x6BC8", + "shared_endpoint": { + "keyboard": true + }, + "vid": "0x6369" + }, + "ws2812": { + "driver": "pwm", + "pin": "B4" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 0.75}, + {"matrix": [2, 14], "x": 14.25, "y": 2.25, "w": 0.75}, + {"matrix": [2, 15], "x": 15.25, "y": 2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [3, 13], "x": 13.75, "y": 3.25, "w": 1.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25}, + {"matrix": [4, 13], "x": 13.25, "y": 4.25, "w": 0.75}, + {"matrix": [4, 14], "x": 14, "y": 4.25}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 4], "x": 4, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 5.5, "y": 5.25, "w": 2.5}, + {"matrix": [5, 8], "x": 8, "y": 5.25, "w": 1.5}, + {"matrix": [5, 9], "x": 9.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 15], "x": 15.25, "y": 2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 15], "x": 15.25, "y": 2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 14], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [2, 15], "x": 15.25, "y": 2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_jis": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 14], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [2, 15], "x": 15.25, "y": 2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25}, + {"matrix": [4, 13], "x": 13.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 4], "x": 4, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 5.5, "y": 5.25, "w": 2.5}, + {"matrix": [5, 8], "x": 8, "y": 5.25, "w": 1.5}, + {"matrix": [5, 9], "x": 9.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 14], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [2, 15], "x": 15.25, "y": 2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_jis": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 14], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [2, 15], "x": 15.25, "y": 2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25}, + {"matrix": [4, 13], "x": 13.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 4], "x": 4, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 5.5, "y": 5.25, "w": 2.5}, + {"matrix": [5, 8], "x": 8, "y": 5.25, "w": 1.5}, + {"matrix": [5, 9], "x": 9.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/cipulot/ec_tkl_x/keymaps/default/keymap.c b/keyboards/cipulot/ec_tkl_x/keymaps/default/keymap.c new file mode 100644 index 00000000000..9a357e2cf3f --- /dev/null +++ b/keyboards/cipulot/ec_tkl_x/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_ENTER, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENTER, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______), + + [2] = LAYOUT_all( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_tkl_x/keymaps/tkl_ansi_tsangan/keymap.c b/keyboards/cipulot/ec_tkl_x/keymaps/tkl_ansi_tsangan/keymap.c new file mode 100644 index 00000000000..86b06999864 --- /dev/null +++ b/keyboards/cipulot/ec_tkl_x/keymaps/tkl_ansi_tsangan/keymap.c @@ -0,0 +1,45 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_tkl_ansi_tsangan( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_tkl_ansi_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______), + + [2] = LAYOUT_tkl_ansi_tsangan( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_ansi_tsangan/keymap.c b/keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_ansi_tsangan/keymap.c new file mode 100644 index 00000000000..eece893fe4c --- /dev/null +++ b/keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_ansi_tsangan/keymap.c @@ -0,0 +1,45 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_tkl_f13_ansi_tsangan( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_tkl_f13_ansi_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______), + + [2] = LAYOUT_tkl_f13_ansi_tsangan( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_iso_tsangan/keymap.c b/keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_iso_tsangan/keymap.c new file mode 100644 index 00000000000..9af7db90085 --- /dev/null +++ b/keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_iso_tsangan/keymap.c @@ -0,0 +1,45 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_tkl_f13_ansi_tsangan( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_tkl_f13_ansi_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______), + + [2] = LAYOUT_tkl_f13_ansi_tsangan( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_jis/keymap.c b/keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_jis/keymap.c new file mode 100644 index 00000000000..8e0fd18d0b9 --- /dev/null +++ b/keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_jis/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +#include "keymap_japanese.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_tkl_f13_jis( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SCRL, KC_PAUS, + JP_ZKHK, JP_1, JP_2, JP_3, JP_4, JP_5, JP_6, JP_7, JP_8, JP_9, JP_0, JP_MINS, JP_CIRC, JP_YEN, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, JP_Q, JP_W, JP_E, JP_R, JP_T, JP_Y, JP_U, JP_I, JP_O, JP_P, JP_AT, JP_LBRC, KC_ENTER, KC_DEL, KC_END, KC_PGDN, + JP_EISU, JP_A, JP_S, JP_D, JP_F, JP_G, JP_H, JP_J, JP_K, JP_L, JP_SCLN, JP_COLN, JP_RBRC, + KC_LSFT, JP_Z, JP_X, JP_C, JP_V, JP_B, JP_N, JP_M, JP_COMM, JP_DOT, JP_SLSH, JP_BSLS, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, JP_MHEN, KC_SPC, JP_HENK, JP_KANA, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_tkl_f13_jis( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______), + + [2] = LAYOUT_tkl_f13_jis( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_tkl_x/keymaps/tkl_iso_tsangan/keymap.c b/keyboards/cipulot/ec_tkl_x/keymaps/tkl_iso_tsangan/keymap.c new file mode 100644 index 00000000000..bae33d072dc --- /dev/null +++ b/keyboards/cipulot/ec_tkl_x/keymaps/tkl_iso_tsangan/keymap.c @@ -0,0 +1,45 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_tkl_ansi_tsangan( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_tkl_ansi_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______), + + [2] = LAYOUT_tkl_ansi_tsangan( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_tkl_x/keymaps/tkl_jis/keymap.c b/keyboards/cipulot/ec_tkl_x/keymaps/tkl_jis/keymap.c new file mode 100644 index 00000000000..f445d71d6ea --- /dev/null +++ b/keyboards/cipulot/ec_tkl_x/keymaps/tkl_jis/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +#include "keymap_japanese.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_tkl_jis( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + JP_ZKHK, JP_1, JP_2, JP_3, JP_4, JP_5, JP_6, JP_7, JP_8, JP_9, JP_0, JP_MINS, JP_CIRC, JP_YEN, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, JP_Q, JP_W, JP_E, JP_R, JP_T, JP_Y, JP_U, JP_I, JP_O, JP_P, JP_AT, JP_LBRC, KC_ENTER, KC_DEL, KC_END, KC_PGDN, + JP_EISU, JP_A, JP_S, JP_D, JP_F, JP_G, JP_H, JP_J, JP_K, JP_L, JP_SCLN, JP_COLN, JP_RBRC, + KC_LSFT, JP_Z, JP_X, JP_C, JP_V, JP_B, JP_N, JP_M, JP_COMM, JP_DOT, JP_SLSH, JP_BSLS, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, JP_MHEN, KC_SPC, JP_HENK, JP_KANA, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_tkl_jis( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______), + + [2] = LAYOUT_tkl_jis( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_tkl_x/mcuconf.h b/keyboards/cipulot/ec_tkl_x/mcuconf.h new file mode 100644 index 00000000000..99b613c493a --- /dev/null +++ b/keyboards/cipulot/ec_tkl_x/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE + +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/cipulot/ec_tkl_x/post_rules.mk b/keyboards/cipulot/ec_tkl_x/post_rules.mk new file mode 100644 index 00000000000..5dba48cc5fd --- /dev/null +++ b/keyboards/cipulot/ec_tkl_x/post_rules.mk @@ -0,0 +1 @@ +include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/ec_tkl_x/readme.md b/keyboards/cipulot/ec_tkl_x/readme.md new file mode 100644 index 00000000000..0e37c237626 --- /dev/null +++ b/keyboards/cipulot/ec_tkl_x/readme.md @@ -0,0 +1,26 @@ +# EC TKL X + +![EC TKL X PCB](https://i.imgur.com/pdkT14y.png) + +Universal TKL Electrostatic Capacitive PCB, with multi-layout support (F12/F13 version). + +* Keyboard Maintainer: [cipulot](https://github.com/cipulot) +* Hardware Supported: EC TKL X PCB +* Hardware Availability: TBD + +Make example for this keyboard (after setting up your build environment): + + make cipulot/ec_tkl_x:default + +Flashing example for this keyboard: + + make cipulot/ec_tkl_x:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Physical reset**: Long press the button on the bottom on the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cipulot/ec_tkl_x/rules.mk b/keyboards/cipulot/ec_tkl_x/rules.mk new file mode 100644 index 00000000000..3aa0e2bf061 --- /dev/null +++ b/keyboards/cipulot/ec_tkl_x/rules.mk @@ -0,0 +1 @@ +OPT = 2 From 0228806ae8d1f12fc2c254b310c73076cfbde0d5 Mon Sep 17 00:00:00 2001 From: jack Date: Wed, 11 Dec 2024 13:28:30 -0700 Subject: [PATCH 112/365] Change `new-keymap` keymap name prompt (#24701) --- lib/python/qmk/cli/new/keymap.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/python/qmk/cli/new/keymap.py b/lib/python/qmk/cli/new/keymap.py index f1df05636ce..8b7160f5f2c 100755 --- a/lib/python/qmk/cli/new/keymap.py +++ b/lib/python/qmk/cli/new/keymap.py @@ -23,19 +23,17 @@ def validate_keymap_name(name): def prompt_keyboard(): prompt = """{fg_yellow}Select Keyboard{style_reset_all} -If you`re unsure you can view a full list of supported keyboards with {fg_yellow}qmk list-keyboards{style_reset_all}. +If you're unsure you can view a full list of supported keyboards with {fg_yellow}qmk list-keyboards{style_reset_all}. Keyboard Name? """ - return question(prompt) def prompt_user(): prompt = """ {fg_yellow}Name Your Keymap{style_reset_all} -Used for maintainer, copyright, etc -Your GitHub Username? """ +Keymap name? """ return question(prompt, default=git_get_username()) From d283e27bf870aaf24d35720c8eb7f8fc9979562c Mon Sep 17 00:00:00 2001 From: Lostdotfish Date: Wed, 11 Dec 2024 20:29:36 +0000 Subject: [PATCH 113/365] [Keymap] Update rp2040_orbweaver (#24704) * Update keymap.c enhancement - power down indicator LEDs when host sleeps * Update keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c Co-authored-by: jack * Update keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c Co-authored-by: jack --------- Co-authored-by: jack --- .../rp2040_orbweaver/keymaps/default/keymap.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c b/keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c index f98f656bc9f..df59752ce0c 100644 --- a/keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c +++ b/keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c @@ -76,3 +76,15 @@ layer_state_t layer_state_set_user(layer_state_t state) { } return state; } +void suspend_power_down_kb(void) { + // code will run multiple times while keyboard is suspended + gpio_write_pin_high(GP23); + gpio_write_pin_high(GP24); + gpio_write_pin_high(GP25); + suspend_power_down_user(); +} + +void suspend_wakeup_init_kb(void) { + layer_state_set_kb(layer_state); + suspend_wakeup_init_user(); +} From d589dbb05b31a318086cbf01588230831140d95f Mon Sep 17 00:00:00 2001 From: Guido Bartolucci Date: Thu, 12 Dec 2024 12:59:07 -0500 Subject: [PATCH 114/365] Added VT-40 keyboard (#24706) * Added VT-40 keyboard * Remove commented out code. Oops Co-authored-by: jack * Change name of planck_layers to layers. Co-authored-by: jack * Update keyboards/vt40/keymaps/default/keymap.c Co-authored-by: jack * Removed unused features that I stole from the contra config * Removed unused features that I stole from the contra config * fixed lower/raise keys * make adjust layer accessible * Added adjust key for real this time * Update keyboards/vt40/keyboard.json Co-authored-by: Duncan Sutherland --------- Co-authored-by: jack Co-authored-by: Duncan Sutherland --- keyboards/vt40/keyboard.json | 91 +++++++++++++++ keyboards/vt40/keymaps/default/keymap.c | 144 ++++++++++++++++++++++++ keyboards/vt40/keymaps/default/rules.mk | 1 + keyboards/vt40/readme.md | 24 ++++ 4 files changed, 260 insertions(+) create mode 100644 keyboards/vt40/keyboard.json create mode 100644 keyboards/vt40/keymaps/default/keymap.c create mode 100644 keyboards/vt40/keymaps/default/rules.mk create mode 100644 keyboards/vt40/readme.md diff --git a/keyboards/vt40/keyboard.json b/keyboards/vt40/keyboard.json new file mode 100644 index 00000000000..4a8178b8d59 --- /dev/null +++ b/keyboards/vt40/keyboard.json @@ -0,0 +1,91 @@ +{ + "manufacturer": "vladantrhlik", + "keyboard_name": "vt40", + "maintainer": "vladantrhlik", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP6", "GP7", "GP8", "GP9", "GP10", "GP11", "GP12", "GP13", "GP21", "GP20", "GP19", "GP18", "GP22"], + "rows": ["GP2", "GP3", "GP4", "GP5"] + }, + "encoder": { + "rotary": [ + {"pin_a": "GP26", "pin_b": "GP16"}, + {"pin_a": "GP27", "pin_b": "GP17"}, + ] + }, + "processor": "RP2040", + "url": "https://github.com/vladantrhlik/VT-40", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "community_layouts": ["ortho_4x12"], + "layouts": { + "LAYOUT_ortho_4x12": { + "layout": [ + {"label": "Tab", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "Q", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "W", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "E", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "R", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "T", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "Y", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "U", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "I", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "O", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "P", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "BackSpace", "matrix": [0, 11], "x": 11, "y": 0}, + + {"label": "Esc", "matrix": [1, 0], "x": 0, "y": 1}, + {"label": "A", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "S", "matrix": [1, 2], "x": 2, "y": 1}, + {"label": "D", "matrix": [1, 3], "x": 3, "y": 1}, + {"label": "F", "matrix": [1, 4], "x": 4, "y": 1}, + {"label": "G", "matrix": [1, 5], "x": 5, "y": 1}, + {"label": "H", "matrix": [1, 6], "x": 6, "y": 1}, + {"label": "J", "matrix": [1, 7], "x": 7, "y": 1}, + {"label": "K", "matrix": [1, 8], "x": 8, "y": 1}, + {"label": "L", "matrix": [1, 9], "x": 9, "y": 1}, + {"label": ";", "matrix": [1, 10], "x": 10, "y": 1}, + {"label": "'", "matrix": [1, 11], "x": 11, "y": 1}, + + {"label": "Shift", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "Z", "matrix": [2, 1], "x": 1, "y": 2}, + {"label": "X", "matrix": [2, 2], "x": 2, "y": 2}, + {"label": "C", "matrix": [2, 3], "x": 3, "y": 2}, + {"label": "V", "matrix": [2, 4], "x": 4, "y": 2}, + {"label": "B", "matrix": [2, 5], "x": 5, "y": 2}, + {"label": "N", "matrix": [2, 6], "x": 6, "y": 2}, + {"label": "M", "matrix": [2, 7], "x": 7, "y": 2}, + {"label": ",", "matrix": [2, 8], "x": 8, "y": 2}, + {"label": ".", "matrix": [2, 9], "x": 9, "y": 2}, + {"label": "/", "matrix": [2, 10], "x": 10, "y": 2}, + {"label": "Return", "matrix": [2, 11], "x": 11, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3}, + {"label": "Ctrl", "matrix": [3, 1], "x": 1, "y": 3}, + {"label": "Alt", "matrix": [3, 2], "x": 2, "y": 3}, + {"label": "Super", "matrix": [3, 3], "x": 3, "y": 3}, + {"label": "⇓", "matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 5], "x": 5, "y": 3}, + {"matrix": [3, 6], "x": 6, "y": 3}, + {"label": "⇑", "matrix": [3, 7], "x": 7, "y": 3}, + {"label": "←", "matrix": [3, 8], "x": 8, "y": 3}, + {"label": "↓", "matrix": [3, 9], "x": 9, "y": 3}, + {"label": "↑", "matrix": [3, 10], "x": 10, "y": 3}, + {"label": "→", "matrix": [3, 11], "x": 11, "y": 3} + ] + } + } +} diff --git a/keyboards/vt40/keymaps/default/keymap.c b/keyboards/vt40/keymaps/default/keymap.c new file mode 100644 index 00000000000..95bd31083fd --- /dev/null +++ b/keyboards/vt40/keymaps/default/keymap.c @@ -0,0 +1,144 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + + +enum layers { + _QWERTY, + _COLEMAK, + _DVORAK, + _LOWER, + _RAISE, + _ADJUST +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define ADJUST MO(_ADJUST) +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Caps | Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + [_QWERTY] = LAYOUT_ortho_4x12( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + KC_CAPS, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Caps | Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + [_COLEMAK] = LAYOUT_ortho_4x12( + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + KC_CAPS, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Caps | Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + [_DVORAK] = LAYOUT_ortho_4x12( + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, + KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , + KC_CAPS, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + [_LOWER] = LAYOUT_ortho_4x12( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + /* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |ADJUST| | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + [_RAISE] = LAYOUT_ortho_4x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + ADJUST, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + /* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | |AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_ADJUST] = LAYOUT_ortho_4x12( + _______, QK_BOOT, DB_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL , + _______, _______, _______, _______, _______, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [4] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [5] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) } +}; +#endif diff --git a/keyboards/vt40/keymaps/default/rules.mk b/keyboards/vt40/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/vt40/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/vt40/readme.md b/keyboards/vt40/readme.md new file mode 100644 index 00000000000..0d87b011345 --- /dev/null +++ b/keyboards/vt40/readme.md @@ -0,0 +1,24 @@ +# VT-40 + +* Keyboard Maintainer: [Guido Bartolucci](https://github.com/guidoism) +* Hardware Supported: Raspberry Pi Pico (RP2040) +* Hardware Availability: https://github.com/vladantrhlik/VT-40 + +Make example for this keyboard (after setting up your build environment): + + make vt40:default + +Flashing example for this keyboard: + + make vt40:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available + From e1351b4f4b8168ca560d2ce090e02e3a50ca0c32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=95=E3=82=A3=E3=83=AB=E3=82=BF=E3=83=BC=E3=83=9A?= =?UTF-8?q?=E3=83=BC=E3=83=91=E3=83=BC?= <76888457+filterpaper@users.noreply.github.com> Date: Fri, 13 Dec 2024 02:01:50 +0800 Subject: [PATCH 115/365] Subscript alef correction (#24707) Output for U+0656 is AltGr + V --- data/constants/keycodes/extras/keycodes_farsi_0.0.1.hjson | 2 +- quantum/keymap_extras/keymap_farsi.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data/constants/keycodes/extras/keycodes_farsi_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_farsi_0.0.1.hjson index d59b6fab264..68d209a5f3b 100644 --- a/data/constants/keycodes/extras/keycodes_farsi_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_farsi_0.0.1.hjson @@ -527,7 +527,7 @@ "key": "FA_PIPE", "label": "|", } - "ALGR(FA_RA)": { + "ALGR(FA_RE)": { "key": "FA_SUBA", "label": "ٖ", } diff --git a/quantum/keymap_extras/keymap_farsi.h b/quantum/keymap_extras/keymap_farsi.h index d2689175131..9c72a6b42ec 100644 --- a/quantum/keymap_extras/keymap_farsi.h +++ b/quantum/keymap_extras/keymap_farsi.h @@ -150,7 +150,7 @@ #define FA_DQT ALGR(FA_GAF) // " #define FA_MINA ALGR(FA_BSLS) // - #define FA_PIPE ALGR(FA_ZA) // | -#define FA_SUBA ALGR(FA_RA) // ٖ +#define FA_SUBA ALGR(FA_RE) // ٖ #define FA_HMZB ALGR(FA_DAL) // ء #define FA_ELLP ALGR(FA_PE) // … #define FA_COMM ALGR(FA_WAW) // , From 597bbcb56782d298a569cbf0bcfd69753ff1922e Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Fri, 13 Dec 2024 20:42:47 +1100 Subject: [PATCH 116/365] Add licensing violations page. (#24697) --- docs/_sidebar.json | 3 +- docs/license_violations.md | 96 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 docs/license_violations.md diff --git a/docs/_sidebar.json b/docs/_sidebar.json index a68516b5de4..95601be7ded 100644 --- a/docs/_sidebar.json +++ b/docs/_sidebar.json @@ -21,7 +21,8 @@ { "text": "Debugging QMK", "link": "/faq_debug" }, { "text": "Keymap FAQ", "link": "/faq_keymap" }, { "text": "Squeezing Space from AVR", "link": "/squeezing_avr" }, - { "text": "Glossary", "link": "/reference_glossary" } + { "text": "Glossary", "link": "/reference_glossary" }, + { "text": "License Violations", "link": "/license_violations" } ] }, { diff --git a/docs/license_violations.md b/docs/license_violations.md new file mode 100644 index 00000000000..b21bb286ac5 --- /dev/null +++ b/docs/license_violations.md @@ -0,0 +1,96 @@ +# License Violations + +QMK Firmware has seen its fair share of license violations, which hurts the community and frustrates the QMK maintainers. + +Typical non-compliance includes: + +* Not providing any source code +* Providing "crippled" source code, such as a wired-only firmware for a wireless-capable board + +Boards from vendors who don't provide source code are proving to be a significant time sink as the QMK team and other support helpers volunteer their time trying to determine which board someone has before they can help -- and in these cases they can't help. Occasionally this is followed by abuse; something that QMK and its volunteers should not be subjected to, rather redirected to the vendor in question. + +The QMK team now actively directs support requests back to each vendor - vendors must provide their own product support for their boards. The QMK team are volunteers, the vendor must not expect the team to act as their support staff. + +## Offending Vendors + +The QMK team cannot tell you which boards you should or should not purchase, but please consider the lack of license compliance from the following vendors before making your decision. If you wish to look at the boards upstream QMK Firmware currently supports, you can search [here](https://browse.qmk.fm/). + +If you own a board from one of the following vendors already, consider asking them for the equivalent QMK source code if it's not already available. With enough customers demanding corresponding source code, vendors may start to change their policies. + +| Vendor | Reason | +|------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| BBB Keyboard | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | +| Chillkey | | +| CIDOO | Selling wired boards based on QMK without sources, just `via.json` provided. | +| Darmoshark | Selling wired boards based on QMK without sources, just `via.json` provided. | +| Epomaker | Lots of historical keyboards with `via.json` but no corresponding sources. Wireless code for a small handful provided, pending core cleanup for QMK upstreaming. Most other boards have source nowhere to be seen. | +| Ergokbd (IFKB) | At least their crkbd clone ships with QMK+Vial, seemingly refuses to disclose sources despite multiple customers requesting them. | +| iLovBee | Official 30-day copyright source code request issued Sep 11 2024 due to deception on PR, no response received. Ambiguity on PRs -- marketing says wireless, PR author said wired-only, then included wireless code anyway. Seemingly intentionally deceptive. | +| KiiBOOM | Seems to use the same OEM as Epomaker, same problems. | +| Luminkey | Selling tri-mode boards based on QMK without sources, just `via.json` provided. | +| Meletrix | Selling tri-mode boards based on QMK without sources, just `via.json` provided. | +| mmd / Smartmmd / i-game.tech | Ambiguity on PRs -- marketing says wireless, PR author said wired-only, then included wireless code anyway. Seemingly intentionally deceptive. | +| MyKeyClub | Community-supported JRIS75, vendor was contacted by community members and refused to cooperate. | +| owlab | Selling wired based on QMK without sources, just `via.json` provided. Ambiguous as to whether or not wireless firmware is based on QMK, given that their configuration tool looks very similar to VIA. | +| qwertykeys | Selling wired and tri-mode boards based on QMK without sources, just `via.json` provided. | +| Redragon | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | +| Royal Kludge | PRs for fake boards in order to attain VIA compatibility identified. Lots of other keyboards with `via.json` but no corresponding sources, attempted upstreaming crippled firmware without wireless. Wireless code for some provided, pending core cleanup for QMK upstreaming. PRs including different manufacturer names as well. | +| Shenzhen Hangsheng | PR submissions with crippled firmware, debating with maintainers about wireless despite marketing material clearly stating tri-mode. | +| Shortcut Studio | Selling tri-mode boards based on QMK without sources, just `via.json` provided. | +| Tacworks | Selling tri-mode boards based on QMK, crippled firmware already merged into QMK without wireless without QMK team realising. | +| TKD / Vertex | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | +| WOBKEY | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | +| Weikav | Selling tri-mode boards based on QMK without sources, just `via.json` provided. | +| Womier | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | +| Wuque Studio | Selling wired and tri-mode boards based on QMK without sources, just `via.json` provided. | +| Zuoya | Selling tri-mode boards based on QMK without sources, just `via.json` provided. | + +::: danger Violations +Links are not provided above as the QMK team does not wish to inadvertently promote purchases of boards in violation of QMK's license. +::: + +## Licensing + +QMK Firmware's license requires full disclosure of source code for any firmware which is based on QMK. This includes any of the following scenarios: + +* Use of public QMK Firmware, but with "closed source" privately-held board definitions +* Vendor-customised QMK Firmware, which the vendor keeps private for building their own boards +* Any other non-QMK firmware which includes portions of QMK Firmware, such as adaptation of `via.c` into any other non-QMK firmware, even if used as a reference when translated to another programming language. + +As per the GPL license requirements, vendors must provide entire source code for the as-shipped firmware. + +QMK has traditionally been lenient with this clause -- providing source code to the QMK community is necessary but reproducing the exact build may not be possible. QMK has required functionally-equivalent source code to be made available. In rare cases exact code may be requested; vendors must keep copies regardless. + +At minimum, vendors must provide the source code through some distribution mechanism. This could potentially be an clearly available downloadable copy of the code online, a fork of QMK Firmware, or even a DVD accompanying the product in the box. + +If sources are unable to be provided in a timely fashion, QMK may revoke the vendor's license, effectively rendering them unable to leverage QMK. + +Vendors choosing to keep things closed-source because of a desire to have a "competitive edge" compared to other vendors is unacceptable to both QMK and the community, and is a breach of the QMK license. There's no reason to do so; any new or interesting vendor-specific feature will be quickly replicated by other vendors or the community anyway. + +## QMK PR Considerations + +Vendors who submit PRs to QMK Firmware whilst not providing full sources for all of their license-violating boards will be put on hold until source code for all violating boards is provided. Intentional deception may result in boards being removed from QMK and all future PRs for that manufacturer being denied outright. + +Submitting crippled source code in order to attain a merge into QMK Firmware to pave the way for VIA support is unacceptable. This includes submitting a wired-only firmware for a wireless-capable board, or any other PR which does not include key features as-advertised. + +Reusing the `VID` and `PID` for multiple boards (such as for two variants, wired and wireless) is an unacceptable scenario as this creates confusion for support. Many customers have flashed boards with the wrong firmware, which could have been avoided if vendors were obvious about their board identification mechanisms. + +If there is sufficient ambiguity about a board, supporting evidence will need to be presented to the QMK team. This may include impartial third parties who can demonstrate a board's existence and can confirm its feature set, such as well-known content producers; popular review sites or notable video creators may be leveraged. If such evidence is unavailable, as a last resort the vendor may be required to ship a fully functional board in full retail packaging to QMK maintainers for verification. Engineering samples will not be accepted, as one-off boards have been deceptively used in the past. + +PRs submitted to upstream QMK should not expect an instant merge just because source code has been provided -- code from OEMs has historically been of a quality lower than QMK standards, so as per the [PR checklist](https://docs.qmk.fm/pr_checklist) submitters should make the changes as small as possible and be prepared to change their implementation. + +## Detection + +If the QMK team identifies or is informed of a license violation from a vendor: + +* Any current and future PRs for that vendor will be indefinitely put on hold, preventing merge into QMK Firmware, thus preventing any out-of-the-box VIA support +* Any existing keyboards from the vendor may be removed from QMK Firmware +* Vendors will be added to the _offending vendors_ list above + +Repeated violations may result in that vendor being disallowed from contributing the QMK in its entirety. In the worst case, the QMK team may choose to revoke a vendor's license to use QMK Firmware outright. + +## Remediation + +Vendors must provide fully-featured source code for each of their identified violations, matching the feature capabilities of their as-shipped products. This will usually be in their own fork of QMK Firmware while awaiting a merge into upstream. + +Once all identified violations have been remediated, current and future PRs will no longer be on hold and the vendor will be removed from the offending vendors list above. From 2d33a209561537289ceb0af1e7cd7b0c522aa272 Mon Sep 17 00:00:00 2001 From: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Sun, 15 Dec 2024 04:19:11 +1100 Subject: [PATCH 117/365] [Keyboard] add swagkeys eave (#24711) * add swagkeys eave * fix up * Update keyboards/swagkeys/eave/keyboard.json Co-authored-by: jack * Update keyboards/swagkeys/eave/keymaps/default/keymap.c Co-authored-by: jack --------- Co-authored-by: Xelus22 <> Co-authored-by: jack --- keyboards/swagkeys/eave/keyboard.json | 128 ++++++++++++++++++ .../swagkeys/eave/keymaps/default/keymap.c | 36 +++++ keyboards/swagkeys/eave/readme.md | 24 ++++ 3 files changed, 188 insertions(+) create mode 100644 keyboards/swagkeys/eave/keyboard.json create mode 100644 keyboards/swagkeys/eave/keymaps/default/keymap.c create mode 100644 keyboards/swagkeys/eave/readme.md diff --git a/keyboards/swagkeys/eave/keyboard.json b/keyboards/swagkeys/eave/keyboard.json new file mode 100644 index 00000000000..87945ed756c --- /dev/null +++ b/keyboards/swagkeys/eave/keyboard.json @@ -0,0 +1,128 @@ +{ + "manufacturer": "CZMAO", + "keyboard_name": "Swagkeys Eave", + "maintainer": "Swagkeys", + "bootloader": "stm32duino", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "indicators": { + "caps_lock": "B15", + "on_state": 0 + }, + "matrix_pins": { + "cols": ["B7", "B6", "B5", "B4", "B3", "A15", "B1", "B8", "C14", "A6", "A5", "A4", "A3", "B14", "A1", "A0"], + "rows": ["B9", "C13", "B12", "B11", "C15"] + }, + "processor": "STM32F103", + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "brightness_steps": 8, + "hue_steps": 10, + "led_count": 25, + "saturation_steps": 8, + "sleep": true + }, + "url": "NONE", + "usb": { + "device_version": "1.0.0", + "pid": "0x4A16", + "vid": "0x4A16" + }, + "ws2812": { + "pin": "B13" + }, + "layouts": { + "LAYOUT_65_ansi": { + "layout": [ + {"label": "GRV", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13.5, "y": 0}, + {"label": "BSLS", "matrix": [0, 14], "x": 13, "y": 0, "w": 2}, + {"label": "Backspace", "matrix": [0, 15], "x": 14, "y": 0}, + {"label": "Del", "matrix": [1, 14], "x": 15, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Home", "matrix": [1, 15], "x": 15, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "PGUP", "matrix": [2, 15], "x": 15, "y": 2}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 1], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 2], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 3], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 4], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 5], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 6], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 7], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 8], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 9], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 10], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 11], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "UP", "matrix": [3, 14], "x": 14, "y": 3}, + {"label": "PGDN", "matrix": [3, 15], "x": 15, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"label": "Fn", "matrix": [4, 10], "x": 11.5, "y": 4, "w": 1.25}, + {"label": "Left", "matrix": [4, 11], "x": 13, "y": 4}, + {"label": "Down", "matrix": [4, 14], "x": 14, "y": 4}, + {"label": "Right", "matrix": [4, 15], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/swagkeys/eave/keymaps/default/keymap.c b/keyboards/swagkeys/eave/keymaps/default/keymap.c new file mode 100644 index 00000000000..c0815a24005 --- /dev/null +++ b/keyboards/swagkeys/eave/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* +Copyright 2024 Swagkeys + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_ansi( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSLS, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + + [1] = LAYOUT_65_ansi( + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, UG_TOGG, UG_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; + + + diff --git a/keyboards/swagkeys/eave/readme.md b/keyboards/swagkeys/eave/readme.md new file mode 100644 index 00000000000..b594fe0ce27 --- /dev/null +++ b/keyboards/swagkeys/eave/readme.md @@ -0,0 +1,24 @@ +# Swagkeys EAVE + +65% Hotswap PCB + +* Keyboard Maintainer: [Swagkeys](https://github.com/swagkey) +* Hardware Supported: Eave PCB +* Hardware Availability: [Swagkeys Store](https://swagkeys.com/) + +Make example for this keyboard (after setting up your build environment): + + make swagkeys/eave:default + +Flashing example for this keyboard: + + make swagkeys/eave:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 296e4539f5bfa8a23af6c48526a42dbc827a82eb Mon Sep 17 00:00:00 2001 From: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Sun, 15 Dec 2024 10:15:52 +1100 Subject: [PATCH 118/365] [Keyboard] swagkeys integral (#24712) swagkeys integral Co-authored-by: Xelus22 <> --- keyboards/swagkeys/integral/keyboard.json | 169 ++++++++++++++++++ .../integral/keymaps/default/keymap.c | 35 ++++ keyboards/swagkeys/integral/readme.md | 24 +++ 3 files changed, 228 insertions(+) create mode 100644 keyboards/swagkeys/integral/keyboard.json create mode 100644 keyboards/swagkeys/integral/keymaps/default/keymap.c create mode 100644 keyboards/swagkeys/integral/readme.md diff --git a/keyboards/swagkeys/integral/keyboard.json b/keyboards/swagkeys/integral/keyboard.json new file mode 100644 index 00000000000..3d496711005 --- /dev/null +++ b/keyboards/swagkeys/integral/keyboard.json @@ -0,0 +1,169 @@ +{ + "manufacturer": "CZMAO", + "keyboard_name": "Swagkeys Integral", + "maintainer": "Swagkeys", + "bootloader": "stm32duino", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "B15", + "on_state": 0 + }, + "matrix_pins": { + "cols": ["B7", "B6", "B5", "B4", "B3", "A15", "B1", "B8", "C14", "A6", "A5", "A4", "A3", "B14", "A1", "A0"], + "rows": ["B9", "C13", "B12", "B11", "B10"] + }, + "processor": "STM32F103", + "url": "NONE", + "usb": { + "device_version": "1.0.0", + "pid": "0x4F21", + "vid": "0x4E21" + }, + "community_layouts": [ + "60_ansi_tsangan", + "60_ansi_tsangan_split_bs_rshift" + ], + "layouts": { + "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"label": "`~", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0)", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "BSLS", "matrix": [0, 14], "x": 13, "y": 0}, + {"label": "Backspace", "matrix": [0, 15], "x": 14, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "\\|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";:", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 1], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 2], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 3], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 4], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 5], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 6], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 7], "x": 8.25, "y": 3}, + {"label": ",<", "matrix": [3, 8], "x": 9.25, "y": 3}, + {"label": ".>", "matrix": [3, 9], "x": 10.25, "y": 3}, + {"label": "/?", "matrix": [3, 10], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 11], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "MO", "matrix": [3, 12], "x": 14, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"label": "FN", "matrix": [4, 10], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 11], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"label": "Caps", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + + {"label": "LShift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 1], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 2], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 3], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 4], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 5], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 6], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 7], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 8], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 9], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 10], "x": 11.25, "y": 3}, + {"label": "RShift", "matrix": [3, 14], "x": 12.25, "y": 3, "w": 2.75}, + + {"label": "LCtrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "LGui", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5}, + {"label": "LAlt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 7}, + {"label": "RAlt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.5}, + {"label": "FN", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.5}, + {"label": "RCtrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.5} + ] + } + } +} diff --git a/keyboards/swagkeys/integral/keymaps/default/keymap.c b/keyboards/swagkeys/integral/keymaps/default/keymap.c new file mode 100644 index 00000000000..dd3b473fc29 --- /dev/null +++ b/keyboards/swagkeys/integral/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* +Copyright 2024 Swagkeys + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_ansi_tsangan( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL + ), + [1] = LAYOUT_60_ansi_tsangan( + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_COMM, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) + +}; diff --git a/keyboards/swagkeys/integral/readme.md b/keyboards/swagkeys/integral/readme.md new file mode 100644 index 00000000000..e2fcd4c932c --- /dev/null +++ b/keyboards/swagkeys/integral/readme.md @@ -0,0 +1,24 @@ +# Swagkeys Integral + +60% Soldered PCB + +* Keyboard Maintainer: [Swagkeys](https://github.com/swagkey) +* Hardware Supported: Integral PCB +* Hardware Availability: [Swagkeys Store](https://swagkeys.com/) + +Make example for this keyboard (after setting up your build environment): + + make swagkeys/integral:default + +Flashing example for this keyboard: + + make swagkeys/integral:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 767dfbbd3f94dcddb2061cd8338dd166d985df9d Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 15 Dec 2024 04:00:18 +0000 Subject: [PATCH 119/365] Resolve `cli.log.warn` warnings (#24551) --- lib/python/qmk/cli/doctor/main.py | 6 +++--- lib/python/qmk/cli/import/kbfirmware.py | 2 +- lib/python/qmk/cli/userspace/list.py | 2 +- lib/python/qmk/git.py | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/python/qmk/cli/doctor/main.py b/lib/python/qmk/cli/doctor/main.py index 5215d3a7eee..391353ebbfb 100755 --- a/lib/python/qmk/cli/doctor/main.py +++ b/lib/python/qmk/cli/doctor/main.py @@ -102,10 +102,10 @@ def userspace_tests(qmk_firmware): qmk_userspace_validate(path) cli.log.info(f'Testing userspace candidate: {{fg_cyan}}{path}{{fg_reset}} -- {{fg_green}}Valid `qmk.json`') except FileNotFoundError: - cli.log.warn(f'Testing userspace candidate: {{fg_cyan}}{path}{{fg_reset}} -- {{fg_red}}Missing `qmk.json`') + cli.log.warning(f'Testing userspace candidate: {{fg_cyan}}{path}{{fg_reset}} -- {{fg_red}}Missing `qmk.json`') except UserspaceValidationError as err: - cli.log.warn(f'Testing userspace candidate: {{fg_cyan}}{path}{{fg_reset}} -- {{fg_red}}Invalid `qmk.json`') - cli.log.warn(f' -- {{fg_cyan}}{path}/qmk.json{{fg_reset}} validation error: {err}') + cli.log.warning(f'Testing userspace candidate: {{fg_cyan}}{path}{{fg_reset}} -- {{fg_red}}Invalid `qmk.json`') + cli.log.warning(f' -- {{fg_cyan}}{path}/qmk.json{{fg_reset}} validation error: {err}') if QMK_USERSPACE is not None: cli.log.info(f'QMK userspace: {{fg_cyan}}{QMK_USERSPACE}') diff --git a/lib/python/qmk/cli/import/kbfirmware.py b/lib/python/qmk/cli/import/kbfirmware.py index 9c03737378c..feccb3cfcc6 100644 --- a/lib/python/qmk/cli/import/kbfirmware.py +++ b/lib/python/qmk/cli/import/kbfirmware.py @@ -15,7 +15,7 @@ def import_kbfirmware(cli): cli.log.info(f'{{style_bright}}Importing {filename.name}.{{style_normal}}') cli.echo('') - cli.log.warn("Support here is basic - Consider using 'qmk new-keyboard' instead") + cli.log.warning("Support here is basic - Consider using 'qmk new-keyboard' instead") kb_name = _import_kbfirmware(data) diff --git a/lib/python/qmk/cli/userspace/list.py b/lib/python/qmk/cli/userspace/list.py index 9f83a14a2a6..e902483b6bb 100644 --- a/lib/python/qmk/cli/userspace/list.py +++ b/lib/python/qmk/cli/userspace/list.py @@ -66,4 +66,4 @@ def userspace_list(cli): if is_all_keyboards(keyboard) or is_keymap_target(keyboard_folder(keyboard), keymap): cli.log.info(f'Keyboard: {{fg_cyan}}{keyboard}{{fg_reset}}, keymap: {{fg_cyan}}{keymap}{{fg_reset}}{extra_args_str}') else: - cli.log.warn(f'Keyboard: {{fg_cyan}}{keyboard}{{fg_reset}}, keymap: {{fg_cyan}}{keymap}{{fg_reset}}{extra_args_str} -- not found!') + cli.log.warning(f'Keyboard: {{fg_cyan}}{keyboard}{{fg_reset}}, keymap: {{fg_cyan}}{keymap}{{fg_reset}}{extra_args_str} -- not found!') diff --git a/lib/python/qmk/git.py b/lib/python/qmk/git.py index b6c11edbfe8..9d567475d81 100644 --- a/lib/python/qmk/git.py +++ b/lib/python/qmk/git.py @@ -26,7 +26,7 @@ def git_get_version(repo_dir='.', check_dir='.'): return git_describe.stdout.strip() else: - cli.log.warn(f'"{" ".join(git_describe_cmd)}" returned error code {git_describe.returncode}') + cli.log.warning(f'"{" ".join(git_describe_cmd)}" returned error code {git_describe.returncode}') print(git_describe.stderr) return None From be6ff3af2bd878ac5d1c075aab539bf4e23e34a7 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sun, 15 Dec 2024 23:44:12 +1100 Subject: [PATCH 120/365] Update ChibiOS `stable_21.11.x`. (#24714) --- lib/chibios | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/chibios b/lib/chibios index 9dd6eaf669e..2365f844292 160000 --- a/lib/chibios +++ b/lib/chibios @@ -1 +1 @@ -Subproject commit 9dd6eaf669e83eb9d5aaabe736ecfdf2f790a9fd +Subproject commit 2365f844292513ea0ee9eea6ab778d56f9ccd3b9 From 8e6bfbfdc27b6ecb38f884b011ebca3ef95e33fc Mon Sep 17 00:00:00 2001 From: Stefan Kerkmann Date: Sun, 15 Dec 2024 18:42:43 +0100 Subject: [PATCH 121/365] [Core] chibios: usb_main: remove OTG sof workaround (#24259) chibios: usb_main: remove OTG sof workaround With the update of ChibiOS and ChibiOS-Contrib containing fixes for the OTGv1 LLD the workaround is not necessarry anymore. Signed-off-by: Stefan Kerkmann --- tmk_core/protocol/chibios/usb_main.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/tmk_core/protocol/chibios/usb_main.c b/tmk_core/protocol/chibios/usb_main.c index 2a287e0d989..5a5354416f4 100644 --- a/tmk_core/protocol/chibios/usb_main.c +++ b/tmk_core/protocol/chibios/usb_main.c @@ -325,18 +325,10 @@ static bool usb_requests_hook_cb(USBDriver *usbp) { return false; } -static __attribute__((unused)) void dummy_cb(USBDriver *usbp) { - (void)usbp; -} - static const USBConfig usbcfg = { usb_event_cb, /* USB events callback */ usb_get_descriptor_cb, /* Device GET_DESCRIPTOR request callback */ usb_requests_hook_cb, /* Requests hook callback */ -#if STM32_USB_USE_OTG1 == TRUE || STM32_USB_USE_OTG2 == TRUE - dummy_cb, /* Workaround for OTG Peripherals not servicing new interrupts - after resuming from suspend. */ -#endif }; void init_usb_driver(USBDriver *usbp) { From 0f3993b9a3cd3a50b2c9e5d920d6bdb40a9d78be Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 16 Dec 2024 06:06:05 +1100 Subject: [PATCH 122/365] default_keyboard.h generation tweaks (#24715) --- lib/python/qmk/cli/generate/keyboard_h.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/lib/python/qmk/cli/generate/keyboard_h.py b/lib/python/qmk/cli/generate/keyboard_h.py index 5863a0983ad..cb9528d96bb 100755 --- a/lib/python/qmk/cli/generate/keyboard_h.py +++ b/lib/python/qmk/cli/generate/keyboard_h.py @@ -22,6 +22,11 @@ def _generate_layouts(keyboard, kb_info_json): row_num = kb_info_json['matrix_size']['rows'] lines = [] + lines.append('') + lines.append('// Layout content') + lines.append('') + lines.append('#define XXX KC_NO') + for layout_name, layout_data in kb_info_json['layouts'].items(): if layout_data['c_macro']: continue @@ -31,7 +36,7 @@ def _generate_layouts(keyboard, kb_info_json): continue layout_keys = [] - layout_matrix = [['KC_NO'] * col_num for _ in range(row_num)] + layout_matrix = [['XXX'] * col_num for _ in range(row_num)] for key_data in layout_data['layout']: row, col = key_data['matrix'] @@ -46,7 +51,7 @@ def _generate_layouts(keyboard, kb_info_json): lines.append('') lines.append(f'#define {layout_name}({", ".join(layout_keys)}) {{ \\') - rows = ', \\\n'.join(['\t {' + ', '.join(row) + '}' for row in layout_matrix]) + rows = ', \\\n'.join([' { ' + ', '.join(row) + ' }' for row in layout_matrix]) rows += ' \\' lines.append(rows) lines.append('}') @@ -67,6 +72,9 @@ def _generate_keycodes(kb_info_json): return [] lines = [] + lines.append('') + lines.append('// Keycode content') + lines.append('') lines.append('enum keyboard_keycodes {') for index, item in enumerate(kb_info_json.get('keycodes')): @@ -103,17 +111,14 @@ def generate_keyboard_h(cli): valid_config = dd_layouts or keyboard_h # Build the layouts.h file. - keyboard_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#pragma once', '#include "quantum.h"'] + keyboard_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#pragma once', '', '#include "quantum.h"'] - keyboard_h_lines.append('') - keyboard_h_lines.append('// Layout content') if dd_layouts: keyboard_h_lines.extend(dd_layouts) + if keyboard_h: keyboard_h_lines.append(f'#include "{Path(keyboard_h).name}"') - keyboard_h_lines.append('') - keyboard_h_lines.append('// Keycode content') if dd_keycodes: keyboard_h_lines.extend(dd_keycodes) From d3c9dff9d27245168fe02c03462f0aeba10ba97a Mon Sep 17 00:00:00 2001 From: boessu Date: Mon, 16 Dec 2024 10:27:42 +0100 Subject: [PATCH 123/365] small refactoring of TIMER_DIFF (#24678) A small refactoring of the defines TIMER_DIFF_8, TIMER_DIFF_16, TIMER_DIFF_32, TIMER_DIFF_RAW. Removing obsolete TIMER_DIFF helper. Discussion: https://github.com/qmk/qmk_firmware/issues/24652 --- platforms/timer.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/platforms/timer.h b/platforms/timer.h index fb8ff6bc545..8a2ffd476b1 100644 --- a/platforms/timer.h +++ b/platforms/timer.h @@ -24,10 +24,9 @@ along with this program. If not, see . #include -#define TIMER_DIFF(a, b, max) ((max == UINT8_MAX) ? ((uint8_t)((a) - (b))) : ((max == UINT16_MAX) ? ((uint16_t)((a) - (b))) : ((max == UINT32_MAX) ? ((uint32_t)((a) - (b))) : ((a) >= (b) ? (a) - (b) : (max) + 1 - (b) + (a))))) -#define TIMER_DIFF_8(a, b) TIMER_DIFF(a, b, UINT8_MAX) -#define TIMER_DIFF_16(a, b) TIMER_DIFF(a, b, UINT16_MAX) -#define TIMER_DIFF_32(a, b) TIMER_DIFF(a, b, UINT32_MAX) +#define TIMER_DIFF_8(a, b) (uint8_t)((a) - (b)) +#define TIMER_DIFF_16(a, b) (uint16_t)((a) - (b)) +#define TIMER_DIFF_32(a, b) (uint32_t)((a) - (b)) #define TIMER_DIFF_RAW(a, b) TIMER_DIFF_8(a, b) #ifdef __cplusplus From a7d12e4e8f984f472e5d8c87253bfad7ec181d75 Mon Sep 17 00:00:00 2001 From: Less/Rikki <86894501+lesshonor@users.noreply.github.com> Date: Wed, 18 Dec 2024 00:02:05 -0500 Subject: [PATCH 124/365] [Keyboard] wilba_tech/wt45_h1 (#24717) --- keyboards/wilba_tech/wt45_h1/keyboard.json | 216 ++++++++++++++++++ .../wt45_h1/keymaps/default/keymap.json | 26 +++ keyboards/wilba_tech/wt45_h1/readme.md | 29 +++ 3 files changed, 271 insertions(+) create mode 100644 keyboards/wilba_tech/wt45_h1/keyboard.json create mode 100644 keyboards/wilba_tech/wt45_h1/keymaps/default/keymap.json create mode 100644 keyboards/wilba_tech/wt45_h1/readme.md diff --git a/keyboards/wilba_tech/wt45_h1/keyboard.json b/keyboards/wilba_tech/wt45_h1/keyboard.json new file mode 100644 index 00000000000..cfe1b3d3a4a --- /dev/null +++ b/keyboards/wilba_tech/wt45_h1/keyboard.json @@ -0,0 +1,216 @@ +{ + "manufacturer": "wilba.tech", + "keyboard_name": "WT45-H1", + "maintainer": "Wilba", + "bootloader": "atmel-dfu", + "bootloader_instructions": "Press the button labeled S1 on the back of the PCB, near the MCU.", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "caps_word": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["F5", "D2", "D3", "D5", "D4", "D6", "D7", "C7", "C6", "B6", "B5", "B4"], + "rows": ["F1", "F4", "F6", "F7"] + }, + "processor": "atmega32u4", + "usb": { + "device_version": "0.0.1", + "pid": "0x0045", + "vid": "0x6582" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 10.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0, "w": 1.5}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 1.75, "y": 1}, + {"matrix": [1, 2], "x": 2.75, "y": 1}, + {"matrix": [1, 3], "x": 3.75, "y": 1}, + {"matrix": [1, 4], "x": 4.75, "y": 1}, + {"matrix": [1, 5], "x": 5.75, "y": 1}, + {"matrix": [1, 6], "x": 6.75, "y": 1}, + {"matrix": [1, 7], "x": 7.75, "y": 1}, + {"matrix": [1, 8], "x": 8.75, "y": 1}, + {"matrix": [1, 9], "x": 9.75, "y": 1}, + {"matrix": [1, 11], "x": 10.75, "y": 1, "w": 2.25}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.25}, + {"matrix": [2, 1], "x": 1.25, "y": 2}, + {"matrix": [2, 2], "x": 2.25, "y": 2}, + {"matrix": [2, 3], "x": 3.25, "y": 2}, + {"matrix": [2, 4], "x": 4.25, "y": 2}, + {"matrix": [2, 5], "x": 5.25, "y": 2}, + {"matrix": [2, 6], "x": 6.25, "y": 2}, + {"matrix": [2, 7], "x": 7.25, "y": 2}, + {"matrix": [2, 8], "x": 8.25, "y": 2}, + {"matrix": [2, 9], "x": 9.25, "y": 2}, + {"matrix": [2, 10], "x": 10.25, "y": 2}, + {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25}, + {"matrix": [3, 4], "x": 3.5, "y": 3, "w": 2.25}, + {"matrix": [3, 6], "x": 5.75, "y": 3}, + {"matrix": [3, 8], "x": 6.75, "y": 3, "w": 2.75}, + {"matrix": [3, 9], "x": 9.5, "y": 3, "w": 1.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3, "w": 1.25} + ] + }, + "LAYOUT_big_bar": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 10.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0, "w": 1.5}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 1.75, "y": 1}, + {"matrix": [1, 2], "x": 2.75, "y": 1}, + {"matrix": [1, 3], "x": 3.75, "y": 1}, + {"matrix": [1, 4], "x": 4.75, "y": 1}, + {"matrix": [1, 5], "x": 5.75, "y": 1}, + {"matrix": [1, 6], "x": 6.75, "y": 1}, + {"matrix": [1, 7], "x": 7.75, "y": 1}, + {"matrix": [1, 8], "x": 8.75, "y": 1}, + {"matrix": [1, 9], "x": 9.75, "y": 1}, + {"matrix": [1, 11], "x": 10.75, "y": 1, "w": 2.25}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.25}, + {"matrix": [2, 1], "x": 1.25, "y": 2}, + {"matrix": [2, 2], "x": 2.25, "y": 2}, + {"matrix": [2, 3], "x": 3.25, "y": 2}, + {"matrix": [2, 4], "x": 4.25, "y": 2}, + {"matrix": [2, 5], "x": 5.25, "y": 2}, + {"matrix": [2, 6], "x": 6.25, "y": 2}, + {"matrix": [2, 7], "x": 7.25, "y": 2}, + {"matrix": [2, 8], "x": 8.25, "y": 2}, + {"matrix": [2, 9], "x": 9.25, "y": 2}, + {"matrix": [2, 10], "x": 10.25, "y": 2}, + {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25}, + {"matrix": [3, 6], "x": 3.5, "y": 3, "w": 6}, + {"matrix": [3, 9], "x": 9.5, "y": 3, "w": 1.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3, "w": 1.25} + ] + }, + "LAYOUT_big_lshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 10.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0, "w": 1.5}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 1.75, "y": 1}, + {"matrix": [1, 2], "x": 2.75, "y": 1}, + {"matrix": [1, 3], "x": 3.75, "y": 1}, + {"matrix": [1, 4], "x": 4.75, "y": 1}, + {"matrix": [1, 5], "x": 5.75, "y": 1}, + {"matrix": [1, 6], "x": 6.75, "y": 1}, + {"matrix": [1, 7], "x": 7.75, "y": 1}, + {"matrix": [1, 8], "x": 8.75, "y": 1}, + {"matrix": [1, 9], "x": 9.75, "y": 1}, + {"matrix": [1, 11], "x": 10.75, "y": 1, "w": 2.25}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, + {"matrix": [2, 2], "x": 2.25, "y": 2}, + {"matrix": [2, 3], "x": 3.25, "y": 2}, + {"matrix": [2, 4], "x": 4.25, "y": 2}, + {"matrix": [2, 5], "x": 5.25, "y": 2}, + {"matrix": [2, 6], "x": 6.25, "y": 2}, + {"matrix": [2, 7], "x": 7.25, "y": 2}, + {"matrix": [2, 8], "x": 8.25, "y": 2}, + {"matrix": [2, 9], "x": 9.25, "y": 2}, + {"matrix": [2, 10], "x": 10.25, "y": 2}, + {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25}, + {"matrix": [3, 4], "x": 3.5, "y": 3, "w": 2.25}, + {"matrix": [3, 6], "x": 5.75, "y": 3}, + {"matrix": [3, 8], "x": 6.75, "y": 3, "w": 2.75}, + {"matrix": [3, 9], "x": 9.5, "y": 3, "w": 1.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3, "w": 1.25} + ] + }, + "LAYOUT_big_lshift_big_bar": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 10.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0, "w": 1.5}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 1.75, "y": 1}, + {"matrix": [1, 2], "x": 2.75, "y": 1}, + {"matrix": [1, 3], "x": 3.75, "y": 1}, + {"matrix": [1, 4], "x": 4.75, "y": 1}, + {"matrix": [1, 5], "x": 5.75, "y": 1}, + {"matrix": [1, 6], "x": 6.75, "y": 1}, + {"matrix": [1, 7], "x": 7.75, "y": 1}, + {"matrix": [1, 8], "x": 8.75, "y": 1}, + {"matrix": [1, 9], "x": 9.75, "y": 1}, + {"matrix": [1, 11], "x": 10.75, "y": 1, "w": 2.25}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, + {"matrix": [2, 2], "x": 2.25, "y": 2}, + {"matrix": [2, 3], "x": 3.25, "y": 2}, + {"matrix": [2, 4], "x": 4.25, "y": 2}, + {"matrix": [2, 5], "x": 5.25, "y": 2}, + {"matrix": [2, 6], "x": 6.25, "y": 2}, + {"matrix": [2, 7], "x": 7.25, "y": 2}, + {"matrix": [2, 8], "x": 8.25, "y": 2}, + {"matrix": [2, 9], "x": 9.25, "y": 2}, + {"matrix": [2, 10], "x": 10.25, "y": 2}, + {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25}, + {"matrix": [3, 6], "x": 3.5, "y": 3, "w": 6}, + {"matrix": [3, 9], "x": 9.5, "y": 3, "w": 1.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3, "w": 1.25} + ] + } + } +} diff --git a/keyboards/wilba_tech/wt45_h1/keymaps/default/keymap.json b/keyboards/wilba_tech/wt45_h1/keymaps/default/keymap.json new file mode 100644 index 00000000000..11ae0568206 --- /dev/null +++ b/keyboards/wilba_tech/wt45_h1/keymaps/default/keymap.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "keyboard": "wilba_tech/wt45_h1", + "keymap": "default", + "layout": "LAYOUT_all", + "layers": [ + [ +"LT(2,KC_ESC)", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPC", +"KC_TAB", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_ENT", +"KC_LSFT", "KC_NUBS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_RSFT", +"KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "LT(1,KC_SPC)", "LT(1,KC_SPC)", "KC_RALT", "RGUI_T(KC_GRV)", "KC_RCTL" + ], + [ +"KC_GRV", "KC_TRNS", "KC_PGUP", "KC_TRNS", "KC_TRNS", "KC_LBRC", "KC_RBRC", "KC_TRNS", "KC_UP", "KC_TRNS", "KC_TRNS", "KC_DEL", +"KC_TRNS", "KC_HOME", "KC_PGDN", "KC_END", "KC_TRNS", "KC_BSLS", "KC_SLSH", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_TRNS", +"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_PSCR", "KC_ESC", "KC_QUOT", "KC_TRNS", "KC_DOT", "KC_TRNS", "KC_TRNS", "KC_TRNS", +"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" + ], + [ +"KC_TRNS", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_TRNS", +"KC_TRNS", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", +"KC_TRNS", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "CW_TOGG", +"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" + ] + ] +} diff --git a/keyboards/wilba_tech/wt45_h1/readme.md b/keyboards/wilba_tech/wt45_h1/readme.md new file mode 100644 index 00000000000..3a23ac36f0d --- /dev/null +++ b/keyboards/wilba_tech/wt45_h1/readme.md @@ -0,0 +1,29 @@ +# wilba.tech WT45-H1 + +![WT45-H1 PCB](https://i.imgur.com/33lWN3p.png) + +WT45-H1 is a mostly-base-kit-compatible hotswap 40% keyboard PCB with split left shift and split spacebar options. + +Initially designed for the [HIBI CHOPPER](https://hibi.mx/products/chopper) + +- Keyboard Maintainer: [wilba](https://github.com/wilba) +- Hardware Supported: wilba.tech WT45-H1 (atmega32u4, atmel-dfu) +- Hardware Availability: [HIBI](https://hibi.mx/products/chopper) + +Make example for this keyboard (after setting up your build environment): + + make wilba_tech/wt45_h1:default + +Flashing example for this keyboard: + + make wilba_tech/wt45_h1:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top left key and plug in the keyboard. This will also clear EEPROM, so it is a good first step if the keyboard is misbehaving. +* **Physical reset button**: Press the button labeled S1 on the back of the PCB, near the MCU. +* **Keycode in layout**: There is no key mapped to `QK_BOOT` in the pre-created keymaps, but you may assign this key in any keymaps you create. From c988584fc181c2d59e71600ddbff73a99ba7be7f Mon Sep 17 00:00:00 2001 From: Andrew Kannan Date: Wed, 18 Dec 2024 13:16:25 -0500 Subject: [PATCH 125/365] Add Reverie to QMK (#24227) * Add Reverie to QMK * Add backlight to reverie * Update reverie readme and copyright notices * Use format json to update keyboard.json formatting * Update to have solderable and hotswap variants split * Update copyright noticeS * JSON formatting updates * inherit config.h * fix broken keymap * Update reverie hs keyboard.json to be accurate * Update keyboards/cannonkeys/reverie/hotswap/keyboard.json Co-authored-by: jack * Remove VIA keymaps * Update keymap --------- Co-authored-by: jack --- keyboards/cannonkeys/reverie/config.h | 9 + .../cannonkeys/reverie/hotswap/keyboard.json | 296 ++++++++ .../reverie/hotswap/keymaps/default/keymap.c | 27 + keyboards/cannonkeys/reverie/info.json | 24 + keyboards/cannonkeys/reverie/readme.md | 30 + .../cannonkeys/reverie/solderable/config.h | 7 + .../cannonkeys/reverie/solderable/halconf.h | 8 + .../reverie/solderable/keyboard.json | 672 ++++++++++++++++++ .../solderable/keymaps/default/keymap.c | 27 + .../reverie/solderable/matrix_diagram.md | 27 + .../cannonkeys/reverie/solderable/mcuconf.h | 9 + 11 files changed, 1136 insertions(+) create mode 100644 keyboards/cannonkeys/reverie/config.h create mode 100644 keyboards/cannonkeys/reverie/hotswap/keyboard.json create mode 100644 keyboards/cannonkeys/reverie/hotswap/keymaps/default/keymap.c create mode 100644 keyboards/cannonkeys/reverie/info.json create mode 100644 keyboards/cannonkeys/reverie/readme.md create mode 100644 keyboards/cannonkeys/reverie/solderable/config.h create mode 100644 keyboards/cannonkeys/reverie/solderable/halconf.h create mode 100644 keyboards/cannonkeys/reverie/solderable/keyboard.json create mode 100644 keyboards/cannonkeys/reverie/solderable/keymaps/default/keymap.c create mode 100644 keyboards/cannonkeys/reverie/solderable/matrix_diagram.md create mode 100644 keyboards/cannonkeys/reverie/solderable/mcuconf.h diff --git a/keyboards/cannonkeys/reverie/config.h b/keyboards/cannonkeys/reverie/config.h new file mode 100644 index 00000000000..ea5c26b6c72 --- /dev/null +++ b/keyboards/cannonkeys/reverie/config.h @@ -0,0 +1,9 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U + +#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 \ No newline at end of file diff --git a/keyboards/cannonkeys/reverie/hotswap/keyboard.json b/keyboards/cannonkeys/reverie/hotswap/keyboard.json new file mode 100644 index 00000000000..4a2101f9de2 --- /dev/null +++ b/keyboards/cannonkeys/reverie/hotswap/keyboard.json @@ -0,0 +1,296 @@ +{ + "keyboard_name": "Reverie HS", + "usb": { + "pid": "0x0033" + }, + "community_layouts": ["65_ansi_blocker", "65_ansi_blocker_split_bs", "65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs"], + "layout_aliases": { + "LAYOUT_65_ansi_blocker_split_bs": "LAYOUT_all" + }, + "layouts": { + "LAYOUT_65_ansi_blocker": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/cannonkeys/reverie/hotswap/keymaps/default/keymap.c b/keyboards/cannonkeys/reverie/hotswap/keymaps/default/keymap.c new file mode 100644 index 00000000000..e1081d169cb --- /dev/null +++ b/keyboards/cannonkeys/reverie/hotswap/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _FN1 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [_FN1] = LAYOUT_all( + QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, _______, _______, _______, _______, _______, _______, _______, QK_BOOT + ) +}; diff --git a/keyboards/cannonkeys/reverie/info.json b/keyboards/cannonkeys/reverie/info.json new file mode 100644 index 00000000000..1e2a885781b --- /dev/null +++ b/keyboards/cannonkeys/reverie/info.json @@ -0,0 +1,24 @@ +{ + "manufacturer": "CannonKeys", + "maintainer": "awkannan", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP28", "GP8", "GP14", "GP13", "GP12", "GP11", "GP10", "GP9", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP0"], + "rows": ["GP26", "GP27", "GP15", "GP16", "GP17"] + }, + "processor": "RP2040", + "url": "https://cannonkeys.com", + "usb": { + "device_version": "0.0.1", + "vid": "0xCA04" + } +} diff --git a/keyboards/cannonkeys/reverie/readme.md b/keyboards/cannonkeys/reverie/readme.md new file mode 100644 index 00000000000..8647bc0dade --- /dev/null +++ b/keyboards/cannonkeys/reverie/readme.md @@ -0,0 +1,30 @@ +# Reverie PCBs + +Reverie PCBs from CannonKeys + +This folder is for both the solderable and hotswap versions of this PCB. + +The hotswap version does not support per-key LEDs and has reduced layout support (no ISO) + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: RP2040 +* Hardware Availability: [CannonKeys](https://cannonkeys.com) + + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/reverie/solderable:default + +Flashing example for this keyboard: + + make cannonkeys/reverie/solderable:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Hold the "BOOTMODE" button on the back of the PCB and briefly press the "RESET" button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cannonkeys/reverie/solderable/config.h b/keyboards/cannonkeys/reverie/solderable/config.h new file mode 100644 index 00000000000..9a8669d7a85 --- /dev/null +++ b/keyboards/cannonkeys/reverie/solderable/config.h @@ -0,0 +1,7 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A diff --git a/keyboards/cannonkeys/reverie/solderable/halconf.h b/keyboards/cannonkeys/reverie/solderable/halconf.h new file mode 100644 index 00000000000..0536c37ff34 --- /dev/null +++ b/keyboards/cannonkeys/reverie/solderable/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/cannonkeys/reverie/solderable/keyboard.json b/keyboards/cannonkeys/reverie/solderable/keyboard.json new file mode 100644 index 00000000000..b1d909cb855 --- /dev/null +++ b/keyboards/cannonkeys/reverie/solderable/keyboard.json @@ -0,0 +1,672 @@ +{ + "keyboard_name": "Reverie", + "backlight": { + "breathing": true, + "breathing_period": 5, + "levels": 15, + "pin": "GP22" + }, + "features": { + "backlight": true + }, + "indicators": { + "caps_lock": "GP29", + "on_state": 0 + }, + "usb": { + "pid": "0x0030" + }, + "community_layouts": ["65_ansi_blocker", "65_ansi_blocker_split_bs", "65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs", "65_iso_blocker", "65_iso_blocker_split_bs", "65_iso_blocker_tsangan", "65_iso_blocker_tsangan_split_bs"], + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, + "layouts": { + "LAYOUT_65_ansi_blocker": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_tsangan_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 2.25}, + {"matrix": [4, 6], "x": 6, "y": 4, "w": 1.25}, + {"matrix": [4, 9], "x": 7.25, "y": 4, "w": 2.75}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/cannonkeys/reverie/solderable/keymaps/default/keymap.c b/keyboards/cannonkeys/reverie/solderable/keymaps/default/keymap.c new file mode 100644 index 00000000000..0a256ac4064 --- /dev/null +++ b/keyboards/cannonkeys/reverie/solderable/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _FN1 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(_FN1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [_FN1] = LAYOUT_all( + QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_UP, _______, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT + ) +}; diff --git a/keyboards/cannonkeys/reverie/solderable/matrix_diagram.md b/keyboards/cannonkeys/reverie/solderable/matrix_diagram.md new file mode 100644 index 00000000000..c74adfdb7c1 --- /dev/null +++ b/keyboards/cannonkeys/reverie/solderable/matrix_diagram.md @@ -0,0 +1,27 @@ +# Matrix Diagram for CannonKeys Reverie + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2C │0E │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ ┌─────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐2D │ ISO Enter +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │2E │ │1D │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │ +├────┴┬──┴┬──┴──┬┴───┴───┴──┬┴──┬┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤ +│40 │41 │42 │45 │46 │49 │4B │ │4C │4D │4E │ +└─────┴───┴─────┴───────────┴───┴───────────┴─────┘ └───┴───┴───┘ +┌────────┐ +│30 │ 2.25u LShift +└────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┐ +│40 │41 │42 │46 │4B │ Blocker Tsangan +└─────┴───┴─────┴───────────────────────────┴─────┘ +┌────┬────┬────┬────────────────────────┬────┬────┐ +│40 │41 │42 │46 │4A │4B │ Blocker +└────┴────┴────┴────────────────────────┴────┴────┘ +``` diff --git a/keyboards/cannonkeys/reverie/solderable/mcuconf.h b/keyboards/cannonkeys/reverie/solderable/mcuconf.h new file mode 100644 index 00000000000..200f75c11b4 --- /dev/null +++ b/keyboards/cannonkeys/reverie/solderable/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef RP_PWM_USE_PWM3 +#define RP_PWM_USE_PWM3 TRUE From f3fe59afe26a0796fe5ff9c3eb2a6551fb949a6e Mon Sep 17 00:00:00 2001 From: Less/Rikki <86894501+lesshonor@users.noreply.github.com> Date: Sun, 22 Dec 2024 00:14:59 -0500 Subject: [PATCH 126/365] fix: mechwild/bb65 coordinate mix-up (#24738) --- keyboards/mechwild/bb65/info.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/mechwild/bb65/info.json b/keyboards/mechwild/bb65/info.json index a9d812d827f..81856c5c7ce 100644 --- a/keyboards/mechwild/bb65/info.json +++ b/keyboards/mechwild/bb65/info.json @@ -105,8 +105,8 @@ {"matrix": [7, 7], "x": 10.25, "y": 3}, {"matrix": [7, 6], "x": 11.25, "y": 3}, {"matrix": [7, 5], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [7, 4], "x": 15.5, "y": 3}, - {"matrix": [7, 3], "x": 14.25, "y": 3.25}, + {"matrix": [7, 4], "x": 14.25, "y": 3.25}, + {"matrix": [7, 3], "x": 15.5, "y": 3}, {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, @@ -174,8 +174,8 @@ {"matrix": [7, 7], "x": 10.25, "y": 3}, {"matrix": [7, 6], "x": 11.25, "y": 3}, {"matrix": [7, 5], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [7, 4], "x": 15.5, "y": 3}, - {"matrix": [7, 3], "x": 14.25, "y": 3.25}, + {"matrix": [7, 4], "x": 14.25, "y": 3.25}, + {"matrix": [7, 3], "x": 15.5, "y": 3}, {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, From 9877af9bf8967ade2a3d1ed752bb3faa52185ecb Mon Sep 17 00:00:00 2001 From: yiancar Date: Sun, 22 Dec 2024 21:57:25 +0200 Subject: [PATCH 127/365] [Keyboard] Add keycult 1800 (#24729) Co-authored-by: jack Co-authored-by: yiancar --- keyboards/keycult/keycult1800/keyboard.json | 132 ++++++++++++++++++ .../keycult1800/keymaps/default/keymap.c | 35 +++++ keyboards/keycult/keycult1800/readme.md | 32 +++++ keyboards/keycult/keycult1800/rules.mk | 2 + 4 files changed, 201 insertions(+) create mode 100644 keyboards/keycult/keycult1800/keyboard.json create mode 100644 keyboards/keycult/keycult1800/keymaps/default/keymap.c create mode 100644 keyboards/keycult/keycult1800/readme.md create mode 100644 keyboards/keycult/keycult1800/rules.mk diff --git a/keyboards/keycult/keycult1800/keyboard.json b/keyboards/keycult/keycult1800/keyboard.json new file mode 100644 index 00000000000..a50b77d1042 --- /dev/null +++ b/keyboards/keycult/keycult1800/keyboard.json @@ -0,0 +1,132 @@ +{ + "manufacturer": "Yiancar-Designs", + "keyboard_name": "Keycult 1800", + "maintainer": "Yiancar-Designs", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["B12", "B13", "B14", "B15", "A8", "A10", "A14", "A15", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "A0", "A1", "A6"], + "rows": ["B11", "B10", "B2", "B1", "A9", "A5"] + }, + "processor": "STM32F072", + "url": "https://yiancar-designs.com", + "usb": { + "device_version": "0.0.1", + "pid": "0x6338", + "vid": "0x8968" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1.25, "y": 0 }, + { "matrix": [0, 2], "x": 2.25, "y": 0 }, + { "matrix": [0, 3], "x": 3.25, "y": 0 }, + { "matrix": [0, 4], "x": 4.25, "y": 0 }, + { "matrix": [0, 5], "x": 5.5, "y": 0 }, + { "matrix": [0, 6], "x": 6.5, "y": 0 }, + { "matrix": [0, 7], "x": 7.5, "y": 0 }, + { "matrix": [0, 8], "x": 8.5, "y": 0 }, + { "matrix": [0, 9], "x": 9.75, "y": 0 }, + { "matrix": [0, 10], "x": 10.75, "y": 0 }, + { "matrix": [0, 11], "x": 11.75, "y": 0 }, + { "matrix": [0, 12], "x": 12.75, "y": 0 }, + { "matrix": [0, 13], "x": 14, "y": 0 }, + { "matrix": [0, 14], "x": 15.5, "y": 0 }, + { "matrix": [0, 15], "x": 16.5, "y": 0 }, + { "matrix": [0, 16], "x": 17.5, "y": 0 }, + { "matrix": [0, 17], "x": 18.5, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1.5 }, + { "matrix": [1, 1], "x": 1, "y": 1.5 }, + { "matrix": [1, 2], "x": 2, "y": 1.5 }, + { "matrix": [1, 3], "x": 3, "y": 1.5 }, + { "matrix": [1, 4], "x": 4, "y": 1.5 }, + { "matrix": [1, 5], "x": 5, "y": 1.5 }, + { "matrix": [1, 6], "x": 6, "y": 1.5 }, + { "matrix": [1, 7], "x": 7, "y": 1.5 }, + { "matrix": [1, 8], "x": 8, "y": 1.5 }, + { "matrix": [1, 9], "x": 9, "y": 1.5 }, + { "matrix": [1, 10], "x": 10, "y": 1.5 }, + { "matrix": [1, 11], "x": 11, "y": 1.5 }, + { "matrix": [1, 12], "x": 12, "y": 1.5 }, + { "matrix": [1, 13], "x": 13, "y": 1.5 }, + { "matrix": [2, 13], "x": 14, "y": 1.5 }, + { "matrix": [1, 14], "x": 15.5, "y": 1.5 }, + { "matrix": [1, 15], "x": 16.5, "y": 1.5 }, + { "matrix": [1, 16], "x": 17.5, "y": 1.5 }, + { "matrix": [1, 17], "x": 18.5, "y": 1.5 }, + { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.5 }, + { "matrix": [2, 1], "x": 1.5, "y": 2.5 }, + { "matrix": [2, 2], "x": 2.5, "y": 2.5 }, + { "matrix": [2, 3], "x": 3.5, "y": 2.5 }, + { "matrix": [2, 4], "x": 4.5, "y": 2.5 }, + { "matrix": [2, 5], "x": 5.5, "y": 2.5 }, + { "matrix": [2, 6], "x": 6.5, "y": 2.5 }, + { "matrix": [2, 7], "x": 7.5, "y": 2.5 }, + { "matrix": [2, 8], "x": 8.5, "y": 2.5 }, + { "matrix": [2, 9], "x": 9.5, "y": 2.5 }, + { "matrix": [2, 10], "x": 10.5, "y": 2.5 }, + { "matrix": [2, 11], "x": 11.5, "y": 2.5 }, + { "matrix": [2, 12], "x": 12.5, "y": 2.5 }, + { "matrix": [3, 12], "w": 1.5, "x": 13.5, "y": 2.5 }, + { "matrix": [2, 14], "x": 15.5, "y": 2.5 }, + { "matrix": [2, 15], "x": 16.5, "y": 2.5 }, + { "matrix": [2, 16], "x": 17.5, "y": 2.5 }, + { "matrix": [2, 17], "x": 18.5, "y": 2.5 }, + { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.5 }, + { "matrix": [3, 1], "x": 1.75, "y": 3.5 }, + { "matrix": [3, 2], "x": 2.75, "y": 3.5 }, + { "matrix": [3, 3], "x": 3.75, "y": 3.5 }, + { "matrix": [3, 4], "x": 4.75, "y": 3.5 }, + { "matrix": [3, 5], "x": 5.75, "y": 3.5 }, + { "matrix": [3, 6], "x": 6.75, "y": 3.5 }, + { "matrix": [3, 7], "x": 7.75, "y": 3.5 }, + { "matrix": [3, 8], "x": 8.75, "y": 3.5 }, + { "matrix": [3, 9], "x": 9.75, "y": 3.5 }, + { "matrix": [3, 10], "x": 10.75, "y": 3.5 }, + { "matrix": [3, 11], "x": 11.75, "y": 3.5 }, + { "matrix": [3, 13], "w": 2.25, "x": 12.75, "y": 3.5 }, + { "matrix": [3, 14], "x": 15.5, "y": 3.5 }, + { "matrix": [3, 15], "x": 16.5, "y": 3.5 }, + { "matrix": [3, 16], "x": 17.5, "y": 3.5 }, + { "matrix": [3, 17], "x": 18.5, "y": 3.5 }, + { "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.5 }, + { "matrix": [4, 2], "x": 2.25, "y": 4.5 }, + { "matrix": [4, 3], "x": 3.25, "y": 4.5 }, + { "matrix": [4, 4], "x": 4.25, "y": 4.5 }, + { "matrix": [4, 5], "x": 5.25, "y": 4.5 }, + { "matrix": [4, 6], "x": 6.25, "y": 4.5 }, + { "matrix": [4, 7], "x": 7.25, "y": 4.5 }, + { "matrix": [4, 8], "x": 8.25, "y": 4.5 }, + { "matrix": [4, 9], "x": 9.25, "y": 4.5 }, + { "matrix": [4, 10], "x": 10.25, "y": 4.5 }, + { "matrix": [4, 11], "x": 11.25, "y": 4.5 }, + { "matrix": [4, 12], "w": 1.75, "x": 12.25, "y": 4.5 }, + { "matrix": [4, 13], "x": 14.25, "y": 4.75 }, + { "matrix": [4, 14], "x": 15.5, "y": 4.5 }, + { "matrix": [4, 15], "x": 16.5, "y": 4.5 }, + { "matrix": [4, 16], "x": 17.5, "y": 4.5 }, + { "matrix": [4, 17], "x": 18.5, "y": 4.5 }, + { "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.5 }, + { "matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 5.5 }, + { "matrix": [5, 2], "w": 1.25, "x": 2.5, "y": 5.5 }, + { "matrix": [5, 6], "w": 6.25, "x": 3.75, "y": 5.5 }, + { "matrix": [5, 9], "x": 10, "y": 5.5 }, + { "matrix": [5, 10], "x": 11, "y": 5.5 }, + { "matrix": [5, 11], "x": 12, "y": 5.5 }, + { "matrix": [5, 12], "x": 13.25, "y": 5.75 }, + { "matrix": [5, 13], "x": 14.25, "y": 5.75 }, + { "matrix": [5, 14], "x": 15.25, "y": 5.75 }, + { "matrix": [5, 15], "x": 16.5, "y": 5.5 }, + { "matrix": [5, 16], "x": 17.5, "y": 5.5 }, + { "matrix": [5, 17], "x": 18.5, "y": 5.5 } + ] + } + } +} diff --git a/keyboards/keycult/keycult1800/keymaps/default/keymap.c b/keyboards/keycult/keycult1800/keymaps/default/keymap.c new file mode 100644 index 00000000000..e596ff2db0e --- /dev/null +++ b/keyboards/keycult/keycult1800/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2024 Yiancar-Designs + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT( /* Base */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_HOME, KC_END, KC_PGUP, KC_PGDN, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + +[1] = LAYOUT( /* FN */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, KC_VOLD, KC_MUTE, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + +}; diff --git a/keyboards/keycult/keycult1800/readme.md b/keyboards/keycult/keycult1800/readme.md new file mode 100644 index 00000000000..bc8574248c7 --- /dev/null +++ b/keyboards/keycult/keycult1800/readme.md @@ -0,0 +1,32 @@ +# Keycult 1800 + +This is a 1800 layout PCB + +* Keyboard Maintainer: [Yiancar](https://yiancar-designs.com/) and on [GitHub](https://github.com/yiancar) +* Hardware Supported: A 1800 keyboard with STM32F072CB or APM compatible +* Hardware Availability: https://keycult.com/ + +## Instructions + +### Build + +Make example for this keyboard (after setting up your build environment): + + make keycult/keycult1800:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +### Reset + +- Unplug +- Hold Escape +- Plug In +- Unplug +- Release Escape + +### Flash + +- Unplug +- Hold Escape +- Plug In +- Flash using QMK Toolbox or dfu-util (`make keycult/keycult1800::dfu-util`) diff --git a/keyboards/keycult/keycult1800/rules.mk b/keyboards/keycult/keycult1800/rules.mk new file mode 100644 index 00000000000..0ab54aaaf71 --- /dev/null +++ b/keyboards/keycult/keycult1800/rules.mk @@ -0,0 +1,2 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF From 32ea7025fbae47fb824419aaba74f95880f34d57 Mon Sep 17 00:00:00 2001 From: Feags <41646528+Feags@users.noreply.github.com> Date: Sun, 22 Dec 2024 13:58:57 -0600 Subject: [PATCH 128/365] [Keyboard] Promenade fixes (#24705) (Missing keys in matrix, other minor changes to keymap) Co-authored-by: Joel Challis Co-authored-by: jack <0x6a73@protonmail.com> --- .../kradoindustries/promenade/keyboard.json | 10 ++++++---- .../promenade/keymaps/default/keymap.c | 20 +++++++++---------- .../promenade/matrix_diagram.md | 8 ++++---- 3 files changed, 20 insertions(+), 18 deletions(-) diff --git a/keyboards/kradoindustries/promenade/keyboard.json b/keyboards/kradoindustries/promenade/keyboard.json index 86330dbc2ee..028ba1b24df 100644 --- a/keyboards/kradoindustries/promenade/keyboard.json +++ b/keyboards/kradoindustries/promenade/keyboard.json @@ -73,8 +73,8 @@ {"matrix": [1, 3], "x":3.5, "y":1}, {"matrix": [1, 4], "x":4.5, "y":1}, {"matrix": [1, 5], "x":5.5, "y":1}, - {"matrix": [1, 6], "x":6.5, "y":1, "h":1.5}, - {"matrix": [1, 7], "x":7.5, "y":1, "h":1.5}, + {"matrix": [1, 6], "x":6.5, "y":1}, + {"matrix": [1, 7], "x":7.5, "y":1}, {"matrix": [1, 8], "x":8.5, "y":1}, {"matrix": [1, 9], "x":9.5, "y":1}, {"matrix": [1, 10], "x":10.5, "y":1}, @@ -88,6 +88,8 @@ {"matrix": [2, 3], "x":3.5, "y":2}, {"matrix": [2, 4], "x":4.5, "y":2}, {"matrix": [2, 5], "x":5.5, "y":2}, + {"matrix": [2, 6], "x":6.5, "y":2}, + {"matrix": [2, 7], "x":7.5, "y":2}, {"matrix": [2, 8], "x":8.5, "y":2}, {"matrix": [2, 9], "x":9.5, "y":2}, {"matrix": [2, 10], "x":10.5, "y":2}, @@ -101,8 +103,8 @@ {"matrix": [3, 3], "x":3.5, "y":3}, {"matrix": [3, 4], "x":4.5, "y":3}, {"matrix": [3, 5], "x":5.5, "y":3}, - {"matrix": [3, 6], "x":6.5, "y":2.5, "h":1.5}, - {"matrix": [3, 7], "x":7.5, "y":2.5, "h":1.5}, + {"matrix": [3, 6], "x":6.5, "y":3}, + {"matrix": [3, 7], "x":7.5, "y":3}, {"matrix": [3, 8], "x":8.5, "y":3}, {"matrix": [3, 9], "x":9.5, "y":3}, {"matrix": [3, 10], "x":10.5, "y":3}, diff --git a/keyboards/kradoindustries/promenade/keymaps/default/keymap.c b/keyboards/kradoindustries/promenade/keymaps/default/keymap.c index aef0f281613..be8401e6083 100644 --- a/keyboards/kradoindustries/promenade/keymaps/default/keymap.c +++ b/keyboards/kradoindustries/promenade/keymaps/default/keymap.c @@ -26,19 +26,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * .-----------------------------------------------------------------------------------------------------------------------------. * | ESC | 1 | 2 | 3 | 4 | 5 | - | = | 6 | 7 | 8 | 9 | 0 | BACKSP | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| - * | TAB | Q | W | E | R | T | [ | ] | Y | U | I | O | P | ' | + * | TAB | Q | W | E | R | T | [ | ] | Y | U | I | O | P | \ | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| - * | CAP LK | A | S | D | F | G | | | H | J | K | L | ; | ENTER | + * | CAP LK | A | S | D | F | G | HOME | PG UP | H | J | K | L | ; | ENTER | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| * | LSHIFT | Z | X | C | V | B | END | PG DN | N | M | , | . | / | RSHIFT | * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------| - * | LCTRL | LGUI | FN | LALT | SPACE | SPACE | SPACE | SPACE | SPACE | LEFT | DOWN | UP | RIGHT | RCTRL | + * | LCTRL | LGUI | LALT | FN | SPACE | SPACE | SPACE | SPACE | LEFT | DOWN | UP | RIGHT | RCTRL | * '-----------------------------------------------------------------------------------------------------------------------------' */ [_BASE] = LAYOUT_all( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_QUOT, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LCTL, KC_LGUI, KC_LALT, MO(_FN), KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_RCTL ), @@ -47,20 +47,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * .-----------------------------------------------------------------------------------------------------------------------------. * | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DEL | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| - * | | Home | Up | End | PgUp | | | | | | | | PRT SC | | + * | | HOME | UP | END | PG UP | | | | | | | | PRT SC | | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| - * | | Left | Down | Right | PgDn | | | | | | | | | Reset | + * | | LEFT | DOWN | RIGHT | PG DN | | | | | | | | ' | RGB Off| * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| * | | | | | | | | | | MUTE | VOL DN | VOL UP | \ | | * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------| - * | | | | | | | | | | | | | | Reset | + * | | | | | | ENTER | ENTER | BACKSP | | | | | Reset | * '-----------------------------------------------------------------------------------------------------------------------------' */ [_FN] = LAYOUT_all( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, - _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, _______, _______, _______, _______, QK_BOOT, + _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, KC_QUOT, UG_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_BSLS, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT + _______, _______, _______, _______, _______, KC_ENT, KC_ENT, KC_BSPC, _______, _______, _______, _______, QK_BOOT ) }; diff --git a/keyboards/kradoindustries/promenade/matrix_diagram.md b/keyboards/kradoindustries/promenade/matrix_diagram.md index 086471b8b9a..3c205c9a993 100644 --- a/keyboards/kradoindustries/promenade/matrix_diagram.md +++ b/keyboards/kradoindustries/promenade/matrix_diagram.md @@ -5,10 +5,10 @@ │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │ ├─────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼─────┤ │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ -├─────┼───┼───┼───┼───┼───┤ │ ├───┼───┼───┼───┼───┼─────┤ -│20 │21 │22 │23 │24 │25 ├───┼───┤28 │29 │2A │2B │2C │2D │ -├─────┼───┼───┼───┼───┼───┤36 │37 ├───┼───┼───┼───┼───┼─────┤ -│30 │31 │32 │33 │34 │35 │ │ │38 │39 │3A │3B │3C │3D │ +├─────┼───┼───┼───┼───┼───├───┼───┼───┼───┼───┼───┼───┼─────┤ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ +├─────┼───┼───┼───┼───┼───├───┼───┼───┼───┼───┼───┼───┼─────┤ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ ├─────┼───┼───┼───┼───┼───┼───┴───┼───┼───┼───┼───┼───┼─────┤ │40 │41 │42 │43 │44 │45 │46 │48 │49 │4A │4B │4C │4D │ └─────┴───┴───┴───┴───┴───┴───────┴───┴───┴───┴───┴───┴─────┘ From 58807b02887c116a22f860cd80d5b94ddd77122b Mon Sep 17 00:00:00 2001 From: J <12501551+NBeing@users.noreply.github.com> Date: Sun, 22 Dec 2024 15:23:14 -0500 Subject: [PATCH 129/365] Clarify keymap location and format in newbs_building_firmware.md (#24663) --- docs/newbs_building_firmware.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/newbs_building_firmware.md b/docs/newbs_building_firmware.md index f3afd6a8968..f5e529b9cee 100644 --- a/docs/newbs_building_firmware.md +++ b/docs/newbs_building_firmware.md @@ -42,7 +42,7 @@ Look at the output from that command, you should see something like this: Ψ Created a new keymap called in: /home/me/qmk_firmware/keyboards/clueboard/66/rev3/keymaps/. ``` -This is the location of your new `keymap.c` file. +This is the location of your new keymap file. Your keyboards default keymap file may be a `.json` file or a `.c` file. If your keymap is a `.json` file it can be converted to a `.c` file using QMK's [`json2c`](cli_commands#qmk-json2c) utility. ## Open `keymap.c` In Your Favorite Text Editor From b4ece24c7dfa741ddef70a92166cd21930df55fd Mon Sep 17 00:00:00 2001 From: Less/Rikki <86894501+lesshonor@users.noreply.github.com> Date: Sun, 22 Dec 2024 16:03:03 -0500 Subject: [PATCH 130/365] move ymdk/id75 to revision (#24590) --- data/mappings/keyboard_aliases.hjson | 3 + keyboards/ymdk/id75/{ => f103}/board.h | 0 keyboards/ymdk/id75/{ => f103}/config.h | 0 keyboards/ymdk/id75/{ => f103}/halconf.h | 0 keyboards/ymdk/id75/f103/keyboard.json | 13 + keyboards/ymdk/id75/{ => f103}/mcuconf.h | 0 keyboards/ymdk/id75/{ => f103}/rules.mk | 0 .../ymdk/id75/{keyboard.json => info.json} | 231 +++++++++--------- keyboards/ymdk/id75/readme.md | 12 +- 9 files changed, 133 insertions(+), 126 deletions(-) rename keyboards/ymdk/id75/{ => f103}/board.h (100%) rename keyboards/ymdk/id75/{ => f103}/config.h (100%) rename keyboards/ymdk/id75/{ => f103}/halconf.h (100%) create mode 100644 keyboards/ymdk/id75/f103/keyboard.json rename keyboards/ymdk/id75/{ => f103}/mcuconf.h (100%) rename keyboards/ymdk/id75/{ => f103}/rules.mk (100%) rename keyboards/ymdk/id75/{keyboard.json => info.json} (56%) diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index 72f6994c096..098c299e586 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -1515,6 +1515,9 @@ "ymd96": { "target": "ymdk/ymd96" }, + "ymdk/id75": { + "target": "ymdk/id75/f103" + }, "ymdk_np21": { "target": "ymdk/np21" }, diff --git a/keyboards/ymdk/id75/board.h b/keyboards/ymdk/id75/f103/board.h similarity index 100% rename from keyboards/ymdk/id75/board.h rename to keyboards/ymdk/id75/f103/board.h diff --git a/keyboards/ymdk/id75/config.h b/keyboards/ymdk/id75/f103/config.h similarity index 100% rename from keyboards/ymdk/id75/config.h rename to keyboards/ymdk/id75/f103/config.h diff --git a/keyboards/ymdk/id75/halconf.h b/keyboards/ymdk/id75/f103/halconf.h similarity index 100% rename from keyboards/ymdk/id75/halconf.h rename to keyboards/ymdk/id75/f103/halconf.h diff --git a/keyboards/ymdk/id75/f103/keyboard.json b/keyboards/ymdk/id75/f103/keyboard.json new file mode 100644 index 00000000000..5b1974b3f22 --- /dev/null +++ b/keyboards/ymdk/id75/f103/keyboard.json @@ -0,0 +1,13 @@ +{ + "manufacturer": "YMDK", + "bootloader": "uf2boot", + "matrix_pins": { + "cols": ["A10", "A9", "A8", "B15", "B14", "B13", "B12", "A5", "A6", "A4", "A3", "A2", "A1", "A0", "A15"], + "rows": ["B2", "B1", "B0", "A7", "B10"] + }, + "processor": "STM32F103", + "ws2812": { + "driver": "pwm", + "pin": "B9" + } +} diff --git a/keyboards/ymdk/id75/mcuconf.h b/keyboards/ymdk/id75/f103/mcuconf.h similarity index 100% rename from keyboards/ymdk/id75/mcuconf.h rename to keyboards/ymdk/id75/f103/mcuconf.h diff --git a/keyboards/ymdk/id75/rules.mk b/keyboards/ymdk/id75/f103/rules.mk similarity index 100% rename from keyboards/ymdk/id75/rules.mk rename to keyboards/ymdk/id75/f103/rules.mk diff --git a/keyboards/ymdk/id75/keyboard.json b/keyboards/ymdk/id75/info.json similarity index 56% rename from keyboards/ymdk/id75/keyboard.json rename to keyboards/ymdk/id75/info.json index db0c1085428..bbe4d1c73ee 100644 --- a/keyboards/ymdk/id75/keyboard.json +++ b/keyboards/ymdk/id75/info.json @@ -1,8 +1,6 @@ { - "manufacturer": "YMDK", "keyboard_name": "Idobao x YMDK ID75", "maintainer": "qmk", - "bootloader": "uf2boot", "diode_direction": "ROW2COL", "features": { "bootmagic": true, @@ -11,152 +9,143 @@ "nkro": true, "rgb_matrix": true }, - "matrix_pins": { - "cols": ["A10", "A9", "A8", "B15", "B14", "B13", "B12", "A5", "A6", "A4", "A3", "A2", "A1", "A0", "A15"], - "rows": ["B2", "B1", "B0", "A7", "B10"] - }, - "processor": "STM32F103", - "ws2812": { - "driver": "pwm", - "pin": "B9" - }, "rgb_matrix": { "animations": { "alphas_mods": true, - "gradient_up_down": true, - "gradient_left_right": true, - "breathing": true, - "band_sat": true, - "band_val": true, "band_pinwheel_sat": true, "band_pinwheel_val": true, + "band_sat": true, "band_spiral_sat": true, "band_spiral_val": true, + "band_val": true, + "breathing": true, "cycle_all": true, "cycle_left_right": true, - "cycle_up_down": true, - "rainbow_moving_chevron": true, "cycle_out_in": true, "cycle_out_in_dual": true, "cycle_pinwheel": true, "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, "dual_beacon": true, - "rainbow_beacon": true, - "rainbow_pinwheels": true, - "raindrops": true, - "jellybean_raindrops": true, + "gradient_left_right": true, + "gradient_up_down": true, "hue_breathing": true, "hue_pendulum": true, "hue_wave": true, - "pixel_rain": true, + "jellybean_raindrops": true, + "multisplash": true, "pixel_flow": true, "pixel_fractal": true, - "typing_heatmap": true, - "digital_rain": true, - "solid_reactive_simple": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "solid_multisplash": true, "solid_reactive": true, - "solid_reactive_wide": true, - "solid_reactive_multiwide": true, "solid_reactive_cross": true, "solid_reactive_multicross": true, - "solid_reactive_nexus": true, "solid_reactive_multinexus": true, - "splash": true, - "multisplash": true, + "solid_reactive_multiwide": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, "solid_splash": true, - "solid_multisplash": true + "splash": true, + "typing_heatmap": true }, "driver": "ws2812", "layout": [ - {"flags": 4, "matrix": [4, 14], "x": 224, "y": 64}, - {"flags": 4, "matrix": [4, 13], "x": 208, "y": 64}, - {"flags": 4, "matrix": [4, 12], "x": 192, "y": 64}, - {"flags": 4, "matrix": [4, 11], "x": 176, "y": 64}, - {"flags": 4, "matrix": [4, 10], "x": 160, "y": 64}, - {"flags": 4, "matrix": [4, 9], "x": 144, "y": 64}, - {"flags": 4, "matrix": [4, 8], "x": 128, "y": 64}, - {"flags": 4, "matrix": [4, 7], "x": 112, "y": 64}, - {"flags": 4, "matrix": [4, 6], "x": 96, "y": 64}, - {"flags": 4, "matrix": [4, 5], "x": 80, "y": 64}, - {"flags": 4, "matrix": [4, 4], "x": 64, "y": 64}, - {"flags": 4, "matrix": [4, 3], "x": 48, "y": 64}, - {"flags": 4, "matrix": [4, 2], "x": 32, "y": 64}, - {"flags": 4, "matrix": [4, 1], "x": 16, "y": 64}, - {"flags": 4, "matrix": [4, 0], "x": 0, "y": 64}, - {"flags": 4, "matrix": [3, 14], "x": 224, "y": 48}, - {"flags": 4, "matrix": [3, 13], "x": 208, "y": 48}, - {"flags": 4, "matrix": [3, 12], "x": 192, "y": 48}, - {"flags": 4, "matrix": [3, 11], "x": 176, "y": 48}, - {"flags": 4, "matrix": [3, 10], "x": 160, "y": 48}, - {"flags": 4, "matrix": [3, 9], "x": 144, "y": 48}, - {"flags": 4, "matrix": [3, 8], "x": 128, "y": 48}, - {"flags": 4, "matrix": [3, 7], "x": 112, "y": 48}, - {"flags": 4, "matrix": [3, 6], "x": 96, "y": 48}, - {"flags": 4, "matrix": [3, 5], "x": 80, "y": 48}, - {"flags": 4, "matrix": [3, 4], "x": 64, "y": 48}, - {"flags": 4, "matrix": [3, 3], "x": 48, "y": 48}, - {"flags": 4, "matrix": [3, 2], "x": 32, "y": 48}, - {"flags": 4, "matrix": [3, 1], "x": 16, "y": 48}, - {"flags": 4, "matrix": [3, 0], "x": 0, "y": 48}, - {"flags": 4, "matrix": [2, 14], "x": 224, "y": 32}, - {"flags": 4, "matrix": [2, 13], "x": 208, "y": 32}, - {"flags": 4, "matrix": [2, 12], "x": 192, "y": 32}, - {"flags": 4, "matrix": [2, 11], "x": 176, "y": 32}, - {"flags": 4, "matrix": [2, 10], "x": 160, "y": 32}, - {"flags": 4, "matrix": [2, 9], "x": 144, "y": 32}, - {"flags": 4, "matrix": [2, 8], "x": 128, "y": 32}, - {"flags": 4, "matrix": [2, 7], "x": 112, "y": 32}, - {"flags": 4, "matrix": [2, 6], "x": 96, "y": 32}, - {"flags": 4, "matrix": [2, 5], "x": 80, "y": 32}, - {"flags": 4, "matrix": [2, 4], "x": 64, "y": 32}, - {"flags": 4, "matrix": [2, 3], "x": 48, "y": 32}, - {"flags": 4, "matrix": [2, 2], "x": 32, "y": 32}, - {"flags": 4, "matrix": [2, 1], "x": 16, "y": 32}, - {"flags": 4, "matrix": [2, 0], "x": 0, "y": 32}, - {"flags": 4, "matrix": [1, 14], "x": 224, "y": 16}, - {"flags": 4, "matrix": [1, 13], "x": 208, "y": 16}, - {"flags": 4, "matrix": [1, 12], "x": 192, "y": 16}, - {"flags": 4, "matrix": [1, 11], "x": 176, "y": 16}, - {"flags": 4, "matrix": [1, 10], "x": 160, "y": 16}, - {"flags": 4, "matrix": [1, 9], "x": 144, "y": 16}, - {"flags": 4, "matrix": [1, 8], "x": 128, "y": 16}, - {"flags": 4, "matrix": [1, 7], "x": 112, "y": 16}, - {"flags": 4, "matrix": [1, 6], "x": 96, "y": 16}, - {"flags": 4, "matrix": [1, 5], "x": 80, "y": 16}, - {"flags": 4, "matrix": [1, 4], "x": 64, "y": 16}, - {"flags": 4, "matrix": [1, 3], "x": 48, "y": 16}, - {"flags": 4, "matrix": [1, 2], "x": 32, "y": 16}, - {"flags": 4, "matrix": [1, 1], "x": 16, "y": 16}, - {"flags": 4, "matrix": [1, 0], "x": 0, "y": 16}, - {"flags": 4, "matrix": [0, 14], "x": 224, "y": 0}, - {"flags": 4, "matrix": [0, 13], "x": 208, "y": 0}, - {"flags": 4, "matrix": [0, 12], "x": 192, "y": 0}, - {"flags": 4, "matrix": [0, 11], "x": 176, "y": 0}, - {"flags": 4, "matrix": [0, 10], "x": 160, "y": 0}, - {"flags": 4, "matrix": [0, 9], "x": 144, "y": 0}, - {"flags": 4, "matrix": [0, 8], "x": 128, "y": 0}, - {"flags": 4, "matrix": [0, 7], "x": 112, "y": 0}, - {"flags": 4, "matrix": [0, 6], "x": 96, "y": 0}, - {"flags": 4, "matrix": [0, 5], "x": 80, "y": 0}, - {"flags": 4, "matrix": [0, 4], "x": 64, "y": 0}, - {"flags": 4, "matrix": [0, 3], "x": 48, "y": 0}, - {"flags": 4, "matrix": [0, 2], "x": 32, "y": 0}, - {"flags": 4, "matrix": [0, 1], "x": 16, "y": 0}, - {"flags": 4, "matrix": [0, 0], "x": 0, "y": 0}, - {"flags": 2, "x": 0, "y": 64}, - {"flags": 2, "x": 38, "y": 64}, - {"flags": 2, "x": 76, "y": 64}, - {"flags": 2, "x": 114, "y": 64}, - {"flags": 2, "x": 152, "y": 64}, - {"flags": 2, "x": 190, "y": 64}, - {"flags": 2, "x": 224, "y": 64}, - {"flags": 2, "x": 0, "y": 0}, - {"flags": 2, "x": 38, "y": 0}, - {"flags": 2, "x": 76, "y": 0}, - {"flags": 2, "x": 114, "y": 0}, - {"flags": 2, "x": 152, "y": 0}, - {"flags": 2, "x": 190, "y": 0}, - {"flags": 2, "x": 224, "y": 0} + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 208, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 192, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 176, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 160, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 144, "y": 64, "flags": 4}, + {"matrix": [4, 8], "x": 128, "y": 64, "flags": 4}, + {"matrix": [4, 7], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 4], "x": 64, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 32, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 208, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 192, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 208, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 38, "y": 64, "flags": 2}, + {"x": 76, "y": 64, "flags": 2}, + {"x": 114, "y": 64, "flags": 2}, + {"x": 152, "y": 64, "flags": 2}, + {"x": 190, "y": 64, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 38, "y": 0, "flags": 2}, + {"x": 76, "y": 0, "flags": 2}, + {"x": 114, "y": 0, "flags": 2}, + {"x": 152, "y": 0, "flags": 2}, + {"x": 190, "y": 0, "flags": 2}, + {"x": 224, "y": 0, "flags": 2} ], "max_brightness": 128, "sleep": true diff --git a/keyboards/ymdk/id75/readme.md b/keyboards/ymdk/id75/readme.md index 9315745f71d..4f7e779458b 100644 --- a/keyboards/ymdk/id75/readme.md +++ b/keyboards/ymdk/id75/readme.md @@ -5,17 +5,18 @@ A 75-key, 5-row ortholinear keyboard with per-key and underglow RGB LEDs. * Keyboard Maintainer: [The QMK Community](https://github.com/qmk) -* Hardware Supported: [Idobao x YMDK ID75 PCB (APM32F103CBT6)](https://www.aliexpress.com/item/3256804537842097.html) - * This PCB uses an ARM Cortex-M3 MCU with 128kb flash. **It is not the same as `idobao/id75` or `ymdk/ymd75`.** +* Hardware Supported: [Idobao x YMDK ID75](https://www.aliexpress.com/item/3256804537842097.html). **This is not the same PCB as `idobao/id75` or `ymdk/ymd75`.** + This keyboard has had multiple PCB revisions, some of which may not work with the firmware in this repository. **Check your PCB before flashing.** + * `f103`: (Geehy APM32F103CBT6, uf2boot) * Hardware Availability: [YMDK](https://ymdkey.com/products/id75-75-keys-ortholinear-layout-qmk-anodized-aluminum-case-plate-hot-swappable-hot-swap-type-c-pcb-mechanical-keyboard-kit), [AliExpress (YMDK Store)](https://www.aliexpress.com/item/2255800125183974.html), [Amazon](https://www.amazon.com/Ortholinear-Anodized-Aluminum-hot-swappable-Mechanical/dp/B07ZQ8CD88) Make example for this keyboard (after setting up your build environment): - make ymdk/id75:default + make ymdk/id75/f103:default Flashing example for this keyboard: - make ymdk/id75:default:flash + make ymdk/id75/f103:default:flash See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). @@ -27,4 +28,5 @@ Enter the bootloader in 3 ways: * **Physical reset button**: Press the button on the back of the PCB twice in quick succession. * **Keycode in layout**: Press the key mapped to `QK_BOOT`. In the pre-supplied keymaps it is on the second layer, in the bottom-right corner. -After entering the bootloader through one of the three methods above, the keyboard will appear as a USB mass storage device named `MT.KEY`. If the CLI is unable to find this device, the compiled `.uf2` file can be manually copied to it. The keyboard will reboot on completion with the new firmware loaded. +After entering the bootloader through one of the three methods above, the keyboard will appear as a USB mass storage device. If the CLI is unable to find this device, the compiled `.uf2` file can be manually copied to it. The keyboard will reboot on completion with the new firmware loaded. +- `f103`: The volume name is `MT.KEY`. From 18cca2062e889a23933043ec5bdaf3c18cb060e1 Mon Sep 17 00:00:00 2001 From: Bertrand Le Roy Date: Mon, 23 Dec 2024 22:25:37 -0800 Subject: [PATCH 131/365] DecenTKL main keyboard (#24702) --- keyboards/decent/tkl/atari-font.c | 231 ++++++++++++++ keyboards/decent/tkl/config.h | 9 + keyboards/decent/tkl/keyboard.json | 298 ++++++++++++++++++ keyboards/decent/tkl/keymaps/default/keymap.c | 57 ++++ keyboards/decent/tkl/readme.md | 79 +++++ keyboards/decent/tkl/tkl.c | 72 +++++ 6 files changed, 746 insertions(+) create mode 100644 keyboards/decent/tkl/atari-font.c create mode 100644 keyboards/decent/tkl/config.h create mode 100644 keyboards/decent/tkl/keyboard.json create mode 100644 keyboards/decent/tkl/keymaps/default/keymap.c create mode 100644 keyboards/decent/tkl/readme.md create mode 100644 keyboards/decent/tkl/tkl.c diff --git a/keyboards/decent/tkl/atari-font.c b/keyboards/decent/tkl/atari-font.c new file mode 100644 index 00000000000..635e711f525 --- /dev/null +++ b/keyboards/decent/tkl/atari-font.c @@ -0,0 +1,231 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "progmem.h" + +static const unsigned char PROGMEM font[] = { + 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, + 0x00, 0x00, 0xFF, 0xFF, 0x18, 0x18, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, + 0x18, 0x18, 0x1F, 0x1F, 0x00, 0x00, + 0x18, 0x18, 0xFF, 0xFF, 0x00, 0x00, + 0x18, 0x18, 0xF8, 0xF8, 0x00, 0x00, + 0xE0, 0x70, 0x38, 0x1C, 0x0E, 0x07, + 0x07, 0x0E, 0x1C, 0x38, 0x70, 0xE0, + 0x80, 0xC0, 0xF0, 0xF8, 0xFE, 0xFF, + 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, + 0xFF, 0xFE, 0xF8, 0xF0, 0xC0, 0x80, + 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x0F, + 0x0F, 0x0F, 0x0F, 0x00, 0x00, 0x00, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, + 0xF0, 0xF0, 0xF0, 0x00, 0x00, 0x00, + 0x18, 0x58, 0x66, 0x66, 0x58, 0x18, + 0x00, 0x00, 0xF8, 0xF8, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0xFF, 0xFF, 0x18, 0x18, + 0x00, 0x18, 0x3C, 0x3C, 0x18, 0x00, + 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, + 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x18, 0xF8, 0xF8, 0x18, 0x18, + 0x18, 0x18, 0x1F, 0x1F, 0x18, 0x18, + 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1F, 0x1F, 0x18, 0x18, + 0x1F, 0x15, 0x75, 0x50, 0x50, 0x00, + 0x08, 0x0C, 0x7E, 0x0C, 0x08, 0x00, + 0x10, 0x30, 0x7E, 0x30, 0x10, 0x00, + 0x10, 0x38, 0x54, 0x10, 0x10, 0x00, + 0x10, 0x10, 0x54, 0x38, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x5E, 0x00, 0x00, 0x00, + 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, + 0x24, 0x7E, 0x24, 0x7E, 0x24, 0x00, + 0x24, 0x2A, 0x6B, 0x2A, 0x12, 0x00, + 0x4C, 0x2C, 0x10, 0x68, 0x64, 0x00, + 0x30, 0x4A, 0x55, 0x32, 0x50, 0x00, + 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, + 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, + 0x10, 0x54, 0x38, 0x54, 0x10, 0x00, + 0x10, 0x10, 0x7C, 0x10, 0x10, 0x00, + 0x00, 0x80, 0xE0, 0x60, 0x00, 0x00, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, + 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, + 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, + 0x3C, 0x52, 0x4A, 0x46, 0x3C, 0x00, + 0x00, 0x44, 0x7E, 0x40, 0x00, 0x00, + 0x44, 0x62, 0x52, 0x4A, 0x44, 0x00, + 0x22, 0x42, 0x4A, 0x56, 0x22, 0x00, + 0x30, 0x28, 0x24, 0x7E, 0x20, 0x00, + 0x2E, 0x4A, 0x4A, 0x4A, 0x32, 0x00, + 0x3C, 0x4A, 0x4A, 0x4A, 0x30, 0x00, + 0x62, 0x12, 0x0A, 0x06, 0x02, 0x00, + 0x34, 0x4A, 0x4A, 0x4A, 0x34, 0x00, + 0x04, 0x4A, 0x4A, 0x2A, 0x1C, 0x00, + 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x48, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x48, 0x48, 0x48, 0x48, 0x48, 0x00, + 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, + 0x04, 0x02, 0x52, 0x0A, 0x04, 0x00, + 0x3C, 0x42, 0x5A, 0x5A, 0x5C, 0x00, + 0x78, 0x24, 0x22, 0x24, 0x78, 0x00, + 0x7E, 0x4A, 0x4A, 0x4A, 0x34, 0x00, + 0x3C, 0x42, 0x42, 0x42, 0x24, 0x00, + 0x7E, 0x42, 0x42, 0x24, 0x18, 0x00, + 0x7E, 0x4A, 0x4A, 0x4A, 0x42, 0x00, + 0x7E, 0x0A, 0x0A, 0x0A, 0x02, 0x00, + 0x3C, 0x42, 0x42, 0x52, 0x72, 0x00, + 0x7E, 0x08, 0x08, 0x08, 0x7E, 0x00, + 0x00, 0x42, 0x7E, 0x42, 0x00, 0x00, + 0x20, 0x40, 0x40, 0x3E, 0x00, 0x00, + 0x7E, 0x18, 0x24, 0x42, 0x00, 0x00, + 0x7E, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x7E, 0x04, 0x08, 0x04, 0x7E, 0x00, + 0x7E, 0x0C, 0x18, 0x30, 0x7E, 0x00, + 0x3C, 0x42, 0x42, 0x42, 0x3C, 0x00, + 0x7E, 0x12, 0x12, 0x12, 0x0C, 0x00, + 0x3C, 0x42, 0x52, 0x22, 0x5C, 0x00, + 0x7E, 0x12, 0x12, 0x32, 0x4C, 0x00, + 0x04, 0x4A, 0x4A, 0x4A, 0x30, 0x00, + 0x02, 0x02, 0x7E, 0x02, 0x02, 0x00, + 0x7E, 0x40, 0x40, 0x40, 0x7E, 0x00, + 0x1E, 0x20, 0x40, 0x20, 0x1E, 0x00, + 0x7E, 0x20, 0x10, 0x20, 0x7E, 0x00, + 0x42, 0x24, 0x18, 0x24, 0x42, 0x00, + 0x06, 0x08, 0x70, 0x08, 0x06, 0x00, + 0x62, 0x52, 0x4A, 0x46, 0x42, 0x00, + 0x00, 0x7E, 0x42, 0x42, 0x00, 0x00, + 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, + 0x00, 0x00, 0x42, 0x42, 0x7E, 0x00, + 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x18, 0x3C, 0x7E, 0x7E, 0x3C, 0x18, + 0x20, 0x54, 0x54, 0x54, 0x78, 0x00, + 0x7E, 0x48, 0x48, 0x48, 0x30, 0x00, + 0x00, 0x38, 0x44, 0x44, 0x44, 0x00, + 0x30, 0x48, 0x48, 0x48, 0x7E, 0x00, + 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, + 0x00, 0x08, 0x7C, 0x0A, 0x0A, 0x00, + 0x98, 0xA4, 0xA4, 0xA4, 0x7C, 0x00, + 0x7E, 0x08, 0x08, 0x08, 0x70, 0x00, + 0x00, 0x48, 0x7A, 0x40, 0x00, 0x00, + 0x00, 0x80, 0x80, 0x80, 0x7A, 0x00, + 0x00, 0x7E, 0x10, 0x28, 0x40, 0x00, + 0x00, 0x42, 0x7E, 0x40, 0x00, 0x00, + 0x7C, 0x0C, 0x18, 0x0C, 0x78, 0x00, + 0x7C, 0x04, 0x04, 0x04, 0x78, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, + 0x00, 0xFC, 0x24, 0x24, 0x18, 0x00, + 0x00, 0x18, 0x24, 0x24, 0xFC, 0x00, + 0x00, 0x7C, 0x04, 0x04, 0x08, 0x00, + 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, + 0x00, 0x04, 0x3E, 0x44, 0x44, 0x00, + 0x3C, 0x40, 0x40, 0x40, 0x7C, 0x00, + 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, + 0x1C, 0x70, 0x38, 0x70, 0x1C, 0x00, + 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, + 0x8C, 0x90, 0x90, 0x50, 0x3C, 0x00, + 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, + 0x18, 0x5C, 0x7E, 0x7E, 0x5C, 0x18, + 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x1E, 0x06, 0x0A, 0x72, 0x00, 0x00, + 0x00, 0x08, 0x1C, 0x3E, 0x7F, 0x00, + 0x00, 0x7F, 0x3E, 0x1C, 0x08, 0x00, + 0x7E, 0xD5, 0xD5, 0xD5, 0xD5, 0x7E, + 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, + 0xFE, 0xCF, 0x33, 0xE3, 0xC1, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, + 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x03, 0x01, 0x01, 0xF1, 0xF1, 0xF1, + 0xE1, 0x03, 0x03, 0x0F, 0xFF, 0x03, + 0x01, 0x01, 0x31, 0x31, 0x31, 0x31, + 0x31, 0xFF, 0x0F, 0x03, 0x03, 0xE1, + 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xFF, + 0x03, 0x01, 0x01, 0x31, 0x31, 0x31, + 0x31, 0x31, 0xFF, 0x03, 0x01, 0x01, + 0xC1, 0x03, 0x0F, 0x3F, 0xFF, 0x01, + 0x01, 0x01, 0xFF, 0xF1, 0xF1, 0xF1, + 0x01, 0x01, 0x01, 0x01, 0xF1, 0xF1, + 0xF1, 0xFF, 0x01, 0x01, 0x01, 0x01, + 0x0F, 0x07, 0x03, 0xC1, 0xE1, 0xF1, + 0xF9, 0xFD, 0xFF, 0x01, 0x01, 0x01, + 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, + 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, + 0x00, 0x00, 0x4C, 0x5A, 0x32, 0x00, + 0x7E, 0x08, 0x70, 0x00, 0x7A, 0x00, + 0x7C, 0x0A, 0x00, 0x3E, 0x48, 0x00, + 0x00, 0x00, 0x7E, 0x0A, 0x0A, 0x00, + 0x78, 0x08, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, + 0xBA, 0xBA, 0xFE, 0x86, 0xEA, 0xEA, + 0x86, 0xFE, 0x82, 0xEA, 0xEA, 0xF6, + 0xFE, 0xB6, 0xAA, 0xDA, 0xFE, 0x7C, + 0x20, 0x30, 0x38, 0x3C, 0x3E, 0x3F, + 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, + 0x3F, 0x3F, 0x3F, 0x38, 0x27, 0x2F, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x30, + 0x3C, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, + 0x30, 0x20, 0xA0, 0x23, 0xA3, 0x23, + 0xA1, 0x30, 0x30, 0x3C, 0x3F, 0x30, + 0x20, 0x20, 0x23, 0x23, 0x23, 0x23, + 0x23, 0x3F, 0x3C, 0x30, 0x20, 0x21, + 0x23, 0x23, 0x23, 0x23, 0x23, 0x3F, + 0x30, 0x20, 0x20, 0x23, 0x23, 0x23, + 0x23, 0x23, 0x3F, 0x20, 0x20, 0x20, + 0x3F, 0x3F, 0x3C, 0x30, 0x20, 0x20, + 0x20, 0x30, 0x3F, 0x3F, 0x3F, 0x3F, + 0x20, 0x20, 0x20, 0x20, 0x3F, 0x3F, + 0x3F, 0x3F, 0x20, 0x20, 0x20, 0x20, + 0x3C, 0x38, 0x30, 0x20, 0x21, 0x23, + 0x27, 0x2F, 0x3F, 0x30, 0x20, 0x20, + 0x20, 0x23, 0x23, 0x23, 0x23, 0x23, + 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01, + 0xBF, 0x9F, 0xCF, 0xE1, 0xFF, 0x81, + 0xFF, 0xE1, 0xCF, 0x9F, 0xBF, 0xFF, + 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7E, 0xFF, 0xB3, 0xA5, 0xCD, 0xFF, + 0x81, 0xF7, 0x8F, 0xFF, 0x85, 0xFF, + 0x83, 0xF5, 0xFF, 0xC1, 0xB7, 0x7E, + 0x7E, 0xFF, 0x81, 0xF5, 0xF5, 0xFF, + 0x87, 0xF7, 0x8F, 0xFF, 0x7E, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, + 0x44, 0x44, 0x00, 0x78, 0x14, 0x14, + 0x78, 0x00, 0x7C, 0x14, 0x14, 0x08, + 0x00, 0x48, 0x54, 0x24, 0x00, 0x00, + 0x7E, 0xFF, 0xC3, 0xBD, 0xBD, 0xFF, + 0xC1, 0xB7, 0xFF, 0x8F, 0xF7, 0xF7, + 0xFF, 0x81, 0xFF, 0x7E, 0x00, 0x00, + 0x7E, 0xFF, 0x83, 0xF5, 0xF5, 0x83, + 0xFF, 0x81, 0xFF, 0xC1, 0xB7, 0x7E, + 0x2A, 0x7F, 0xF1, 0x6F, 0xC1, 0x6F, + 0xF1, 0x7F, 0x2A, 0x00, 0x00, 0x3E, + 0x7F, 0x41, 0x61, 0xFF, 0xBE, 0x00, + 0x7F, 0x7E, 0x0C, 0x18, 0x0C, 0x7E, + 0x7F, 0x00, 0x7F, 0x7F, 0x1C, 0x36, + 0x63, 0x41, 0x00, 0x00, 0x00, 0x7F, + 0x7F, 0x1B, 0x1B, 0x03, 0x00, 0x7B, + 0x7B, 0x00, 0x7C, 0x78, 0x0C, 0x0C, + 0x00, 0x7C, 0x78, 0x0C, 0x7C, 0x78, + 0x0C, 0x7C, 0x78, 0x00, 0x1C, 0x38, + 0x60, 0x38, 0x60, 0x38, 0x1C, 0x00, + 0x20, 0x74, 0x54, 0x54, 0x3C, 0x78, + 0x00, 0x7C, 0x78, 0x0C, 0x0C, 0x00, + 0x38, 0x7C, 0x54, 0x54, 0x5C, 0x58, + 0x00, 0x2A, 0x2A, 0x2A, 0x2A, 0x00, + 0x40, 0x60, 0x30, 0x1E, 0x00, 0x7E, + 0x00, 0x1E, 0x30, 0x60, 0x40, 0x00, + 0x40, 0x60, 0x70, 0x78, 0x7C, 0x7E, + 0x7F, 0x73, 0x65, 0x49, 0x51, 0x63, + 0x7F, 0x7F, 0x41, 0x5D, 0x63, 0x7F, + 0x41, 0x55, 0x5D, 0x7F, 0x63, 0x5D, + 0x5D, 0x7F, 0x41, 0x55, 0x5D, 0x7F, + 0x41, 0x73, 0x67, 0x41, 0x7F, 0x79, + 0x79, 0x41, 0x41, 0x79, 0x79, 0x7F, + 0x41, 0x41, 0x63, 0x41, 0x49, 0x5D, + 0x7F, 0x41, 0x41, 0x4F, 0x4F, 0x7F, + 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01, +}; diff --git a/keyboards/decent/tkl/config.h b/keyboards/decent/tkl/config.h new file mode 100644 index 00000000000..772d6f4a27b --- /dev/null +++ b/keyboards/decent/tkl/config.h @@ -0,0 +1,9 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define I2C1_SDA_PIN GP26 +#define I2C1_SCL_PIN GP27 + +#define OLED_FONT_H "atari-font.c" \ No newline at end of file diff --git a/keyboards/decent/tkl/keyboard.json b/keyboards/decent/tkl/keyboard.json new file mode 100644 index 00000000000..96b472c6fc0 --- /dev/null +++ b/keyboards/decent/tkl/keyboard.json @@ -0,0 +1,298 @@ +{ + "manufacturer": "Bertrand Le roy", + "keyboard_name": "DecenTKL", + "maintainer": "bleroy", + "url": "https://github.com/bleroy/3d-junkyard/blob/main/DecenTKL/", + "tags": ["ansi", "tkl", "rgb", "oled", "encoder", "atari"], + "bootloader": "rp2040", + "processor": "RP2040", + "features": { + "encoder": true, + "bootmagic": true, + "rgb_matrix": true, + "oled": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": false, + "nkro": true + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["GP1", "GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9"], + "rows": ["GP11", "GP12", "GP13", "GP14", "GP15", "GP16", "GP17", "GP18", "GP19", "GP20"] + }, + "bootmagic": { + "matrix": [0, 6] + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "encoder": { + "rotary": [ + { + "pin_a": "GP21", + "pin_b": "GP22", + "resolution": 1 + } + ] + }, + "ws2812": { + "pin": "GP0", + "driver": "vendor" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 6], "x": 0.5, "y": 0, "label": "Esc"}, + {"matrix": [0, 5], "x": 3.5, "y": 0, "label": "F1"}, + {"matrix": [0, 4], "x": 5, "y": 0, "label": "F2"}, + {"matrix": [0, 3], "x": 6.5, "y": 0, "label": "F3"}, + {"matrix": [0, 2], "x": 8, "y": 0, "label": "F4"}, + {"matrix": [0, 1], "x": 9.5, "y": 0, "label": "F5"}, + {"matrix": [0, 0], "x": 11, "y": 0, "label": "F6"}, + {"matrix": [1, 0], "x": 12.5, "y": 0, "label": "F7"}, + {"matrix": [1, 1], "x": 14, "y": 0, "label": "F8"}, + {"matrix": [1, 2], "x": 15.5, "y": 0, "label": "F9"}, + {"matrix": [1, 3], "x": 17, "y": 0, "label": "F10"}, + + {"matrix": [2, 6], "x": 0, "y": 1.5, "label": "`"}, + {"matrix": [2, 5], "x": 1, "y": 1.5, "label": "1"}, + {"matrix": [2, 4], "x": 2, "y": 1.5, "label": "2"}, + {"matrix": [2, 3], "x": 3, "y": 1.5, "label": "3"}, + {"matrix": [2, 2], "x": 4, "y": 1.5, "label": "4"}, + {"matrix": [2, 1], "x": 5, "y": 1.5, "label": "5"}, + {"matrix": [2, 0], "x": 6, "y": 1.5, "label": "6"}, + {"matrix": [3, 0], "x": 7, "y": 1.5, "label": "7"}, + {"matrix": [3, 1], "x": 8, "y": 1.5, "label": "8"}, + {"matrix": [3, 2], "x": 9, "y": 1.5, "label": "9"}, + {"matrix": [3, 3], "x": 10, "y": 1.5, "label": "0"}, + {"matrix": [3, 4], "x": 11, "y": 1.5, "label": "-"}, + {"matrix": [3, 5], "x": 12, "y": 1.5, "label": "="}, + {"matrix": [3, 6], "x": 13, "y": 1.5, "w": 2, "label": "Backspace"}, + {"matrix": [1, 4], "x": 15.5, "y": 1.5, "label": "Insert"}, + {"matrix": [1, 5], "x": 16.5, "y": 1.5, "label": "Home"}, + {"matrix": [1, 6], "x": 17.5, "y": 1.5, "label": "PgUp"}, + + {"matrix": [4, 6], "x": 0, "y": 2.5, "w": 1.5, "label": "Tab"}, + {"matrix": [4, 5], "x": 1.5, "y": 2.5, "label": "Q"}, + {"matrix": [4, 4], "x": 2.5, "y": 2.5, "label": "W"}, + {"matrix": [4, 3], "x": 3.5, "y": 2.5, "label": "E"}, + {"matrix": [4, 2], "x": 4.5, "y": 2.5, "label": "R"}, + {"matrix": [4, 1], "x": 5.5, "y": 2.5, "label": "T"}, + {"matrix": [4, 0], "x": 6.5, "y": 2.5, "label": "Y"}, + {"matrix": [5, 0], "x": 7.5, "y": 2.5, "label": "U"}, + {"matrix": [5, 1], "x": 8.5, "y": 2.5, "label": "I"}, + {"matrix": [5, 2], "x": 9.5, "y": 2.5, "label": "O"}, + {"matrix": [5, 3], "x": 10.5, "y": 2.5, "label": "P"}, + {"matrix": [5, 4], "x": 11.5, "y": 2.5, "label": "["}, + {"matrix": [5, 5], "x": 12.5, "y": 2.5, "label": "]"}, + {"matrix": [5, 6], "x": 13.5, "y": 2.5, "w": 1.5, "label": "\\"}, + {"matrix": [9, 5], "x": 15.5, "y": 2.5, "label": "Del"}, + {"matrix": [9, 6], "x": 16.5, "y": 2.5, "label": "End"}, + {"matrix": [7, 6], "x": 17.5, "y": 2.5, "label": "PgDn"}, + + {"matrix": [6, 6], "x": 0, "y": 3.5, "w": 1.75, "label": "Caps"}, + {"matrix": [6, 5], "x": 1.75, "y": 3.5, "label": "A"}, + {"matrix": [6, 4], "x": 2.75, "y": 3.5, "label": "S"}, + {"matrix": [6, 3], "x": 3.75, "y": 3.5, "label": "D"}, + {"matrix": [6, 2], "x": 4.75, "y": 3.5, "label": "F"}, + {"matrix": [6, 1], "x": 5.75, "y": 3.5, "label": "G"}, + {"matrix": [6, 0], "x": 6.75, "y": 3.5, "label": "H"}, + {"matrix": [7, 0], "x": 7.75, "y": 3.5, "label": "J"}, + {"matrix": [7, 1], "x": 8.75, "y": 3.5, "label": "K"}, + {"matrix": [7, 2], "x": 9.75, "y": 3.5, "label": "L"}, + {"matrix": [7, 3], "x": 10.75, "y": 3.5, "label": ";"}, + {"matrix": [7, 4], "x": 11.75, "y": 3.5, "label": "'"}, + {"matrix": [7, 5], "x": 12.75, "y": 3.5, "w": 2.25, "label": "Return"}, + + {"matrix": [8, 6], "x": 0, "y": 4.5, "w": 2.25, "label": "Shift"}, + {"matrix": [8, 5], "x": 2.25, "y": 4.5, "label": "Z"}, + {"matrix": [8, 4], "x": 3.25, "y": 4.5, "label": "X"}, + {"matrix": [8, 3], "x": 4.25, "y": 4.5, "label": "C"}, + {"matrix": [8, 2], "x": 5.25, "y": 4.5, "label": "V"}, + {"matrix": [8, 1], "x": 6.25, "y": 4.5, "label": "B"}, + {"matrix": [8, 0], "x": 7.25, "y": 4.5, "label": "N"}, + {"matrix": [9, 0], "x": 8.25, "y": 4.5, "label": "M"}, + {"matrix": [9, 1], "x": 9.25, "y": 4.5, "label": ","}, + {"matrix": [9, 2], "x": 10.25, "y": 4.5, "label": "."}, + {"matrix": [9, 3], "x": 11.25, "y": 4.5, "label": "/"}, + {"matrix": [9, 4], "x": 12.25, "y": 4.5, "w": 2.75, "label": "Shift"}, + {"matrix": [4, 7], "x": 16.5, "y": 4.5, "label": "Up"}, + + {"matrix": [0, 8], "x": 0, "y": 5.5, "w": 1.25, "label": "Ctrl"}, + {"matrix": [1, 8], "x": 1.25, "y": 5.5, "w": 1.25, "label": "Atari"}, + {"matrix": [2, 8], "x": 2.5, "y": 5.5, "w": 1.25, "label": "Alt"}, + {"matrix": [3, 8], "x": 3.75, "y": 5.5, "w": 6.25, "label": "Space"}, + {"matrix": [2, 7], "x": 10, "y": 5.5, "w": 1.25, "label": "Alt"}, + {"matrix": [1, 7], "x": 11.25, "y": 5.5, "w": 1.25, "label": "Fn"}, + {"matrix": [3, 7], "x": 12.5, "y": 5.5, "w": 1.25, "label": "Menu"}, + {"matrix": [0, 7], "x": 13.75, "y": 5.5, "w": 1.25, "label": "Ctrl"}, + {"matrix": [4, 8], "x": 15.25, "y": 5.5, "label": "Left"}, + {"matrix": [5, 7], "x": 16.25, "y": 5.5, "label": "Down"}, + {"matrix": [5, 8], "x": 17.25, "y": 5.5, "label": "Right"} + ] + } + }, + "rgb_matrix": { + "max_brightness": 125, + "sleep": true, + "center_point": [77, 32], + "default": { + "animation": "typing_heatmap" + }, + "animations": { + "alphas_mods": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "flower_blooming": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "multisplash": true, + "pixel_flow": true, + "pixel_fractal": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "riverflow": true, + "solid_multisplash": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_splash": true, + "splash": true, + "starlight": true, + "starlight_dual_hue": true, + "starlight_dual_sat": true, + "typing_heatmap": true + }, + "layout": [ + {"matrix": [0, 6], "x": 8, "y": 0, "flags": 4}, + {"matrix": [2, 6], "x": 0, "y": 16, "flags": 4}, + {"matrix": [4, 6], "x": 3, "y": 26, "flags": 4}, + {"matrix": [6, 6], "x": 4, "y": 36, "flags": 4}, + {"matrix": [8, 6], "x": 6, "y": 46, "flags": 1}, + {"matrix": [0, 8], "x": 1, "y": 56, "flags": 1}, + + {"matrix": [0, 5], "x": 40, "y": 0, "flags": 4}, + {"matrix": [2, 5], "x": 10, "y": 16, "flags": 4}, + {"matrix": [4, 5], "x": 15, "y": 26, "flags": 4}, + {"matrix": [6, 5], "x": 17, "y": 36, "flags": 4}, + {"matrix": [8, 5], "x": 22, "y": 46, "flags": 4}, + {"matrix": [1, 8], "x": 14, "y": 56, "flags": 1}, + + {"matrix": [0, 4], "x": 55, "y": 0, "flags": 4}, + {"matrix": [2, 4], "x": 20, "y": 16, "flags": 4}, + {"matrix": [4, 4], "x": 25, "y": 26, "flags": 4}, + {"matrix": [6, 4], "x": 27, "y": 36, "flags": 4}, + {"matrix": [8, 4], "x": 32, "y": 46, "flags": 4}, + {"matrix": [2, 8], "x": 26, "y": 56, "flags": 1}, + + {"matrix": [0, 3], "x": 70, "y": 0, "flags": 4}, + {"matrix": [2, 3], "x": 30, "y": 16, "flags": 4}, + {"matrix": [4, 3], "x": 35, "y": 26, "flags": 4}, + {"matrix": [6, 3], "x": 37, "y": 36, "flags": 4}, + {"matrix": [8, 3], "x": 42, "y": 46, "flags": 4}, + + {"matrix": [0, 2], "x": 85, "y": 0, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [4, 2], "x": 45, "y": 26, "flags": 4}, + {"matrix": [6, 2], "x": 47, "y": 36, "flags": 4}, + {"matrix": [8, 2], "x": 52, "y": 46, "flags": 4}, + + {"matrix": [0, 1], "x": 100, "y": 0, "flags": 4}, + {"matrix": [2, 1], "x": 50, "y": 16, "flags": 4}, + {"matrix": [4, 1], "x": 55, "y": 26, "flags": 4}, + {"matrix": [6, 1], "x": 57, "y": 36, "flags": 4}, + {"matrix": [8, 1], "x": 62, "y": 46, "flags": 4}, + {"matrix": [3, 8], "x": 63, "y": 56, "flags": 4}, + + {"matrix": [0, 0], "x": 115, "y": 0, "flags": 4}, + {"matrix": [2, 0], "x": 60, "y": 16, "flags": 4}, + {"matrix": [4, 0], "x": 65, "y": 26, "flags": 4}, + {"matrix": [6, 0], "x": 67, "y": 36, "flags": 4}, + {"matrix": [8, 0], "x": 72, "y": 46, "flags": 4}, + + {"matrix": [1, 0], "x": 130, "y": 0, "flags": 4}, + {"matrix": [3, 0], "x": 70, "y": 16, "flags": 4}, + {"matrix": [5, 0], "x": 75, "y": 26, "flags": 4}, + {"matrix": [7, 0], "x": 77, "y": 36, "flags": 4}, + {"matrix": [9, 0], "x": 82, "y": 46, "flags": 4}, + + {"matrix": [1, 1], "x": 145, "y": 0, "flags": 4}, + {"matrix": [3, 1], "x": 80, "y": 16, "flags": 4}, + {"matrix": [5, 1], "x": 85, "y": 26, "flags": 4}, + {"matrix": [7, 1], "x": 87, "y": 36, "flags": 4}, + {"matrix": [9, 1], "x": 92, "y": 46, "flags": 4}, + + {"matrix": [1, 2], "x": 160, "y": 0, "flags": 4}, + {"matrix": [3, 2], "x": 90, "y": 16, "flags": 4}, + {"matrix": [5, 2], "x": 95, "y": 26, "flags": 4}, + {"matrix": [7, 2], "x": 97, "y": 36, "flags": 4}, + {"matrix": [9, 2], "x": 102, "y": 46, "flags": 4}, + + {"matrix": [1, 3], "x": 175, "y": 0, "flags": 4}, + {"matrix": [3, 3], "x": 100, "y": 16, "flags": 4}, + {"matrix": [5, 3], "x": 105, "y": 26, "flags": 4}, + {"matrix": [7, 3], "x": 107, "y": 36, "flags": 4}, + {"matrix": [9, 3], "x": 112, "y": 46, "flags": 4}, + {"matrix": [2, 7], "x": 100, "y": 56, "flags": 1}, + + {"matrix": [3, 4], "x": 110, "y": 16, "flags": 4}, + {"matrix": [5, 4], "x": 115, "y": 26, "flags": 4}, + {"matrix": [7, 4], "x": 117, "y": 36, "flags": 4}, + {"matrix": [9, 4], "x": 130, "y": 46, "flags": 1}, + {"matrix": [1, 7], "x": 112, "y": 56, "flags": 1}, + + {"matrix": [3, 5], "x": 120, "y": 16, "flags": 4}, + {"matrix": [5, 5], "x": 125, "y": 26, "flags": 4}, + {"matrix": [7, 5], "x": 132, "y": 36, "flags": 4}, + {"matrix": [3, 7], "x": 125, "y": 56, "flags": 1}, + + {"matrix": [3, 6], "x": 140, "y": 16, "flags": 4}, + {"matrix": [5, 6], "x": 135, "y": 26, "flags": 4}, + {"matrix": [0, 7], "x": 137, "y": 56, "flags": 1}, + + {"matrix": [1, 4], "x": 150, "y": 16, "flags": 4}, + {"matrix": [9, 5], "x": 150, "y": 26, "flags": 4}, + {"matrix": [4, 8], "x": 150, "y": 56, "flags": 4}, + + {"matrix": [1, 5], "x": 160, "y": 16, "flags": 4}, + {"matrix": [9, 6], "x": 160, "y": 26, "flags": 4}, + {"matrix": [4, 7], "x": 160, "y": 46, "flags": 4}, + {"matrix": [5, 7], "x": 160, "y": 56, "flags": 4}, + + {"matrix": [1, 6], "x": 170, "y": 16, "flags": 4}, + {"matrix": [7, 6], "x": 170, "y": 26, "flags": 4}, + {"matrix": [5, 8], "x": 170, "y": 56, "flags": 4} + ], + "driver": "ws2812" + } +} \ No newline at end of file diff --git a/keyboards/decent/tkl/keymaps/default/keymap.c b/keyboards/decent/tkl/keymaps/default/keymap.c new file mode 100644 index 00000000000..cd842cdec37 --- /dev/null +++ b/keyboards/decent/tkl/keymaps/default/keymap.c @@ -0,0 +1,57 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * /─────/ /─────/─────/─────/─────/─────/─────/─────/─────/─────/─────/ + * /Esc / /F1 /F2 /F3 /F4 /F5 /F6 /F7 /F8 /F9 /F10 / + * /─────/ /─────/─────/─────/─────/─────/─────/─────/─────/─────/─────/ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ + * │Ctrl│GUI │Alt │ │ Alt│ Fn │Menu│Ctrl│ │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ + */ + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1) , KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + /* + * / / /MyCmp/HomeP/Calc /Media/ ⏮ / ⏭ / ⏯ / ⏹ /Mute / / + * + * │ │💡│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │V+ │ + * │ │ │🔆│ │ │ │ │ │ │ │ │ │ │BootL│ │ │ │V- │ + * │ │ │🔅│ │ │ │ │ │ │ │ │ │ │ + * │ │ │🎨│ │ │ │ │ │ │ │ │ │ │🗘 │ + * │ │ │ │ │ │ │ │ │ │㉈ │🗘 │㉏ │ + */ + [1] = LAYOUT( + _______, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, _______, + + _______, RM_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, + _______, _______, RM_VALU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, KC_VOLD, + _______, _______, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RM_HUEU, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_NEXT, + _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_PREV, RM_SPDU + ), +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) } +}; +#endif diff --git a/keyboards/decent/tkl/readme.md b/keyboards/decent/tkl/readme.md new file mode 100644 index 00000000000..2069268bfcb --- /dev/null +++ b/keyboards/decent/tkl/readme.md @@ -0,0 +1,79 @@ +# DecenTKL + +*A TKL keyboard inspired by the language design of Atari XE and ST computers* + +* Keyboard Maintainer: [Bertrand Le roy](https://github.com/bleroy/3d-junkyard/blob/main/DecenTKL/) +* Hardware Supported: DecenTKL (Pi Pico based) +* Hardware Availability: Custom built but open-source + +Make example for this keyboard (after setting up your build environment): + + make decent/tkl:default + +Flashing example for this keyboard: + + make decent/tkl:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Press the escape key or the button on the back of the Pi while connecting the keyboard. + +## Special commands + +Fn + F1: Open my computer +Fn + F2: Browser home +Fn + F3: Open calculator +Fn + F4: Open media player +Fn + F5: Previous media +Fn + F6: Next media +Fn + F7: Play media +Fn + F8: Stop media +Fn + F9: Mute +Fn + PgUp: Volume up +Fn + PgDn: Volume down +Fn + 1: Toggle RGB lighting +Fn + Up: Next RGB effect +Fn + Down: Previous RGB effect +Fn + X: Change RGB hue +Fn + S: Lower RGB brightness +Fn + W: Raise RGB brightness +Fn + Left: Lower RGB animation speed +Fn + Right: Raise RGB animation speed + +Fn + \: go into bootloader mode without unplugging the keyboard + +## Layout +```C +/* + * /─────/ /─────/─────/─────/─────/─────/─────/─────/─────/─────/─────/ + * /Esc / /F1 /F2 /F3 /F4 /F5 /F6 /F7 /F8 /F9 /F10 / + * /─────/ /─────/─────/─────/─────/─────/─────/─────/─────/─────/─────/ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ + * │Ctrl│GUI │Alt │ │ Alt│ Fn │Menu│Ctrl│ │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ +*/ +``` + +When holding Fn down: + +```C +/* + * / / /MyCmp/HomeP/Calc /Media/ ⏮ / ⏭ / ⏯ / ⏹ /Mute / / + * + * │ │💡│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │V+ │ + * │ │ │🔆│ │ │ │ │ │ │ │ │ │ │BootL│ │ │ │V- │ + * │ │ │🔅│ │ │ │ │ │ │ │ │ │ │ + * │ │ │🎨│ │ │ │ │ │ │ │ │ │ │🗘 │ + * │ │ │ │ │ │ │ │ │ │㉈ │🗘 │㉏ │ +*/ +``` \ No newline at end of file diff --git a/keyboards/decent/tkl/tkl.c b/keyboards/decent/tkl/tkl.c new file mode 100644 index 00000000000..96f8a9dd5af --- /dev/null +++ b/keyboards/decent/tkl/tkl.c @@ -0,0 +1,72 @@ +// Copyright 2024 B. Le Roy +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +static void render_logo(void) { + static const char PROGMEM qmk_logo[] = { + // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 0x20, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xBC, 0xBD, 0xBE, 0xBF, + 0x00 + }; + + oled_write_P(qmk_logo, false); + oled_write_pixel(126, 0, 1); + oled_write_pixel(127, 0, 1); + oled_write_pixel(126, 1, 1); +} + +static const char PROGMEM caps_on[] = { 0x9C, 0x9D, 0x9E, 0x9F }; +static const char PROGMEM caps_off[] = { 0xBC, 0xBD, 0xBE, 0xBF }; + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + + render_logo(); + + bool caps = host_keyboard_led_state().caps_lock; + + if (caps) { + oled_set_cursor(17, 3); + oled_write_P(caps ? caps_on : caps_off, false); + } + return false; +} + +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { + return false; + } + + bool caps = host_keyboard_led_state().caps_lock; + + if (caps) { + for (uint8_t i = led_min; i < led_max; i++) { + if (g_led_config.flags[i] & LED_FLAG_KEYLIGHT) { + rgb_matrix_set_color(i, RGB_RED); + } + } + } + + if (get_highest_layer(layer_state) > 0) { + uint8_t layer = get_highest_layer(layer_state); + + for (uint8_t row = 0; row < MATRIX_ROWS; ++row) { + for (uint8_t col = 0; col < MATRIX_COLS; ++col) { + uint8_t index = g_led_config.matrix_co[row][col]; + + if (index >= led_min && index < led_max && index != NO_LED && + keymap_key_to_keycode(layer, (keypos_t){col,row}) > KC_TRNS) { + rgb_matrix_set_color(index, RGB_GREEN); + } + } + } + } + + return false; +} From e6fa351d3bb40bc5023850a55f9e47c72f40bdb5 Mon Sep 17 00:00:00 2001 From: Bertrand Le Roy Date: Mon, 23 Dec 2024 22:26:44 -0800 Subject: [PATCH 132/365] DecenTKL numpad (#24696) --- keyboards/decent/numpad/config.h | 8 + keyboards/decent/numpad/keyboard.json | 148 ++++++++++++++++++ .../decent/numpad/keymaps/default/keymap.c | 41 +++++ keyboards/decent/numpad/numpad.c | 111 +++++++++++++ keyboards/decent/numpad/readme.md | 71 +++++++++ 5 files changed, 379 insertions(+) create mode 100644 keyboards/decent/numpad/config.h create mode 100644 keyboards/decent/numpad/keyboard.json create mode 100644 keyboards/decent/numpad/keymaps/default/keymap.c create mode 100644 keyboards/decent/numpad/numpad.c create mode 100644 keyboards/decent/numpad/readme.md diff --git a/keyboards/decent/numpad/config.h b/keyboards/decent/numpad/config.h new file mode 100644 index 00000000000..f5114d3ce03 --- /dev/null +++ b/keyboards/decent/numpad/config.h @@ -0,0 +1,8 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define JOYSTICK_AXIS_COUNT 4 +#define JOYSTICK_BUTTON_COUNT 10 +#define JOYSTICK_HAS_HAT diff --git a/keyboards/decent/numpad/keyboard.json b/keyboards/decent/numpad/keyboard.json new file mode 100644 index 00000000000..eb45c72232f --- /dev/null +++ b/keyboards/decent/numpad/keyboard.json @@ -0,0 +1,148 @@ +{ + "manufacturer": "Bertrand Le roy", + "keyboard_name": "DecenTKL NumPad", + "maintainer": "bleroy", + "url": "https://github.com/bleroy/3d-junkyard/blob/main/DecenTKL/", + "tags": ["ansi", "numpad", "rgb", "atari", "joystick"], + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "rgb_matrix": true, + "extrakey": true, + "mousekey": true, + "joystick": true + }, + "matrix_pins": { + "cols": ["GP0", "GP1", "GP2", "GP3"], + "rows": ["GP4", "GP5", "GP6", "GP7", "GP8", "GP9"] + }, + "processor": "RP2040", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "ws2812": { + "pin": "GP20", + "driver": "vendor" + }, + "bootmagic": { + "matrix": [1, 0] + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0.75, "y": 0, "label": "F11"}, + {"matrix": [0, 1], "x": 2.25, "y": 0, "label": "F12"}, + + {"matrix": [1, 0], "x": 0, "y": 1, "label": "Num"}, + {"matrix": [1, 1], "x": 1, "y": 1, "label": "/"}, + {"matrix": [1, 2], "x": 2, "y": 1, "label": "*"}, + {"matrix": [1, 3], "x": 3, "y": 1, "label": "-"}, + + {"matrix": [2, 0], "x": 0, "y": 2, "label": "7"}, + {"matrix": [2, 1], "x": 1, "y": 2, "label": "8"}, + {"matrix": [2, 2], "x": 2, "y": 2, "label": "9"}, + {"matrix": [2, 3], "x": 3, "y": 2, "h": 2, "label": "+"}, + + {"matrix": [3, 0], "x": 0, "y": 3, "label": "4"}, + {"matrix": [3, 1], "x": 1, "y": 3, "label": "5"}, + {"matrix": [3, 2], "x": 2, "y": 3, "label": "6"}, + + {"matrix": [4, 0], "x": 0, "y": 4, "label": "1"}, + {"matrix": [4, 1], "x": 1, "y": 4, "label": "2"}, + {"matrix": [4, 2], "x": 2, "y": 4, "label": "3"}, + {"matrix": [4, 3], "x": 3, "y": 4, "h": 2, "label": "Enter"}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 2, "label": "0"}, + {"matrix": [5, 2], "x": 2, "y": 5, "label": "."} + ] + } + }, + "rgb_matrix": { + "center_point": [37, 42], + "max_brightness": 125, + "sleep": true, + "animations": { + "alphas_mods": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "flower_blooming": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "multisplash": true, + "pixel_flow": true, + "pixel_fractal": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "riverflow": true, + "solid_multisplash": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_splash": true, + "splash": true, + "starlight": true, + "starlight_dual_hue": true, + "starlight_dual_sat": true, + "typing_heatmap": true + }, + "layout": [ + {"matrix": [0, 0], "x": 56, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 169, "y": 0, "flags": 4}, + + {"matrix": [1, 0], "x": 0, "y": 20, "flags": 4}, + {"matrix": [1, 1], "x": 75, "y": 20, "flags": 4}, + {"matrix": [1, 2], "x": 150, "y": 20, "flags": 4}, + {"matrix": [1, 3], "x": 224, "y": 20, "flags": 4}, + + {"matrix": [2, 0], "x": 0, "y": 31, "flags": 4}, + {"matrix": [2, 1], "x": 75, "y": 31, "flags": 4}, + {"matrix": [2, 2], "x": 150, "y": 31, "flags": 4}, + {"x": 224, "y": 31, "flags": 2}, + + {"matrix": [3, 0], "x": 0, "y": 42, "flags": 4}, + {"matrix": [3, 1], "x": 75, "y": 42, "flags": 4}, + {"matrix": [3, 2], "x": 150, "y": 42, "flags": 4}, + {"matrix": [3, 3], "x": 224, "y": 42, "flags": 4}, + + {"matrix": [4, 0], "x": 0, "y": 53, "flags": 4}, + {"matrix": [4, 1], "x": 75, "y": 53, "flags": 4}, + {"matrix": [4, 2], "x": 150, "y": 53, "flags": 4}, + {"x": 224, "y": 53, "flags": 2}, + + {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4}, + {"x": 85, "y": 75, "flags": 2}, + {"matrix": [5, 2], "x": 150, "y": 64, "flags": 4}, + {"matrix": [5, 3], "x": 224, "y": 64, "flags": 4} + ], + "driver": "ws2812" + } +} diff --git a/keyboards/decent/numpad/keymaps/default/keymap.c b/keyboards/decent/numpad/keymaps/default/keymap.c new file mode 100644 index 00000000000..c450b186d9e --- /dev/null +++ b/keyboards/decent/numpad/keymaps/default/keymap.c @@ -0,0 +1,41 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * /─────/─────/ + * /F11 /F12 / + * /─────/─────/ + * ┌───┬───┬───┬───┐ + * │Num│ / │ * │ - │ + * ├───┼───┼───┼───┤ + * │ 7 │ 8 │ 9 │ + │ + * ├───┼───┼───┤ │ + * │ 4 │ 5 │ 6 │ │ + * ├───┼───┼───┼───┤ + * │ 1 │ 2 │ 3 │Ent│ + * ├───┴───┼───┤ er│ + * │ 0 │ . │ │ + * └───────┴───┴───┘ + */ + [0] = LAYOUT( + KC_F11, KC_F12, + + MO(1), KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, + KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, + KC_KP_4, KC_KP_5, KC_KP_6, + KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, + KC_KP_0, KC_KP_DOT + ), + [1] = LAYOUT( + S(KC_F11), S(KC_F12), + + _______, _______, _______, RM_VALD, + _______, RM_HUEU, _______, RM_VALU, + RM_SPDD, _______, RM_SPDU, + RM_PREV, RM_HUED, RM_NEXT, QK_BOOT, + RM_TOGG, _______ + ), +}; diff --git a/keyboards/decent/numpad/numpad.c b/keyboards/decent/numpad/numpad.c new file mode 100644 index 00000000000..5a8b0327461 --- /dev/null +++ b/keyboards/decent/numpad/numpad.c @@ -0,0 +1,111 @@ +// Copyright 2024 B. Le Roy +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" +#include "analog.h" + +joystick_config_t joystick_axes[JOYSTICK_AXIS_COUNT] = { + [0] = JOYSTICK_AXIS_VIRTUAL, + [1] = JOYSTICK_AXIS_VIRTUAL, + [2] = JOYSTICK_AXIS_VIRTUAL, + [3] = JOYSTICK_AXIS_VIRTUAL +}; + +void keyboard_post_init_kb(void) { + gpio_set_pin_input_high(GP10); // Up1 + gpio_set_pin_input_high(GP11); // Down1 + gpio_set_pin_input_high(GP12); // Left1 + gpio_set_pin_input_high(GP13); // Right1 + gpio_set_pin_input_high(GP14); // Fire1 + gpio_set_pin_input_high(GP15); + gpio_set_pin_input_high(GP16); + gpio_set_pin_input_high(GP17); + gpio_set_pin_input_high(GP18); + gpio_set_pin_input_high(GP19); + + keyboard_post_init_user(); +} + +void set_button_state(int btn, bool state) { + if (state) { + unregister_joystick_button(btn); + } + else { + register_joystick_button(btn); + } +} + +void housekeeping_task_kb(void) { + set_button_state(0, gpio_read_pin(GP16)); + set_button_state(1, gpio_read_pin(GP18)); + set_button_state(2, gpio_read_pin(GP17)); + set_button_state(3, gpio_read_pin(GP15)); + set_button_state(4, gpio_read_pin(GP14)); + set_button_state(5, gpio_read_pin(GP19)); + bool up = !gpio_read_pin(10); + bool down = !gpio_read_pin(11); + bool left = !gpio_read_pin(12); + bool right = !gpio_read_pin(13); + if (up) { + if (left) { + joystick_set_hat(7); + } + else if (right) { + joystick_set_hat(1); + } + else { + joystick_set_hat(0); + } + } + else if (down) { + if (left) { + joystick_set_hat(5); + } + else if (right) { + joystick_set_hat(3); + } + else { + joystick_set_hat(4); + } + } + else if (left) { + joystick_set_hat(6); + } + else if (right) { + joystick_set_hat(2); + } + else { + joystick_set_hat(-1); + } + int16_t analog = analogReadPin(GP26); + joystick_set_axis(0, analog); + analog = analogReadPin(GP27); + joystick_set_axis(1, analog); + analog = analogReadPin(GP28); + joystick_set_axis(2, analog); + analog = analogReadPin(GP29); + joystick_set_axis(3, analog); +} + +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { + return false; + } + + if (get_highest_layer(layer_state) > 0) { + uint8_t layer = get_highest_layer(layer_state); + + for (uint8_t row = 0; row < MATRIX_ROWS; ++row) { + for (uint8_t col = 0; col < MATRIX_COLS; ++col) { + uint8_t index = g_led_config.matrix_co[row][col]; + + if (index >= led_min && index < led_max && index != NO_LED && + keymap_key_to_keycode(layer, (keypos_t){col,row}) > KC_TRNS) { + rgb_matrix_set_color(index, RGB_GREEN); + } + } + } + } + + return false; +} diff --git a/keyboards/decent/numpad/readme.md b/keyboards/decent/numpad/readme.md new file mode 100644 index 00000000000..83436bf8c03 --- /dev/null +++ b/keyboards/decent/numpad/readme.md @@ -0,0 +1,71 @@ +# DecenTKL NumPad + +*A numeric pad to go with the DecenTKL keyboard* + +This numeric pad also includes a 3-port USB hub, enabling the connection of the TKL +keyboard on the back of the pad. + +The pad also has two Atari joystick ports. + +* Keyboard Maintainer: [Bertrand Le roy](https://github.com/bleroy/3d-junkyard/blob/main/DecenTKL/) +* Hardware Supported: DecenTKL (RP2040-based) +* Hardware Availability: Custom built but open-source + +Make example for this keyboard (after setting up your build environment): + + make decent/numpad:default + +Flashing example for this keyboard: + + make decent/numpad:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Press the Num key or the button on the back of the board while connecting the pad. + +## Special commands + +Num + Enter: go into bootloader mode without unplugging the keyboard + +## Layout +```C +/* + * /─────/─────/ + * /F11 /F12 / + * /─────/─────/ + * ┌───┬───┬───┬───┐ + * │Num│ / │ * │ - │ + * ├───┼───┼───┼───┤ + * │ 7 │ 8 │ 9 │ + │ + * ├───┼───┼───┤ │ + * │ 4 │ 5 │ 6 │ │ + * ├───┼───┼───┼───┤ + * │ 1 │ 2 │ 3 │Ent│ + * ├───┴───┼───┤ er│ + * │ 0 │ . │ │ + * └───────┴───┴───┘ + */ +``` + +While holding the Num key: + +```C +/* + * /─────────/─────────/ + * /Shift+F11/Shift+F12/ + * /─────────/─────────/ + * ┌───────┬───────┬───────┬───────┐ + * │ │ │ │Bright-│ + * ├───────┼───────┼───────┼───────┤ + * │ │ Hue + │ │Bright+│ + * ├───────┼───────┼───────┤ │ + * │Speed -│ Swirl │Speed +│ │ + * ├───────┼───────┼───────┼───────┤ + * │Mode - │ Hue - │Mode + │ │ + * ├───────┴───────┼───────┤BootSel│ + * │ on / off │ │ │ + * └───────────────┴───────┴───────┘ + */ +``` From 18f0d11737d0a327255cca52a07ed81116b70920 Mon Sep 17 00:00:00 2001 From: era <73109780+eerraa@users.noreply.github.com> Date: Tue, 24 Dec 2024 16:12:54 +0900 Subject: [PATCH 133/365] [Keyboard] Add SIRIND Brick65S (#24315) Co-authored-by: Joel Challis --- keyboards/era/sirind/brick65s/brick65s.c | 24 ++ keyboards/era/sirind/brick65s/config.h | 8 + keyboards/era/sirind/brick65s/keyboard.json | 251 ++++++++++++++++++ .../sirind/brick65s/keymaps/default/keymap.c | 21 ++ keyboards/era/sirind/brick65s/readme.md | 23 ++ 5 files changed, 327 insertions(+) create mode 100644 keyboards/era/sirind/brick65s/brick65s.c create mode 100644 keyboards/era/sirind/brick65s/config.h create mode 100644 keyboards/era/sirind/brick65s/keyboard.json create mode 100644 keyboards/era/sirind/brick65s/keymaps/default/keymap.c create mode 100644 keyboards/era/sirind/brick65s/readme.md diff --git a/keyboards/era/sirind/brick65s/brick65s.c b/keyboards/era/sirind/brick65s/brick65s.c new file mode 100644 index 00000000000..ae76a3968ca --- /dev/null +++ b/keyboards/era/sirind/brick65s/brick65s.c @@ -0,0 +1,24 @@ +// Copyright 2024 Hyojin Bak (@eerraa) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(0, 200, 0, 0); + } else { + rgb_matrix_set_color(0, 0, 0, 0); + } + + if (host_keyboard_led_state().scroll_lock) { + rgb_matrix_set_color(1, 200, 0, 0); + } else { + rgb_matrix_set_color(1, 0, 0, 0); + } + + return true; +} \ No newline at end of file diff --git a/keyboards/era/sirind/brick65s/config.h b/keyboards/era/sirind/brick65s/config.h new file mode 100644 index 00000000000..6bcd5812905 --- /dev/null +++ b/keyboards/era/sirind/brick65s/config.h @@ -0,0 +1,8 @@ +// Copyright 2024 Hyojin Bak (@eerraa) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* Reset */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U diff --git a/keyboards/era/sirind/brick65s/keyboard.json b/keyboards/era/sirind/brick65s/keyboard.json new file mode 100644 index 00000000000..5d6768a93cc --- /dev/null +++ b/keyboards/era/sirind/brick65s/keyboard.json @@ -0,0 +1,251 @@ +{ + "manufacturer": "SIRIND", + "keyboard_name": "Brick65S", + "maintainer": "eerraa", + "bootloader": "rp2040", + "build": { + "debounce_type": "sym_defer_pk" + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP28", "GP11", "GP10", "GP9", "GP8", "GP7", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP14", "GP0", "GP13", "GP12"], + "rows": ["GP27", "GP29", "GP23", "GP24", "GP25"] + }, + "processor": "RP2040", + "rgb_matrix": { + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 8}, + {"matrix": [0, 1], "x": 20, "y": 0, "flags": 8} + ], + "sleep": true + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0012", + "vid": "0x4552" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP26" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15.25, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14.25, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 4, "y": 4.25, "w": 6.25}, + {"matrix": [4, 11], "x": 10.5, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 11.75, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.25, "y": 4.25}, + {"matrix": [4, 14], "x": 14.25, "y": 4.25}, + {"matrix": [4, 15], "x": 15.25, "y": 4.25} + ] + }, + "LAYOUT_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15.25, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14.25, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 4, "y": 4.25, "w": 6.25}, + {"matrix": [4, 11], "x": 10.5, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 11.75, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.25, "y": 4.25}, + {"matrix": [4, 14], "x": 14.25, "y": 4.25}, + {"matrix": [4, 15], "x": 15.25, "y": 4.25} + ] + }, + "LAYOUT_ansi_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15.25, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14.25, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 4, "y": 4.25, "w": 6.25}, + {"matrix": [4, 11], "x": 10.5, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 11.75, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.25, "y": 4.25}, + {"matrix": [4, 14], "x": 14.25, "y": 4.25}, + {"matrix": [4, 15], "x": 15.25, "y": 4.25} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/era/sirind/brick65s/keymaps/default/keymap.c b/keyboards/era/sirind/brick65s/keymaps/default/keymap.c new file mode 100644 index 00000000000..3798c980dbc --- /dev/null +++ b/keyboards/era/sirind/brick65s/keymaps/default/keymap.c @@ -0,0 +1,21 @@ +// Copyright 2023 Hyojin Bak (@eerraa) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC, KC_INS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_PGUP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, KC_PGDN, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLU, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/era/sirind/brick65s/readme.md b/keyboards/era/sirind/brick65s/readme.md new file mode 100644 index 00000000000..e173ba4e737 --- /dev/null +++ b/keyboards/era/sirind/brick65s/readme.md @@ -0,0 +1,23 @@ +# Brick65S, Solder ver + +* Keyboard Maintainer: [ERA](https://github.com/eerraa) +* Hardware supported: SIRIND Brick65 +* Hardware availability: [Syryan](https://srind.mysoho.com/) + +Make example for this keyboard (after setting up your build environment): + + make era/sirind/brick65s:default + +Flashing example for this keyboard: + + make era/sirind/brick65s:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at ESC(0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly short the `RESET` and `GND` pads on the SWD header twice, or short the `BOOT` header and plug in keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file From 0b5e7052f91c1216a4122339337182c96da8f3f6 Mon Sep 17 00:00:00 2001 From: dztech Date: Tue, 24 Dec 2024 15:13:41 +0800 Subject: [PATCH 134/365] add mellow keyboard (#24319) Co-authored-by: jack Co-authored-by: Drashna Jaelre --- keyboards/dztech/mellow/keyboard.json | 298 ++++++++++++++++++ keyboards/dztech/mellow/keymaps/ansi/keymap.c | 39 +++ .../dztech/mellow/keymaps/default/keymap.c | 39 +++ keyboards/dztech/mellow/keymaps/hhkb/keymap.c | 60 ++++ keyboards/dztech/mellow/keymaps/iso/keymap.c | 39 +++ keyboards/dztech/mellow/readme.md | 25 ++ 6 files changed, 500 insertions(+) create mode 100644 keyboards/dztech/mellow/keyboard.json create mode 100644 keyboards/dztech/mellow/keymaps/ansi/keymap.c create mode 100644 keyboards/dztech/mellow/keymaps/default/keymap.c create mode 100644 keyboards/dztech/mellow/keymaps/hhkb/keymap.c create mode 100644 keyboards/dztech/mellow/keymaps/iso/keymap.c create mode 100644 keyboards/dztech/mellow/readme.md diff --git a/keyboards/dztech/mellow/keyboard.json b/keyboards/dztech/mellow/keyboard.json new file mode 100644 index 00000000000..24cd11028c5 --- /dev/null +++ b/keyboards/dztech/mellow/keyboard.json @@ -0,0 +1,298 @@ +{ + "manufacturer": "dztech", + "keyboard_name": "mellow", + "maintainer": "moyi4681", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "GP25" + }, + "matrix_pins": { + "cols": ["GP29", "GP28", "GP27", "GP26", "GP0", "GP13", "GP12", "GP11", "GP10", "GP9", "GP8", "GP7", "GP6", "GP5"], + "rows": ["GP1", "GP2", "GP3", "GP4", "GP24"] + }, + "processor": "RP2040", + "usb": { + "device_version": "1.0.0", + "pid": "0x0007", + "vid": "0x445A" + }, + "community_layouts": [ + "60_ansi", + "60_hhkb", + "60_iso" + ], + "layouts": { + "LAYOUT_60_ansi": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [0, 13], "w": 2, "x": 13, "y": 0 }, + { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "matrix": [3, 12], "w": 2.75, "x": 12.25, "y": 3 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 7], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "LAYOUT_60_iso": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [0, 13], "w": 2, "x": 13, "y": 0 }, + { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "matrix": [1, 13], "x": 12.75, "y": 2 }, + { "h": 2, "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 1 }, + { "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1.25, "y": 3 }, + { "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "matrix": [3, 12], "w": 2.75, "x": 12.25, "y": 3 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 7], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "LAYOUT_60_hhkb": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [0, 13], "x": 13, "y": 0 }, + { "matrix": [2, 12], "x": 14, "y": 0 }, + { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 }, + { "matrix": [3, 13], "x": 14, "y": 3 }, + { "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 }, + { "matrix": [4, 7], "w": 7, "x": 4, "y": 4 }, + { "matrix": [4, 10], "w": 1.5, "x": 11, "y": 4 }, + { "matrix": [4, 11], "x": 12.5, "y": 4 } + ] + }, + "LAYOUT_all": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [0, 13], "x": 13, "y": 0 }, + { "matrix": [2, 12], "x": 14, "y": 0 }, + { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1.25, "y": 3 }, + { "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 }, + { "matrix": [3, 13], "x": 14, "y": 3 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 7], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 } + ] + } + } +} diff --git a/keyboards/dztech/mellow/keymaps/ansi/keymap.c b/keyboards/dztech/mellow/keymaps/ansi/keymap.c new file mode 100644 index 00000000000..867dda96dbf --- /dev/null +++ b/keyboards/dztech/mellow/keymaps/ansi/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2024 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ + [0] = LAYOUT_60_ansi( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ) +}; diff --git a/keyboards/dztech/mellow/keymaps/default/keymap.c b/keyboards/dztech/mellow/keymaps/default/keymap.c new file mode 100644 index 00000000000..a2f0f156658 --- /dev/null +++ b/keyboards/dztech/mellow/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2024 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ + * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│MO1│ + * ├────┼───┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┘ + * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ + [0] = LAYOUT_all( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, _______, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ) +}; diff --git a/keyboards/dztech/mellow/keymaps/hhkb/keymap.c b/keyboards/dztech/mellow/keymaps/hhkb/keymap.c new file mode 100644 index 00000000000..3dfa568b184 --- /dev/null +++ b/keyboards/dztech/mellow/keymaps/hhkb/keymap.c @@ -0,0 +1,60 @@ +/* Copyright 2024 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ Bspc│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ Ctrl │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│MO1│ + * └─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┘ + * │Alt│ GUI │ │ GUI │Alt│ + * └───┴─────┴───────────────────────────┴─────┴───┘ + */ + [0] = LAYOUT_60_hhkb( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT + ), + + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │Pwr│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│Ins│Del│ + * ├───┴─┬─┴───┴───┴───┴───┴───┴───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴───┘ + * │Caps │ Q │ W │ E │ R │ T │ Y │ U │PSc│Scr│Pse│ ↑ │ ] │ Bspc│ + * └─────┘┌───┬───┬───┐──┴┬──┴┌───┬──┴┬──┴┬──┴┬──┴┬──┴┬────────┐ + * │ Ctrl │Vl-│Vl+│Mut│ F │ G │ * │ / │Hom│PgU│ ← │ → │ Enter │ + * ├──────└───┴───┴───┘─┬─┴─┬─└─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┘ + * │ Shift │ Z │ X │ C │ V │ B │ + │ - │End│PgD│ ↓ │ Shift│MO1│ + * └─────┬──┴┬──┴──┬┴───┴───┴───└───┴───┴───┴───┴───┘┬───┬─┴───┘ + * │Alt│ GUI │ │ GUI │Alt│ + * └───┴─────┴───────────────────────────┴─────┴───┘ + */ + [1] = LAYOUT_60_hhkb( + KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, + _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, + _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/dztech/mellow/keymaps/iso/keymap.c b/keyboards/dztech/mellow/keymaps/iso/keymap.c new file mode 100644 index 00000000000..45b9b274654 --- /dev/null +++ b/keyboards/dztech/mellow/keymaps/iso/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2024 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent│ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ + [0] = LAYOUT_60_iso( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ) +}; diff --git a/keyboards/dztech/mellow/readme.md b/keyboards/dztech/mellow/readme.md new file mode 100644 index 00000000000..e8dfa6a26c0 --- /dev/null +++ b/keyboards/dztech/mellow/readme.md @@ -0,0 +1,25 @@ +# dztech/mellow + +A customizable 60% keyboard. + +* Keyboard Maintainer: [dztech](https://github.com/moyi4681) +* Hardware Supported: mellow +* Hardware Availability: [KBDfans](https://kbdfans.com/) + +Make example for this keyboard (after setting up your build environment): + + make dztech/mellow:default + +Flashing example for this keyboard: + + make dztech/mellow:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 276f84a9a804ce4980f81dc2527c32d00575628f Mon Sep 17 00:00:00 2001 From: chalex <68408520+gaclee3b@users.noreply.github.com> Date: Tue, 24 Dec 2024 02:22:22 -0500 Subject: [PATCH 135/365] add chlx piche (#24252) Co-authored-by: Joel Challis Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: chalex --- keyboards/chlx/piche60/keyboard.json | 128 ++++++++++++++++++ .../chlx/piche60/keymaps/default/keymap.c | 34 +++++ keyboards/chlx/piche60/readme.md | 31 +++++ 3 files changed, 193 insertions(+) create mode 100644 keyboards/chlx/piche60/keyboard.json create mode 100644 keyboards/chlx/piche60/keymaps/default/keymap.c create mode 100644 keyboards/chlx/piche60/readme.md diff --git a/keyboards/chlx/piche60/keyboard.json b/keyboards/chlx/piche60/keyboard.json new file mode 100644 index 00000000000..7eafe4f84fa --- /dev/null +++ b/keyboards/chlx/piche60/keyboard.json @@ -0,0 +1,128 @@ +{ + "manufacturer": "chlx bsmt", + "keyboard_name": "piche60", + "maintainer": "gaclee4b", + "bootloader": "atmel-dfu", + "bootmagic": { + "matrix": [1, 1] + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "indicators": { + "caps_lock": "C7", + "compose": "B5", + "num_lock": "B6", + "scroll_lock": "C6", + "on_state": 0 + }, + "matrix_pins": { + "cols": ["D0", "F5", "F7", "E6", "F0", "D4", "D5", "D7", "D3", "D2", "D1", "B7", "B3", "B2", "B1", "B0"], + "rows": ["F4", "F1", "F6", "D6", "B4"] + }, + "processor": "atmega32u4", + "url": "www.github.com/gaclee3b", + "usb": { + "device_version": "1.1.0", + "pid": "0x0611", + "vid": "0x4358" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [1, 1], "x": 0.5, "y": 0}, + + {"matrix": [0, 1], "x": 1.75, "y": 0.25}, + {"matrix": [0, 2], "x": 2.75, "y": 0.25}, + {"matrix": [0, 3], "x": 3.75, "y": 0}, + {"matrix": [0, 4], "x": 4.75, "y": 0.25}, + {"matrix": [0, 5], "x": 5.75, "y": 0.25}, + {"matrix": [0, 6], "x": 6.75, "y": 0.25}, + {"matrix": [0, 7], "x": 7.75, "y": 0.25}, + + {"matrix": [0, 8], "x": 11, "y": 0.25}, + {"matrix": [0, 9], "x": 12, "y": 0.25}, + {"matrix": [0, 10], "x": 13, "y": 0.25}, + {"matrix": [0, 11], "x": 14, "y": 0.25}, + {"matrix": [0, 12], "x": 15, "y": 0}, + {"matrix": [0, 13], "x": 16, "y": 0.25}, + {"matrix": [0, 14], "x": 17, "y": 0.25}, + {"matrix": [0, 15], "x": 18, "y": 0.25}, + + {"matrix": [2, 1], "x": 0.25, "y": 1}, + + {"matrix": [1, 2], "x": 1.5, "y": 1.25, "w": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4.25, "y": 1.25}, + {"matrix": [1, 5], "x": 5.25, "y": 1.25}, + {"matrix": [1, 6], "x": 6.25, "y": 1.25}, + {"matrix": [1, 7], "x": 7.25, "y": 1.25}, + + {"matrix": [1, 8], "x": 10.5, "y": 1.25}, + {"matrix": [1, 9], "x": 11.5, "y": 1.25}, + {"matrix": [1, 10], "x": 12.5, "y": 1.25}, + {"matrix": [1, 11], "x": 13.5, "y": 1.25}, + {"matrix": [1, 12], "x": 14.75, "y": 1.25}, + {"matrix": [1, 13], "x": 15.75, "y": 1.25}, + {"matrix": [1, 14], "x": 16.75, "y": 1.25}, + {"matrix": [1, 15], "x": 17.75, "y": 1.25, "w": 1.5}, + + {"matrix": [3, 1], "x": 0, "y": 2}, + + {"matrix": [2, 2], "x": 1.5, "y": 2.25, "w": 1.75}, + {"matrix": [2, 3], "x": 3.25, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + + {"matrix": [2, 8], "x": 10.75, "y": 2.25}, + {"matrix": [2, 9], "x": 11.75, "y": 2.25}, + {"matrix": [2, 10], "x": 12.75, "y": 2.25}, + {"matrix": [2, 11], "x": 13.75, "y": 2.25}, + {"matrix": [2, 12], "x": 15.25, "y": 2.25}, + {"matrix": [2, 13], "x": 16.25, "y": 2.25}, + {"matrix": [2, 14], "x": 17.25, "y": 2.25, "w": 2.25}, + + {"matrix": [3, 2], "x": 1.5, "y": 3.25, "w": 2.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 5, "y": 3.25}, + {"matrix": [3, 5], "x": 6, "y": 3.25}, + {"matrix": [3, 6], "x": 7, "y": 3.25}, + {"matrix": [3, 7], "x": 8, "y": 3.25}, + + {"matrix": [3, 8], "x": 10.25, "y": 3.25}, + {"matrix": [3, 9], "x": 11.25, "y": 3.25}, + {"matrix": [3, 10], "x": 12.25, "y": 3.25}, + {"matrix": [3, 11], "x": 13.25, "y": 3.25}, + {"matrix": [3, 12], "x": 15, "y": 3.25}, + {"matrix": [3, 13], "x": 16, "y": 3.25}, + {"matrix": [3, 14], "x": 17, "y": 3.25, "w": 1.75}, + {"matrix": [3, 15], "x": 18.75, "y": 3.25}, + + {"matrix": [4, 2], "x": 1.5, "y": 4.25, "w": 1.5}, + {"matrix": [4, 3], "x": 3, "y": 4.25, "w": 1.25}, + {"matrix": [4, 4], "x": 5, "y": 4.25, "w": 1.5}, + {"matrix": [4, 6], "x": 6.5, "y": 4.25, "w": 2}, + {"matrix": [4, 7], "x": 8.5, "y": 4.25}, + {"matrix": [4, 9], "x": 10.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 11], "x": 13, "y": 4.25, "w": 1.5}, + {"matrix": [4, 13], "x": 15.5, "y": 4.25, "w": 1.25}, + {"matrix": [4, 14], "x": 16.75, "y": 4.25, "w": 1.25}, + {"matrix": [4, 15], "x": 18, "y": 4.25, "w": 1.5} + ] + } + } +} diff --git a/keyboards/chlx/piche60/keymaps/default/keymap.c b/keyboards/chlx/piche60/keymaps/default/keymap.c new file mode 100644 index 00000000000..dfd3426a902 --- /dev/null +++ b/keyboards/chlx/piche60/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* +Copyright 2024 Alexander Lee + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL, KC_BSPC, + KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL), + [1] = LAYOUT( + KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, + KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/chlx/piche60/readme.md b/keyboards/chlx/piche60/readme.md new file mode 100644 index 00000000000..de659b0ff7c --- /dev/null +++ b/keyboards/chlx/piche60/readme.md @@ -0,0 +1,31 @@ +# piche60 + +![piche60 PCB](https://i.imgur.com/CBeJSUy.jpeg) + +- 60% alice format keyboard pcb with USB-C and unified daughterboard compatibility. +- Layout adds 3 additional keys in the palm area voids of traditional alice format. +- USB-C can be snapped off and converted into an ai03 C3 compatible daughterboard. +- Left and right halves can be snapped off and connected through 14-pin JST-SH interfaces. +- PCB can be manufactured with top-side USB-C for compatibility with legacy alice PCBs. + +Keyboard Maintainer: [Alexander Lee](https://github.com/gaclee3b) +Hardware Supported: chlx PCB piche60.x.x.x; top-side USB version compatible with most keyboard cases using legacy alice format PCBs (i.e. lubrigante) +Hardware Availability: sales are typically done in-stock as bulk listings on reddit's mechanical keyboard market (r/mechmarket) + +Make example for this keyboard (after setting up your build environment): + + make chlx/piche60:default + +Flashing example for this keyboard: + + make chlx/piche60:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter bootloader mode by any of the following options - +- When unplugged, holding the top-left key (typically ESC) while plugging in the keyboard +- When already plugged in, pressing and releasing the reset button on the pcb bottom behind the CAPSLOCK / A-key region +- When already plugged in, shorting out the two reset metal contacts near the 'z' key (accessible through the switch LED slot) + From 38eb643a82070ebb7f730eca5c840503d5c3c92a Mon Sep 17 00:00:00 2001 From: j-hap <50018017+j-hap@users.noreply.github.com> Date: Tue, 24 Dec 2024 08:23:51 +0100 Subject: [PATCH 136/365] Add keymap-extras for EurKEY layout (#24241) Co-authored-by: Ryan Co-authored-by: Stefan Kerkmann --- .../extras/keycodes_eurkey_0.0.1.hjson | 596 ++++++++++++++++++ docs/reference_keymap_extras.md | 1 + quantum/keymap_extras/keymap_eurkey.h | 166 +++++ 3 files changed, 763 insertions(+) create mode 100644 data/constants/keycodes/extras/keycodes_eurkey_0.0.1.hjson create mode 100644 quantum/keymap_extras/keymap_eurkey.h diff --git a/data/constants/keycodes/extras/keycodes_eurkey_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_eurkey_0.0.1.hjson new file mode 100644 index 00000000000..9ff217cff26 --- /dev/null +++ b/data/constants/keycodes/extras/keycodes_eurkey_0.0.1.hjson @@ -0,0 +1,596 @@ +{ + "aliases": { +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ + * │ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ + "KC_GRV": { + "key": "EU_GRV", + "label": "`", + } + "KC_1": { + "key": "EU_1", + "label": "1", + } + "KC_2": { + "key": "EU_2", + "label": "2", + } + "KC_3": { + "key": "EU_3", + "label": "3", + } + "KC_4": { + "key": "EU_4", + "label": "4", + } + "KC_5": { + "key": "EU_5", + "label": "5", + } + "KC_6": { + "key": "EU_6", + "label": "6", + } + "KC_7": { + "key": "EU_7", + "label": "7", + } + "KC_8": { + "key": "EU_8", + "label": "8", + } + "KC_9": { + "key": "EU_9", + "label": "9", + } + "KC_0": { + "key": "EU_0", + "label": "0", + } + "KC_MINS": { + "key": "EU_MINS", + "label": "-", + } + "KC_EQL": { + "key": "EU_EQL", + "label": "=", + } + "KC_Q": { + "key": "EU_Q", + "label": "Q", + } + "KC_W": { + "key": "EU_W", + "label": "W", + } + "KC_E": { + "key": "EU_E", + "label": "E", + } + "KC_R": { + "key": "EU_R", + "label": "R", + } + "KC_T": { + "key": "EU_T", + "label": "T", + } + "KC_Y": { + "key": "EU_Y", + "label": "Y", + } + "KC_U": { + "key": "EU_U", + "label": "U", + } + "KC_I": { + "key": "EU_I", + "label": "I", + } + "KC_O": { + "key": "EU_O", + "label": "O", + } + "KC_P": { + "key": "EU_P", + "label": "P", + } + "KC_LBRC": { + "key": "EU_LBRC", + "label": "[", + } + "KC_RBRC": { + "key": "EU_RBRC", + "label": "]", + } + "KC_BSLS": { + "key": "EU_BSLS", + "label": "\\", + } + "KC_A": { + "key": "EU_A", + "label": "A", + } + "KC_S": { + "key": "EU_S", + "label": "S", + } + "KC_D": { + "key": "EU_D", + "label": "D", + } + "KC_F": { + "key": "EU_F", + "label": "F", + } + "KC_G": { + "key": "EU_G", + "label": "G", + } + "KC_H": { + "key": "EU_H", + "label": "H", + } + "KC_J": { + "key": "EU_J", + "label": "J", + } + "KC_K": { + "key": "EU_K", + "label": "K", + } + "KC_L": { + "key": "EU_L", + "label": "L", + } + "KC_SCLN": { + "key": "EU_SCLN", + "label": ";", + } + "KC_QUOT": { + "key": "EU_QUOT", + "label": "'", + } + "KC_Z": { + "key": "EU_Z", + "label": "Z", + } + "KC_X": { + "key": "EU_X", + "label": "X", + } + "KC_C": { + "key": "EU_C", + "label": "C", + } + "KC_V": { + "key": "EU_V", + "label": "V", + } + "KC_B": { + "key": "EU_B", + "label": "B", + } + "KC_N": { + "key": "EU_N", + "label": "N", + } + "KC_M": { + "key": "EU_M", + "label": "M", + } + "KC_COMM": { + "key": "EU_COMM", + "label": ",", + } + "KC_DOT": { + "key": "EU_DOT", + "label": ".", + } + "KC_SLSH": { + "key": "EU_SLSH", + "label": "/", + } +/* Shifted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ { │ } │ | │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ │ │ │ │ │ │ │ │ │ │ : │ " │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ + * │ │ │ │ │ │ │ │ │ < │ > │ ? │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ + "S(EU_GRV)": { + "key": "EU_TILD", + "label": "~", + } + "S(EU_1)": { + "key": "EU_EXLM", + "label": "!", + } + "S(EU_2)": { + "key": "EU_AT", + "label": "@", + } + "S(EU_3)": { + "key": "EU_HASH", + "label": "#", + } + "S(EU_4)": { + "key": "EU_DLR", + "label": "$", + } + "S(EU_5)": { + "key": "EU_PERC", + "label": "%", + } + "S(EU_6)": { + "key": "EU_CIRC", + "label": "^", + } + "S(EU_7)": { + "key": "EU_AMPR", + "label": "&", + } + "S(EU_8)": { + "key": "EU_ASTR", + "label": "*", + } + "S(EU_9)": { + "key": "EU_LPRN", + "label": "(", + } + "S(EU_0)": { + "key": "EU_RPRN", + "label": ")", + } + "S(EU_MINS)": { + "key": "EU_UNDS", + "label": "_", + } + "S(EU_EQL)": { + "key": "EU_PLUS", + "label": "+", + } + "S(EU_LBRC)": { + "key": "EU_LCBR", + "label": "{", + } + "S(EU_RBRC)": { + "key": "EU_RCBR", + "label": "}", + } + "S(EU_BSLS)": { + "key": "EU_PIPE", + "label": "|", + } + "S(EU_SCLN)": { + "key": "EU_COLN", + "label": ":", + } + "S(EU_QUOT)": { + "key": "EU_DQUO", + "label": "\"", + } + "S(EU_COMM)": { + "key": "EU_LABK", + "label": "<", + } + "S(EU_DOT)": { + "key": "EU_RABK", + "label": ">", + } + "S(EU_SLSH)": { + "key": "EU_QUES", + "label": "?", + } +/* AltGr symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ` │ ¡ │ ª │ º │ £ │ € │ ^ │ ˚ │ „ │ “ │ ” │ – │ × │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │ æ │ å │ ë │ ý │ þ │ ÿ │ ü │ ï │ ö │ œ │ « │ » │ ¬ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ │ ä │ ß │ ð │ è │ é │ ù │ ú │ ij │ ø │ ° │ ´ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ + * │ │ à │ á │ ç │ ì │ í │ ñ │ μ │ ò │ ó │ ¿ │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ + "ALGR(EU_GRV)": { + "key": "EU_DGRV", + "label": "` (dead)", + } + "ALGR(EU_1)": { + "key": "EU_IEXL", + "label": "¡", + } + "ALGR(EU_2)": { + "key": "EU_FORD", + "label": "ª", + } + "ALGR(EU_3)": { + "key": "EU_MORD", + "label": "º", + } + "ALGR(EU_4)": { + "key": "EU_PND", + "label": "£", + } + "ALGR(EU_5)": { + "key": "EU_EURO", + "label": "€", + } + "ALGR(EU_6)": { + "key": "EU_DCIR", + "label": "^ (dead)", + } + "ALGR(EU_7)": { + "key": "EU_RNGA", + "label": "˚ (dead)", + } + "ALGR(EU_8)": { + "key": "EU_DLQU", + "label": "„", + } + "ALGR(EU_9)": { + "key": "EU_LDQU", + "label": "“", + } + "ALGR(EU_0)": { + "key": "EU_RDQU", + "label": "”", + } + "ALGR(EU_MINS)": { + "key": "EU_NDSH", + "label": "–", + } + "ALGR(EU_EQL)": { + "key": "EU_MUL", + "label": "×", + } + "ALGR(EU_Q)": { + "key": "EU_AE", + "label": "æ", + } + "ALGR(EU_W)": { + "key": "EU_ARNG", + "label": "Å", + } + "ALGR(EU_E)": { + "key": "EU_EDIA", + "label": "Ë", + } + "ALGR(EU_R)": { + "key": "EU_YACU", + "label": "Ý", + } + "ALGR(EU_T)": { + "key": "EU_THRN", + "label": "Þ", + } + "ALGR(EU_Y)": { + "key": "EU_YDIA", + "label": "Ÿ", + } + "ALGR(EU_U)": { + "key": "EU_UDIA", + "label": "Ü", + } + "ALGR(EU_I)": { + "key": "EU_IDIA", + "label": "Ï", + } + "ALGR(EU_O)": { + "key": "EU_ODIA", + "label": "Ö", + } + "ALGR(EU_P)": { + "key": "EU_OE", + "label": "Œ", + } + "ALGR(EU_LBRC)": { + "key": "EU_LDAQ", + "label": "«", + } + "ALGR(EU_RBRC)": { + "key": "EU_RDAQ", + "label": "»", + } + "ALGR(EU_BSLS)": { + "key": "EU_NOT", + "label": "¬", + } + "ALGR(EU_A)": { + "key": "EU_ADIA", + "label": "Ä", + } + "ALGR(EU_S)": { + "key": "EU_SS", + "label": "ß", + } + "ALGR(EU_D)": { + "key": "EU_ETH", + "label": "Ð", + } + "ALGR(EU_F)": { + "key": "EU_EGRV", + "label": "È", + } + "ALGR(EU_G)": { + "key": "EU_EACU", + "label": "É", + } + "ALGR(EU_H)": { + "key": "EU_UGRV", + "label": "Ù", + } + "ALGR(EU_J)": { + "key": "EU_UACU", + "label": "Ú", + } + "ALGR(EU_K)": { + "key": "EU_IJ", + "label": "IJ", + } + "ALGR(EU_L)": { + "key": "EU_OSTR", + "label": "Ø", + } + "ALGR(EU_SCLN)": { + "key": "EU_DEG", + "label": "°", + } + "ALGR(EU_QUOT)": { + "key": "EU_ACUT", + "label": "´ (dead)", + } + "ALGR(EU_Z)": { + "key": "EU_AGRV", + "label": "À", + } + "ALGR(EU_X)": { + "key": "EU_AACU", + "label": "Á", + } + "ALGR(EU_C)": { + "key": "EU_CCED", + "label": "Ç", + } + "ALGR(EU_V)": { + "key": "EU_IGRV", + "label": "Ì", + } + "ALGR(EU_B)": { + "key": "EU_IACU", + "label": "Í", + } + "ALGR(EU_N)": { + "key": "EU_NTIL", + "label": "Ñ", + } + "ALGR(EU_M)": { + "key": "EU_DGRK", + "label": "μ (dead Greek key)", + } + "ALGR(EU_COMM)": { + "key": "EU_OGRV", + "label": "Ò", + } + "ALGR(EU_DOT)": { + "key": "EU_OACU", + "label": "Ó", + } + "ALGR(EU_SLSH)": { + "key": "EU_IQUE", + "label": "¿", + } +/* Shift+AltGr symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ~ │ ¹ │ ² │ ³ │ ¥ │ ¢ │ ˇ │ ¯ │ ‚ │ ‘ │ ’ │ — │ ÷ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ ‹ │ › │ ¦ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ │ │ § │ │ │ │ │ │ │ │ · │ ¨ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ + * │ │ │ │ │ │ │ │ │ │ │ … │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ + "ALGR(EU_TILD)": { + "key": "EU_DTIL", + "label": "~ (dead)", + } + "S(ALGR(EU_1))": { + "key": "EU_SUP1", + "label": "¹", + } + "S(ALGR(EU_2))": { + "key": "EU_SUP2", + "label": "²", + } + "S(ALGR(EU_3))": { + "key": "EU_SUP3", + "label": "³", + } + "ALGR(EU_DLR)": { + "key": "EU_YEN", + "label": "¥", + } + "S(EU_EURO)": { + "key": "EU_CENT", + "label": "¢", + } + "S(EU_DCIR)": { + "key": "EU_CARN", + "label": "ˇ (dead)", + } + "S(ALGR(EU_7))": { + "key": "EU_MACR", + "label": "¯ (dead)", + } + "S(EU_DLQU)": { + "key": "EU_SLQU", + "label": "‚", + } + "S(EU_LDQU)": { + "key": "EU_LSQU", + "label": "‘", + } + "S(EU_RDQU)": { + "key": "EU_RSQU", + "label": "’", + } + "S(EU_NDSH)": { + "key": "EU_MDSH", + "label": "—", + } + "S(EU_MUL)": { + "key": "EU_DIV", + "label": "÷", + } + "S(EU_LDAQ)": { + "key": "EU_LSAQ", + "label": "‹", + } + "S(EU_RDAQ)": { + "key": "EU_RSAQ", + "label": "›", + } + "S(ALGR(EU_BSLS))": { + "key": "EU_BRKP", + "label": "¦", + } + "S(ALGR(EU_S))": { + "key": "EU_SECT", + "label": "§", + } + "S(ALGR(EU_SCLN))": { + "key": "EU_MDDT", + "label": "·", + } + "ALGR(EU_DQUO)": { + "key": "EU_DIAE", + "label": "¨ (dead)", + } + "ALGR(EU_QUES)": { + "key": "EU_ELLP", + "label": "…", + } + } +} \ No newline at end of file diff --git a/docs/reference_keymap_extras.md b/docs/reference_keymap_extras.md index f6b4b8faf68..c8717736513 100644 --- a/docs/reference_keymap_extras.md +++ b/docs/reference_keymap_extras.md @@ -55,6 +55,7 @@ These headers are located in [`quantum/keymap_extras/`](https://github.com/qmk/q |English (US International) |`keymap_us_international.h` |`sendstring_us_international.h` | |English (US International, Linux)|`keymap_us_international_linux.h`| | |Estonian |`keymap_estonian.h` |`sendstring_estonian.h` | +|EurKEY |`keymap_eurkey.h` | | |Farsi |`keymap_farsi.h` | | |Finnish |`keymap_finnish.h` |`sendstring_finnish.h` | |French |`keymap_french.h` |`sendstring_french.h` | diff --git a/quantum/keymap_extras/keymap_eurkey.h b/quantum/keymap_extras/keymap_eurkey.h new file mode 100644 index 00000000000..80e0113fa6e --- /dev/null +++ b/quantum/keymap_extras/keymap_eurkey.h @@ -0,0 +1,166 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +/******************************************************************************* + 88888888888 888 d8b .d888 d8b 888 d8b + 888 888 Y8P d88P" Y8P 888 Y8P + 888 888 888 888 + 888 88888b. 888 .d8888b 888888 888 888 .d88b. 888 .d8888b + 888 888 "88b 888 88K 888 888 888 d8P Y8b 888 88K + 888 888 888 888 "Y8888b. 888 888 888 88888888 888 "Y8888b. + 888 888 888 888 X88 888 888 888 Y8b. 888 X88 + 888 888 888 888 88888P' 888 888 888 "Y8888 888 88888P' + 888 888 + 888 888 + 888 888 + .d88b. .d88b. 88888b. .d88b. 888d888 8888b. 888888 .d88b. .d88888 + d88P"88b d8P Y8b 888 "88b d8P Y8b 888P" "88b 888 d8P Y8b d88" 888 + 888 888 88888888 888 888 88888888 888 .d888888 888 88888888 888 888 + Y88b 888 Y8b. 888 888 Y8b. 888 888 888 Y88b. Y8b. Y88b 888 + "Y88888 "Y8888 888 888 "Y8888 888 "Y888888 "Y888 "Y8888 "Y88888 + 888 + Y8b d88P + "Y88P" +*******************************************************************************/ + +#pragma once +#include "keycodes.h" +// clang-format off + +// Aliases +#define EU_GRV KC_GRV // ` +#define EU_1 KC_1 // 1 +#define EU_2 KC_2 // 2 +#define EU_3 KC_3 // 3 +#define EU_4 KC_4 // 4 +#define EU_5 KC_5 // 5 +#define EU_6 KC_6 // 6 +#define EU_7 KC_7 // 7 +#define EU_8 KC_8 // 8 +#define EU_9 KC_9 // 9 +#define EU_0 KC_0 // 0 +#define EU_MINS KC_MINS // - +#define EU_EQL KC_EQL // = +#define EU_Q KC_Q // Q +#define EU_W KC_W // W +#define EU_E KC_E // E +#define EU_R KC_R // R +#define EU_T KC_T // T +#define EU_Y KC_Y // Y +#define EU_U KC_U // U +#define EU_I KC_I // I +#define EU_O KC_O // O +#define EU_P KC_P // P +#define EU_LBRC KC_LBRC // [ +#define EU_RBRC KC_RBRC // ] +#define EU_BSLS KC_BSLS // (backslash) +#define EU_A KC_A // A +#define EU_S KC_S // S +#define EU_D KC_D // D +#define EU_F KC_F // F +#define EU_G KC_G // G +#define EU_H KC_H // H +#define EU_J KC_J // J +#define EU_K KC_K // K +#define EU_L KC_L // L +#define EU_SCLN KC_SCLN // ; +#define EU_QUOT KC_QUOT // ' +#define EU_Z KC_Z // Z +#define EU_X KC_X // X +#define EU_C KC_C // C +#define EU_V KC_V // V +#define EU_B KC_B // B +#define EU_N KC_N // N +#define EU_M KC_M // M +#define EU_COMM KC_COMM // , +#define EU_DOT KC_DOT // . +#define EU_SLSH KC_SLSH // / +#define EU_TILD S(EU_GRV) // ~ +#define EU_EXLM S(EU_1) // ! +#define EU_AT S(EU_2) // @ +#define EU_HASH S(EU_3) // # +#define EU_DLR S(EU_4) // $ +#define EU_PERC S(EU_5) // % +#define EU_CIRC S(EU_6) // ^ +#define EU_AMPR S(EU_7) // & +#define EU_ASTR S(EU_8) // * +#define EU_LPRN S(EU_9) // ( +#define EU_RPRN S(EU_0) // ) +#define EU_UNDS S(EU_MINS) // _ +#define EU_PLUS S(EU_EQL) // + +#define EU_LCBR S(EU_LBRC) // { +#define EU_RCBR S(EU_RBRC) // } +#define EU_PIPE S(EU_BSLS) // | +#define EU_COLN S(EU_SCLN) // : +#define EU_DQUO S(EU_QUOT) // " +#define EU_LABK S(EU_COMM) // < +#define EU_RABK S(EU_DOT) // > +#define EU_QUES S(EU_SLSH) // ? +#define EU_DGRV ALGR(EU_GRV) // ` (dead) +#define EU_IEXL ALGR(EU_1) // ¡ +#define EU_FORD ALGR(EU_2) // ª +#define EU_MORD ALGR(EU_3) // º +#define EU_PND ALGR(EU_4) // £ +#define EU_EURO ALGR(EU_5) // € +#define EU_DCIR ALGR(EU_6) // ^ (dead) +#define EU_RNGA ALGR(EU_7) // ˚ (dead) +#define EU_DLQU ALGR(EU_8) // „ +#define EU_LDQU ALGR(EU_9) // “ +#define EU_RDQU ALGR(EU_0) // ” +#define EU_NDSH ALGR(EU_MINS) // – +#define EU_MUL ALGR(EU_EQL) // × +#define EU_AE ALGR(EU_Q) // æ +#define EU_ARNG ALGR(EU_W) // Å +#define EU_EDIA ALGR(EU_E) // Ë +#define EU_YACU ALGR(EU_R) // Ý +#define EU_THRN ALGR(EU_T) // Þ +#define EU_YDIA ALGR(EU_Y) // Ÿ +#define EU_UDIA ALGR(EU_U) // Ü +#define EU_IDIA ALGR(EU_I) // Ï +#define EU_ODIA ALGR(EU_O) // Ö +#define EU_OE ALGR(EU_P) // Œ +#define EU_LDAQ ALGR(EU_LBRC) // « +#define EU_RDAQ ALGR(EU_RBRC) // » +#define EU_NOT ALGR(EU_BSLS) // ¬ +#define EU_ADIA ALGR(EU_A) // Ä +#define EU_SS ALGR(EU_S) // ß +#define EU_ETH ALGR(EU_D) // Ð +#define EU_EGRV ALGR(EU_F) // È +#define EU_EACU ALGR(EU_G) // É +#define EU_UGRV ALGR(EU_H) // Ù +#define EU_UACU ALGR(EU_J) // Ú +#define EU_IJ ALGR(EU_K) // IJ +#define EU_OSTR ALGR(EU_L) // Ø +#define EU_DEG ALGR(EU_SCLN) // ° +#define EU_ACUT ALGR(EU_QUOT) // ´ (dead) +#define EU_AGRV ALGR(EU_Z) // À +#define EU_AACU ALGR(EU_X) // Á +#define EU_CCED ALGR(EU_C) // Ç +#define EU_IGRV ALGR(EU_V) // Ì +#define EU_IACU ALGR(EU_B) // Í +#define EU_NTIL ALGR(EU_N) // Ñ +#define EU_DGRK ALGR(EU_M) // μ (dead Greek key) +#define EU_OGRV ALGR(EU_COMM) // Ò +#define EU_OACU ALGR(EU_DOT) // Ó +#define EU_IQUE ALGR(EU_SLSH) // ¿ +#define EU_DTIL ALGR(EU_TILD) // ~ (dead) +#define EU_SUP1 S(ALGR(EU_1)) // ¹ +#define EU_SUP2 S(ALGR(EU_2)) // ² +#define EU_SUP3 S(ALGR(EU_3)) // ³ +#define EU_YEN ALGR(EU_DLR) // ¥ +#define EU_CENT S(EU_EURO) // ¢ +#define EU_CARN S(EU_DCIR) // ˇ (dead) +#define EU_MACR S(ALGR(EU_7)) // ¯ (dead) +#define EU_SLQU S(EU_DLQU) // ‚ +#define EU_LSQU S(EU_LDQU) // ‘ +#define EU_RSQU S(EU_RDQU) // ’ +#define EU_MDSH S(EU_NDSH) // — +#define EU_DIV S(EU_MUL) // ÷ +#define EU_LSAQ S(EU_LDAQ) // ‹ +#define EU_RSAQ S(EU_RDAQ) // › +#define EU_BRKP S(ALGR(EU_BSLS)) // ¦ +#define EU_SECT S(ALGR(EU_S)) // § +#define EU_MDDT S(ALGR(EU_SCLN)) // · +#define EU_DIAE ALGR(EU_DQUO) // ¨ (dead) +#define EU_ELLP ALGR(EU_QUES) // … + From 40c93bcdc6fc8bd5326db341395c95430d2b05c7 Mon Sep 17 00:00:00 2001 From: James Gzowski Date: Tue, 24 Dec 2024 18:05:43 +0000 Subject: [PATCH 137/365] [Keyboard] Add Somei70 (#24444) * Somei70 addition * Changes made, added VIA keymap, cleaned formatting * keymap via * Create rules.mk * Add files via upload * Delete keyboards/somei70/keymaps/via directory * Fixed RGB and matrix * Layout corrections and LED positions * removal of rules.mk * Moved OLED Settings to somei70.c, formatted C removed TABs, removed _LAYERC * Forgot to include license header * Further changes as per suggestions, replaced _user for _kb within somei70.c * Updated keymap 'changes in Nov24' * Requested changes --- keyboards/somei70/config.h | 5 + keyboards/somei70/keyboard.json | 148 +++++++++++++++++++++ keyboards/somei70/keymaps/default/keymap.c | 19 +++ keyboards/somei70/readme.md | 23 ++++ keyboards/somei70/somei70.c | 87 ++++++++++++ 5 files changed, 282 insertions(+) create mode 100644 keyboards/somei70/config.h create mode 100644 keyboards/somei70/keyboard.json create mode 100644 keyboards/somei70/keymaps/default/keymap.c create mode 100644 keyboards/somei70/readme.md create mode 100644 keyboards/somei70/somei70.c diff --git a/keyboards/somei70/config.h b/keyboards/somei70/config.h new file mode 100644 index 00000000000..1336a1f28b9 --- /dev/null +++ b/keyboards/somei70/config.h @@ -0,0 +1,5 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define OLED_BRIGHTNESS 100 diff --git a/keyboards/somei70/keyboard.json b/keyboards/somei70/keyboard.json new file mode 100644 index 00000000000..70f57d5ff5c --- /dev/null +++ b/keyboards/somei70/keyboard.json @@ -0,0 +1,148 @@ +{ + "manufacturer": "gzowski", + "keyboard_name": "Somei70", + "maintainer": "gzowski", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "oled": true, + "rgb_matrix": true, + "wpm": true + }, + "matrix_pins": { + "cols": ["GP28", "GP27", "GP26", "GP22", "GP20", "GP23", "GP21", "GP16", "GP15", "GP14", "GP13", "GP12", "GP9", "GP8", "GP7"], + "rows": ["GP1", "GP29", "GP6", "GP5", "GP4"] + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "band_sat": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "dual_beacon": true, + "gradient_left_right": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "raindrops": true + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 212, "y": 0, "flags": 4} + ], + "led_flush_limit": 14, + "led_process_limit": 5, + "max_brightness": 200, + "sleep": true + }, + "url": "https://github.com/gzowski/somei70", + "usb": { + "device_version": "1.0.0", + "pid": "0x6F64", + "vid": "0x73CA" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP0" + }, + "layouts": { + "LAYOUT_5x15": { + "layout": [ + {"label": "ESC", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "MINS", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "EQL", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "BSPC", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "TAB", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "LBRC", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "RBRC", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "BSLS", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "CAPS", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": "SCLN", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "QLOT", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "GRV", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "DEL", "matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25}, + {"label": "PGUP", "matrix": [2, 14], "x": 15, "y": 2}, + {"label": "LSFT", "matrix": [3, 0], "x": 0, "y": 3, "w": 2}, + {"label": "Z", "matrix": [3, 1], "x": 2, "y": 3}, + {"label": "X", "matrix": [3, 2], "x": 3, "y": 3}, + {"label": "C", "matrix": [3, 3], "x": 4, "y": 3}, + {"label": "V", "matrix": [3, 4], "x": 5, "y": 3}, + {"label": "B", "matrix": [3, 5], "x": 6, "y": 3}, + {"label": "N", "matrix": [3, 6], "x": 7, "y": 3}, + {"label": "M", "matrix": [3, 7], "x": 8, "y": 3}, + {"label": "COMM", "matrix": [3, 8], "x": 9, "y": 3}, + {"label": "DOT", "matrix": [3, 9], "x": 10, "y": 3}, + {"label": "SLSH", "matrix": [3, 10], "x": 11, "y": 3}, + {"label": "RSFT", "matrix": [3, 11], "x": 12, "y": 3}, + {"label": "INS", "matrix": [3, 12], "x": 13, "y": 3}, + {"label": "UP", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "PGDN", "matrix": [3, 14], "x": 15, "y": 3}, + {"label": "RCTL", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "LGUI", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "LALT", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "SPC", "matrix": [4, 3], "x": 3.75, "y": 4, "w": 2.25}, + {"label": "MUTE", "matrix": [4, 4], "x": 6, "y": 4, "w": 1.75}, + {"label": "ENT", "matrix": [4, 5], "x": 7.75, "y": 4, "w": 2.25}, + {"label": "RALT", "matrix": [4, 6], "x": 10, "y": 4}, + {"label": "MO(1)", "matrix": [4, 7], "x": 11, "y": 4}, + {"label": "RCTL", "matrix": [4, 8], "x": 12, "y": 4}, + {"label": "LEFT", "matrix": [4, 9], "x": 13, "y": 4}, + {"label": "DOWN", "matrix": [4, 10], "x": 14, "y": 4}, + {"label": "RGHT", "matrix": [4, 11], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/somei70/keymaps/default/keymap.c b/keyboards/somei70/keymaps/default/keymap.c new file mode 100644 index 00000000000..2569b8b207f --- /dev/null +++ b/keyboards/somei70/keymaps/default/keymap.c @@ -0,0 +1,19 @@ +// Copyright 2024 James Gzowski +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H +enum custom_layer { _LAYERA, _LAYERB }; +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_LAYERA] = LAYOUT_5x15( + KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS , KC_EQL , KC_BSPC, + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC , KC_RBRC, KC_BSLS, + KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT , KC_GRV , KC_DEL , KC_PGUP, + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT , KC_INS , KC_UP , KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_MUTE, KC_ENT, KC_RALT, MO(_LAYERB), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT +), +[_LAYERB] = LAYOUT_5x15( + KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_PSCR, + KC_TAB , RM_NEXT, RM_VALD, RM_VALU, RM_SPDD, RM_SPDU, RM_HUED, RM_HUEU, RM_SATD, RM_SATU, KC_P , KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_GRV , KC_DEL , KC_PGUP, + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_INS , KC_UP , KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , RM_TOGG, KC_ENT , KC_RALT, _______, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT +)}; diff --git a/keyboards/somei70/readme.md b/keyboards/somei70/readme.md new file mode 100644 index 00000000000..21b80a84112 --- /dev/null +++ b/keyboards/somei70/readme.md @@ -0,0 +1,23 @@ +# Somei70 + +70 key alternative layout + +* Keyboard Maintainer: [James Gzowski](https://github.com/gzowski) +* Hardware Supported: Elite-Pi, Frood, 0xB2 Splinky or similar, requires D9-D15 pins +* Build Guide: [Somei70](https://github.com/gzowski/somei70) + +Make example for this keyboard (after setting up your build environment): + + make somei70:default + +Flashing example for this keyboard: + + make somei70:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the PCB, if using a RP2040 press repeatidly to enter boot mode. +* **Hold down boot loader button on MCU** Hold down the boot loader button on the MCU while plugging in the keyboard diff --git a/keyboards/somei70/somei70.c b/keyboards/somei70/somei70.c new file mode 100644 index 00000000000..5521a673847 --- /dev/null +++ b/keyboards/somei70/somei70.c @@ -0,0 +1,87 @@ +// Copyright 2024 James Gzowski +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H +#ifdef OLED_ENABLE +static uint8_t oled_mode = 0; +static uint8_t esc_press_count = 0; +static uint16_t esc_timer = 0; +// Stats display +void render_stats(void) { + oled_write_P(PSTR("WPM: "), false); + oled_write_ln(get_u8_str(get_current_wpm(), '0'), false); + if (host_keyboard_led_state().caps_lock) { + oled_write_P(PSTR("CAPS: On "), false); + } else { + oled_write_P(PSTR("CAPS: Off "), false); + } + if (keymap_config.nkro) { + oled_write_ln("NKRO: On", false); + } else { + oled_write_ln("NKRO: Off", false); + } + oled_write_P(PSTR("LED Brightness: "), false); + oled_write_ln(get_u8_str(rgblight_get_val(), '0'), false); + oled_write_ln(PSTR("P: 0x6F64 V: 0x73CA"), false); +} +// Static images +static void render_caps(void) { + static const char PROGMEM my_caps[] = { + 0, 128, 192, 192, 248, 120, 8, 8, 24, 24, 48, 96, 96, 176, 24, 12, 4, 6, 6, 30, 60, 48, 48, 240, 240, 16, 16, 16, 16, 16, 16, 16, 16, 16, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 16, 16, 16, 144, 208, 208, 248, 120, 24, 24, 24, 24, 48, 96, 96, 176, 24, 12, 4, 6, 6, 30, 60, 48, 48, 240, 224, 0, 0, 0, 0, 0, 0, 0, 0, 7, 31, 56, 64, 128, 128, 128, 192, 192, 192, 224, 192, 225, 255, 240, 240, 128, 128, 64, 64, 48, 24, 7, 7, 6, 4, 140, 216, 120, 48, 0, 0, 0, 128, 128, 128, 128, 128, 0, 0, 0, 240, + 248, 12, 12, 12, 12, 12, 28, 56, 0, 0, 240, 248, 156, 12, 12, 12, 12, 156, 248, 240, 0, 0, 248, 252, 156, 12, 12, 12, 12, 152, 240, 0, 0, 32, 112, 216, 140, 140, 140, 12, 12, 4, 0, 0, 0, 0, 128, 128, 128, 128, 128, 0, 0, 0, 7, 31, 56, 64, 128, 128, 128, 192, 192, 192, 224, 192, 225, 255, 240, 240, 128, 128, 64, 64, 48, 24, 7, 7, 6, 4, 140, 216, 120, 48, 0, 0, 224, 240, 24, 4, 3, 1, 0, 0, 0, 0, 6, 255, 135, 7, 15, 31, 17, 49, 32, 32, 32, 96, 224, 224, 32, 48, 17, 27, 14, 4, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 15, 31, 48, 48, 48, 48, 48, 56, 28, 0, 0, 63, 63, 3, 1, 1, 1, 1, 3, 63, 63, 0, 0, 63, 63, 3, 3, 3, 3, 3, 1, 0, 0, 0, 16, 48, 48, 49, 49, 49, 27, 14, 4, 0, + 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 224, 240, 24, 4, 3, 1, 0, 0, 0, 0, 6, 255, 135, 7, 15, 31, 17, 49, 32, 32, 32, 96, 224, 224, 32, 48, 17, 27, 14, 4, 0, 0, 3, 7, 6, 30, 60, 48, 32, 48, 48, 24, 12, 7, 7, 12, 16, 32, 96, 96, 120, 124, 60, 12, 15, 15, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 11, 15, 14, 30, 60, 48, 32, 48, 48, 24, 12, 7, 7, 12, 16, 32, 96, 96, 120, 124, 60, 12, 15, 7, 0, 0, 0, 0, 0, 0, 0, + }; + oled_write_raw_P(my_caps, sizeof(my_caps)); +} +static void render_logo(void) { + static const char PROGMEM my_logo[] = { + 0, 128, 192, 192, 248, 120, 8, 8, 24, 24, 48, 96, 96, 176, 24, 12, 4, 6, 6, 30, 60, 48, 48, 240, 240, 16, 16, 16, 16, 16, 16, 16, 16, 16, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 16, 16, 16, 144, 208, 208, 248, 120, 24, 24, 24, 24, 48, 96, 96, 176, 24, 12, 4, 6, 6, 30, 60, 48, 48, 240, 224, 0, 0, 0, 0, 0, 0, 0, 0, 7, 31, 56, 64, 128, 128, 128, 192, 192, 192, 224, 192, 225, 255, 240, 240, 128, 128, 64, 64, 48, 24, 7, 7, 6, 4, 140, 216, 120, 48, 0, 48, 120, 204, 204, 204, 204, 204, 140, 8, 0, 0, + 240, 248, 12, 12, 12, 12, 12, 248, 240, 0, 0, 248, 252, 24, 48, 96, 96, 48, 24, 252, 248, 0, 0, 248, 252, 140, 140, 140, 12, 8, 0, 0, 252, 252, 0, 0, 8, 12, 12, 12, 12, 252, 248, 0, 0, 240, 248, 12, 12, 140, 76, 248, 240, 0, 7, 31, 56, 64, 128, 128, 128, 192, 192, 192, 224, 192, 225, 255, 240, 240, 128, 128, 64, 64, 48, 24, 7, 7, 6, 4, 140, 216, 120, 48, 0, 0, 224, 240, 24, 4, 3, 1, 0, 0, 0, 0, 6, 255, 135, 7, 15, 31, 17, 49, 32, 32, 32, 96, 224, 224, 32, 48, 17, 27, 14, 4, 0, 16, 48, 48, 48, 48, 48, 48, 63, 15, 0, 0, 15, 31, 48, 48, 48, 48, 48, 31, 15, 0, 0, 63, 31, 0, 0, 0, 0, 0, 0, 31, 63, 0, 0, 31, 63, 49, 49, 49, 48, 16, 0, 0, 63, 63, 0, 0, 0, 0, 0, 0, 0, 63, 63, + 0, 0, 15, 31, 50, 49, 48, 48, 31, 15, 0, 224, 240, 24, 4, 3, 1, 0, 0, 0, 0, 6, 255, 135, 7, 15, 31, 17, 49, 32, 32, 32, 96, 224, 224, 32, 48, 17, 27, 14, 4, 0, 0, 3, 7, 6, 30, 60, 48, 32, 48, 48, 24, 12, 7, 7, 12, 16, 32, 96, 96, 120, 124, 60, 12, 15, 15, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 11, 15, 14, 30, 60, 48, 32, 48, 48, 24, 12, 7, 7, 12, 16, 32, 96, 96, 120, 124, 60, 12, 15, 7, 0, 0, 0, 0, 0, 0, 0, + }; + oled_write_raw_P(my_logo, sizeof(my_logo)); +} +// Render chosen display +void render_oled_display(void) { + if (oled_mode == 0) { + if (host_keyboard_led_state().caps_lock) { + render_caps(); + } else { + render_logo(); + } + } else if (oled_mode == 1) { + render_stats(); + } +} +// Rotate 180 degrees +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + return OLED_ROTATION_180; +} +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + render_oled_display(); + return false; +} +// Record keypress +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_ESC: + if (record->event.pressed) { + if (timer_elapsed(esc_timer) > 250) { + esc_press_count = 0; + } + esc_press_count++; + esc_timer = timer_read(); + + if (esc_press_count == 3) { + oled_clear(); + oled_mode = (oled_mode == 0) ? 1 : 0; + esc_press_count = 0; + } + } + break; + } + return process_record_user(keycode, record); +} +#endif From a822545da07f9561e231df15feb68d829c7b507f Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 24 Dec 2024 18:26:08 +0000 Subject: [PATCH 138/365] Set custom effect defines for LED Matrix (#24745) --- builddefs/common_features.mk | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index 7bfd1436e71..bb272099a67 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -433,6 +433,13 @@ ifeq ($(strip $(LED_MATRIX_ENABLE)), yes) SRC += snled27351-mono.c endif + ifeq ($(strip $(LED_MATRIX_CUSTOM_KB)), yes) + OPT_DEFS += -DLED_MATRIX_CUSTOM_KB + endif + + ifeq ($(strip $(LED_MATRIX_CUSTOM_USER)), yes) + OPT_DEFS += -DLED_MATRIX_CUSTOM_USER + endif endif # Deprecated driver names - do not use From 58323017ffe62e91200a0e1c814fc960a7605f08 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Tue, 24 Dec 2024 18:57:30 -0800 Subject: [PATCH 139/365] Add ArteryTek AT32 dfu to udev rules (#24747) --- util/udev/50-qmk.rules | 3 +++ 1 file changed, 3 insertions(+) diff --git a/util/udev/50-qmk.rules b/util/udev/50-qmk.rules index 1cc19b41428..338b4fdbe0f 100644 --- a/util/udev/50-qmk.rules +++ b/util/udev/50-qmk.rules @@ -84,3 +84,6 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="28e9", ATTRS{idProduct}=="0189", TAG+="uacc # WB32 DFU SUBSYSTEMS=="usb", ATTRS{idVendor}=="342d", ATTRS{idProduct}=="dfa0", TAG+="uaccess" + +# AT32 DFU +SUBSYSTEMS=="usb", ATTRS{idVendor}=="2e3c", ATTRS{idProduct}=="df11", TAG+="uaccess" From 93de5335803242f1df93600602ef5725d4df3a4c Mon Sep 17 00:00:00 2001 From: muge <221161+muge@users.noreply.github.com> Date: Thu, 26 Dec 2024 08:58:26 +0000 Subject: [PATCH 140/365] Move cxt_studio keyboard to own folder (#24748) --- data/mappings/keyboard_aliases.hjson | 3 +++ keyboards/cxt_studio/12e4/config.h | 6 +++++ keyboards/cxt_studio/{ => 12e4}/cxt_studio.c | 20 +++++------------ keyboards/cxt_studio/{ => 12e4}/keyboard.json | 2 +- .../{ => 12e4}/keymaps/default/keymap.json | 2 +- keyboards/cxt_studio/{ => 12e4}/readme.md | 10 ++++----- keyboards/cxt_studio/config.h | 22 ------------------- 7 files changed, 22 insertions(+), 43 deletions(-) create mode 100644 keyboards/cxt_studio/12e4/config.h rename keyboards/cxt_studio/{ => 12e4}/cxt_studio.c (68%) rename keyboards/cxt_studio/{ => 12e4}/keyboard.json (98%) rename keyboards/cxt_studio/{ => 12e4}/keymaps/default/keymap.json (90%) rename keyboards/cxt_studio/{ => 12e4}/readme.md (83%) delete mode 100644 keyboards/cxt_studio/config.h diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index 098c299e586..4fd959c4eb2 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -140,6 +140,9 @@ "custommk/genesis": { "target": "custommk/genesis/rev1" }, + "cxt_studio":{ + "target":"cxt_studio/12e4" + }, "daisy": { "target": "ktec/daisy" }, diff --git a/keyboards/cxt_studio/12e4/config.h b/keyboards/cxt_studio/12e4/config.h new file mode 100644 index 00000000000..de0fbad7ec4 --- /dev/null +++ b/keyboards/cxt_studio/12e4/config.h @@ -0,0 +1,6 @@ +// Copyright 2023 Colin Kinloch (@ColinKinloch) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGB_MATRIX_TYPING_HEATMAP_SPREAD 9 diff --git a/keyboards/cxt_studio/cxt_studio.c b/keyboards/cxt_studio/12e4/cxt_studio.c similarity index 68% rename from keyboards/cxt_studio/cxt_studio.c rename to keyboards/cxt_studio/12e4/cxt_studio.c index 2b36905340b..03a15e4d48d 100644 --- a/keyboards/cxt_studio/cxt_studio.c +++ b/keyboards/cxt_studio/12e4/cxt_studio.c @@ -3,8 +3,6 @@ #include "quantum.h" -static uint8_t anim = 0; - #ifdef ENCODER_ENABLE bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { @@ -21,32 +19,26 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { break; case 1: { if (clockwise) { - rgblight_increase_hue(); + rgb_matrix_increase_hue(); } else { - rgblight_decrease_hue(); + rgb_matrix_decrease_hue(); } } break; case 2: { if (clockwise) { - rgblight_increase_val(); + rgb_matrix_increase_val(); } else { - rgblight_decrease_val(); + rgb_matrix_decrease_val(); } } break; case 3: { if (clockwise) { - anim++; + rgb_matrix_step(); } else { - anim--; + rgb_matrix_step_reverse(); } - if (anim >= RGB_MATRIX_EFFECT_MAX) { - anim = 0; - } else if (anim < 0) { - anim = RGB_MATRIX_EFFECT_MAX - 1; - } - rgblight_mode(anim); } break; } diff --git a/keyboards/cxt_studio/keyboard.json b/keyboards/cxt_studio/12e4/keyboard.json similarity index 98% rename from keyboards/cxt_studio/keyboard.json rename to keyboards/cxt_studio/12e4/keyboard.json index 7ee7b52d50c..b48e75f4caa 100644 --- a/keyboards/cxt_studio/keyboard.json +++ b/keyboards/cxt_studio/12e4/keyboard.json @@ -1,6 +1,6 @@ { "manufacturer": "CXT", - "keyboard_name": "cxt_studio", + "keyboard_name": "cxt_studio 12E4", "maintainer": "ColinKinloch", "bootloader": "atmel-dfu", "diode_direction": "ROW2COL", diff --git a/keyboards/cxt_studio/keymaps/default/keymap.json b/keyboards/cxt_studio/12e4/keymaps/default/keymap.json similarity index 90% rename from keyboards/cxt_studio/keymaps/default/keymap.json rename to keyboards/cxt_studio/12e4/keymaps/default/keymap.json index 9e31833520e..b05d3ba1793 100644 --- a/keyboards/cxt_studio/keymaps/default/keymap.json +++ b/keyboards/cxt_studio/12e4/keymaps/default/keymap.json @@ -1,5 +1,5 @@ { - "keyboard": "cxt_studio", + "keyboard": "cxt_studio/12e4", "keymap": "default", "layout": "LAYOUT", "layers": [ diff --git a/keyboards/cxt_studio/readme.md b/keyboards/cxt_studio/12e4/readme.md similarity index 83% rename from keyboards/cxt_studio/readme.md rename to keyboards/cxt_studio/12e4/readme.md index 6397a3fdfd5..760c3544b41 100644 --- a/keyboards/cxt_studio/readme.md +++ b/keyboards/cxt_studio/12e4/readme.md @@ -1,20 +1,20 @@ -# cxt_studio +# cxt_studio/12e4 -![cxt_studio](https://i.imgur.com/AMCTioSh.jpeg) +![cxt_studio/12e4](https://i.imgur.com/AMCTioSh.jpeg) 3x4 ortho rgb lighting 4 knobs. * Keyboard Maintainer: [Colin Kinloch](https://github.com/ColinKinloch) -* Hardware Supported: CXT-Studio +* Hardware Supported: CXT-Studio/12E4 * Hardware Availability: AliExpress. I think the manufacturer is on Taobao. Make example for this keyboard (after setting up your build environment): - make cxt_studio:default + make cxt_studio/12e4:default Flashing example for this keyboard: - make cxt_studio:default:flash + make cxt_studio/12e4:default:flash See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/cxt_studio/config.h b/keyboards/cxt_studio/config.h deleted file mode 100644 index e56e07a2545..00000000000 --- a/keyboards/cxt_studio/config.h +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2023 Colin Kinloch (@ColinKinloch) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#define RGB_MATRIX_TYPING_HEATMAP_SPREAD 9 - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT From 5593e73ba71fa31155cdb81bc7c477f6501065e6 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sat, 28 Dec 2024 06:24:53 +1100 Subject: [PATCH 141/365] [bug] Djinn theme fix. (#24754) Theme fix. --- keyboards/tzarc/djinn/graphics/theme_djinn_default.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/tzarc/djinn/graphics/theme_djinn_default.c b/keyboards/tzarc/djinn/graphics/theme_djinn_default.c index f321308ac5d..c651cd660d8 100644 --- a/keyboards/tzarc/djinn/graphics/theme_djinn_default.c +++ b/keyboards/tzarc/djinn/graphics/theme_djinn_default.c @@ -43,13 +43,13 @@ static painter_font_handle_t thintel; enum { RGB_MATRIX_EFFECT_NONE, # include "rgb_matrix_effects.inc" -# undef RGB_MATRIX_EFFECT # ifdef RGB_MATRIX_CUSTOM_KB # include "rgb_matrix_kb.inc" # endif # ifdef RGB_MATRIX_CUSTOM_USER # include "rgb_matrix_user.inc" # endif +# undef RGB_MATRIX_EFFECT }; # define RGB_MATRIX_EFFECT(x) \ @@ -60,13 +60,13 @@ const char *rgb_matrix_name(uint8_t effect) { case RGB_MATRIX_EFFECT_NONE: return "NONE"; # include "rgb_matrix_effects.inc" -# undef RGB_MATRIX_EFFECT # ifdef RGB_MATRIX_CUSTOM_KB # include "rgb_matrix_kb.inc" # endif # ifdef RGB_MATRIX_CUSTOM_USER # include "rgb_matrix_user.inc" # endif +# undef RGB_MATRIX_EFFECT default: return "UNKNOWN"; } From f549948bbd2a2026875faab1f67ba7b8d21bb5a6 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 27 Dec 2024 19:42:54 +0000 Subject: [PATCH 142/365] Skip parsing g_led_config when matrix_size is missing (#24739) --- lib/python/qmk/info.py | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index 74a62721a3d..acf8da984fa 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -773,23 +773,24 @@ def find_keyboard_c(keyboard): def _extract_led_config(info_data, keyboard): """Scan all .c files for led config """ - cols = info_data['matrix_size']['cols'] - rows = info_data['matrix_size']['rows'] - for feature in ['rgb_matrix', 'led_matrix']: if info_data.get('features', {}).get(feature, False) or feature in info_data: - # Only attempt search if dd led config is missing if 'layout' not in info_data.get(feature, {}): - # Process - for file in find_keyboard_c(keyboard): - try: - ret = find_led_config(file, cols, rows) - if ret: - info_data[feature] = info_data.get(feature, {}) - info_data[feature]['layout'] = ret - except Exception as e: - _log_warning(info_data, f'led_config: {file.name}: {e}') + cols = info_data.get('matrix_size', {}).get('cols') + rows = info_data.get('matrix_size', {}).get('rows') + if cols and rows: + # Process + for file in find_keyboard_c(keyboard): + try: + ret = find_led_config(file, cols, rows) + if ret: + info_data[feature] = info_data.get(feature, {}) + info_data[feature]['layout'] = ret + except Exception as e: + _log_warning(info_data, f'led_config: {file.name}: {e}') + else: + _log_warning(info_data, 'led_config: matrix size required to parse g_led_config') if info_data[feature].get('layout', None) and not info_data[feature].get('led_count', None): info_data[feature]['led_count'] = len(info_data[feature]['layout']) From fd0a552fc1ed3b5799456dae4f0fc9b039575a2f Mon Sep 17 00:00:00 2001 From: chillKB <107592205+chillKB@users.noreply.github.com> Date: Mon, 30 Dec 2024 13:44:51 -0800 Subject: [PATCH 143/365] [Keyboard] Ghoul TKL (#24762) Co-authored-by: jack --- keyboards/chill/ghoul/chconf.h | 8 + keyboards/chill/ghoul/config.h | 7 + keyboards/chill/ghoul/halconf.h | 7 + keyboards/chill/ghoul/keyboard.json | 408 ++++++++++++++++++ .../chill/ghoul/keymaps/default/keymap.c | 24 ++ keyboards/chill/ghoul/mcuconf.h | 11 + keyboards/chill/ghoul/readme.md | 27 ++ 7 files changed, 492 insertions(+) create mode 100644 keyboards/chill/ghoul/chconf.h create mode 100644 keyboards/chill/ghoul/config.h create mode 100644 keyboards/chill/ghoul/halconf.h create mode 100644 keyboards/chill/ghoul/keyboard.json create mode 100644 keyboards/chill/ghoul/keymaps/default/keymap.c create mode 100644 keyboards/chill/ghoul/mcuconf.h create mode 100644 keyboards/chill/ghoul/readme.md diff --git a/keyboards/chill/ghoul/chconf.h b/keyboards/chill/ghoul/chconf.h new file mode 100644 index 00000000000..54014b32f57 --- /dev/null +++ b/keyboards/chill/ghoul/chconf.h @@ -0,0 +1,8 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define CH_CFG_ST_RESOLUTION 16 +#define CH_CFG_ST_FREQUENCY 10000 + +#include_next diff --git a/keyboards/chill/ghoul/config.h b/keyboards/chill/ghoul/config.h new file mode 100644 index 00000000000..9d5024d876b --- /dev/null +++ b/keyboards/chill/ghoul/config.h @@ -0,0 +1,7 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define BACKLIGHT_PWM_DRIVER PWMD2 +#define BACKLIGHT_PWM_CHANNEL 2 +#define BACKLIGHT_PAL_MODE 2 diff --git a/keyboards/chill/ghoul/halconf.h b/keyboards/chill/ghoul/halconf.h new file mode 100644 index 00000000000..cb37633eb62 --- /dev/null +++ b/keyboards/chill/ghoul/halconf.h @@ -0,0 +1,7 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/chill/ghoul/keyboard.json b/keyboards/chill/ghoul/keyboard.json new file mode 100644 index 00000000000..ff7435959c0 --- /dev/null +++ b/keyboards/chill/ghoul/keyboard.json @@ -0,0 +1,408 @@ +{ + "manufacturer": "Chill", + "keyboard_name": "Ghoul", + "maintainer": "chillKB", + "url": "https://github.com/chillKB/ghoulTKL", + "backlight": { + "driver": "pwm", + "pin": "B3" + }, + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "backlight": true, + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "B4", + "on_state": 0, + "scroll_lock": "B6" + }, + "matrix_pins": { + "cols": ["A10", "A9", "A8", "B15", "B14", "B13", "B12", "B11", "B10", "B2", "B1", "B0", "A6", "A5", "A15", "A1", "A0"], + "rows": ["B7", "B9", "B8", "A7", "A4", "A3"] + }, + "processor": "STM32F072", + "usb": { + "device_version": "1.0.0", + "pid": "0xFC87", + "vid": "0xC01D" + }, + "community_layouts": ["tkl_ansi", "tkl_ansi_split_bs_rshift", "tkl_ansi_tsangan", "tkl_ansi_tsangan_split_bs_rshift"], + "layout_aliases": { + "LAYOUT_all": "LAYOUT_tkl_ansi_split_bs_rshift" + }, + "layouts": { + "LAYOUT_tkl_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2}, + {"matrix": [1, 14], "x": 15.25, "y": 1.5}, + {"matrix": [1, 15], "x": 16.25, "y": 1.5}, + {"matrix": [1, 16], "x": 17.25, "y": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.5}, + {"matrix": [2, 15], "x": 16.25, "y": 2.5}, + {"matrix": [2, 16], "x": 17.25, "y": 2.5}, + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 12], "x": 12.75, "y": 3.5, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.5}, + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.5, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.5}, + {"matrix": [5, 15], "x": 16.25, "y": 5.5}, + {"matrix": [5, 16], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_ansi_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [1, 13], "x": 13, "y": 1.5}, + {"matrix": [3, 13], "x": 14, "y": 1.5}, + {"matrix": [1, 14], "x": 15.25, "y": 1.5}, + {"matrix": [1, 15], "x": 16.25, "y": 1.5}, + {"matrix": [1, 16], "x": 17.25, "y": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.5}, + {"matrix": [2, 15], "x": 16.25, "y": 2.5}, + {"matrix": [2, 16], "x": 17.25, "y": 2.5}, + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 12], "x": 12.75, "y": 3.5, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.5}, + {"matrix": [4, 15], "x": 16.25, "y": 4.5}, + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.5, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.5}, + {"matrix": [5, 15], "x": 16.25, "y": 5.5}, + {"matrix": [5, 16], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2}, + {"matrix": [1, 14], "x": 15.25, "y": 1.5}, + {"matrix": [1, 15], "x": 16.25, "y": 1.5}, + {"matrix": [1, 16], "x": 17.25, "y": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.5}, + {"matrix": [2, 15], "x": 16.25, "y": 2.5}, + {"matrix": [2, 16], "x": 17.25, "y": 2.5}, + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 12], "x": 12.75, "y": 3.5, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.5}, + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.5}, + {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.5, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.5, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.5}, + {"matrix": [5, 13], "x": 13.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.5}, + {"matrix": [5, 15], "x": 16.25, "y": 5.5}, + {"matrix": [5, 16], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [1, 13], "x": 13, "y": 1.5}, + {"matrix": [3, 13], "x": 14, "y": 1.5}, + {"matrix": [1, 14], "x": 15.25, "y": 1.5}, + {"matrix": [1, 15], "x": 16.25, "y": 1.5}, + {"matrix": [1, 16], "x": 17.25, "y": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.5}, + {"matrix": [2, 15], "x": 16.25, "y": 2.5}, + {"matrix": [2, 16], "x": 17.25, "y": 2.5}, + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 12], "x": 12.75, "y": 3.5, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.5}, + {"matrix": [4, 15], "x": 16.25, "y": 4.5}, + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.5}, + {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.5, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.5, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.5}, + {"matrix": [5, 13], "x": 13.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.5}, + {"matrix": [5, 15], "x": 16.25, "y": 5.5}, + {"matrix": [5, 16], "x": 17.25, "y": 5.5} + ] + } + } +} diff --git a/keyboards/chill/ghoul/keymaps/default/keymap.c b/keyboards/chill/ghoul/keymaps/default/keymap.c new file mode 100644 index 00000000000..9fb9329eb15 --- /dev/null +++ b/keyboards/chill/ghoul/keymaps/default/keymap.c @@ -0,0 +1,24 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + _______, KC_VOLU, KC_VOLD, KC_MUTE, _______, KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, _______, _______, _______, KC_SLEP, _______, _______, _______, + BL_TOGG, BL_UP, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/chill/ghoul/mcuconf.h b/keyboards/chill/ghoul/mcuconf.h new file mode 100644 index 00000000000..75267add9bb --- /dev/null +++ b/keyboards/chill/ghoul/mcuconf.h @@ -0,0 +1,11 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#include_next + +#undef STM32_PWM_USE_TIM2 +#define STM32_PWM_USE_TIM2 TRUE + +#undef STM32_ST_USE_TIMER +#define STM32_ST_USE_TIMER 14 diff --git a/keyboards/chill/ghoul/readme.md b/keyboards/chill/ghoul/readme.md new file mode 100644 index 00000000000..4dc2b544b87 --- /dev/null +++ b/keyboards/chill/ghoul/readme.md @@ -0,0 +1,27 @@ +# Ghoul TKL + +![image](https://i.imgur.com/Y39mNA4.jpeg) + +A modern replacement PCB for Filco TKLs, adding support for PCB-mount stabilizers and popular alternate layouts. In-switch backlight LEDs are also supported. + +* Keyboard Maintainer: [chillKB](https://github.com/chillKB) +* Hardware Supported: Ghoul TKL PCB +* Hardware Availability: [Open source on GitHub](https://github.com/chillKB/ghoulTKL) + +Make example for this keyboard (after setting up your build environment): + + make chill/ghoul:default + +Flashing example for this keyboard: + + make chill/ghoul:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top left key (usually Escape) and plug in the keyboard +* **Physical reset button**: Hold the boot button and tap the reset button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From fe2200f73aa5cd96ab4a1914c0b2ad9178d9862f Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 31 Dec 2024 12:36:24 +0000 Subject: [PATCH 144/365] Remove invalid "effect_max" animation from keyboards (#24767) --- keyboards/keychron/c1_pro/ansi/white/keyboard.json | 3 +-- keyboards/keychron/c2_pro/ansi/white/keyboard.json | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/keyboards/keychron/c1_pro/ansi/white/keyboard.json b/keyboards/keychron/c1_pro/ansi/white/keyboard.json index 466de1d6e3d..806dc25bb5b 100644 --- a/keyboards/keychron/c1_pro/ansi/white/keyboard.json +++ b/keyboards/keychron/c1_pro/ansi/white/keyboard.json @@ -119,8 +119,7 @@ "solid_reactive_multinexus": true, "solid_splash": true, "wave_left_right": true, - "wave_up_down": true, - "effect_max": true + "wave_up_down": true }, "layout": [ {"matrix":[0, 0], "flags":1, "x":0, "y":0}, diff --git a/keyboards/keychron/c2_pro/ansi/white/keyboard.json b/keyboards/keychron/c2_pro/ansi/white/keyboard.json index cd05e77aa26..d6e5c745ce9 100644 --- a/keyboards/keychron/c2_pro/ansi/white/keyboard.json +++ b/keyboards/keychron/c2_pro/ansi/white/keyboard.json @@ -136,8 +136,7 @@ "solid_reactive_multinexus": true, "solid_splash": true, "wave_left_right": true, - "wave_up_down": true, - "effect_max": true + "wave_up_down": true }, "layout": [ {"matrix":[0, 0], "flags":1, "x":0, "y":0}, From 53680fa6dafb1a82d7e3fecfdc758570f1d3cd61 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 1 Jan 2025 01:58:41 +0000 Subject: [PATCH 145/365] Fix g_led_config parse warning (#24769) --- lib/python/qmk/info.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index acf8da984fa..38ca89697c0 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -789,8 +789,8 @@ def _extract_led_config(info_data, keyboard): info_data[feature]['layout'] = ret except Exception as e: _log_warning(info_data, f'led_config: {file.name}: {e}') - else: - _log_warning(info_data, 'led_config: matrix size required to parse g_led_config') + else: + _log_warning(info_data, 'led_config: matrix size required to parse g_led_config') if info_data[feature].get('layout', None) and not info_data[feature].get('led_count', None): info_data[feature]['led_count'] = len(info_data[feature]['layout']) From 57f89e5388f0f79e27d0e634c9d4621e5a9c214f Mon Sep 17 00:00:00 2001 From: QMK Bot Date: Wed, 1 Jan 2025 13:02:16 +1100 Subject: [PATCH 146/365] [CI] Regenerate Files (#24770) Regenerate Files --- quantum/keycodes.h | 2 +- quantum/keymap_extras/keymap_belgian.h | 2 +- quantum/keymap_extras/keymap_bepo.h | 2 +- quantum/keymap_extras/keymap_brazilian_abnt2.h | 2 +- quantum/keymap_extras/keymap_canadian_french.h | 2 +- quantum/keymap_extras/keymap_canadian_multilingual.h | 2 +- quantum/keymap_extras/keymap_colemak.h | 2 +- quantum/keymap_extras/keymap_croatian.h | 2 +- quantum/keymap_extras/keymap_czech.h | 2 +- quantum/keymap_extras/keymap_czech_mac_ansi.h | 2 +- quantum/keymap_extras/keymap_czech_mac_iso.h | 2 +- quantum/keymap_extras/keymap_danish.h | 2 +- quantum/keymap_extras/keymap_dvorak.h | 2 +- quantum/keymap_extras/keymap_dvorak_fr.h | 2 +- quantum/keymap_extras/keymap_dvorak_programmer.h | 2 +- quantum/keymap_extras/keymap_estonian.h | 2 +- quantum/keymap_extras/keymap_farsi.h | 2 +- quantum/keymap_extras/keymap_finnish.h | 2 +- quantum/keymap_extras/keymap_french.h | 2 +- quantum/keymap_extras/keymap_french_afnor.h | 2 +- quantum/keymap_extras/keymap_french_mac_iso.h | 2 +- quantum/keymap_extras/keymap_german.h | 2 +- quantum/keymap_extras/keymap_german_mac_iso.h | 2 +- quantum/keymap_extras/keymap_greek.h | 2 +- quantum/keymap_extras/keymap_hebrew.h | 2 +- quantum/keymap_extras/keymap_hungarian.h | 2 +- quantum/keymap_extras/keymap_icelandic.h | 2 +- quantum/keymap_extras/keymap_irish.h | 2 +- quantum/keymap_extras/keymap_italian.h | 2 +- quantum/keymap_extras/keymap_italian_mac_ansi.h | 2 +- quantum/keymap_extras/keymap_italian_mac_iso.h | 2 +- quantum/keymap_extras/keymap_japanese.h | 2 +- quantum/keymap_extras/keymap_korean.h | 2 +- quantum/keymap_extras/keymap_latvian.h | 2 +- quantum/keymap_extras/keymap_lithuanian_azerty.h | 2 +- quantum/keymap_extras/keymap_lithuanian_qwerty.h | 2 +- quantum/keymap_extras/keymap_neo2.h | 2 +- quantum/keymap_extras/keymap_nordic.h | 2 +- quantum/keymap_extras/keymap_norman.h | 2 +- quantum/keymap_extras/keymap_norwegian.h | 2 +- quantum/keymap_extras/keymap_plover.h | 2 +- quantum/keymap_extras/keymap_plover_dvorak.h | 2 +- quantum/keymap_extras/keymap_polish.h | 2 +- quantum/keymap_extras/keymap_portuguese.h | 2 +- quantum/keymap_extras/keymap_portuguese_mac_iso.h | 2 +- quantum/keymap_extras/keymap_romanian.h | 2 +- quantum/keymap_extras/keymap_russian.h | 2 +- quantum/keymap_extras/keymap_russian_typewriter.h | 2 +- quantum/keymap_extras/keymap_serbian.h | 2 +- quantum/keymap_extras/keymap_serbian_latin.h | 2 +- quantum/keymap_extras/keymap_slovak.h | 2 +- quantum/keymap_extras/keymap_slovenian.h | 2 +- quantum/keymap_extras/keymap_spanish.h | 2 +- quantum/keymap_extras/keymap_spanish_dvorak.h | 2 +- quantum/keymap_extras/keymap_spanish_latin_america.h | 2 +- quantum/keymap_extras/keymap_swedish.h | 2 +- quantum/keymap_extras/keymap_swedish_mac_ansi.h | 2 +- quantum/keymap_extras/keymap_swedish_mac_iso.h | 2 +- quantum/keymap_extras/keymap_swedish_pro_mac_ansi.h | 2 +- quantum/keymap_extras/keymap_swedish_pro_mac_iso.h | 2 +- quantum/keymap_extras/keymap_swiss_de.h | 2 +- quantum/keymap_extras/keymap_swiss_fr.h | 2 +- quantum/keymap_extras/keymap_turkish_f.h | 2 +- quantum/keymap_extras/keymap_turkish_q.h | 2 +- quantum/keymap_extras/keymap_uk.h | 2 +- quantum/keymap_extras/keymap_ukrainian.h | 2 +- quantum/keymap_extras/keymap_us.h | 2 +- quantum/keymap_extras/keymap_us_extended.h | 2 +- quantum/keymap_extras/keymap_us_international.h | 2 +- quantum/keymap_extras/keymap_us_international_linux.h | 2 +- quantum/keymap_extras/keymap_workman.h | 2 +- quantum/keymap_extras/keymap_workman_zxcvm.h | 2 +- quantum/rgblight/rgblight_breathe_table.h | 2 +- tests/test_common/keycode_table.cpp | 2 +- 74 files changed, 74 insertions(+), 74 deletions(-) diff --git a/quantum/keycodes.h b/quantum/keycodes.h index 921dc7199f2..5929e356873 100644 --- a/quantum/keycodes.h +++ b/quantum/keycodes.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_belgian.h b/quantum/keymap_extras/keymap_belgian.h index e553894b52c..1869e66d9aa 100644 --- a/quantum/keymap_extras/keymap_belgian.h +++ b/quantum/keymap_extras/keymap_belgian.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_bepo.h b/quantum/keymap_extras/keymap_bepo.h index d1886efb102..f2ddb99180a 100644 --- a/quantum/keymap_extras/keymap_bepo.h +++ b/quantum/keymap_extras/keymap_bepo.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_brazilian_abnt2.h b/quantum/keymap_extras/keymap_brazilian_abnt2.h index 7dfc2cbb3de..730fe5069f8 100644 --- a/quantum/keymap_extras/keymap_brazilian_abnt2.h +++ b/quantum/keymap_extras/keymap_brazilian_abnt2.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_canadian_french.h b/quantum/keymap_extras/keymap_canadian_french.h index 63c9166a311..5771cf61938 100644 --- a/quantum/keymap_extras/keymap_canadian_french.h +++ b/quantum/keymap_extras/keymap_canadian_french.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_canadian_multilingual.h b/quantum/keymap_extras/keymap_canadian_multilingual.h index baeafa40778..2a4326b406f 100644 --- a/quantum/keymap_extras/keymap_canadian_multilingual.h +++ b/quantum/keymap_extras/keymap_canadian_multilingual.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_colemak.h b/quantum/keymap_extras/keymap_colemak.h index b1b2fdcf805..0170339aadc 100644 --- a/quantum/keymap_extras/keymap_colemak.h +++ b/quantum/keymap_extras/keymap_colemak.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_croatian.h b/quantum/keymap_extras/keymap_croatian.h index 3ed6e29dfb4..7e11a85710c 100644 --- a/quantum/keymap_extras/keymap_croatian.h +++ b/quantum/keymap_extras/keymap_croatian.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_czech.h b/quantum/keymap_extras/keymap_czech.h index ab00f83820a..8e65a4ed0af 100644 --- a/quantum/keymap_extras/keymap_czech.h +++ b/quantum/keymap_extras/keymap_czech.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_czech_mac_ansi.h b/quantum/keymap_extras/keymap_czech_mac_ansi.h index ac2f078d980..ed46a78f1c4 100644 --- a/quantum/keymap_extras/keymap_czech_mac_ansi.h +++ b/quantum/keymap_extras/keymap_czech_mac_ansi.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_czech_mac_iso.h b/quantum/keymap_extras/keymap_czech_mac_iso.h index 4b56e15df13..08285b79522 100644 --- a/quantum/keymap_extras/keymap_czech_mac_iso.h +++ b/quantum/keymap_extras/keymap_czech_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_danish.h b/quantum/keymap_extras/keymap_danish.h index 9e397af1357..a84923007c7 100644 --- a/quantum/keymap_extras/keymap_danish.h +++ b/quantum/keymap_extras/keymap_danish.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_dvorak.h b/quantum/keymap_extras/keymap_dvorak.h index d83f311e2a2..a926e482953 100644 --- a/quantum/keymap_extras/keymap_dvorak.h +++ b/quantum/keymap_extras/keymap_dvorak.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_dvorak_fr.h b/quantum/keymap_extras/keymap_dvorak_fr.h index 6c9ca139d61..6e6498e5982 100644 --- a/quantum/keymap_extras/keymap_dvorak_fr.h +++ b/quantum/keymap_extras/keymap_dvorak_fr.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_dvorak_programmer.h b/quantum/keymap_extras/keymap_dvorak_programmer.h index 80f39f56d45..43d9a702bb4 100644 --- a/quantum/keymap_extras/keymap_dvorak_programmer.h +++ b/quantum/keymap_extras/keymap_dvorak_programmer.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_estonian.h b/quantum/keymap_extras/keymap_estonian.h index 3b6bf66c5ce..3e87bbc5f88 100644 --- a/quantum/keymap_extras/keymap_estonian.h +++ b/quantum/keymap_extras/keymap_estonian.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_farsi.h b/quantum/keymap_extras/keymap_farsi.h index d2689175131..8e16188a8f2 100644 --- a/quantum/keymap_extras/keymap_farsi.h +++ b/quantum/keymap_extras/keymap_farsi.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_finnish.h b/quantum/keymap_extras/keymap_finnish.h index 4c0b78ff60d..045f7295a01 100644 --- a/quantum/keymap_extras/keymap_finnish.h +++ b/quantum/keymap_extras/keymap_finnish.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_french.h b/quantum/keymap_extras/keymap_french.h index db5a7ac2fff..9ff3694a732 100644 --- a/quantum/keymap_extras/keymap_french.h +++ b/quantum/keymap_extras/keymap_french.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_french_afnor.h b/quantum/keymap_extras/keymap_french_afnor.h index 894ff4305b7..07506e0f6e0 100644 --- a/quantum/keymap_extras/keymap_french_afnor.h +++ b/quantum/keymap_extras/keymap_french_afnor.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_french_mac_iso.h b/quantum/keymap_extras/keymap_french_mac_iso.h index 89b16478bc8..b036ca20099 100644 --- a/quantum/keymap_extras/keymap_french_mac_iso.h +++ b/quantum/keymap_extras/keymap_french_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_german.h b/quantum/keymap_extras/keymap_german.h index 074f0d321b3..7ac807934b6 100644 --- a/quantum/keymap_extras/keymap_german.h +++ b/quantum/keymap_extras/keymap_german.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_german_mac_iso.h b/quantum/keymap_extras/keymap_german_mac_iso.h index 1a50fabf1ab..56d077c36ca 100644 --- a/quantum/keymap_extras/keymap_german_mac_iso.h +++ b/quantum/keymap_extras/keymap_german_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_greek.h b/quantum/keymap_extras/keymap_greek.h index e21022abbc8..0d2e15dfd8b 100644 --- a/quantum/keymap_extras/keymap_greek.h +++ b/quantum/keymap_extras/keymap_greek.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_hebrew.h b/quantum/keymap_extras/keymap_hebrew.h index b122eb09ea8..a9273647371 100644 --- a/quantum/keymap_extras/keymap_hebrew.h +++ b/quantum/keymap_extras/keymap_hebrew.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_hungarian.h b/quantum/keymap_extras/keymap_hungarian.h index 22ae74538c7..81a842a0fe3 100644 --- a/quantum/keymap_extras/keymap_hungarian.h +++ b/quantum/keymap_extras/keymap_hungarian.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_icelandic.h b/quantum/keymap_extras/keymap_icelandic.h index c58e48b22df..8e4e04b0f1f 100644 --- a/quantum/keymap_extras/keymap_icelandic.h +++ b/quantum/keymap_extras/keymap_icelandic.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_irish.h b/quantum/keymap_extras/keymap_irish.h index ba23cddc951..6cb85dc7a7b 100644 --- a/quantum/keymap_extras/keymap_irish.h +++ b/quantum/keymap_extras/keymap_irish.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_italian.h b/quantum/keymap_extras/keymap_italian.h index 0317cc5e780..57c12ba9b6c 100644 --- a/quantum/keymap_extras/keymap_italian.h +++ b/quantum/keymap_extras/keymap_italian.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_italian_mac_ansi.h b/quantum/keymap_extras/keymap_italian_mac_ansi.h index ebf2e1e7095..4774c2d5eeb 100644 --- a/quantum/keymap_extras/keymap_italian_mac_ansi.h +++ b/quantum/keymap_extras/keymap_italian_mac_ansi.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_italian_mac_iso.h b/quantum/keymap_extras/keymap_italian_mac_iso.h index 327777dd8a7..35ec978ef91 100644 --- a/quantum/keymap_extras/keymap_italian_mac_iso.h +++ b/quantum/keymap_extras/keymap_italian_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_japanese.h b/quantum/keymap_extras/keymap_japanese.h index 68a91be18b9..3ad94953534 100644 --- a/quantum/keymap_extras/keymap_japanese.h +++ b/quantum/keymap_extras/keymap_japanese.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_korean.h b/quantum/keymap_extras/keymap_korean.h index f759e136bdb..644837734ea 100644 --- a/quantum/keymap_extras/keymap_korean.h +++ b/quantum/keymap_extras/keymap_korean.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_latvian.h b/quantum/keymap_extras/keymap_latvian.h index 3444e744bea..b1750ed7596 100644 --- a/quantum/keymap_extras/keymap_latvian.h +++ b/quantum/keymap_extras/keymap_latvian.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_lithuanian_azerty.h b/quantum/keymap_extras/keymap_lithuanian_azerty.h index 235989e67b3..9d6c1b92f0e 100644 --- a/quantum/keymap_extras/keymap_lithuanian_azerty.h +++ b/quantum/keymap_extras/keymap_lithuanian_azerty.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_lithuanian_qwerty.h b/quantum/keymap_extras/keymap_lithuanian_qwerty.h index 58f43814202..84df4c8bd22 100644 --- a/quantum/keymap_extras/keymap_lithuanian_qwerty.h +++ b/quantum/keymap_extras/keymap_lithuanian_qwerty.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_neo2.h b/quantum/keymap_extras/keymap_neo2.h index dbeef8d5442..ad285f7d18b 100644 --- a/quantum/keymap_extras/keymap_neo2.h +++ b/quantum/keymap_extras/keymap_neo2.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_nordic.h b/quantum/keymap_extras/keymap_nordic.h index bb66fcf12f3..ff952e6c439 100644 --- a/quantum/keymap_extras/keymap_nordic.h +++ b/quantum/keymap_extras/keymap_nordic.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_norman.h b/quantum/keymap_extras/keymap_norman.h index 9938e53efea..166a2f22a10 100644 --- a/quantum/keymap_extras/keymap_norman.h +++ b/quantum/keymap_extras/keymap_norman.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_norwegian.h b/quantum/keymap_extras/keymap_norwegian.h index e50e1ab3bb1..0b0cf65813f 100644 --- a/quantum/keymap_extras/keymap_norwegian.h +++ b/quantum/keymap_extras/keymap_norwegian.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_plover.h b/quantum/keymap_extras/keymap_plover.h index 285eaa0741d..a01a23c8a36 100644 --- a/quantum/keymap_extras/keymap_plover.h +++ b/quantum/keymap_extras/keymap_plover.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_plover_dvorak.h b/quantum/keymap_extras/keymap_plover_dvorak.h index 8347b2b20c1..0ec7b9acd38 100644 --- a/quantum/keymap_extras/keymap_plover_dvorak.h +++ b/quantum/keymap_extras/keymap_plover_dvorak.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_polish.h b/quantum/keymap_extras/keymap_polish.h index 422c58c1e39..2448ef1fef1 100644 --- a/quantum/keymap_extras/keymap_polish.h +++ b/quantum/keymap_extras/keymap_polish.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_portuguese.h b/quantum/keymap_extras/keymap_portuguese.h index 6a896de5290..9f798626794 100644 --- a/quantum/keymap_extras/keymap_portuguese.h +++ b/quantum/keymap_extras/keymap_portuguese.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_portuguese_mac_iso.h b/quantum/keymap_extras/keymap_portuguese_mac_iso.h index 1a11cfa5ab7..5381956b4c3 100644 --- a/quantum/keymap_extras/keymap_portuguese_mac_iso.h +++ b/quantum/keymap_extras/keymap_portuguese_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_romanian.h b/quantum/keymap_extras/keymap_romanian.h index 8f90988855e..6410fbbe485 100644 --- a/quantum/keymap_extras/keymap_romanian.h +++ b/quantum/keymap_extras/keymap_romanian.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_russian.h b/quantum/keymap_extras/keymap_russian.h index 440692345ea..364e7aba5c5 100644 --- a/quantum/keymap_extras/keymap_russian.h +++ b/quantum/keymap_extras/keymap_russian.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_russian_typewriter.h b/quantum/keymap_extras/keymap_russian_typewriter.h index 833311076fd..18157726ad5 100644 --- a/quantum/keymap_extras/keymap_russian_typewriter.h +++ b/quantum/keymap_extras/keymap_russian_typewriter.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_serbian.h b/quantum/keymap_extras/keymap_serbian.h index fa0e474df82..6421577c22a 100644 --- a/quantum/keymap_extras/keymap_serbian.h +++ b/quantum/keymap_extras/keymap_serbian.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_serbian_latin.h b/quantum/keymap_extras/keymap_serbian_latin.h index a2038b6df82..358c6c76ed7 100644 --- a/quantum/keymap_extras/keymap_serbian_latin.h +++ b/quantum/keymap_extras/keymap_serbian_latin.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_slovak.h b/quantum/keymap_extras/keymap_slovak.h index 08666ef060b..a777fce16f3 100644 --- a/quantum/keymap_extras/keymap_slovak.h +++ b/quantum/keymap_extras/keymap_slovak.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_slovenian.h b/quantum/keymap_extras/keymap_slovenian.h index 31a8c5f9a58..402a53cd440 100644 --- a/quantum/keymap_extras/keymap_slovenian.h +++ b/quantum/keymap_extras/keymap_slovenian.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_spanish.h b/quantum/keymap_extras/keymap_spanish.h index f87eb6b027c..714c8cbb7ce 100644 --- a/quantum/keymap_extras/keymap_spanish.h +++ b/quantum/keymap_extras/keymap_spanish.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_spanish_dvorak.h b/quantum/keymap_extras/keymap_spanish_dvorak.h index 782f23a5be2..b5a64634528 100644 --- a/quantum/keymap_extras/keymap_spanish_dvorak.h +++ b/quantum/keymap_extras/keymap_spanish_dvorak.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_spanish_latin_america.h b/quantum/keymap_extras/keymap_spanish_latin_america.h index 2f11743061f..651212d4bf0 100644 --- a/quantum/keymap_extras/keymap_spanish_latin_america.h +++ b/quantum/keymap_extras/keymap_spanish_latin_america.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_swedish.h b/quantum/keymap_extras/keymap_swedish.h index a9d015b22e2..23ec4102d86 100644 --- a/quantum/keymap_extras/keymap_swedish.h +++ b/quantum/keymap_extras/keymap_swedish.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_swedish_mac_ansi.h b/quantum/keymap_extras/keymap_swedish_mac_ansi.h index 36a31220a16..18061f0be90 100644 --- a/quantum/keymap_extras/keymap_swedish_mac_ansi.h +++ b/quantum/keymap_extras/keymap_swedish_mac_ansi.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_swedish_mac_iso.h b/quantum/keymap_extras/keymap_swedish_mac_iso.h index 7f085dc16b6..0c68ffcbd47 100644 --- a/quantum/keymap_extras/keymap_swedish_mac_iso.h +++ b/quantum/keymap_extras/keymap_swedish_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_swedish_pro_mac_ansi.h b/quantum/keymap_extras/keymap_swedish_pro_mac_ansi.h index 20781b2e532..043a7c9fc2c 100644 --- a/quantum/keymap_extras/keymap_swedish_pro_mac_ansi.h +++ b/quantum/keymap_extras/keymap_swedish_pro_mac_ansi.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_swedish_pro_mac_iso.h b/quantum/keymap_extras/keymap_swedish_pro_mac_iso.h index dbbc24ed02c..1d691feef14 100644 --- a/quantum/keymap_extras/keymap_swedish_pro_mac_iso.h +++ b/quantum/keymap_extras/keymap_swedish_pro_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_swiss_de.h b/quantum/keymap_extras/keymap_swiss_de.h index 2cedf237881..5411353a5f5 100644 --- a/quantum/keymap_extras/keymap_swiss_de.h +++ b/quantum/keymap_extras/keymap_swiss_de.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_swiss_fr.h b/quantum/keymap_extras/keymap_swiss_fr.h index 347815504bb..a9a9cab1626 100644 --- a/quantum/keymap_extras/keymap_swiss_fr.h +++ b/quantum/keymap_extras/keymap_swiss_fr.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_turkish_f.h b/quantum/keymap_extras/keymap_turkish_f.h index d9d08adae58..dcf9e815d7b 100644 --- a/quantum/keymap_extras/keymap_turkish_f.h +++ b/quantum/keymap_extras/keymap_turkish_f.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_turkish_q.h b/quantum/keymap_extras/keymap_turkish_q.h index 781c4063471..a86af180cd8 100644 --- a/quantum/keymap_extras/keymap_turkish_q.h +++ b/quantum/keymap_extras/keymap_turkish_q.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_uk.h b/quantum/keymap_extras/keymap_uk.h index 49237768d4f..30f9b972dbb 100644 --- a/quantum/keymap_extras/keymap_uk.h +++ b/quantum/keymap_extras/keymap_uk.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_ukrainian.h b/quantum/keymap_extras/keymap_ukrainian.h index 760cc265eaf..d3f82a21947 100644 --- a/quantum/keymap_extras/keymap_ukrainian.h +++ b/quantum/keymap_extras/keymap_ukrainian.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_us.h b/quantum/keymap_extras/keymap_us.h index 9d1c7ad628a..74c9b8e7f89 100644 --- a/quantum/keymap_extras/keymap_us.h +++ b/quantum/keymap_extras/keymap_us.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_us_extended.h b/quantum/keymap_extras/keymap_us_extended.h index c8e56cc5a83..d17d3e603ec 100644 --- a/quantum/keymap_extras/keymap_us_extended.h +++ b/quantum/keymap_extras/keymap_us_extended.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_us_international.h b/quantum/keymap_extras/keymap_us_international.h index 1b211bd4a6a..a9617494a85 100644 --- a/quantum/keymap_extras/keymap_us_international.h +++ b/quantum/keymap_extras/keymap_us_international.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_us_international_linux.h b/quantum/keymap_extras/keymap_us_international_linux.h index 778ab4c8998..b13039be051 100644 --- a/quantum/keymap_extras/keymap_us_international_linux.h +++ b/quantum/keymap_extras/keymap_us_international_linux.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_workman.h b/quantum/keymap_extras/keymap_workman.h index 31bd953d7f5..29396fdec16 100644 --- a/quantum/keymap_extras/keymap_workman.h +++ b/quantum/keymap_extras/keymap_workman.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_workman_zxcvm.h b/quantum/keymap_extras/keymap_workman_zxcvm.h index f05c89adb89..f7a5689f0fe 100644 --- a/quantum/keymap_extras/keymap_workman_zxcvm.h +++ b/quantum/keymap_extras/keymap_workman_zxcvm.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/rgblight/rgblight_breathe_table.h b/quantum/rgblight/rgblight_breathe_table.h index 147b1bf09af..5a8181c7d43 100644 --- a/quantum/rgblight/rgblight_breathe_table.h +++ b/quantum/rgblight/rgblight_breathe_table.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/tests/test_common/keycode_table.cpp b/tests/test_common/keycode_table.cpp index ae1a9edcd0f..26d0919619f 100644 --- a/tests/test_common/keycode_table.cpp +++ b/tests/test_common/keycode_table.cpp @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* From d5a042498770050a3d2f002540413ba14dfaf8d1 Mon Sep 17 00:00:00 2001 From: QMK Bot Date: Wed, 1 Jan 2025 13:22:28 +1100 Subject: [PATCH 147/365] [CI] Regenerate Files (#24772) Regenerate Files --- quantum/keymap_extras/keymap_eurkey.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quantum/keymap_extras/keymap_eurkey.h b/quantum/keymap_extras/keymap_eurkey.h index 80e0113fa6e..20f7f58683e 100644 --- a/quantum/keymap_extras/keymap_eurkey.h +++ b/quantum/keymap_extras/keymap_eurkey.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* From 8157b374387171d97f4eb03cae6e6c3e07613d61 Mon Sep 17 00:00:00 2001 From: David Hoelscher Date: Thu, 2 Jan 2025 01:10:07 -0600 Subject: [PATCH 148/365] always return audio pin to 0 on ARM (#24503) --- platforms/chibios/drivers/audio_pwm_hardware.c | 18 +++++++++++------- quantum/audio/audio.c | 5 ++--- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/platforms/chibios/drivers/audio_pwm_hardware.c b/platforms/chibios/drivers/audio_pwm_hardware.c index 1ba7ec13bcf..afa341abb60 100644 --- a/platforms/chibios/drivers/audio_pwm_hardware.c +++ b/platforms/chibios/drivers/audio_pwm_hardware.c @@ -41,18 +41,19 @@ static float channel_1_frequency = 0.0f; void channel_1_set_frequency(float freq) { channel_1_frequency = freq; + pwmcnt_t period; + pwmcnt_t width; if (freq <= 0.0) { - // a pause/rest has freq=0 - return; + period = 2; + width = 0; + } else { + period = (pwmCFG.frequency / freq); + width = (pwmcnt_t)(((period) * (pwmcnt_t)((100 - note_timbre) * 100)) / (pwmcnt_t)(10000)); } - - pwmcnt_t period = (pwmCFG.frequency / freq); chSysLockFromISR(); pwmChangePeriodI(&AUDIO_PWM_DRIVER, period); - pwmEnableChannelI(&AUDIO_PWM_DRIVER, AUDIO_PWM_CHANNEL - 1, - // adjust the duty-cycle so that the output is for 'note_timbre' duration HIGH - PWM_PERCENTAGE_TO_WIDTH(&AUDIO_PWM_DRIVER, (100 - note_timbre) * 100)); + pwmEnableChannelI(&AUDIO_PWM_DRIVER, AUDIO_PWM_CHANNEL - 1, width); chSysUnlockFromISR(); } @@ -67,6 +68,9 @@ void channel_1_start(void) { void channel_1_stop(void) { pwmStop(&AUDIO_PWM_DRIVER); + pwmStart(&AUDIO_PWM_DRIVER, &pwmCFG); + pwmEnableChannel(&AUDIO_PWM_DRIVER, AUDIO_PWM_CHANNEL - 1, 0); + pwmStop(&AUDIO_PWM_DRIVER); } static virtual_timer_t audio_vt; diff --git a/quantum/audio/audio.c b/quantum/audio/audio.c index b2611c5f099..2cc3c2d6613 100644 --- a/quantum/audio/audio.c +++ b/quantum/audio/audio.c @@ -258,11 +258,10 @@ void audio_stop_tone(float pitch) { for (int i = AUDIO_TONE_STACKSIZE - 1; i >= 0; i--) { found = (tones[i].pitch == pitch); if (found) { - tones[i] = (musical_tone_t){.time_started = 0, .pitch = -1.0f, .duration = 0}; for (int j = i; (j < AUDIO_TONE_STACKSIZE - 1); j++) { - tones[j] = tones[j + 1]; - tones[j + 1] = (musical_tone_t){.time_started = 0, .pitch = -1.0f, .duration = 0}; + tones[j] = tones[j + 1]; } + tones[AUDIO_TONE_STACKSIZE - 1] = (musical_tone_t){.time_started = 0, .pitch = -1.0f, .duration = 0}; break; } } From cf975e2bfa9fc5315cff1eb82498e7184a87feb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=95=E3=82=A3=E3=83=AB=E3=82=BF=E3=83=BC=E3=83=9A?= =?UTF-8?q?=E3=83=BC=E3=83=91=E3=83=BC?= <76888457+filterpaper@users.noreply.github.com> Date: Thu, 2 Jan 2025 15:10:34 +0800 Subject: [PATCH 149/365] Update Starlight matrix effects (#24521) --- .../rgb_matrix/animations/starlight_anim.h | 29 ++++++++++------- .../animations/starlight_dual_hue_anim.h | 31 ++++++++++++------- .../animations/starlight_dual_sat_anim.h | 31 ++++++++++++------- 3 files changed, 56 insertions(+), 35 deletions(-) diff --git a/quantum/rgb_matrix/animations/starlight_anim.h b/quantum/rgb_matrix/animations/starlight_anim.h index 742e843b575..c4f943c5cef 100644 --- a/quantum/rgb_matrix/animations/starlight_anim.h +++ b/quantum/rgb_matrix/animations/starlight_anim.h @@ -2,7 +2,9 @@ RGB_MATRIX_EFFECT(STARLIGHT) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -void set_starlight_color(uint8_t i, effect_params_t* params) { +static void set_starlight_color(uint8_t i, effect_params_t* params) { + if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return; + uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 8); hsv_t hsv = rgb_matrix_config.hsv; hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); @@ -11,21 +13,26 @@ void set_starlight_color(uint8_t i, effect_params_t* params) { } bool STARLIGHT(effect_params_t* params) { - if (!params->init) { - if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 5)) % 5 == 0) { - uint8_t rand_led = random8_max(RGB_MATRIX_LED_COUNT); - set_starlight_color(rand_led, params); - } - return false; + static uint16_t index = RGB_MATRIX_LED_COUNT + 1; + + // Periodic trigger for LED change + if ((params->iter == 0) && (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 5)) % 5 == 0)) { + index = random8_max(RGB_MATRIX_LED_COUNT); } RGB_MATRIX_USE_LIMITS(led_min, led_max); - for (uint8_t i = led_min; i < led_max; i++) { - RGB_MATRIX_TEST_LED_FLAGS(); - set_starlight_color(i, params); + if (params->init) { + for (uint8_t i = led_min; i < led_max; i++) { + set_starlight_color(i, params); + } + } + // Change LED once and set index out of range till next trigger + else if (led_min <= index && index < led_max) { + set_starlight_color(index, params); + index = RGB_MATRIX_LED_COUNT + 1; } return rgb_matrix_check_finished_leds(led_max); } # endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS -#endif // ENABLE_RGB_MATRIX_STARLIGHT \ No newline at end of file +#endif // ENABLE_RGB_MATRIX_STARLIGHT diff --git a/quantum/rgb_matrix/animations/starlight_dual_hue_anim.h b/quantum/rgb_matrix/animations/starlight_dual_hue_anim.h index 50ce5d6ab47..276b8c3fdfc 100644 --- a/quantum/rgb_matrix/animations/starlight_dual_hue_anim.h +++ b/quantum/rgb_matrix/animations/starlight_dual_hue_anim.h @@ -2,31 +2,38 @@ RGB_MATRIX_EFFECT(STARLIGHT_DUAL_HUE) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -void set_starlight_dual_hue_color(uint8_t i, effect_params_t* params) { +static void set_starlight_dual_hue_color(uint8_t i, effect_params_t* params) { + if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return; + uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 8); hsv_t hsv = rgb_matrix_config.hsv; hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); - hsv.h = hsv.h + random8_max((30 + 1 - -30) + -30); + hsv.h = hsv.h + random8_max(31); rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } bool STARLIGHT_DUAL_HUE(effect_params_t* params) { - if (!params->init) { - if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 5)) % 5 == 0) { - uint8_t rand_led = random8_max(RGB_MATRIX_LED_COUNT); - set_starlight_dual_hue_color(rand_led, params); - } - return false; + static uint16_t index = RGB_MATRIX_LED_COUNT + 1; + + // Periodic trigger for LED change + if ((params->iter == 0) && (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 5)) % 5 == 0)) { + index = random8_max(RGB_MATRIX_LED_COUNT); } RGB_MATRIX_USE_LIMITS(led_min, led_max); - for (uint8_t i = led_min; i < led_max; i++) { - RGB_MATRIX_TEST_LED_FLAGS(); - set_starlight_dual_hue_color(i, params); + if (params->init) { + for (uint8_t i = led_min; i < led_max; i++) { + set_starlight_dual_hue_color(i, params); + } + } + // Change LED once and set index out of range till next trigger + else if (led_min <= index && index < led_max) { + set_starlight_dual_hue_color(index, params); + index = RGB_MATRIX_LED_COUNT + 1; } return rgb_matrix_check_finished_leds(led_max); } # endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS -#endif // ENABLE_RGB_MATRIX_STARLIGHT_DUAL_HUE \ No newline at end of file +#endif // ENABLE_RGB_MATRIX_STARLIGHT_DUAL_HUE diff --git a/quantum/rgb_matrix/animations/starlight_dual_sat_anim.h b/quantum/rgb_matrix/animations/starlight_dual_sat_anim.h index 6def4eea098..e063658982a 100644 --- a/quantum/rgb_matrix/animations/starlight_dual_sat_anim.h +++ b/quantum/rgb_matrix/animations/starlight_dual_sat_anim.h @@ -2,31 +2,38 @@ RGB_MATRIX_EFFECT(STARLIGHT_DUAL_SAT) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -void set_starlight_dual_sat_color(uint8_t i, effect_params_t* params) { +static void set_starlight_dual_sat_color(uint8_t i, effect_params_t* params) { + if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return; + uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 8); hsv_t hsv = rgb_matrix_config.hsv; hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); - hsv.s = hsv.s + random8_max((30 + 1 - -30) + -30); + hsv.s = hsv.s + random8_max(31); rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } bool STARLIGHT_DUAL_SAT(effect_params_t* params) { - if (!params->init) { - if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 5)) % 5 == 0) { - uint8_t rand_led = random8_max(RGB_MATRIX_LED_COUNT); - set_starlight_dual_sat_color(rand_led, params); - } - return false; + static uint16_t index = RGB_MATRIX_LED_COUNT + 1; + + // Periodic trigger for LED change + if ((params->iter == 0) && (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 5)) % 5 == 0)) { + index = random8_max(RGB_MATRIX_LED_COUNT); } RGB_MATRIX_USE_LIMITS(led_min, led_max); - for (uint8_t i = led_min; i < led_max; i++) { - RGB_MATRIX_TEST_LED_FLAGS(); - set_starlight_dual_sat_color(i, params); + if (params->init) { + for (uint8_t i = led_min; i < led_max; i++) { + set_starlight_dual_sat_color(i, params); + } + } + // Change LED once and set index out of range till next trigger + else if (led_min <= index && index < led_max) { + set_starlight_dual_sat_color(index, params); + index = RGB_MATRIX_LED_COUNT + 1; } return rgb_matrix_check_finished_leds(led_max); } # endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS -#endif // ENABLE_RGB_MATRIX_STARLIGHT_DUAL_SAT \ No newline at end of file +#endif // ENABLE_RGB_MATRIX_STARLIGHT_DUAL_SAT From c53d02d511ef9c3b42097123749895a91536bcdd Mon Sep 17 00:00:00 2001 From: David Hoelscher Date: Thu, 2 Jan 2025 01:11:10 -0600 Subject: [PATCH 150/365] Ensure timer_read() is safe to call from interrupt handlers on ARM (#24529) --- platforms/chibios/timer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/platforms/chibios/timer.c b/platforms/chibios/timer.c index 4a347b445d8..a07cf5714f5 100644 --- a/platforms/chibios/timer.c +++ b/platforms/chibios/timer.c @@ -99,7 +99,7 @@ uint16_t timer_read(void) { } uint32_t timer_read32(void) { - chSysLock(); + syssts_t sts = chSysGetStatusAndLockX(); uint32_t ticks = get_system_time_ticks() - ticks_offset; if (ticks < last_ticks) { // The 32-bit tick counter overflowed and wrapped around. We cannot just extend the counter to 64 bits here, @@ -114,7 +114,7 @@ uint32_t timer_read32(void) { } last_ticks = ticks; uint32_t ms_offset_copy = ms_offset; // read while still holding the lock to ensure a consistent value - chSysUnlock(); + chSysRestoreStatusX(sts); return (uint32_t)TIME_I2MS(ticks) + ms_offset_copy; } From e016b9b4c5c28b4a0a7ae2fbb7cbe7e090169438 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=95=E3=82=A3=E3=83=AB=E3=82=BF=E3=83=BC=E3=83=9A?= =?UTF-8?q?=E3=83=BC=E3=83=91=E3=83=BC?= <76888457+filterpaper@users.noreply.github.com> Date: Thu, 2 Jan 2025 15:11:28 +0800 Subject: [PATCH 151/365] Update Raindrops effect to respect LED range limits (#24531) --- .../rgb_matrix/animations/raindrops_anim.h | 29 ++++++++++++------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/quantum/rgb_matrix/animations/raindrops_anim.h b/quantum/rgb_matrix/animations/raindrops_anim.h index a682156da24..d4f79adb560 100644 --- a/quantum/rgb_matrix/animations/raindrops_anim.h +++ b/quantum/rgb_matrix/animations/raindrops_anim.h @@ -2,35 +2,42 @@ RGB_MATRIX_EFFECT(RAINDROPS) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -static void raindrops_set_color(int i, effect_params_t* params) { +static void raindrops_set_color(uint8_t i, effect_params_t* params) { if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return; - hsv_t hsv = {0, rgb_matrix_config.hsv.s, rgb_matrix_config.hsv.v}; + hsv_t hsv = rgb_matrix_config.hsv; // Take the shortest path between hues - int16_t deltaH = ((rgb_matrix_config.hsv.h + 180) % 360 - rgb_matrix_config.hsv.h) / 4; + int16_t deltaH = ((hsv.h + 180) % 360 - hsv.h) / 4; if (deltaH > 127) { deltaH -= 256; } else if (deltaH < -127) { deltaH += 256; } - hsv.h = rgb_matrix_config.hsv.h + (deltaH * (random8() & 0x03)); + hsv.h += (deltaH * random8_max(3)); rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } bool RAINDROPS(effect_params_t* params) { + static uint16_t index = RGB_MATRIX_LED_COUNT + 1; + + // Periodic trigger for LED change + if ((params->iter == 0) && (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 16)) % 10 == 0)) { + index = random8_max(RGB_MATRIX_LED_COUNT); + } + RGB_MATRIX_USE_LIMITS(led_min, led_max); - if (!params->init) { - // Change one LED every tick, make sure speed is not 0 - if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 16)) % 10 == 0) { - raindrops_set_color(random8_max(RGB_MATRIX_LED_COUNT), params); - } - } else { - for (int i = led_min; i < led_max; i++) { + if (params->init) { + for (uint8_t i = led_min; i < led_max; i++) { raindrops_set_color(i, params); } } + // Change LED once and set index out of range till next trigger + else if (led_min <= index && index < led_max) { + raindrops_set_color(index, params); + index = RGB_MATRIX_LED_COUNT + 1; + } return rgb_matrix_check_finished_leds(led_max); } From b603094995fad1498204cbabdb47b85e76780446 Mon Sep 17 00:00:00 2001 From: Will Spooner <106878670+willbsp@users.noreply.github.com> Date: Thu, 2 Jan 2025 07:12:58 +0000 Subject: [PATCH 152/365] Add leader_add_user callback (#24266) --- docs/features/leader_key.md | 15 +++++++++++++++ quantum/leader.c | 7 +++++++ quantum/leader.h | 9 +++++++++ 3 files changed, 31 insertions(+) diff --git a/docs/features/leader_key.md b/docs/features/leader_key.md index a36e630a366..9f9086e1ae0 100644 --- a/docs/features/leader_key.md +++ b/docs/features/leader_key.md @@ -154,6 +154,21 @@ User callback, invoked when the leader sequence ends. --- +### `bool leader_add_user(uint16_t keycode)` {#api-leader-add-user} + +User callback, invoked when a keycode is added to the leader sequence. + +#### Arguments {#api-leader-add-user-arguments} + + - `uint16_t keycode` + The keycode to added to the leader sequence. + +#### Return Value {#api-leader-add-user-return} + +`true` to finish the key sequence, `false` to continue. + +--- + ### `void leader_start(void)` {#api-leader-start} Begin the leader sequence, resetting the buffer and timer. diff --git a/quantum/leader.c b/quantum/leader.c index 272609ad0cf..23e5e8cd6d3 100644 --- a/quantum/leader.c +++ b/quantum/leader.c @@ -21,6 +21,10 @@ __attribute__((weak)) void leader_start_user(void) {} __attribute__((weak)) void leader_end_user(void) {} +__attribute__((weak)) bool leader_add_user(uint16_t keycode) { + return false; +} + void leader_start(void) { if (leading) { return; @@ -61,6 +65,9 @@ bool leader_sequence_add(uint16_t keycode) { leader_sequence[leader_sequence_size] = keycode; leader_sequence_size++; + if (leader_add_user(keycode)) { + leader_end(); + } return true; } diff --git a/quantum/leader.h b/quantum/leader.h index 3177fcd1962..fba6b287ba3 100644 --- a/quantum/leader.h +++ b/quantum/leader.h @@ -21,6 +21,15 @@ void leader_start_user(void); */ void leader_end_user(void); +/** + * \brief User callback, invoked when a keycode is added to the leader sequence. + * + * \param keycode The keycode added to the leader sequence. + * + * \return `true` to finish the key sequence, `false` to continue. + */ +bool leader_add_user(uint16_t keycode); + /** * Begin the leader sequence, resetting the buffer and timer. */ From c23e64f551cc561a6590ab0c193ca11a5cd24d3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=95=E3=82=A3=E3=83=AB=E3=82=BF=E3=83=BC=E3=83=9A?= =?UTF-8?q?=E3=83=BC=E3=83=91=E3=83=BC?= <76888457+filterpaper@users.noreply.github.com> Date: Thu, 2 Jan 2025 18:23:41 +0800 Subject: [PATCH 153/365] Refactor Hue Breathing matrix effect with runner (#24525) --- .../animations/hue_breathing_anim.h | 22 ++++++++----------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/quantum/rgb_matrix/animations/hue_breathing_anim.h b/quantum/rgb_matrix/animations/hue_breathing_anim.h index 5316e92dbdc..60d7426cfc5 100644 --- a/quantum/rgb_matrix/animations/hue_breathing_anim.h +++ b/quantum/rgb_matrix/animations/hue_breathing_anim.h @@ -2,21 +2,17 @@ RGB_MATRIX_EFFECT(HUE_BREATHING) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -// Change huedelta to adjust range of hue change. 0-255. // Hue Breathing - All LED's light up +hsv_t HUE_BREATHING_math(hsv_t hsv, uint8_t i, uint8_t time) { + // Adjust delta between 0-255 to change hue range + uint8_t delta = 12; + hsv.h = hsv.h + scale8(abs8(sin8(time / 2) - 128) * 2, delta); + return hsv; +} + bool HUE_BREATHING(effect_params_t* params) { - RGB_MATRIX_USE_LIMITS(led_min, led_max); - uint8_t huedelta = 12; - hsv_t hsv = rgb_matrix_config.hsv; - uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 8); - hsv.h = hsv.h + scale8(abs8(sin8(time) - 128) * 2, huedelta); - rgb_t rgb = hsv_to_rgb(hsv); - for (uint8_t i = led_min; i < led_max; i++) { - RGB_MATRIX_TEST_LED_FLAGS(); - rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); - } - return rgb_matrix_check_finished_leds(led_max); + return effect_runner_i(params, &HUE_BREATHING_math); } # endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS -#endif // DISABLE_RGB_HUE_BREATHING +#endif // ENABLE_RGB_MATRIX_HUE_BREATHING From ac140e563c422787f846a0ff6d9ca211213a41a2 Mon Sep 17 00:00:00 2001 From: Tocho Tochev Date: Thu, 2 Jan 2025 11:45:26 +0000 Subject: [PATCH 154/365] Fix link to TMK magic commands (#24773) --- docs/faq_debug.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/faq_debug.md b/docs/faq_debug.md index 36374974dfd..35a4160e276 100644 --- a/docs/faq_debug.md +++ b/docs/faq_debug.md @@ -129,7 +129,7 @@ needed for older distros. ## Can't Get Message on Console Check: - *hid_listen* finds your device. See above. -- Enable debug by pressing **Magic**+d. See [Magic Commands](https://github.com/tmk/tmk_keyboard#magic-commands). +- Enable debug by pressing **Magic**+d. See [Magic Commands](https://github.com/tmk/tmk_keyboard/wiki#magic-commands-for-debug). - Set `debug_enable=true`. See [Debugging](#debugging) - Try using `print` function instead of debug print. See **common/print.h**. - Disconnect other devices with console function. See [Issue #97](https://github.com/tmk/tmk_keyboard/issues/97). From 172c3496756fb5468c778c2536b4334f25eb883b Mon Sep 17 00:00:00 2001 From: Philip <68480429+iliorik@users.noreply.github.com> Date: Thu, 2 Jan 2025 14:50:43 +0300 Subject: [PATCH 155/365] [Keyboard] Add handwired/dactyl_manuform/5x8 (#24726) * add handwired/dactyl_manuform/5x8 config * add keymap scheme * Update keymap.c * Update keyboard.json * Update keyboard.json * fix and compile worked configs * Update readme.md * Update readme.md * Update readme.md * add dynamic macros support * change key sets on first workday/add right2left layer * Update keyboard.json * Update keymap.c * move license header to top keymap.c * Update keyboard.json * I rewrote the layout so that the halves are not stacked. * I rewrote the layout so that the halves are not stacked (keymap.c) * change "serial pin" syntactic change "soft_serial_pin": "D0" to "serial": { "pin": "D0" } * fix KC_BSPC and KC_SPC on right keyboard * Update readme.md * Update keymap.c Co-authored-by: Drashna Jaelre * Update keymap.c Co-authored-by: Drashna Jaelre --------- Co-authored-by: skandiPC Co-authored-by: iliorik-ph <140731596+iliorik-ph@users.noreply.github.com> Co-authored-by: Drashna Jaelre --- .../dactyl_manuform/5x8/keyboard.json | 137 ++++++++++++++++++ .../5x8/keymaps/default/keymap.c | 84 +++++++++++ .../5x8/keymaps/default/rules.mk | 1 + .../handwired/dactyl_manuform/5x8/readme.md | 25 ++++ 4 files changed, 247 insertions(+) create mode 100644 keyboards/handwired/dactyl_manuform/5x8/keyboard.json create mode 100644 keyboards/handwired/dactyl_manuform/5x8/keymaps/default/keymap.c create mode 100644 keyboards/handwired/dactyl_manuform/5x8/keymaps/default/rules.mk create mode 100644 keyboards/handwired/dactyl_manuform/5x8/readme.md diff --git a/keyboards/handwired/dactyl_manuform/5x8/keyboard.json b/keyboards/handwired/dactyl_manuform/5x8/keyboard.json new file mode 100644 index 00000000000..24ac4924acd --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/5x8/keyboard.json @@ -0,0 +1,137 @@ +{ + "keyboard_name": "Dactyl-Manuform (5x8)", + "manufacturer": "tshort", + "url": "", + "maintainer": "qmk", + "usb": { + "vid": "0x444D", + "pid": "0x3537", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + }, + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "matrix_pins": { + "cols": ["B6", "B2", "B3", "B1", "F7", "F6", "F5", "F4"], + "rows": ["D4", "C6", "D7", "E6", "B4", "B5"] + }, + "diode_direction": "COL2ROW", + "split": { + "enabled": true, + "serial": { + "pin": "D0" + } + }, + "development_board": "promicro", + "layouts": { + "LAYOUT_5x8": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.5}, + {"matrix": [0, 1], "x": 1, "y": 0.5}, + {"matrix": [0, 2], "x": 2, "y": 0.5}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + + {"matrix": [6, 7], "x": 17, "y": 0.5}, + {"matrix": [6, 6], "x": 16, "y": 0.5}, + {"matrix": [6, 5], "x": 15, "y": 0.5}, + {"matrix": [6, 4], "x": 14, "y": 0}, + {"matrix": [6, 3], "x": 13, "y": 0}, + {"matrix": [6, 2], "x": 12, "y": 0}, + {"matrix": [6, 1], "x": 11, "y": 0}, + {"matrix": [6, 0], "x": 10, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + + {"matrix": [7, 7], "x": 17, "y": 1.5}, + {"matrix": [7, 6], "x": 16, "y": 1.5}, + {"matrix": [7, 5], "x": 15, "y": 1.5}, + {"matrix": [7, 4], "x": 14, "y": 1}, + {"matrix": [7, 3], "x": 13, "y": 1}, + {"matrix": [7, 2], "x": 12, "y": 1}, + {"matrix": [7, 1], "x": 11, "y": 1}, + {"matrix": [7, 0], "x": 10, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2.5}, + {"matrix": [2, 1], "x": 1, "y": 2.5}, + {"matrix": [2, 2], "x": 2, "y": 2.5}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + {"matrix": [2, 6], "x": 6, "y": 2}, + {"matrix": [2, 7], "x": 7, "y": 2}, + + {"matrix": [8, 7], "x": 17, "y": 2.5}, + {"matrix": [8, 6], "x": 16, "y": 2.5}, + {"matrix": [8, 5], "x": 15, "y": 2.5}, + {"matrix": [8, 4], "x": 14, "y": 2}, + {"matrix": [8, 3], "x": 13, "y": 2}, + {"matrix": [8, 2], "x": 12, "y": 2}, + {"matrix": [8, 1], "x": 11, "y": 2}, + {"matrix": [8, 0], "x": 10, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3.5}, + {"matrix": [3, 1], "x": 1, "y": 3.5}, + {"matrix": [3, 2], "x": 2, "y": 3.5}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 5], "x": 5, "y": 3}, + {"matrix": [3, 6], "x": 6, "y": 3}, + + {"matrix": [9, 6], "x": 17, "y": 3.5}, + {"matrix": [9, 5], "x": 16, "y": 3.5}, + {"matrix": [9, 4], "x": 15, "y": 3.5}, + {"matrix": [9, 3], "x": 14, "y": 3}, + {"matrix": [9, 2], "x": 13, "y": 3}, + {"matrix": [9, 1], "x": 12, "y": 3}, + {"matrix": [9, 0], "x": 11, "y": 3}, + + {"matrix": [4, 1], "x": 1, "y": 4.5}, + {"matrix": [4, 2], "x": 2, "y": 4.5}, + {"matrix": [4, 3], "x": 3, "y": 4}, + {"matrix": [4, 4], "x": 4, "y": 4}, + + {"matrix": [10, 4], "x": 14, "y": 4}, + {"matrix": [10, 3], "x": 13, "y": 4}, + {"matrix": [10, 2], "x": 12, "y": 5}, + {"matrix": [10, 1], "x": 11, "y": 5}, + + {"matrix": [4, 5], "x": 4.5, "y": 5}, + {"matrix": [4, 6], "x": 5.5, "y": 5}, + + {"matrix": [10, 6], "x": 14.5, "y": 4.5}, + {"matrix": [10, 5], "x": 15.5, "y": 4.5}, + + {"matrix": [5, 5], "x": 5, "y": 6}, + {"matrix": [5, 6], "x": 6, "y": 6}, + + {"matrix": [11, 6], "x": 12, "y": 6}, + {"matrix": [11, 5], "x": 11, "y": 6}, + + {"matrix": [5, 3], "x": 5, "y": 7}, + {"matrix": [5, 4], "x": 6, "y": 7}, + + {"matrix": [11, 4], "x": 12, "y": 7}, + {"matrix": [11, 3], "x": 11, "y": 7} + ] + } + } +} diff --git a/keyboards/handwired/dactyl_manuform/5x8/keymaps/default/keymap.c b/keyboards/handwired/dactyl_manuform/5x8/keymaps/default/keymap.c new file mode 100644 index 00000000000..d038173db0a --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/5x8/keymaps/default/keymap.c @@ -0,0 +1,84 @@ +/* Copyright 2024 Philip Slinkin (s.philya@gmail.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +enum layers { + _QWERTY, + _RIGHT2LEFT +}; + +/* Base (qwerty) + * ,-------------------------------------------------------, ,-------------------------------------------------------, + * | Esc | ` | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | - | = | \ | BS | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * |M_RSTP| Tab | q | w | e | r | t |QKBOOT| | F8 | y | u | i | o | p | [ | ] | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * |M_REC1| Caps | a | s | d | f | g | F7 | | F9 | h | j | k | l | ; | " |ENTER | + * |------+------+------+------+------+------+------+------' '------+------+------+------+------+------+------+------| + * |M_REC2| Shift| z | x | c | v | b | | n | m | , | . | / |Shift | Ctrl | + * '------+------+------+------+------+------+------' '------+------+------+------+------+------+------' + * | Ctrl | Wint | Alt | INS | | Up | Down | Left | Right| + * '------+------+------+------+------, ,------+------+------+------+------' + * | TT(1)|SPACE | | SPACE| BS | + * '------+------+------' ,------+------+------' + * | ESC |ENTER | | HOME | END | + * '------+------' '------+------' + * | DEL | F2 | | PGUP | PGDN | + * '------+------' '------+------' + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT_5x8( + KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC, + DM_RSTP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, QK_BOOT, KC_F8, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, + DM_REC1, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_F7, KC_F9, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + DM_REC2, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RCTL, + KC_LCTL, KC_LGUI, KC_LALT, KC_INS, KC_UP, KC_DOWN, KC_LEFT, KC_RGHT, + TT(1), KC_SPC, KC_SPC, KC_BSPC, + KC_ESC, KC_ENT, KC_HOME, KC_END, + KC_DEL, KC_F2, KC_PGUP, KC_PGDN + ), +/* Base (right to left on hold button) + * ,-------------------------------------------------------, ,-------------------------------------------------------, + * | BS | \ | = | - | 0 | 9 | 8 | 7 | | | | | | | | | | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | [ | ] | p | o | i | u | y |QKBOOT| | | | | | | | | | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * |M_PLY1| " | ; | l | k | j | h |PRSCRN| | | | Left | Down | Up | Right| |ENTER | + * |------+------+------+------+------+------+------+------' '------+------+------+------+------+------+------+------| + * |M_PLY2|MShift| / | . | , | m | n | | | | | | | | | + * |------+------+------+------+------+------+------' '------+------+------+------+------+------+------' + * |MCtrl | MAlt | DEL | BS | | | | | | + * '------+------+------+------+------, ,------+------+------+------+------' + * | |SPACE | | SPACE| BS | + * '------+------+------' ,------+------+------' + * | END |ENTER | | HOME | END | + * '------+------' '------+------' + * | PGDN | PGUP | | PGUP | PGDN | + * '------+------' '------+------' + */ + + [_RIGHT2LEFT] = LAYOUT_5x8( + KC_BSPC, KC_BSLS, KC_EQL, KC_MINS, KC_0, KC_9, KC_8, KC_7, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BSPC, + KC_RBRC, KC_LBRC, KC_P, KC_O, KC_I, KC_U, KC_Y, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + DM_PLY1, KC_QUOT, KC_SCLN, KC_L, KC_K, KC_J, KC_H, KC_PSCR, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_SCLN, KC_NO, KC_ENT, + DM_PLY2, OSM(MOD_LSFT), KC_SLSH, KC_DOT, KC_COMM, KC_M, KC_N, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + OSM(MOD_LCTL), OSM(MOD_LALT), KC_DEL, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_SPC, KC_SPC, KC_BSPC, + KC_ESC, KC_ENT, KC_HOME, KC_END, + KC_DEL, KC_F2, KC_PGUP, KC_PGDN + ), +}; diff --git a/keyboards/handwired/dactyl_manuform/5x8/keymaps/default/rules.mk b/keyboards/handwired/dactyl_manuform/5x8/keymaps/default/rules.mk new file mode 100644 index 00000000000..9e6797ed307 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/5x8/keymaps/default/rules.mk @@ -0,0 +1 @@ +DYNAMIC_MACRO_ENABLE = yes diff --git a/keyboards/handwired/dactyl_manuform/5x8/readme.md b/keyboards/handwired/dactyl_manuform/5x8/readme.md new file mode 100644 index 00000000000..0ada7e92b63 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/5x8/readme.md @@ -0,0 +1,25 @@ +# handwired/dactyl_manuform/5x8 + +![Dactyl_manuform 5x8](https://i.imgur.com/DtawD9r.jpeg) + +* Keyboard Maintainer: [iliorik](https://github.com/iliorik) + +I made this keyboard so that the buttons on the right side of the right half would replicate the standard keyboard. +I put macros on the left buttons of the left side keyboard for rec and play keypresses + +Make example for this keyboard (after setting up your build environment): + + make handwired/dactyl_manuform/5x8:default + +Flashing example for this keyboard: + + make handwired/dactyl_manuform/5x8:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Keycode in layout**: Press the key mapped to `QK_BOOT` +* **Reset pro micro**: Connect RST and GND pins on plate From 43800d79341d45e8ca5d5deb00e9825263b7e57b Mon Sep 17 00:00:00 2001 From: "Juho T." Date: Thu, 2 Jan 2025 14:07:38 +0200 Subject: [PATCH 156/365] Add Silakka54 keyboard (#24757) * Added new keyboard Silakka54 * Update keyboards/silakka54/config.h Co-authored-by: jack * Update keyboards/silakka54/keyboard.json Co-authored-by: jack * Delete keyboards/silakka54/rules.mk * Update keyboards/silakka54/keyboard.json Co-authored-by: Drashna Jaelre * Update keyboards/silakka54/config.h Co-authored-by: Drashna Jaelre * Update readme.md Fixed small typo, "inpired" to "inspired" --------- Co-authored-by: jack Co-authored-by: Drashna Jaelre --- keyboards/silakka54/config.h | 25 +++++ keyboards/silakka54/keyboard.json | 102 +++++++++++++++++++ keyboards/silakka54/keymaps/default/keymap.c | 22 ++++ keyboards/silakka54/readme.md | 26 +++++ 4 files changed, 175 insertions(+) create mode 100644 keyboards/silakka54/config.h create mode 100644 keyboards/silakka54/keyboard.json create mode 100644 keyboards/silakka54/keymaps/default/keymap.c create mode 100644 keyboards/silakka54/readme.md diff --git a/keyboards/silakka54/config.h b/keyboards/silakka54/config.h new file mode 100644 index 00000000000..220b85cd08f --- /dev/null +++ b/keyboards/silakka54/config.h @@ -0,0 +1,25 @@ +/* Copyright 2024 Juho T. (@Squalius-cephalus) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define SERIAL_USART_FULL_DUPLEX +#define SERIAL_USART_TX_PIN GP0 +#define SERIAL_USART_RX_PIN GP1 + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 diff --git a/keyboards/silakka54/keyboard.json b/keyboards/silakka54/keyboard.json new file mode 100644 index 00000000000..e1ad9aac9ed --- /dev/null +++ b/keyboards/silakka54/keyboard.json @@ -0,0 +1,102 @@ +{ + "manufacturer": "Squalius-cephalus", + "keyboard_name": "silakka54", + "maintainer": "Squalius-cephalus", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "split": { + "enabled": true, + "serial": { + "driver": "vendor" + } + }, + "matrix_pins": { + "cols": ["GP7", "GP8", "GP9", "GP10", "GP11", "GP12"], + "rows": ["GP2", "GP3", "GP4", "GP5","GP6"] + }, + "processor": "RP2040", + "url": "https://github.com/Squalius-cephalus/silakka54", + "usb": { + "device_version": "1.0.0", + "pid": "0x1212", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + + {"matrix": [5, 5], "x": 0, "y": 5}, + {"matrix": [5, 4], "x": 1, "y": 5}, + {"matrix": [5, 3], "x": 2, "y": 5}, + {"matrix": [5, 2], "x": 3, "y": 5}, + {"matrix": [5, 1], "x": 4, "y": 5}, + {"matrix": [5, 0], "x": 5, "y": 5}, + + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + + {"matrix": [6, 5], "x": 0, "y": 6}, + {"matrix": [6, 4], "x": 1, "y": 6}, + {"matrix": [6, 3], "x": 2, "y": 6}, + {"matrix": [6, 2], "x": 3, "y": 6}, + {"matrix": [6, 1], "x": 4, "y": 6}, + {"matrix": [6, 0], "x": 5, "y": 6}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + + {"matrix": [7, 5], "x": 0, "y": 7}, + {"matrix": [7, 4], "x": 1, "y": 7}, + {"matrix": [7, 3], "x": 2, "y": 7}, + {"matrix": [7, 2], "x": 3, "y": 7}, + {"matrix": [7, 1], "x": 4, "y": 7}, + {"matrix": [7, 0], "x": 5, "y": 7}, + + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 5], "x": 5, "y": 3}, + + {"matrix": [8, 5], "x": 0, "y": 9}, + {"matrix": [8, 4], "x": 1, "y": 9}, + {"matrix": [8, 3], "x": 2, "y": 9}, + {"matrix": [8, 2], "x": 3, "y": 9}, + {"matrix": [8, 1], "x": 4, "y": 9}, + {"matrix": [8, 0], "x": 5, "y": 9}, + + {"matrix": [4, 3], "x": 3, "y": 4}, + {"matrix": [4, 4], "x": 4, "y": 4}, + {"matrix": [4, 5], "x": 5, "y": 4}, + + {"matrix": [9, 5], "x": 3, "y": 9}, + {"matrix": [9, 4], "x": 4, "y": 9}, + {"matrix": [9, 3], "x": 5, "y": 9} + + + ] + } + } +} diff --git a/keyboards/silakka54/keymaps/default/keymap.c b/keyboards/silakka54/keymaps/default/keymap.c new file mode 100644 index 00000000000..aa5e64efa32 --- /dev/null +++ b/keyboards/silakka54/keymaps/default/keymap.c @@ -0,0 +1,22 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LGUI, MO(1), KC_SPC, KC_ENT, KC_RCTL, KC_RALT + ), + [1] = LAYOUT( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_HOME, KC_END, KC_DEL, KC_F12, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_LBRC, KC_RBRC, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/silakka54/readme.md b/keyboards/silakka54/readme.md new file mode 100644 index 00000000000..08a38aa4737 --- /dev/null +++ b/keyboards/silakka54/readme.md @@ -0,0 +1,26 @@ +# Silakka54 + +![Silakka54](https://i.imgur.com/JrsS0kY.png) + +Silakka54 is a RP2040 Zero based 54-key column staggered split keyboard. PCB uses hotswap sockets. Design is inspired from REVIUNG41 and Corne keyboards. + +* Keyboard Maintainer: [Squalius-cephalus](https://github.com/Squalius-cephalus) +* Hardware Supported: Silakka54 PCB +* Hardware Availability: https://github.com/Squalius-cephalus/silakka54 + +Make example for this keyboard (after setting up your build environment): + + make silakka54:default + +Flashing example for this keyboard: + + make silakka54:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Physical boot button**: Hold BOOT button down and connect MCU to the PC +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 9a0f4e586a5ac06241dc05ec13df3f07e4d0392d Mon Sep 17 00:00:00 2001 From: Sylvain Huguet Date: Fri, 3 Jan 2025 07:18:38 +0100 Subject: [PATCH 157/365] Add shuguet shu89 (#24758) Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis Co-authored-by: jack --- keyboards/shuguet/shu89/keyboard.json | 315 ++++++++++++++++++ .../shuguet/shu89/keymaps/default/keymap.json | 23 ++ keyboards/shuguet/shu89/readme.md | 20 ++ 3 files changed, 358 insertions(+) create mode 100644 keyboards/shuguet/shu89/keyboard.json create mode 100644 keyboards/shuguet/shu89/keymaps/default/keymap.json create mode 100644 keyboards/shuguet/shu89/readme.md diff --git a/keyboards/shuguet/shu89/keyboard.json b/keyboards/shuguet/shu89/keyboard.json new file mode 100644 index 00000000000..072734b5440 --- /dev/null +++ b/keyboards/shuguet/shu89/keyboard.json @@ -0,0 +1,315 @@ +{ + "keyboard_name": "shu89", + "manufacturer": "shuguet", + "url": "https://github.com/shuguet/split89", + "maintainer": "shuguet", + "usb": { + "vid": "0x5348", + "pid": "0x0001", + "device_version": "0.0.1" + }, + "features": { + "rgb_matrix": true, + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP19", "GP20", "GP18", "GP17", "GP15", "GP14", "GP13", "GP12", "GP11", "GP10"], + "rows": ["GP1", "GP2", "GP3", "GP4", "GP5", "GP6"] + }, + "ws2812": { + "driver": "vendor", + "pin": "GP7" + }, + "diode_direction": "COL2ROW", + "split": { + "enabled": true, + "serial": { + "driver": "vendor", + "pin": "GP9" + }, + "handedness": { + "pin": "GP0" + }, + "matrix_pins": { + "right": { + "cols": ["GP19", "GP20", "GP18", "GP17", "GP15", "GP14", "GP13", "GP12", "GP11", "GP10"], + "rows": ["GP6", "GP5", "GP4", "GP3", "GP2", "GP1"] + } + } + }, + "processor": "RP2040", + "bootloader": "rp2040", + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "Esc", "matrix": [0, 4], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 5], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 6], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 7], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 8], "x": 5, "y": 0}, + {"label": "F5", "matrix": [0, 9], "x": 6, "y": 0}, + + {"label": "F6", "matrix": [6, 0], "x": 10, "y": 0}, + {"label": "F7", "matrix": [6, 1], "x": 11, "y": 0}, + {"label": "F8", "matrix": [6, 2], "x": 12, "y": 0}, + {"label": "F9", "matrix": [6, 3], "x": 13.5, "y": 0}, + {"label": "F10", "matrix": [6, 4], "x": 14.5, "y": 0}, + {"label": "F11", "matrix": [6, 5], "x": 15.5, "y": 0}, + {"label": "F12", "matrix": [6, 6], "x": 16.5, "y": 0}, + {"label": "PrtSc", "matrix": [6, 7], "x": 17.75, "y": 0}, + {"label": "Scroll Lock", "matrix": [6, 8], "x": 18.75, "y": 0}, + {"label": "Pause", "matrix": [6, 9], "x": 19.75, "y": 0}, + + + {"label": "~", "matrix": [2, 4], "x": 0, "y": 1.5}, + {"label": "1!", "matrix": [1, 4], "x": 1, "y": 1.5}, + {"label": "2@", "matrix": [1, 5], "x": 2, "y": 1.5}, + {"label": "3#", "matrix": [1, 6], "x": 3, "y": 1.5}, + {"label": "4$", "matrix": [1, 7], "x": 4, "y": 1.5}, + {"label": "5%", "matrix": [1, 8], "x": 5, "y": 1.5}, + {"label": "6^", "matrix": [1, 9], "x": 6, "y": 1.5}, + + {"label": "7&", "matrix": [7, 0], "x": 9.5, "y": 1.5}, + {"label": "8*", "matrix": [7, 1], "x": 10.5, "y": 1.5}, + {"label": "9(", "matrix": [7, 2], "x": 11.5, "y": 1.5}, + {"label": "0)", "matrix": [7, 3], "x": 12.5, "y": 1.5}, + {"label": "-_", "matrix": [7, 4], "x": 13.5, "y": 1.5}, + {"label": "=+", "matrix": [7, 5], "x": 14.5, "y": 1.5}, + {"label": "Backspace", "matrix": [7, 6], "x": 15.5, "y": 1.5, "w": 2}, + {"label": "Insert", "matrix": [7, 7], "x": 17.75, "y": 1.5}, + {"label": "Home", "matrix": [7, 8], "x": 18.75, "y": 1.5}, + {"label": "PgUp", "matrix": [7, 9], "x": 19.75, "y": 1.5}, + + + {"label": "Tab", "matrix": [3, 4], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 5], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [2, 6], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 7], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [2, 8], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 9], "x": 5.5, "y": 2.5}, + + {"label": "Y", "matrix": [9, 0], "x": 9, "y": 2.5}, + {"label": "U", "matrix": [8, 0], "x": 10, "y": 2.5}, + {"label": "I", "matrix": [8, 1], "x": 11, "y": 2.5}, + {"label": "O", "matrix": [8, 2], "x": 12, "y": 2.5}, + {"label": "P", "matrix": [8, 3], "x": 13, "y": 2.5}, + {"label": "{", "matrix": [8, 4], "x": 14, "y": 2.5}, + {"label": "}", "matrix": [8, 5], "x": 15, "y": 2.5}, + {"label": "|", "matrix": [8, 6], "x": 16, "y": 2.5, "w": 1.5}, + {"label": "Delete", "matrix": [8, 7], "x": 17.75, "y": 2.5}, + {"label": "End", "matrix": [8, 8], "x": 18.75, "y": 2.5}, + {"label": "PgDn", "matrix": [8, 9], "x": 19.75, "y": 2.5}, + + + {"label": "Caps Lock", "matrix": [4, 4], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 5], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [3, 6], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 7], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [3, 8], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 9], "x": 5.75, "y": 3.5}, + + {"label": "H", "matrix": [10, 0], "x": 9.25, "y": 3.5}, + {"label": "J", "matrix": [9, 1], "x": 10.25, "y": 3.5}, + {"label": "K", "matrix": [9, 2], "x": 11.25, "y": 3.5}, + {"label": "L", "matrix": [9, 3], "x": 12.25, "y": 3.5}, + {"label": ":", "matrix": [9, 4], "x": 13.25, "y": 3.5}, + {"label": "\"", "matrix": [9, 5], "x": 14.25, "y": 3.5}, + {"label": "Enter", "matrix": [9, 6], "x": 15.25, "y": 3.5, "w": 2.25}, + + + {"label": "Left Shift", "matrix": [5, 4], "x": 0, "y": 4.5, "w": 2.25}, + {"label": "Z", "matrix": [4, 5], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 6], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [4, 7], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 8], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [4, 9], "x": 6.25, "y": 4.5}, + + {"label": "N", "matrix": [11, 0], "x": 9.75, "y": 4.5}, + {"label": "M", "matrix": [10, 1], "x": 10.75, "y": 4.5}, + {"label": "<", "matrix": [10, 2], "x": 11.75, "y": 4.5}, + {"label": ">", "matrix": [10, 3], "x": 12.75, "y": 4.5}, + {"label": "?", "matrix": [10, 4], "x": 13.75, "y": 4.5}, + {"label": "Right Shift", "matrix": [10, 6], "x": 14.75, "y": 4.5, "w": 2.75}, + {"label": "Up", "matrix": [10, 8], "x": 18.75, "y": 4.5}, + + {"label": "Left Ctrl", "matrix": [5, 5], "x": 0, "y": 5.5, "w": 1.25}, + {"label": "Fn", "matrix": [5, 6], "x": 1.25, "y": 5.5, "w": 1.25}, + {"label": "Left Alt", "matrix": [5, 7], "x": 2.5, "y": 5.5, "w": 1.25}, + {"label": "Left Win", "matrix": [5, 8], "x": 3.75, "y": 5.5, "w": 1.25}, + {"label": "Left Space", "matrix": [5, 9], "x": 5, "y": 5.5, "w": 2.25}, + + {"label": "Right Space", "matrix": [11, 1], "x": 9.75, "y": 5.5, "w": 2.75}, + {"label": "Right Alt", "matrix": [11, 3], "x": 12.5, "y": 5.5, "w": 1.25}, + {"label": "Right Win", "matrix": [11, 4], "x": 13.75, "y": 5.5, "w": 1.25}, + {"label": "Menu", "matrix": [11, 5], "x": 15, "y": 5.5, "w": 1.25}, + {"label": "Right Ctrl", "matrix": [11, 6], "x": 16.25, "y": 5.5, "w": 1.25}, + {"label": "Left", "matrix": [11, 7], "x": 17.75, "y": 5.5}, + {"label": "Down", "matrix": [11, 8], "x": 18.75, "y": 5.5}, + {"label": "Right", "matrix": [11, 9], "x": 19.75, "y": 5.5} + ] + } + }, + "rgb_matrix": { + "driver": "ws2812", + "split_count": [ 36, 53 ], + "default": { + "hue": 85, + "val": 128 + }, + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "flower_blooming": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_fractal": true, + "pixel_flow": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true, + "starlight": true, + "starlight_dual_hue": true, + "starlight_dual_sat": true, + "riverflow": true + }, + "layout": [ + {"matrix": [0, 4], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 104, "y": 0, "flags": 4}, + + {"matrix": [1, 4], "x": 16, "y": 13, "flags": 4}, + {"matrix": [1, 5], "x": 32, "y": 13, "flags": 4}, + {"matrix": [1, 6], "x": 48, "y": 13, "flags": 4}, + {"matrix": [1, 7], "x": 64, "y": 13, "flags": 4}, + {"matrix": [1, 8], "x": 80, "y": 13, "flags": 4}, + {"matrix": [1, 9], "x": 96, "y": 13, "flags": 4}, + {"matrix": [2, 4], "x": 0, "y": 13, "flags": 4}, + + {"matrix": [2, 5], "x": 20, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 36, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 52, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 68, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 84, "y": 26, "flags": 4}, + {"matrix": [3, 4], "x": 0, "y": 26, "flags": 4}, + + {"matrix": [3, 5], "x": 24, "y": 39, "flags": 4}, + {"matrix": [3, 6], "x": 40, "y": 39, "flags": 4}, + {"matrix": [3, 7], "x": 56, "y": 39, "flags": 4}, + {"matrix": [3, 8], "x": 72, "y": 39, "flags": 4}, + {"matrix": [3, 9], "x": 88, "y": 39, "flags": 4}, + {"matrix": [4, 4], "x": 0, "y": 39, "flags": 5}, + + {"matrix": [4, 5], "x": 28, "y": 51, "flags": 4}, + {"matrix": [4, 6], "x": 44, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 60, "y": 51, "flags": 4}, + {"matrix": [4, 8], "x": 76, "y": 51, "flags": 4}, + {"matrix": [4, 9], "x": 92, "y": 51, "flags": 4}, + {"matrix": [5, 4], "x": 0, "y": 51, "flags": 5}, + + {"matrix": [5, 5], "x": 0, "y": 64, "flags": 5}, + {"matrix": [5, 6], "x": 20, "y": 64, "flags": 5}, + {"matrix": [5, 7], "x": 40, "y": 64, "flags": 5}, + {"matrix": [5, 8], "x": 60, "y": 64, "flags": 5}, + {"matrix": [5, 9], "x": 92, "y": 64, "flags": 4}, + + {"matrix": [6, 0], "x": 120, "y": 0, "flags": 4}, + {"matrix": [6, 1], "x": 136, "y": 0, "flags": 4}, + {"matrix": [6, 2], "x": 152, "y": 0, "flags": 4}, + {"matrix": [6, 3], "x": 168, "y": 0, "flags": 4}, + {"matrix": [6, 4], "x": 184, "y": 0, "flags": 4}, + {"matrix": [6, 5], "x": 200, "y": 0, "flags": 4}, + {"matrix": [6, 6], "x": 208, "y": 0, "flags": 4}, + {"matrix": [6, 7], "x": 216, "y": 0, "flags": 4}, + {"matrix": [6, 8], "x": 220, "y": 0, "flags": 4}, + {"matrix": [6, 9], "x": 224, "y": 0, "flags": 4}, + + {"matrix": [7, 0], "x": 112, "y": 13, "flags": 4}, + {"matrix": [7, 1], "x": 128, "y": 13, "flags": 4}, + {"matrix": [7, 2], "x": 144, "y": 13, "flags": 4}, + {"matrix": [7, 3], "x": 160, "y": 13, "flags": 4}, + {"matrix": [7, 4], "x": 176, "y": 13, "flags": 4}, + {"matrix": [7, 5], "x": 192, "y": 13, "flags": 4}, + {"matrix": [7, 6], "x": 208, "y": 13, "flags": 4}, + {"matrix": [7, 7], "x": 216, "y": 13, "flags": 4}, + {"matrix": [7, 8], "x": 220, "y": 13, "flags": 4}, + {"matrix": [7, 9], "x": 224, "y": 13, "flags": 4}, + + {"matrix": [8, 0], "x": 116, "y": 26, "flags": 4}, + {"matrix": [8, 1], "x": 132, "y": 26, "flags": 4}, + {"matrix": [8, 2], "x": 148, "y": 26, "flags": 4}, + {"matrix": [8, 3], "x": 164, "y": 26, "flags": 4}, + {"matrix": [8, 4], "x": 180, "y": 26, "flags": 4}, + {"matrix": [8, 5], "x": 196, "y": 26, "flags": 4}, + {"matrix": [8, 6], "x": 208, "y": 26, "flags": 4}, + {"matrix": [8, 7], "x": 216, "y": 26, "flags": 4}, + {"matrix": [8, 8], "x": 220, "y": 26, "flags": 4}, + {"matrix": [8, 9], "x": 224, "y": 26, "flags": 4}, + {"matrix": [9, 0], "x": 100, "y": 26, "flags": 4}, + + {"matrix": [9, 1], "x": 120, "y": 39, "flags": 4}, + {"matrix": [9, 2], "x": 136, "y": 39, "flags": 4}, + {"matrix": [9, 3], "x": 152, "y": 39, "flags": 4}, + {"matrix": [9, 4], "x": 168, "y": 39, "flags": 4}, + {"matrix": [9, 5], "x": 184, "y": 39, "flags": 4}, + {"matrix": [9, 6], "x": 200, "y": 39, "flags": 4}, + {"matrix": [10, 0], "x": 104, "y": 39, "flags": 4}, + + {"matrix": [10, 1], "x": 124, "y": 51, "flags": 4}, + {"matrix": [10, 2], "x": 140, "y": 51, "flags": 4}, + {"matrix": [10, 3], "x": 156, "y": 51, "flags": 4}, + {"matrix": [10, 4], "x": 172, "y": 51, "flags": 4}, + {"matrix": [10, 6], "x": 188, "y": 51, "flags": 5}, + {"matrix": [10, 8], "x": 216, "y": 51, "flags": 4}, + {"matrix": [11, 0], "x": 108, "y": 51, "flags": 4}, + + {"matrix": [11, 1], "x": 118, "y": 64, "flags": 4}, + {"matrix": [11, 3], "x": 144, "y": 64, "flags": 5}, + {"matrix": [11, 4], "x": 164, "y": 64, "flags": 5}, + {"matrix": [11, 5], "x": 184, "y": 64, "flags": 5}, + {"matrix": [11, 6], "x": 204, "y": 64, "flags": 5}, + {"matrix": [11, 7], "x": 216, "y": 64, "flags": 4}, + {"matrix": [11, 8], "x": 220, "y": 64, "flags": 4}, + {"matrix": [11, 9], "x": 224, "y": 64, "flags": 4} + ] + } +} diff --git a/keyboards/shuguet/shu89/keymaps/default/keymap.json b/keyboards/shuguet/shu89/keymaps/default/keymap.json new file mode 100644 index 00000000000..1725f3438ea --- /dev/null +++ b/keyboards/shuguet/shu89/keymaps/default/keymap.json @@ -0,0 +1,23 @@ +{ + "keyboard": "shuguet/shu89", + "keymap": "default", + "layout": "LAYOUT", + "layers": [ + [ + "KC_ESC" , "KC_F1" , "KC_F2" , "KC_F3" , "KC_F4" , "KC_F5" , "KC_F6" , "KC_F7" , "KC_F8" , "KC_F9" , "KC_F10" , "KC_F11" , "KC_F12" , "KC_PSCR", "KC_SCRL", "KC_PAUS", + "KC_GRV" , "KC_1" , "KC_2" , "KC_3" , "KC_4" , "KC_5" , "KC_6" , "KC_7" , "KC_8" , "KC_9" , "KC_0" , "KC_MINS", "KC_EQL" , "KC_BSPC", "KC_INS" , "KC_HOME", "KC_PGUP", + "KC_TAB" , "KC_Q" , "KC_W" , "KC_E" , "KC_R" , "KC_T" , "KC_Y" , "KC_U" , "KC_I" , "KC_O" , "KC_P" , "KC_LBRC", "KC_RBRC", "KC_BSLS", "KC_DEL" , "KC_END" , "KC_PGDN", + "KC_CAPS", "KC_A" , "KC_S" , "KC_D" , "KC_F" , "KC_G" , "KC_H" , "KC_J" , "KC_K" , "KC_L" , "KC_SCLN", "KC_QUOT", "KC_ENT" , + "KC_LSFT", "KC_Z" , "KC_X" , "KC_C" , "KC_V" , "KC_B" , "KC_N" , "KC_M" , "KC_COMM", "KC_DOT" , "KC_SLSH", "KC_RSFT", "KC_UP" , + "KC_LCTL", "MO(1)" , "KC_LALT", "KC_LGUI", "KC_SPACE" , "KC_SPACE" , "KC_RALT", "KC_RGUI", "KC_APP" , "KC_RCTL", "KC_LEFT", "KC_DOWN", "KC_RGHT" + ], + [ + "QK_BOOT", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "RGB_VAI", "RGB_VAD", "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_TOG" , "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_VOLU", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MPLY", "KC_MPLY", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MPRV", "KC_VOLD", "KC_MNXT" + ] + ] +} diff --git a/keyboards/shuguet/shu89/readme.md b/keyboards/shuguet/shu89/readme.md new file mode 100644 index 00000000000..ad1da4e5ab4 --- /dev/null +++ b/keyboards/shuguet/shu89/readme.md @@ -0,0 +1,20 @@ +# SHU98 + +An 89-key split TKL with PCBs, 3D printed cases, powered by a pair of RP2040. + +* Keyboard Maintainer: [shuguet](https://github.com/shuguet) +* Based on handwiewd original Keyboard from [jurassic73](https://github.com/jurassic73/split89) +* Hardware Supported: RP2040 + +Make example for this keyboard (after setting up your build environment): + + make shuguet/shu89:default + +Flashing example for this keyboard: + + make shuguet/shu89:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) +and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) +for more information. +Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). From cc3823f767a704cc465fbfdfef5d272aab018bd0 Mon Sep 17 00:00:00 2001 From: HorrorTroll Date: Sat, 4 Jan 2025 03:33:22 +0700 Subject: [PATCH 158/365] Update some changes for AT32F415 (#24766) * Fixed SPI can't compiled issue * Added solenoid support and use 256KB ldscript for Onekey board --- keyboards/handwired/onekey/at_start_f415/config.h | 4 ++++ keyboards/handwired/onekey/at_start_f415/rules.mk | 1 + platforms/chibios/drivers/spi_master.c | 4 ++-- 3 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 keyboards/handwired/onekey/at_start_f415/rules.mk diff --git a/keyboards/handwired/onekey/at_start_f415/config.h b/keyboards/handwired/onekey/at_start_f415/config.h index 266e45dd004..0e47e813c57 100644 --- a/keyboards/handwired/onekey/at_start_f415/config.h +++ b/keyboards/handwired/onekey/at_start_f415/config.h @@ -8,3 +8,7 @@ #define BACKLIGHT_PWM_DRIVER PWMD5 #define BACKLIGHT_PWM_CHANNEL 1 + +#define SOLENOID_PIN B12 +#define SOLENOID_PINS { B12, B13, B14, B15 } +#define SOLENOID_PINS_ACTIVE_STATE { high, high, low } diff --git a/keyboards/handwired/onekey/at_start_f415/rules.mk b/keyboards/handwired/onekey/at_start_f415/rules.mk new file mode 100644 index 00000000000..7f2fa62b32f --- /dev/null +++ b/keyboards/handwired/onekey/at_start_f415/rules.mk @@ -0,0 +1 @@ +MCU_LDSCRIPT = AT32F415xC diff --git a/platforms/chibios/drivers/spi_master.c b/platforms/chibios/drivers/spi_master.c index 6417b7077f5..414e5b10a31 100644 --- a/platforms/chibios/drivers/spi_master.c +++ b/platforms/chibios/drivers/spi_master.c @@ -249,11 +249,11 @@ bool spi_start_extended(spi_start_config_t *start_config) { #elif defined(AT32F415) spiConfig.ctrl1 = 0; - if (lsbFirst) { + if (start_config->lsb_first) { spiConfig.ctrl1 |= SPI_CTRL1_LTF; } - switch (mode) { + switch (start_config->mode) { case 0: break; case 1: From 4da260a49aa3e6b698d826b2f435ec74a2c389a3 Mon Sep 17 00:00:00 2001 From: Leo Lou Date: Sat, 4 Jan 2025 08:23:42 +0800 Subject: [PATCH 159/365] [Keyboard] Add 3W6HS (#22539) Co-authored-by: Duncan Sutherland Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Joel Challis --- keyboards/beekeeb/3w6hs/config.h | 22 ++ keyboards/beekeeb/3w6hs/halconf.h | 22 ++ keyboards/beekeeb/3w6hs/info.json | 69 +++++ .../beekeeb/3w6hs/keymaps/default/keymap.c | 68 +++++ keyboards/beekeeb/3w6hs/matrix.c | 248 ++++++++++++++++++ keyboards/beekeeb/3w6hs/mcuconf.h | 24 ++ keyboards/beekeeb/3w6hs/readme.md | 26 ++ keyboards/beekeeb/3w6hs/rules.mk | 3 + 8 files changed, 482 insertions(+) create mode 100644 keyboards/beekeeb/3w6hs/config.h create mode 100644 keyboards/beekeeb/3w6hs/halconf.h create mode 100644 keyboards/beekeeb/3w6hs/info.json create mode 100644 keyboards/beekeeb/3w6hs/keymaps/default/keymap.c create mode 100644 keyboards/beekeeb/3w6hs/matrix.c create mode 100644 keyboards/beekeeb/3w6hs/mcuconf.h create mode 100644 keyboards/beekeeb/3w6hs/readme.md create mode 100644 keyboards/beekeeb/3w6hs/rules.mk diff --git a/keyboards/beekeeb/3w6hs/config.h b/keyboards/beekeeb/3w6hs/config.h new file mode 100644 index 00000000000..fb3b16960d8 --- /dev/null +++ b/keyboards/beekeeb/3w6hs/config.h @@ -0,0 +1,22 @@ +// Copyright 2023 beekeeb +// Copyright 2021 weteor +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 10 + +#define MATRIX_ROWS_PER_SIDE (MATRIX_ROWS / 2) +#define MATRIX_COLS_PER_SIDE (MATRIX_COLS / 2) + +#define MATRIX_ROW_PINS_L { GP7, GP8, GP9, GP10} +#define MATRIX_COL_PINS_L { GP11, GP12, GP13, GP14, GP15 } + +#define MATRIX_ROW_PINS_R { P10, P11, P12, P05 } +#define MATRIX_COL_PINS_R { P06, P13, P14, P01, P00 } + +#define I2C_DRIVER I2CD0 +#define I2C1_SDA_PIN GP0 +#define I2C1_SCL_PIN GP1 diff --git a/keyboards/beekeeb/3w6hs/halconf.h b/keyboards/beekeeb/3w6hs/halconf.h new file mode 100644 index 00000000000..9419229b618 --- /dev/null +++ b/keyboards/beekeeb/3w6hs/halconf.h @@ -0,0 +1,22 @@ +/* Copyright 2023 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next + diff --git a/keyboards/beekeeb/3w6hs/info.json b/keyboards/beekeeb/3w6hs/info.json new file mode 100644 index 00000000000..74f1f1f2457 --- /dev/null +++ b/keyboards/beekeeb/3w6hs/info.json @@ -0,0 +1,69 @@ +{ + "manufacturer": "beekeeb", + "keyboard_name": "3w6hs", + "maintainer": "beekeeb", + "diode_direction": "COL2ROW", + "usb": { + "device_version": "1.0.0", + "pid": "0x0003", + "vid": "0xBEEB", + "no_startup_check": true + }, + "processor": "RP2040", + "bootloader": "rp2040", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true + }, + "community_layouts": ["split_3x5_3"], + "layouts": { + "LAYOUT_split_3x5_3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.8}, + {"matrix": [0, 1], "x": 1, "y": 0.2}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0.2}, + {"matrix": [0, 4], "x": 4, "y": 0.4}, + + {"matrix": [4, 0], "x": 8, "y": 0.4}, + {"matrix": [4, 1], "x": 9, "y": 0.2}, + {"matrix": [4, 2], "x": 10, "y": 0}, + {"matrix": [4, 3], "x": 11, "y": 0.2}, + {"matrix": [4, 4], "x": 12, "y": 0.8}, + + {"matrix": [1, 0], "x": 0, "y": 1.8}, + {"matrix": [1, 1], "x": 1, "y": 1.2}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1.2}, + {"matrix": [1, 4], "x": 4, "y": 1.4}, + + {"matrix": [5, 0], "x": 8, "y": 1.4}, + {"matrix": [5, 1], "x": 9, "y": 1.2}, + {"matrix": [5, 2], "x": 10, "y": 1}, + {"matrix": [5, 3], "x": 11, "y": 1.2}, + {"matrix": [5, 4], "x": 12, "y": 1.8}, + + {"matrix": [2, 0], "x": 0, "y": 2.8}, + {"matrix": [2, 1], "x": 1, "y": 2.2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2.2}, + {"matrix": [2, 4], "x": 4, "y": 2.4}, + + {"matrix": [6, 0], "x": 8, "y": 2.4}, + {"matrix": [6, 1], "x": 9, "y": 2.2}, + {"matrix": [6, 2], "x": 10, "y": 2}, + {"matrix": [6, 3], "x": 11, "y": 2.2}, + {"matrix": [6, 4], "x": 12, "y": 2.8}, + + {"matrix": [3, 2], "x": 3.2, "y": 3.6}, + {"matrix": [3, 3], "x": 4.2, "y": 3.6}, + {"matrix": [3, 4], "x": 5.2, "y": 3.8}, + + {"matrix": [7, 0], "x": 6.8, "y": 3.8}, + {"matrix": [7, 1], "x": 7.8, "y": 3.6}, + {"matrix": [7, 2], "x": 8.8, "y": 3.6} + ] + } + } +} diff --git a/keyboards/beekeeb/3w6hs/keymaps/default/keymap.c b/keyboards/beekeeb/3w6hs/keymaps/default/keymap.c new file mode 100644 index 00000000000..8a9a90175fc --- /dev/null +++ b/keyboards/beekeeb/3w6hs/keymaps/default/keymap.c @@ -0,0 +1,68 @@ +/* Copyright 2021 weteor + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers { + _ALPHA_QWERTY, + _ALPHA_COLEMAK, + _SYM, + _NAV, + _NUM, + _CFG, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + + [_ALPHA_QWERTY] = LAYOUT_split_3x5_3( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + + LCTL_T(KC_ESC), LT(_NUM,KC_SPC), LT(_NAV, KC_TAB), LT(_SYM, KC_BSPC), KC_ENT, LALT_T(KC_DEL) + ), + [_ALPHA_COLEMAK] = LAYOUT_split_3x5_3( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SCLN), + LCTL_T(KC_ENT), LT(_NUM,KC_SPC), LT(_NAV, KC_TAB), LT(_SYM, KC_BSPC), KC_ENT, LALT_T(KC_DEL) + ), + [_SYM] = LAYOUT_split_3x5_3( + KC_GRV , KC_CIRC, KC_AT, KC_DLR, KC_TILD, KC_AMPR, KC_EXLM, KC_PIPE, KC_UNDS, KC_HASH, + KC_SLSH, KC_LBRC, KC_LCBR, KC_LPRN, KC_EQL, KC_ASTR, KC_RPRN, KC_RCBR, KC_RBRC, KC_BSLS, + _______, KC_QUES, KC_PLUS, KC_PERC, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, XXXXXXX, _______, + XXXXXXX, MO(_CFG), XXXXXXX, _______, XXXXXXX, XXXXXXX + ), + [_NAV] = LAYOUT_split_3x5_3( + XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, XXXXXXX, XXXXXXX, KC_PGDN, KC_UP, KC_PGUP, KC_DEL, + KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, XXXXXXX, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, _______, XXXXXXX, MO(_CFG), XXXXXXX + ), + [_NUM] = LAYOUT_split_3x5_3( + XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, KC_PPLS, KC_P7, KC_P8, KC_P9, KC_PSLS, + XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, KC_P0, KC_P4, KC_P5, KC_P6, KC_PDOT, + XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_PMNS, KC_P1, KC_P2, KC_P3, KC_PAST, + XXXXXXX, _______, XXXXXXX, KC_PEQL, KC_PENT, XXXXXXX + ), + [_CFG] = LAYOUT_split_3x5_3( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,DF(_ALPHA_QWERTY), DF(_ALPHA_COLEMAK), + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX + ), +}; diff --git a/keyboards/beekeeb/3w6hs/matrix.c b/keyboards/beekeeb/3w6hs/matrix.c new file mode 100644 index 00000000000..8bddc628429 --- /dev/null +++ b/keyboards/beekeeb/3w6hs/matrix.c @@ -0,0 +1,248 @@ +/* +Copyright 2013 Oleg Kostyuk + 2020 Pierre Chevalier + 2021 weteor + 2023 beekeeb +*/ + +// SPDX-License-Identifier: GPL-2.0-or-later + +/* + * This code was heavily inspired by the ergodox_ez keymap, and modernized + * to take advantage of the quantum.h microcontroller agnostics gpio control + * abstractions and use the macros defined in config.h for the wiring as opposed + * to repeating that information all over the place. + */ + +#include "matrix.h" +#include "debug.h" +#include "wait.h" +#include "i2c_master.h" + +extern i2c_status_t tca9555_status; +//#define I2C_TIMEOUT 1000 + +// I2C address: +// All address pins of the tca9555 are connected to the ground +// | 0 | 1 | 0 | 0 | A2 | A1 | A0 | +// | 0 | 1 | 0 | 0 | 0 | 0 | 0 | +#define I2C_ADDR (0b0100000 << 1) + +// Register addresses +#define IODIRA 0x06 // i/o direction register +#define IODIRB 0x07 +#define IREGP0 0x00 // GPIO pull-up resistor register +#define IREGP1 0x01 +#define OREGP0 0x02 // general purpose i/o port register (write modifies OLAT) +#define OREGP1 0x03 + +bool i2c_initialized = 0; +i2c_status_t tca9555_status = I2C_ADDR; + +uint8_t init_tca9555(void) { + dprint("starting init\n"); + tca9555_status = I2C_ADDR; + + // I2C subsystem + if (i2c_initialized == 0) { + i2c_init(); // on pins D(1,0) + i2c_initialized = true; + wait_ms(I2C_TIMEOUT); + } + + // set pin direction + // - unused : input : 1 + // - input : input : 1 + // - driving : output : 0 + uint8_t conf[2] = { + // This means: read all pins of port 0 + 0b11111111, + // This means: we will write on pins 0 to 3 on port 1. read rest + 0b11110000, + }; + tca9555_status = i2c_write_register(I2C_ADDR, IODIRA, conf, 2, I2C_TIMEOUT); + + return tca9555_status; +} + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; // debounced values + +static matrix_row_t read_cols(uint8_t row); +static void init_cols(void); +static void unselect_rows(void); +static void select_row(uint8_t row); + +static uint8_t tca9555_reset_loop; + +void matrix_init_custom(void) { + // initialize row and col + + tca9555_status = init_tca9555(); + + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + } +} + +void matrix_power_up(void) { + tca9555_status = init_tca9555(); + + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + } +} + +// Reads and stores a row, returning +// whether a change occurred. +static inline bool store_matrix_row(matrix_row_t current_matrix[], uint8_t index) { + matrix_row_t temp = read_cols(index); + if (current_matrix[index] != temp) { + current_matrix[index] = temp; + return true; + } + return false; +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + if (tca9555_status) { // if there was an error + if (++tca9555_reset_loop == 0) { + // since tca9555_reset_loop is 8 bit - we'll try to reset once in 255 matrix scans + // this will be approx bit more frequent than once per second + dprint("trying to reset tca9555\n"); + tca9555_status = init_tca9555(); + if (tca9555_status) { + dprint("right side not responding\n"); + } else { + dprint("right side attached\n"); + } + } + } + + bool changed = false; + for (uint8_t i = 0; i < MATRIX_ROWS_PER_SIDE; i++) { + // select rows from left and right hands + uint8_t left_index = i; + uint8_t right_index = i + MATRIX_ROWS_PER_SIDE; + select_row(left_index); + select_row(right_index); + + // we don't need a 30us delay anymore, because selecting a + // left-hand row requires more than 30us for i2c. + + changed |= store_matrix_row(current_matrix, left_index); + changed |= store_matrix_row(current_matrix, right_index); + + unselect_rows(); + } + + return changed; +} + +static void init_cols(void) { + // init on tca9555 + // not needed, already done as part of init_tca9555() + + // init on mcu + pin_t matrix_col_pins_mcu[MATRIX_COLS_PER_SIDE] = MATRIX_COL_PINS_L; + for (int pin_index = 0; pin_index < MATRIX_COLS_PER_SIDE; pin_index++) { + pin_t pin = matrix_col_pins_mcu[pin_index]; + gpio_set_pin_input_high(pin); + gpio_write_pin_high(pin); + } +} + +static matrix_row_t read_cols(uint8_t row) { + if (row < MATRIX_ROWS_PER_SIDE) { + pin_t matrix_col_pins_mcu[MATRIX_COLS_PER_SIDE] = MATRIX_COL_PINS_L; + matrix_row_t current_row_value = 0; + // For each col... + for (uint8_t col_index = 0; col_index < MATRIX_COLS_PER_SIDE; col_index++) { + // Select the col pin to read (active low) + uint8_t pin_state = gpio_read_pin(matrix_col_pins_mcu[col_index]); + + // Populate the matrix row with the state of the col pin + current_row_value |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); + } + return current_row_value; + } else { + if (tca9555_status) { // if there was an error + return 0; + } else { + uint8_t data = 0; + uint8_t port0 = 0; + tca9555_status = i2c_read_register(I2C_ADDR, IREGP0, &port0, 1, I2C_TIMEOUT); + if (tca9555_status) { // if there was an error + // do nothing + return 0; + } else { + port0 = ~port0; + // We read all the pins on GPIOA. + // The initial state was all ones and any depressed key at a given column for the currently selected row will have its bit flipped to zero. + // The return value is a row as represented in the generic matrix code were the rightmost bits represent the lower columns and zeroes represent non-depressed keys while ones represent depressed keys. + // the pins connected to eact columns are sequential, but in reverse order, and counting from zero down (col 5 -> GPIO04, col6 -> GPIO03 and so on). + data |= (port0 & 0x01) << 4; + data |= (port0 & 0x02) << 2; + data |= (port0 & 0x04); + data |= (port0 & 0x08) >> 2; + data |= (port0 & 0x10) >> 4; + + tca9555_status = I2C_STATUS_SUCCESS; + return data; + } + } + } +} + +static void unselect_rows(void) { + // no need to unselect on tca9555, because the select step sets all + // the other row bits high, and it's not changing to a different + // direction + + // unselect rows on microcontroller + pin_t matrix_row_pins_mcu[MATRIX_ROWS_PER_SIDE] = MATRIX_ROW_PINS_L; + for (int pin_index = 0; pin_index < MATRIX_ROWS_PER_SIDE; pin_index++) { + pin_t pin = matrix_row_pins_mcu[pin_index]; + gpio_set_pin_input_high(pin); + gpio_write_pin_low(pin); + } +} + +static void select_row(uint8_t row) { + uint8_t port1 = 0xff; + + if (row < MATRIX_ROWS_PER_SIDE) { + // select on atmega32u4 + pin_t matrix_row_pins_mcu[MATRIX_ROWS_PER_SIDE] = MATRIX_ROW_PINS_L; + pin_t pin = matrix_row_pins_mcu[row]; + gpio_set_pin_output(pin); + gpio_write_pin_low(pin); + } else { + // select on tca9555 + if (tca9555_status) { // if there was an error + // do nothing + } else { + switch(row) { + case 4: port1 &= ~(1 << 0); break; + case 5: port1 &= ~(1 << 1); break; + case 6: port1 &= ~(1 << 2); break; + case 7: + port1 &= ~(1 << 3); + break; + default: break; + } + + tca9555_status = i2c_write_register(I2C_ADDR, OREGP1, &port1, 1, I2C_TIMEOUT); + // Select the desired row by writing a byte for the entire GPIOB bus where only the bit representing the row we want to select is a zero (write instruction) and every other bit is a one. + // Note that the row - MATRIX_ROWS_PER_SIDE reflects the fact that being on the right hand, the columns are numbered from MATRIX_ROWS_PER_SIDE to MATRIX_ROWS, but the pins we want to write to are indexed from zero up on the GPIOB bus. + } + } +} diff --git a/keyboards/beekeeb/3w6hs/mcuconf.h b/keyboards/beekeeb/3w6hs/mcuconf.h new file mode 100644 index 00000000000..dd927436dff --- /dev/null +++ b/keyboards/beekeeb/3w6hs/mcuconf.h @@ -0,0 +1,24 @@ +/* Copyright 2023 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef RP_I2C_USE_I2C0 +#undef RP_I2C_USE_I2C1 +#define RP_I2C_USE_I2C0 TRUE +#define RP_I2C_USE_I2C1 FALSE diff --git a/keyboards/beekeeb/3w6hs/readme.md b/keyboards/beekeeb/3w6hs/readme.md new file mode 100644 index 00000000000..e0dde6eb0b1 --- /dev/null +++ b/keyboards/beekeeb/3w6hs/readme.md @@ -0,0 +1,26 @@ +# 3W6HS + +![3W6HS](https://i.imgur.com/CPxwGSt.jpeg) + +The 3W6HS is a hotswap, RP2040, low profile, split keyboard with 36 keys, modified from 3W6 by weteor. + +* Keyboard Maintainer: [beekeeb](https://github.com/beekeeb) +* Hardware Supported: RP2040 +* Hardware Availability: [https://shop.beekeeb.com/](https://shop.beekeeb.com) + +Make example for this keyboard (after setting up your build environment): + + make beekeeb/3w6hs:default + +Flashing example for this keyboard: + + make beekeeb/3w6hs:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +To enter the bootloader, follow these steps: +* Disconnect the keyboard from the computer. +* Locate the BOOT button, which is the top button on the left side of the keyboard. +* While holding down the BOOT button, connect the keyboard back to the computer. diff --git a/keyboards/beekeeb/3w6hs/rules.mk b/keyboards/beekeeb/3w6hs/rules.mk new file mode 100644 index 00000000000..cea39bb5c90 --- /dev/null +++ b/keyboards/beekeeb/3w6hs/rules.mk @@ -0,0 +1,3 @@ +CUSTOM_MATRIX = lite +SRC += matrix.c +I2C_DRIVER_REQUIRED = yes From 9dba024d76119b4185b971110805e76cdcc120f9 Mon Sep 17 00:00:00 2001 From: takashicompany Date: Sat, 4 Jan 2025 17:41:32 +0900 Subject: [PATCH 160/365] Add EE_HANDS for KLEC-02 (#24777) Add #define EE_HANDS --- keyboards/takashicompany/klec_02/config.h | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 keyboards/takashicompany/klec_02/config.h diff --git a/keyboards/takashicompany/klec_02/config.h b/keyboards/takashicompany/klec_02/config.h new file mode 100644 index 00000000000..8828e2ad72a --- /dev/null +++ b/keyboards/takashicompany/klec_02/config.h @@ -0,0 +1,6 @@ +// Copyright 2024 takashicompany (@takashicompany) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define EE_HANDS \ No newline at end of file From c9f94752430209516717522cfbbe59042b952e5f Mon Sep 17 00:00:00 2001 From: Tocho Tochev Date: Sat, 4 Jan 2025 11:08:26 +0000 Subject: [PATCH 161/365] Fix durgod k3x0 docs (#24774) --- keyboards/durgod/k310/readme.md | 2 +- keyboards/durgod/k320/readme.md | 6 +++--- keyboards/durgod/k3x0/readme.md | 12 ++++++------ 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/keyboards/durgod/k310/readme.md b/keyboards/durgod/k310/readme.md index 1f39f79513c..7483dc5ddfc 100644 --- a/keyboards/durgod/k310/readme.md +++ b/keyboards/durgod/k310/readme.md @@ -6,7 +6,7 @@ This is a standard off-the-shelf Durgod Taurus K310 full-sized 104/105-key keyboard without backlight. This supports both the ANSI and ISO variants. * Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert) -* Hardware Supported: [Durgod Taurus K310 board with STM32F070RBT6](https://www.durgod.com/page9?product_id=53&_l=en "Durgod.com Product Page") +* Hardware Supported: [Durgod Taurus K310 board with STM32F070RBT6](https://www.durgod.com/product/k310-space-gray/) * Hardware Availability: [Amazon.com](https://www.amazon.com/Durgod-Taurus-K310-Mechanical-Keyboard/dp/B07TXB4XF3) ## Instructions diff --git a/keyboards/durgod/k320/readme.md b/keyboards/durgod/k320/readme.md index ce5ae3211d3..fd4752c1849 100644 --- a/keyboards/durgod/k320/readme.md +++ b/keyboards/durgod/k320/readme.md @@ -6,7 +6,7 @@ This is a standard off-the-shelf Durgod Taurus K320 TKL (87/88-key) keyboard without backlight. This supports both the ANSI and ISO variants. * Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert) -* Hardware Supported: [Durgod Taurus K320 board with STM32F070RBT6](https://www.durgod.com/page9?product_id=47&_l=en "Durgod.com Product Page") +* Hardware Supported: [Durgod Taurus K320 board with STM32F070RBT6](https://www.durgod.com/product/k320-space-gray/) * Hardware Availability: [Amazon.com](https://www.amazon.com/Durgod-Taurus-Corona-Mechanical-Keyboard/dp/B078H3WPHM) ## Instructions @@ -15,11 +15,11 @@ keyboard without backlight. This supports both the ANSI and ISO variants. Make command example for this keyboard (after setting up your build environment): - make durgod/k3x0/k320/base:default + make durgod/k320/base:default Flashing example for this keyboard: - make durgod/k3x0/k320/base:default:flash + make durgod/k320/base:default:flash See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/durgod/k3x0/readme.md b/keyboards/durgod/k3x0/readme.md index 90e9602e717..e4fa6807815 100644 --- a/keyboards/durgod/k3x0/readme.md +++ b/keyboards/durgod/k3x0/readme.md @@ -5,8 +5,8 @@ K310 full-sized 104/105-key and K320 TKL 87/88-key keyboards. * Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert) * Hardware Supported: - * [Durgod Taurus K310 with STM32F070RBT6](https://www.durgod.com/page9?product_id=53&_l=en "Taurus K310 Product Page | Durgod.com") - * [Durgod Taurus K320 with STM32F070RBT6](https://www.durgod.com/page9?product_id=47&_l=en "Taurus K320 Product Page | Durgod.com") + * [Durgod Taurus K310 with STM32F070RBT6](https://www.durgod.com/product/k310-space-gray/) + * [Durgod Taurus K320 with STM32F070RBT6](https://www.durgod.com/product/k320-space-gray/) * Hardware Availability: * [K310 on Amazon.com](https://www.amazon.com/Durgod-Taurus-K310-Mechanical-Keyboard/dp/B07TXB4XF3) * [K320 on Amazon.com](https://www.amazon.com/Durgod-Taurus-Corona-Mechanical-Keyboard/dp/B078H3WPHM) @@ -16,8 +16,8 @@ K310 full-sized 104/105-key and K320 TKL 87/88-key keyboards. ### Build Instructions for building the K310 and K320 firmware can be found here: -* [K310](k310/readme.md) -* [K320](k320/readme.md) +* [K310](../k310/readme.md) +* [K320](../k320/readme.md) ### Initial Flash @@ -67,10 +67,10 @@ dfu-util -a 0 -d 0483:DF11 -s 0x08000000 -U k3x0_original.bin ```bash # k310 -qmk flash -kb durgod/k3x0/k310 -km default +qmk flash -kb durgod/k310 -km default # k320 -qmk flash -kb durgod/k3x0/k320 -km default +qmk flash -kb durgod/k320 -km default ``` ### Subsequent Flashing From 9339e3c35d971c9415acff8a63b2c5e6eaa7b555 Mon Sep 17 00:00:00 2001 From: Clocks <38189170+Doomsdayrs@users.noreply.github.com> Date: Sun, 5 Jan 2025 15:46:58 -0500 Subject: [PATCH 162/365] Add watchdog service to RGBKB Sol 3 (#24786) Due to power demands, the Sol 3 might get initially ignored or something by the attached device. The solution is the enable watchdog, which would have the keyboard repoll the system to connect again. I have been using watchdog for awhile, but given that the RGBKB developer never progressed #24279, I made this to add in the essential feature. --- keyboards/rgbkb/sol3/rev1/keyboard.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/keyboards/rgbkb/sol3/rev1/keyboard.json b/keyboards/rgbkb/sol3/rev1/keyboard.json index a81ea7bc212..775e3f86297 100644 --- a/keyboards/rgbkb/sol3/rev1/keyboard.json +++ b/keyboards/rgbkb/sol3/rev1/keyboard.json @@ -153,6 +153,8 @@ "pin": "A9" }, "transport": { + "watchdog": true, + "watchdog_timeout": 20000, "sync": { "indicators": true, "layer_state": true, From a336c04a6a1f21a5b4a84b848f4037841f2bf5d6 Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 6 Jan 2025 13:19:45 +1100 Subject: [PATCH 163/365] macOS install: remove bad ARM toolchains (#24637) --- util/install/macos.sh | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/util/install/macos.sh b/util/install/macos.sh index a1b79fe8683..4db2f9be6b4 100755 --- a/util/install/macos.sh +++ b/util/install/macos.sh @@ -9,23 +9,24 @@ _qmk_install_prepare() { return 1 fi + # Conflicts with arm-none-eabi toolchain from osx-cross + brew uninstall --ignore-dependencies --cask gcc-arm-embedded >/dev/null 2>&1 + brew uninstall --ignore-dependencies homebrew/core/arm-none-eabi-gcc >/dev/null 2>&1 + brew uninstall --ignore-dependencies homebrew/core/arm-none-eabi-binutils >/dev/null 2>&1 + brew uninstall --ignore-dependencies osx-cross/arm/arm-gcc-bin@8 >/dev/null 2>&1 + brew update && brew upgrade --formulae } _qmk_install() { echo "Installing dependencies" - # All macOS dependencies are managed in the Homebrew package: - # https://github.com/qmk/homebrew-qmk + # All macOS & Python dependencies are managed in the Homebrew package: + # https://github.com/qmk/homebrew-qmk brew install qmk/qmk/qmk - # Conflicts with new toolchain formulae - brew uninstall --ignore-dependencies arm-gcc-bin@8 >/dev/null 2>&1 - # Keg-only, so need to be manually linked brew link --force avr-gcc@8 brew link --force arm-none-eabi-binutils brew link --force arm-none-eabi-gcc@8 - - python3 -m pip install -r $QMK_FIRMWARE_DIR/requirements.txt } From bcee1d2f2e17f85f75d67e32c809ae76bd3803ef Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Tue, 7 Jan 2025 08:48:28 +1100 Subject: [PATCH 164/365] Remove preprocessor sanity check for STM32L0/L1 now that it relies on types in C. (#24793) --- platforms/chibios/drivers/eeprom/eeprom_stm32_L0_L1.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/platforms/chibios/drivers/eeprom/eeprom_stm32_L0_L1.h b/platforms/chibios/drivers/eeprom/eeprom_stm32_L0_L1.h index c1d801f2250..1e6b4e4e426 100644 --- a/platforms/chibios/drivers/eeprom/eeprom_stm32_L0_L1.h +++ b/platforms/chibios/drivers/eeprom/eeprom_stm32_L0_L1.h @@ -27,7 +27,3 @@ # define STM32_ONBOARD_EEPROM_SIZE (((EECONFIG_SIZE + 3) / 4) * 4) // based off eeconfig's current usage, aligned to 4-byte sizes, to deal with LTO and EEPROM page sizing # endif #endif - -#if STM32_ONBOARD_EEPROM_SIZE > 128 -# pragma message("Please note: resetting EEPROM using an STM32L0/L1 device takes up to 1 second for every 1kB of internal EEPROM used.") -#endif From 6facb7a079740f975c41c9ae8d95f0735097933e Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 8 Jan 2025 03:12:54 +0000 Subject: [PATCH 165/365] Convert stray legacy warn/info docs panels (#24799) --- docs/feature_macros.md | 4 +++- docs/feature_userspace.md | 5 +++-- docs/features/mouse_keys.md | 4 +++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/docs/feature_macros.md b/docs/feature_macros.md index b4e37a1ba96..404eb4b38d9 100644 --- a/docs/feature_macros.md +++ b/docs/feature_macros.md @@ -117,7 +117,9 @@ If yes, we send the string `"QMK is the best thing ever!"` to the computer via t We return `true` to indicate to the caller that the key press we just processed should continue to be processed as normal (as we didn't replace or alter the functionality). Finally, we define the keymap so that the first button activates our macro and the second button is just an escape button. -?>It is recommended to use the SAFE_RANGE macro as per [Customizing Functionality](custom_quantum_functions). +::: tip +It is recommended to use the SAFE_RANGE macro as per [Customizing Functionality](custom_quantum_functions). +::: You might want to add more than one macro. You can do that by adding another keycode and adding another case to the switch statement, like so: diff --git a/docs/feature_userspace.md b/docs/feature_userspace.md index 1e7c3b37cdc..d19b86cb46c 100644 --- a/docs/feature_userspace.md +++ b/docs/feature_userspace.md @@ -74,8 +74,9 @@ Additionally, `config.h` here will be processed like the same file in your keyma The reason for this, is that `.h` won't be added in time to add settings (such as `#define TAPPING_TERM 100`), and including the `` file in any `config.h` files will result in compile issues. -!>You should use the `config.h` for [configuration options](config_options), and the `.h` file for user or keymap specific settings (such as the enum for layer or keycodes) - +::: warning +You should use the `config.h` for [configuration options](config_options), and the `.h` file for user or keymap specific settings (such as the enum for layer or keycodes) +::: ## Readme (`readme.md`) diff --git a/docs/features/mouse_keys.md b/docs/features/mouse_keys.md index d755084f8e6..86b50fa9c8d 100644 --- a/docs/features/mouse_keys.md +++ b/docs/features/mouse_keys.md @@ -214,7 +214,9 @@ When additional overlapping mouse key is pressed, the mouse cursor will continue |`MOUSEKEY_OVERLAP_WHEEL_DELTA`|`MOUSEKEY_WHEEL_DELTA`|Step size of reset mouse wheel acceleration | |`MOUSEKEY_OVERLAP_INTERVAL` |`MOUSEKEY_INTERVAL` |Reset time between cursor movements in milliseconds (Kinetic mode only)| -?> This feature will not be applied on Inertial mode +::: tip +This feature will not be applied on Inertial mode +::: ## Use with PS/2 Mouse and Pointing Device From 95c74b6276c95fab5e04e22b1f1cd30aedead6fa Mon Sep 17 00:00:00 2001 From: jack Date: Wed, 8 Jan 2025 04:13:04 +0100 Subject: [PATCH 166/365] [Docs] Fix wording in Mod Tap documentation (#24796) --- docs/mod_tap.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/mod_tap.md b/docs/mod_tap.md index 37c2ba3473b..da2ecc9a854 100644 --- a/docs/mod_tap.md +++ b/docs/mod_tap.md @@ -2,7 +2,7 @@ The Mod-Tap key `MT(mod, kc)` acts like a modifier when held, and a regular keycode when tapped. In other words, you can have a key that sends Escape when you tap it, but functions as a Control or Shift key when you hold it down. -The modifiers this keycode and `OSM()` accept are prefixed with `MOD_`, not `KC_`: +The modifiers (`mod`) argument to the `MT()` macro are prefixed with `MOD_`, not `KC_`: |Modifier |Description | |----------|----------------------------------------| From 80c90a6952f412defa6b3709a59507b2c76f3863 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Wed, 8 Jan 2025 08:50:54 -0800 Subject: [PATCH 167/365] [Bug] Fix Underglow keycode processing (#24798) Co-authored-by: Ryan --- quantum/process_keycode/process_underglow.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/quantum/process_keycode/process_underglow.c b/quantum/process_keycode/process_underglow.c index 6104cd02c6c..b8d8989ef34 100644 --- a/quantum/process_keycode/process_underglow.c +++ b/quantum/process_keycode/process_underglow.c @@ -16,7 +16,10 @@ bool process_underglow(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { - uint8_t shifted = get_mods() & MOD_MASK_SHIFT; +#if defined(RGBLIGHT_ENABLE) || (defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES)) + const uint8_t shifted = get_mods() & MOD_MASK_SHIFT; +#endif + switch (keycode) { case QK_UNDERGLOW_TOGGLE: #if defined(RGBLIGHT_ENABLE) From c1565bebcef26c400801caa4447012c2b9fa0a62 Mon Sep 17 00:00:00 2001 From: HorrorTroll Date: Wed, 8 Jan 2025 23:51:28 +0700 Subject: [PATCH 168/365] Patch up issue when compile with APA102 driver (#24800) --- drivers/led/apa102.c | 2 +- drivers/led/apa102.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/led/apa102.c b/drivers/led/apa102.c index 050609263d5..6e87d48b968 100644 --- a/drivers/led/apa102.c +++ b/drivers/led/apa102.c @@ -122,7 +122,7 @@ void apa102_init(void) { gpio_set_pin_output(APA102_CI_PIN); } -void apa102_set_color(uint16_t index, uint8_t red, uint8_t green, uint8_t blue) { +void apa102_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { apa102_leds[index].r = red; apa102_leds[index].g = green; apa102_leds[index].b = blue; diff --git a/drivers/led/apa102.h b/drivers/led/apa102.h index 42f1344f0c9..6fa3521a3a5 100644 --- a/drivers/led/apa102.h +++ b/drivers/led/apa102.h @@ -32,7 +32,7 @@ #define APA102_MAX_BRIGHTNESS 31 void apa102_init(void); -void apa102_set_color(uint16_t index, uint8_t red, uint8_t green, uint8_t blue); +void apa102_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); void apa102_set_color_all(uint8_t red, uint8_t green, uint8_t blue); void apa102_flush(void); From 9d2b416fe17cbeb3753e2c3dfc782b12df3a4270 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Thu, 9 Jan 2025 17:53:44 +1100 Subject: [PATCH 169/365] Update ChibiOS-Contrib. (#24803) --- lib/chibios-contrib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/chibios-contrib b/lib/chibios-contrib index b643aad980d..3ac181e4ca5 160000 --- a/lib/chibios-contrib +++ b/lib/chibios-contrib @@ -1 +1 @@ -Subproject commit b643aad980d061021565c55745925c2cde4a3c6f +Subproject commit 3ac181e4ca5cafddaf8b472baa1d09c2b24c77b6 From d90b6e4689ab7d74585774621adccc6faf021d38 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 11 Jan 2025 02:04:17 +1100 Subject: [PATCH 170/365] Fix a build warning and tidy up a keymap (#24805) --- .../3w6hs/{info.json => keyboard.json} | 0 .../keyprez/bison/keymaps/default/keymap.c | 32 ++----------------- 2 files changed, 3 insertions(+), 29 deletions(-) rename keyboards/beekeeb/3w6hs/{info.json => keyboard.json} (100%) diff --git a/keyboards/beekeeb/3w6hs/info.json b/keyboards/beekeeb/3w6hs/keyboard.json similarity index 100% rename from keyboards/beekeeb/3w6hs/info.json rename to keyboards/beekeeb/3w6hs/keyboard.json diff --git a/keyboards/keyprez/bison/keymaps/default/keymap.c b/keyboards/keyprez/bison/keymaps/default/keymap.c index d66b1a487bb..17c5f2ecd7e 100644 --- a/keyboards/keyprez/bison/keymaps/default/keymap.c +++ b/keyboards/keyprez/bison/keymaps/default/keymap.c @@ -25,11 +25,6 @@ enum layer_names { _FN, }; -enum custom_keycodes { - KC_PRVWD = SAFE_RANGE, - KC_NXTWD -}; - #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) #define FN MO(_FN) @@ -47,6 +42,9 @@ enum custom_keycodes { #define KC_COLMK PDF(_COLEMAK) #define KC_HRM PDF(_HRM) +#define KC_PRVWD LCTL(KC_LEFT) +#define KC_NXTWD LCTL(KC_RGHT) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* * QWERTY @@ -186,27 +184,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______,_______, _______, _______, _______, _______, _______, _______ ), }; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case KC_PRVWD: - if (record->event.pressed) { - register_mods(mod_config(MOD_LCTL)); - register_code(KC_LEFT); - } else { - unregister_mods(mod_config(MOD_LCTL)); - unregister_code(KC_LEFT); - } - break; - case KC_NXTWD: - if (record->event.pressed) { - register_mods(mod_config(MOD_LCTL)); - register_code(KC_RIGHT); - } else { - unregister_mods(mod_config(MOD_LCTL)); - unregister_code(KC_RIGHT); - } - break; - } - return true; -} From f9430e530b1ba61891990d7c23c78c78e6656a6c Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 10 Jan 2025 16:21:07 +0000 Subject: [PATCH 171/365] Ensure `qmk flash` rejects invalid files for uf2 compatible bootloaders (#24802) Ensure 'qmk flash' rejects invalid files for uf2 compatible bootloaders --- lib/python/qmk/flashers.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/python/qmk/flashers.py b/lib/python/qmk/flashers.py index 7ee1bc8de73..2cca4941d33 100644 --- a/lib/python/qmk/flashers.py +++ b/lib/python/qmk/flashers.py @@ -202,6 +202,10 @@ def _flash_mdloader(file): def _flash_uf2(file): + output = cli.run(['util/uf2conv.py', '--info', file]).stdout + if 'UF2 File' not in output: + return True + cli.run(['util/uf2conv.py', '--deploy', file], capture_output=False) @@ -235,7 +239,8 @@ def flasher(mcu, file): elif bl == 'md-boot': _flash_mdloader(file) elif bl == '_uf2_compatible_': - _flash_uf2(file) + if _flash_uf2(file): + return (True, "Flashing only supports uf2 format files.") else: return (True, "Known bootloader found but flashing not currently supported!") From 35c652056073af84577d5a1cb6729ea262f2075e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 10 Jan 2025 20:59:33 +0000 Subject: [PATCH 172/365] Bump nanoid from 3.3.7 to 3.3.8 in /builddefs/docsgen (#24713) Bumps [nanoid](https://github.com/ai/nanoid) from 3.3.7 to 3.3.8. - [Release notes](https://github.com/ai/nanoid/releases) - [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md) - [Commits](https://github.com/ai/nanoid/compare/3.3.7...3.3.8) --- updated-dependencies: - dependency-name: nanoid dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- builddefs/docsgen/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/builddefs/docsgen/yarn.lock b/builddefs/docsgen/yarn.lock index 3b5f68035f7..057e89d0738 100644 --- a/builddefs/docsgen/yarn.lock +++ b/builddefs/docsgen/yarn.lock @@ -663,9 +663,9 @@ mitt@^3.0.1: integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw== nanoid@^3.3.7: - version "3.3.7" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" - integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + version "3.3.8" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf" + integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w== perfect-debounce@^1.0.0: version "1.0.0" From 62e98327d2b7f82f96d5fd8eafacf02cf1f76dbb Mon Sep 17 00:00:00 2001 From: Dasky <32983009+daskygit@users.noreply.github.com> Date: Sat, 11 Jan 2025 01:29:58 +0000 Subject: [PATCH 173/365] Azoteq - improve I2C behaviour while polling. (#24611) Co-authored-by: Stefan Kerkmann --- drivers/sensors/azoteq_iqs5xx.c | 55 ++++++++++++++------------------- drivers/sensors/azoteq_iqs5xx.h | 3 +- 2 files changed, 26 insertions(+), 32 deletions(-) diff --git a/drivers/sensors/azoteq_iqs5xx.c b/drivers/sensors/azoteq_iqs5xx.c index 1bb64f19844..ae26ee60cfd 100644 --- a/drivers/sensors/azoteq_iqs5xx.c +++ b/drivers/sensors/azoteq_iqs5xx.c @@ -17,6 +17,7 @@ #define AZOTEQ_IQS5XX_REG_PREVIOUS_CYCLE_TIME 0x000C #define AZOTEQ_IQS5XX_REG_SYSTEM_CONTROL_1 0x0432 #define AZOTEQ_IQS5XX_REG_REPORT_RATE_ACTIVE 0x057A +#define AZOTEQ_IQS5XX_REG_IDLE_MODE_TIMEOUT 0x0586 #define AZOTEQ_IQS5XX_REG_SYSTEM_CONFIG_0 0x058E #define AZOTEQ_IQS5XX_REG_SYSTEM_CONFIG_1 0x058F #define AZOTEQ_IQS5XX_REG_X_RESOLUTION 0x066E @@ -77,6 +78,10 @@ #ifndef AZOTEQ_IQS5XX_ZOOM_CONSECUTIVE_DISTANCE # define AZOTEQ_IQS5XX_ZOOM_CONSECUTIVE_DISTANCE 0x19 #endif +#ifndef AZOTEQ_IQS5XX_EVENT_MODE +// Event mode can't be used until the pointing code has changed (stuck buttons) +# define AZOTEQ_IQS5XX_EVENT_MODE false +#endif #if defined(AZOTEQ_IQS5XX_TPS43) # define AZOTEQ_IQS5XX_WIDTH_MM 43 @@ -112,12 +117,6 @@ static struct { uint16_t resolution_y; } azoteq_iqs5xx_device_resolution_t; -i2c_status_t azoteq_iqs5xx_wake(void) { - uint8_t data = 0; - i2c_status_t status = i2c_read_register16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_PREVIOUS_CYCLE_TIME, (uint8_t *)&data, sizeof(data), 1); - wait_us(150); - return status; -} i2c_status_t azoteq_iqs5xx_end_session(void) { const uint8_t END_BYTE = 1; // any data return i2c_write_register16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_END_COMMS, &END_BYTE, 1, AZOTEQ_IQS5XX_TIMEOUT_MS); @@ -324,14 +323,19 @@ static i2c_status_t azoteq_iqs5xx_init_status = 1; void azoteq_iqs5xx_init(void) { i2c_init(); - azoteq_iqs5xx_wake(); + i2c_ping_address(AZOTEQ_IQS5XX_ADDRESS, 1); // wake azoteq_iqs5xx_reset_suspend(true, false, true); wait_ms(100); - azoteq_iqs5xx_wake(); + i2c_ping_address(AZOTEQ_IQS5XX_ADDRESS, 1); // wake if (azoteq_iqs5xx_get_product() != AZOTEQ_IQS5XX_UNKNOWN) { azoteq_iqs5xx_setup_resolution(); azoteq_iqs5xx_init_status = azoteq_iqs5xx_set_report_rate(AZOTEQ_IQS5XX_REPORT_RATE, AZOTEQ_IQS5XX_ACTIVE, false); - azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_event_mode(false, false); + azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_report_rate(AZOTEQ_IQS5XX_REPORT_RATE, AZOTEQ_IQS5XX_IDLE, false); + azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_report_rate(AZOTEQ_IQS5XX_REPORT_RATE, AZOTEQ_IQS5XX_IDLE_TOUCH, false); + + uint8_t no_timeout = 255; + azoteq_iqs5xx_init_status |= i2c_write_register16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_IDLE_MODE_TIMEOUT, &no_timeout, 1, AZOTEQ_IQS5XX_TIMEOUT_MS); // Don't enter LP1, LP2 states + azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_event_mode(AZOTEQ_IQS5XX_EVENT_MODE, false); azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_reati(true, false); #if defined(AZOTEQ_IQS5XX_ROTATION_90) azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_xy_config(false, true, true, true, false); @@ -348,21 +352,19 @@ void azoteq_iqs5xx_init(void) { }; report_mouse_t azoteq_iqs5xx_get_report(report_mouse_t mouse_report) { - report_mouse_t temp_report = {0}; - static uint8_t previous_button_state = 0; - static uint8_t read_error_count = 0; + report_mouse_t temp_report = {0}; if (azoteq_iqs5xx_init_status == I2C_STATUS_SUCCESS) { - azoteq_iqs5xx_base_data_t base_data = {0}; -#if !defined(POINTING_DEVICE_MOTION_PIN) - azoteq_iqs5xx_wake(); -#endif - i2c_status_t status = azoteq_iqs5xx_get_base_data(&base_data); - bool ignore_movement = false; + azoteq_iqs5xx_base_data_t base_data = {0}; + i2c_status_t status = azoteq_iqs5xx_get_base_data(&base_data); + bool ignore_movement = false; if (status == I2C_STATUS_SUCCESS) { - // pd_dprintf("IQS5XX - previous cycle time: %d \n", base_data.previous_cycle_time); - read_error_count = 0; +#ifdef POINTING_DEVICE_DEBUG + if (base_data.previous_cycle_time > AZOTEQ_IQS5XX_REPORT_RATE) { + pd_dprintf("IQS5XX - previous cycle time missed, took: %dms\n", base_data.previous_cycle_time); + } +#endif if (base_data.gesture_events_0.single_tap || base_data.gesture_events_0.press_and_hold) { pd_dprintf("IQS5XX - Single tap/hold.\n"); temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON1); @@ -403,20 +405,11 @@ report_mouse_t azoteq_iqs5xx_get_report(report_mouse_t mouse_report) { temp_report.y = CONSTRAIN_HID_XY(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.y.h, base_data.y.l)); } - previous_button_state = temp_report.buttons; - } else { - if (read_error_count > 10) { - read_error_count = 0; - previous_button_state = 0; - } else { - read_error_count++; - } - temp_report.buttons = previous_button_state; - pd_dprintf("IQS5XX - get report failed: %d \n", status); + pd_dprintf("IQS5XX - get report failed, i2c status: %d \n", status); } } else { - pd_dprintf("IQS5XX - Init failed: %d \n", azoteq_iqs5xx_init_status); + pd_dprintf("IQS5XX - Init failed, i2c status: %d \n", azoteq_iqs5xx_init_status); } return temp_report; diff --git a/drivers/sensors/azoteq_iqs5xx.h b/drivers/sensors/azoteq_iqs5xx.h index 4190fe470c7..e1e8b67b312 100644 --- a/drivers/sensors/azoteq_iqs5xx.h +++ b/drivers/sensors/azoteq_iqs5xx.h @@ -173,7 +173,8 @@ typedef struct { # define AZOTEQ_IQS5XX_REPORT_RATE 10 #endif #if !defined(POINTING_DEVICE_TASK_THROTTLE_MS) && !defined(POINTING_DEVICE_MOTION_PIN) -# define POINTING_DEVICE_TASK_THROTTLE_MS AZOTEQ_IQS5XX_REPORT_RATE +// Polling the Azoteq isn't recommended, ensuring we only poll after the report is ready stops any unexpected NACKs +# define POINTING_DEVICE_TASK_THROTTLE_MS AZOTEQ_IQS5XX_REPORT_RATE + 1 #endif const pointing_device_driver_t azoteq_iqs5xx_pointing_device_driver; From 26f898c8a538b808cf506f558a9454f7f50e3ba6 Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 13 Jan 2025 11:39:40 +1100 Subject: [PATCH 174/365] `salane/ncr80alpsskfl`: add additional layouts (#24809) --- keyboards/salane/ncr80alpsskfl/keyboard.json | 315 +++++++++++++++++- .../salane/ncr80alpsskfl/matrix_diagram.md | 25 ++ 2 files changed, 337 insertions(+), 3 deletions(-) create mode 100644 keyboards/salane/ncr80alpsskfl/matrix_diagram.md diff --git a/keyboards/salane/ncr80alpsskfl/keyboard.json b/keyboards/salane/ncr80alpsskfl/keyboard.json index 512593d351e..ce3f10c685b 100644 --- a/keyboards/salane/ncr80alpsskfl/keyboard.json +++ b/keyboards/salane/ncr80alpsskfl/keyboard.json @@ -25,18 +25,24 @@ "caps_lock": "GP1", "scroll_lock": "GP2" }, + "layout_aliases": { + "LAYOUT_all": "LAYOUT_ansi_tsangan_split_bs_rshift" + }, "layouts": { - "LAYOUT_all": { + "LAYOUT_ansi_tsangan": { "layout": [ {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "K01", "matrix": [0, 1], "x": 2, "y": 0}, {"label": "K02", "matrix": [0, 2], "x": 3, "y": 0}, {"label": "K03", "matrix": [0, 3], "x": 4, "y": 0}, {"label": "K04", "matrix": [0, 4], "x": 5, "y": 0}, + {"label": "K05", "matrix": [0, 5], "x": 6.5, "y": 0}, {"label": "K06", "matrix": [0, 6], "x": 7.5, "y": 0}, {"label": "K07", "matrix": [0, 7], "x": 8.5, "y": 0}, {"label": "K08", "matrix": [0, 8], "x": 9.5, "y": 0}, + {"label": "K09", "matrix": [0, 9], "x": 11, "y": 0}, {"label": "K0A", "matrix": [0, 10], "x": 12, "y": 0}, {"label": "K0B", "matrix": [0, 11], "x": 13, "y": 0}, @@ -55,8 +61,8 @@ {"label": "K1A", "matrix": [1, 10], "x": 10, "y": 2}, {"label": "K1B", "matrix": [1, 11], "x": 11, "y": 2}, {"label": "K1C", "matrix": [1, 12], "x": 12, "y": 2}, - {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 2}, - {"label": "K1D", "matrix": [1, 13], "x": 14, "y": 2}, + {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 2, "w": 2}, + {"label": "K1E", "matrix": [1, 14], "x": 15.25, "y": 2}, {"label": "K1F", "matrix": [1, 15], "x": 16.25, "y": 2}, {"label": "K1G", "matrix": [1, 16], "x": 17.25, "y": 2}, @@ -75,6 +81,106 @@ {"label": "K2B", "matrix": [2, 11], "x": 11.5, "y": 3}, {"label": "K2C", "matrix": [2, 12], "x": 12.5, "y": 3}, {"label": "K2D", "matrix": [2, 13], "x": 13.5, "y": 3, "w": 1.5}, + + {"label": "K2E", "matrix": [2, 14], "x": 15.25, "y": 3}, + {"label": "K2F", "matrix": [2, 15], "x": 16.25, "y": 3}, + {"label": "K2G", "matrix": [2, 16], "x": 17.25, "y": 3}, + + {"label": "K30", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.75}, + {"label": "K31", "matrix": [3, 1], "x": 1.75, "y": 4}, + {"label": "K32", "matrix": [3, 2], "x": 2.75, "y": 4}, + {"label": "K33", "matrix": [3, 3], "x": 3.75, "y": 4}, + {"label": "K34", "matrix": [3, 4], "x": 4.75, "y": 4}, + {"label": "K35", "matrix": [3, 5], "x": 5.75, "y": 4}, + {"label": "K36", "matrix": [3, 6], "x": 6.75, "y": 4}, + {"label": "K37", "matrix": [3, 7], "x": 7.75, "y": 4}, + {"label": "K38", "matrix": [3, 8], "x": 8.75, "y": 4}, + {"label": "K39", "matrix": [3, 9], "x": 9.75, "y": 4}, + {"label": "K3A", "matrix": [3, 10], "x": 10.75, "y": 4}, + {"label": "K3B", "matrix": [3, 11], "x": 11.75, "y": 4}, + {"label": "K3D", "matrix": [3, 13], "x": 12.75, "y": 4, "w": 2.25}, + + {"label": "K40", "matrix": [4, 0], "x": 0, "y": 5, "w": 2.25}, + {"label": "K42", "matrix": [4, 2], "x": 2.25, "y": 5}, + {"label": "K43", "matrix": [4, 3], "x": 3.25, "y": 5}, + {"label": "K44", "matrix": [4, 4], "x": 4.25, "y": 5}, + {"label": "K45", "matrix": [4, 5], "x": 5.25, "y": 5}, + {"label": "K46", "matrix": [4, 6], "x": 6.25, "y": 5}, + {"label": "K47", "matrix": [4, 7], "x": 7.25, "y": 5}, + {"label": "K48", "matrix": [4, 8], "x": 8.25, "y": 5}, + {"label": "K49", "matrix": [4, 9], "x": 9.25, "y": 5}, + {"label": "K4A", "matrix": [4, 10], "x": 10.25, "y": 5}, + {"label": "K4B", "matrix": [4, 11], "x": 11.25, "y": 5}, + {"label": "K4C", "matrix": [4, 12], "x": 12.25, "y": 5, "w": 2.75}, + + {"label": "K4F", "matrix": [4, 15], "x": 16.25, "y": 5}, + + {"label": "K50", "matrix": [5, 0], "x": 0, "y": 6, "w": 1.5}, + {"label": "K51", "matrix": [5, 1], "x": 1.5, "y": 6}, + {"label": "K52", "matrix": [5, 2], "x": 2.5, "y": 6, "w": 1.5}, + {"label": "K57", "matrix": [5, 7], "x": 4, "y": 6, "w": 7}, + {"label": "K5B", "matrix": [5, 11], "x": 11, "y": 6, "w": 1.5}, + {"label": "K5C", "matrix": [5, 12], "x": 12.5, "y": 6}, + {"label": "K5D", "matrix": [5, 13], "x": 13.5, "y": 6, "w": 1.5}, + + {"label": "K5E", "matrix": [5, 14], "x": 15.25, "y": 6}, + {"label": "K5F", "matrix": [5, 15], "x": 16.25, "y": 6}, + {"label": "K5G", "matrix": [5, 16], "x": 17.25, "y": 6} + ] + }, + "LAYOUT_ansi_tsangan_split_rshift": { + "layout": [ + {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "K01", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "K02", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "K03", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "K04", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "K05", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "K06", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "K07", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "K08", "matrix": [0, 8], "x": 9.5, "y": 0}, + + {"label": "K09", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "K0A", "matrix": [0, 10], "x": 12, "y": 0}, + {"label": "K0B", "matrix": [0, 11], "x": 13, "y": 0}, + {"label": "K0C", "matrix": [0, 12], "x": 14, "y": 0}, + + {"label": "K10", "matrix": [1, 0], "x": 0, "y": 2}, + {"label": "K11", "matrix": [1, 1], "x": 1, "y": 2}, + {"label": "K12", "matrix": [1, 2], "x": 2, "y": 2}, + {"label": "K13", "matrix": [1, 3], "x": 3, "y": 2}, + {"label": "K14", "matrix": [1, 4], "x": 4, "y": 2}, + {"label": "K15", "matrix": [1, 5], "x": 5, "y": 2}, + {"label": "K16", "matrix": [1, 6], "x": 6, "y": 2}, + {"label": "K17", "matrix": [1, 7], "x": 7, "y": 2}, + {"label": "K18", "matrix": [1, 8], "x": 8, "y": 2}, + {"label": "K19", "matrix": [1, 9], "x": 9, "y": 2}, + {"label": "K1A", "matrix": [1, 10], "x": 10, "y": 2}, + {"label": "K1B", "matrix": [1, 11], "x": 11, "y": 2}, + {"label": "K1C", "matrix": [1, 12], "x": 12, "y": 2}, + {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 2, "w": 2}, + + {"label": "K1E", "matrix": [1, 14], "x": 15.25, "y": 2}, + {"label": "K1F", "matrix": [1, 15], "x": 16.25, "y": 2}, + {"label": "K1G", "matrix": [1, 16], "x": 17.25, "y": 2}, + + {"label": "K20", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.5}, + {"label": "K21", "matrix": [2, 1], "x": 1.5, "y": 3}, + {"label": "K22", "matrix": [2, 2], "x": 2.5, "y": 3}, + {"label": "K23", "matrix": [2, 3], "x": 3.5, "y": 3}, + {"label": "K24", "matrix": [2, 4], "x": 4.5, "y": 3}, + {"label": "K25", "matrix": [2, 5], "x": 5.5, "y": 3}, + {"label": "K26", "matrix": [2, 6], "x": 6.5, "y": 3}, + {"label": "K27", "matrix": [2, 7], "x": 7.5, "y": 3}, + {"label": "K28", "matrix": [2, 8], "x": 8.5, "y": 3}, + {"label": "K29", "matrix": [2, 9], "x": 9.5, "y": 3}, + {"label": "K2A", "matrix": [2, 10], "x": 10.5, "y": 3}, + {"label": "K2B", "matrix": [2, 11], "x": 11.5, "y": 3}, + {"label": "K2C", "matrix": [2, 12], "x": 12.5, "y": 3}, + {"label": "K2D", "matrix": [2, 13], "x": 13.5, "y": 3, "w": 1.5}, + {"label": "K2E", "matrix": [2, 14], "x": 15.25, "y": 3}, {"label": "K2F", "matrix": [2, 15], "x": 16.25, "y": 3}, {"label": "K2G", "matrix": [2, 16], "x": 17.25, "y": 3}, @@ -106,6 +212,7 @@ {"label": "K4B", "matrix": [4, 11], "x": 11.25, "y": 5}, {"label": "K4C", "matrix": [4, 12], "x": 12.25, "y": 5, "w": 1.75}, {"label": "K4D", "matrix": [4, 13], "x": 14, "y": 5}, + {"label": "K4F", "matrix": [4, 15], "x": 16.25, "y": 5}, {"label": "K50", "matrix": [5, 0], "x": 0, "y": 6, "w": 1.5}, @@ -115,6 +222,208 @@ {"label": "K5B", "matrix": [5, 11], "x": 11, "y": 6, "w": 1.5}, {"label": "K5C", "matrix": [5, 12], "x": 12.5, "y": 6}, {"label": "K5D", "matrix": [5, 13], "x": 13.5, "y": 6, "w": 1.5}, + + {"label": "K5E", "matrix": [5, 14], "x": 15.25, "y": 6}, + {"label": "K5F", "matrix": [5, 15], "x": 16.25, "y": 6}, + {"label": "K5G", "matrix": [5, 16], "x": 17.25, "y": 6} + ] + }, + "LAYOUT_ansi_tsangan_split_bs": { + "layout": [ + {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "K01", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "K02", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "K03", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "K04", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "K05", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "K06", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "K07", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "K08", "matrix": [0, 8], "x": 9.5, "y": 0}, + + {"label": "K09", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "K0A", "matrix": [0, 10], "x": 12, "y": 0}, + {"label": "K0B", "matrix": [0, 11], "x": 13, "y": 0}, + {"label": "K0C", "matrix": [0, 12], "x": 14, "y": 0}, + + {"label": "K10", "matrix": [1, 0], "x": 0, "y": 2}, + {"label": "K11", "matrix": [1, 1], "x": 1, "y": 2}, + {"label": "K12", "matrix": [1, 2], "x": 2, "y": 2}, + {"label": "K13", "matrix": [1, 3], "x": 3, "y": 2}, + {"label": "K14", "matrix": [1, 4], "x": 4, "y": 2}, + {"label": "K15", "matrix": [1, 5], "x": 5, "y": 2}, + {"label": "K16", "matrix": [1, 6], "x": 6, "y": 2}, + {"label": "K17", "matrix": [1, 7], "x": 7, "y": 2}, + {"label": "K18", "matrix": [1, 8], "x": 8, "y": 2}, + {"label": "K19", "matrix": [1, 9], "x": 9, "y": 2}, + {"label": "K1A", "matrix": [1, 10], "x": 10, "y": 2}, + {"label": "K1B", "matrix": [1, 11], "x": 11, "y": 2}, + {"label": "K1C", "matrix": [1, 12], "x": 12, "y": 2}, + {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 2}, + {"label": "K1D", "matrix": [1, 13], "x": 14, "y": 2}, + + {"label": "K1E", "matrix": [1, 14], "x": 15.25, "y": 2}, + {"label": "K1F", "matrix": [1, 15], "x": 16.25, "y": 2}, + {"label": "K1G", "matrix": [1, 16], "x": 17.25, "y": 2}, + + {"label": "K20", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.5}, + {"label": "K21", "matrix": [2, 1], "x": 1.5, "y": 3}, + {"label": "K22", "matrix": [2, 2], "x": 2.5, "y": 3}, + {"label": "K23", "matrix": [2, 3], "x": 3.5, "y": 3}, + {"label": "K24", "matrix": [2, 4], "x": 4.5, "y": 3}, + {"label": "K25", "matrix": [2, 5], "x": 5.5, "y": 3}, + {"label": "K26", "matrix": [2, 6], "x": 6.5, "y": 3}, + {"label": "K27", "matrix": [2, 7], "x": 7.5, "y": 3}, + {"label": "K28", "matrix": [2, 8], "x": 8.5, "y": 3}, + {"label": "K29", "matrix": [2, 9], "x": 9.5, "y": 3}, + {"label": "K2A", "matrix": [2, 10], "x": 10.5, "y": 3}, + {"label": "K2B", "matrix": [2, 11], "x": 11.5, "y": 3}, + {"label": "K2C", "matrix": [2, 12], "x": 12.5, "y": 3}, + {"label": "K2D", "matrix": [2, 13], "x": 13.5, "y": 3, "w": 1.5}, + + {"label": "K2E", "matrix": [2, 14], "x": 15.25, "y": 3}, + {"label": "K2F", "matrix": [2, 15], "x": 16.25, "y": 3}, + {"label": "K2G", "matrix": [2, 16], "x": 17.25, "y": 3}, + + {"label": "K30", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.75}, + {"label": "K31", "matrix": [3, 1], "x": 1.75, "y": 4}, + {"label": "K32", "matrix": [3, 2], "x": 2.75, "y": 4}, + {"label": "K33", "matrix": [3, 3], "x": 3.75, "y": 4}, + {"label": "K34", "matrix": [3, 4], "x": 4.75, "y": 4}, + {"label": "K35", "matrix": [3, 5], "x": 5.75, "y": 4}, + {"label": "K36", "matrix": [3, 6], "x": 6.75, "y": 4}, + {"label": "K37", "matrix": [3, 7], "x": 7.75, "y": 4}, + {"label": "K38", "matrix": [3, 8], "x": 8.75, "y": 4}, + {"label": "K39", "matrix": [3, 9], "x": 9.75, "y": 4}, + {"label": "K3A", "matrix": [3, 10], "x": 10.75, "y": 4}, + {"label": "K3B", "matrix": [3, 11], "x": 11.75, "y": 4}, + {"label": "K3D", "matrix": [3, 13], "x": 12.75, "y": 4, "w": 2.25}, + + {"label": "K40", "matrix": [4, 0], "x": 0, "y": 5, "w": 2.25}, + {"label": "K42", "matrix": [4, 2], "x": 2.25, "y": 5}, + {"label": "K43", "matrix": [4, 3], "x": 3.25, "y": 5}, + {"label": "K44", "matrix": [4, 4], "x": 4.25, "y": 5}, + {"label": "K45", "matrix": [4, 5], "x": 5.25, "y": 5}, + {"label": "K46", "matrix": [4, 6], "x": 6.25, "y": 5}, + {"label": "K47", "matrix": [4, 7], "x": 7.25, "y": 5}, + {"label": "K48", "matrix": [4, 8], "x": 8.25, "y": 5}, + {"label": "K49", "matrix": [4, 9], "x": 9.25, "y": 5}, + {"label": "K4A", "matrix": [4, 10], "x": 10.25, "y": 5}, + {"label": "K4B", "matrix": [4, 11], "x": 11.25, "y": 5}, + {"label": "K4C", "matrix": [4, 12], "x": 12.25, "y": 5, "w": 2.75}, + + {"label": "K4F", "matrix": [4, 15], "x": 16.25, "y": 5}, + + {"label": "K50", "matrix": [5, 0], "x": 0, "y": 6, "w": 1.5}, + {"label": "K51", "matrix": [5, 1], "x": 1.5, "y": 6}, + {"label": "K52", "matrix": [5, 2], "x": 2.5, "y": 6, "w": 1.5}, + {"label": "K57", "matrix": [5, 7], "x": 4, "y": 6, "w": 7}, + {"label": "K5B", "matrix": [5, 11], "x": 11, "y": 6, "w": 1.5}, + {"label": "K5C", "matrix": [5, 12], "x": 12.5, "y": 6}, + {"label": "K5D", "matrix": [5, 13], "x": 13.5, "y": 6, "w": 1.5}, + + {"label": "K5E", "matrix": [5, 14], "x": 15.25, "y": 6}, + {"label": "K5F", "matrix": [5, 15], "x": 16.25, "y": 6}, + {"label": "K5G", "matrix": [5, 16], "x": 17.25, "y": 6} + ] + }, + "LAYOUT_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "K01", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "K02", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "K03", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "K04", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "K05", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "K06", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "K07", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "K08", "matrix": [0, 8], "x": 9.5, "y": 0}, + + {"label": "K09", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "K0A", "matrix": [0, 10], "x": 12, "y": 0}, + {"label": "K0B", "matrix": [0, 11], "x": 13, "y": 0}, + {"label": "K0C", "matrix": [0, 12], "x": 14, "y": 0}, + + {"label": "K10", "matrix": [1, 0], "x": 0, "y": 2}, + {"label": "K11", "matrix": [1, 1], "x": 1, "y": 2}, + {"label": "K12", "matrix": [1, 2], "x": 2, "y": 2}, + {"label": "K13", "matrix": [1, 3], "x": 3, "y": 2}, + {"label": "K14", "matrix": [1, 4], "x": 4, "y": 2}, + {"label": "K15", "matrix": [1, 5], "x": 5, "y": 2}, + {"label": "K16", "matrix": [1, 6], "x": 6, "y": 2}, + {"label": "K17", "matrix": [1, 7], "x": 7, "y": 2}, + {"label": "K18", "matrix": [1, 8], "x": 8, "y": 2}, + {"label": "K19", "matrix": [1, 9], "x": 9, "y": 2}, + {"label": "K1A", "matrix": [1, 10], "x": 10, "y": 2}, + {"label": "K1B", "matrix": [1, 11], "x": 11, "y": 2}, + {"label": "K1C", "matrix": [1, 12], "x": 12, "y": 2}, + {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 2}, + {"label": "K1D", "matrix": [1, 13], "x": 14, "y": 2}, + + {"label": "K1E", "matrix": [1, 14], "x": 15.25, "y": 2}, + {"label": "K1F", "matrix": [1, 15], "x": 16.25, "y": 2}, + {"label": "K1G", "matrix": [1, 16], "x": 17.25, "y": 2}, + + {"label": "K20", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.5}, + {"label": "K21", "matrix": [2, 1], "x": 1.5, "y": 3}, + {"label": "K22", "matrix": [2, 2], "x": 2.5, "y": 3}, + {"label": "K23", "matrix": [2, 3], "x": 3.5, "y": 3}, + {"label": "K24", "matrix": [2, 4], "x": 4.5, "y": 3}, + {"label": "K25", "matrix": [2, 5], "x": 5.5, "y": 3}, + {"label": "K26", "matrix": [2, 6], "x": 6.5, "y": 3}, + {"label": "K27", "matrix": [2, 7], "x": 7.5, "y": 3}, + {"label": "K28", "matrix": [2, 8], "x": 8.5, "y": 3}, + {"label": "K29", "matrix": [2, 9], "x": 9.5, "y": 3}, + {"label": "K2A", "matrix": [2, 10], "x": 10.5, "y": 3}, + {"label": "K2B", "matrix": [2, 11], "x": 11.5, "y": 3}, + {"label": "K2C", "matrix": [2, 12], "x": 12.5, "y": 3}, + {"label": "K2D", "matrix": [2, 13], "x": 13.5, "y": 3, "w": 1.5}, + + {"label": "K2E", "matrix": [2, 14], "x": 15.25, "y": 3}, + {"label": "K2F", "matrix": [2, 15], "x": 16.25, "y": 3}, + {"label": "K2G", "matrix": [2, 16], "x": 17.25, "y": 3}, + + {"label": "K30", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.75}, + {"label": "K31", "matrix": [3, 1], "x": 1.75, "y": 4}, + {"label": "K32", "matrix": [3, 2], "x": 2.75, "y": 4}, + {"label": "K33", "matrix": [3, 3], "x": 3.75, "y": 4}, + {"label": "K34", "matrix": [3, 4], "x": 4.75, "y": 4}, + {"label": "K35", "matrix": [3, 5], "x": 5.75, "y": 4}, + {"label": "K36", "matrix": [3, 6], "x": 6.75, "y": 4}, + {"label": "K37", "matrix": [3, 7], "x": 7.75, "y": 4}, + {"label": "K38", "matrix": [3, 8], "x": 8.75, "y": 4}, + {"label": "K39", "matrix": [3, 9], "x": 9.75, "y": 4}, + {"label": "K3A", "matrix": [3, 10], "x": 10.75, "y": 4}, + {"label": "K3B", "matrix": [3, 11], "x": 11.75, "y": 4}, + {"label": "K3D", "matrix": [3, 13], "x": 12.75, "y": 4, "w": 2.25}, + + {"label": "K40", "matrix": [4, 0], "x": 0, "y": 5, "w": 2.25}, + {"label": "K42", "matrix": [4, 2], "x": 2.25, "y": 5}, + {"label": "K43", "matrix": [4, 3], "x": 3.25, "y": 5}, + {"label": "K44", "matrix": [4, 4], "x": 4.25, "y": 5}, + {"label": "K45", "matrix": [4, 5], "x": 5.25, "y": 5}, + {"label": "K46", "matrix": [4, 6], "x": 6.25, "y": 5}, + {"label": "K47", "matrix": [4, 7], "x": 7.25, "y": 5}, + {"label": "K48", "matrix": [4, 8], "x": 8.25, "y": 5}, + {"label": "K49", "matrix": [4, 9], "x": 9.25, "y": 5}, + {"label": "K4A", "matrix": [4, 10], "x": 10.25, "y": 5}, + {"label": "K4B", "matrix": [4, 11], "x": 11.25, "y": 5}, + {"label": "K4C", "matrix": [4, 12], "x": 12.25, "y": 5, "w": 1.75}, + {"label": "K4D", "matrix": [4, 13], "x": 14, "y": 5}, + + {"label": "K4F", "matrix": [4, 15], "x": 16.25, "y": 5}, + + {"label": "K50", "matrix": [5, 0], "x": 0, "y": 6, "w": 1.5}, + {"label": "K51", "matrix": [5, 1], "x": 1.5, "y": 6}, + {"label": "K52", "matrix": [5, 2], "x": 2.5, "y": 6, "w": 1.5}, + {"label": "K57", "matrix": [5, 7], "x": 4, "y": 6, "w": 7}, + {"label": "K5B", "matrix": [5, 11], "x": 11, "y": 6, "w": 1.5}, + {"label": "K5C", "matrix": [5, 12], "x": 12.5, "y": 6}, + {"label": "K5D", "matrix": [5, 13], "x": 13.5, "y": 6, "w": 1.5}, + {"label": "K5E", "matrix": [5, 14], "x": 15.25, "y": 6}, {"label": "K5F", "matrix": [5, 15], "x": 16.25, "y": 6}, {"label": "K5G", "matrix": [5, 16], "x": 17.25, "y": 6} diff --git a/keyboards/salane/ncr80alpsskfl/matrix_diagram.md b/keyboards/salane/ncr80alpsskfl/matrix_diagram.md new file mode 100644 index 00000000000..5e0f9d7eb5b --- /dev/null +++ b/keyboards/salane/ncr80alpsskfl/matrix_diagram.md @@ -0,0 +1,25 @@ +# Matrix Diagram for Salane NCR80 ALPS SKFL + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ +│00 │ │01 │02 │03 │04 │ │05 │06 │07 │08 │ │09 │0A │0B │0C │ +└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ + +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │0D │1D │ │1E │1F │1G │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ │2E │2F │2G │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ +│40 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │4D │ │4F │ +├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ +│50 │51 │52 │57 │5B │5C │5D │ │5E │5F │5G │ +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + ┌──────────┐ + 2.75u RShift│4C │ + └──────────┘ +``` From 7f1c236c75b0a92b952882c6f211f78157978f63 Mon Sep 17 00:00:00 2001 From: HorrorTroll Date: Tue, 14 Jan 2025 12:20:36 +0700 Subject: [PATCH 175/365] Bugfix and update for AT32F415 (#24807) --- drivers/led/apa102.c | 2 +- .../handwired/onekey/at_start_f415/board.h | 4 +-- .../handwired/onekey/at_start_f415/config.h | 4 +-- .../handwired/onekey/at_start_f415/halconf.h | 4 +-- .../onekey/at_start_f415/keyboard.json | 4 +++ .../handwired/onekey/at_start_f415/mcuconf.h | 4 +-- .../boards/GENERIC_AT32_F415XX/board/board.c | 4 +-- .../boards/GENERIC_AT32_F415XX/board/board.h | 28 ++++++++++++------- .../GENERIC_AT32_F415XX/configs/config.h | 4 +-- .../GENERIC_AT32_F415XX/configs/mcuconf.h | 16 ++++++----- platforms/chibios/chibios_config.h | 4 +-- 11 files changed, 46 insertions(+), 32 deletions(-) diff --git a/drivers/led/apa102.c b/drivers/led/apa102.c index 6e87d48b968..6a131533743 100644 --- a/drivers/led/apa102.c +++ b/drivers/led/apa102.c @@ -24,7 +24,7 @@ # elif defined(PROTOCOL_CHIBIOS) # include "hal.h" # include "chibios_config.h" -# if defined(STM32F0XX) || defined(STM32F1XX) || defined(STM32F3XX) || defined(STM32F4XX) || defined(STM32L0XX) || defined(GD32VF103) || defined(MCU_RP) +# if defined(STM32F0XX) || defined(STM32F1XX) || defined(STM32F3XX) || defined(STM32F4XX) || defined(STM32L0XX) || defined(AT32F415) || defined(GD32VF103) || defined(MCU_RP) # define APA102_NOPS (100 / (1000000000L / (CPU_CLOCK / 4))) // This calculates how many loops of 4 nops to run to delay 100 ns # else # error APA102_NOPS configuration required diff --git a/keyboards/handwired/onekey/at_start_f415/board.h b/keyboards/handwired/onekey/at_start_f415/board.h index f4adc2d4183..a31d8f8e37d 100644 --- a/keyboards/handwired/onekey/at_start_f415/board.h +++ b/keyboards/handwired/onekey/at_start_f415/board.h @@ -1,5 +1,5 @@ -// Copyright 2023-2024 HorrorTroll -// Copyright 2023-2024 Zhaqian +// Copyright 2023-2025 HorrorTroll +// Copyright 2023-2025 Zhaqian // SPDX-License-Identifier: GPL-2.0-or-later #pragma once diff --git a/keyboards/handwired/onekey/at_start_f415/config.h b/keyboards/handwired/onekey/at_start_f415/config.h index 0e47e813c57..41aece900cf 100644 --- a/keyboards/handwired/onekey/at_start_f415/config.h +++ b/keyboards/handwired/onekey/at_start_f415/config.h @@ -1,5 +1,5 @@ -// Copyright 2023-2024 HorrorTroll -// Copyright 2023-2024 Zhaqian +// Copyright 2023-2025 HorrorTroll +// Copyright 2023-2025 Zhaqian // SPDX-License-Identifier: GPL-2.0-or-later #pragma once diff --git a/keyboards/handwired/onekey/at_start_f415/halconf.h b/keyboards/handwired/onekey/at_start_f415/halconf.h index 1423633d15f..e3c075936dc 100644 --- a/keyboards/handwired/onekey/at_start_f415/halconf.h +++ b/keyboards/handwired/onekey/at_start_f415/halconf.h @@ -1,5 +1,5 @@ -// Copyright 2023-2024 HorrorTroll -// Copyright 2023-2024 Zhaqian +// Copyright 2023-2025 HorrorTroll +// Copyright 2023-2025 Zhaqian // SPDX-License-Identifier: GPL-2.0-or-later #pragma once diff --git a/keyboards/handwired/onekey/at_start_f415/keyboard.json b/keyboards/handwired/onekey/at_start_f415/keyboard.json index f598923a6a5..6e5683a4742 100644 --- a/keyboards/handwired/onekey/at_start_f415/keyboard.json +++ b/keyboards/handwired/onekey/at_start_f415/keyboard.json @@ -17,4 +17,8 @@ "ws2812": { "pin": "B0" } + "apa102": { + "data_pin": "B0", + "clock_pin": "B1" + } } diff --git a/keyboards/handwired/onekey/at_start_f415/mcuconf.h b/keyboards/handwired/onekey/at_start_f415/mcuconf.h index 9bc11d507cc..246f6762d32 100644 --- a/keyboards/handwired/onekey/at_start_f415/mcuconf.h +++ b/keyboards/handwired/onekey/at_start_f415/mcuconf.h @@ -1,5 +1,5 @@ -// Copyright 2023-2024 HorrorTroll -// Copyright 2023-2024 Zhaqian +// Copyright 2023-2025 HorrorTroll +// Copyright 2023-2025 Zhaqian // SPDX-License-Identifier: GPL-2.0-or-later #pragma once diff --git a/platforms/chibios/boards/GENERIC_AT32_F415XX/board/board.c b/platforms/chibios/boards/GENERIC_AT32_F415XX/board/board.c index 28cf7c18e01..26b1974e4a2 100644 --- a/platforms/chibios/boards/GENERIC_AT32_F415XX/board/board.c +++ b/platforms/chibios/boards/GENERIC_AT32_F415XX/board/board.c @@ -1,7 +1,7 @@ /* ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - ChibiOS - Copyright (C) 2023..2024 HorrorTroll - ChibiOS - Copyright (C) 2023..2024 Zhaqian + ChibiOS - Copyright (C) 2023..2025 HorrorTroll + ChibiOS - Copyright (C) 2023..2025 Zhaqian Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/GENERIC_AT32_F415XX/board/board.h b/platforms/chibios/boards/GENERIC_AT32_F415XX/board/board.h index c3ade198bae..b4909b0a29e 100644 --- a/platforms/chibios/boards/GENERIC_AT32_F415XX/board/board.h +++ b/platforms/chibios/boards/GENERIC_AT32_F415XX/board/board.h @@ -1,7 +1,7 @@ /* ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio - ChibiOS - Copyright (C) 2023..2024 HorrorTroll - ChibiOS - Copyright (C) 2023..2024 Zhaqian + ChibiOS - Copyright (C) 2023..2025 HorrorTroll + ChibiOS - Copyright (C) 2023..2025 Zhaqian Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -49,6 +49,14 @@ */ #define AT32F415KB +/* + * GPIO settings, allow unused GPIO for smaller chip packages. + */ +#if defined(AT32F415KB) || defined(AT32F415KC) +#define AT32_HAS_GPIOC TRUE +#define AT32_HAS_GPIOF TRUE +#endif + /* * IO pins assignments. */ @@ -142,21 +150,21 @@ * 6 - Open Drain output 2MHz. * 7 - Open Drain output 50MHz. * 8 - Digital input with Pull-Up or Pull-Down resistor depending on ODT. - * 9 - Alternate Push Pull output 10MHz. - * A - Alternate Push Pull output 2MHz. - * B - Alternate Push Pull output 50MHz. + * 9 - Multiplexing Push Pull output 10MHz. + * A - Multiplexing Push Pull output 2MHz. + * B - Multiplexing Push Pull output 50MHz. * C - Reserved. - * D - Alternate Open Drain output 10MHz. - * E - Alternate Open Drain output 2MHz. - * F - Alternate Open Drain output 50MHz. + * D - Multiplexing Open Drain output 10MHz. + * E - Multiplexing Open Drain output 2MHz. + * F - Multiplexing Open Drain output 50MHz. * Please refer to the AT32 Reference Manual for details. */ /* * Port A setup. */ -#define VAL_GPIOACFGLR 0x88888B88 /* PA7...PA0 */ -#define VAL_GPIOACFGHR 0x888888B8 /* PA15...PA8 */ +#define VAL_GPIOACFGLR 0x88888888 /* PA7...PA0 */ +#define VAL_GPIOACFGHR 0x88888888 /* PA15...PA8 */ #define VAL_GPIOAODT 0xFFFFFFFF /* diff --git a/platforms/chibios/boards/GENERIC_AT32_F415XX/configs/config.h b/platforms/chibios/boards/GENERIC_AT32_F415XX/configs/config.h index da60447a0af..01d9a47aac7 100644 --- a/platforms/chibios/boards/GENERIC_AT32_F415XX/configs/config.h +++ b/platforms/chibios/boards/GENERIC_AT32_F415XX/configs/config.h @@ -1,5 +1,5 @@ -// Copyright 2023-2024 HorrorTroll -// Copyright 2023-2024 Zhaqian +// Copyright 2023-2025 HorrorTroll +// Copyright 2023-2025 Zhaqian // SPDX-License-Identifier: GPL-2.0-or-later #pragma once diff --git a/platforms/chibios/boards/GENERIC_AT32_F415XX/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_AT32_F415XX/configs/mcuconf.h index d148379fe1d..e218e4791aa 100644 --- a/platforms/chibios/boards/GENERIC_AT32_F415XX/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_AT32_F415XX/configs/mcuconf.h @@ -1,7 +1,7 @@ /* ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio - ChibiOS - Copyright (C) 2023..2024 HorrorTroll - ChibiOS - Copyright (C) 2023..2024 Zhaqian + ChibiOS - Copyright (C) 2023..2025 HorrorTroll + ChibiOS - Copyright (C) 2023..2025 Zhaqian Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -63,7 +63,7 @@ #define AT32_USBDIV AT32_USBDIV_DIV3 #define AT32_CLKOUT_SEL AT32_CLKOUT_SEL_NOCLOCK #define AT32_CLKOUTDIV AT32_CLKOUTDIV_DIV1 -#define AT32_ERTCSEL AT32_ERTCSEL_HEXTDIV +#define AT32_ERTCSEL AT32_ERTCSEL_NOCLOCK #define AT32_PVM_ENABLE FALSE #define AT32_PVMSEL AT32_PVMSEL_LEV1 @@ -136,10 +136,10 @@ #define AT32_I2C_USE_I2C1 FALSE #define AT32_I2C_USE_I2C2 FALSE #define AT32_I2C_BUSY_TIMEOUT 50 -#define AT32_I2C_I2C1_IRQ_PRIORITY 5 -#define AT32_I2C_I2C2_IRQ_PRIORITY 5 #define AT32_I2C_I2C1_DMA_PRIORITY 3 #define AT32_I2C_I2C2_DMA_PRIORITY 3 +#define AT32_I2C_I2C1_IRQ_PRIORITY 5 +#define AT32_I2C_I2C2_IRQ_PRIORITY 5 #define AT32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") /* @@ -151,8 +151,6 @@ #define AT32_ICU_USE_TMR4 FALSE #define AT32_ICU_USE_TMR5 FALSE #define AT32_ICU_USE_TMR9 FALSE -#define AT32_ICU_USE_TMR10 FALSE -#define AT32_ICU_USE_TMR11 FALSE /* * PWM driver system settings. @@ -216,9 +214,13 @@ #define AT32_UART_USE_USART1 FALSE #define AT32_UART_USE_USART2 FALSE #define AT32_UART_USE_USART3 FALSE +#define AT32_UART_USE_UART4 FALSE +#define AT32_UART_USE_UART5 FALSE #define AT32_UART_USART1_DMA_PRIORITY 0 #define AT32_UART_USART2_DMA_PRIORITY 0 #define AT32_UART_USART3_DMA_PRIORITY 0 +#define AT32_UART_UART4_DMA_PRIORITY 0 +#define AT32_UART_UART5_DMA_PRIORITY 0 #define AT32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") /* diff --git a/platforms/chibios/chibios_config.h b/platforms/chibios/chibios_config.h index 95136baf303..9ef8e9b4fef 100644 --- a/platforms/chibios/chibios_config.h +++ b/platforms/chibios/chibios_config.h @@ -149,8 +149,8 @@ # if defined(AT32F415) # define USE_GPIOV1 # define USE_I2CV1 -# define PAL_MODE_ALTERNATE_OPENDRAIN PAL_MODE_AT32_ALTERNATE_OPENDRAIN -# define PAL_MODE_ALTERNATE_PUSHPULL PAL_MODE_AT32_ALTERNATE_PUSHPULL +# define PAL_MODE_ALTERNATE_OPENDRAIN PAL_MODE_AT32_MUX_OPENDRAIN +# define PAL_MODE_ALTERNATE_PUSHPULL PAL_MODE_AT32_MUX_PUSHPULL # define AUDIO_PWM_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL # endif #endif From 7b83bb9d267fc4f2909cb87965d873487a9a4e1d Mon Sep 17 00:00:00 2001 From: Haim Gelfenbeyn Date: Wed, 15 Jan 2025 14:36:20 -0500 Subject: [PATCH 176/365] Allow running Docker container on MacOS (without in-container USB support) (#24412) --- docs/getting_started_docker.md | 7 +++++++ util/docker_cmd.sh | 20 +++++++++++--------- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/docs/getting_started_docker.md b/docs/getting_started_docker.md index 2d90d8566ab..42322397b4a 100644 --- a/docs/getting_started_docker.md +++ b/docs/getting_started_docker.md @@ -50,6 +50,13 @@ By default docker or podman are automatically detected and docker is preferred o RUNTIME="podman" util/docker_build.sh keyboard:keymap:target ``` +If flashing is not required, it's possible to run the container as unprivileged (on Linux), and without docker-machine (on Windows/macOS): + +``` +SKIP_FLASHING_SUPPORT=1 util/docker_build.sh keyboard:keymap:target +``` + + ## FAQ ### Why can't I flash on Windows/macOS diff --git a/util/docker_cmd.sh b/util/docker_cmd.sh index 18725db0689..cb0c4f3281d 100755 --- a/util/docker_cmd.sh +++ b/util/docker_cmd.sh @@ -34,15 +34,17 @@ if [ -z "$RUNTIME" ]; then fi fi - -# IF we are using docker on non Linux and docker-machine isn't working print an error -# ELSE set usb_args -if [ ! "$(uname)" = "Linux" ] && [ "$RUNTIME" = "docker" ] && ! docker-machine active >/dev/null 2>&1; then - errcho "Error: target requires docker-machine to work on your platform" - errcho "See http://gw.tnode.com/docker/docker-machine-with-usb-support-on-windows-macos" - exit 3 -else - usb_args="--privileged -v /dev:/dev" +# If SKIP_FLASHING_SUPPORT is defined, do not check for docker-machine and do not run a privileged container +if [ -z "$SKIP_FLASHING_SUPPORT" ]; then + # IF we are using docker on non Linux and docker-machine isn't working print an error + # ELSE set usb_args + if [ ! "$(uname)" = "Linux" ] && [ "$RUNTIME" = "docker" ] && ! docker-machine active >/dev/null 2>&1; then + errcho "Error: target requires docker-machine to work on your platform" + errcho "See http://gw.tnode.com/docker/docker-machine-with-usb-support-on-windows-macos" + exit 3 + else + usb_args="--privileged -v /dev:/dev" + fi fi qmk_firmware_dir=$(pwd -W 2>/dev/null) || qmk_firmware_dir=$PWD # Use Windows path if on Windows From 6b368f4ab23eceff46be7c1c064e0e25966f101f Mon Sep 17 00:00:00 2001 From: Patrick Fan <124469718+lighteningAB@users.noreply.github.com> Date: Sat, 18 Jan 2025 04:02:19 +0000 Subject: [PATCH 177/365] [Keyboard] Add ic45v2 (#24818) * adding in ic45 handwired * fix wrong title * Apply suggestions from code review Thank you @waffle87 Co-authored-by: jack * Update keyboards/handwired/ic45_v2/keyboard.json adding whitespace Co-authored-by: Drashna Jaelre --------- Co-authored-by: jack Co-authored-by: Drashna Jaelre --- keyboards/handwired/ic45_v2/keyboard.json | 79 +++++++++++++++++++ .../ic45_v2/keymaps/default/keymap.c | 39 +++++++++ keyboards/handwired/ic45_v2/readme.md | 26 ++++++ 3 files changed, 144 insertions(+) create mode 100644 keyboards/handwired/ic45_v2/keyboard.json create mode 100644 keyboards/handwired/ic45_v2/keymaps/default/keymap.c create mode 100644 keyboards/handwired/ic45_v2/readme.md diff --git a/keyboards/handwired/ic45_v2/keyboard.json b/keyboards/handwired/ic45_v2/keyboard.json new file mode 100644 index 00000000000..7d8692c9af7 --- /dev/null +++ b/keyboards/handwired/ic45_v2/keyboard.json @@ -0,0 +1,79 @@ +{ + "manufacturer": "PatrickFan", + "keyboard_name": "ic45_v2", + "maintainer": "PatrickFan", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "B0", "B1", "D5", "D4", "D6", "D7", "B4"], + "rows": ["B6", "C6", "C7", "B5"] + }, + "processor": "atmega32u4", + "url": "https://github.com/lighteningAB/45keyboard_v1", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 10.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [3, 12], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 1.75, "y": 1}, + {"matrix": [1, 2], "x": 2.75, "y": 1}, + {"matrix": [1, 3], "x": 3.75, "y": 1}, + {"matrix": [1, 4], "x": 4.75, "y": 1}, + {"matrix": [1, 5], "x": 5.75, "y": 1}, + {"matrix": [1, 6], "x": 6.75, "y": 1}, + {"matrix": [1, 7], "x": 7.75, "y": 1}, + {"matrix": [1, 8], "x": 8.75, "y": 1}, + {"matrix": [1, 9], "x": 9.75, "y": 1}, + {"matrix": [1, 10], "x": 10.75, "y": 1}, + {"matrix": [1, 11], "x": 11.75, "y": 1}, + {"matrix": [1, 12], "x": 12.75, "y": 1, "w": 2.25}, + + {"matrix": [2, 1], "x": 0, "y": 2, "w": 2.25}, + {"matrix": [2, 2], "x": 2.25, "y": 2}, + {"matrix": [2, 3], "x": 3.25, "y": 2}, + {"matrix": [2, 4], "x": 4.25, "y": 2}, + {"matrix": [2, 5], "x": 5.25, "y": 2}, + {"matrix": [2, 6], "x": 6.25, "y": 2}, + {"matrix": [2, 7], "x": 7.25, "y": 2}, + {"matrix": [2, 8], "x": 8.25, "y": 2}, + {"matrix": [2, 9], "x": 9.25, "y": 2}, + {"matrix": [2, 10], "x": 10.25, "y": 2}, + {"matrix": [2, 11], "x": 11.25, "y": 2}, + {"matrix": [2, 12], "x": 12.25, "y": 2, "w": 2.75}, + + {"matrix": [3, 2], "x": 2, "y": 3, "w": 1.25}, + {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.25}, + {"matrix": [3, 5], "x": 4.5, "y": 3, "w": 2.25}, + {"matrix": [3, 8], "x": 6.75, "y": 3, "w": 2.75}, + {"matrix": [3, 9], "x": 9.5, "y": 3, "w": 1.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3, "w": 1.25}, + {"matrix": [3, 11], "x": 12, "y": 3, "w": 1.25} + + ] + } + } +} diff --git a/keyboards/handwired/ic45_v2/keymaps/default/keymap.c b/keyboards/handwired/ic45_v2/keymaps/default/keymap.c new file mode 100644 index 00000000000..51357bce1f0 --- /dev/null +++ b/keyboards/handwired/ic45_v2/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* +Copyright 2025 Patrick Fan + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_RALT, KC_RGUI, MO(2), KC_BSLS + ), + [1] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_BSPC + ), + [2] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_DEL + ) +}; diff --git a/keyboards/handwired/ic45_v2/readme.md b/keyboards/handwired/ic45_v2/readme.md new file mode 100644 index 00000000000..b4af92ae9a5 --- /dev/null +++ b/keyboards/handwired/ic45_v2/readme.md @@ -0,0 +1,26 @@ +# ic45_v2 + +![ic45_v2](https://i.imgur.com/a/FNxxXGd) + +*A 46-key keyboard ANSI keyboard with split spacebar. Files available here [here](https://github.com/lighteningAB/45keyboard_v1)* + +* Keyboard Maintainer: [PatrickFan](https://github.com/PatrickFan) +* Hardware Supported: Integrated ATmega32U4 +* Hardware Availability: [GitHub](https://github.com/lighteningAB/45keyboard_v1) + +Make example for this keyboard (after setting up your build environment): + + make handwired/ic45_v2:default + +Flashing example for this keyboard: + + make handwired/ic45_v2:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From d73c64e591864f8f8440086ac0e9acc434826527 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 18 Jan 2025 17:19:18 +1100 Subject: [PATCH 178/365] `kikoslab/kl90`: fix keymap (#24826) --- keyboards/kikoslab/kl90/keymaps/default/keymap.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/keyboards/kikoslab/kl90/keymaps/default/keymap.c b/keyboards/kikoslab/kl90/keymaps/default/keymap.c index 4dbffe8f772..5cf7c755030 100644 --- a/keyboards/kikoslab/kl90/keymaps/default/keymap.c +++ b/keyboards/kikoslab/kl90/keymaps/default/keymap.c @@ -23,9 +23,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_DEL , KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_PSCR, KC_MPLY, KC_F13 , KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_INS , KC_F14 , KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , - KC_F15 , KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_PIPE, KC_ENT , KC_PGUP, - KC_F16 , KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_BSLS, KC_UP , KC_PGDN, - KC_F17 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + KC_F15 , KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT , KC_PGUP, + KC_F16 , KC_LSFT, KC_NUBS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_PGDN, + KC_F17 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [1] = LAYOUT_all( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [2] = LAYOUT_all( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -41,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; bool encoder_update_user(uint8_t index, bool clockwise) { From 3c40e140138986fd58449cd31e2c5f790e2e4466 Mon Sep 17 00:00:00 2001 From: Cipulot <40441626+Cipulot@users.noreply.github.com> Date: Sat, 18 Jan 2025 18:52:33 +0100 Subject: [PATCH 179/365] Add Lily (#24813) Co-authored-by: Duncan Sutherland --- keyboards/ai03/lily/keyboard.json | 189 +++++++++++++++++++ keyboards/ai03/lily/keymaps/60_hhkb/keymap.c | 45 +++++ keyboards/ai03/lily/keymaps/default/keymap.c | 45 +++++ keyboards/ai03/lily/readme.md | 26 +++ 4 files changed, 305 insertions(+) create mode 100644 keyboards/ai03/lily/keyboard.json create mode 100644 keyboards/ai03/lily/keymaps/60_hhkb/keymap.c create mode 100644 keyboards/ai03/lily/keymaps/default/keymap.c create mode 100644 keyboards/ai03/lily/readme.md diff --git a/keyboards/ai03/lily/keyboard.json b/keyboards/ai03/lily/keyboard.json new file mode 100644 index 00000000000..ce482a674e5 --- /dev/null +++ b/keyboards/ai03/lily/keyboard.json @@ -0,0 +1,189 @@ +{ + "manufacturer": "ai03 Design Studio", + "keyboard_name": "Lily", + "maintainer": "ai03", + "bootloader": "atmel-dfu", + "build": { + "debounce_type": "asym_eager_defer_pk", + "lto": true + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "indicators": { + "caps_lock": "B0", + "on_state": 0 + }, + "matrix_pins": { + "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4"], + "rows": ["B2", "B7", "D5", "B1", "D3"] + }, + "processor": "atmega32u4", + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "led_count": 4 + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x0026", + "vid": "0xA103" + }, + "ws2812": { + "pin": "D2" + }, + "community_layouts": ["60_hhkb"], + "layouts": { + "LAYOUT_60_hhkb": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4} + ] + }, + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 4, "y": 4, "w": 3}, + {"matrix": [4, 7], "x": 7, "y": 4}, + {"matrix": [4, 9], "x": 8, "y": 4, "w": 3}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4} + ] + } + } +} diff --git a/keyboards/ai03/lily/keymaps/60_hhkb/keymap.c b/keyboards/ai03/lily/keymaps/60_hhkb/keymap.c new file mode 100644 index 00000000000..be9e2ee1a1b --- /dev/null +++ b/keyboards/ai03/lily/keymaps/60_hhkb/keymap.c @@ -0,0 +1,45 @@ +/* Copyright 2025 Cipulot & ai03 Design Studio + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_60_hhkb( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT + ), + + [1] = LAYOUT_60_hhkb( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, + _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, + _______, _______, _______, _______, MO(2) + ), + + [2] = LAYOUT_60_hhkb( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______ + ) + // clang-format on +}; diff --git a/keyboards/ai03/lily/keymaps/default/keymap.c b/keyboards/ai03/lily/keymaps/default/keymap.c new file mode 100644 index 00000000000..ae1949810d1 --- /dev/null +++ b/keyboards/ai03/lily/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* Copyright 2025 Cipulot & ai03 Design Studio + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT + ), + + [1] = LAYOUT_all( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, + _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, + _______, _______, _______, _______, _______, _______, MO(2) + ), + + [2] = LAYOUT_all( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ) + // clang-format on +}; diff --git a/keyboards/ai03/lily/readme.md b/keyboards/ai03/lily/readme.md new file mode 100644 index 00000000000..c8733629a29 --- /dev/null +++ b/keyboards/ai03/lily/readme.md @@ -0,0 +1,26 @@ +# Lily + +![Lily](https://i.imgur.com/nIhwT2V.png) + +PCB for Gok's Lily keyboard + +* Keyboard Maintainer: [ai03](https://github.com/ai03-2725) +* Hardware Supported: Lily PCB +* Hardware Availability: Through Lily group buy + +Make example for this keyboard (after setting up your build environment): + + make ai03/lily:default + +Flashing example for this keyboard: + + make ai03/liily:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Physical reset**: Double tap the button on the bottom on the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From cedd49c59b5a822b6879485cdd412c7d803ae14a Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 19 Jan 2025 17:07:11 +0000 Subject: [PATCH 180/365] Consolidate timer_elapsed implementations (#24830) --- platforms/avr/timer.c | 28 ---------------------------- platforms/chibios/timer.c | 8 -------- platforms/test/timer.c | 8 -------- platforms/timer.c | 8 ++++++++ quantum/debounce/tests/rules.mk | 1 + quantum/os_detection/tests/rules.mk | 1 + quantum/sequencer/tests/rules.mk | 1 + 7 files changed, 11 insertions(+), 44 deletions(-) diff --git a/platforms/avr/timer.c b/platforms/avr/timer.c index 26ba0e29fa2..b2230ad84b9 100644 --- a/platforms/avr/timer.c +++ b/platforms/avr/timer.c @@ -125,34 +125,6 @@ inline uint32_t timer_read32(void) { return t; } -/** \brief timer elapsed - * - * FIXME: needs doc - */ -inline uint16_t timer_elapsed(uint16_t last) { - uint32_t t; - - ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { - t = timer_count; - } - - return TIMER_DIFF_16((t & 0xFFFF), last); -} - -/** \brief timer elapsed32 - * - * FIXME: needs doc - */ -inline uint32_t timer_elapsed32(uint32_t last) { - uint32_t t; - - ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { - t = timer_count; - } - - return TIMER_DIFF_32(t, last); -} - // excecuted once per 1ms.(excess for just timer count?) #ifndef __AVR_ATmega32A__ # define TIMER_INTERRUPT_VECTOR TIMER0_COMPA_vect diff --git a/platforms/chibios/timer.c b/platforms/chibios/timer.c index a07cf5714f5..9f7eade83f0 100644 --- a/platforms/chibios/timer.c +++ b/platforms/chibios/timer.c @@ -118,11 +118,3 @@ uint32_t timer_read32(void) { return (uint32_t)TIME_I2MS(ticks) + ms_offset_copy; } - -uint16_t timer_elapsed(uint16_t last) { - return TIMER_DIFF_16(timer_read(), last); -} - -uint32_t timer_elapsed32(uint32_t last) { - return TIMER_DIFF_32(timer_read32(), last); -} diff --git a/platforms/test/timer.c b/platforms/test/timer.c index eb929d7dac6..f5ee07fd57f 100644 --- a/platforms/test/timer.c +++ b/platforms/test/timer.c @@ -60,14 +60,6 @@ uint32_t timer_read32(void) { return current_time; } -uint16_t timer_elapsed(uint16_t last) { - return TIMER_DIFF_16(timer_read(), last); -} - -uint32_t timer_elapsed32(uint32_t last) { - return TIMER_DIFF_32(timer_read32(), last); -} - void set_time(uint32_t t) { current_time = t; access_counter = 0; diff --git a/platforms/timer.c b/platforms/timer.c index 26038dcda32..ba2cf94d2bf 100644 --- a/platforms/timer.c +++ b/platforms/timer.c @@ -6,3 +6,11 @@ // Generate out-of-line copies for inline functions defined in timer.h. extern inline fast_timer_t timer_read_fast(void); extern inline fast_timer_t timer_elapsed_fast(fast_timer_t last); + +uint16_t timer_elapsed(uint16_t last) { + return TIMER_DIFF_16(timer_read(), last); +} + +uint32_t timer_elapsed32(uint32_t last) { + return TIMER_DIFF_32(timer_read32(), last); +} diff --git a/quantum/debounce/tests/rules.mk b/quantum/debounce/tests/rules.mk index bbc362d4c7e..d38b1cd3421 100644 --- a/quantum/debounce/tests/rules.mk +++ b/quantum/debounce/tests/rules.mk @@ -16,6 +16,7 @@ DEBOUNCE_COMMON_DEFS := -DMATRIX_ROWS=4 -DMATRIX_COLS=10 -DDEBOUNCE=5 DEBOUNCE_COMMON_SRC := $(QUANTUM_PATH)/debounce/tests/debounce_test_common.cpp \ + $(PLATFORM_PATH)/timer.c \ $(PLATFORM_PATH)/$(PLATFORM_KEY)/timer.c debounce_none_DEFS := $(DEBOUNCE_COMMON_DEFS) diff --git a/quantum/os_detection/tests/rules.mk b/quantum/os_detection/tests/rules.mk index 1b69b71ba9f..2f31f5e3916 100644 --- a/quantum/os_detection/tests/rules.mk +++ b/quantum/os_detection/tests/rules.mk @@ -4,4 +4,5 @@ os_detection_DEFS += -DOS_DETECTION_DEBOUNCE=50 os_detection_SRC := \ $(QUANTUM_PATH)/os_detection/tests/os_detection.cpp \ $(QUANTUM_PATH)/os_detection.c \ + $(PLATFORM_PATH)/timer.c \ $(PLATFORM_PATH)/$(PLATFORM_KEY)/timer.c diff --git a/quantum/sequencer/tests/rules.mk b/quantum/sequencer/tests/rules.mk index 611459e060e..74b680ae31f 100644 --- a/quantum/sequencer/tests/rules.mk +++ b/quantum/sequencer/tests/rules.mk @@ -8,4 +8,5 @@ sequencer_SRC := \ $(QUANTUM_PATH)/sequencer/tests/midi_mock.c \ $(QUANTUM_PATH)/sequencer/tests/sequencer_tests.cpp \ $(QUANTUM_PATH)/sequencer/sequencer.c \ + $(PLATFORM_PATH)/timer.c \ $(PLATFORM_PATH)/$(PLATFORM_KEY)/timer.c From 58aea4b4795d81fcf3fdfd236b08903d1ffeeaca Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 20 Jan 2025 10:24:28 +1100 Subject: [PATCH 181/365] `i2c_master`: remove deprecated functions (#24832) --- platforms/avr/drivers/i2c_master.h | 7 ------- platforms/chibios/drivers/i2c_master.h | 7 ------- 2 files changed, 14 deletions(-) diff --git a/platforms/avr/drivers/i2c_master.h b/platforms/avr/drivers/i2c_master.h index b797997619e..258bb2b9bf2 100644 --- a/platforms/avr/drivers/i2c_master.h +++ b/platforms/avr/drivers/i2c_master.h @@ -21,13 +21,6 @@ #include -// ### DEPRECATED - DO NOT USE ### -#define i2c_writeReg(devaddr, regaddr, data, length, timeout) i2c_write_register(devaddr, regaddr, data, length, timeout) -#define i2c_writeReg16(devaddr, regaddr, data, length, timeout) i2c_write_register16(devaddr, regaddr, data, length, timeout) -#define i2c_readReg(devaddr, regaddr, data, length, timeout) i2c_read_register(devaddr, regaddr, data, length, timeout) -#define i2c_readReg16(devaddr, regaddr, data, length, timeout) i2c_read_register16(devaddr, regaddr, data, length, timeout) -// ############################### - #define I2C_READ 0x01 #define I2C_WRITE 0x00 diff --git a/platforms/chibios/drivers/i2c_master.h b/platforms/chibios/drivers/i2c_master.h index 132ffd14c07..2215f89ad2b 100644 --- a/platforms/chibios/drivers/i2c_master.h +++ b/platforms/chibios/drivers/i2c_master.h @@ -26,13 +26,6 @@ #include -// ### DEPRECATED - DO NOT USE ### -#define i2c_writeReg(devaddr, regaddr, data, length, timeout) i2c_write_register(devaddr, regaddr, data, length, timeout) -#define i2c_writeReg16(devaddr, regaddr, data, length, timeout) i2c_write_register16(devaddr, regaddr, data, length, timeout) -#define i2c_readReg(devaddr, regaddr, data, length, timeout) i2c_read_register(devaddr, regaddr, data, length, timeout) -#define i2c_readReg16(devaddr, regaddr, data, length, timeout) i2c_read_register16(devaddr, regaddr, data, length, timeout) -// ############################### - typedef int16_t i2c_status_t; #define I2C_STATUS_SUCCESS (0) From d30cd87556e26f9b716d21a9bd799b271b96ebb4 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 20 Jan 2025 03:45:47 +0000 Subject: [PATCH 182/365] Update via2json layout macro searching (#24640) --- lib/python/qmk/cli/via2json.py | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/lib/python/qmk/cli/via2json.py b/lib/python/qmk/cli/via2json.py index 537e1026406..0997e9ca9f8 100755 --- a/lib/python/qmk/cli/via2json.py +++ b/lib/python/qmk/cli/via2json.py @@ -9,19 +9,15 @@ import qmk.keyboard import qmk.path from qmk.info import info_json from qmk.json_encoders import KeymapJSONEncoder -from qmk.commands import parse_configurator_json, dump_lines -from qmk.keymap import generate_json, list_keymaps, locate_keymap, parse_keymap_c +from qmk.commands import dump_lines +from qmk.keymap import generate_json -def _find_via_layout_macro(keyboard): - keymap_layout = None - if 'via' in list_keymaps(keyboard): - keymap_path = locate_keymap(keyboard, 'via') - if keymap_path.suffix == '.json': - keymap_layout = parse_configurator_json(keymap_path)['layout'] - else: - keymap_layout = parse_keymap_c(keymap_path)['layers'][0]['layout'] - return keymap_layout +def _find_via_layout_macro(keyboard_data): + """Assume layout macro when only 1 is available + """ + layouts = list(keyboard_data['layouts'].keys()) + return layouts[0] if len(layouts) == 1 else None def _convert_macros(via_macros): @@ -130,20 +126,16 @@ def via2json(cli): This command uses the `qmk.keymap` module to generate a keymap.json from a VIA backup json. The generated keymap is written to stdout, or to a file if -o is provided. """ - # Find appropriate layout macro - keymap_layout = cli.args.layout if cli.args.layout else _find_via_layout_macro(cli.args.keyboard) - if not keymap_layout: - cli.log.error(f"Couldn't find LAYOUT macro for keyboard {cli.args.keyboard}. Please specify it with the '-l' argument.") - return False - # Load the VIA backup json with cli.args.filename.open('r') as fd: via_backup = json.load(fd) - # Generate keyboard metadata keyboard_data = info_json(cli.args.keyboard) - if not keyboard_data: - cli.log.error(f'LAYOUT macro {keymap_layout} is not a valid one for keyboard {cli.args.keyboard}!') + + # Find appropriate layout macro + keymap_layout = cli.args.layout if cli.args.layout else _find_via_layout_macro(keyboard_data) + if not keymap_layout: + cli.log.error(f"Couldn't find LAYOUT macro for keyboard {cli.args.keyboard}. Please specify it with the '-l' argument.") return False # Get keycode array From 7a0dbe36f384e9c38120ab02f70d80f07193f53c Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 20 Jan 2025 04:55:01 +0000 Subject: [PATCH 183/365] Formally deprecate DEFAULT_FOLDER (#24836) --- data/mappings/info_rules.hjson | 1 + 1 file changed, 1 insertion(+) diff --git a/data/mappings/info_rules.hjson b/data/mappings/info_rules.hjson index 64972af63b0..00685b5b5f5 100644 --- a/data/mappings/info_rules.hjson +++ b/data/mappings/info_rules.hjson @@ -55,5 +55,6 @@ // Items we want flagged in lint "CTPC": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"}, "CONVERT_TO_PROTON_C": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"}, + "DEFAULT_FOLDER": {"info_key": "_deprecated.default_folder", "deprecated": true}, "VIAL_ENABLE": {"info_key": "_invalid.vial", "invalid": true} } From 5c33ff8be4a61a3246df187486021b858fa7b55d Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 20 Jan 2025 15:24:14 +0000 Subject: [PATCH 184/365] Remove DEFAULT_FOLDER where keyboard aliases already exists (#24838) --- keyboards/aeboards/constellation/rules.mk | 1 - keyboards/bpiphany/pegasushoof/rules.mk | 1 - keyboards/dp3000/rules.mk | 1 - keyboards/eek/rules.mk | 1 - keyboards/exclusive/e85/rules.mk | 1 - keyboards/keebio/dsp40/rules.mk | 1 - keyboards/keycapsss/plaid_pad/rules.mk | 1 - keyboards/kprepublic/jj40/rules.mk | 1 - keyboards/kprepublic/jj50/rules.mk | 1 - keyboards/lfkeyboards/lfk78/rules.mk | 1 - keyboards/lfkeyboards/smk65/rules.mk | 1 - keyboards/mechlovin/adelais/rgb_led/rules.mk | 1 - keyboards/mechlovin/adelais/standard_led/rules.mk | 1 - keyboards/mechlovin/delphine/rules.mk | 1 - keyboards/mechlovin/hannah60rgb/rules.mk | 1 - keyboards/mechlovin/hannah910/rules.mk | 1 - keyboards/mechlovin/hex4b/rules.mk | 1 - keyboards/melgeek/z70ultra/rules.mk | 1 - keyboards/montsinger/rebound/rules.mk | 1 - keyboards/polilla/rules.mk | 1 - keyboards/primekb/prime_l/rules.mk | 1 - keyboards/projectkb/alice/rules.mk | 1 - keyboards/rgbkb/pan/rev1/rules.mk | 2 -- keyboards/tkw/stoutgat/v2/rules.mk | 1 - keyboards/whale/sk/rules.mk | 1 - keyboards/ymdk/melody96/rules.mk | 1 - 26 files changed, 27 deletions(-) delete mode 100755 keyboards/aeboards/constellation/rules.mk delete mode 100644 keyboards/bpiphany/pegasushoof/rules.mk delete mode 100644 keyboards/dp3000/rules.mk delete mode 100644 keyboards/eek/rules.mk delete mode 100644 keyboards/exclusive/e85/rules.mk delete mode 100644 keyboards/keebio/dsp40/rules.mk delete mode 100644 keyboards/keycapsss/plaid_pad/rules.mk delete mode 100644 keyboards/kprepublic/jj40/rules.mk delete mode 100644 keyboards/kprepublic/jj50/rules.mk delete mode 100644 keyboards/lfkeyboards/lfk78/rules.mk delete mode 100644 keyboards/lfkeyboards/smk65/rules.mk delete mode 100644 keyboards/mechlovin/adelais/rgb_led/rules.mk delete mode 100644 keyboards/mechlovin/adelais/standard_led/rules.mk delete mode 100644 keyboards/mechlovin/delphine/rules.mk delete mode 100644 keyboards/mechlovin/hannah60rgb/rules.mk delete mode 100644 keyboards/mechlovin/hannah910/rules.mk delete mode 100644 keyboards/mechlovin/hex4b/rules.mk delete mode 100644 keyboards/melgeek/z70ultra/rules.mk delete mode 100644 keyboards/montsinger/rebound/rules.mk delete mode 100644 keyboards/polilla/rules.mk delete mode 100644 keyboards/primekb/prime_l/rules.mk delete mode 100644 keyboards/projectkb/alice/rules.mk delete mode 100644 keyboards/rgbkb/pan/rev1/rules.mk delete mode 100644 keyboards/tkw/stoutgat/v2/rules.mk delete mode 100644 keyboards/whale/sk/rules.mk delete mode 100644 keyboards/ymdk/melody96/rules.mk diff --git a/keyboards/aeboards/constellation/rules.mk b/keyboards/aeboards/constellation/rules.mk deleted file mode 100755 index bd2af5d22bf..00000000000 --- a/keyboards/aeboards/constellation/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = aeboards/constellation/rev1 diff --git a/keyboards/bpiphany/pegasushoof/rules.mk b/keyboards/bpiphany/pegasushoof/rules.mk deleted file mode 100644 index 20adecaa08a..00000000000 --- a/keyboards/bpiphany/pegasushoof/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER=bpiphany/pegasushoof/2013 diff --git a/keyboards/dp3000/rules.mk b/keyboards/dp3000/rules.mk deleted file mode 100644 index 0f44aefd445..00000000000 --- a/keyboards/dp3000/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = dp3000/rev1 diff --git a/keyboards/eek/rules.mk b/keyboards/eek/rules.mk deleted file mode 100644 index 65b8265b530..00000000000 --- a/keyboards/eek/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = eek/silk_down diff --git a/keyboards/exclusive/e85/rules.mk b/keyboards/exclusive/e85/rules.mk deleted file mode 100644 index 8eef46d0ab4..00000000000 --- a/keyboards/exclusive/e85/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = exclusive/e85/hotswap diff --git a/keyboards/keebio/dsp40/rules.mk b/keyboards/keebio/dsp40/rules.mk deleted file mode 100644 index 3e8e9be18c3..00000000000 --- a/keyboards/keebio/dsp40/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = keebio/dsp40/rev1 diff --git a/keyboards/keycapsss/plaid_pad/rules.mk b/keyboards/keycapsss/plaid_pad/rules.mk deleted file mode 100644 index 0ab7cc3141a..00000000000 --- a/keyboards/keycapsss/plaid_pad/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = keycapsss/plaid_pad/rev1 diff --git a/keyboards/kprepublic/jj40/rules.mk b/keyboards/kprepublic/jj40/rules.mk deleted file mode 100644 index fa09523958c..00000000000 --- a/keyboards/kprepublic/jj40/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = kprepublic/jj40/rev1 diff --git a/keyboards/kprepublic/jj50/rules.mk b/keyboards/kprepublic/jj50/rules.mk deleted file mode 100644 index 8f77c68db25..00000000000 --- a/keyboards/kprepublic/jj50/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = kprepublic/jj50/rev1 diff --git a/keyboards/lfkeyboards/lfk78/rules.mk b/keyboards/lfkeyboards/lfk78/rules.mk deleted file mode 100644 index 5ebd387c834..00000000000 --- a/keyboards/lfkeyboards/lfk78/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = lfkeyboards/lfk78/revj diff --git a/keyboards/lfkeyboards/smk65/rules.mk b/keyboards/lfkeyboards/smk65/rules.mk deleted file mode 100644 index b2d74976632..00000000000 --- a/keyboards/lfkeyboards/smk65/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = lfkeyboards/smk65/revb diff --git a/keyboards/mechlovin/adelais/rgb_led/rules.mk b/keyboards/mechlovin/adelais/rgb_led/rules.mk deleted file mode 100644 index 18047f12c7e..00000000000 --- a/keyboards/mechlovin/adelais/rgb_led/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/adelais/rgb_led/rev1 diff --git a/keyboards/mechlovin/adelais/standard_led/rules.mk b/keyboards/mechlovin/adelais/standard_led/rules.mk deleted file mode 100644 index a1d2ba038de..00000000000 --- a/keyboards/mechlovin/adelais/standard_led/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/adelais/standard_led/arm/rev2 diff --git a/keyboards/mechlovin/delphine/rules.mk b/keyboards/mechlovin/delphine/rules.mk deleted file mode 100644 index 819bce1cd3d..00000000000 --- a/keyboards/mechlovin/delphine/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/delphine/mono_led diff --git a/keyboards/mechlovin/hannah60rgb/rules.mk b/keyboards/mechlovin/hannah60rgb/rules.mk deleted file mode 100644 index e876a56afb5..00000000000 --- a/keyboards/mechlovin/hannah60rgb/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/hannah60rgb/rev1 diff --git a/keyboards/mechlovin/hannah910/rules.mk b/keyboards/mechlovin/hannah910/rules.mk deleted file mode 100644 index a3568671972..00000000000 --- a/keyboards/mechlovin/hannah910/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/hannah910/rev1 diff --git a/keyboards/mechlovin/hex4b/rules.mk b/keyboards/mechlovin/hex4b/rules.mk deleted file mode 100644 index e3d9ab46b44..00000000000 --- a/keyboards/mechlovin/hex4b/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/hex4b/rev1 diff --git a/keyboards/melgeek/z70ultra/rules.mk b/keyboards/melgeek/z70ultra/rules.mk deleted file mode 100644 index 8cc384b91f7..00000000000 --- a/keyboards/melgeek/z70ultra/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = melgeek/z70ultra/rev1 diff --git a/keyboards/montsinger/rebound/rules.mk b/keyboards/montsinger/rebound/rules.mk deleted file mode 100644 index d277d184e18..00000000000 --- a/keyboards/montsinger/rebound/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = montsinger/rebound/rev1 diff --git a/keyboards/polilla/rules.mk b/keyboards/polilla/rules.mk deleted file mode 100644 index 0d72c40bb6a..00000000000 --- a/keyboards/polilla/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = polilla/rev1 \ No newline at end of file diff --git a/keyboards/primekb/prime_l/rules.mk b/keyboards/primekb/prime_l/rules.mk deleted file mode 100644 index 235bfea9259..00000000000 --- a/keyboards/primekb/prime_l/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = primekb/prime_l/v1 diff --git a/keyboards/projectkb/alice/rules.mk b/keyboards/projectkb/alice/rules.mk deleted file mode 100644 index d6725769928..00000000000 --- a/keyboards/projectkb/alice/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = projectkb/alice/rev1 diff --git a/keyboards/rgbkb/pan/rev1/rules.mk b/keyboards/rgbkb/pan/rev1/rules.mk deleted file mode 100644 index 4d3c0f6679a..00000000000 --- a/keyboards/rgbkb/pan/rev1/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# The default configuration is a atmega32a -DEFAULT_FOLDER = rgbkb/pan/rev1/32a diff --git a/keyboards/tkw/stoutgat/v2/rules.mk b/keyboards/tkw/stoutgat/v2/rules.mk deleted file mode 100644 index 1a660af26c9..00000000000 --- a/keyboards/tkw/stoutgat/v2/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = tkw/stoutgat/v2/f411 diff --git a/keyboards/whale/sk/rules.mk b/keyboards/whale/sk/rules.mk deleted file mode 100644 index 1a4ddedfa73..00000000000 --- a/keyboards/whale/sk/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = whale/sk/v3 diff --git a/keyboards/ymdk/melody96/rules.mk b/keyboards/ymdk/melody96/rules.mk deleted file mode 100644 index 806543977bf..00000000000 --- a/keyboards/ymdk/melody96/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = ymdk/melody96/soldered From 47575d4af16700e2dea8353c446dd4874e38d333 Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 21 Jan 2025 02:30:19 +1100 Subject: [PATCH 185/365] LED drivers: remove deprecated defines (#24837) --- drivers/led/aw20216s.h | 260 ------------------ drivers/led/issi/is31fl3731-mono.h | 27 -- drivers/led/issi/is31fl3731.h | 27 -- drivers/led/issi/is31fl3733-mono.h | 32 --- drivers/led/issi/is31fl3733.h | 262 ------------------ drivers/led/issi/is31fl3736-mono.h | 140 ---------- drivers/led/issi/is31fl3736.h | 42 --- drivers/led/issi/is31fl3737-mono.h | 30 --- drivers/led/issi/is31fl3737.h | 203 -------------- drivers/led/issi/is31fl3741-mono.h | 401 --------------------------- drivers/led/issi/is31fl3741.h | 416 ----------------------------- drivers/led/issi/is31fl3743a.h | 211 --------------- drivers/led/snled27351-mono.h | 237 ---------------- drivers/led/snled27351.h | 249 ----------------- keyboards/zsa/voyager/voyager.c | 2 +- 15 files changed, 1 insertion(+), 2538 deletions(-) diff --git a/drivers/led/aw20216s.h b/drivers/led/aw20216s.h index b2c097125f9..79b980fcdb0 100644 --- a/drivers/led/aw20216s.h +++ b/drivers/led/aw20216s.h @@ -22,36 +22,6 @@ #include "gpio.h" #include "util.h" -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef AW_SCALING_MAX -# define AW20216S_SCALING_MAX AW_SCALING_MAX -#endif -#ifdef AW_GLOBAL_CURRENT_MAX -# define AW20216S_GLOBAL_CURRENT_MAX AW_GLOBAL_CURRENT_MAX -#endif -#ifdef AW_SPI_MODE -# define AW20216S_SPI_MODE AW_SPI_MODE -#endif -#ifdef AW_SPI_DIVISOR -# define AW20216S_SPI_DIVISOR AW_SPI_DIVISOR -#endif -#ifdef DRIVER_1_CS -# define AW20216S_CS_PIN_1 DRIVER_1_CS -#endif -#ifdef DRIVER_2_CS -# define AW20216S_CS_PIN_2 DRIVER_2_CS -#endif -#ifdef DRIVER_1_EN -# define AW20216S_EN_PIN DRIVER_1_EN -#endif -#ifdef AW20216S_EN_PIN_1 -# define AW20216S_EN_PIN AW20216S_EN_PIN_1 -#endif - -#define aw_led aw20216s_led_t -#define g_aw_leds g_aw20216s_leds -// ======== - #define AW20216S_ID (0b1010 << 4) #define AW20216S_WRITE 0 #define AW20216S_READ 1 @@ -328,233 +298,3 @@ void aw20216s_flush(void); #define SW12_CS16 0xD5 #define SW12_CS17 0xD6 #define SW12_CS18 0xD7 - -// DEPRECATED - DO NOT USE - -#define CS1_SW1 SW1_CS1 -#define CS2_SW1 SW1_CS2 -#define CS3_SW1 SW1_CS3 -#define CS4_SW1 SW1_CS4 -#define CS5_SW1 SW1_CS5 -#define CS6_SW1 SW1_CS6 -#define CS7_SW1 SW1_CS7 -#define CS8_SW1 SW1_CS8 -#define CS9_SW1 SW1_CS9 -#define CS10_SW1 SW1_CS10 -#define CS11_SW1 SW1_CS11 -#define CS12_SW1 SW1_CS12 -#define CS13_SW1 SW1_CS13 -#define CS14_SW1 SW1_CS14 -#define CS15_SW1 SW1_CS15 -#define CS16_SW1 SW1_CS16 -#define CS17_SW1 SW1_CS17 -#define CS18_SW1 SW1_CS18 - -#define CS1_SW2 SW2_CS1 -#define CS2_SW2 SW2_CS2 -#define CS3_SW2 SW2_CS3 -#define CS4_SW2 SW2_CS4 -#define CS5_SW2 SW2_CS5 -#define CS6_SW2 SW2_CS6 -#define CS7_SW2 SW2_CS7 -#define CS8_SW2 SW2_CS8 -#define CS9_SW2 SW2_CS9 -#define CS10_SW2 SW2_CS10 -#define CS11_SW2 SW2_CS11 -#define CS12_SW2 SW2_CS12 -#define CS13_SW2 SW2_CS13 -#define CS14_SW2 SW2_CS14 -#define CS15_SW2 SW2_CS15 -#define CS16_SW2 SW2_CS16 -#define CS17_SW2 SW2_CS17 -#define CS18_SW2 SW2_CS18 - -#define CS1_SW3 SW3_CS1 -#define CS2_SW3 SW3_CS2 -#define CS3_SW3 SW3_CS3 -#define CS4_SW3 SW3_CS4 -#define CS5_SW3 SW3_CS5 -#define CS6_SW3 SW3_CS6 -#define CS7_SW3 SW3_CS7 -#define CS8_SW3 SW3_CS8 -#define CS9_SW3 SW3_CS9 -#define CS10_SW3 SW3_CS10 -#define CS11_SW3 SW3_CS11 -#define CS12_SW3 SW3_CS12 -#define CS13_SW3 SW3_CS13 -#define CS14_SW3 SW3_CS14 -#define CS15_SW3 SW3_CS15 -#define CS16_SW3 SW3_CS16 -#define CS17_SW3 SW3_CS17 -#define CS18_SW3 SW3_CS18 - -#define CS1_SW4 SW4_CS1 -#define CS2_SW4 SW4_CS2 -#define CS3_SW4 SW4_CS3 -#define CS4_SW4 SW4_CS4 -#define CS5_SW4 SW4_CS5 -#define CS6_SW4 SW4_CS6 -#define CS7_SW4 SW4_CS7 -#define CS8_SW4 SW4_CS8 -#define CS9_SW4 SW4_CS9 -#define CS10_SW4 SW4_CS10 -#define CS11_SW4 SW4_CS11 -#define CS12_SW4 SW4_CS12 -#define CS13_SW4 SW4_CS13 -#define CS14_SW4 SW4_CS14 -#define CS15_SW4 SW4_CS15 -#define CS16_SW4 SW4_CS16 -#define CS17_SW4 SW4_CS17 -#define CS18_SW4 SW4_CS18 - -#define CS1_SW5 SW5_CS1 -#define CS2_SW5 SW5_CS2 -#define CS3_SW5 SW5_CS3 -#define CS4_SW5 SW5_CS4 -#define CS5_SW5 SW5_CS5 -#define CS6_SW5 SW5_CS6 -#define CS7_SW5 SW5_CS7 -#define CS8_SW5 SW5_CS8 -#define CS9_SW5 SW5_CS9 -#define CS10_SW5 SW5_CS10 -#define CS11_SW5 SW5_CS11 -#define CS12_SW5 SW5_CS12 -#define CS13_SW5 SW5_CS13 -#define CS14_SW5 SW5_CS14 -#define CS15_SW5 SW5_CS15 -#define CS16_SW5 SW5_CS16 -#define CS17_SW5 SW5_CS17 -#define CS18_SW5 SW5_CS18 - -#define CS1_SW6 SW6_CS1 -#define CS2_SW6 SW6_CS2 -#define CS3_SW6 SW6_CS3 -#define CS4_SW6 SW6_CS4 -#define CS5_SW6 SW6_CS5 -#define CS6_SW6 SW6_CS6 -#define CS7_SW6 SW6_CS7 -#define CS8_SW6 SW6_CS8 -#define CS9_SW6 SW6_CS9 -#define CS10_SW6 SW6_CS10 -#define CS11_SW6 SW6_CS11 -#define CS12_SW6 SW6_CS12 -#define CS13_SW6 SW6_CS13 -#define CS14_SW6 SW6_CS14 -#define CS15_SW6 SW6_CS15 -#define CS16_SW6 SW6_CS16 -#define CS17_SW6 SW6_CS17 -#define CS18_SW6 SW6_CS18 - -#define CS1_SW7 SW7_CS1 -#define CS2_SW7 SW7_CS2 -#define CS3_SW7 SW7_CS3 -#define CS4_SW7 SW7_CS4 -#define CS5_SW7 SW7_CS5 -#define CS6_SW7 SW7_CS6 -#define CS7_SW7 SW7_CS7 -#define CS8_SW7 SW7_CS8 -#define CS9_SW7 SW7_CS9 -#define CS10_SW7 SW7_CS10 -#define CS11_SW7 SW7_CS11 -#define CS12_SW7 SW7_CS12 -#define CS13_SW7 SW7_CS13 -#define CS14_SW7 SW7_CS14 -#define CS15_SW7 SW7_CS15 -#define CS16_SW7 SW7_CS16 -#define CS17_SW7 SW7_CS17 -#define CS18_SW7 SW7_CS18 - -#define CS1_SW8 SW8_CS1 -#define CS2_SW8 SW8_CS2 -#define CS3_SW8 SW8_CS3 -#define CS4_SW8 SW8_CS4 -#define CS5_SW8 SW8_CS5 -#define CS6_SW8 SW8_CS6 -#define CS7_SW8 SW8_CS7 -#define CS8_SW8 SW8_CS8 -#define CS9_SW8 SW8_CS9 -#define CS10_SW8 SW8_CS10 -#define CS11_SW8 SW8_CS11 -#define CS12_SW8 SW8_CS12 -#define CS13_SW8 SW8_CS13 -#define CS14_SW8 SW8_CS14 -#define CS15_SW8 SW8_CS15 -#define CS16_SW8 SW8_CS16 -#define CS17_SW8 SW8_CS17 -#define CS18_SW8 SW8_CS18 - -#define CS1_SW9 SW9_CS1 -#define CS2_SW9 SW9_CS2 -#define CS3_SW9 SW9_CS3 -#define CS4_SW9 SW9_CS4 -#define CS5_SW9 SW9_CS5 -#define CS6_SW9 SW9_CS6 -#define CS7_SW9 SW9_CS7 -#define CS8_SW9 SW9_CS8 -#define CS9_SW9 SW9_CS9 -#define CS10_SW9 SW9_CS10 -#define CS11_SW9 SW9_CS11 -#define CS12_SW9 SW9_CS12 -#define CS13_SW9 SW9_CS13 -#define CS14_SW9 SW9_CS14 -#define CS15_SW9 SW9_CS15 -#define CS16_SW9 SW9_CS16 -#define CS17_SW9 SW9_CS17 -#define CS18_SW9 SW9_CS18 - -#define CS1_SW10 SW10_CS1 -#define CS2_SW10 SW10_CS2 -#define CS3_SW10 SW10_CS3 -#define CS4_SW10 SW10_CS4 -#define CS5_SW10 SW10_CS5 -#define CS6_SW10 SW10_CS6 -#define CS7_SW10 SW10_CS7 -#define CS8_SW10 SW10_CS8 -#define CS9_SW10 SW10_CS9 -#define CS10_SW10 SW10_CS10 -#define CS11_SW10 SW10_CS11 -#define CS12_SW10 SW10_CS12 -#define CS13_SW10 SW10_CS13 -#define CS14_SW10 SW10_CS14 -#define CS15_SW10 SW10_CS15 -#define CS16_SW10 SW10_CS16 -#define CS17_SW10 SW10_CS17 -#define CS18_SW10 SW10_CS18 - -#define CS1_SW11 SW11_CS1 -#define CS2_SW11 SW11_CS2 -#define CS3_SW11 SW11_CS3 -#define CS4_SW11 SW11_CS4 -#define CS5_SW11 SW11_CS5 -#define CS6_SW11 SW11_CS6 -#define CS7_SW11 SW11_CS7 -#define CS8_SW11 SW11_CS8 -#define CS9_SW11 SW11_CS9 -#define CS10_SW11 SW11_CS10 -#define CS11_SW11 SW11_CS11 -#define CS12_SW11 SW11_CS12 -#define CS13_SW11 SW11_CS13 -#define CS14_SW11 SW11_CS14 -#define CS15_SW11 SW11_CS15 -#define CS16_SW11 SW11_CS16 -#define CS17_SW11 SW11_CS17 -#define CS18_SW11 SW11_CS18 - -#define CS1_SW12 SW12_CS1 -#define CS2_SW12 SW12_CS2 -#define CS3_SW12 SW12_CS3 -#define CS4_SW12 SW12_CS4 -#define CS5_SW12 SW12_CS5 -#define CS6_SW12 SW12_CS6 -#define CS7_SW12 SW12_CS7 -#define CS8_SW12 SW12_CS8 -#define CS9_SW12 SW12_CS9 -#define CS10_SW12 SW12_CS10 -#define CS11_SW12 SW12_CS11 -#define CS12_SW12 SW12_CS12 -#define CS13_SW12 SW12_CS13 -#define CS14_SW12 SW12_CS14 -#define CS15_SW12 SW12_CS15 -#define CS16_SW12 SW12_CS16 -#define CS17_SW12 SW12_CS17 -#define CS18_SW12 SW12_CS18 diff --git a/drivers/led/issi/is31fl3731-mono.h b/drivers/led/issi/is31fl3731-mono.h index e6e107d309b..cc59b45cb32 100644 --- a/drivers/led/issi/is31fl3731-mono.h +++ b/drivers/led/issi/is31fl3731-mono.h @@ -23,33 +23,6 @@ #include "progmem.h" #include "util.h" -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef LED_DRIVER_ADDR_1 -# define IS31FL3731_I2C_ADDRESS_1 LED_DRIVER_ADDR_1 -#endif -#ifdef LED_DRIVER_ADDR_2 -# define IS31FL3731_I2C_ADDRESS_2 LED_DRIVER_ADDR_2 -#endif -#ifdef LED_DRIVER_ADDR_3 -# define IS31FL3731_I2C_ADDRESS_3 LED_DRIVER_ADDR_3 -#endif -#ifdef LED_DRIVER_ADDR_4 -# define IS31FL3731_I2C_ADDRESS_4 LED_DRIVER_ADDR_4 -#endif -#ifdef ISSI_TIMEOUT -# define IS31FL3731_I2C_TIMEOUT ISSI_TIMEOUT -#endif -#ifdef ISSI_PERSISTENCE -# define IS31FL3731_I2C_PERSISTENCE ISSI_PERSISTENCE -#endif -#ifdef ISSI_3731_DEGHOST -# define IS31FL3731_DEGHOST ISSI_3731_DEGHOST -#endif - -#define is31_led is31fl3731_led_t -#define g_is31_leds g_is31fl3731_leds -// ======== - #define IS31FL3731_REG_COMMAND 0xFD #define IS31FL3731_COMMAND_FRAME_1 0x00 #define IS31FL3731_COMMAND_FRAME_2 0x01 diff --git a/drivers/led/issi/is31fl3731.h b/drivers/led/issi/is31fl3731.h index dc229c876dc..947b7dc8e9a 100644 --- a/drivers/led/issi/is31fl3731.h +++ b/drivers/led/issi/is31fl3731.h @@ -22,33 +22,6 @@ #include "progmem.h" #include "util.h" -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef DRIVER_ADDR_1 -# define IS31FL3731_I2C_ADDRESS_1 DRIVER_ADDR_1 -#endif -#ifdef DRIVER_ADDR_2 -# define IS31FL3731_I2C_ADDRESS_2 DRIVER_ADDR_2 -#endif -#ifdef DRIVER_ADDR_3 -# define IS31FL3731_I2C_ADDRESS_3 DRIVER_ADDR_3 -#endif -#ifdef DRIVER_ADDR_4 -# define IS31FL3731_I2C_ADDRESS_4 DRIVER_ADDR_4 -#endif -#ifdef ISSI_TIMEOUT -# define IS31FL3731_I2C_TIMEOUT ISSI_TIMEOUT -#endif -#ifdef ISSI_PERSISTENCE -# define IS31FL3731_I2C_PERSISTENCE ISSI_PERSISTENCE -#endif -#ifdef ISSI_3731_DEGHOST -# define IS31FL3731_DEGHOST ISSI_3731_DEGHOST -#endif - -#define is31_led is31fl3731_led_t -#define g_is31_leds g_is31fl3731_leds -// ======== - #define IS31FL3731_REG_COMMAND 0xFD #define IS31FL3731_COMMAND_FRAME_1 0x00 #define IS31FL3731_COMMAND_FRAME_2 0x01 diff --git a/drivers/led/issi/is31fl3733-mono.h b/drivers/led/issi/is31fl3733-mono.h index 3786b2ed712..40d340a70d5 100644 --- a/drivers/led/issi/is31fl3733-mono.h +++ b/drivers/led/issi/is31fl3733-mono.h @@ -25,38 +25,6 @@ #include "progmem.h" #include "util.h" -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef ISSI_TIMEOUT -# define IS31FL3733_I2C_TIMEOUT ISSI_TIMEOUT -#endif -#ifdef ISSI_PERSISTENCE -# define IS31FL3733_I2C_PERSISTENCE ISSI_PERSISTENCE -#endif -#ifdef ISSI_PWM_FREQUENCY -# define IS31FL3733_PWM_FREQUENCY ISSI_PWM_FREQUENCY -#endif -#ifdef ISSI_SWPULLUP -# define IS31FL3733_SW_PULLUP ISSI_SWPULLUP -#endif -#ifdef ISSI_CSPULLUP -# define IS31FL3733_CS_PULLDOWN ISSI_CSPULLUP -#endif -#ifdef ISSI_GLOBALCURRENT -# define IS31FL3733_GLOBAL_CURRENT ISSI_GLOBALCURRENT -#endif - -#define is31_led is31fl3733_led_t -#define g_is31_leds g_is31fl3733_leds - -#define PUR_0R IS31FL3733_PUR_0_OHM -#define PUR_05KR IS31FL3733_PUR_1K_OHM -#define PUR_3KR IS31FL3733_PUR_2K_OHM -#define PUR_4KR IS31FL3733_PUR_4K_OHM -#define PUR_8KR IS31FL3733_PUR_8K_OHM -#define PUR_16KR IS31FL3733_PUR_16K_OHM -#define PUR_32KR IS31FL3733_PUR_32K_OHM -// ======== - #define IS31FL3733_REG_INTERRUPT_MASK 0xF0 #define IS31FL3733_REG_INTERRUPT_STATUS 0xF1 diff --git a/drivers/led/issi/is31fl3733.h b/drivers/led/issi/is31fl3733.h index fb60c76c2de..8757d5ab074 100644 --- a/drivers/led/issi/is31fl3733.h +++ b/drivers/led/issi/is31fl3733.h @@ -24,62 +24,6 @@ #include "progmem.h" #include "util.h" -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef DRIVER_ADDR_1 -# define IS31FL3733_I2C_ADDRESS_1 DRIVER_ADDR_1 -#endif -#ifdef DRIVER_ADDR_2 -# define IS31FL3733_I2C_ADDRESS_2 DRIVER_ADDR_2 -#endif -#ifdef DRIVER_ADDR_3 -# define IS31FL3733_I2C_ADDRESS_3 DRIVER_ADDR_3 -#endif -#ifdef DRIVER_ADDR_4 -# define IS31FL3733_I2C_ADDRESS_4 DRIVER_ADDR_4 -#endif -#ifdef DRIVER_SYNC_1 -# define IS31FL3733_SYNC_1 DRIVER_SYNC_1 -#endif -#ifdef DRIVER_SYNC_2 -# define IS31FL3733_SYNC_2 DRIVER_SYNC_2 -#endif -#ifdef DRIVER_SYNC_3 -# define IS31FL3733_SYNC_3 DRIVER_SYNC_3 -#endif -#ifdef DRIVER_SYNC_4 -# define IS31FL3733_SYNC_4 DRIVER_SYNC_4 -#endif -#ifdef ISSI_TIMEOUT -# define IS31FL3733_I2C_TIMEOUT ISSI_TIMEOUT -#endif -#ifdef ISSI_PERSISTENCE -# define IS31FL3733_I2C_PERSISTENCE ISSI_PERSISTENCE -#endif -#ifdef ISSI_PWM_FREQUENCY -# define IS31FL3733_PWM_FREQUENCY ISSI_PWM_FREQUENCY -#endif -#ifdef ISSI_SWPULLUP -# define IS31FL3733_SW_PULLUP ISSI_SWPULLUP -#endif -#ifdef ISSI_CSPULLUP -# define IS31FL3733_CS_PULLDOWN ISSI_CSPULLUP -#endif -#ifdef ISSI_GLOBALCURRENT -# define IS31FL3733_GLOBAL_CURRENT ISSI_GLOBALCURRENT -#endif - -#define is31_led is31fl3733_led_t -#define g_is31_leds g_is31fl3733_leds - -#define PUR_0R IS31FL3733_PUR_0_OHM -#define PUR_05KR IS31FL3733_PUR_1K_OHM -#define PUR_3KR IS31FL3733_PUR_2K_OHM -#define PUR_4KR IS31FL3733_PUR_4K_OHM -#define PUR_8KR IS31FL3733_PUR_8K_OHM -#define PUR_16KR IS31FL3733_PUR_16K_OHM -#define PUR_32KR IS31FL3733_PUR_32K_OHM -// ======== - #define IS31FL3733_REG_INTERRUPT_MASK 0xF0 #define IS31FL3733_REG_INTERRUPT_STATUS 0xF1 @@ -389,209 +333,3 @@ void is31fl3733_flush(void); #define SW12_CS14 0xBD #define SW12_CS15 0xBE #define SW12_CS16 0xBF - -// DEPRECATED - DO NOT USE - -#define A_1 SW1_CS1 -#define A_2 SW1_CS2 -#define A_3 SW1_CS3 -#define A_4 SW1_CS4 -#define A_5 SW1_CS5 -#define A_6 SW1_CS6 -#define A_7 SW1_CS7 -#define A_8 SW1_CS8 -#define A_9 SW1_CS9 -#define A_10 SW1_CS10 -#define A_11 SW1_CS11 -#define A_12 SW1_CS12 -#define A_13 SW1_CS13 -#define A_14 SW1_CS14 -#define A_15 SW1_CS15 -#define A_16 SW1_CS16 - -#define B_1 SW2_CS1 -#define B_2 SW2_CS2 -#define B_3 SW2_CS3 -#define B_4 SW2_CS4 -#define B_5 SW2_CS5 -#define B_6 SW2_CS6 -#define B_7 SW2_CS7 -#define B_8 SW2_CS8 -#define B_9 SW2_CS9 -#define B_10 SW2_CS10 -#define B_11 SW2_CS11 -#define B_12 SW2_CS12 -#define B_13 SW2_CS13 -#define B_14 SW2_CS14 -#define B_15 SW2_CS15 -#define B_16 SW2_CS16 - -#define C_1 SW3_CS1 -#define C_2 SW3_CS2 -#define C_3 SW3_CS3 -#define C_4 SW3_CS4 -#define C_5 SW3_CS5 -#define C_6 SW3_CS6 -#define C_7 SW3_CS7 -#define C_8 SW3_CS8 -#define C_9 SW3_CS9 -#define C_10 SW3_CS10 -#define C_11 SW3_CS11 -#define C_12 SW3_CS12 -#define C_13 SW3_CS13 -#define C_14 SW3_CS14 -#define C_15 SW3_CS15 -#define C_16 SW3_CS16 - -#define D_1 SW4_CS1 -#define D_2 SW4_CS2 -#define D_3 SW4_CS3 -#define D_4 SW4_CS4 -#define D_5 SW4_CS5 -#define D_6 SW4_CS6 -#define D_7 SW4_CS7 -#define D_8 SW4_CS8 -#define D_9 SW4_CS9 -#define D_10 SW4_CS10 -#define D_11 SW4_CS11 -#define D_12 SW4_CS12 -#define D_13 SW4_CS13 -#define D_14 SW4_CS14 -#define D_15 SW4_CS15 -#define D_16 SW4_CS16 - -#define E_1 SW5_CS1 -#define E_2 SW5_CS2 -#define E_3 SW5_CS3 -#define E_4 SW5_CS4 -#define E_5 SW5_CS5 -#define E_6 SW5_CS6 -#define E_7 SW5_CS7 -#define E_8 SW5_CS8 -#define E_9 SW5_CS9 -#define E_10 SW5_CS10 -#define E_11 SW5_CS11 -#define E_12 SW5_CS12 -#define E_13 SW5_CS13 -#define E_14 SW5_CS14 -#define E_15 SW5_CS15 -#define E_16 SW5_CS16 - -#define F_1 SW6_CS1 -#define F_2 SW6_CS2 -#define F_3 SW6_CS3 -#define F_4 SW6_CS4 -#define F_5 SW6_CS5 -#define F_6 SW6_CS6 -#define F_7 SW6_CS7 -#define F_8 SW6_CS8 -#define F_9 SW6_CS9 -#define F_10 SW6_CS10 -#define F_11 SW6_CS11 -#define F_12 SW6_CS12 -#define F_13 SW6_CS13 -#define F_14 SW6_CS14 -#define F_15 SW6_CS15 -#define F_16 SW6_CS16 - -#define G_1 SW7_CS1 -#define G_2 SW7_CS2 -#define G_3 SW7_CS3 -#define G_4 SW7_CS4 -#define G_5 SW7_CS5 -#define G_6 SW7_CS6 -#define G_7 SW7_CS7 -#define G_8 SW7_CS8 -#define G_9 SW7_CS9 -#define G_10 SW7_CS10 -#define G_11 SW7_CS11 -#define G_12 SW7_CS12 -#define G_13 SW7_CS13 -#define G_14 SW7_CS14 -#define G_15 SW7_CS15 -#define G_16 SW7_CS16 - -#define H_1 SW8_CS1 -#define H_2 SW8_CS2 -#define H_3 SW8_CS3 -#define H_4 SW8_CS4 -#define H_5 SW8_CS5 -#define H_6 SW8_CS6 -#define H_7 SW8_CS7 -#define H_8 SW8_CS8 -#define H_9 SW8_CS9 -#define H_10 SW8_CS10 -#define H_11 SW8_CS11 -#define H_12 SW8_CS12 -#define H_13 SW8_CS13 -#define H_14 SW8_CS14 -#define H_15 SW8_CS15 -#define H_16 SW8_CS16 - -#define I_1 SW9_CS1 -#define I_2 SW9_CS2 -#define I_3 SW9_CS3 -#define I_4 SW9_CS4 -#define I_5 SW9_CS5 -#define I_6 SW9_CS6 -#define I_7 SW9_CS7 -#define I_8 SW9_CS8 -#define I_9 SW9_CS9 -#define I_10 SW9_CS10 -#define I_11 SW9_CS11 -#define I_12 SW9_CS12 -#define I_13 SW9_CS13 -#define I_14 SW9_CS14 -#define I_15 SW9_CS15 -#define I_16 SW9_CS16 - -#define J_1 SW10_CS1 -#define J_2 SW10_CS2 -#define J_3 SW10_CS3 -#define J_4 SW10_CS4 -#define J_5 SW10_CS5 -#define J_6 SW10_CS6 -#define J_7 SW10_CS7 -#define J_8 SW10_CS8 -#define J_9 SW10_CS9 -#define J_10 SW10_CS10 -#define J_11 SW10_CS11 -#define J_12 SW10_CS12 -#define J_13 SW10_CS13 -#define J_14 SW10_CS14 -#define J_15 SW10_CS15 -#define J_16 SW10_CS16 - -#define K_1 SW11_CS1 -#define K_2 SW11_CS2 -#define K_3 SW11_CS3 -#define K_4 SW11_CS4 -#define K_5 SW11_CS5 -#define K_6 SW11_CS6 -#define K_7 SW11_CS7 -#define K_8 SW11_CS8 -#define K_9 SW11_CS9 -#define K_10 SW11_CS10 -#define K_11 SW11_CS11 -#define K_12 SW11_CS12 -#define K_13 SW11_CS13 -#define K_14 SW11_CS14 -#define K_15 SW11_CS15 -#define K_16 SW11_CS16 - -#define L_1 SW12_CS1 -#define L_2 SW12_CS2 -#define L_3 SW12_CS3 -#define L_4 SW12_CS4 -#define L_5 SW12_CS5 -#define L_6 SW12_CS6 -#define L_7 SW12_CS7 -#define L_8 SW12_CS8 -#define L_9 SW12_CS9 -#define L_10 SW12_CS10 -#define L_11 SW12_CS11 -#define L_12 SW12_CS12 -#define L_13 SW12_CS13 -#define L_14 SW12_CS14 -#define L_15 SW12_CS15 -#define L_16 SW12_CS16 diff --git a/drivers/led/issi/is31fl3736-mono.h b/drivers/led/issi/is31fl3736-mono.h index 91c2e0420b9..73441ea551f 100644 --- a/drivers/led/issi/is31fl3736-mono.h +++ b/drivers/led/issi/is31fl3736-mono.h @@ -22,36 +22,6 @@ #include "progmem.h" #include "util.h" -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef ISSI_TIMEOUT -# define IS31FL3736_I2C_TIMEOUT ISSI_TIMEOUT -#endif -#ifdef ISSI_PERSISTENCE -# define IS31FL3736_I2C_PERSISTENCE ISSI_PERSISTENCE -#endif -#ifdef ISSI_SWPULLUP -# define IS31FL3736_SW_PULLUP ISSI_SWPULLUP -#endif -#ifdef ISSI_CSPULLUP -# define IS31FL3736_CS_PULLDOWN ISSI_CSPULLUP -#endif -#ifdef ISSI_GLOBALCURRENT -# define IS31FL3736_GLOBAL_CURRENT ISSI_GLOBALCURRENT -#endif - -#define is31_led is31fl3736_led_t -#define g_is31_leds g_is31fl3736_leds - -#define PUR_0R IS31FL3736_PUR_0_OHM -#define PUR_05KR IS31FL3736_PUR_05K_OHM -#define PUR_1KR IS31FL3736_PUR_1K_OHM -#define PUR_2KR IS31FL3736_PUR_2K_OHM -#define PUR_4KR IS31FL3736_PUR_4K_OHM -#define PUR_8KR IS31FL3736_PUR_8K_OHM -#define PUR_16KR IS31FL3736_PUR_16K_OHM -#define PUR_32KR IS31FL3736_PUR_32K_OHM -// ======== - #define IS31FL3736_REG_INTERRUPT_MASK 0xF0 #define IS31FL3736_REG_INTERRUPT_STATUS 0xF1 @@ -259,113 +229,3 @@ void is31fl3736_flush(void); #define SW12_CS6 0xBA #define SW12_CS7 0xBC #define SW12_CS8 0xBE - -// DEPRECATED - DO NOT USE - -#define A_1 SW1_CS1 -#define A_2 SW1_CS2 -#define A_3 SW1_CS3 -#define A_4 SW1_CS4 -#define A_5 SW1_CS5 -#define A_6 SW1_CS6 -#define A_7 SW1_CS7 -#define A_8 SW1_CS8 - -#define B_1 SW2_CS1 -#define B_2 SW2_CS2 -#define B_3 SW2_CS3 -#define B_4 SW2_CS4 -#define B_5 SW2_CS5 -#define B_6 SW2_CS6 -#define B_7 SW2_CS7 -#define B_8 SW2_CS8 - -#define C_1 SW3_CS1 -#define C_2 SW3_CS2 -#define C_3 SW3_CS3 -#define C_4 SW3_CS4 -#define C_5 SW3_CS5 -#define C_6 SW3_CS6 -#define C_7 SW3_CS7 -#define C_8 SW3_CS8 - -#define D_1 SW4_CS1 -#define D_2 SW4_CS2 -#define D_3 SW4_CS3 -#define D_4 SW4_CS4 -#define D_5 SW4_CS5 -#define D_6 SW4_CS6 -#define D_7 SW4_CS7 -#define D_8 SW4_CS8 - -#define E_1 SW5_CS1 -#define E_2 SW5_CS2 -#define E_3 SW5_CS3 -#define E_4 SW5_CS4 -#define E_5 SW5_CS5 -#define E_6 SW5_CS6 -#define E_7 SW5_CS7 -#define E_8 SW5_CS8 - -#define F_1 SW6_CS1 -#define F_2 SW6_CS2 -#define F_3 SW6_CS3 -#define F_4 SW6_CS4 -#define F_5 SW6_CS5 -#define F_6 SW6_CS6 -#define F_7 SW6_CS7 -#define F_8 SW6_CS8 - -#define G_1 SW7_CS1 -#define G_2 SW7_CS2 -#define G_3 SW7_CS3 -#define G_4 SW7_CS4 -#define G_5 SW7_CS5 -#define G_6 SW7_CS6 -#define G_7 SW7_CS7 -#define G_8 SW7_CS8 - -#define H_1 SW8_CS1 -#define H_2 SW8_CS2 -#define H_3 SW8_CS3 -#define H_4 SW8_CS4 -#define H_5 SW8_CS5 -#define H_6 SW8_CS6 -#define H_7 SW8_CS7 -#define H_8 SW8_CS8 - -#define I_1 SW9_CS1 -#define I_2 SW9_CS2 -#define I_3 SW9_CS3 -#define I_4 SW9_CS4 -#define I_5 SW9_CS5 -#define I_6 SW9_CS6 -#define I_7 SW9_CS7 -#define I_8 SW9_CS8 - -#define J_1 SW10_CS1 -#define J_2 SW10_CS2 -#define J_3 SW10_CS3 -#define J_4 SW10_CS4 -#define J_5 SW10_CS5 -#define J_6 SW10_CS6 -#define J_7 SW10_CS7 -#define J_8 SW10_CS8 - -#define K_1 SW11_CS1 -#define K_2 SW11_CS2 -#define K_3 SW11_CS3 -#define K_4 SW11_CS4 -#define K_5 SW11_CS5 -#define K_6 SW11_CS6 -#define K_7 SW11_CS7 -#define K_8 SW11_CS8 - -#define L_1 SW12_CS1 -#define L_2 SW12_CS2 -#define L_3 SW12_CS3 -#define L_4 SW12_CS4 -#define L_5 SW12_CS5 -#define L_6 SW12_CS6 -#define L_7 SW12_CS7 -#define L_8 SW12_CS8 diff --git a/drivers/led/issi/is31fl3736.h b/drivers/led/issi/is31fl3736.h index dae7b3c8121..f0eabad819c 100644 --- a/drivers/led/issi/is31fl3736.h +++ b/drivers/led/issi/is31fl3736.h @@ -22,48 +22,6 @@ #include "progmem.h" #include "util.h" -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef DRIVER_ADDR_1 -# define IS31FL3736_I2C_ADDRESS_1 DRIVER_ADDR_1 -#endif -#ifdef DRIVER_ADDR_2 -# define IS31FL3736_I2C_ADDRESS_2 DRIVER_ADDR_2 -#endif -#ifdef DRIVER_ADDR_3 -# define IS31FL3736_I2C_ADDRESS_3 DRIVER_ADDR_3 -#endif -#ifdef DRIVER_ADDR_4 -# define IS31FL3736_I2C_ADDRESS_4 DRIVER_ADDR_4 -#endif -#ifdef ISSI_TIMEOUT -# define IS31FL3736_I2C_TIMEOUT ISSI_TIMEOUT -#endif -#ifdef ISSI_PERSISTENCE -# define IS31FL3736_I2C_PERSISTENCE ISSI_PERSISTENCE -#endif -#ifdef ISSI_SWPULLUP -# define IS31FL3736_SW_PULLUP ISSI_SWPULLUP -#endif -#ifdef ISSI_CSPULLUP -# define IS31FL3736_CS_PULLDOWN ISSI_CSPULLUP -#endif -#ifdef ISSI_GLOBALCURRENT -# define IS31FL3736_GLOBAL_CURRENT ISSI_GLOBALCURRENT -#endif - -#define is31_led is31fl3736_led_t -#define g_is31_leds g_is31fl3736_leds - -#define PUR_0R IS31FL3736_PUR_0_OHM -#define PUR_05KR IS31FL3736_PUR_0K5_OHM -#define PUR_1KR IS31FL3736_PUR_1K_OHM -#define PUR_2KR IS31FL3736_PUR_2K_OHM -#define PUR_4KR IS31FL3736_PUR_4K_OHM -#define PUR_8KR IS31FL3736_PUR_8K_OHM -#define PUR_16KR IS31FL3736_PUR_16K_OHM -#define PUR_32KR IS31FL3736_PUR_32K_OHM -// ======== - #define IS31FL3736_REG_INTERRUPT_MASK 0xF0 #define IS31FL3736_REG_INTERRUPT_STATUS 0xF1 diff --git a/drivers/led/issi/is31fl3737-mono.h b/drivers/led/issi/is31fl3737-mono.h index 99151c1e7a7..40380f90062 100644 --- a/drivers/led/issi/is31fl3737-mono.h +++ b/drivers/led/issi/is31fl3737-mono.h @@ -24,36 +24,6 @@ #include "progmem.h" #include "util.h" -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef ISSI_TIMEOUT -# define IS31FL3737_I2C_TIMEOUT ISSI_TIMEOUT -#endif -#ifdef ISSI_PERSISTENCE -# define IS31FL3737_I2C_PERSISTENCE ISSI_PERSISTENCE -#endif -#ifdef ISSI_PWM_FREQUENCY -# define IS31FL3737_PWM_FREQUENCY ISSI_PWM_FREQUENCY -#endif -#ifdef ISSI_SWPULLUP -# define IS31FL3737_SW_PULLUP ISSI_SWPULLUP -#endif -#ifdef ISSI_CSPULLUP -# define IS31FL3737_CS_PULLDOWN ISSI_CSPULLUP -#endif -#ifdef ISSI_GLOBALCURRENT -# define IS31FL3737_GLOBAL_CURRENT ISSI_GLOBALCURRENT -#endif - -#define PUR_0R IS31FL3737_PUR_0_OHM -#define PUR_05KR IS31FL3737_PUR_0K5_OHM -#define PUR_1KR IS31FL3737_PUR_1K_OHM -#define PUR_2KR IS31FL3737_PUR_2K_OHM -#define PUR_4KR IS31FL3737_PUR_4K_OHM -#define PUR_8KR IS31FL3737_PUR_8K_OHM -#define PUR_16KR IS31FL3737_PUR_16K_OHM -#define PUR_32KR IS31FL3737_PUR_32K_OHM -// ======== - #define IS31FL3737_REG_INTERRUPT_MASK 0xF0 #define IS31FL3737_REG_INTERRUPT_STATUS 0xF1 diff --git a/drivers/led/issi/is31fl3737.h b/drivers/led/issi/is31fl3737.h index 735a3a1e308..c1a9306a87e 100644 --- a/drivers/led/issi/is31fl3737.h +++ b/drivers/led/issi/is31fl3737.h @@ -24,51 +24,6 @@ #include "progmem.h" #include "util.h" -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef DRIVER_ADDR_1 -# define IS31FL3737_I2C_ADDRESS_1 DRIVER_ADDR_1 -#endif -#ifdef DRIVER_ADDR_2 -# define IS31FL3737_I2C_ADDRESS_2 DRIVER_ADDR_2 -#endif -#ifdef DRIVER_ADDR_3 -# define IS31FL3737_I2C_ADDRESS_3 DRIVER_ADDR_3 -#endif -#ifdef DRIVER_ADDR_4 -# define IS31FL3737_I2C_ADDRESS_4 DRIVER_ADDR_4 -#endif -#ifdef ISSI_TIMEOUT -# define IS31FL3737_I2C_TIMEOUT ISSI_TIMEOUT -#endif -#ifdef ISSI_PERSISTENCE -# define IS31FL3737_I2C_PERSISTENCE ISSI_PERSISTENCE -#endif -#ifdef ISSI_PWM_FREQUENCY -# define IS31FL3737_PWM_FREQUENCY ISSI_PWM_FREQUENCY -#endif -#ifdef ISSI_SWPULLUP -# define IS31FL3737_SW_PULLUP ISSI_SWPULLUP -#endif -#ifdef ISSI_CSPULLUP -# define IS31FL3737_CS_PULLDOWN ISSI_CSPULLUP -#endif -#ifdef ISSI_GLOBALCURRENT -# define IS31FL3737_GLOBAL_CURRENT ISSI_GLOBALCURRENT -#endif - -#define is31_led is31fl3737_led_t -#define g_is31_leds g_is31fl3737_leds - -#define PUR_0R IS31FL3737_PUR_0_OHM -#define PUR_05KR IS31FL3737_PUR_0K5_OHM -#define PUR_1KR IS31FL3737_PUR_1K_OHM -#define PUR_2KR IS31FL3737_PUR_2K_OHM -#define PUR_4KR IS31FL3737_PUR_4K_OHM -#define PUR_8KR IS31FL3737_PUR_8K_OHM -#define PUR_16KR IS31FL3737_PUR_16K_OHM -#define PUR_32KR IS31FL3737_PUR_32K_OHM -// ======== - #define IS31FL3737_REG_INTERRUPT_MASK 0xF0 #define IS31FL3737_REG_INTERRUPT_STATUS 0xF1 @@ -314,161 +269,3 @@ void is31fl3737_flush(void); #define SW12_CS10 0xBB #define SW12_CS11 0xBC #define SW12_CS12 0xBD - -// DEPRECATED - DO NOT USE - -#define A_1 SW1_CS1 -#define A_2 SW1_CS2 -#define A_3 SW1_CS3 -#define A_4 SW1_CS4 -#define A_5 SW1_CS5 -#define A_6 SW1_CS6 -#define A_7 SW1_CS7 -#define A_8 SW1_CS8 -#define A_9 SW1_CS9 -#define A_10 SW1_CS10 -#define A_11 SW1_CS11 -#define A_12 SW1_CS12 - -#define B_1 SW2_CS1 -#define B_2 SW2_CS2 -#define B_3 SW2_CS3 -#define B_4 SW2_CS4 -#define B_5 SW2_CS5 -#define B_6 SW2_CS6 -#define B_7 SW2_CS7 -#define B_8 SW2_CS8 -#define B_9 SW2_CS9 -#define B_10 SW2_CS10 -#define B_11 SW2_CS11 -#define B_12 SW2_CS12 - -#define C_1 SW3_CS1 -#define C_2 SW3_CS2 -#define C_3 SW3_CS3 -#define C_4 SW3_CS4 -#define C_5 SW3_CS5 -#define C_6 SW3_CS6 -#define C_7 SW3_CS7 -#define C_8 SW3_CS8 -#define C_9 SW3_CS9 -#define C_10 SW3_CS10 -#define C_11 SW3_CS11 -#define C_12 SW3_CS12 - -#define D_1 SW4_CS1 -#define D_2 SW4_CS2 -#define D_3 SW4_CS3 -#define D_4 SW4_CS4 -#define D_5 SW4_CS5 -#define D_6 SW4_CS6 -#define D_7 SW4_CS7 -#define D_8 SW4_CS8 -#define D_9 SW4_CS9 -#define D_10 SW4_CS10 -#define D_11 SW4_CS11 -#define D_12 SW4_CS12 - -#define E_1 SW5_CS1 -#define E_2 SW5_CS2 -#define E_3 SW5_CS3 -#define E_4 SW5_CS4 -#define E_5 SW5_CS5 -#define E_6 SW5_CS6 -#define E_7 SW5_CS7 -#define E_8 SW5_CS8 -#define E_9 SW5_CS9 -#define E_10 SW5_CS10 -#define E_11 SW5_CS11 -#define E_12 SW5_CS12 - -#define F_1 SW6_CS1 -#define F_2 SW6_CS2 -#define F_3 SW6_CS3 -#define F_4 SW6_CS4 -#define F_5 SW6_CS5 -#define F_6 SW6_CS6 -#define F_7 SW6_CS7 -#define F_8 SW6_CS8 -#define F_9 SW6_CS9 -#define F_10 SW6_CS10 -#define F_11 SW6_CS11 -#define F_12 SW6_CS12 - -#define G_1 SW7_CS1 -#define G_2 SW7_CS2 -#define G_3 SW7_CS3 -#define G_4 SW7_CS4 -#define G_5 SW7_CS5 -#define G_6 SW7_CS6 -#define G_7 SW7_CS7 -#define G_8 SW7_CS8 -#define G_9 SW7_CS9 -#define G_10 SW7_CS10 -#define G_11 SW7_CS11 -#define G_12 SW7_CS12 - -#define H_1 SW8_CS1 -#define H_2 SW8_CS2 -#define H_3 SW8_CS3 -#define H_4 SW8_CS4 -#define H_5 SW8_CS5 -#define H_6 SW8_CS6 -#define H_7 SW8_CS7 -#define H_8 SW8_CS8 -#define H_9 SW8_CS9 -#define H_10 SW8_CS10 -#define H_11 SW8_CS11 -#define H_12 SW8_CS12 - -#define I_1 SW9_CS1 -#define I_2 SW9_CS2 -#define I_3 SW9_CS3 -#define I_4 SW9_CS4 -#define I_5 SW9_CS5 -#define I_6 SW9_CS6 -#define I_7 SW9_CS7 -#define I_8 SW9_CS8 -#define I_9 SW9_CS9 -#define I_10 SW9_CS10 -#define I_11 SW9_CS11 -#define I_12 SW9_CS12 - -#define J_1 SW10_CS1 -#define J_2 SW10_CS2 -#define J_3 SW10_CS3 -#define J_4 SW10_CS4 -#define J_5 SW10_CS5 -#define J_6 SW10_CS6 -#define J_7 SW10_CS7 -#define J_8 SW10_CS8 -#define J_9 SW10_CS9 -#define J_10 SW10_CS10 -#define J_11 SW10_CS11 -#define J_12 SW10_CS12 - -#define K_1 SW11_CS1 -#define K_2 SW11_CS2 -#define K_3 SW11_CS3 -#define K_4 SW11_CS4 -#define K_5 SW11_CS5 -#define K_6 SW11_CS6 -#define K_7 SW11_CS7 -#define K_8 SW11_CS8 -#define K_9 SW11_CS9 -#define K_10 SW11_CS10 -#define K_11 SW11_CS11 -#define K_12 SW11_CS12 - -#define L_1 SW12_CS1 -#define L_2 SW12_CS2 -#define L_3 SW12_CS3 -#define L_4 SW12_CS4 -#define L_5 SW12_CS5 -#define L_6 SW12_CS6 -#define L_7 SW12_CS7 -#define L_8 SW12_CS8 -#define L_9 SW12_CS9 -#define L_10 SW12_CS10 -#define L_11 SW12_CS11 -#define L_12 SW12_CS12 diff --git a/drivers/led/issi/is31fl3741-mono.h b/drivers/led/issi/is31fl3741-mono.h index 6d4f70b1b35..d8797bda328 100644 --- a/drivers/led/issi/is31fl3741-mono.h +++ b/drivers/led/issi/is31fl3741-mono.h @@ -24,36 +24,6 @@ #include "progmem.h" #include "util.h" -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef ISSI_TIMEOUT -# define IS31FL3741_I2C_TIMEOUT ISSI_TIMEOUT -#endif -#ifdef ISSI_PERSISTENCE -# define IS31FL3741_I2C_PERSISTENCE ISSI_PERSISTENCE -#endif -#ifdef ISSI_CONFIGURATION -# define IS31FL3741_CONFIGURATION ISSI_CONFIGURATION -#endif -#ifdef ISSI_SWPULLUP -# define IS31FL3741_SW_PULLUP ISSI_SWPULLUP -#endif -#ifdef ISSI_CSPULLUP -# define IS31FL3741_CS_PULLDOWN ISSI_CSPULLUP -#endif -#ifdef ISSI_GLOBALCURRENT -# define IS31FL3741_GLOBAL_CURRENT ISSI_GLOBALCURRENT -#endif - -#define PUR_0R IS31FL3741_PUR_0_OHM -#define PUR_05KR IS31FL3741_PUR_0K5_OHM -#define PUR_1KR IS31FL3741_PUR_1K_OHM -#define PUR_2KR IS31FL3741_PUR_2K_OHM -#define PUR_4KR IS31FL3741_PUR_4K_OHM -#define PUR_8KR IS31FL3741_PUR_8K_OHM -#define PUR_16KR IS31FL3741_PUR_16K_OHM -#define PUR_32KR IS31FL3741_PUR_32K_OHM -// ======== - #define IS31FL3741_REG_INTERRUPT_MASK 0xF0 #define IS31FL3741_REG_INTERRUPT_STATUS 0xF1 #define IS31FL3741_REG_ID 0xFC @@ -514,374 +484,3 @@ void is31fl3741_flush(void); #define SW9_CS37 0x1A8 #define SW9_CS38 0x1A9 #define SW9_CS39 0x1AA - -// DEPRECATED - DO NOT USE - -#define CS1_SW1 SW1_CS1 -#define CS2_SW1 SW1_CS2 -#define CS3_SW1 SW1_CS3 -#define CS4_SW1 SW1_CS4 -#define CS5_SW1 SW1_CS5 -#define CS6_SW1 SW1_CS6 -#define CS7_SW1 SW1_CS7 -#define CS8_SW1 SW1_CS8 -#define CS9_SW1 SW1_CS9 -#define CS10_SW1 SW1_CS10 -#define CS11_SW1 SW1_CS11 -#define CS12_SW1 SW1_CS12 -#define CS13_SW1 SW1_CS13 -#define CS14_SW1 SW1_CS14 -#define CS15_SW1 SW1_CS15 -#define CS16_SW1 SW1_CS16 -#define CS17_SW1 SW1_CS17 -#define CS18_SW1 SW1_CS18 -#define CS19_SW1 SW1_CS19 -#define CS20_SW1 SW1_CS20 -#define CS21_SW1 SW1_CS21 -#define CS22_SW1 SW1_CS22 -#define CS23_SW1 SW1_CS23 -#define CS24_SW1 SW1_CS24 -#define CS25_SW1 SW1_CS25 -#define CS26_SW1 SW1_CS26 -#define CS27_SW1 SW1_CS27 -#define CS28_SW1 SW1_CS28 -#define CS29_SW1 SW1_CS29 -#define CS30_SW1 SW1_CS30 - -#define CS1_SW2 SW2_CS1 -#define CS2_SW2 SW2_CS2 -#define CS3_SW2 SW2_CS3 -#define CS4_SW2 SW2_CS4 -#define CS5_SW2 SW2_CS5 -#define CS6_SW2 SW2_CS6 -#define CS7_SW2 SW2_CS7 -#define CS8_SW2 SW2_CS8 -#define CS9_SW2 SW2_CS9 -#define CS10_SW2 SW2_CS10 -#define CS11_SW2 SW2_CS11 -#define CS12_SW2 SW2_CS12 -#define CS13_SW2 SW2_CS13 -#define CS14_SW2 SW2_CS14 -#define CS15_SW2 SW2_CS15 -#define CS16_SW2 SW2_CS16 -#define CS17_SW2 SW2_CS17 -#define CS18_SW2 SW2_CS18 -#define CS19_SW2 SW2_CS19 -#define CS20_SW2 SW2_CS20 -#define CS21_SW2 SW2_CS21 -#define CS22_SW2 SW2_CS22 -#define CS23_SW2 SW2_CS23 -#define CS24_SW2 SW2_CS24 -#define CS25_SW2 SW2_CS25 -#define CS26_SW2 SW2_CS26 -#define CS27_SW2 SW2_CS27 -#define CS28_SW2 SW2_CS28 -#define CS29_SW2 SW2_CS29 -#define CS30_SW2 SW2_CS30 - -#define CS1_SW3 SW3_CS1 -#define CS2_SW3 SW3_CS2 -#define CS3_SW3 SW3_CS3 -#define CS4_SW3 SW3_CS4 -#define CS5_SW3 SW3_CS5 -#define CS6_SW3 SW3_CS6 -#define CS7_SW3 SW3_CS7 -#define CS8_SW3 SW3_CS8 -#define CS9_SW3 SW3_CS9 -#define CS10_SW3 SW3_CS10 -#define CS11_SW3 SW3_CS11 -#define CS12_SW3 SW3_CS12 -#define CS13_SW3 SW3_CS13 -#define CS14_SW3 SW3_CS14 -#define CS15_SW3 SW3_CS15 -#define CS16_SW3 SW3_CS16 -#define CS17_SW3 SW3_CS17 -#define CS18_SW3 SW3_CS18 -#define CS19_SW3 SW3_CS19 -#define CS20_SW3 SW3_CS20 -#define CS21_SW3 SW3_CS21 -#define CS22_SW3 SW3_CS22 -#define CS23_SW3 SW3_CS23 -#define CS24_SW3 SW3_CS24 -#define CS25_SW3 SW3_CS25 -#define CS26_SW3 SW3_CS26 -#define CS27_SW3 SW3_CS27 -#define CS28_SW3 SW3_CS28 -#define CS29_SW3 SW3_CS29 -#define CS30_SW3 SW3_CS30 - -#define CS1_SW4 SW4_CS1 -#define CS2_SW4 SW4_CS2 -#define CS3_SW4 SW4_CS3 -#define CS4_SW4 SW4_CS4 -#define CS5_SW4 SW4_CS5 -#define CS6_SW4 SW4_CS6 -#define CS7_SW4 SW4_CS7 -#define CS8_SW4 SW4_CS8 -#define CS9_SW4 SW4_CS9 -#define CS10_SW4 SW4_CS10 -#define CS11_SW4 SW4_CS11 -#define CS12_SW4 SW4_CS12 -#define CS13_SW4 SW4_CS13 -#define CS14_SW4 SW4_CS14 -#define CS15_SW4 SW4_CS15 -#define CS16_SW4 SW4_CS16 -#define CS17_SW4 SW4_CS17 -#define CS18_SW4 SW4_CS18 -#define CS19_SW4 SW4_CS19 -#define CS20_SW4 SW4_CS20 -#define CS21_SW4 SW4_CS21 -#define CS22_SW4 SW4_CS22 -#define CS23_SW4 SW4_CS23 -#define CS24_SW4 SW4_CS24 -#define CS25_SW4 SW4_CS25 -#define CS26_SW4 SW4_CS26 -#define CS27_SW4 SW4_CS27 -#define CS28_SW4 SW4_CS28 -#define CS29_SW4 SW4_CS29 -#define CS30_SW4 SW4_CS30 - -#define CS1_SW5 SW5_CS1 -#define CS2_SW5 SW5_CS2 -#define CS3_SW5 SW5_CS3 -#define CS4_SW5 SW5_CS4 -#define CS5_SW5 SW5_CS5 -#define CS6_SW5 SW5_CS6 -#define CS7_SW5 SW5_CS7 -#define CS8_SW5 SW5_CS8 -#define CS9_SW5 SW5_CS9 -#define CS10_SW5 SW5_CS10 -#define CS11_SW5 SW5_CS11 -#define CS12_SW5 SW5_CS12 -#define CS13_SW5 SW5_CS13 -#define CS14_SW5 SW5_CS14 -#define CS15_SW5 SW5_CS15 -#define CS16_SW5 SW5_CS16 -#define CS17_SW5 SW5_CS17 -#define CS18_SW5 SW5_CS18 -#define CS19_SW5 SW5_CS19 -#define CS20_SW5 SW5_CS20 -#define CS21_SW5 SW5_CS21 -#define CS22_SW5 SW5_CS22 -#define CS23_SW5 SW5_CS23 -#define CS24_SW5 SW5_CS24 -#define CS25_SW5 SW5_CS25 -#define CS26_SW5 SW5_CS26 -#define CS27_SW5 SW5_CS27 -#define CS28_SW5 SW5_CS28 -#define CS29_SW5 SW5_CS29 -#define CS30_SW5 SW5_CS30 - -#define CS1_SW6 SW6_CS1 -#define CS2_SW6 SW6_CS2 -#define CS3_SW6 SW6_CS3 -#define CS4_SW6 SW6_CS4 -#define CS5_SW6 SW6_CS5 -#define CS6_SW6 SW6_CS6 -#define CS7_SW6 SW6_CS7 -#define CS8_SW6 SW6_CS8 -#define CS9_SW6 SW6_CS9 -#define CS10_SW6 SW6_CS10 -#define CS11_SW6 SW6_CS11 -#define CS12_SW6 SW6_CS12 -#define CS13_SW6 SW6_CS13 -#define CS14_SW6 SW6_CS14 -#define CS15_SW6 SW6_CS15 -#define CS16_SW6 SW6_CS16 -#define CS17_SW6 SW6_CS17 -#define CS18_SW6 SW6_CS18 -#define CS19_SW6 SW6_CS19 -#define CS20_SW6 SW6_CS20 -#define CS21_SW6 SW6_CS21 -#define CS22_SW6 SW6_CS22 -#define CS23_SW6 SW6_CS23 -#define CS24_SW6 SW6_CS24 -#define CS25_SW6 SW6_CS25 -#define CS26_SW6 SW6_CS26 -#define CS27_SW6 SW6_CS27 -#define CS28_SW6 SW6_CS28 -#define CS29_SW6 SW6_CS29 -#define CS30_SW6 SW6_CS30 - -#define CS1_SW7 SW7_CS1 -#define CS2_SW7 SW7_CS2 -#define CS3_SW7 SW7_CS3 -#define CS4_SW7 SW7_CS4 -#define CS5_SW7 SW7_CS5 -#define CS6_SW7 SW7_CS6 -#define CS7_SW7 SW7_CS7 -#define CS8_SW7 SW7_CS8 -#define CS9_SW7 SW7_CS9 -#define CS10_SW7 SW7_CS10 -#define CS11_SW7 SW7_CS11 -#define CS12_SW7 SW7_CS12 -#define CS13_SW7 SW7_CS13 -#define CS14_SW7 SW7_CS14 -#define CS15_SW7 SW7_CS15 -#define CS16_SW7 SW7_CS16 -#define CS17_SW7 SW7_CS17 -#define CS18_SW7 SW7_CS18 -#define CS19_SW7 SW7_CS19 -#define CS20_SW7 SW7_CS20 -#define CS21_SW7 SW7_CS21 -#define CS22_SW7 SW7_CS22 -#define CS23_SW7 SW7_CS23 -#define CS24_SW7 SW7_CS24 -#define CS25_SW7 SW7_CS25 -#define CS26_SW7 SW7_CS26 -#define CS27_SW7 SW7_CS27 -#define CS28_SW7 SW7_CS28 -#define CS29_SW7 SW7_CS29 -#define CS30_SW7 SW7_CS30 - -#define CS1_SW8 SW8_CS1 -#define CS2_SW8 SW8_CS2 -#define CS3_SW8 SW8_CS3 -#define CS4_SW8 SW8_CS4 -#define CS5_SW8 SW8_CS5 -#define CS6_SW8 SW8_CS6 -#define CS7_SW8 SW8_CS7 -#define CS8_SW8 SW8_CS8 -#define CS9_SW8 SW8_CS9 -#define CS10_SW8 SW8_CS10 -#define CS11_SW8 SW8_CS11 -#define CS12_SW8 SW8_CS12 -#define CS13_SW8 SW8_CS13 -#define CS14_SW8 SW8_CS14 -#define CS15_SW8 SW8_CS15 -#define CS16_SW8 SW8_CS16 -#define CS17_SW8 SW8_CS17 -#define CS18_SW8 SW8_CS18 -#define CS19_SW8 SW8_CS19 -#define CS20_SW8 SW8_CS20 -#define CS21_SW8 SW8_CS21 -#define CS22_SW8 SW8_CS22 -#define CS23_SW8 SW8_CS23 -#define CS24_SW8 SW8_CS24 -#define CS25_SW8 SW8_CS25 -#define CS26_SW8 SW8_CS26 -#define CS27_SW8 SW8_CS27 -#define CS28_SW8 SW8_CS28 -#define CS29_SW8 SW8_CS29 -#define CS30_SW8 SW8_CS30 - -#define CS1_SW9 SW9_CS1 -#define CS2_SW9 SW9_CS2 -#define CS3_SW9 SW9_CS3 -#define CS4_SW9 SW9_CS4 -#define CS5_SW9 SW9_CS5 -#define CS6_SW9 SW9_CS6 -#define CS7_SW9 SW9_CS7 -#define CS8_SW9 SW9_CS8 -#define CS9_SW9 SW9_CS9 -#define CS10_SW9 SW9_CS10 -#define CS11_SW9 SW9_CS11 -#define CS12_SW9 SW9_CS12 -#define CS13_SW9 SW9_CS13 -#define CS14_SW9 SW9_CS14 -#define CS15_SW9 SW9_CS15 -#define CS16_SW9 SW9_CS16 -#define CS17_SW9 SW9_CS17 -#define CS18_SW9 SW9_CS18 -#define CS19_SW9 SW9_CS19 -#define CS20_SW9 SW9_CS20 -#define CS21_SW9 SW9_CS21 -#define CS22_SW9 SW9_CS22 -#define CS23_SW9 SW9_CS23 -#define CS24_SW9 SW9_CS24 -#define CS25_SW9 SW9_CS25 -#define CS26_SW9 SW9_CS26 -#define CS27_SW9 SW9_CS27 -#define CS28_SW9 SW9_CS28 -#define CS29_SW9 SW9_CS29 -#define CS30_SW9 SW9_CS30 - -#define CS31_SW1 SW1_CS31 -#define CS32_SW1 SW1_CS32 -#define CS33_SW1 SW1_CS33 -#define CS34_SW1 SW1_CS34 -#define CS35_SW1 SW1_CS35 -#define CS36_SW1 SW1_CS36 -#define CS37_SW1 SW1_CS37 -#define CS38_SW1 SW1_CS38 -#define CS39_SW1 SW1_CS39 - -#define CS31_SW2 SW2_CS31 -#define CS32_SW2 SW2_CS32 -#define CS33_SW2 SW2_CS33 -#define CS34_SW2 SW2_CS34 -#define CS35_SW2 SW2_CS35 -#define CS36_SW2 SW2_CS36 -#define CS37_SW2 SW2_CS37 -#define CS38_SW2 SW2_CS38 -#define CS39_SW2 SW2_CS39 - -#define CS31_SW3 SW3_CS31 -#define CS32_SW3 SW3_CS32 -#define CS33_SW3 SW3_CS33 -#define CS34_SW3 SW3_CS34 -#define CS35_SW3 SW3_CS35 -#define CS36_SW3 SW3_CS36 -#define CS37_SW3 SW3_CS37 -#define CS38_SW3 SW3_CS38 -#define CS39_SW3 SW3_CS39 - -#define CS31_SW4 SW4_CS31 -#define CS32_SW4 SW4_CS32 -#define CS33_SW4 SW4_CS33 -#define CS34_SW4 SW4_CS34 -#define CS35_SW4 SW4_CS35 -#define CS36_SW4 SW4_CS36 -#define CS37_SW4 SW4_CS37 -#define CS38_SW4 SW4_CS38 -#define CS39_SW4 SW4_CS39 - -#define CS31_SW5 SW5_CS31 -#define CS32_SW5 SW5_CS32 -#define CS33_SW5 SW5_CS33 -#define CS34_SW5 SW5_CS34 -#define CS35_SW5 SW5_CS35 -#define CS36_SW5 SW5_CS36 -#define CS37_SW5 SW5_CS37 -#define CS38_SW5 SW5_CS38 -#define CS39_SW5 SW5_CS39 - -#define CS31_SW6 SW6_CS31 -#define CS32_SW6 SW6_CS32 -#define CS33_SW6 SW6_CS33 -#define CS34_SW6 SW6_CS34 -#define CS35_SW6 SW6_CS35 -#define CS36_SW6 SW6_CS36 -#define CS37_SW6 SW6_CS37 -#define CS38_SW6 SW6_CS38 -#define CS39_SW6 SW6_CS39 - -#define CS31_SW7 SW7_CS31 -#define CS32_SW7 SW7_CS32 -#define CS33_SW7 SW7_CS33 -#define CS34_SW7 SW7_CS34 -#define CS35_SW7 SW7_CS35 -#define CS36_SW7 SW7_CS36 -#define CS37_SW7 SW7_CS37 -#define CS38_SW7 SW7_CS38 -#define CS39_SW7 SW7_CS39 - -#define CS31_SW8 SW8_CS31 -#define CS32_SW8 SW8_CS32 -#define CS33_SW8 SW8_CS33 -#define CS34_SW8 SW8_CS34 -#define CS35_SW8 SW8_CS35 -#define CS36_SW8 SW8_CS36 -#define CS37_SW8 SW8_CS37 -#define CS38_SW8 SW8_CS38 -#define CS39_SW8 SW8_CS39 - -#define CS31_SW9 SW9_CS31 -#define CS32_SW9 SW9_CS32 -#define CS33_SW9 SW9_CS33 -#define CS34_SW9 SW9_CS34 -#define CS35_SW9 SW9_CS35 -#define CS36_SW9 SW9_CS36 -#define CS37_SW9 SW9_CS37 -#define CS38_SW9 SW9_CS38 -#define CS39_SW9 SW9_CS39 diff --git a/drivers/led/issi/is31fl3741.h b/drivers/led/issi/is31fl3741.h index cc9637a4e80..343dffe0689 100644 --- a/drivers/led/issi/is31fl3741.h +++ b/drivers/led/issi/is31fl3741.h @@ -24,51 +24,6 @@ #include "progmem.h" #include "util.h" -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef DRIVER_ADDR_1 -# define IS31FL3741_I2C_ADDRESS_1 DRIVER_ADDR_1 -#endif -#ifdef DRIVER_ADDR_2 -# define IS31FL3741_I2C_ADDRESS_2 DRIVER_ADDR_2 -#endif -#ifdef DRIVER_ADDR_3 -# define IS31FL3741_I2C_ADDRESS_3 DRIVER_ADDR_3 -#endif -#ifdef DRIVER_ADDR_4 -# define IS31FL3741_I2C_ADDRESS_4 DRIVER_ADDR_4 -#endif -#ifdef ISSI_TIMEOUT -# define IS31FL3741_I2C_TIMEOUT ISSI_TIMEOUT -#endif -#ifdef ISSI_PERSISTENCE -# define IS31FL3741_I2C_PERSISTENCE ISSI_PERSISTENCE -#endif -#ifdef ISSI_CONFIGURATION -# define IS31FL3741_CONFIGURATION ISSI_CONFIGURATION -#endif -#ifdef ISSI_SWPULLUP -# define IS31FL3741_SW_PULLUP ISSI_SWPULLUP -#endif -#ifdef ISSI_CSPULLUP -# define IS31FL3741_CS_PULLDOWN ISSI_CSPULLUP -#endif -#ifdef ISSI_GLOBALCURRENT -# define IS31FL3741_GLOBAL_CURRENT ISSI_GLOBALCURRENT -#endif - -#define is31_led is31fl3741_led_t -#define g_is31_leds g_is31fl3741_leds - -#define PUR_0R IS31FL3741_PUR_0_OHM -#define PUR_05KR IS31FL3741_PUR_0K5_OHM -#define PUR_1KR IS31FL3741_PUR_1K_OHM -#define PUR_2KR IS31FL3741_PUR_2K_OHM -#define PUR_4KR IS31FL3741_PUR_4K_OHM -#define PUR_8KR IS31FL3741_PUR_8K_OHM -#define PUR_16KR IS31FL3741_PUR_16K_OHM -#define PUR_32KR IS31FL3741_PUR_32K_OHM -// ======== - #define IS31FL3741_REG_INTERRUPT_MASK 0xF0 #define IS31FL3741_REG_INTERRUPT_STATUS 0xF1 #define IS31FL3741_REG_ID 0xFC @@ -531,374 +486,3 @@ void is31fl3741_flush(void); #define SW9_CS37 0x1A8 #define SW9_CS38 0x1A9 #define SW9_CS39 0x1AA - -// DEPRECATED - DO NOT USE - -#define CS1_SW1 SW1_CS1 -#define CS2_SW1 SW1_CS2 -#define CS3_SW1 SW1_CS3 -#define CS4_SW1 SW1_CS4 -#define CS5_SW1 SW1_CS5 -#define CS6_SW1 SW1_CS6 -#define CS7_SW1 SW1_CS7 -#define CS8_SW1 SW1_CS8 -#define CS9_SW1 SW1_CS9 -#define CS10_SW1 SW1_CS10 -#define CS11_SW1 SW1_CS11 -#define CS12_SW1 SW1_CS12 -#define CS13_SW1 SW1_CS13 -#define CS14_SW1 SW1_CS14 -#define CS15_SW1 SW1_CS15 -#define CS16_SW1 SW1_CS16 -#define CS17_SW1 SW1_CS17 -#define CS18_SW1 SW1_CS18 -#define CS19_SW1 SW1_CS19 -#define CS20_SW1 SW1_CS20 -#define CS21_SW1 SW1_CS21 -#define CS22_SW1 SW1_CS22 -#define CS23_SW1 SW1_CS23 -#define CS24_SW1 SW1_CS24 -#define CS25_SW1 SW1_CS25 -#define CS26_SW1 SW1_CS26 -#define CS27_SW1 SW1_CS27 -#define CS28_SW1 SW1_CS28 -#define CS29_SW1 SW1_CS29 -#define CS30_SW1 SW1_CS30 - -#define CS1_SW2 SW2_CS1 -#define CS2_SW2 SW2_CS2 -#define CS3_SW2 SW2_CS3 -#define CS4_SW2 SW2_CS4 -#define CS5_SW2 SW2_CS5 -#define CS6_SW2 SW2_CS6 -#define CS7_SW2 SW2_CS7 -#define CS8_SW2 SW2_CS8 -#define CS9_SW2 SW2_CS9 -#define CS10_SW2 SW2_CS10 -#define CS11_SW2 SW2_CS11 -#define CS12_SW2 SW2_CS12 -#define CS13_SW2 SW2_CS13 -#define CS14_SW2 SW2_CS14 -#define CS15_SW2 SW2_CS15 -#define CS16_SW2 SW2_CS16 -#define CS17_SW2 SW2_CS17 -#define CS18_SW2 SW2_CS18 -#define CS19_SW2 SW2_CS19 -#define CS20_SW2 SW2_CS20 -#define CS21_SW2 SW2_CS21 -#define CS22_SW2 SW2_CS22 -#define CS23_SW2 SW2_CS23 -#define CS24_SW2 SW2_CS24 -#define CS25_SW2 SW2_CS25 -#define CS26_SW2 SW2_CS26 -#define CS27_SW2 SW2_CS27 -#define CS28_SW2 SW2_CS28 -#define CS29_SW2 SW2_CS29 -#define CS30_SW2 SW2_CS30 - -#define CS1_SW3 SW3_CS1 -#define CS2_SW3 SW3_CS2 -#define CS3_SW3 SW3_CS3 -#define CS4_SW3 SW3_CS4 -#define CS5_SW3 SW3_CS5 -#define CS6_SW3 SW3_CS6 -#define CS7_SW3 SW3_CS7 -#define CS8_SW3 SW3_CS8 -#define CS9_SW3 SW3_CS9 -#define CS10_SW3 SW3_CS10 -#define CS11_SW3 SW3_CS11 -#define CS12_SW3 SW3_CS12 -#define CS13_SW3 SW3_CS13 -#define CS14_SW3 SW3_CS14 -#define CS15_SW3 SW3_CS15 -#define CS16_SW3 SW3_CS16 -#define CS17_SW3 SW3_CS17 -#define CS18_SW3 SW3_CS18 -#define CS19_SW3 SW3_CS19 -#define CS20_SW3 SW3_CS20 -#define CS21_SW3 SW3_CS21 -#define CS22_SW3 SW3_CS22 -#define CS23_SW3 SW3_CS23 -#define CS24_SW3 SW3_CS24 -#define CS25_SW3 SW3_CS25 -#define CS26_SW3 SW3_CS26 -#define CS27_SW3 SW3_CS27 -#define CS28_SW3 SW3_CS28 -#define CS29_SW3 SW3_CS29 -#define CS30_SW3 SW3_CS30 - -#define CS1_SW4 SW4_CS1 -#define CS2_SW4 SW4_CS2 -#define CS3_SW4 SW4_CS3 -#define CS4_SW4 SW4_CS4 -#define CS5_SW4 SW4_CS5 -#define CS6_SW4 SW4_CS6 -#define CS7_SW4 SW4_CS7 -#define CS8_SW4 SW4_CS8 -#define CS9_SW4 SW4_CS9 -#define CS10_SW4 SW4_CS10 -#define CS11_SW4 SW4_CS11 -#define CS12_SW4 SW4_CS12 -#define CS13_SW4 SW4_CS13 -#define CS14_SW4 SW4_CS14 -#define CS15_SW4 SW4_CS15 -#define CS16_SW4 SW4_CS16 -#define CS17_SW4 SW4_CS17 -#define CS18_SW4 SW4_CS18 -#define CS19_SW4 SW4_CS19 -#define CS20_SW4 SW4_CS20 -#define CS21_SW4 SW4_CS21 -#define CS22_SW4 SW4_CS22 -#define CS23_SW4 SW4_CS23 -#define CS24_SW4 SW4_CS24 -#define CS25_SW4 SW4_CS25 -#define CS26_SW4 SW4_CS26 -#define CS27_SW4 SW4_CS27 -#define CS28_SW4 SW4_CS28 -#define CS29_SW4 SW4_CS29 -#define CS30_SW4 SW4_CS30 - -#define CS1_SW5 SW5_CS1 -#define CS2_SW5 SW5_CS2 -#define CS3_SW5 SW5_CS3 -#define CS4_SW5 SW5_CS4 -#define CS5_SW5 SW5_CS5 -#define CS6_SW5 SW5_CS6 -#define CS7_SW5 SW5_CS7 -#define CS8_SW5 SW5_CS8 -#define CS9_SW5 SW5_CS9 -#define CS10_SW5 SW5_CS10 -#define CS11_SW5 SW5_CS11 -#define CS12_SW5 SW5_CS12 -#define CS13_SW5 SW5_CS13 -#define CS14_SW5 SW5_CS14 -#define CS15_SW5 SW5_CS15 -#define CS16_SW5 SW5_CS16 -#define CS17_SW5 SW5_CS17 -#define CS18_SW5 SW5_CS18 -#define CS19_SW5 SW5_CS19 -#define CS20_SW5 SW5_CS20 -#define CS21_SW5 SW5_CS21 -#define CS22_SW5 SW5_CS22 -#define CS23_SW5 SW5_CS23 -#define CS24_SW5 SW5_CS24 -#define CS25_SW5 SW5_CS25 -#define CS26_SW5 SW5_CS26 -#define CS27_SW5 SW5_CS27 -#define CS28_SW5 SW5_CS28 -#define CS29_SW5 SW5_CS29 -#define CS30_SW5 SW5_CS30 - -#define CS1_SW6 SW6_CS1 -#define CS2_SW6 SW6_CS2 -#define CS3_SW6 SW6_CS3 -#define CS4_SW6 SW6_CS4 -#define CS5_SW6 SW6_CS5 -#define CS6_SW6 SW6_CS6 -#define CS7_SW6 SW6_CS7 -#define CS8_SW6 SW6_CS8 -#define CS9_SW6 SW6_CS9 -#define CS10_SW6 SW6_CS10 -#define CS11_SW6 SW6_CS11 -#define CS12_SW6 SW6_CS12 -#define CS13_SW6 SW6_CS13 -#define CS14_SW6 SW6_CS14 -#define CS15_SW6 SW6_CS15 -#define CS16_SW6 SW6_CS16 -#define CS17_SW6 SW6_CS17 -#define CS18_SW6 SW6_CS18 -#define CS19_SW6 SW6_CS19 -#define CS20_SW6 SW6_CS20 -#define CS21_SW6 SW6_CS21 -#define CS22_SW6 SW6_CS22 -#define CS23_SW6 SW6_CS23 -#define CS24_SW6 SW6_CS24 -#define CS25_SW6 SW6_CS25 -#define CS26_SW6 SW6_CS26 -#define CS27_SW6 SW6_CS27 -#define CS28_SW6 SW6_CS28 -#define CS29_SW6 SW6_CS29 -#define CS30_SW6 SW6_CS30 - -#define CS1_SW7 SW7_CS1 -#define CS2_SW7 SW7_CS2 -#define CS3_SW7 SW7_CS3 -#define CS4_SW7 SW7_CS4 -#define CS5_SW7 SW7_CS5 -#define CS6_SW7 SW7_CS6 -#define CS7_SW7 SW7_CS7 -#define CS8_SW7 SW7_CS8 -#define CS9_SW7 SW7_CS9 -#define CS10_SW7 SW7_CS10 -#define CS11_SW7 SW7_CS11 -#define CS12_SW7 SW7_CS12 -#define CS13_SW7 SW7_CS13 -#define CS14_SW7 SW7_CS14 -#define CS15_SW7 SW7_CS15 -#define CS16_SW7 SW7_CS16 -#define CS17_SW7 SW7_CS17 -#define CS18_SW7 SW7_CS18 -#define CS19_SW7 SW7_CS19 -#define CS20_SW7 SW7_CS20 -#define CS21_SW7 SW7_CS21 -#define CS22_SW7 SW7_CS22 -#define CS23_SW7 SW7_CS23 -#define CS24_SW7 SW7_CS24 -#define CS25_SW7 SW7_CS25 -#define CS26_SW7 SW7_CS26 -#define CS27_SW7 SW7_CS27 -#define CS28_SW7 SW7_CS28 -#define CS29_SW7 SW7_CS29 -#define CS30_SW7 SW7_CS30 - -#define CS1_SW8 SW8_CS1 -#define CS2_SW8 SW8_CS2 -#define CS3_SW8 SW8_CS3 -#define CS4_SW8 SW8_CS4 -#define CS5_SW8 SW8_CS5 -#define CS6_SW8 SW8_CS6 -#define CS7_SW8 SW8_CS7 -#define CS8_SW8 SW8_CS8 -#define CS9_SW8 SW8_CS9 -#define CS10_SW8 SW8_CS10 -#define CS11_SW8 SW8_CS11 -#define CS12_SW8 SW8_CS12 -#define CS13_SW8 SW8_CS13 -#define CS14_SW8 SW8_CS14 -#define CS15_SW8 SW8_CS15 -#define CS16_SW8 SW8_CS16 -#define CS17_SW8 SW8_CS17 -#define CS18_SW8 SW8_CS18 -#define CS19_SW8 SW8_CS19 -#define CS20_SW8 SW8_CS20 -#define CS21_SW8 SW8_CS21 -#define CS22_SW8 SW8_CS22 -#define CS23_SW8 SW8_CS23 -#define CS24_SW8 SW8_CS24 -#define CS25_SW8 SW8_CS25 -#define CS26_SW8 SW8_CS26 -#define CS27_SW8 SW8_CS27 -#define CS28_SW8 SW8_CS28 -#define CS29_SW8 SW8_CS29 -#define CS30_SW8 SW8_CS30 - -#define CS1_SW9 SW9_CS1 -#define CS2_SW9 SW9_CS2 -#define CS3_SW9 SW9_CS3 -#define CS4_SW9 SW9_CS4 -#define CS5_SW9 SW9_CS5 -#define CS6_SW9 SW9_CS6 -#define CS7_SW9 SW9_CS7 -#define CS8_SW9 SW9_CS8 -#define CS9_SW9 SW9_CS9 -#define CS10_SW9 SW9_CS10 -#define CS11_SW9 SW9_CS11 -#define CS12_SW9 SW9_CS12 -#define CS13_SW9 SW9_CS13 -#define CS14_SW9 SW9_CS14 -#define CS15_SW9 SW9_CS15 -#define CS16_SW9 SW9_CS16 -#define CS17_SW9 SW9_CS17 -#define CS18_SW9 SW9_CS18 -#define CS19_SW9 SW9_CS19 -#define CS20_SW9 SW9_CS20 -#define CS21_SW9 SW9_CS21 -#define CS22_SW9 SW9_CS22 -#define CS23_SW9 SW9_CS23 -#define CS24_SW9 SW9_CS24 -#define CS25_SW9 SW9_CS25 -#define CS26_SW9 SW9_CS26 -#define CS27_SW9 SW9_CS27 -#define CS28_SW9 SW9_CS28 -#define CS29_SW9 SW9_CS29 -#define CS30_SW9 SW9_CS30 - -#define CS31_SW1 SW1_CS31 -#define CS32_SW1 SW1_CS32 -#define CS33_SW1 SW1_CS33 -#define CS34_SW1 SW1_CS34 -#define CS35_SW1 SW1_CS35 -#define CS36_SW1 SW1_CS36 -#define CS37_SW1 SW1_CS37 -#define CS38_SW1 SW1_CS38 -#define CS39_SW1 SW1_CS39 - -#define CS31_SW2 SW2_CS31 -#define CS32_SW2 SW2_CS32 -#define CS33_SW2 SW2_CS33 -#define CS34_SW2 SW2_CS34 -#define CS35_SW2 SW2_CS35 -#define CS36_SW2 SW2_CS36 -#define CS37_SW2 SW2_CS37 -#define CS38_SW2 SW2_CS38 -#define CS39_SW2 SW2_CS39 - -#define CS31_SW3 SW3_CS31 -#define CS32_SW3 SW3_CS32 -#define CS33_SW3 SW3_CS33 -#define CS34_SW3 SW3_CS34 -#define CS35_SW3 SW3_CS35 -#define CS36_SW3 SW3_CS36 -#define CS37_SW3 SW3_CS37 -#define CS38_SW3 SW3_CS38 -#define CS39_SW3 SW3_CS39 - -#define CS31_SW4 SW4_CS31 -#define CS32_SW4 SW4_CS32 -#define CS33_SW4 SW4_CS33 -#define CS34_SW4 SW4_CS34 -#define CS35_SW4 SW4_CS35 -#define CS36_SW4 SW4_CS36 -#define CS37_SW4 SW4_CS37 -#define CS38_SW4 SW4_CS38 -#define CS39_SW4 SW4_CS39 - -#define CS31_SW5 SW5_CS31 -#define CS32_SW5 SW5_CS32 -#define CS33_SW5 SW5_CS33 -#define CS34_SW5 SW5_CS34 -#define CS35_SW5 SW5_CS35 -#define CS36_SW5 SW5_CS36 -#define CS37_SW5 SW5_CS37 -#define CS38_SW5 SW5_CS38 -#define CS39_SW5 SW5_CS39 - -#define CS31_SW6 SW6_CS31 -#define CS32_SW6 SW6_CS32 -#define CS33_SW6 SW6_CS33 -#define CS34_SW6 SW6_CS34 -#define CS35_SW6 SW6_CS35 -#define CS36_SW6 SW6_CS36 -#define CS37_SW6 SW6_CS37 -#define CS38_SW6 SW6_CS38 -#define CS39_SW6 SW6_CS39 - -#define CS31_SW7 SW7_CS31 -#define CS32_SW7 SW7_CS32 -#define CS33_SW7 SW7_CS33 -#define CS34_SW7 SW7_CS34 -#define CS35_SW7 SW7_CS35 -#define CS36_SW7 SW7_CS36 -#define CS37_SW7 SW7_CS37 -#define CS38_SW7 SW7_CS38 -#define CS39_SW7 SW7_CS39 - -#define CS31_SW8 SW8_CS31 -#define CS32_SW8 SW8_CS32 -#define CS33_SW8 SW8_CS33 -#define CS34_SW8 SW8_CS34 -#define CS35_SW8 SW8_CS35 -#define CS36_SW8 SW8_CS36 -#define CS37_SW8 SW8_CS37 -#define CS38_SW8 SW8_CS38 -#define CS39_SW8 SW8_CS39 - -#define CS31_SW9 SW9_CS31 -#define CS32_SW9 SW9_CS32 -#define CS33_SW9 SW9_CS33 -#define CS34_SW9 SW9_CS34 -#define CS35_SW9 SW9_CS35 -#define CS36_SW9 SW9_CS36 -#define CS37_SW9 SW9_CS37 -#define CS38_SW9 SW9_CS38 -#define CS39_SW9 SW9_CS39 diff --git a/drivers/led/issi/is31fl3743a.h b/drivers/led/issi/is31fl3743a.h index 48aeab46abd..bfff9040477 100644 --- a/drivers/led/issi/is31fl3743a.h +++ b/drivers/led/issi/is31fl3743a.h @@ -328,214 +328,3 @@ void is31fl3743a_flush(void); #define SW11_CS16 0xC3 #define SW11_CS17 0xC4 #define SW11_CS18 0xC5 - -// DEPRECATED - DO NOT USE - -#define CS1_SW1 SW1_CS1 -#define CS2_SW1 SW1_CS2 -#define CS3_SW1 SW1_CS3 -#define CS4_SW1 SW1_CS4 -#define CS5_SW1 SW1_CS5 -#define CS6_SW1 SW1_CS6 -#define CS7_SW1 SW1_CS7 -#define CS8_SW1 SW1_CS8 -#define CS9_SW1 SW1_CS9 -#define CS10_SW1 SW1_CS10 -#define CS11_SW1 SW1_CS11 -#define CS12_SW1 SW1_CS12 -#define CS13_SW1 SW1_CS13 -#define CS14_SW1 SW1_CS14 -#define CS15_SW1 SW1_CS15 -#define CS16_SW1 SW1_CS16 -#define CS17_SW1 SW1_CS17 -#define CS18_SW1 SW1_CS18 - -#define CS1_SW2 SW2_CS1 -#define CS2_SW2 SW2_CS2 -#define CS3_SW2 SW2_CS3 -#define CS4_SW2 SW2_CS4 -#define CS5_SW2 SW2_CS5 -#define CS6_SW2 SW2_CS6 -#define CS7_SW2 SW2_CS7 -#define CS8_SW2 SW2_CS8 -#define CS9_SW2 SW2_CS9 -#define CS10_SW2 SW2_CS10 -#define CS11_SW2 SW2_CS11 -#define CS12_SW2 SW2_CS12 -#define CS13_SW2 SW2_CS13 -#define CS14_SW2 SW2_CS14 -#define CS15_SW2 SW2_CS15 -#define CS16_SW2 SW2_CS16 -#define CS17_SW2 SW2_CS17 -#define CS18_SW2 SW2_CS18 - -#define CS1_SW3 SW3_CS1 -#define CS2_SW3 SW3_CS2 -#define CS3_SW3 SW3_CS3 -#define CS4_SW3 SW3_CS4 -#define CS5_SW3 SW3_CS5 -#define CS6_SW3 SW3_CS6 -#define CS7_SW3 SW3_CS7 -#define CS8_SW3 SW3_CS8 -#define CS9_SW3 SW3_CS9 -#define CS10_SW3 SW3_CS10 -#define CS11_SW3 SW3_CS11 -#define CS12_SW3 SW3_CS12 -#define CS13_SW3 SW3_CS13 -#define CS14_SW3 SW3_CS14 -#define CS15_SW3 SW3_CS15 -#define CS16_SW3 SW3_CS16 -#define CS17_SW3 SW3_CS17 -#define CS18_SW3 SW3_CS18 - -#define CS1_SW4 SW4_CS1 -#define CS2_SW4 SW4_CS2 -#define CS3_SW4 SW4_CS3 -#define CS4_SW4 SW4_CS4 -#define CS5_SW4 SW4_CS5 -#define CS6_SW4 SW4_CS6 -#define CS7_SW4 SW4_CS7 -#define CS8_SW4 SW4_CS8 -#define CS9_SW4 SW4_CS9 -#define CS10_SW4 SW4_CS10 -#define CS11_SW4 SW4_CS11 -#define CS12_SW4 SW4_CS12 -#define CS13_SW4 SW4_CS13 -#define CS14_SW4 SW4_CS14 -#define CS15_SW4 SW4_CS15 -#define CS16_SW4 SW4_CS16 -#define CS17_SW4 SW4_CS17 -#define CS18_SW4 SW4_CS18 - -#define CS1_SW5 SW5_CS1 -#define CS2_SW5 SW5_CS2 -#define CS3_SW5 SW5_CS3 -#define CS4_SW5 SW5_CS4 -#define CS5_SW5 SW5_CS5 -#define CS6_SW5 SW5_CS6 -#define CS7_SW5 SW5_CS7 -#define CS8_SW5 SW5_CS8 -#define CS9_SW5 SW5_CS9 -#define CS10_SW5 SW5_CS10 -#define CS11_SW5 SW5_CS11 -#define CS12_SW5 SW5_CS12 -#define CS13_SW5 SW5_CS13 -#define CS14_SW5 SW5_CS14 -#define CS15_SW5 SW5_CS15 -#define CS16_SW5 SW5_CS16 -#define CS17_SW5 SW5_CS17 -#define CS18_SW5 SW5_CS18 - -#define CS1_SW6 SW6_CS1 -#define CS2_SW6 SW6_CS2 -#define CS3_SW6 SW6_CS3 -#define CS4_SW6 SW6_CS4 -#define CS5_SW6 SW6_CS5 -#define CS6_SW6 SW6_CS6 -#define CS7_SW6 SW6_CS7 -#define CS8_SW6 SW6_CS8 -#define CS9_SW6 SW6_CS9 -#define CS10_SW6 SW6_CS10 -#define CS11_SW6 SW6_CS11 -#define CS12_SW6 SW6_CS12 -#define CS13_SW6 SW6_CS13 -#define CS14_SW6 SW6_CS14 -#define CS15_SW6 SW6_CS15 -#define CS16_SW6 SW6_CS16 -#define CS17_SW6 SW6_CS17 -#define CS18_SW6 SW6_CS18 - -#define CS1_SW7 SW7_CS1 -#define CS2_SW7 SW7_CS2 -#define CS3_SW7 SW7_CS3 -#define CS4_SW7 SW7_CS4 -#define CS5_SW7 SW7_CS5 -#define CS6_SW7 SW7_CS6 -#define CS7_SW7 SW7_CS7 -#define CS8_SW7 SW7_CS8 -#define CS9_SW7 SW7_CS9 -#define CS10_SW7 SW7_CS10 -#define CS11_SW7 SW7_CS11 -#define CS12_SW7 SW7_CS12 -#define CS13_SW7 SW7_CS13 -#define CS14_SW7 SW7_CS14 -#define CS15_SW7 SW7_CS15 -#define CS16_SW7 SW7_CS16 -#define CS17_SW7 SW7_CS17 -#define CS18_SW7 SW7_CS18 - -#define CS1_SW8 SW8_CS1 -#define CS2_SW8 SW8_CS2 -#define CS3_SW8 SW8_CS3 -#define CS4_SW8 SW8_CS4 -#define CS5_SW8 SW8_CS5 -#define CS6_SW8 SW8_CS6 -#define CS7_SW8 SW8_CS7 -#define CS8_SW8 SW8_CS8 -#define CS9_SW8 SW8_CS9 -#define CS10_SW8 SW8_CS10 -#define CS11_SW8 SW8_CS11 -#define CS12_SW8 SW8_CS12 -#define CS13_SW8 SW8_CS13 -#define CS14_SW8 SW8_CS14 -#define CS15_SW8 SW8_CS15 -#define CS16_SW8 SW8_CS16 -#define CS17_SW8 SW8_CS17 -#define CS18_SW8 SW8_CS18 - -#define CS1_SW9 SW9_CS1 -#define CS2_SW9 SW9_CS2 -#define CS3_SW9 SW9_CS3 -#define CS4_SW9 SW9_CS4 -#define CS5_SW9 SW9_CS5 -#define CS6_SW9 SW9_CS6 -#define CS7_SW9 SW9_CS7 -#define CS8_SW9 SW9_CS8 -#define CS9_SW9 SW9_CS9 -#define CS10_SW9 SW9_CS10 -#define CS11_SW9 SW9_CS11 -#define CS12_SW9 SW9_CS12 -#define CS13_SW9 SW9_CS13 -#define CS14_SW9 SW9_CS14 -#define CS15_SW9 SW9_CS15 -#define CS16_SW9 SW9_CS16 -#define CS17_SW9 SW9_CS17 -#define CS18_SW9 SW9_CS18 - -#define CS1_SW10 SW10_CS1 -#define CS2_SW10 SW10_CS2 -#define CS3_SW10 SW10_CS3 -#define CS4_SW10 SW10_CS4 -#define CS5_SW10 SW10_CS5 -#define CS6_SW10 SW10_CS6 -#define CS7_SW10 SW10_CS7 -#define CS8_SW10 SW10_CS8 -#define CS9_SW10 SW10_CS9 -#define CS10_SW10 SW10_CS10 -#define CS11_SW10 SW10_CS11 -#define CS12_SW10 SW10_CS12 -#define CS13_SW10 SW10_CS13 -#define CS14_SW10 SW10_CS14 -#define CS15_SW10 SW10_CS15 -#define CS16_SW10 SW10_CS16 -#define CS17_SW10 SW10_CS17 -#define CS18_SW10 SW10_CS18 - -#define CS1_SW11 SW11_CS1 -#define CS2_SW11 SW11_CS2 -#define CS3_SW11 SW11_CS3 -#define CS4_SW11 SW11_CS4 -#define CS5_SW11 SW11_CS5 -#define CS6_SW11 SW11_CS6 -#define CS7_SW11 SW11_CS7 -#define CS8_SW11 SW11_CS8 -#define CS9_SW11 SW11_CS9 -#define CS10_SW11 SW11_CS10 -#define CS11_SW11 SW11_CS11 -#define CS12_SW11 SW11_CS12 -#define CS13_SW11 SW11_CS13 -#define CS14_SW11 SW11_CS14 -#define CS15_SW11 SW11_CS15 -#define CS16_SW11 SW11_CS16 -#define CS17_SW11 SW11_CS17 -#define CS18_SW11 SW11_CS18 diff --git a/drivers/led/snled27351-mono.h b/drivers/led/snled27351-mono.h index 43d39934cb3..b88ef25f764 100644 --- a/drivers/led/snled27351-mono.h +++ b/drivers/led/snled27351-mono.h @@ -21,37 +21,6 @@ #include "progmem.h" #include "util.h" -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef CKLED2001_TIMEOUT -# define SNLED27351_I2C_TIMEOUT CKLED2001_TIMEOUT -#endif -#ifdef CKLED2001_PERSISTENCE -# define SNLED27351_I2C_PERSISTENCE CKLED2001_PERSISTENCE -#endif -#ifdef PHASE_CHANNEL -# define SNLED27351_PHASE_CHANNEL PHASE_CHANNEL -#endif -#ifdef CKLED2001_CURRENT_TUNE -# define SNLED27351_CURRENT_TUNE CKLED2001_CURRENT_TUNE -#endif - -#define MSKPHASE_12CHANNEL SNLED27351_SCAN_PHASE_12_CHANNEL -#define MSKPHASE_11CHANNEL SNLED27351_SCAN_PHASE_11_CHANNEL -#define MSKPHASE_10CHANNEL SNLED27351_SCAN_PHASE_10_CHANNEL -#define MSKPHASE_9CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL -#define MSKPHASE_8CHANNEL SNLED27351_SCAN_PHASE_8_CHANNEL -#define MSKPHASE_7CHANNEL SNLED27351_SCAN_PHASE_7_CHANNEL -#define MSKPHASE_6CHANNEL SNLED27351_SCAN_PHASE_6_CHANNEL -#define MSKPHASE_5CHANNEL SNLED27351_SCAN_PHASE_5_CHANNEL -#define MSKPHASE_4CHANNEL SNLED27351_SCAN_PHASE_4_CHANNEL -#define MSKPHASE_3CHANNEL SNLED27351_SCAN_PHASE_3_CHANNEL -#define MSKPHASE_2CHANNEL SNLED27351_SCAN_PHASE_2_CHANNEL -#define MSKPHASE_1CHANNEL SNLED27351_SCAN_PHASE_1_CHANNEL - -#define ckled2001_led snled27351_led_t -#define g_ckled2001_leds g_snled27351_leds -// ======== - #define SNLED27351_REG_COMMAND 0xFD #define SNLED27351_COMMAND_LED_CONTROL 0x00 #define SNLED27351_COMMAND_PWM 0x01 @@ -378,209 +347,3 @@ void snled27351_sw_shutdown(uint8_t index); #define CB12_CA14 0xBD #define CB12_CA15 0xBE #define CB12_CA16 0xBF - -// DEPRECATED - DO NOT USE - -#define A_1 CB1_CA1 -#define A_2 CB1_CA2 -#define A_3 CB1_CA3 -#define A_4 CB1_CA4 -#define A_5 CB1_CA5 -#define A_6 CB1_CA6 -#define A_7 CB1_CA7 -#define A_8 CB1_CA8 -#define A_9 CB1_CA9 -#define A_10 CB1_CA10 -#define A_11 CB1_CA11 -#define A_12 CB1_CA12 -#define A_13 CB1_CA13 -#define A_14 CB1_CA14 -#define A_15 CB1_CA15 -#define A_16 CB1_CA16 - -#define B_1 CB2_CA1 -#define B_2 CB2_CA2 -#define B_3 CB2_CA3 -#define B_4 CB2_CA4 -#define B_5 CB2_CA5 -#define B_6 CB2_CA6 -#define B_7 CB2_CA7 -#define B_8 CB2_CA8 -#define B_9 CB2_CA9 -#define B_10 CB2_CA10 -#define B_11 CB2_CA11 -#define B_12 CB2_CA12 -#define B_13 CB2_CA13 -#define B_14 CB2_CA14 -#define B_15 CB2_CA15 -#define B_16 CB2_CA16 - -#define C_1 CB3_CA1 -#define C_2 CB3_CA2 -#define C_3 CB3_CA3 -#define C_4 CB3_CA4 -#define C_5 CB3_CA5 -#define C_6 CB3_CA6 -#define C_7 CB3_CA7 -#define C_8 CB3_CA8 -#define C_9 CB3_CA9 -#define C_10 CB3_CA10 -#define C_11 CB3_CA11 -#define C_12 CB3_CA12 -#define C_13 CB3_CA13 -#define C_14 CB3_CA14 -#define C_15 CB3_CA15 -#define C_16 CB3_CA16 - -#define D_1 CB4_CA1 -#define D_2 CB4_CA2 -#define D_3 CB4_CA3 -#define D_4 CB4_CA4 -#define D_5 CB4_CA5 -#define D_6 CB4_CA6 -#define D_7 CB4_CA7 -#define D_8 CB4_CA8 -#define D_9 CB4_CA9 -#define D_10 CB4_CA10 -#define D_11 CB4_CA11 -#define D_12 CB4_CA12 -#define D_13 CB4_CA13 -#define D_14 CB4_CA14 -#define D_15 CB4_CA15 -#define D_16 CB4_CA16 - -#define E_1 CB5_CA1 -#define E_2 CB5_CA2 -#define E_3 CB5_CA3 -#define E_4 CB5_CA4 -#define E_5 CB5_CA5 -#define E_6 CB5_CA6 -#define E_7 CB5_CA7 -#define E_8 CB5_CA8 -#define E_9 CB5_CA9 -#define E_10 CB5_CA10 -#define E_11 CB5_CA11 -#define E_12 CB5_CA12 -#define E_13 CB5_CA13 -#define E_14 CB5_CA14 -#define E_15 CB5_CA15 -#define E_16 CB5_CA16 - -#define F_1 CB6_CA1 -#define F_2 CB6_CA2 -#define F_3 CB6_CA3 -#define F_4 CB6_CA4 -#define F_5 CB6_CA5 -#define F_6 CB6_CA6 -#define F_7 CB6_CA7 -#define F_8 CB6_CA8 -#define F_9 CB6_CA9 -#define F_10 CB6_CA10 -#define F_11 CB6_CA11 -#define F_12 CB6_CA12 -#define F_13 CB6_CA13 -#define F_14 CB6_CA14 -#define F_15 CB6_CA15 -#define F_16 CB6_CA16 - -#define G_1 CB7_CA1 -#define G_2 CB7_CA2 -#define G_3 CB7_CA3 -#define G_4 CB7_CA4 -#define G_5 CB7_CA5 -#define G_6 CB7_CA6 -#define G_7 CB7_CA7 -#define G_8 CB7_CA8 -#define G_9 CB7_CA9 -#define G_10 CB7_CA10 -#define G_11 CB7_CA11 -#define G_12 CB7_CA12 -#define G_13 CB7_CA13 -#define G_14 CB7_CA14 -#define G_15 CB7_CA15 -#define G_16 CB7_CA16 - -#define H_1 CB8_CA1 -#define H_2 CB8_CA2 -#define H_3 CB8_CA3 -#define H_4 CB8_CA4 -#define H_5 CB8_CA5 -#define H_6 CB8_CA6 -#define H_7 CB8_CA7 -#define H_8 CB8_CA8 -#define H_9 CB8_CA9 -#define H_10 CB8_CA10 -#define H_11 CB8_CA11 -#define H_12 CB8_CA12 -#define H_13 CB8_CA13 -#define H_14 CB8_CA14 -#define H_15 CB8_CA15 -#define H_16 CB8_CA16 - -#define I_1 CB9_CA1 -#define I_2 CB9_CA2 -#define I_3 CB9_CA3 -#define I_4 CB9_CA4 -#define I_5 CB9_CA5 -#define I_6 CB9_CA6 -#define I_7 CB9_CA7 -#define I_8 CB9_CA8 -#define I_9 CB9_CA9 -#define I_10 CB9_CA10 -#define I_11 CB9_CA11 -#define I_12 CB9_CA12 -#define I_13 CB9_CA13 -#define I_14 CB9_CA14 -#define I_15 CB9_CA15 -#define I_16 CB9_CA16 - -#define J_1 CB10_CA1 -#define J_2 CB10_CA2 -#define J_3 CB10_CA3 -#define J_4 CB10_CA4 -#define J_5 CB10_CA5 -#define J_6 CB10_CA6 -#define J_7 CB10_CA7 -#define J_8 CB10_CA8 -#define J_9 CB10_CA9 -#define J_10 CB10_CA10 -#define J_11 CB10_CA11 -#define J_12 CB10_CA12 -#define J_13 CB10_CA13 -#define J_14 CB10_CA14 -#define J_15 CB10_CA15 -#define J_16 CB10_CA16 - -#define K_1 CB11_CA1 -#define K_2 CB11_CA2 -#define K_3 CB11_CA3 -#define K_4 CB11_CA4 -#define K_5 CB11_CA5 -#define K_6 CB11_CA6 -#define K_7 CB11_CA7 -#define K_8 CB11_CA8 -#define K_9 CB11_CA9 -#define K_10 CB11_CA10 -#define K_11 CB11_CA11 -#define K_12 CB11_CA12 -#define K_13 CB11_CA13 -#define K_14 CB11_CA14 -#define K_15 CB11_CA15 -#define K_16 CB11_CA16 - -#define L_1 CB12_CA1 -#define L_2 CB12_CA2 -#define L_3 CB12_CA3 -#define L_4 CB12_CA4 -#define L_5 CB12_CA5 -#define L_6 CB12_CA6 -#define L_7 CB12_CA7 -#define L_8 CB12_CA8 -#define L_9 CB12_CA9 -#define L_10 CB12_CA10 -#define L_11 CB12_CA11 -#define L_12 CB12_CA12 -#define L_13 CB12_CA13 -#define L_14 CB12_CA14 -#define L_15 CB12_CA15 -#define L_16 CB12_CA16 diff --git a/drivers/led/snled27351.h b/drivers/led/snled27351.h index d902744d148..1b7f05c285f 100644 --- a/drivers/led/snled27351.h +++ b/drivers/led/snled27351.h @@ -21,49 +21,6 @@ #include "progmem.h" #include "util.h" -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef DRIVER_ADDR_1 -# define SNLED27351_I2C_ADDRESS_1 DRIVER_ADDR_1 -#endif -#ifdef DRIVER_ADDR_2 -# define SNLED27351_I2C_ADDRESS_2 DRIVER_ADDR_2 -#endif -#ifdef DRIVER_ADDR_3 -# define SNLED27351_I2C_ADDRESS_3 DRIVER_ADDR_3 -#endif -#ifdef DRIVER_ADDR_4 -# define SNLED27351_I2C_ADDRESS_4 DRIVER_ADDR_4 -#endif -#ifdef CKLED2001_TIMEOUT -# define SNLED27351_I2C_TIMEOUT CKLED2001_TIMEOUT -#endif -#ifdef CKLED2001_PERSISTENCE -# define SNLED27351_I2C_PERSISTENCE CKLED2001_PERSISTENCE -#endif -#ifdef PHASE_CHANNEL -# define SNLED27351_PHASE_CHANNEL PHASE_CHANNEL -#endif -#ifdef CKLED2001_CURRENT_TUNE -# define SNLED27351_CURRENT_TUNE CKLED2001_CURRENT_TUNE -#endif - -#define MSKPHASE_12CHANNEL SNLED27351_SCAN_PHASE_12_CHANNEL -#define MSKPHASE_11CHANNEL SNLED27351_SCAN_PHASE_11_CHANNEL -#define MSKPHASE_10CHANNEL SNLED27351_SCAN_PHASE_10_CHANNEL -#define MSKPHASE_9CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL -#define MSKPHASE_8CHANNEL SNLED27351_SCAN_PHASE_8_CHANNEL -#define MSKPHASE_7CHANNEL SNLED27351_SCAN_PHASE_7_CHANNEL -#define MSKPHASE_6CHANNEL SNLED27351_SCAN_PHASE_6_CHANNEL -#define MSKPHASE_5CHANNEL SNLED27351_SCAN_PHASE_5_CHANNEL -#define MSKPHASE_4CHANNEL SNLED27351_SCAN_PHASE_4_CHANNEL -#define MSKPHASE_3CHANNEL SNLED27351_SCAN_PHASE_3_CHANNEL -#define MSKPHASE_2CHANNEL SNLED27351_SCAN_PHASE_2_CHANNEL -#define MSKPHASE_1CHANNEL SNLED27351_SCAN_PHASE_1_CHANNEL - -#define ckled2001_led snled27351_led_t -#define g_ckled2001_leds g_snled27351_leds -// ======== - #define SNLED27351_REG_COMMAND 0xFD #define SNLED27351_COMMAND_LED_CONTROL 0x00 #define SNLED27351_COMMAND_PWM 0x01 @@ -392,209 +349,3 @@ void snled27351_sw_shutdown(uint8_t index); #define CB12_CA14 0xBD #define CB12_CA15 0xBE #define CB12_CA16 0xBF - -// DEPRECATED - DO NOT USE - -#define A_1 CB1_CA1 -#define A_2 CB1_CA2 -#define A_3 CB1_CA3 -#define A_4 CB1_CA4 -#define A_5 CB1_CA5 -#define A_6 CB1_CA6 -#define A_7 CB1_CA7 -#define A_8 CB1_CA8 -#define A_9 CB1_CA9 -#define A_10 CB1_CA10 -#define A_11 CB1_CA11 -#define A_12 CB1_CA12 -#define A_13 CB1_CA13 -#define A_14 CB1_CA14 -#define A_15 CB1_CA15 -#define A_16 CB1_CA16 - -#define B_1 CB2_CA1 -#define B_2 CB2_CA2 -#define B_3 CB2_CA3 -#define B_4 CB2_CA4 -#define B_5 CB2_CA5 -#define B_6 CB2_CA6 -#define B_7 CB2_CA7 -#define B_8 CB2_CA8 -#define B_9 CB2_CA9 -#define B_10 CB2_CA10 -#define B_11 CB2_CA11 -#define B_12 CB2_CA12 -#define B_13 CB2_CA13 -#define B_14 CB2_CA14 -#define B_15 CB2_CA15 -#define B_16 CB2_CA16 - -#define C_1 CB3_CA1 -#define C_2 CB3_CA2 -#define C_3 CB3_CA3 -#define C_4 CB3_CA4 -#define C_5 CB3_CA5 -#define C_6 CB3_CA6 -#define C_7 CB3_CA7 -#define C_8 CB3_CA8 -#define C_9 CB3_CA9 -#define C_10 CB3_CA10 -#define C_11 CB3_CA11 -#define C_12 CB3_CA12 -#define C_13 CB3_CA13 -#define C_14 CB3_CA14 -#define C_15 CB3_CA15 -#define C_16 CB3_CA16 - -#define D_1 CB4_CA1 -#define D_2 CB4_CA2 -#define D_3 CB4_CA3 -#define D_4 CB4_CA4 -#define D_5 CB4_CA5 -#define D_6 CB4_CA6 -#define D_7 CB4_CA7 -#define D_8 CB4_CA8 -#define D_9 CB4_CA9 -#define D_10 CB4_CA10 -#define D_11 CB4_CA11 -#define D_12 CB4_CA12 -#define D_13 CB4_CA13 -#define D_14 CB4_CA14 -#define D_15 CB4_CA15 -#define D_16 CB4_CA16 - -#define E_1 CB5_CA1 -#define E_2 CB5_CA2 -#define E_3 CB5_CA3 -#define E_4 CB5_CA4 -#define E_5 CB5_CA5 -#define E_6 CB5_CA6 -#define E_7 CB5_CA7 -#define E_8 CB5_CA8 -#define E_9 CB5_CA9 -#define E_10 CB5_CA10 -#define E_11 CB5_CA11 -#define E_12 CB5_CA12 -#define E_13 CB5_CA13 -#define E_14 CB5_CA14 -#define E_15 CB5_CA15 -#define E_16 CB5_CA16 - -#define F_1 CB6_CA1 -#define F_2 CB6_CA2 -#define F_3 CB6_CA3 -#define F_4 CB6_CA4 -#define F_5 CB6_CA5 -#define F_6 CB6_CA6 -#define F_7 CB6_CA7 -#define F_8 CB6_CA8 -#define F_9 CB6_CA9 -#define F_10 CB6_CA10 -#define F_11 CB6_CA11 -#define F_12 CB6_CA12 -#define F_13 CB6_CA13 -#define F_14 CB6_CA14 -#define F_15 CB6_CA15 -#define F_16 CB6_CA16 - -#define G_1 CB7_CA1 -#define G_2 CB7_CA2 -#define G_3 CB7_CA3 -#define G_4 CB7_CA4 -#define G_5 CB7_CA5 -#define G_6 CB7_CA6 -#define G_7 CB7_CA7 -#define G_8 CB7_CA8 -#define G_9 CB7_CA9 -#define G_10 CB7_CA10 -#define G_11 CB7_CA11 -#define G_12 CB7_CA12 -#define G_13 CB7_CA13 -#define G_14 CB7_CA14 -#define G_15 CB7_CA15 -#define G_16 CB7_CA16 - -#define H_1 CB8_CA1 -#define H_2 CB8_CA2 -#define H_3 CB8_CA3 -#define H_4 CB8_CA4 -#define H_5 CB8_CA5 -#define H_6 CB8_CA6 -#define H_7 CB8_CA7 -#define H_8 CB8_CA8 -#define H_9 CB8_CA9 -#define H_10 CB8_CA10 -#define H_11 CB8_CA11 -#define H_12 CB8_CA12 -#define H_13 CB8_CA13 -#define H_14 CB8_CA14 -#define H_15 CB8_CA15 -#define H_16 CB8_CA16 - -#define I_1 CB9_CA1 -#define I_2 CB9_CA2 -#define I_3 CB9_CA3 -#define I_4 CB9_CA4 -#define I_5 CB9_CA5 -#define I_6 CB9_CA6 -#define I_7 CB9_CA7 -#define I_8 CB9_CA8 -#define I_9 CB9_CA9 -#define I_10 CB9_CA10 -#define I_11 CB9_CA11 -#define I_12 CB9_CA12 -#define I_13 CB9_CA13 -#define I_14 CB9_CA14 -#define I_15 CB9_CA15 -#define I_16 CB9_CA16 - -#define J_1 CB10_CA1 -#define J_2 CB10_CA2 -#define J_3 CB10_CA3 -#define J_4 CB10_CA4 -#define J_5 CB10_CA5 -#define J_6 CB10_CA6 -#define J_7 CB10_CA7 -#define J_8 CB10_CA8 -#define J_9 CB10_CA9 -#define J_10 CB10_CA10 -#define J_11 CB10_CA11 -#define J_12 CB10_CA12 -#define J_13 CB10_CA13 -#define J_14 CB10_CA14 -#define J_15 CB10_CA15 -#define J_16 CB10_CA16 - -#define K_1 CB11_CA1 -#define K_2 CB11_CA2 -#define K_3 CB11_CA3 -#define K_4 CB11_CA4 -#define K_5 CB11_CA5 -#define K_6 CB11_CA6 -#define K_7 CB11_CA7 -#define K_8 CB11_CA8 -#define K_9 CB11_CA9 -#define K_10 CB11_CA10 -#define K_11 CB11_CA11 -#define K_12 CB11_CA12 -#define K_13 CB11_CA13 -#define K_14 CB11_CA14 -#define K_15 CB11_CA15 -#define K_16 CB11_CA16 - -#define L_1 CB12_CA1 -#define L_2 CB12_CA2 -#define L_3 CB12_CA3 -#define L_4 CB12_CA4 -#define L_5 CB12_CA5 -#define L_6 CB12_CA6 -#define L_7 CB12_CA7 -#define L_8 CB12_CA8 -#define L_9 CB12_CA9 -#define L_10 CB12_CA10 -#define L_11 CB12_CA11 -#define L_12 CB12_CA12 -#define L_13 CB12_CA13 -#define L_14 CB12_CA14 -#define L_15 CB12_CA15 -#define L_16 CB12_CA16 diff --git a/keyboards/zsa/voyager/voyager.c b/keyboards/zsa/voyager/voyager.c index 6d4f6c5f26a..b7ca8f748fd 100644 --- a/keyboards/zsa/voyager/voyager.c +++ b/keyboards/zsa/voyager/voyager.c @@ -121,7 +121,7 @@ layer_state_t layer_state_set_kb(layer_state_t state) { #ifdef RGB_MATRIX_ENABLE // clang-format off -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location From a6a0dc803908a426c331b698acab663a900c2b10 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Tue, 21 Jan 2025 08:24:39 +1100 Subject: [PATCH 186/365] Consolidate send_string implementations. (#24817) --- builddefs/common_features.mk | 4 ++ quantum/dynamic_keymap.c | 66 +++++------------------ quantum/send_string/send_string.c | 88 ++++++++++++++----------------- quantum/send_string/send_string.h | 8 +++ 4 files changed, 64 insertions(+), 102 deletions(-) diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index bb272099a67..989048d7174 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -635,6 +635,10 @@ ifeq ($(strip $(VIA_ENABLE)), yes) TRI_LAYER_ENABLE := yes endif +ifeq ($(strip $(DYNAMIC_KEYMAP_ENABLE)), yes) + SEND_STRING_ENABLE := yes +endif + VALID_CUSTOM_MATRIX_TYPES:= yes lite no CUSTOM_MATRIX ?= no diff --git a/quantum/dynamic_keymap.c b/quantum/dynamic_keymap.c index 3c22bbd4457..beb7f9d18f2 100644 --- a/quantum/dynamic_keymap.c +++ b/quantum/dynamic_keymap.c @@ -245,6 +245,17 @@ void dynamic_keymap_macro_set_buffer(uint16_t offset, uint16_t size, uint8_t *da } } +typedef struct send_string_eeprom_state_t { + const uint8_t *ptr; +} send_string_eeprom_state_t; + +char send_string_get_next_eeprom(void *arg) { + send_string_eeprom_state_t *state = (send_string_eeprom_state_t *)arg; + char ret = eeprom_read_byte(state->ptr); + state->ptr++; + return ret; +} + void dynamic_keymap_macro_reset(void) { void *p = (void *)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR); void *end = (void *)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE); @@ -284,57 +295,6 @@ void dynamic_keymap_macro_send(uint8_t id) { ++p; } - // Send the macro string by making a temporary string. - char data[8] = {0}; - // We already checked there was a null at the end of - // the buffer, so this cannot go past the end - while (1) { - data[0] = eeprom_read_byte(p++); - data[1] = 0; - // Stop at the null terminator of this macro string - if (data[0] == 0) { - break; - } - if (data[0] == SS_QMK_PREFIX) { - // Get the code - data[1] = eeprom_read_byte(p++); - // Unexpected null, abort. - if (data[1] == 0) { - return; - } - if (data[1] == SS_TAP_CODE || data[1] == SS_DOWN_CODE || data[1] == SS_UP_CODE) { - // Get the keycode - data[2] = eeprom_read_byte(p++); - // Unexpected null, abort. - if (data[2] == 0) { - return; - } - // Null terminate - data[3] = 0; - } else if (data[1] == SS_DELAY_CODE) { - // Get the number and '|' - // At most this is 4 digits plus '|' - uint8_t i = 2; - while (1) { - data[i] = eeprom_read_byte(p++); - // Unexpected null, abort - if (data[i] == 0) { - return; - } - // Found '|', send it - if (data[i] == '|') { - data[i + 1] = 0; - break; - } - // If haven't found '|' by i==6 then - // number too big, abort - if (i == 6) { - return; - } - ++i; - } - } - } - send_string_with_delay(data, DYNAMIC_KEYMAP_MACRO_DELAY); - } + send_string_eeprom_state_t state = {p}; + send_string_with_delay_impl(send_string_get_next_eeprom, &state, DYNAMIC_KEYMAP_MACRO_DELAY); } diff --git a/quantum/send_string/send_string.c b/quantum/send_string/send_string.c index 44c5ec5ab99..602f24dabe3 100644 --- a/quantum/send_string/send_string.c +++ b/quantum/send_string/send_string.c @@ -150,48 +150,65 @@ void send_string(const char *string) { send_string_with_delay(string, TAP_CODE_DELAY); } -void send_string_with_delay(const char *string, uint8_t interval) { +void send_string_with_delay_impl(char (*getter)(void *), void *arg, uint8_t interval) { while (1) { - char ascii_code = *string; + char ascii_code = getter(arg); if (!ascii_code) break; if (ascii_code == SS_QMK_PREFIX) { - ascii_code = *(++string); + ascii_code = getter(arg); if (ascii_code == SS_TAP_CODE) { // tap - uint8_t keycode = *(++string); + uint8_t keycode = getter(arg); tap_code(keycode); } else if (ascii_code == SS_DOWN_CODE) { // down - uint8_t keycode = *(++string); + uint8_t keycode = getter(arg); register_code(keycode); } else if (ascii_code == SS_UP_CODE) { // up - uint8_t keycode = *(++string); + uint8_t keycode = getter(arg); unregister_code(keycode); } else if (ascii_code == SS_DELAY_CODE) { // delay - int ms = 0; - uint8_t keycode = *(++string); + int ms = 0; + ascii_code = getter(arg); - while (isdigit(keycode)) { + while (isdigit(ascii_code)) { ms *= 10; - ms += keycode - '0'; - keycode = *(++string); + ms += ascii_code - '0'; + ascii_code = getter(arg); } wait_ms(ms); } wait_ms(interval); + + // if we had a delay that terminated with a null, we're done + if (ascii_code == 0) break; } else { send_char_with_delay(ascii_code, interval); } - - ++string; } } +typedef struct send_string_memory_state_t { + const char *string; +} send_string_memory_state_t; + +char send_string_get_next_ram(void *arg) { + send_string_memory_state_t *state = (send_string_memory_state_t *)arg; + char ret = *state->string; + state->string++; + return ret; +} + +void send_string_with_delay(const char *string, uint8_t interval) { + send_string_memory_state_t state = {string}; + send_string_with_delay_impl(send_string_get_next_ram, &state, interval); +} + void send_char(char ascii_code) { send_char_with_delay(ascii_code, TAP_CODE_DELAY); } @@ -297,42 +314,15 @@ void send_string_P(const char *string) { send_string_with_delay_P(string, TAP_CODE_DELAY); } +char send_string_get_next_progmem(void *arg) { + send_string_memory_state_t *state = (send_string_memory_state_t *)arg; + char ret = pgm_read_byte(state->string); + state->string++; + return ret; +} + void send_string_with_delay_P(const char *string, uint8_t interval) { - while (1) { - char ascii_code = pgm_read_byte(string); - if (!ascii_code) break; - if (ascii_code == SS_QMK_PREFIX) { - ascii_code = pgm_read_byte(++string); - - if (ascii_code == SS_TAP_CODE) { - // tap - uint8_t keycode = pgm_read_byte(++string); - tap_code(keycode); - } else if (ascii_code == SS_DOWN_CODE) { - // down - uint8_t keycode = pgm_read_byte(++string); - register_code(keycode); - } else if (ascii_code == SS_UP_CODE) { - // up - uint8_t keycode = pgm_read_byte(++string); - unregister_code(keycode); - } else if (ascii_code == SS_DELAY_CODE) { - // delay - int ms = 0; - uint8_t keycode = pgm_read_byte(++string); - - while (isdigit(keycode)) { - ms *= 10; - ms += keycode - '0'; - keycode = pgm_read_byte(++string); - } - wait_ms(ms); - } - } else { - send_char_with_delay(ascii_code, interval); - } - - ++string; - } + send_string_memory_state_t state = {string}; + send_string_with_delay_impl(send_string_get_next_progmem, &state, interval); } #endif diff --git a/quantum/send_string/send_string.h b/quantum/send_string/send_string.h index f727ec507da..4f91252075d 100644 --- a/quantum/send_string/send_string.h +++ b/quantum/send_string/send_string.h @@ -161,4 +161,12 @@ void send_string_with_delay_P(const char *string, uint8_t interval); */ #define SEND_STRING_DELAY(string, interval) send_string_with_delay_P(PSTR(string), interval) +/** + * \brief Actual implementation function that iterates and sends the string returned by the getter function. + * + * The getter assumes that the next byte is available to be read, and returns it. `arg` is passed in and can be whatever + * makes most sense for the getter -- each invocation of `getter` must advance its position in the source. + */ +void send_string_with_delay_impl(char (*getter)(void *), void *arg, uint8_t interval); + /** \} */ From a573931fef26427e761456698de83e58458df17c Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Tue, 21 Jan 2025 08:32:52 +1100 Subject: [PATCH 187/365] License violations updates. (#24831) --- docs/license_violations.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/license_violations.md b/docs/license_violations.md index b21bb286ac5..f899deb07c3 100644 --- a/docs/license_violations.md +++ b/docs/license_violations.md @@ -20,13 +20,13 @@ If you own a board from one of the following vendors already, consider asking th | Vendor | Reason | |------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | BBB Keyboard | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | -| Chillkey | | | CIDOO | Selling wired boards based on QMK without sources, just `via.json` provided. | | Darmoshark | Selling wired boards based on QMK without sources, just `via.json` provided. | | Epomaker | Lots of historical keyboards with `via.json` but no corresponding sources. Wireless code for a small handful provided, pending core cleanup for QMK upstreaming. Most other boards have source nowhere to be seen. | | Ergokbd (IFKB) | At least their crkbd clone ships with QMK+Vial, seemingly refuses to disclose sources despite multiple customers requesting them. | | iLovBee | Official 30-day copyright source code request issued Sep 11 2024 due to deception on PR, no response received. Ambiguity on PRs -- marketing says wireless, PR author said wired-only, then included wireless code anyway. Seemingly intentionally deceptive. | | KiiBOOM | Seems to use the same OEM as Epomaker, same problems. | +| kprepublic | Makes no attempt to release source code, all boards in QMK are reverse-engineered, created, and supported by the community. New board variants magically appear without telling customers they're incompatible with existing QMK versions, in some cases bricking boards or requiring ISP flashing. | | Luminkey | Selling tri-mode boards based on QMK without sources, just `via.json` provided. | | Meletrix | Selling tri-mode boards based on QMK without sources, just `via.json` provided. | | mmd / Smartmmd / i-game.tech | Ambiguity on PRs -- marketing says wireless, PR author said wired-only, then included wireless code anyway. Seemingly intentionally deceptive. | @@ -36,13 +36,13 @@ If you own a board from one of the following vendors already, consider asking th | Redragon | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | | Royal Kludge | PRs for fake boards in order to attain VIA compatibility identified. Lots of other keyboards with `via.json` but no corresponding sources, attempted upstreaming crippled firmware without wireless. Wireless code for some provided, pending core cleanup for QMK upstreaming. PRs including different manufacturer names as well. | | Shenzhen Hangsheng | PR submissions with crippled firmware, debating with maintainers about wireless despite marketing material clearly stating tri-mode. | -| Shortcut Studio | Selling tri-mode boards based on QMK without sources, just `via.json` provided. | | Tacworks | Selling tri-mode boards based on QMK, crippled firmware already merged into QMK without wireless without QMK team realising. | | TKD / Vertex | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | | WOBKEY | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | | Weikav | Selling tri-mode boards based on QMK without sources, just `via.json` provided. | | Womier | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | | Wuque Studio | Selling wired and tri-mode boards based on QMK without sources, just `via.json` provided. | +| XVX | Ambiguity on PRs -- marketing says wireless, PR author said wired-only. Seemingly intentionally deceptive. | | Zuoya | Selling tri-mode boards based on QMK without sources, just `via.json` provided. | ::: danger Violations From 7431401116c744e4e3d8e92e5047c9dc3baebb9f Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Tue, 21 Jan 2025 08:54:41 +1100 Subject: [PATCH 188/365] Fix up CI with `DEFAULT_FOLDER`. (#24842) --- keyboards/rgbkb/pan/rules.mk | 2 -- 1 file changed, 2 deletions(-) diff --git a/keyboards/rgbkb/pan/rules.mk b/keyboards/rgbkb/pan/rules.mk index b6f1d46a653..9a696492896 100644 --- a/keyboards/rgbkb/pan/rules.mk +++ b/keyboards/rgbkb/pan/rules.mk @@ -1,3 +1 @@ WS2812_DRIVER_REQUIRED = yes - -DEFAULT_FOLDER = rgbkb/pan/rev1 From 1a30e2b32b5255ed32d156abe26a897fa86db8a4 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 20 Jan 2025 22:26:25 +0000 Subject: [PATCH 189/365] Migrate some DEFAULT_FOLDER to keyboard_aliases.hjson (#24835) --- data/mappings/keyboard_aliases.hjson | 547 ++++++++++++++++++ keyboards/0_sixty/rules.mk | 1 - keyboards/0xcb/splaytoraid/rules.mk | 1 - keyboards/1upkeyboards/pi40/rules.mk | 1 - keyboards/1upkeyboards/pi50/rules.mk | 1 - keyboards/1upkeyboards/sweet16/rules.mk | 1 - keyboards/40percentclub/i75/rules.mk | 1 - keyboards/40percentclub/polyandry/rules.mk | 1 - keyboards/8pack/rules.mk | 1 - keyboards/adkb96/rules.mk | 1 - keyboards/adm42/rules.mk | 1 - keyboards/aeboards/satellite/rules.mk | 1 - keyboards/atreus/rules.mk | 1 - keyboards/atreyu/rules.mk | 1 - keyboards/binepad/bn009/rules.mk | 3 - keyboards/binepad/bnr1/rules.mk | 1 - keyboards/boston_meetup/rules.mk | 1 - keyboards/bpiphany/frosty_flake/rules.mk | 1 - keyboards/buzzard/rules.mk | 1 - keyboards/clickety_split/leeloo/rules.mk | 2 - keyboards/crkbd/rules.mk | 1 - keyboards/dailycraft/bat43/rules.mk | 1 - keyboards/dailycraft/claw44/rules.mk | 1 - keyboards/dailycraft/sandbox/rules.mk | 1 - keyboards/dailycraft/wings42/rules.mk | 1 - keyboards/delikeeb/vanana/rules.mk | 1 - keyboards/delikeeb/waaffle/rev3/rules.mk | 1 - keyboards/deltasplit75/rules.mk | 1 - keyboards/duck/octagon/rules.mk | 1 - keyboards/duck/orion/rules.mk | 1 - keyboards/ducky/one2mini/rules.mk | 1 - keyboards/ducky/one2sf/rules.mk | 1 - keyboards/dumbpad/rules.mk | 1 - keyboards/durgod/galaxy/rules.mk | 1 - keyboards/durgod/venus/rules.mk | 1 - keyboards/dztech/tofu/ii/rules.mk | 1 - keyboards/dztech/tofu/jr/rules.mk | 1 - keyboards/eco/rules.mk | 1 - keyboards/ergoslab/rules.mk | 1 - keyboards/ergotravel/rules.mk | 1 - keyboards/evyd13/atom47/rules.mk | 1 - keyboards/fortitude60/rules.mk | 1 - keyboards/fruitykeeb/fruitbar/r1/rules.mk | 1 - keyboards/ghs/jem/rules.mk | 1 - keyboards/hadron/rules.mk | 1 - keyboards/handwired/bento/rules.mk | 1 - .../handwired/dactyl_manuform/6x6/rules.mk | 1 - keyboards/handwired/ms_sculpt_mobile/rules.mk | 1 - keyboards/handwired/onekey/rules.mk | 1 - keyboards/handwired/pill60/rules.mk | 1 - keyboards/handwired/postageboard/rules.mk | 1 - keyboards/handwired/qc60/rules.mk | 1 - keyboards/handwired/sono1/rules.mk | 1 - keyboards/handwired/splittest/rules.mk | 1 - .../handwired/stef9998/split_5x7/rules.mk | 1 - .../symmetric70_proto/promicro/rules.mk | 1 - .../symmetric70_proto/proton_c/rules.mk | 1 - keyboards/handwired/unk/rules.mk | 1 - keyboards/hillside/46/rules.mk | 1 - keyboards/hillside/48/rules.mk | 1 - keyboards/hillside/52/rules.mk | 1 - keyboards/ibnuda/squiggle/rules.mk | 1 - keyboards/idobao/id80/v1/rules.mk | 2 - keyboards/idobao/id80/v3/rules.mk | 2 - keyboards/inett_studio/sq80/rules.mk | 1 - keyboards/jacky_studio/bear_65/rules.mk | 1 - keyboards/jadookb/jkb65/rules.mk | 1 - keyboards/jian/rules.mk | 1 - keyboards/jiran/rules.mk | 1 - keyboards/jorne/rules.mk | 1 - keyboards/junco/rules.mk | 1 - keyboards/kakunpc/business_card/rules.mk | 1 - keyboards/kakunpc/suihankey/rules.mk | 1 - keyboards/kapcave/paladinpad/rules.mk | 1 - keyboards/kapl/rules.mk | 1 - keyboards/kbdfans/d45/rules.mk | 1 - keyboards/kbdfans/kbd75/rules.mk | 1 - keyboards/keebio/bdn9/rules.mk | 1 - keyboards/keebio/convolution/rules.mk | 1 - keyboards/keebio/foldkb/rules.mk | 1 - keyboards/keebio/kbo5000/rules.mk | 1 - keyboards/keebio/levinson/rules.mk | 1 - keyboards/keebio/quefrency/rules.mk | 1 - keyboards/keebio/rorschach/rules.mk | 1 - keyboards/keebio/sinc/rules.mk | 1 - keyboards/keebio/viterbi/rules.mk | 1 - keyboards/keycapsss/kimiko/rules.mk | 1 - keyboards/kin80/rules.mk | 1 - keyboards/kumaokobo/kudox/rules.mk | 1 - keyboards/kumaokobo/kudox_full/rules.mk | 1 - keyboards/kumaokobo/kudox_game/rules.mk | 1 - keyboards/kumaokobo/pico/rules.mk | 1 - keyboards/lazydesigners/dimple/rules.mk | 1 - keyboards/lets_split/rules.mk | 1 - keyboards/lfkeyboards/lfk87/rules.mk | 1 - keyboards/lily58/rules.mk | 1 - keyboards/lime/rules.mk | 1 - keyboards/maple_computing/ivy/rules.mk | 1 - keyboards/maple_computing/launchpad/rules.mk | 1 - keyboards/maple_computing/minidox/rules.mk | 1 - keyboards/mariorion_v25/rules.mk | 1 - keyboards/marksard/rhymestone/rules.mk | 1 - keyboards/marksard/treadstone48/rules.mk | 1 - keyboards/maxipad/rules.mk | 1 - keyboards/mechkeys/mechmini/rules.mk | 1 - keyboards/mechllama/g35/rules.mk | 1 - keyboards/mechlovin/adelais/rules.mk | 1 - .../adelais/standard_led/arm/rev4/rules.mk | 1 - .../adelais/standard_led/arm/rules.mk | 1 - .../adelais/standard_led/avr/rules.mk | 2 - keyboards/mechlovin/infinity87/rev1/rules.mk | 1 - keyboards/mechlovin/infinity87/rules.mk | 1 - keyboards/mechlovin/mechlovin9/rules.mk | 1 - keyboards/mechlovin/olly/jf/rules.mk | 1 - keyboards/mechlovin/zed1800/rules.mk | 1 - .../mechlovin/zed65/no_backlight/rules.mk | 1 - keyboards/mechlovin/zed65/rules.mk | 1 - keyboards/mechwild/bde/rules.mk | 1 - keyboards/mechwild/mokulua/rules.mk | 1 - keyboards/mechwild/obe/f401/rules.mk | 1 - keyboards/mechwild/obe/f411/rules.mk | 1 - keyboards/mechwild/obe/rules.mk | 1 - keyboards/mechwild/waka60/f401/rules.mk | 1 - keyboards/mechwild/waka60/f411/rules.mk | 1 - keyboards/mechwild/waka60/rules.mk | 1 - keyboards/murcielago/rules.mk | 1 - keyboards/nullbitsco/scramble/rules.mk | 1 - keyboards/omkbd/ergodash/rules.mk | 1 - keyboards/omkbd/runner3680/rules.mk | 1 - keyboards/orthodox/rules.mk | 1 - keyboards/peej/rosaline/rules.mk | 1 - keyboards/peej/tripel/rules.mk | 1 - keyboards/peranekofactory/tone/rules.mk | 1 - keyboards/phase_studio/titan65/rules.mk | 1 - keyboards/pica40/rules.mk | 1 - keyboards/pinky/rules.mk | 1 - keyboards/primekb/meridian/rules.mk | 1 - keyboards/primekb/prime_e/rules.mk | 1 - keyboards/program_yoink/rules.mk | 1 - keyboards/projectcain/vault35/rules.mk | 1 - keyboards/qpockets/space_space/rules.mk | 1 - keyboards/qwertyydox/rules.mk | 1 - keyboards/redox/rev1/rules.mk | 1 - keyboards/rgbkb/mun/rules.mk | 1 - keyboards/rgbkb/sol/rules.mk | 1 - keyboards/rgbkb/sol3/rules.mk | 1 - keyboards/rgbkb/zen/rules.mk | 1 - keyboards/rgbkb/zygomorph/rules.mk | 1 - keyboards/rmi_kb/herringbone/rules.mk | 1 - keyboards/rmi_kb/mona/rules.mk | 1 - keyboards/rmi_kb/tkl_ff/rules.mk | 1 - keyboards/rmi_kb/wete/rules.mk | 1 - keyboards/rookiebwoy/late9/rules.mk | 1 - keyboards/rookiebwoy/neopad/rules.mk | 1 - keyboards/rura66/rules.mk | 1 - keyboards/sawnsprojects/okayu/rules.mk | 1 - keyboards/smoll/lefty/rules.mk | 1 - keyboards/sofle/rules.mk | 1 - keyboards/spacetime/rules.mk | 1 - keyboards/splitkb/aurora/corne/rules.mk | 16 - keyboards/splitkb/aurora/helix/rules.mk | 1 - keyboards/splitkb/aurora/lily58/rules.mk | 16 - keyboards/splitkb/aurora/sofle_v2/rules.mk | 1 - keyboards/splitkb/aurora/sweep/rules.mk | 16 - keyboards/splitkb/kyria/rev1/rules.mk | 1 - keyboards/splitkb/kyria/rev2/rules.mk | 1 - keyboards/splitty/rules.mk | 1 - keyboards/studiokestra/galatea/rules.mk | 1 - keyboards/takashiski/hecomi/rules.mk | 1 - keyboards/themadnoodle/noodlepad/rules.mk | 3 - keyboards/tkw/grandiceps/rules.mk | 1 - keyboards/tominabox1/littlefoot_lx/rules.mk | 1 - keyboards/tominabox1/underscore33/rules.mk | 1 - keyboards/trnthsn/e8ghty/rules.mk | 1 - keyboards/trnthsn/s6xty5neor2/rules.mk | 1 - keyboards/tweetydabird/lotus58/rules.mk | 1 - keyboards/unison/rules.mk | 1 - keyboards/uzu42/rules.mk | 1 - keyboards/vitamins_included/rules.mk | 1 - keyboards/yanghu/unicorne/rules.mk | 1 - keyboards/yosino58/rules.mk | 1 - keyboards/yushakobo/navpad/10/rules.mk | 1 - keyboards/yynmt/acperience12/rules.mk | 1 - 183 files changed, 547 insertions(+), 235 deletions(-) delete mode 100644 keyboards/0_sixty/rules.mk delete mode 100644 keyboards/0xcb/splaytoraid/rules.mk delete mode 100644 keyboards/1upkeyboards/pi40/rules.mk delete mode 100644 keyboards/1upkeyboards/pi50/rules.mk delete mode 100644 keyboards/1upkeyboards/sweet16/rules.mk delete mode 100644 keyboards/40percentclub/i75/rules.mk delete mode 100644 keyboards/40percentclub/polyandry/rules.mk delete mode 100644 keyboards/8pack/rules.mk delete mode 100644 keyboards/adkb96/rules.mk delete mode 100644 keyboards/adm42/rules.mk delete mode 100644 keyboards/aeboards/satellite/rules.mk delete mode 100644 keyboards/atreus/rules.mk delete mode 100644 keyboards/atreyu/rules.mk delete mode 100644 keyboards/binepad/bn009/rules.mk delete mode 100755 keyboards/binepad/bnr1/rules.mk delete mode 100644 keyboards/boston_meetup/rules.mk delete mode 100644 keyboards/bpiphany/frosty_flake/rules.mk delete mode 100644 keyboards/buzzard/rules.mk delete mode 100644 keyboards/clickety_split/leeloo/rules.mk delete mode 100644 keyboards/crkbd/rules.mk delete mode 100644 keyboards/dailycraft/bat43/rules.mk delete mode 100644 keyboards/dailycraft/claw44/rules.mk delete mode 100644 keyboards/dailycraft/sandbox/rules.mk delete mode 100644 keyboards/dailycraft/wings42/rules.mk delete mode 100644 keyboards/delikeeb/vanana/rules.mk delete mode 100644 keyboards/delikeeb/waaffle/rev3/rules.mk delete mode 100644 keyboards/deltasplit75/rules.mk delete mode 100644 keyboards/duck/octagon/rules.mk delete mode 100644 keyboards/duck/orion/rules.mk delete mode 100644 keyboards/ducky/one2mini/rules.mk delete mode 100644 keyboards/ducky/one2sf/rules.mk delete mode 100644 keyboards/dumbpad/rules.mk delete mode 100644 keyboards/durgod/galaxy/rules.mk delete mode 100644 keyboards/durgod/venus/rules.mk delete mode 100644 keyboards/dztech/tofu/ii/rules.mk delete mode 100644 keyboards/dztech/tofu/jr/rules.mk delete mode 100644 keyboards/eco/rules.mk delete mode 100644 keyboards/ergoslab/rules.mk delete mode 100644 keyboards/ergotravel/rules.mk delete mode 100644 keyboards/evyd13/atom47/rules.mk delete mode 100644 keyboards/fortitude60/rules.mk delete mode 100644 keyboards/fruitykeeb/fruitbar/r1/rules.mk delete mode 100644 keyboards/ghs/jem/rules.mk delete mode 100644 keyboards/hadron/rules.mk delete mode 100644 keyboards/handwired/bento/rules.mk delete mode 100644 keyboards/handwired/dactyl_manuform/6x6/rules.mk delete mode 100644 keyboards/handwired/ms_sculpt_mobile/rules.mk delete mode 100644 keyboards/handwired/onekey/rules.mk delete mode 100644 keyboards/handwired/pill60/rules.mk delete mode 100644 keyboards/handwired/postageboard/rules.mk delete mode 100644 keyboards/handwired/qc60/rules.mk delete mode 100644 keyboards/handwired/sono1/rules.mk delete mode 100644 keyboards/handwired/splittest/rules.mk delete mode 100644 keyboards/handwired/stef9998/split_5x7/rules.mk delete mode 100644 keyboards/handwired/symmetric70_proto/promicro/rules.mk delete mode 100644 keyboards/handwired/symmetric70_proto/proton_c/rules.mk delete mode 100644 keyboards/handwired/unk/rules.mk delete mode 100644 keyboards/hillside/46/rules.mk delete mode 100644 keyboards/hillside/48/rules.mk delete mode 100644 keyboards/hillside/52/rules.mk delete mode 100644 keyboards/ibnuda/squiggle/rules.mk delete mode 100644 keyboards/idobao/id80/v1/rules.mk delete mode 100644 keyboards/idobao/id80/v3/rules.mk delete mode 100644 keyboards/inett_studio/sq80/rules.mk delete mode 100644 keyboards/jacky_studio/bear_65/rules.mk delete mode 100644 keyboards/jadookb/jkb65/rules.mk delete mode 100644 keyboards/jian/rules.mk delete mode 100644 keyboards/jiran/rules.mk delete mode 100644 keyboards/jorne/rules.mk delete mode 100644 keyboards/junco/rules.mk delete mode 100644 keyboards/kakunpc/business_card/rules.mk delete mode 100644 keyboards/kakunpc/suihankey/rules.mk delete mode 100644 keyboards/kapcave/paladinpad/rules.mk delete mode 100644 keyboards/kapl/rules.mk delete mode 100644 keyboards/kbdfans/d45/rules.mk delete mode 100644 keyboards/kbdfans/kbd75/rules.mk delete mode 100644 keyboards/keebio/bdn9/rules.mk delete mode 100644 keyboards/keebio/convolution/rules.mk delete mode 100644 keyboards/keebio/foldkb/rules.mk delete mode 100644 keyboards/keebio/kbo5000/rules.mk delete mode 100644 keyboards/keebio/levinson/rules.mk delete mode 100644 keyboards/keebio/quefrency/rules.mk delete mode 100644 keyboards/keebio/rorschach/rules.mk delete mode 100644 keyboards/keebio/sinc/rules.mk delete mode 100644 keyboards/keebio/viterbi/rules.mk delete mode 100644 keyboards/keycapsss/kimiko/rules.mk delete mode 100644 keyboards/kin80/rules.mk delete mode 100644 keyboards/kumaokobo/kudox/rules.mk delete mode 100644 keyboards/kumaokobo/kudox_full/rules.mk delete mode 100644 keyboards/kumaokobo/kudox_game/rules.mk delete mode 100644 keyboards/kumaokobo/pico/rules.mk delete mode 100644 keyboards/lazydesigners/dimple/rules.mk delete mode 100644 keyboards/lets_split/rules.mk delete mode 100644 keyboards/lfkeyboards/lfk87/rules.mk delete mode 100644 keyboards/lily58/rules.mk delete mode 100644 keyboards/lime/rules.mk delete mode 100644 keyboards/maple_computing/ivy/rules.mk delete mode 100644 keyboards/maple_computing/launchpad/rules.mk delete mode 100644 keyboards/maple_computing/minidox/rules.mk delete mode 100644 keyboards/mariorion_v25/rules.mk delete mode 100644 keyboards/marksard/rhymestone/rules.mk delete mode 100644 keyboards/marksard/treadstone48/rules.mk delete mode 100644 keyboards/maxipad/rules.mk delete mode 100644 keyboards/mechkeys/mechmini/rules.mk delete mode 100644 keyboards/mechllama/g35/rules.mk delete mode 100644 keyboards/mechlovin/adelais/rules.mk delete mode 100644 keyboards/mechlovin/adelais/standard_led/arm/rev4/rules.mk delete mode 100644 keyboards/mechlovin/adelais/standard_led/arm/rules.mk delete mode 100644 keyboards/mechlovin/adelais/standard_led/avr/rules.mk delete mode 100644 keyboards/mechlovin/infinity87/rev1/rules.mk delete mode 100644 keyboards/mechlovin/infinity87/rules.mk delete mode 100644 keyboards/mechlovin/mechlovin9/rules.mk delete mode 100644 keyboards/mechlovin/olly/jf/rules.mk delete mode 100644 keyboards/mechlovin/zed1800/rules.mk delete mode 100644 keyboards/mechlovin/zed65/no_backlight/rules.mk delete mode 100644 keyboards/mechlovin/zed65/rules.mk delete mode 100644 keyboards/mechwild/bde/rules.mk delete mode 100644 keyboards/mechwild/mokulua/rules.mk delete mode 100644 keyboards/mechwild/obe/f401/rules.mk delete mode 100644 keyboards/mechwild/obe/f411/rules.mk delete mode 100644 keyboards/mechwild/obe/rules.mk delete mode 100644 keyboards/mechwild/waka60/f401/rules.mk delete mode 100644 keyboards/mechwild/waka60/f411/rules.mk delete mode 100644 keyboards/mechwild/waka60/rules.mk delete mode 100644 keyboards/murcielago/rules.mk delete mode 100644 keyboards/nullbitsco/scramble/rules.mk delete mode 100644 keyboards/omkbd/ergodash/rules.mk delete mode 100644 keyboards/omkbd/runner3680/rules.mk delete mode 100644 keyboards/orthodox/rules.mk delete mode 100644 keyboards/peej/rosaline/rules.mk delete mode 100644 keyboards/peej/tripel/rules.mk delete mode 100644 keyboards/peranekofactory/tone/rules.mk delete mode 100644 keyboards/phase_studio/titan65/rules.mk delete mode 100644 keyboards/pica40/rules.mk delete mode 100644 keyboards/pinky/rules.mk delete mode 100644 keyboards/primekb/meridian/rules.mk delete mode 100644 keyboards/primekb/prime_e/rules.mk delete mode 100644 keyboards/program_yoink/rules.mk delete mode 100644 keyboards/projectcain/vault35/rules.mk delete mode 100644 keyboards/qpockets/space_space/rules.mk delete mode 100644 keyboards/qwertyydox/rules.mk delete mode 100644 keyboards/redox/rev1/rules.mk delete mode 100644 keyboards/rgbkb/mun/rules.mk delete mode 100644 keyboards/rgbkb/sol/rules.mk delete mode 100644 keyboards/rgbkb/sol3/rules.mk delete mode 100644 keyboards/rgbkb/zen/rules.mk delete mode 100644 keyboards/rgbkb/zygomorph/rules.mk delete mode 100644 keyboards/rmi_kb/herringbone/rules.mk delete mode 100644 keyboards/rmi_kb/mona/rules.mk delete mode 100644 keyboards/rmi_kb/tkl_ff/rules.mk delete mode 100644 keyboards/rmi_kb/wete/rules.mk delete mode 100755 keyboards/rookiebwoy/late9/rules.mk delete mode 100755 keyboards/rookiebwoy/neopad/rules.mk delete mode 100644 keyboards/rura66/rules.mk delete mode 100644 keyboards/sawnsprojects/okayu/rules.mk delete mode 100644 keyboards/smoll/lefty/rules.mk delete mode 100644 keyboards/sofle/rules.mk delete mode 100644 keyboards/spacetime/rules.mk delete mode 100644 keyboards/splitkb/aurora/corne/rules.mk delete mode 100644 keyboards/splitkb/aurora/helix/rules.mk delete mode 100644 keyboards/splitkb/aurora/lily58/rules.mk delete mode 100644 keyboards/splitkb/aurora/sofle_v2/rules.mk delete mode 100644 keyboards/splitkb/aurora/sweep/rules.mk delete mode 100644 keyboards/splitkb/kyria/rev1/rules.mk delete mode 100644 keyboards/splitkb/kyria/rev2/rules.mk delete mode 100644 keyboards/splitty/rules.mk delete mode 100644 keyboards/studiokestra/galatea/rules.mk delete mode 100644 keyboards/takashiski/hecomi/rules.mk delete mode 100644 keyboards/themadnoodle/noodlepad/rules.mk delete mode 100644 keyboards/tkw/grandiceps/rules.mk delete mode 100644 keyboards/tominabox1/littlefoot_lx/rules.mk delete mode 100644 keyboards/tominabox1/underscore33/rules.mk delete mode 100644 keyboards/trnthsn/e8ghty/rules.mk delete mode 100644 keyboards/trnthsn/s6xty5neor2/rules.mk delete mode 100644 keyboards/tweetydabird/lotus58/rules.mk delete mode 100644 keyboards/unison/rules.mk delete mode 100644 keyboards/uzu42/rules.mk delete mode 100644 keyboards/vitamins_included/rules.mk delete mode 100644 keyboards/yanghu/unicorne/rules.mk delete mode 100644 keyboards/yosino58/rules.mk delete mode 100644 keyboards/yushakobo/navpad/10/rules.mk delete mode 100644 keyboards/yynmt/acperience12/rules.mk diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index 4fd959c4eb2..745faee8013 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -1558,5 +1558,552 @@ }, "dnworks/9973": { "target": "dnworks/tkl87" + }, + // DEFAULT_FOLDER removed during 2025 Q1 cycle + "0_sixty": { + "target": "0_sixty/base" + }, + "0xcb/splaytoraid": { + "target": "0xcb/splaytoraid/rp2040_ce" + }, + "1upkeyboards/pi40": { + "target": "1upkeyboards/pi40/mit_v1_0" + }, + "1upkeyboards/pi50": { + "target": "1upkeyboards/pi50/grid" + }, + "1upkeyboards/sweet16": { + "target": "1upkeyboards/sweet16/v1" + }, + "40percentclub/i75": { + "target": "40percentclub/i75/promicro" + }, + "40percentclub/polyandry": { + "target": "40percentclub/polyandry/promicro" + }, + "8pack": { + "target": "8pack/rev12" + }, + "adkb96": { + "target": "adkb96/rev1" + }, + "adm42": { + "target": "adm42/rev4" + }, + "aeboards/satellite": { + "target": "aeboards/satellite/rev1" + }, + "atreus": { + "target": "atreus/astar" + }, + "atreyu": { + "target": "atreyu/rev1" + }, + "binepad/bn009": { + "target": "binepad/bn009/r2" + }, + "binepad/bnr1": { + "target": "binepad/bnr1/v2" + }, + "boston_meetup": { + "target": "boston_meetup/2019" + }, + "bpiphany/frosty_flake": { + "target": "bpiphany/frosty_flake/20140521" + }, + "buzzard": { + "target": "buzzard/rev1" + }, + "clickety_split/leeloo": { + "target": "clickety_split/leeloo/rev3" + }, + "crkbd": { + "target": "crkbd/rev1" + }, + "dailycraft/bat43": { + "target": "dailycraft/bat43/rev2" + }, + "dailycraft/claw44": { + "target": "dailycraft/claw44/rev1" + }, + "dailycraft/sandbox": { + "target": "dailycraft/sandbox/rev2" + }, + "dailycraft/wings42": { + "target": "dailycraft/wings42/rev2" + }, + "delikeeb/vanana": { + "target": "delikeeb/vanana/rev2" + }, + "delikeeb/waaffle/rev3": { + "target": "delikeeb/waaffle/rev3/pro_micro" + }, + "deltasplit75": { + "target": "deltasplit75/v2" + }, + "duck/octagon": { + "target": "duck/octagon/v2" + }, + "duck/orion": { + "target": "duck/orion/v3" + }, + "ducky/one2mini": { + "target": "ducky/one2mini/1861st" + }, + "ducky/one2sf": { + "target": "ducky/one2sf/1967st" + }, + "dumbpad": { + "target": "dumbpad/v0x" + }, + "durgod/galaxy": { + "target": "durgod/dgk6x/galaxy" + }, + "durgod/venus": { + "target": "durgod/dgk6x/venus" + }, + "dztech/tofu/ii": { + "target": "dztech/tofu/ii/v1" + }, + "dztech/tofu/jr": { + "target": "dztech/tofu/jr/v1" + }, + "eco": { + "target": "eco/rev2" + }, + "ergoslab": { + "target": "ergoslab/rev1" + }, + "ergotravel": { + "target": "ergotravel/rev1" + }, + "evyd13/atom47": { + "target": "evyd13/atom47/rev4" + }, + "fortitude60": { + "target": "fortitude60/rev1" + }, + "fruitykeeb/fruitbar/r1": { + "target": "fruitykeeb/fruitbar/r1/promicro" + }, + "ghs/jem": { + "target": "ghs/jem/soldered" + }, + "hadron": { + "target": "hadron/ver2" + }, + "handwired/bento": { + "target": "handwired/bento/rev1" + }, + "handwired/dactyl_manuform/6x6": { + "target": "handwired/dactyl_manuform/6x6/promicro" + }, + "handwired/ms_sculpt_mobile": { + "target": "handwired/ms_sculpt_mobile/teensy2pp" + }, + "handwired/onekey": { + "target": "handwired/onekey/promicro" + }, + "handwired/pill60": { + "target": "handwired/pill60/bluepill" + }, + "handwired/postageboard": { + "target": "handwired/postageboard/mini" + }, + "handwired/qc60": { + "target": "handwired/qc60/proto" + }, + "handwired/sono1": { + "target": "handwired/sono1/t2pp" + }, + "handwired/splittest": { + "target": "handwired/splittest/promicro" + }, + "handwired/stef9998/split_5x7": { + "target": "handwired/stef9998/split_5x7/rev1" + }, + "handwired/symmetric70_proto/promicro": { + "target": "handwired/symmetric70_proto/promicro/base" + }, + "handwired/symmetric70_proto/proton_c": { + "target": "handwired/symmetric70_proto/proton_c/base" + }, + "handwired/unk": { + "target": "handwired/unk/rev1" + }, + "hillside/46": { + "target": "hillside/46/0_1" + }, + "hillside/48": { + "target": "hillside/48/0_1" + }, + "hillside/52": { + "target": "hillside/52/0_1" + }, + "ibnuda/squiggle": { + "target": "ibnuda/squiggle/rev1" + }, + "idobao/id80/v1": { + "target": "idobao/id80/v2/ansi" + }, + "idobao/id80/v3": { + "target": "idobao/id80/v3/ansi" + }, + "inett_studio/sq80": { + "target": "inett_studio/sq80/hotswap_layout_i" + }, + "jacky_studio/bear_65": { + "target": "jacky_studio/bear_65/rev1" + }, + "jadookb/jkb65": { + "target": "jadookb/jkb65/r1" + }, + "jian": { + "target": "jian/rev2" + }, + "jiran": { + "target": "jiran/rev1" + }, + "jorne": { + "target": "jorne/rev1" + }, + "junco": { + "target": "junco/rev1" + }, + "kakunpc/business_card": { + "target": "kakunpc/business_card/beta" + }, + "kakunpc/suihankey": { + "target": "kakunpc/suihankey/rev1" + }, + "kapcave/paladinpad": { + "target": "kapcave/paladinpad/rev2" + }, + "kapl": { + "target": "kapl/rev1" + }, + "kbdfans/d45": { + "target": "kbdfans/d45/v2" + }, + "kbdfans/kbd75": { + "target": "kbdfans/kbd75/rev1" + }, + "keebio/bdn9": { + "target": "keebio/bdn9/rev1" + }, + "keebio/convolution": { + "target": "keebio/convolution/rev1" + }, + "keebio/foldkb": { + "target": "keebio/foldkb/rev1" + }, + "keebio/kbo5000": { + "target": "keebio/kbo5000/rev1" + }, + "keebio/levinson": { + "target": "keebio/levinson/rev2" + }, + "keebio/quefrency": { + "target": "keebio/quefrency/rev1" + }, + "keebio/rorschach": { + "target": "keebio/rorschach/rev1" + }, + "keebio/sinc": { + "target": "keebio/sinc/rev1" + }, + "keebio/viterbi": { + "target": "keebio/viterbi/rev2" + }, + "keycapsss/kimiko": { + "target": "keycapsss/kimiko/rev2" + }, + "kin80": { + "target": "kin80/blackpill401" + }, + "kumaokobo/kudox_full": { + "target": "kumaokobo/kudox_full/rev1" + }, + "kumaokobo/kudox_game": { + "target": "kumaokobo/kudox_game/rev2" + }, + "kumaokobo/kudox": { + "target": "kumaokobo/kudox/rev3" + }, + "kumaokobo/pico": { + "target": "kumaokobo/pico/65keys" + }, + "lazydesigners/dimple": { + "target": "lazydesigners/dimple/staggered/rev1" + }, + "lets_split": { + "target": "lets_split/rev2" + }, + "lfkeyboards/lfk87": { + "target": "lfkeyboards/lfk78/revc" + }, + "lily58": { + "target": "lily58/rev1" + }, + "lime": { + "target": "lime/rev1" + }, + "maple_computing/ivy": { + "target": "maple_computing/ivy/rev1" + }, + "maple_computing/launchpad": { + "target": "maple_computing/launchpad/rev1" + }, + "maple_computing/minidox": { + "target": "maple_computing/minidox/rev1" + }, + "mariorion_v25": { + "target": "mariorion_v25/prod" + }, + "marksard/rhymestone": { + "target": "marksard/rhymestone/rev1" + }, + "marksard/treadstone48": { + "target": "marksard/treadstone48/rev1" + }, + "maxipad": { + "target": "maxipad/promicro" + }, + "mechkeys/mechmini": { + "target": "mechkeys/mechmini/v2" + }, + "mechllama/g35": { + "target": "mechllama/g35/v2" + }, + "mechlovin/adelais": { + "target": "mechlovin/adelais/standard_led/arm/rev2" + }, + "mechlovin/adelais/standard_led/arm/rev4": { + "target": "mechlovin/adelais/standard_led/arm/rev4/stm32f303" + }, + "mechlovin/adelais/standard_led/arm": { + "target": "mechlovin/adelais/standard_led/arm/rev2" + }, + "mechlovin/adelais/standard_led/avr": { + "target": "mechlovin/adelais/standard_led/avr/rev1" + }, + "mechlovin/infinity87/rev1": { + "target": "mechlovin/infinity87/rev1/standard" + }, + "mechlovin/infinity87": { + "target": "mechlovin/infinity87/rgb_rev1" + }, + "mechlovin/mechlovin9": { + "target": "mechlovin/mechlovin9/rev1" + }, + "mechlovin/olly/jf": { + "target": "mechlovin/olly/jf/rev1" + }, + "mechlovin/zed1800": { + "target": "mechlovin/zed1800/saber" + }, + "mechlovin/zed65/no_backlight": { + "target": "mechlovin/zed65/no_backlight/wearhaus66" + }, + "mechlovin/zed65": { + "target": "mechlovin/zed65/no_backlight/wearhaus66" + }, + "mechwild/bde": { + "target": "mechwild/bde/rev2" + }, + "mechwild/mokulua": { + "target": "mechwild/mokulua/standard" + }, + "mechwild/obe/f401": { + "target": "mechwild/obe/f401/base" + }, + "mechwild/obe/f411": { + "target": "mechwild/obe/f411/base" + }, + "mechwild/obe": { + "target": "mechwild/obe/f401/base" + }, + "mechwild/waka60/f401": { + "target": "mechwild/waka60/f401/base" + }, + "mechwild/waka60/f411": { + "target": "mechwild/waka60/f411/base" + }, + "mechwild/waka60": { + "target": "mechwild/waka60/f401/base" + }, + "murcielago": { + "target": "murcielago/rev1" + }, + "nullbitsco/scramble": { + "target": "nullbitsco/scramble/v2" + }, + "omkbd/ergodash": { + "target": "omkbd/ergodash/rev1" + }, + "omkbd/runner3680": { + "target": "omkbd/runner3680/5x8" + }, + "orthodox": { + "target": "orthodox/rev3" + }, + "peej/rosaline": { + "target": "peej/rosaline/staggered" + }, + "peej/tripel": { + "target": "peej/tripel/left" + }, + "peranekofactory/tone": { + "target": "peranekofactory/tone/rev2" + }, + "phase_studio/titan65": { + "target": "phase_studio/titan65/hotswap" + }, + "pica40": { + "target": "pica40/rev2" + }, + "pinky": { + "target": "pinky/3" + }, + "primekb/meridian": { + "target": "primekb/meridian/ktr1010" + }, + "primekb/prime_e": { + "target": "primekb/prime_e/std" + }, + "program_yoink": { + "target": "program_yoink/staggered" + }, + "projectcain/vault35": { + "target": "projectcain/vault35/atmega32u4" + }, + "qpockets/space_space": { + "target": "qpockets/space_space/rev2" + }, + "qwertyydox": { + "target": "qwertyydox/rev1" + }, + "redox/rev1": { + "target": "redox/rev1/base" + }, + "rgbkb/mun": { + "target": "rgbkb/mun/rev1" + }, + "rgbkb/sol3": { + "target": "rgbkb/sol3/rev1" + }, + "rgbkb/sol": { + "target": "rgbkb/sol/rev2" + }, + "rgbkb/zen": { + "target": "rgbkb/zen/rev2" + }, + "rgbkb/zygomorph": { + "target": "rgbkb/zygomorph/rev1" + }, + "rmi_kb/herringbone": { + "target": "rmi_kb/herringbone/v1" + }, + "rmi_kb/mona": { + "target": "rmi_kb/mona/v1_1" + }, + "rmi_kb/tkl_ff": { + "target": "rmi_kb/tkl_ff/v1" + }, + "rmi_kb/wete": { + "target": "rmi_kb/wete/v2" + }, + "rookiebwoy/late9": { + "target": "rookiebwoy/late9/rev1" + }, + "rookiebwoy/neopad": { + "target": "rookiebwoy/neopad/rev1" + }, + "rura66": { + "target": "rura66/rev1" + }, + "sawnsprojects/okayu": { + "target": "sawnsprojects/okayu/stm32f072" + }, + "smoll/lefty": { + "target": "smoll/lefty/rev2" + }, + "sofle": { + "target": "sofle/rev1" + }, + "spacetime": { + "target": "spacetime/rev1" + }, + "splitkb/aurora/corne": { + "target": "splitkb/aurora/corne/rev1" + }, + "splitkb/aurora/helix": { + "target": "splitkb/aurora/helix/rev1" + }, + "splitkb/aurora/lily58": { + "target": "splitkb/aurora/lily58/rev1" + }, + "splitkb/aurora/sofle_v2": { + "target": "splitkb/aurora/sofle_v2/rev1" + }, + "splitkb/aurora/sweep": { + "target": "splitkb/aurora/sweep/rev1" + }, + "splitkb/kyria/rev1": { + "target": "splitkb/kyria/rev1/base" + }, + "splitkb/kyria/rev2": { + "target": "splitkb/kyria/rev2/base" + }, + "splitty": { + "target": "splitty/rev1" + }, + "studiokestra/galatea": { + "target": "studiokestra/galatea/rev1" + }, + "takashiski/hecomi": { + "target": "takashiski/hecomi/alpha" + }, + "themadnoodle/noodlepad": { + "target": "themadnoodle/noodlepad/v1" + }, + "tkw/grandiceps": { + "target": "tkw/grandiceps/rev1" + }, + "tominabox1/littlefoot_lx": { + "target": "tominabox1/littlefoot_lx/rev1" + }, + "tominabox1/underscore33": { + "target": "tominabox1/underscore33/rev1" + }, + "trnthsn/e8ghty": { + "target": "trnthsn/e8ghty/stm32f103" + }, + "trnthsn/s6xty5neor2": { + "target": "trnthsn/s6xty5neor2/stm32f103" + }, + "tweetydabird/lotus58": { + "target": "tweetydabird/lotus58/promicro" + }, + "unison": { + "target": "unison/v04" + }, + "uzu42": { + "target": "uzu42/rev1" + }, + "vitamins_included": { + "target": "vitamins_included/rev2" + }, + "yanghu/unicorne": { + "target": "yanghu/unicorne/f411" + }, + "yosino58": { + "target": "yosino58/rev1" + }, + "yushakobo/navpad/10": { + "target": "yushakobo/navpad/10/rev1" + }, + "yynmt/acperience12": { + "target": "yynmt/acperience12/rev1" } } diff --git a/keyboards/0_sixty/rules.mk b/keyboards/0_sixty/rules.mk deleted file mode 100644 index a0d06a89dd7..00000000000 --- a/keyboards/0_sixty/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = 0_sixty/base diff --git a/keyboards/0xcb/splaytoraid/rules.mk b/keyboards/0xcb/splaytoraid/rules.mk deleted file mode 100644 index 65884dec4f9..00000000000 --- a/keyboards/0xcb/splaytoraid/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = 0xcb/splaytoraid/rp2040_ce diff --git a/keyboards/1upkeyboards/pi40/rules.mk b/keyboards/1upkeyboards/pi40/rules.mk deleted file mode 100644 index 48aea570e01..00000000000 --- a/keyboards/1upkeyboards/pi40/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = 1upkeyboards/pi40/mit_v1_0 diff --git a/keyboards/1upkeyboards/pi50/rules.mk b/keyboards/1upkeyboards/pi50/rules.mk deleted file mode 100644 index a9660074af5..00000000000 --- a/keyboards/1upkeyboards/pi50/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = 1upkeyboards/pi50/grid diff --git a/keyboards/1upkeyboards/sweet16/rules.mk b/keyboards/1upkeyboards/sweet16/rules.mk deleted file mode 100644 index 7d269ac93f5..00000000000 --- a/keyboards/1upkeyboards/sweet16/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = 1upkeyboards/sweet16/v1 diff --git a/keyboards/40percentclub/i75/rules.mk b/keyboards/40percentclub/i75/rules.mk deleted file mode 100644 index 48b04275501..00000000000 --- a/keyboards/40percentclub/i75/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = 40percentclub/i75/promicro diff --git a/keyboards/40percentclub/polyandry/rules.mk b/keyboards/40percentclub/polyandry/rules.mk deleted file mode 100644 index 3064c8202cb..00000000000 --- a/keyboards/40percentclub/polyandry/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = 40percentclub/polyandry/promicro diff --git a/keyboards/8pack/rules.mk b/keyboards/8pack/rules.mk deleted file mode 100644 index 81024a71199..00000000000 --- a/keyboards/8pack/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = 8pack/rev12 diff --git a/keyboards/adkb96/rules.mk b/keyboards/adkb96/rules.mk deleted file mode 100644 index ac7561b21dd..00000000000 --- a/keyboards/adkb96/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = adkb96/rev1 diff --git a/keyboards/adm42/rules.mk b/keyboards/adm42/rules.mk deleted file mode 100644 index 06fc88e9f6c..00000000000 --- a/keyboards/adm42/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = adm42/rev4 \ No newline at end of file diff --git a/keyboards/aeboards/satellite/rules.mk b/keyboards/aeboards/satellite/rules.mk deleted file mode 100644 index bc32615d2b9..00000000000 --- a/keyboards/aeboards/satellite/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = aeboards/satellite/rev1 diff --git a/keyboards/atreus/rules.mk b/keyboards/atreus/rules.mk deleted file mode 100644 index d933cb327d6..00000000000 --- a/keyboards/atreus/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = atreus/astar diff --git a/keyboards/atreyu/rules.mk b/keyboards/atreyu/rules.mk deleted file mode 100644 index 4daffe6b9d4..00000000000 --- a/keyboards/atreyu/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = atreyu/rev1 diff --git a/keyboards/binepad/bn009/rules.mk b/keyboards/binepad/bn009/rules.mk deleted file mode 100644 index 74214d60ed0..00000000000 --- a/keyboards/binepad/bn009/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -# This file is mostly left blank - -DEFAULT_FOLDER = binepad/bn009/r2 diff --git a/keyboards/binepad/bnr1/rules.mk b/keyboards/binepad/bnr1/rules.mk deleted file mode 100755 index ce85c574046..00000000000 --- a/keyboards/binepad/bnr1/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = binepad/bnr1/v2 diff --git a/keyboards/boston_meetup/rules.mk b/keyboards/boston_meetup/rules.mk deleted file mode 100644 index 6d6745a0e57..00000000000 --- a/keyboards/boston_meetup/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = boston_meetup/2019 diff --git a/keyboards/bpiphany/frosty_flake/rules.mk b/keyboards/bpiphany/frosty_flake/rules.mk deleted file mode 100644 index e5402b32f7b..00000000000 --- a/keyboards/bpiphany/frosty_flake/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER=bpiphany/frosty_flake/20140521 diff --git a/keyboards/buzzard/rules.mk b/keyboards/buzzard/rules.mk deleted file mode 100644 index 2f66720b774..00000000000 --- a/keyboards/buzzard/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = buzzard/rev1 diff --git a/keyboards/clickety_split/leeloo/rules.mk b/keyboards/clickety_split/leeloo/rules.mk deleted file mode 100644 index 9d35960f7cf..00000000000 --- a/keyboards/clickety_split/leeloo/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Default Folder -DEFAULT_FOLDER = clickety_split/leeloo/rev3 diff --git a/keyboards/crkbd/rules.mk b/keyboards/crkbd/rules.mk deleted file mode 100644 index 836587e45e6..00000000000 --- a/keyboards/crkbd/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = crkbd/rev1 diff --git a/keyboards/dailycraft/bat43/rules.mk b/keyboards/dailycraft/bat43/rules.mk deleted file mode 100644 index b1528519482..00000000000 --- a/keyboards/dailycraft/bat43/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = dailycraft/bat43/rev2 diff --git a/keyboards/dailycraft/claw44/rules.mk b/keyboards/dailycraft/claw44/rules.mk deleted file mode 100644 index 0344b3ee285..00000000000 --- a/keyboards/dailycraft/claw44/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = dailycraft/claw44/rev1 diff --git a/keyboards/dailycraft/sandbox/rules.mk b/keyboards/dailycraft/sandbox/rules.mk deleted file mode 100644 index c62f01e18f5..00000000000 --- a/keyboards/dailycraft/sandbox/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = dailycraft/sandbox/rev2 diff --git a/keyboards/dailycraft/wings42/rules.mk b/keyboards/dailycraft/wings42/rules.mk deleted file mode 100644 index b027fec9b97..00000000000 --- a/keyboards/dailycraft/wings42/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = dailycraft/wings42/rev2 diff --git a/keyboards/delikeeb/vanana/rules.mk b/keyboards/delikeeb/vanana/rules.mk deleted file mode 100644 index ff3dc1df615..00000000000 --- a/keyboards/delikeeb/vanana/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = delikeeb/vanana/rev2 diff --git a/keyboards/delikeeb/waaffle/rev3/rules.mk b/keyboards/delikeeb/waaffle/rev3/rules.mk deleted file mode 100644 index dbd58ca5bfa..00000000000 --- a/keyboards/delikeeb/waaffle/rev3/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = delikeeb/waaffle/rev3/pro_micro diff --git a/keyboards/deltasplit75/rules.mk b/keyboards/deltasplit75/rules.mk deleted file mode 100644 index ee888337e5e..00000000000 --- a/keyboards/deltasplit75/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = deltasplit75/v2 diff --git a/keyboards/duck/octagon/rules.mk b/keyboards/duck/octagon/rules.mk deleted file mode 100644 index 46bd457bb70..00000000000 --- a/keyboards/duck/octagon/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = duck/octagon/v2 \ No newline at end of file diff --git a/keyboards/duck/orion/rules.mk b/keyboards/duck/orion/rules.mk deleted file mode 100644 index 3788e0fbfb7..00000000000 --- a/keyboards/duck/orion/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = duck/orion/v3 diff --git a/keyboards/ducky/one2mini/rules.mk b/keyboards/ducky/one2mini/rules.mk deleted file mode 100644 index 628be832eeb..00000000000 --- a/keyboards/ducky/one2mini/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = ducky/one2mini/1861st diff --git a/keyboards/ducky/one2sf/rules.mk b/keyboards/ducky/one2sf/rules.mk deleted file mode 100644 index 0c9ddb957f8..00000000000 --- a/keyboards/ducky/one2sf/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = ducky/one2sf/1967st diff --git a/keyboards/dumbpad/rules.mk b/keyboards/dumbpad/rules.mk deleted file mode 100644 index 87ec1ab01b4..00000000000 --- a/keyboards/dumbpad/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = dumbpad/v0x diff --git a/keyboards/durgod/galaxy/rules.mk b/keyboards/durgod/galaxy/rules.mk deleted file mode 100644 index ff1e1ff2050..00000000000 --- a/keyboards/durgod/galaxy/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER=durgod/dgk6x/galaxy diff --git a/keyboards/durgod/venus/rules.mk b/keyboards/durgod/venus/rules.mk deleted file mode 100644 index 57acf2a48cf..00000000000 --- a/keyboards/durgod/venus/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER=durgod/dgk6x/venus diff --git a/keyboards/dztech/tofu/ii/rules.mk b/keyboards/dztech/tofu/ii/rules.mk deleted file mode 100644 index c08cfdaae90..00000000000 --- a/keyboards/dztech/tofu/ii/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = dztech/tofu/ii/v1 diff --git a/keyboards/dztech/tofu/jr/rules.mk b/keyboards/dztech/tofu/jr/rules.mk deleted file mode 100644 index 7333c613fd2..00000000000 --- a/keyboards/dztech/tofu/jr/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = dztech/tofu/jr/v1 diff --git a/keyboards/eco/rules.mk b/keyboards/eco/rules.mk deleted file mode 100644 index a3d419658b8..00000000000 --- a/keyboards/eco/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = eco/rev2 diff --git a/keyboards/ergoslab/rules.mk b/keyboards/ergoslab/rules.mk deleted file mode 100644 index 8eb40c77d5a..00000000000 --- a/keyboards/ergoslab/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = ergoslab/rev1 diff --git a/keyboards/ergotravel/rules.mk b/keyboards/ergotravel/rules.mk deleted file mode 100644 index 3f30277bb56..00000000000 --- a/keyboards/ergotravel/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = ergotravel/rev1 diff --git a/keyboards/evyd13/atom47/rules.mk b/keyboards/evyd13/atom47/rules.mk deleted file mode 100644 index 9d5b7530777..00000000000 --- a/keyboards/evyd13/atom47/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = evyd13/atom47/rev4 diff --git a/keyboards/fortitude60/rules.mk b/keyboards/fortitude60/rules.mk deleted file mode 100644 index ef158b8cf08..00000000000 --- a/keyboards/fortitude60/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = fortitude60/rev1 diff --git a/keyboards/fruitykeeb/fruitbar/r1/rules.mk b/keyboards/fruitykeeb/fruitbar/r1/rules.mk deleted file mode 100644 index 3328de6095a..00000000000 --- a/keyboards/fruitykeeb/fruitbar/r1/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = fruitykeeb/fruitbar/r1/promicro diff --git a/keyboards/ghs/jem/rules.mk b/keyboards/ghs/jem/rules.mk deleted file mode 100644 index e96c00e5c0a..00000000000 --- a/keyboards/ghs/jem/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = ghs/jem/soldered diff --git a/keyboards/hadron/rules.mk b/keyboards/hadron/rules.mk deleted file mode 100644 index 8498675750e..00000000000 --- a/keyboards/hadron/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = hadron/ver2 diff --git a/keyboards/handwired/bento/rules.mk b/keyboards/handwired/bento/rules.mk deleted file mode 100644 index e160faab83c..00000000000 --- a/keyboards/handwired/bento/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = handwired/bento/rev1 diff --git a/keyboards/handwired/dactyl_manuform/6x6/rules.mk b/keyboards/handwired/dactyl_manuform/6x6/rules.mk deleted file mode 100644 index 29194b429ef..00000000000 --- a/keyboards/handwired/dactyl_manuform/6x6/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = handwired/dactyl_manuform/6x6/promicro diff --git a/keyboards/handwired/ms_sculpt_mobile/rules.mk b/keyboards/handwired/ms_sculpt_mobile/rules.mk deleted file mode 100644 index 8a3cc6858c2..00000000000 --- a/keyboards/handwired/ms_sculpt_mobile/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = handwired/ms_sculpt_mobile/teensy2pp diff --git a/keyboards/handwired/onekey/rules.mk b/keyboards/handwired/onekey/rules.mk deleted file mode 100644 index 2094801ed91..00000000000 --- a/keyboards/handwired/onekey/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = handwired/onekey/promicro diff --git a/keyboards/handwired/pill60/rules.mk b/keyboards/handwired/pill60/rules.mk deleted file mode 100644 index 9299a64d612..00000000000 --- a/keyboards/handwired/pill60/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = handwired/pill60/bluepill diff --git a/keyboards/handwired/postageboard/rules.mk b/keyboards/handwired/postageboard/rules.mk deleted file mode 100644 index a7fcf6bea67..00000000000 --- a/keyboards/handwired/postageboard/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER=handwired/postageboard/mini diff --git a/keyboards/handwired/qc60/rules.mk b/keyboards/handwired/qc60/rules.mk deleted file mode 100644 index 4905848cf91..00000000000 --- a/keyboards/handwired/qc60/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = handwired/qc60/proto diff --git a/keyboards/handwired/sono1/rules.mk b/keyboards/handwired/sono1/rules.mk deleted file mode 100644 index 9b472f28f2b..00000000000 --- a/keyboards/handwired/sono1/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = handwired/sono1/t2pp diff --git a/keyboards/handwired/splittest/rules.mk b/keyboards/handwired/splittest/rules.mk deleted file mode 100644 index ae4d823b53e..00000000000 --- a/keyboards/handwired/splittest/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = handwired/splittest/promicro diff --git a/keyboards/handwired/stef9998/split_5x7/rules.mk b/keyboards/handwired/stef9998/split_5x7/rules.mk deleted file mode 100644 index f06c490f000..00000000000 --- a/keyboards/handwired/stef9998/split_5x7/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = handwired/stef9998/split_5x7/rev1 diff --git a/keyboards/handwired/symmetric70_proto/promicro/rules.mk b/keyboards/handwired/symmetric70_proto/promicro/rules.mk deleted file mode 100644 index 7aa985b3f1d..00000000000 --- a/keyboards/handwired/symmetric70_proto/promicro/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = handwired/symmetric70_proto/promicro/base diff --git a/keyboards/handwired/symmetric70_proto/proton_c/rules.mk b/keyboards/handwired/symmetric70_proto/proton_c/rules.mk deleted file mode 100644 index 28c4536e4bf..00000000000 --- a/keyboards/handwired/symmetric70_proto/proton_c/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = handwired/symmetric70_proto/proton_c/base diff --git a/keyboards/handwired/unk/rules.mk b/keyboards/handwired/unk/rules.mk deleted file mode 100644 index d4536e0cbb6..00000000000 --- a/keyboards/handwired/unk/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = handwired/unk/rev1 diff --git a/keyboards/hillside/46/rules.mk b/keyboards/hillside/46/rules.mk deleted file mode 100644 index f3e926a8dc0..00000000000 --- a/keyboards/hillside/46/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = hillside/46/0_1 \ No newline at end of file diff --git a/keyboards/hillside/48/rules.mk b/keyboards/hillside/48/rules.mk deleted file mode 100644 index d8d69d9ec1d..00000000000 --- a/keyboards/hillside/48/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = hillside/48/0_1 diff --git a/keyboards/hillside/52/rules.mk b/keyboards/hillside/52/rules.mk deleted file mode 100644 index 402bc6bb959..00000000000 --- a/keyboards/hillside/52/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = hillside/52/0_1 diff --git a/keyboards/ibnuda/squiggle/rules.mk b/keyboards/ibnuda/squiggle/rules.mk deleted file mode 100644 index 0214333999b..00000000000 --- a/keyboards/ibnuda/squiggle/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = ibnuda/squiggle/rev1 diff --git a/keyboards/idobao/id80/v1/rules.mk b/keyboards/idobao/id80/v1/rules.mk deleted file mode 100644 index 20283f04be5..00000000000 --- a/keyboards/idobao/id80/v1/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Defalt to the ansi version -DEFAULT_FOLDER = idobao/id80/v2/ansi diff --git a/keyboards/idobao/id80/v3/rules.mk b/keyboards/idobao/id80/v3/rules.mk deleted file mode 100644 index 218fc055399..00000000000 --- a/keyboards/idobao/id80/v3/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Defalt to the ansi version -DEFAULT_FOLDER = idobao/id80/v3/ansi diff --git a/keyboards/inett_studio/sq80/rules.mk b/keyboards/inett_studio/sq80/rules.mk deleted file mode 100644 index d4f8260d939..00000000000 --- a/keyboards/inett_studio/sq80/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = inett_studio/sq80/hotswap_layout_i diff --git a/keyboards/jacky_studio/bear_65/rules.mk b/keyboards/jacky_studio/bear_65/rules.mk deleted file mode 100644 index 91bb6f74b98..00000000000 --- a/keyboards/jacky_studio/bear_65/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = jacky_studio/bear_65/rev1 diff --git a/keyboards/jadookb/jkb65/rules.mk b/keyboards/jadookb/jkb65/rules.mk deleted file mode 100644 index 2bbb2a41cea..00000000000 --- a/keyboards/jadookb/jkb65/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = jadookb/jkb65/r1 diff --git a/keyboards/jian/rules.mk b/keyboards/jian/rules.mk deleted file mode 100644 index c19fa00b5cb..00000000000 --- a/keyboards/jian/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = jian/rev2 diff --git a/keyboards/jiran/rules.mk b/keyboards/jiran/rules.mk deleted file mode 100644 index 3ffe13302d3..00000000000 --- a/keyboards/jiran/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = jiran/rev1 diff --git a/keyboards/jorne/rules.mk b/keyboards/jorne/rules.mk deleted file mode 100644 index c43649b3486..00000000000 --- a/keyboards/jorne/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = jorne/rev1 diff --git a/keyboards/junco/rules.mk b/keyboards/junco/rules.mk deleted file mode 100644 index bb94741e5ad..00000000000 --- a/keyboards/junco/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = junco/rev1 diff --git a/keyboards/kakunpc/business_card/rules.mk b/keyboards/kakunpc/business_card/rules.mk deleted file mode 100644 index 4525d52332a..00000000000 --- a/keyboards/kakunpc/business_card/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = kakunpc/business_card/beta diff --git a/keyboards/kakunpc/suihankey/rules.mk b/keyboards/kakunpc/suihankey/rules.mk deleted file mode 100644 index 46a0114bd57..00000000000 --- a/keyboards/kakunpc/suihankey/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = kakunpc/suihankey/rev1 diff --git a/keyboards/kapcave/paladinpad/rules.mk b/keyboards/kapcave/paladinpad/rules.mk deleted file mode 100644 index 02685414e3b..00000000000 --- a/keyboards/kapcave/paladinpad/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = kapcave/paladinpad/rev2 diff --git a/keyboards/kapl/rules.mk b/keyboards/kapl/rules.mk deleted file mode 100644 index a5dd22ce1c8..00000000000 --- a/keyboards/kapl/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = kapl/rev1 diff --git a/keyboards/kbdfans/d45/rules.mk b/keyboards/kbdfans/d45/rules.mk deleted file mode 100644 index 041e632f65e..00000000000 --- a/keyboards/kbdfans/d45/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = kbdfans/d45/v2 diff --git a/keyboards/kbdfans/kbd75/rules.mk b/keyboards/kbdfans/kbd75/rules.mk deleted file mode 100644 index 5c461713161..00000000000 --- a/keyboards/kbdfans/kbd75/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = kbdfans/kbd75/rev1 diff --git a/keyboards/keebio/bdn9/rules.mk b/keyboards/keebio/bdn9/rules.mk deleted file mode 100644 index 431a8ad0275..00000000000 --- a/keyboards/keebio/bdn9/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = keebio/bdn9/rev1 diff --git a/keyboards/keebio/convolution/rules.mk b/keyboards/keebio/convolution/rules.mk deleted file mode 100644 index 9df8bd1c473..00000000000 --- a/keyboards/keebio/convolution/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = keebio/convolution/rev1 diff --git a/keyboards/keebio/foldkb/rules.mk b/keyboards/keebio/foldkb/rules.mk deleted file mode 100644 index 6a0522a902b..00000000000 --- a/keyboards/keebio/foldkb/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = keebio/foldkb/rev1 diff --git a/keyboards/keebio/kbo5000/rules.mk b/keyboards/keebio/kbo5000/rules.mk deleted file mode 100644 index 06d2f2f4123..00000000000 --- a/keyboards/keebio/kbo5000/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = keebio/kbo5000/rev1 diff --git a/keyboards/keebio/levinson/rules.mk b/keyboards/keebio/levinson/rules.mk deleted file mode 100644 index 44cdce9d12d..00000000000 --- a/keyboards/keebio/levinson/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = keebio/levinson/rev2 diff --git a/keyboards/keebio/quefrency/rules.mk b/keyboards/keebio/quefrency/rules.mk deleted file mode 100644 index fb40fc8a56f..00000000000 --- a/keyboards/keebio/quefrency/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = keebio/quefrency/rev1 diff --git a/keyboards/keebio/rorschach/rules.mk b/keyboards/keebio/rorschach/rules.mk deleted file mode 100644 index 6cdac68a4e0..00000000000 --- a/keyboards/keebio/rorschach/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = keebio/rorschach/rev1 diff --git a/keyboards/keebio/sinc/rules.mk b/keyboards/keebio/sinc/rules.mk deleted file mode 100644 index 14199574798..00000000000 --- a/keyboards/keebio/sinc/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = keebio/sinc/rev1 diff --git a/keyboards/keebio/viterbi/rules.mk b/keyboards/keebio/viterbi/rules.mk deleted file mode 100644 index ecf6a3fa875..00000000000 --- a/keyboards/keebio/viterbi/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = keebio/viterbi/rev2 diff --git a/keyboards/keycapsss/kimiko/rules.mk b/keyboards/keycapsss/kimiko/rules.mk deleted file mode 100644 index cb9f69d6bbe..00000000000 --- a/keyboards/keycapsss/kimiko/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = keycapsss/kimiko/rev2 diff --git a/keyboards/kin80/rules.mk b/keyboards/kin80/rules.mk deleted file mode 100644 index b264c9cfc5c..00000000000 --- a/keyboards/kin80/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = kin80/blackpill401 diff --git a/keyboards/kumaokobo/kudox/rules.mk b/keyboards/kumaokobo/kudox/rules.mk deleted file mode 100644 index 16c27e7c3b2..00000000000 --- a/keyboards/kumaokobo/kudox/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = kumaokobo/kudox/rev3 diff --git a/keyboards/kumaokobo/kudox_full/rules.mk b/keyboards/kumaokobo/kudox_full/rules.mk deleted file mode 100644 index c912dcd2e5c..00000000000 --- a/keyboards/kumaokobo/kudox_full/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = kumaokobo/kudox_full/rev1 diff --git a/keyboards/kumaokobo/kudox_game/rules.mk b/keyboards/kumaokobo/kudox_game/rules.mk deleted file mode 100644 index 28918ca489f..00000000000 --- a/keyboards/kumaokobo/kudox_game/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = kumaokobo/kudox_game/rev2 diff --git a/keyboards/kumaokobo/pico/rules.mk b/keyboards/kumaokobo/pico/rules.mk deleted file mode 100644 index df859afa0fa..00000000000 --- a/keyboards/kumaokobo/pico/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = kumaokobo/pico/65keys diff --git a/keyboards/lazydesigners/dimple/rules.mk b/keyboards/lazydesigners/dimple/rules.mk deleted file mode 100644 index cd05623d841..00000000000 --- a/keyboards/lazydesigners/dimple/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = lazydesigners/dimple/staggered/rev1 diff --git a/keyboards/lets_split/rules.mk b/keyboards/lets_split/rules.mk deleted file mode 100644 index 0fb6d362043..00000000000 --- a/keyboards/lets_split/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = lets_split/rev2 diff --git a/keyboards/lfkeyboards/lfk87/rules.mk b/keyboards/lfkeyboards/lfk87/rules.mk deleted file mode 100644 index 05b80ac74ad..00000000000 --- a/keyboards/lfkeyboards/lfk87/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = lfkeyboards/lfk78/revc diff --git a/keyboards/lily58/rules.mk b/keyboards/lily58/rules.mk deleted file mode 100644 index a63bd42ad37..00000000000 --- a/keyboards/lily58/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = lily58/rev1 diff --git a/keyboards/lime/rules.mk b/keyboards/lime/rules.mk deleted file mode 100644 index 4643abab937..00000000000 --- a/keyboards/lime/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = lime/rev1 diff --git a/keyboards/maple_computing/ivy/rules.mk b/keyboards/maple_computing/ivy/rules.mk deleted file mode 100644 index 2665d44abd7..00000000000 --- a/keyboards/maple_computing/ivy/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = maple_computing/ivy/rev1 diff --git a/keyboards/maple_computing/launchpad/rules.mk b/keyboards/maple_computing/launchpad/rules.mk deleted file mode 100644 index 8c35a608a6a..00000000000 --- a/keyboards/maple_computing/launchpad/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = maple_computing/launchpad/rev1 diff --git a/keyboards/maple_computing/minidox/rules.mk b/keyboards/maple_computing/minidox/rules.mk deleted file mode 100644 index d5a7f49e402..00000000000 --- a/keyboards/maple_computing/minidox/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = maple_computing/minidox/rev1 diff --git a/keyboards/mariorion_v25/rules.mk b/keyboards/mariorion_v25/rules.mk deleted file mode 100644 index f0bfa47284c..00000000000 --- a/keyboards/mariorion_v25/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mariorion_v25/prod diff --git a/keyboards/marksard/rhymestone/rules.mk b/keyboards/marksard/rhymestone/rules.mk deleted file mode 100644 index 18338887081..00000000000 --- a/keyboards/marksard/rhymestone/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = marksard/rhymestone/rev1 diff --git a/keyboards/marksard/treadstone48/rules.mk b/keyboards/marksard/treadstone48/rules.mk deleted file mode 100644 index 23865d27e63..00000000000 --- a/keyboards/marksard/treadstone48/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = marksard/treadstone48/rev1 diff --git a/keyboards/maxipad/rules.mk b/keyboards/maxipad/rules.mk deleted file mode 100644 index 98a712a7b88..00000000000 --- a/keyboards/maxipad/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = maxipad/promicro diff --git a/keyboards/mechkeys/mechmini/rules.mk b/keyboards/mechkeys/mechmini/rules.mk deleted file mode 100644 index 9d63d875ebe..00000000000 --- a/keyboards/mechkeys/mechmini/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechkeys/mechmini/v2 diff --git a/keyboards/mechllama/g35/rules.mk b/keyboards/mechllama/g35/rules.mk deleted file mode 100644 index 36acf8d17f8..00000000000 --- a/keyboards/mechllama/g35/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechllama/g35/v2 diff --git a/keyboards/mechlovin/adelais/rules.mk b/keyboards/mechlovin/adelais/rules.mk deleted file mode 100644 index a1d2ba038de..00000000000 --- a/keyboards/mechlovin/adelais/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/adelais/standard_led/arm/rev2 diff --git a/keyboards/mechlovin/adelais/standard_led/arm/rev4/rules.mk b/keyboards/mechlovin/adelais/standard_led/arm/rev4/rules.mk deleted file mode 100644 index d348ae660f7..00000000000 --- a/keyboards/mechlovin/adelais/standard_led/arm/rev4/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/adelais/standard_led/arm/rev4/stm32f303 diff --git a/keyboards/mechlovin/adelais/standard_led/arm/rules.mk b/keyboards/mechlovin/adelais/standard_led/arm/rules.mk deleted file mode 100644 index 16a636a342b..00000000000 --- a/keyboards/mechlovin/adelais/standard_led/arm/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/adelais/standard_led/arm/rev2 \ No newline at end of file diff --git a/keyboards/mechlovin/adelais/standard_led/avr/rules.mk b/keyboards/mechlovin/adelais/standard_led/avr/rules.mk deleted file mode 100644 index f33198890dd..00000000000 --- a/keyboards/mechlovin/adelais/standard_led/avr/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ - -DEFAULT_FOLDER = mechlovin/adelais/standard_led/avr/rev1 \ No newline at end of file diff --git a/keyboards/mechlovin/infinity87/rev1/rules.mk b/keyboards/mechlovin/infinity87/rev1/rules.mk deleted file mode 100644 index 101153f240d..00000000000 --- a/keyboards/mechlovin/infinity87/rev1/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/infinity87/rev1/standard diff --git a/keyboards/mechlovin/infinity87/rules.mk b/keyboards/mechlovin/infinity87/rules.mk deleted file mode 100644 index 4aa072cae75..00000000000 --- a/keyboards/mechlovin/infinity87/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/infinity87/rgb_rev1 diff --git a/keyboards/mechlovin/mechlovin9/rules.mk b/keyboards/mechlovin/mechlovin9/rules.mk deleted file mode 100644 index 79de7c7d316..00000000000 --- a/keyboards/mechlovin/mechlovin9/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/mechlovin9/rev1 diff --git a/keyboards/mechlovin/olly/jf/rules.mk b/keyboards/mechlovin/olly/jf/rules.mk deleted file mode 100644 index fa0eceeb8a7..00000000000 --- a/keyboards/mechlovin/olly/jf/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/olly/jf/rev1 diff --git a/keyboards/mechlovin/zed1800/rules.mk b/keyboards/mechlovin/zed1800/rules.mk deleted file mode 100644 index e0088c95c39..00000000000 --- a/keyboards/mechlovin/zed1800/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/zed1800/saber diff --git a/keyboards/mechlovin/zed65/no_backlight/rules.mk b/keyboards/mechlovin/zed65/no_backlight/rules.mk deleted file mode 100644 index a699765498b..00000000000 --- a/keyboards/mechlovin/zed65/no_backlight/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/zed65/no_backlight/wearhaus66 diff --git a/keyboards/mechlovin/zed65/rules.mk b/keyboards/mechlovin/zed65/rules.mk deleted file mode 100644 index a699765498b..00000000000 --- a/keyboards/mechlovin/zed65/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/zed65/no_backlight/wearhaus66 diff --git a/keyboards/mechwild/bde/rules.mk b/keyboards/mechwild/bde/rules.mk deleted file mode 100644 index 138a2919162..00000000000 --- a/keyboards/mechwild/bde/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechwild/bde/rev2 diff --git a/keyboards/mechwild/mokulua/rules.mk b/keyboards/mechwild/mokulua/rules.mk deleted file mode 100644 index 3a87a143e51..00000000000 --- a/keyboards/mechwild/mokulua/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechwild/mokulua/standard \ No newline at end of file diff --git a/keyboards/mechwild/obe/f401/rules.mk b/keyboards/mechwild/obe/f401/rules.mk deleted file mode 100644 index 8709dbb4de3..00000000000 --- a/keyboards/mechwild/obe/f401/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechwild/obe/f401/base diff --git a/keyboards/mechwild/obe/f411/rules.mk b/keyboards/mechwild/obe/f411/rules.mk deleted file mode 100644 index e24fe605094..00000000000 --- a/keyboards/mechwild/obe/f411/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechwild/obe/f411/base diff --git a/keyboards/mechwild/obe/rules.mk b/keyboards/mechwild/obe/rules.mk deleted file mode 100644 index 8709dbb4de3..00000000000 --- a/keyboards/mechwild/obe/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechwild/obe/f401/base diff --git a/keyboards/mechwild/waka60/f401/rules.mk b/keyboards/mechwild/waka60/f401/rules.mk deleted file mode 100644 index a0d74c14eb1..00000000000 --- a/keyboards/mechwild/waka60/f401/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechwild/waka60/f401/base diff --git a/keyboards/mechwild/waka60/f411/rules.mk b/keyboards/mechwild/waka60/f411/rules.mk deleted file mode 100644 index 0dd69ff65f7..00000000000 --- a/keyboards/mechwild/waka60/f411/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechwild/waka60/f411/base diff --git a/keyboards/mechwild/waka60/rules.mk b/keyboards/mechwild/waka60/rules.mk deleted file mode 100644 index a0d74c14eb1..00000000000 --- a/keyboards/mechwild/waka60/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechwild/waka60/f401/base diff --git a/keyboards/murcielago/rules.mk b/keyboards/murcielago/rules.mk deleted file mode 100644 index 661563697a6..00000000000 --- a/keyboards/murcielago/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = murcielago/rev1 \ No newline at end of file diff --git a/keyboards/nullbitsco/scramble/rules.mk b/keyboards/nullbitsco/scramble/rules.mk deleted file mode 100644 index 5753f7786db..00000000000 --- a/keyboards/nullbitsco/scramble/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = nullbitsco/scramble/v2 diff --git a/keyboards/omkbd/ergodash/rules.mk b/keyboards/omkbd/ergodash/rules.mk deleted file mode 100644 index 492cdde65d7..00000000000 --- a/keyboards/omkbd/ergodash/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = omkbd/ergodash/rev1 diff --git a/keyboards/omkbd/runner3680/rules.mk b/keyboards/omkbd/runner3680/rules.mk deleted file mode 100644 index 3460ad89640..00000000000 --- a/keyboards/omkbd/runner3680/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = omkbd/runner3680/5x8 diff --git a/keyboards/orthodox/rules.mk b/keyboards/orthodox/rules.mk deleted file mode 100644 index fd71b6c8fb1..00000000000 --- a/keyboards/orthodox/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = orthodox/rev3 diff --git a/keyboards/peej/rosaline/rules.mk b/keyboards/peej/rosaline/rules.mk deleted file mode 100644 index 928164362a3..00000000000 --- a/keyboards/peej/rosaline/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = peej/rosaline/staggered diff --git a/keyboards/peej/tripel/rules.mk b/keyboards/peej/tripel/rules.mk deleted file mode 100644 index 8d897004565..00000000000 --- a/keyboards/peej/tripel/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = peej/tripel/left diff --git a/keyboards/peranekofactory/tone/rules.mk b/keyboards/peranekofactory/tone/rules.mk deleted file mode 100644 index e87862a9f6e..00000000000 --- a/keyboards/peranekofactory/tone/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = peranekofactory/tone/rev2 diff --git a/keyboards/phase_studio/titan65/rules.mk b/keyboards/phase_studio/titan65/rules.mk deleted file mode 100644 index d55ca35d7a1..00000000000 --- a/keyboards/phase_studio/titan65/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = phase_studio/titan65/hotswap diff --git a/keyboards/pica40/rules.mk b/keyboards/pica40/rules.mk deleted file mode 100644 index 96708897128..00000000000 --- a/keyboards/pica40/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = pica40/rev2 diff --git a/keyboards/pinky/rules.mk b/keyboards/pinky/rules.mk deleted file mode 100644 index 89b708f68f7..00000000000 --- a/keyboards/pinky/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = pinky/3 diff --git a/keyboards/primekb/meridian/rules.mk b/keyboards/primekb/meridian/rules.mk deleted file mode 100644 index 585a04ad287..00000000000 --- a/keyboards/primekb/meridian/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = primekb/meridian/ktr1010 diff --git a/keyboards/primekb/prime_e/rules.mk b/keyboards/primekb/prime_e/rules.mk deleted file mode 100644 index debb966e0d1..00000000000 --- a/keyboards/primekb/prime_e/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = primekb/prime_e/std diff --git a/keyboards/program_yoink/rules.mk b/keyboards/program_yoink/rules.mk deleted file mode 100644 index a7cc1a2dbf2..00000000000 --- a/keyboards/program_yoink/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = program_yoink/staggered diff --git a/keyboards/projectcain/vault35/rules.mk b/keyboards/projectcain/vault35/rules.mk deleted file mode 100644 index 3cf3a331d8d..00000000000 --- a/keyboards/projectcain/vault35/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = projectcain/vault35/atmega32u4 diff --git a/keyboards/qpockets/space_space/rules.mk b/keyboards/qpockets/space_space/rules.mk deleted file mode 100644 index 0ffe2efbf25..00000000000 --- a/keyboards/qpockets/space_space/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = qpockets/space_space/rev2 diff --git a/keyboards/qwertyydox/rules.mk b/keyboards/qwertyydox/rules.mk deleted file mode 100644 index 688444b5663..00000000000 --- a/keyboards/qwertyydox/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = qwertyydox/rev1 diff --git a/keyboards/redox/rev1/rules.mk b/keyboards/redox/rev1/rules.mk deleted file mode 100644 index c971da1680b..00000000000 --- a/keyboards/redox/rev1/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = redox/rev1/base diff --git a/keyboards/rgbkb/mun/rules.mk b/keyboards/rgbkb/mun/rules.mk deleted file mode 100644 index 317c4d5a870..00000000000 --- a/keyboards/rgbkb/mun/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = rgbkb/mun/rev1 diff --git a/keyboards/rgbkb/sol/rules.mk b/keyboards/rgbkb/sol/rules.mk deleted file mode 100644 index f8325017f98..00000000000 --- a/keyboards/rgbkb/sol/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = rgbkb/sol/rev2 diff --git a/keyboards/rgbkb/sol3/rules.mk b/keyboards/rgbkb/sol3/rules.mk deleted file mode 100644 index 74804682a26..00000000000 --- a/keyboards/rgbkb/sol3/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = rgbkb/sol3/rev1 diff --git a/keyboards/rgbkb/zen/rules.mk b/keyboards/rgbkb/zen/rules.mk deleted file mode 100644 index ee94832d4d2..00000000000 --- a/keyboards/rgbkb/zen/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = rgbkb/zen/rev2 diff --git a/keyboards/rgbkb/zygomorph/rules.mk b/keyboards/rgbkb/zygomorph/rules.mk deleted file mode 100644 index 8544e8767d5..00000000000 --- a/keyboards/rgbkb/zygomorph/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = rgbkb/zygomorph/rev1 diff --git a/keyboards/rmi_kb/herringbone/rules.mk b/keyboards/rmi_kb/herringbone/rules.mk deleted file mode 100644 index 1efe9fa4f5e..00000000000 --- a/keyboards/rmi_kb/herringbone/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = rmi_kb/herringbone/v1 diff --git a/keyboards/rmi_kb/mona/rules.mk b/keyboards/rmi_kb/mona/rules.mk deleted file mode 100644 index 54aa705d96d..00000000000 --- a/keyboards/rmi_kb/mona/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = rmi_kb/mona/v1_1 diff --git a/keyboards/rmi_kb/tkl_ff/rules.mk b/keyboards/rmi_kb/tkl_ff/rules.mk deleted file mode 100644 index c8847cc266c..00000000000 --- a/keyboards/rmi_kb/tkl_ff/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = rmi_kb/tkl_ff/v1 diff --git a/keyboards/rmi_kb/wete/rules.mk b/keyboards/rmi_kb/wete/rules.mk deleted file mode 100644 index cda6fbfbe49..00000000000 --- a/keyboards/rmi_kb/wete/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = rmi_kb/wete/v2 diff --git a/keyboards/rookiebwoy/late9/rules.mk b/keyboards/rookiebwoy/late9/rules.mk deleted file mode 100755 index 358facb3caa..00000000000 --- a/keyboards/rookiebwoy/late9/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = rookiebwoy/late9/rev1 diff --git a/keyboards/rookiebwoy/neopad/rules.mk b/keyboards/rookiebwoy/neopad/rules.mk deleted file mode 100755 index c34c04435e3..00000000000 --- a/keyboards/rookiebwoy/neopad/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = rookiebwoy/neopad/rev1 diff --git a/keyboards/rura66/rules.mk b/keyboards/rura66/rules.mk deleted file mode 100644 index 556ec176559..00000000000 --- a/keyboards/rura66/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = rura66/rev1 diff --git a/keyboards/sawnsprojects/okayu/rules.mk b/keyboards/sawnsprojects/okayu/rules.mk deleted file mode 100644 index 59655554eb2..00000000000 --- a/keyboards/sawnsprojects/okayu/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = sawnsprojects/okayu/stm32f072 \ No newline at end of file diff --git a/keyboards/smoll/lefty/rules.mk b/keyboards/smoll/lefty/rules.mk deleted file mode 100644 index 6bc5abbdc55..00000000000 --- a/keyboards/smoll/lefty/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = smoll/lefty/rev2 diff --git a/keyboards/sofle/rules.mk b/keyboards/sofle/rules.mk deleted file mode 100644 index a7307c3499e..00000000000 --- a/keyboards/sofle/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = sofle/rev1 diff --git a/keyboards/spacetime/rules.mk b/keyboards/spacetime/rules.mk deleted file mode 100644 index ac339c2cefb..00000000000 --- a/keyboards/spacetime/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = spacetime/rev1 diff --git a/keyboards/splitkb/aurora/corne/rules.mk b/keyboards/splitkb/aurora/corne/rules.mk deleted file mode 100644 index 9b4b90e9724..00000000000 --- a/keyboards/splitkb/aurora/corne/rules.mk +++ /dev/null @@ -1,16 +0,0 @@ -# Copyright 2022 splitkb.com -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -DEFAULT_FOLDER = splitkb/aurora/corne/rev1 diff --git a/keyboards/splitkb/aurora/helix/rules.mk b/keyboards/splitkb/aurora/helix/rules.mk deleted file mode 100644 index 8130273c1f9..00000000000 --- a/keyboards/splitkb/aurora/helix/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = splitkb/aurora/helix/rev1 \ No newline at end of file diff --git a/keyboards/splitkb/aurora/lily58/rules.mk b/keyboards/splitkb/aurora/lily58/rules.mk deleted file mode 100644 index 1f5b922836f..00000000000 --- a/keyboards/splitkb/aurora/lily58/rules.mk +++ /dev/null @@ -1,16 +0,0 @@ -# Copyright 2022 splitkb.com -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -DEFAULT_FOLDER = splitkb/aurora/lily58/rev1 diff --git a/keyboards/splitkb/aurora/sofle_v2/rules.mk b/keyboards/splitkb/aurora/sofle_v2/rules.mk deleted file mode 100644 index 4a50c4dbb13..00000000000 --- a/keyboards/splitkb/aurora/sofle_v2/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = splitkb/aurora/sofle_v2/rev1 \ No newline at end of file diff --git a/keyboards/splitkb/aurora/sweep/rules.mk b/keyboards/splitkb/aurora/sweep/rules.mk deleted file mode 100644 index ec1e102039d..00000000000 --- a/keyboards/splitkb/aurora/sweep/rules.mk +++ /dev/null @@ -1,16 +0,0 @@ -# Copyright 2022 splitkb.com -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -DEFAULT_FOLDER = splitkb/aurora/sweep/rev1 diff --git a/keyboards/splitkb/kyria/rev1/rules.mk b/keyboards/splitkb/kyria/rev1/rules.mk deleted file mode 100644 index 3a8bfbe0896..00000000000 --- a/keyboards/splitkb/kyria/rev1/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = splitkb/kyria/rev1/base diff --git a/keyboards/splitkb/kyria/rev2/rules.mk b/keyboards/splitkb/kyria/rev2/rules.mk deleted file mode 100644 index fb808070bf8..00000000000 --- a/keyboards/splitkb/kyria/rev2/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = splitkb/kyria/rev2/base diff --git a/keyboards/splitty/rules.mk b/keyboards/splitty/rules.mk deleted file mode 100644 index 68b3198bfba..00000000000 --- a/keyboards/splitty/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = splitty/rev1 diff --git a/keyboards/studiokestra/galatea/rules.mk b/keyboards/studiokestra/galatea/rules.mk deleted file mode 100644 index b5b1db42388..00000000000 --- a/keyboards/studiokestra/galatea/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = studiokestra/galatea/rev1 \ No newline at end of file diff --git a/keyboards/takashiski/hecomi/rules.mk b/keyboards/takashiski/hecomi/rules.mk deleted file mode 100644 index 41002fe272f..00000000000 --- a/keyboards/takashiski/hecomi/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = takashiski/hecomi/alpha diff --git a/keyboards/themadnoodle/noodlepad/rules.mk b/keyboards/themadnoodle/noodlepad/rules.mk deleted file mode 100644 index 318832e1219..00000000000 --- a/keyboards/themadnoodle/noodlepad/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -# Default folder for noodlepad -DEFAULT_FOLDER = themadnoodle/noodlepad/v1 - diff --git a/keyboards/tkw/grandiceps/rules.mk b/keyboards/tkw/grandiceps/rules.mk deleted file mode 100644 index ab8aeff2688..00000000000 --- a/keyboards/tkw/grandiceps/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = tkw/grandiceps/rev1 diff --git a/keyboards/tominabox1/littlefoot_lx/rules.mk b/keyboards/tominabox1/littlefoot_lx/rules.mk deleted file mode 100644 index 4756f7600ff..00000000000 --- a/keyboards/tominabox1/littlefoot_lx/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = tominabox1/littlefoot_lx/rev1 diff --git a/keyboards/tominabox1/underscore33/rules.mk b/keyboards/tominabox1/underscore33/rules.mk deleted file mode 100644 index b5e13fd4208..00000000000 --- a/keyboards/tominabox1/underscore33/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = tominabox1/underscore33/rev1 diff --git a/keyboards/trnthsn/e8ghty/rules.mk b/keyboards/trnthsn/e8ghty/rules.mk deleted file mode 100644 index e06e8fe182d..00000000000 --- a/keyboards/trnthsn/e8ghty/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = trnthsn/e8ghty/stm32f103 diff --git a/keyboards/trnthsn/s6xty5neor2/rules.mk b/keyboards/trnthsn/s6xty5neor2/rules.mk deleted file mode 100644 index 1fc77fba728..00000000000 --- a/keyboards/trnthsn/s6xty5neor2/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = trnthsn/s6xty5neor2/stm32f103 diff --git a/keyboards/tweetydabird/lotus58/rules.mk b/keyboards/tweetydabird/lotus58/rules.mk deleted file mode 100644 index 4cd2262cc77..00000000000 --- a/keyboards/tweetydabird/lotus58/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = tweetydabird/lotus58/promicro \ No newline at end of file diff --git a/keyboards/unison/rules.mk b/keyboards/unison/rules.mk deleted file mode 100644 index 69c33d71a28..00000000000 --- a/keyboards/unison/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = unison/v04 diff --git a/keyboards/uzu42/rules.mk b/keyboards/uzu42/rules.mk deleted file mode 100644 index 277e74b7153..00000000000 --- a/keyboards/uzu42/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = uzu42/rev1 diff --git a/keyboards/vitamins_included/rules.mk b/keyboards/vitamins_included/rules.mk deleted file mode 100644 index e3452d41db9..00000000000 --- a/keyboards/vitamins_included/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = vitamins_included/rev2 diff --git a/keyboards/yanghu/unicorne/rules.mk b/keyboards/yanghu/unicorne/rules.mk deleted file mode 100644 index 96852c8abfe..00000000000 --- a/keyboards/yanghu/unicorne/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = yanghu/unicorne/f411 diff --git a/keyboards/yosino58/rules.mk b/keyboards/yosino58/rules.mk deleted file mode 100644 index c700b6f5b51..00000000000 --- a/keyboards/yosino58/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = yosino58/rev1 diff --git a/keyboards/yushakobo/navpad/10/rules.mk b/keyboards/yushakobo/navpad/10/rules.mk deleted file mode 100644 index 32daeef814d..00000000000 --- a/keyboards/yushakobo/navpad/10/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = yushakobo/navpad/10/rev1 diff --git a/keyboards/yynmt/acperience12/rules.mk b/keyboards/yynmt/acperience12/rules.mk deleted file mode 100644 index cfe8b8ac18f..00000000000 --- a/keyboards/yynmt/acperience12/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = yynmt/acperience12/rev1 From 207dc01d49be315a1bbe77dbb9b48d49e54c1b9e Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 20 Jan 2025 22:47:42 +0000 Subject: [PATCH 190/365] rgbkb/pan - Remove invalid build target (#24844) --- keyboards/rgbkb/pan/rev1/32a/rules.mk | 2 ++ keyboards/rgbkb/pan/{ => rev1/proton_c}/rules.mk | 0 2 files changed, 2 insertions(+) rename keyboards/rgbkb/pan/{ => rev1/proton_c}/rules.mk (100%) diff --git a/keyboards/rgbkb/pan/rev1/32a/rules.mk b/keyboards/rgbkb/pan/rev1/32a/rules.mk index c2ee0bc86f9..f54ef3e9878 100644 --- a/keyboards/rgbkb/pan/rev1/32a/rules.mk +++ b/keyboards/rgbkb/pan/rev1/32a/rules.mk @@ -1,2 +1,4 @@ # Processor frequency F_CPU = 16000000 + +WS2812_DRIVER_REQUIRED = yes diff --git a/keyboards/rgbkb/pan/rules.mk b/keyboards/rgbkb/pan/rev1/proton_c/rules.mk similarity index 100% rename from keyboards/rgbkb/pan/rules.mk rename to keyboards/rgbkb/pan/rev1/proton_c/rules.mk From a98070f21288fae025c6ffa2e08b775fb661bb4b Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 21 Jan 2025 09:53:35 +1100 Subject: [PATCH 191/365] [Docs] Correct I2C API reference (#24840) --- docs/drivers/i2c.md | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/docs/drivers/i2c.md b/docs/drivers/i2c.md index c806a090c56..2ef7afccc9d 100644 --- a/docs/drivers/i2c.md +++ b/docs/drivers/i2c.md @@ -147,7 +147,7 @@ void i2c_init(void) { --- -### `i2c_status_t i2c_transmit(uint8_t address, uint8_t *data, uint16_t length, uint16_t timeout)` {#api-i2c-transmit} +### `i2c_status_t i2c_transmit(uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-transmit} Send multiple bytes to the selected I2C device. @@ -155,7 +155,7 @@ Send multiple bytes to the selected I2C device. - `uint8_t address` The 7-bit I2C address of the device. - - `uint8_t *data` + - `const uint8_t* data` A pointer to the data to transmit. - `uint16_t length` The number of bytes to write. Take care not to overrun the length of `data`. @@ -176,7 +176,7 @@ Receive multiple bytes from the selected I2C device. - `uint8_t address` The 7-bit I2C address of the device. - - `uint8_t *data` + - `uint8_t* data` A pointer to the buffer to read into. - `uint16_t length` The number of bytes to read. Take care not to overrun the length of `data`. @@ -189,7 +189,7 @@ Receive multiple bytes from the selected I2C device. --- -### `i2c_status_t i2c_write_register(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-write-register} +### `i2c_status_t i2c_write_register(uint8_t devaddr, uint8_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-write-register} Writes to a register with an 8-bit address on the I2C device. @@ -199,7 +199,7 @@ Writes to a register with an 8-bit address on the I2C device. The 7-bit I2C address of the device. - `uint8_t regaddr` The register address to write to. - - `uint8_t *data` + - `const uint8_t* data` A pointer to the data to transmit. - `uint16_t length` The number of bytes to write. Take care not to overrun the length of `data`. @@ -212,7 +212,7 @@ Writes to a register with an 8-bit address on the I2C device. --- -### `i2c_status_t i2c_write_register16(uint8_t devaddr, uint16_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-write-register16} +### `i2c_status_t i2c_write_register16(uint8_t devaddr, uint16_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-write-register16} Writes to a register with a 16-bit address (big endian) on the I2C device. @@ -222,10 +222,10 @@ Writes to a register with a 16-bit address (big endian) on the I2C device. The 7-bit I2C address of the device. - `uint16_t regaddr` The register address to write to. - - `uint8_t *data` + - `const uint8_t* data` A pointer to the data to transmit. - `uint16_t length` - The number of bytes to write. Take care not to overrun the length of `data`. + The number of bytes to write. Take care not to overrun the length of `data`. - `uint16_t timeout` The time in milliseconds to wait for a response from the target device. @@ -245,8 +245,10 @@ Reads from a register with an 8-bit address on the I2C device. The 7-bit I2C address of the device. - `uint8_t regaddr` The register address to read from. + - `uint8_t data` + A pointer to a buffer to read into. - `uint16_t length` - The number of bytes to read. Take care not to overrun the length of `data`. + The number of bytes to read. Take care not to overrun the length of `data`. - `uint16_t timeout` The time in milliseconds to wait for a response from the target device. @@ -266,8 +268,10 @@ Reads from a register with a 16-bit address (big endian) on the I2C device. The 7-bit I2C address of the device. - `uint16_t regaddr` The register address to read from. + - `uint8_t* data` + A pointer to a buffer to read into. - `uint16_t length` - The number of bytes to read. Take care not to overrun the length of `data`. + The number of bytes to read. Take care not to overrun the length of `data`. - `uint16_t timeout` The time in milliseconds to wait for a response from the target device. @@ -279,19 +283,19 @@ Reads from a register with a 16-bit address (big endian) on the I2C device. ### `i2c_status_t i2c_ping_address(uint8_t address, uint16_t timeout)` {#api-i2c-ping-address} -Pings the I2C bus for a specific address. +Pings the I2C bus for a specific address. -On ChibiOS a "best effort" attempt is made by reading a single byte from register 0 at the requested address. This should generally work except for I2C devices that do not not respond to a register 0 read request, which will result in a false negative result (unsucessful response to ping attempt). +On ChibiOS a "best effort" attempt is made by reading a single byte from register 0 at the requested address. This should generally work except for I2C devices that do not not respond to a register 0 read request, which will result in a false negative result (unsuccessful response to ping attempt). -This function is weakly defined, meaning it can be overridden if necessary for your particular use case: +This function is weakly defined, meaning it can be overridden if necessary for your particular use case. -#### Arguments +#### Arguments {#api-i2c-ping-address-arguments} - `uint8_t address` The 7-bit I2C address of the device (ie. without the read/write bit - this will be set automatically). - `uint16_t timeout` The time in milliseconds to wait for a response from the target device. -#### Return Value +#### Return Value {#api-i2c-ping-address-return} `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. From 68130cc8a5557ac997a4aa6c95c7f4c67d07229b Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 21 Jan 2025 09:53:46 +1100 Subject: [PATCH 192/365] `ferris/0_1`: update I2C API usage (#24839) --- keyboards/ferris/0_1/matrix.c | 45 +++++++++++++----------------- keyboards/ferris/0_2/matrix.c | 3 +- platforms/avr/drivers/i2c_master.h | 3 -- 3 files changed, 21 insertions(+), 30 deletions(-) diff --git a/keyboards/ferris/0_1/matrix.c b/keyboards/ferris/0_1/matrix.c index a3e2bebba6c..c05b193c1a0 100644 --- a/keyboards/ferris/0_1/matrix.c +++ b/keyboards/ferris/0_1/matrix.c @@ -29,7 +29,7 @@ along with this program. If not, see . #include "i2c_master.h" extern i2c_status_t mcp23017_status; -#define I2C_TIMEOUT 1000 +#define MCP23017_I2C_TIMEOUT 1000 // For a better understanding of the i2c protocol, this is a good read: // https://www.robot-electronics.co.uk/i2c-tutorial @@ -41,9 +41,7 @@ extern i2c_status_t mcp23017_status; // All address pins of the mcp23017 are connected to the ground on the ferris // | 0 | 1 | 0 | 0 | A2 | A1 | A0 | // | 0 | 1 | 0 | 0 | 0 | 0 | 0 | -#define I2C_ADDR 0b0100000 -#define I2C_ADDR_WRITE ((I2C_ADDR << 1) | I2C_WRITE) -#define I2C_ADDR_READ ((I2C_ADDR << 1) | I2C_READ) +#define I2C_ADDR (0b0100000 << 1) // Register addresses // See https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library/blob/master/Adafruit_MCP23017.h @@ -51,8 +49,8 @@ extern i2c_status_t mcp23017_status; #define IODIRB 0x01 #define GPPUA 0x0C // GPIO pull-up resistor register #define GPPUB 0x0D -#define GPIOA 0x12 // general purpose i/o port register (write modifies OLAT) -#define GPIOB 0x13 +#define MCP23017_GPIOA 0x12 // general purpose i/o port register (write modifies OLAT) +#define MCP23017_GPIOB 0x13 #define OLATA 0x14 // output latch register #define OLATB 0x15 @@ -60,14 +58,14 @@ bool i2c_initialized = 0; i2c_status_t mcp23017_status = I2C_ADDR; uint8_t init_mcp23017(void) { - print("starting init"); + print("init mcp23017\n"); mcp23017_status = I2C_ADDR; // I2C subsystem if (i2c_initialized == 0) { i2c_init(); // on pins D(1,0) i2c_initialized = true; - wait_ms(I2C_TIMEOUT); + wait_ms(MCP23017_I2C_TIMEOUT); } // set pin direction @@ -76,8 +74,10 @@ uint8_t init_mcp23017(void) { // - driving : output : 0 // This means: we will read all the bits on GPIOA // This means: we will write to the pins 0-4 on GPIOB (in select_rows) - uint8_t buf[] = {IODIRA, 0b11111111, 0b11110000}; - mcp23017_status = i2c_transmit(I2C_ADDR_WRITE, buf, sizeof(buf), I2C_TIMEOUT); + uint8_t buf[] = {0b11111111, 0b11110000}; + print("before transmit\n"); + mcp23017_status = i2c_write_register(I2C_ADDR, IODIRA, buf, sizeof(buf), MCP23017_I2C_TIMEOUT); + uprintf("after transmit %i\n", mcp23017_status); if (!mcp23017_status) { // set pull-up // - unused : on : 1 @@ -85,8 +85,8 @@ uint8_t init_mcp23017(void) { // - driving : off : 0 // This means: we will read all the bits on GPIOA // This means: we will write to the pins 0-4 on GPIOB (in select_rows) - uint8_t pullup_buf[] = {GPPUA, 0b11111111, 0b11110000}; - mcp23017_status = i2c_transmit(I2C_ADDR_WRITE, pullup_buf, sizeof(pullup_buf), I2C_TIMEOUT); + mcp23017_status = i2c_write_register(I2C_ADDR, GPPUA, buf, sizeof(buf), MCP23017_I2C_TIMEOUT); + uprintf("after transmit2 %i\n", mcp23017_status); } return mcp23017_status; } @@ -144,12 +144,12 @@ bool matrix_scan_custom(matrix_row_t current_matrix[]) { // if (++mcp23017_reset_loop >= 1300) { // since mcp23017_reset_loop is 8 bit - we'll try to reset once in 255 matrix scans // this will be approx bit more frequent than once per second - dprint("trying to reset mcp23017\n"); + print("trying to reset mcp23017\n"); mcp23017_status = init_mcp23017(); if (mcp23017_status) { - dprint("right side not responding\n"); + print("right side not responding\n"); } else { - dprint("right side attached\n"); + print("right side attached\n"); } } } @@ -204,18 +204,13 @@ static matrix_row_t read_cols(uint8_t row) { if (mcp23017_status) { // if there was an error return 0; } else { - uint8_t buf[] = {GPIOA}; - mcp23017_status = i2c_transmit(I2C_ADDR_WRITE, buf, sizeof(buf), I2C_TIMEOUT); // We read all the pins on GPIOA. // The initial state was all ones and any depressed key at a given column for the currently selected row will have its bit flipped to zero. // The return value is a row as represented in the generic matrix code were the rightmost bits represent the lower columns and zeroes represent non-depressed keys while ones represent depressed keys. // Since the pins connected to eact columns are sequential, and counting from zero up (col 5 -> GPIOA0, col 6 -> GPIOA1 and so on), the only transformation needed is a bitwise not to swap all zeroes and ones. uint8_t data[] = {0}; - if (!mcp23017_status) { - mcp23017_status = i2c_receive(I2C_ADDR_READ, data, sizeof(data), I2C_TIMEOUT); - data[0] = ~(data[0]); - } - return data[0]; + mcp23017_status = i2c_read_register(I2C_ADDR, MCP23017_GPIOA, data, sizeof(data), MCP23017_I2C_TIMEOUT); + return ~data[0]; } } } @@ -236,7 +231,7 @@ static void unselect_rows(void) { static void select_row(uint8_t row) { if (row < MATRIX_ROWS_PER_SIDE) { - // select on atmega32u4 + // select on MCU pin_t matrix_row_pins_mcu[MATRIX_ROWS_PER_SIDE] = MATRIX_ROW_PINS_MCU; pin_t pin = matrix_row_pins_mcu[row]; gpio_set_pin_output(pin); @@ -248,8 +243,8 @@ static void select_row(uint8_t row) { } else { // Select the desired row by writing a byte for the entire GPIOB bus where only the bit representing the row we want to select is a zero (write instruction) and every other bit is a one. // Note that the row - MATRIX_ROWS_PER_SIDE reflects the fact that being on the right hand, the columns are numbered from MATRIX_ROWS_PER_SIDE to MATRIX_ROWS, but the pins we want to write to are indexed from zero up on the GPIOB bus. - uint8_t buf[] = {GPIOB, 0xFF & ~(1 << (row - MATRIX_ROWS_PER_SIDE))}; - mcp23017_status = i2c_transmit(I2C_ADDR_WRITE, buf, sizeof(buf), I2C_TIMEOUT); + uint8_t buf[] = {0xFF & ~(1 << (row - MATRIX_ROWS_PER_SIDE))}; + mcp23017_status = i2c_write_register(I2C_ADDR, MCP23017_GPIOB, buf, sizeof(buf), MCP23017_I2C_TIMEOUT); } } } diff --git a/keyboards/ferris/0_2/matrix.c b/keyboards/ferris/0_2/matrix.c index 74fab717a1a..76bbcaf7b5f 100644 --- a/keyboards/ferris/0_2/matrix.c +++ b/keyboards/ferris/0_2/matrix.c @@ -30,8 +30,7 @@ along with this program. If not, see . extern i2c_status_t mcp23017_status; #define MCP23017_I2C_TIMEOUT 1000 -#define I2C_WRITE 0x00 -#define I2C_READ 0x01 + // For a better understanding of the i2c protocol, this is a good read: // https://www.robot-electronics.co.uk/i2c-tutorial diff --git a/platforms/avr/drivers/i2c_master.h b/platforms/avr/drivers/i2c_master.h index 258bb2b9bf2..ad92caa55aa 100644 --- a/platforms/avr/drivers/i2c_master.h +++ b/platforms/avr/drivers/i2c_master.h @@ -21,9 +21,6 @@ #include -#define I2C_READ 0x01 -#define I2C_WRITE 0x00 - typedef int16_t i2c_status_t; #define I2C_STATUS_SUCCESS (0) From 163b894b97a5c8cf9ab80179b4d59999077ad8d5 Mon Sep 17 00:00:00 2001 From: Rory Chatterton Date: Tue, 21 Jan 2025 11:01:02 +1100 Subject: [PATCH 193/365] Updated Licence Violations for Chosfox L75 (#24833) Co-authored-by: Joel Challis --- docs/license_violations.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/license_violations.md b/docs/license_violations.md index f899deb07c3..3cb0f29efdd 100644 --- a/docs/license_violations.md +++ b/docs/license_violations.md @@ -20,6 +20,7 @@ If you own a board from one of the following vendors already, consider asking th | Vendor | Reason | |------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | BBB Keyboard | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | +| Chosfox | Selling L75 wired/wireless boards based on QMK without sources, just `via.json` provided. Raised on discord over multiple weeks without response. | | CIDOO | Selling wired boards based on QMK without sources, just `via.json` provided. | | Darmoshark | Selling wired boards based on QMK without sources, just `via.json` provided. | | Epomaker | Lots of historical keyboards with `via.json` but no corresponding sources. Wireless code for a small handful provided, pending core cleanup for QMK upstreaming. Most other boards have source nowhere to be seen. | From 5650894c2047a0cf5e77456ba7e62763dd8ba04f Mon Sep 17 00:00:00 2001 From: Brian Hill <51302710+TrojanPinata@users.noreply.github.com> Date: Fri, 24 Jan 2025 12:33:38 -0500 Subject: [PATCH 194/365] Add Model-B keyboard (#24681) * Add Model-B keyboard * PR changes for Model-B * Update to OLED on Model-B * added license to pass lint check * update virtual eeprom for Model-B * eeconfig_read_kb() update on Model-B * cleanup changes for Model B * implementing Model B suggestions --- keyboards/trojan_pinata/model_b/readme.md | 32 ++ keyboards/trojan_pinata/model_b/rev0/config.h | 14 + .../trojan_pinata/model_b/rev0/keyboard.json | 122 ++++++ .../model_b/rev0/keymaps/default/keymap.c | 47 +++ .../trojan_pinata/model_b/rev0/mcuconf.h | 24 ++ keyboards/trojan_pinata/model_b/rev0/rev0.c | 397 ++++++++++++++++++ keyboards/trojan_pinata/model_b/rev0/rev0.h | 21 + 7 files changed, 657 insertions(+) create mode 100644 keyboards/trojan_pinata/model_b/readme.md create mode 100644 keyboards/trojan_pinata/model_b/rev0/config.h create mode 100644 keyboards/trojan_pinata/model_b/rev0/keyboard.json create mode 100644 keyboards/trojan_pinata/model_b/rev0/keymaps/default/keymap.c create mode 100644 keyboards/trojan_pinata/model_b/rev0/mcuconf.h create mode 100644 keyboards/trojan_pinata/model_b/rev0/rev0.c create mode 100644 keyboards/trojan_pinata/model_b/rev0/rev0.h diff --git a/keyboards/trojan_pinata/model_b/readme.md b/keyboards/trojan_pinata/model_b/readme.md new file mode 100644 index 00000000000..3d6ac2199de --- /dev/null +++ b/keyboards/trojan_pinata/model_b/readme.md @@ -0,0 +1,32 @@ +# Model-B + +A 75% keyboard based on the RP2040. + +* Keyboard Maintainer: [Brian Hill](https://github.com/TrojanPinata) +* Hardware Supported: [GitHub](https://github.com/TrojanPinata/Model-B) + +## Revisions + +At the current moment there is only one variant of the Model-B, the rev-0 (aka the prototype board). Any others are clones and may not have the exact firmware requirements. + +## Building and Flashing + +Make example for this keyboard (after setting up your build environment): + + make trojan_pinata/model-b/rev0:default + +Flashing example for this keyboard: + + make trojan_pinata/model-b/rev0:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top left key and plug in the keyboard. This will also clear the emulated EEPROM, so it is a good first step if the keyboard is misbehaving. +* **Physical reset button**: Hold down the `BOOTSEL` button on the Pi Pico, then either plug the board in or press the `RESET` button. +* **Keycode in layout**: Press the key mapped to `QK_BOOT`. In the pre-supplied keymaps it is on the second layer, replacing the Esc key. + +After entering the bootloader through one of the three methods above, the keyboard will appear as a USB mass storage device named `RPI-RP2`. If the CLI is unable to find this device, the compiled `.uf2` file can be manually copied to it. The keyboard will reboot on completion with the new firmware loaded. diff --git a/keyboards/trojan_pinata/model_b/rev0/config.h b/keyboards/trojan_pinata/model_b/rev0/config.h new file mode 100644 index 00000000000..df905919280 --- /dev/null +++ b/keyboards/trojan_pinata/model_b/rev0/config.h @@ -0,0 +1,14 @@ +// Copyright 2022 Stefan Kerkmann +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U + +// settings for the oled keyboard demo with Adafruit 0.91" OLED display on the Stemma QT port +#define I2C_DRIVER I2CD0 +#define I2C1_SDA_PIN GP0 +#define I2C1_SCL_PIN GP1 + +#define OLED_TIMEOUT 3000000 // 5 minutes before oled turns off diff --git a/keyboards/trojan_pinata/model_b/rev0/keyboard.json b/keyboards/trojan_pinata/model_b/rev0/keyboard.json new file mode 100644 index 00000000000..82d712d6fcc --- /dev/null +++ b/keyboards/trojan_pinata/model_b/rev0/keyboard.json @@ -0,0 +1,122 @@ +{ + "manufacturer": "Trojan_Pinata", + "keyboard_name": "Model-B", + "maintainer": "Trojan_Pinata", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "GP27", "pin_b": "GP26"} + ] + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "oled": true, + "encoder": true + }, + "matrix_pins": { + "cols": ["GP8", "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15", "GP16", "GP17", "GP18", "GP19", "GP20", "GP21", "GP22"], + "rows": ["GP2", "GP3", "GP4", "GP5", "GP6", "GP7"] + }, + "processor": "RP2040", + "url": "https://github.com/TrojanPinata/Model-B", + "usb": { + "device_version": "1.0.0", + "pid": "0xA500", + "vid": "0xE739" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 1.25, "y": 0}, + {"matrix": [0, 3], "x": 2.25, "y": 0}, + {"matrix": [0, 4], "x": 3.25, "y": 0}, + {"matrix": [0, 5], "x": 4.25, "y": 0}, + {"matrix": [0, 6], "x": 5.5, "y": 0}, + {"matrix": [0, 7], "x": 6.5, "y": 0}, + {"matrix": [0, 8], "x": 7.5, "y": 0}, + {"matrix": [0, 9], "x": 8.5, "y": 0}, + {"matrix": [0, 10], "x": 9.75, "y": 0}, + {"matrix": [0, 11], "x": 10.75, "y": 0}, + {"matrix": [0, 12], "x": 11.75, "y": 0}, + {"matrix": [0, 13], "x": 12.75, "y": 0}, + {"matrix": [0, 14], "x": 15.75, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2}, + {"matrix": [1, 14], "x": 15.25, "y": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.5}, + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 12], "x": 14, "y": 0}, + {"matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, + {"matrix": [3, 14], "x": 16.25, "y": 1.5}, + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 1], "x": 2.25, "y": 4.5}, + {"matrix": [4, 2], "x": 3.25, "y": 4.5}, + {"matrix": [4, 3], "x": 4.25, "y": 4.5}, + {"matrix": [4, 4], "x": 5.25, "y": 4.5}, + {"matrix": [4, 5], "x": 6.25, "y": 4.5}, + {"matrix": [4, 6], "x": 7.25, "y": 4.5}, + {"matrix": [4, 7], "x": 8.25, "y": 4.5}, + {"matrix": [4, 8], "x": 9.25, "y": 4.5}, + {"matrix": [4, 9], "x": 10.25, "y": 4.5}, + {"matrix": [4, 10], "x": 11.25, "y": 4.5}, + {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, + {"matrix": [4, 13], "x": 14.3, "y": 4.6}, + {"matrix": [4, 14], "x": 16.25, "y": 2.5}, + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, + {"matrix": [5, 9], "x": 10, "y": 5.5}, + {"matrix": [5, 10], "x": 11, "y": 5.5}, + {"matrix": [5, 11], "x": 12, "y": 5.5}, + {"matrix": [5, 12], "x": 13.3, "y": 5.6}, + {"matrix": [5, 13], "x": 14.3, "y": 5.6}, + {"matrix": [5, 14], "x": 15.3, "y": 5.6} + ] + } + } +} diff --git a/keyboards/trojan_pinata/model_b/rev0/keymaps/default/keymap.c b/keyboards/trojan_pinata/model_b/rev0/keymaps/default/keymap.c new file mode 100644 index 00000000000..56c4657e7ba --- /dev/null +++ b/keyboards/trojan_pinata/model_b/rev0/keymaps/default/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2024 Brian H (@Trojan_Pinata) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// keymaps +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, + + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, QK_KB, KC_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + QK_BOOT, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_MUTE, + + EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, + DB_TOGG, _______, _______, KC_MYCM, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MSTP, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, + _______, _______, _______, _______, _______, _______, _______, KC_EXEC, _______, _______ + ) +}; + +// encoder handling +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______) }, +}; +#endif diff --git a/keyboards/trojan_pinata/model_b/rev0/mcuconf.h b/keyboards/trojan_pinata/model_b/rev0/mcuconf.h new file mode 100644 index 00000000000..57e58e14d78 --- /dev/null +++ b/keyboards/trojan_pinata/model_b/rev0/mcuconf.h @@ -0,0 +1,24 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include_next + +#undef RP_I2C_USE_I2C0 +#define RP_I2C_USE_I2C0 TRUE + +#undef RP_I2C_USE_I2C1 +#define RP_I2C_USE_I2C1 TRUE diff --git a/keyboards/trojan_pinata/model_b/rev0/rev0.c b/keyboards/trojan_pinata/model_b/rev0/rev0.c new file mode 100644 index 00000000000..02cd92f0da3 --- /dev/null +++ b/keyboards/trojan_pinata/model_b/rev0/rev0.c @@ -0,0 +1,397 @@ +/* Copyright 2024 Brian H (@Trojan_Pinata) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "rev0.h" + +// NUM_MODES stays last to indicate the number of different screens possible +enum oled_modes { + MTNS, INFO, LOGO, MEW, CEL, RAY, NUM_MODES +}; + +// define the key that switches the display +enum keeb_codes { + OLED_MOD = QK_KB, +}; + +// virtual eeprom for storing last layer +typedef union { + uint32_t raw; + struct { + uint8_t display_mode_saved : 3; + }; +} keyboard_config_t; +keyboard_config_t keyboard_config; + +void keyboard_pre_init_kb(void) { + keyboard_config.raw = eeconfig_read_kb(); + keyboard_pre_init_user(); +} + +void eeconfig_init_kb(void) { + keyboard_config.raw = 0; + keyboard_config.display_mode_saved = INFO; + eeconfig_update_kb(keyboard_config.raw); + eeconfig_init_user(); +} + +// oled stuff below +#ifdef OLED_ENABLE + +// hold only let me just drop all of my embedded images rq +static const char PROGMEM bootscreen[] = { + // 'modelb-oled', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, + 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, + 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x0f, 0x7f, 0xfe, + 0xf0, 0x80, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xfe, 0x3f, 0x07, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0xf0, 0xfc, 0xfe, 0x3f, 0x0f, 0x03, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x07, 0x1f, + 0x3f, 0xfe, 0xfc, 0xf0, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x07, + 0x0f, 0x1f, 0xfe, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, + 0xc1, 0xc1, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe1, + 0xe1, 0xe1, 0xe3, 0xff, 0xff, 0xbf, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x03, + 0x1f, 0x7f, 0xfc, 0xf0, 0xfe, 0x7f, 0x0f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x07, 0x1f, 0x3f, 0x7e, 0xf8, 0xf0, 0xe0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xe0, 0xf0, 0x7c, + 0x7f, 0x3f, 0x1f, 0x07, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xe0, 0xf0, + 0xf8, 0x7c, 0x3f, 0x1f, 0x07, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, + 0xc1, 0xc1, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, + 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc1, + 0xc1, 0xc1, 0xc1, 0xe1, 0xff, 0xff, 0x7f, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const char PROGMEM mnts_l0[] = { + // 'base', 128x32px + 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0xa0, 0xb0, 0xf0, 0xd0, 0xd0, 0xf8, 0xfc, 0xdc, 0xfe, + 0xff, 0xff, 0xff, 0xdf, 0xde, 0xde, 0x9c, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xf0, 0x90, 0xa0, 0x40, + 0x40, 0x40, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, + 0x40, 0x40, 0x20, 0x20, 0x20, 0x90, 0xd0, 0xd0, 0xc8, 0xe8, 0xec, 0xe4, 0xfc, 0xfa, 0xfa, 0xfa, + 0xf4, 0xe4, 0xe4, 0xc8, 0xc8, 0xd8, 0x90, 0x90, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x80, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x80, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x00, 0x40, 0x60, + 0x30, 0x10, 0xf8, 0x0c, 0x06, 0x02, 0x00, 0x10, 0x08, 0x18, 0x3f, 0xe8, 0x08, 0x24, 0x3c, 0x0c, + 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x04, 0xfe, 0x00, 0x00, + 0xb9, 0x3d, 0x3d, 0x7c, 0x3e, 0x3f, 0x3f, 0x1d, 0x0d, 0x0f, 0x0b, 0x1f, 0x1f, 0x1f, 0x1f, 0x0b, + 0x0f, 0x0f, 0x0f, 0x03, 0x03, 0x03, 0x05, 0x07, 0x0f, 0x0b, 0x0b, 0x13, 0x13, 0x37, 0x7f, 0xf7, + 0xf7, 0xf8, 0xf0, 0xf8, 0xf8, 0xf1, 0xe1, 0xf3, 0x12, 0xd2, 0xd1, 0xd1, 0x11, 0x00, 0xc0, 0xc0, + 0xe0, 0xf0, 0x78, 0x78, 0xf9, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0xff, 0xff, 0x1f, + 0x0f, 0x0f, 0x0f, 0x1f, 0x1f, 0x1f, 0x0f, 0x1f, 0x1e, 0x1e, 0x1f, 0x1c, 0x39, 0x39, 0x3a, 0x3c, + 0x79, 0x79, 0xf2, 0xe2, 0xe4, 0xe5, 0x85, 0x49, 0x48, 0x08, 0xd0, 0xd0, 0x90, 0x20, 0x20, 0x40, + 0x40, 0x40, 0xc1, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, + 0x0b, 0x0f, 0x0f, 0x1f, 0x2f, 0x7c, 0x7c, 0xf8, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x08, 0x0f, 0x0f, 0x0f, + 0x07, 0x03, 0x07, 0x07, 0x07, 0x07, 0x0f, 0x1f, 0x1f, 0x3f, 0x7e, 0x7f, 0xff, 0x78, 0xf8, 0xe0, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x0f, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x07, 0x07, 0x07, 0x03, 0x00, 0x03, 0x03, 0x03, 0x03, 0x06, + 0x0e, 0x0e, 0x0c, 0x0c, 0x00, 0x03, 0x47, 0x46, 0xc6, 0x8c, 0x8c, 0x0c, 0x18, 0x30, 0x63, 0x4c, + 0x50, 0xcc, 0x83, 0x00, 0x00, 0x12, 0x1f, 0x10, 0x00, 0x10, 0x00, 0x0e, 0x15, 0x13, 0x0e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0x60, 0x61, 0x61, 0x60, 0x60, 0x60, 0x60, 0x60, + 0x70, 0x70, 0x30, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x1c, 0x1c, 0x07, 0x0f, 0x1f, + 0x1f, 0x1f, 0x1e, 0x1e, 0x1e, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x18, 0x10, 0x30, 0x30, + 0x30, 0x30, 0x38, 0x38, 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xf8, 0xf8, 0xf0, 0xf0, 0x60, + 0x60, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0x80, 0x80, 0x40, 0x60, + 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x60, 0x20, 0x20, 0x60, 0x20, 0x60, 0x60, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x03, 0x02, 0x06, 0x06, 0x0c, 0x08, 0x08, 0x10, 0x30, 0x20, 0x20, 0x60 +}; + +static const char PROGMEM mnts_l1[] = { + // 'alt', 128x32px + 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0xa0, 0xb0, 0xf0, 0xd0, 0xd0, 0xf8, 0xfc, 0xdc, 0xfe, + 0xff, 0xff, 0xff, 0xdf, 0xde, 0xde, 0x9c, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xf0, 0x90, 0xa0, 0x40, + 0x40, 0x40, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, + 0x40, 0x40, 0x20, 0x20, 0x20, 0x90, 0xd0, 0xd0, 0xc8, 0xe8, 0xec, 0xe4, 0xfc, 0xfa, 0xfa, 0xfa, + 0xf4, 0xe4, 0xe4, 0xc8, 0xc8, 0xd8, 0x90, 0x90, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x80, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x80, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x00, 0x40, 0x60, + 0x30, 0x10, 0xf8, 0x0c, 0x06, 0x02, 0x00, 0x10, 0x08, 0x18, 0x3f, 0xe8, 0x08, 0x24, 0x3c, 0x0c, + 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x04, 0x82, 0x42, 0x22, 0x1c, 0x00, + 0xb9, 0x3d, 0x3d, 0x7c, 0x3e, 0x3f, 0x3f, 0x1d, 0x0d, 0x0f, 0x0b, 0x1f, 0x1f, 0x1f, 0x1f, 0x0b, + 0x0f, 0x0f, 0x0f, 0x03, 0x03, 0x03, 0x05, 0x07, 0x0f, 0x0b, 0x0b, 0x13, 0x13, 0x37, 0x7f, 0xf7, + 0xf7, 0xf8, 0xf0, 0xf8, 0xf8, 0xf1, 0xe1, 0xf3, 0x12, 0xd2, 0xd1, 0xd1, 0x11, 0x00, 0xc0, 0xc0, + 0xe0, 0xf0, 0x78, 0x78, 0xf9, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0xff, 0xff, 0x1f, + 0x0f, 0x0f, 0x0f, 0x1f, 0x1f, 0x1f, 0x0f, 0x1f, 0x1e, 0x1e, 0x1f, 0x1c, 0x39, 0x39, 0x3a, 0x3c, + 0x79, 0x79, 0xf2, 0xe2, 0xe4, 0xe5, 0x85, 0x49, 0x48, 0x08, 0xd0, 0xd0, 0x90, 0x20, 0x20, 0x40, + 0x40, 0x40, 0xc1, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x02, 0x02, 0x02, 0x02, 0x00, + 0x0b, 0x0f, 0x0f, 0x1f, 0x2f, 0x7c, 0x7c, 0xf8, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x08, 0x0f, 0x0f, 0x0f, + 0x07, 0x03, 0x07, 0x07, 0x07, 0x07, 0x0f, 0x1f, 0x1f, 0x3f, 0x7e, 0x7f, 0xff, 0x78, 0xf8, 0xe0, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x0f, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x07, 0x07, 0x07, 0x03, 0x00, 0x03, 0x03, 0x03, 0x03, 0x06, + 0x0e, 0x0e, 0x0c, 0x0c, 0x00, 0x03, 0x47, 0x46, 0xc6, 0x8c, 0x8c, 0x0c, 0x18, 0x30, 0x63, 0x4c, + 0x50, 0xcc, 0x83, 0x00, 0x00, 0x12, 0x1f, 0x10, 0x00, 0x10, 0x00, 0x0e, 0x15, 0x13, 0x0e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0x60, 0x61, 0x61, 0x60, 0x60, 0x60, 0x60, 0x60, + 0x70, 0x70, 0x30, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x1c, 0x1c, 0x07, 0x0f, 0x1f, + 0x1f, 0x1f, 0x1e, 0x1e, 0x1e, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x18, 0x10, 0x30, 0x30, + 0x30, 0x30, 0x38, 0x38, 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xf8, 0xf8, 0xf0, 0xf0, 0x60, + 0x60, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0x80, 0x80, 0x40, 0x60, + 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x60, 0x20, 0x20, 0x60, 0x20, 0x60, 0x60, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x03, 0x02, 0x06, 0x06, 0x0c, 0x08, 0x08, 0x10, 0x30, 0x20, 0x20, 0x60 +}; + +static const char PROGMEM mew_disp[] = { + // 'mewl2', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, + 0x60, 0x50, 0x10, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x08, + 0x04, 0xc4, 0xf2, 0xfa, 0x7e, 0x3e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0xa0, 0x20, 0x00, 0x10, + 0x10, 0x10, 0x10, 0x0c, 0x02, 0x22, 0x42, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x34, 0xf2, 0xf2, 0xc2, 0x01, 0x00, 0xc0, 0xa0, 0xe0, 0x28, + 0x50, 0x00, 0x00, 0x00, 0x01, 0x1a, 0xf8, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x70, 0xe0, + 0xff, 0xff, 0xc7, 0x81, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf8, 0x78, 0x78, 0x3c, 0x3c, 0x1c, 0x1c, 0x3c, 0x38, + 0x78, 0xf0, 0xe0, 0xc0, 0x00, 0x01, 0x06, 0x08, 0x30, 0xc0, 0x00, 0x00, 0x00, 0x41, 0xc0, 0x80, + 0x80, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x61, 0xde, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x8c, 0xd9, 0x7b, 0x53, 0x10, + 0x08, 0x18, 0x38, 0x3c, 0x36, 0x2f, 0x6b, 0x75, 0x92, 0xee, 0x18, 0xe4, 0xfc, 0x78, 0x00, 0xc1, + 0xb7, 0xcf, 0xf3, 0xfc, 0xfd, 0xef, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xfe, 0xf9, + 0xf0, 0xf9, 0xff, 0x7f, 0x1f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x90, + 0x08, 0x09, 0x9f, 0xff, 0xff, 0xf8, 0x00, 0x38, 0xc6, 0x81, 0x8e, 0x70, 0x50, 0x50, 0x53, 0xe2, + 0x83, 0x01, 0x62, 0xab, 0xa8, 0xa8, 0x50, 0x54, 0x50, 0x89, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0e, 0x0d, 0x0c, 0x04, 0x06, 0x1e, 0x6e, + 0x80, 0x00, 0x00, 0x38, 0x08, 0x84, 0xc4, 0xfe, 0x07, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x3e, 0x7f, + 0x7f, 0x3f, 0x0f, 0x01, 0x83, 0x7c, 0x01, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0xc8, 0x84, 0x86, 0xcf, + 0xb7, 0x81, 0x80, 0x41, 0x43, 0x8c, 0x92, 0xe1, 0x61, 0x53, 0x2e, 0x11, 0x11, 0x19, 0x2c, 0xd0, + 0x20, 0x41, 0x40, 0x40, 0x24, 0x30, 0x20, 0x20, 0xf0, 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const char PROGMEM cel_disp[] = { + // 'celebi1', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0x20, 0xc0, 0xe0, 0xe0, 0xf0, 0xdc, 0xee, 0xf0, 0xbe, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x60, 0xc0, 0x81, 0x80, 0x80, 0xc0, + 0xc0, 0x80, 0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x00, 0x80, 0xc0, 0xc0, 0xc0, + 0x60, 0xb0, 0xcc, 0xf0, 0x3f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0xc0, 0xf8, 0xfc, 0xfc, 0xfb, + 0xf4, 0xff, 0xff, 0x7f, 0x1f, 0xcf, 0x67, 0xe3, 0xc7, 0x0f, 0x9f, 0xff, 0x3e, 0xc0, 0xf0, 0x78, + 0x90, 0xe0, 0xf2, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0x3f, + 0x3f, 0x3b, 0x3e, 0x79, 0xfe, 0xfe, 0xff, 0xfe, 0x7c, 0xfc, 0xf8, 0xd8, 0xf0, 0xf0, 0xb0, 0xa0, + 0xa0, 0xa0, 0xe0, 0xe0, 0x60, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0e, 0x31, 0x40, 0xf0, 0xf8, 0xfc, 0xfe, 0xf0, 0xff, 0xf0, 0xff, 0x7f, 0x3f, 0xbf, 0x9f, + 0x9f, 0x1f, 0x3f, 0xfe, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x87, 0x8f, 0x9f, + 0x9f, 0x9f, 0xc7, 0xcc, 0xd8, 0xd8, 0x98, 0x3c, 0xfc, 0xf7, 0xfb, 0x1c, 0x1d, 0x1e, 0x1e, 0x1f, + 0x0f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x87, 0xcf, 0x6d, 0xf8, 0x72, 0xf4, + 0xf4, 0x90, 0x20, 0x20, 0xa7, 0x6f, 0x6f, 0x6b, 0x0b, 0x06, 0x06, 0x05, 0x05, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, + 0xc0, 0xc0, 0xc0, 0xc0, 0x83, 0x8f, 0x9f, 0x3f, 0x7f, 0x5f, 0xff, 0x71, 0xe0, 0xe1, 0x60, 0x62, + 0x27, 0x30, 0x18, 0x9f, 0xcf, 0xc3, 0xc0, 0xc0, 0xc0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0xe0, 0xe0, 0xc8, 0x9c, 0xf8, 0x60, 0x28, 0x3c, 0x7e, 0x7e, 0xfe, 0xff, 0xfc, 0xe1, + 0x07, 0x1f, 0x3f, 0x3e, 0x7d, 0x7b, 0x73, 0x72, 0xe2, 0xe0, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, + 0x01, 0x01, 0xc1, 0xc1, 0x03, 0x03, 0x03, 0x23, 0x01, 0x0d, 0x06, 0x07, 0x37, 0x33, 0x01, 0x01, + 0x07, 0x0e, 0x3c, 0x39, 0x79, 0x71, 0x71, 0x60, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const char PROGMEM rayq_disp[] = { + // 'rayquaza1', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, + 0x10, 0x20, 0x20, 0x40, 0x40, 0x40, 0x70, 0x70, 0x71, 0x50, 0x60, 0x60, 0x60, 0x40, 0x80, 0x80, + 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xc0, 0x80, 0x00, 0xc0, 0x60, 0x00, 0x00, 0x80, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0xc0, 0xc0, + 0xe0, 0x60, 0x70, 0x70, 0x7b, 0x7b, 0xfb, 0xfb, 0xf8, 0xb0, 0xb0, 0xd0, 0x60, 0x30, 0x10, 0x08, + 0x0c, 0x84, 0x86, 0x83, 0x81, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x30, 0x1c, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xf0, 0x11, 0x12, 0x10, 0x10, 0x0e, 0x0e, 0x0c, 0x0c, 0x07, + 0x07, 0x0f, 0x0f, 0x03, 0x06, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x9f, 0xf3, 0x3e, 0xe7, 0xfc, 0x7f, 0x3f, 0x0f, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x3c, 0x2e, 0x57, 0x17, 0x1b, 0x1d, 0x36, + 0x36, 0x3d, 0x31, 0x31, 0x39, 0x3d, 0x3d, 0x1d, 0x1f, 0x1f, 0xcf, 0x3f, 0x07, 0x00, 0x00, 0x81, + 0x83, 0x83, 0x83, 0x03, 0x07, 0x07, 0x07, 0x0f, 0x0e, 0x1e, 0x1c, 0x3c, 0x78, 0xf8, 0xf0, 0xe0, + 0x00, 0x40, 0xc0, 0x00, 0x60, 0x38, 0x38, 0x20, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfe, 0xff, 0x7f, 0xfe, 0xec, 0xf8, 0x7c, 0x3c, + 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xcf, 0x80, 0x07, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x08, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xc1, + 0x07, 0x0f, 0x9f, 0xbe, 0x78, 0xf0, 0xc0, 0x00, 0x80, 0x00, 0x80, 0x30, 0x30, 0x30, 0x11, 0x19, + 0x18, 0x02, 0x07, 0x1f, 0x1f, 0x3c, 0x73, 0xcf, 0x0f, 0x0f, 0x0f, 0x17, 0x2f, 0x56, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x1d, 0x3b, 0xff, 0xff, 0xfc, 0xf8, 0xf0, + 0x60, 0xc0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x68, 0x78, 0x10, 0x00, 0x18, 0x90, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x7f, 0xff, 0xfc, 0xf8, 0xe0, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, + 0xf0, 0xf0, 0xf0, 0xf1, 0xe1, 0x41, 0x04, 0x1e, 0xcf, 0xc7, 0x44, 0x63, 0x59, 0x6d, 0x0a, 0x03, + 0x03, 0x0c, 0x0e, 0x05, 0x03, 0x02, 0x02, 0x1b, 0xec, 0x67, 0x5b, 0x1c, 0x8c, 0xcc, 0xdc, 0x30, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xc0, 0x3f, 0xfc, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +// invert display based on layer +static void inv_display(void) { + switch (get_highest_layer(layer_state)) { + case 1: + oled_invert(true); + break; + default: + oled_invert(false); + break; + } +} + +// MTNS +static void mountains(void) { + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_raw_P(mnts_l0, sizeof(mnts_l0)); + break; + case 1: + oled_write_raw_P(mnts_l1, sizeof(mnts_l1)); + break; + default: + oled_write_raw_P(mnts_l0, sizeof(mnts_l0)); + break; + } +} + +// INFO +static void info(void) { + // get layer the board is on + oled_write_P(PSTR("LAYER "), false); + oled_write_P(PSTR(" "), true); + oled_write_char(get_highest_layer(layer_state) + 0x30, true); + oled_write_P(PSTR(" "), true); + + // here we do a bit of trickery + oled_write_P(PSTR(" ENC "), false); + oled_write_P(PSTR(" VOL "), true); + + // lock key statuses + led_t led_state = host_keyboard_led_state(); + oled_set_cursor(9, 1); + oled_write_P(PSTR(" CAP "), led_state.caps_lock); + oled_set_cursor(14, 1); + oled_write_P(PSTR(" SCR "), led_state.scroll_lock); + + // write model B here in invert text + oled_set_cursor(0, 3); + oled_write_P(PSTR(" MODEL-B "), true); + + // mod masks - if you don't know what these do, don't worry about them + uint8_t mod_state = get_mods(); + oled_advance_char(); + oled_advance_char(); + oled_write_P(PSTR("S"), mod_state & MOD_MASK_SHIFT); + oled_advance_char(); + oled_write_P(PSTR("C"), mod_state & MOD_MASK_CTRL); + oled_advance_char(); + oled_write_P(PSTR("A"), mod_state & MOD_MASK_ALT); + oled_advance_char(); + oled_write_P(PSTR("G"), mod_state & MOD_MASK_GUI); + oled_advance_char(); +} + +// display logo - used on boot and exception state +static void logo(void) { + oled_write_raw_P(bootscreen, sizeof(bootscreen)); +} + +// run this whenever the oled needs to update +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + + switch (keyboard_config.display_mode_saved) { + case MTNS: + mountains(); + break; + case INFO: + info(); + break; + case LOGO: + oled_write_raw_P(bootscreen, sizeof(bootscreen)); // write image to screen + inv_display(); // invert image if necessary - remove if layer differs + break; + case MEW: + oled_write_raw_P(mew_disp, sizeof(mew_disp)); + inv_display(); + break; + case CEL: + oled_write_raw_P(cel_disp, sizeof(cel_disp)); + inv_display(); + break; + case RAY: + oled_write_raw_P(rayq_disp, sizeof(rayq_disp)); + inv_display(); + break; + default: + logo(); + } + return false; +} + +// render this on boot/reset +void oled_render_boot(bool bootloader) { + oled_clear(); + logo(); + oled_render_dirty(true); +} + +// change depending on if OLED_MOD is pressed +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } + if (keycode == OLED_MOD && record->event.pressed) { + oled_clear(); + keyboard_config.display_mode_saved++; + if (keyboard_config.display_mode_saved == NUM_MODES) { + keyboard_config.display_mode_saved = 0; + } + eeconfig_update_kb(keyboard_config.raw); + } + return true; +} + +#endif diff --git a/keyboards/trojan_pinata/model_b/rev0/rev0.h b/keyboards/trojan_pinata/model_b/rev0/rev0.h new file mode 100644 index 00000000000..18906806c98 --- /dev/null +++ b/keyboards/trojan_pinata/model_b/rev0/rev0.h @@ -0,0 +1,21 @@ +/* Copyright 2024 Brian H (@Trojan_Pinata) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +void oled_render_boot(bool bootloader); From 6a9ccae18d6a9cd39dbbd5c0fb9aa26f4742c2f7 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Fri, 24 Jan 2025 19:11:38 -0800 Subject: [PATCH 195/365] Fix missing wait.h include in Dip Switch Map (#24863) --- quantum/dip_switch.c | 1 + 1 file changed, 1 insertion(+) diff --git a/quantum/dip_switch.c b/quantum/dip_switch.c index 69cf6652919..65ae21175b4 100644 --- a/quantum/dip_switch.c +++ b/quantum/dip_switch.c @@ -64,6 +64,7 @@ __attribute__((weak)) bool dip_switch_update_mask_kb(uint32_t state) { #ifdef DIP_SWITCH_MAP_ENABLE # include "keymap_introspection.h" # include "action.h" +# include "wait.h" # ifndef DIP_SWITCH_MAP_KEY_DELAY # define DIP_SWITCH_MAP_KEY_DELAY TAP_CODE_DELAY From a6e931400ead19d3d34ca4a57785d1512dc2d12b Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 25 Jan 2025 17:38:12 +1100 Subject: [PATCH 196/365] Relocate base WS2812 code (#24850) --- builddefs/common_features.mk | 2 ++ drivers/{ => led}/ws2812.c | 0 drivers/{ => led}/ws2812.h | 0 keyboards/ibm/model_m/mschwingen/mschwingen.c | 5 ++++- 4 files changed, 6 insertions(+), 1 deletion(-) rename drivers/{ => led}/ws2812.c (100%) rename drivers/{ => led}/ws2812.h (100%) diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index 989048d7174..c88ce36011c 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -944,6 +944,8 @@ ifeq ($(strip $(WS2812_DRIVER_REQUIRED)), yes) OPT_DEFS += -DWS2812_$(strip $(shell echo $(WS2812_DRIVER) | tr '[:lower:]' '[:upper:]')) + COMMON_VPATH += $(DRIVER_PATH)/led + SRC += ws2812.c ws2812_$(strip $(WS2812_DRIVER)).c ifeq ($(strip $(PLATFORM)), CHIBIOS) diff --git a/drivers/ws2812.c b/drivers/led/ws2812.c similarity index 100% rename from drivers/ws2812.c rename to drivers/led/ws2812.c diff --git a/drivers/ws2812.h b/drivers/led/ws2812.h similarity index 100% rename from drivers/ws2812.h rename to drivers/led/ws2812.h diff --git a/keyboards/ibm/model_m/mschwingen/mschwingen.c b/keyboards/ibm/model_m/mschwingen/mschwingen.c index cb4854d8d1a..34a878c7699 100644 --- a/keyboards/ibm/model_m/mschwingen/mschwingen.c +++ b/keyboards/ibm/model_m/mschwingen/mschwingen.c @@ -19,9 +19,12 @@ #include "uart.h" #include "print.h" #include "sendchar.h" -#include "ws2812.h" #include "sleep_led.h" +#ifdef KEYBOARD_ibm_model_m_mschwingen_led_ws2812 +#include "ws2812.h" +#endif + #ifdef UART_DEBUG # undef sendchar static int8_t capture_sendchar(uint8_t c) { From 0a049163f148cd07cf2f58ce31b5809bfbacee18 Mon Sep 17 00:00:00 2001 From: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Sun, 26 Jan 2025 02:58:38 +1100 Subject: [PATCH 197/365] [License Violation] add pressplayid (#24869) add pressplayid lic viol Co-authored-by: Xelus22 <> --- docs/license_violations.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/license_violations.md b/docs/license_violations.md index 3cb0f29efdd..81a6ba517f7 100644 --- a/docs/license_violations.md +++ b/docs/license_violations.md @@ -33,6 +33,7 @@ If you own a board from one of the following vendors already, consider asking th | mmd / Smartmmd / i-game.tech | Ambiguity on PRs -- marketing says wireless, PR author said wired-only, then included wireless code anyway. Seemingly intentionally deceptive. | | MyKeyClub | Community-supported JRIS75, vendor was contacted by community members and refused to cooperate. | | owlab | Selling wired based on QMK without sources, just `via.json` provided. Ambiguous as to whether or not wireless firmware is based on QMK, given that their configuration tool looks very similar to VIA. | +| pressplayid | Selling wired and tri-mode boards based on QMK without sources, just `via.json` provided | | qwertykeys | Selling wired and tri-mode boards based on QMK without sources, just `via.json` provided. | | Redragon | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | | Royal Kludge | PRs for fake boards in order to attain VIA compatibility identified. Lots of other keyboards with `via.json` but no corresponding sources, attempted upstreaming crippled firmware without wireless. Wireless code for some provided, pending core cleanup for QMK upstreaming. PRs including different manufacturer names as well. | From 5f711f04f163deaa4b781fc0ff5a13b6b81024c1 Mon Sep 17 00:00:00 2001 From: Thanh Son Tran <62438883+trnthsn@users.noreply.github.com> Date: Sun, 26 Jan 2025 00:06:29 +0700 Subject: [PATCH 198/365] [Keyboard] Add Support E8ghtyNeo (#24859) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update support S6xty5 * Delete chconf.h * Update manufacturer, community layout for hhkb * Update layout * fix row index * Update tyson60s * Update community layout and layout name * Update remove rgb test mode * Update capslock led * Apply suggestions from code review Co-authored-by: Duncan Sutherland * Remove deprecated s6xty5 * handle init e8ghtyneo firmware * Update qk boot firmware * Update firmware e8ghtyNeo * Update matrix * update manufacture * Update copyright --------- Co-authored-by: Trần Thanh Sơn Co-authored-by: Duncan Sutherland --- keyboards/trnthsn/e8ghtyneo/config.h | 23 + keyboards/trnthsn/e8ghtyneo/halconf.h | 21 + keyboards/trnthsn/e8ghtyneo/info.json | 992 ++++++++++++++++++ .../e8ghtyneo/keymaps/default/keymap.c | 39 + keyboards/trnthsn/e8ghtyneo/mcuconf.h | 22 + keyboards/trnthsn/e8ghtyneo/readme.md | 27 + .../trnthsn/e8ghtyneo/stm32f072/keyboard.json | 4 + .../trnthsn/e8ghtyneo/stm32f103/keyboard.json | 4 + 8 files changed, 1132 insertions(+) create mode 100644 keyboards/trnthsn/e8ghtyneo/config.h create mode 100644 keyboards/trnthsn/e8ghtyneo/halconf.h create mode 100644 keyboards/trnthsn/e8ghtyneo/info.json create mode 100644 keyboards/trnthsn/e8ghtyneo/keymaps/default/keymap.c create mode 100644 keyboards/trnthsn/e8ghtyneo/mcuconf.h create mode 100644 keyboards/trnthsn/e8ghtyneo/readme.md create mode 100644 keyboards/trnthsn/e8ghtyneo/stm32f072/keyboard.json create mode 100644 keyboards/trnthsn/e8ghtyneo/stm32f103/keyboard.json diff --git a/keyboards/trnthsn/e8ghtyneo/config.h b/keyboards/trnthsn/e8ghtyneo/config.h new file mode 100644 index 00000000000..5e5c1eb155c --- /dev/null +++ b/keyboards/trnthsn/e8ghtyneo/config.h @@ -0,0 +1,23 @@ +/* +Copyright 2025 Tyson.Keebs + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define WS2812_SPI_DRIVER SPID2 +#define WS2812_SPI_MOSI_PAL_MODE 0 +#define WS2812_SPI_SCK_PAL_MODE 0 +#define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/trnthsn/e8ghtyneo/halconf.h b/keyboards/trnthsn/e8ghtyneo/halconf.h new file mode 100644 index 00000000000..75fea51332e --- /dev/null +++ b/keyboards/trnthsn/e8ghtyneo/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2025 Tyson.Keebs + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_SPI TRUE + +#include_next diff --git a/keyboards/trnthsn/e8ghtyneo/info.json b/keyboards/trnthsn/e8ghtyneo/info.json new file mode 100644 index 00000000000..fef6259d241 --- /dev/null +++ b/keyboards/trnthsn/e8ghtyneo/info.json @@ -0,0 +1,992 @@ +{ + "manufacturer": "Tyson.Keebs", + "keyboard_name": "E8ghtyNeo", + "maintainer": "trnthsn", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["A9", "A8", "B14", "B12", "B11", "B10", "B0", "A7", "A6", "A4", "A3", "A2", "A1", "A0", "C13", "B9", "B7"], + "rows": ["B8", "A10", "B1", "A5", "C15", "C14"] + }, + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "default": { + "animation": "rainbow_mood" + }, + "led_count": 4, + "sleep": true + }, + "ws2812": { + "pin": "B15", + "driver": "spi" + }, + "indicators": { + "caps_lock": "B3" + }, + "url": "", + "usb": { + "vid": "0x5453", + "pid": "0x3845", + "device_version": "0.0.1" + }, + "community_layouts": [ + "tkl_ansi_tsangan", + "tkl_ansi_tsangan_split_bs_rshift", + "tkl_iso_tsangan", + "tkl_iso_tsangan_split_bs_rshift" + ], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 1.25}, + {"label": "Delete", "matrix": [1, 13], "x": 14, "y": 1.25}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "#", "matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 3.25, "w": 1.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"label": "\\", "matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "Shift", "matrix": [4, 13], "x": 14, "y": 4.25}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 1.25}, + {"label": "Delete", "matrix": [1, 13], "x": 14, "y": 1.25}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "Shift", "matrix": [4, 13], "x": 14, "y": 4.25}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_wkl": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_wkl_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 1.25}, + {"label": "Delete", "matrix": [1, 13], "x": 14, "y": 1.25}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "Shift", "matrix": [4, 13], "x": 14, "y": 4.25}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "#", "matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"label": "\\", "matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "Fn", "matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_tsangan_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 1.25}, + {"label": "Delete", "matrix": [1, 13], "x": 14, "y": 1.25}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "#", "matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"label": "\\", "matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "Shift", "matrix": [4, 13], "x": 14, "y": 4.25}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "Fn", "matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_wkl": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "#", "matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"label": "\\", "matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_wkl_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 1.25}, + {"label": "Delete", "matrix": [1, 13], "x": 14, "y": 1.25}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "#", "matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"label": "\\", "matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "Shift", "matrix": [4, 13], "x": 14, "y": 4.25}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/trnthsn/e8ghtyneo/keymaps/default/keymap.c b/keyboards/trnthsn/e8ghtyneo/keymaps/default/keymap.c new file mode 100644 index 00000000000..31f1b5208a6 --- /dev/null +++ b/keyboards/trnthsn/e8ghtyneo/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + // │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │Prs│Srk│Ps │ + // └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + // ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ + // │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Bsp│ │Ins│Hm │PgU│ + // ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ + // │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ + // ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤ └───┴───┴───┘ + // │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │Ent │ + // ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ ┌───┐ + // │Sft │Sft│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │Fn │ │ ↑ │ + // ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + // │Ctrl │Win│Alt │ │Alt │Win│Ctrl │ │ ← │ ↓ │ → │ + // └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, UG_TOGG, _______, _______, _______, _______, UG_NEXT, UG_VALD, UG_VALU, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_VOLD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/trnthsn/e8ghtyneo/mcuconf.h b/keyboards/trnthsn/e8ghtyneo/mcuconf.h new file mode 100644 index 00000000000..e96308a9a17 --- /dev/null +++ b/keyboards/trnthsn/e8ghtyneo/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2025 Tyson.Keebs + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE diff --git a/keyboards/trnthsn/e8ghtyneo/readme.md b/keyboards/trnthsn/e8ghtyneo/readme.md new file mode 100644 index 00000000000..7c7419e773c --- /dev/null +++ b/keyboards/trnthsn/e8ghtyneo/readme.md @@ -0,0 +1,27 @@ +# E8ghtyNeo + +![E8ghtyNeo](https://imgur.com/YXYfqzZ.png) + +A TKL keyboard PCB compatible with Neo80. Supports Neo80 keyboard like an out-of-the-box PCB without any modification. + +* Keyboard Maintainer: [Trnthsn](https://github.com/trnthsn) +* Hardware Supported: STM32, E8ghtyNeo, Neo80 +* Hardware Availability: [ThanhSon.Mech](https://www.facebook.com/ThanhSon.mech) + +Make example for this keyboard (after setting up your build environment): + + make trnthsn/e8ghtyneo/stm32f072:default + +Flashing example for this keyboard: + + make trnthsn/e8ghtyneo/stm32f072:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/trnthsn/e8ghtyneo/stm32f072/keyboard.json b/keyboards/trnthsn/e8ghtyneo/stm32f072/keyboard.json new file mode 100644 index 00000000000..b5d728b1cdf --- /dev/null +++ b/keyboards/trnthsn/e8ghtyneo/stm32f072/keyboard.json @@ -0,0 +1,4 @@ +{ + "processor": "STM32F072", + "bootloader": "stm32-dfu", +} diff --git a/keyboards/trnthsn/e8ghtyneo/stm32f103/keyboard.json b/keyboards/trnthsn/e8ghtyneo/stm32f103/keyboard.json new file mode 100644 index 00000000000..5b2b6bc7d93 --- /dev/null +++ b/keyboards/trnthsn/e8ghtyneo/stm32f103/keyboard.json @@ -0,0 +1,4 @@ +{ + "processor": "STM32F103", + "bootloader": "uf2boot", +} From 291d154d7b13efb83f24c76df26277f32b9f0a58 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 26 Jan 2025 23:46:46 +1100 Subject: [PATCH 199/365] Unify UART headers (#24855) * Remove deprecated defines * Move default config to .c files * Unify UART headers * Clean up docs * Reorganise PAL mode defaults --- docs/drivers/uart.md | 26 +-- drivers/uart.h | 62 ++++++++ platforms/avr/drivers/uart.h | 39 ----- platforms/chibios/drivers/uart.h | 200 ------------------------ platforms/chibios/drivers/uart_serial.c | 83 ++++++++++ platforms/chibios/drivers/uart_sio.c | 67 ++++++++ 6 files changed, 225 insertions(+), 252 deletions(-) create mode 100644 drivers/uart.h delete mode 100644 platforms/avr/drivers/uart.h delete mode 100644 platforms/chibios/drivers/uart.h diff --git a/docs/drivers/uart.md b/docs/drivers/uart.md index 7cc68727eec..b895266cab2 100644 --- a/docs/drivers/uart.md +++ b/docs/drivers/uart.md @@ -45,17 +45,17 @@ To enable UART, modify your board's `mcuconf.h` to enable the peripheral you've Configuration-wise, you'll need to set up the peripheral as per your MCU's datasheet -- the defaults match the pins for a Proton-C, i.e. STM32F303. -| `config.h` override | Description | Default Value | -| --------------------------- | --------------------------------------------------------------- | ------------- | -| `#define UART_DRIVER` | USART peripheral to use - USART1 -> `SD1`, USART2 -> `SD2` etc. | `SD1` | -| `#define UART_TX_PIN` | The pin to use for TX | `A9` | -| `#define UART_TX_PAL_MODE` | The alternate function mode for TX | `7` | -| `#define UART_RX_PIN` | The pin to use for RX | `A10` | -| `#define UART_RX_PAL_MODE` | The alternate function mode for RX | `7` | -| `#define UART_CTS_PIN` | The pin to use for CTS | `A11` | -| `#define UART_CTS_PAL_MODE` | The alternate function mode for CTS | `7` | -| `#define UART_RTS_PIN` | The pin to use for RTS | `A12` | -| `#define UART_RTS_PAL_MODE` | The alternate function mode for RTS | `7` | +|`config.h` Override|Description |Default| +|-------------------|---------------------------------------------------------------|-------| +|`UART_DRIVER` |USART peripheral to use - USART1 -> `SD1`, USART2 -> `SD2` etc.|`SD1` | +|`UART_TX_PIN` |The pin to use for TX |`A9` | +|`UART_TX_PAL_MODE` |The alternate function mode for TX |`7` | +|`UART_RX_PIN` |The pin to use for RX |`A10` | +|`UART_RX_PAL_MODE` |The alternate function mode for RX |`7` | +|`UART_CTS_PIN` |The pin to use for CTS |`A11` | +|`UART_CTS_PAL_MODE`|The alternate function mode for CTS |`7` | +|`UART_RTS_PIN` |The pin to use for RTS |`A12` | +|`UART_RTS_PAL_MODE`|The alternate function mode for RTS |`7` | ## API {#api} @@ -111,7 +111,7 @@ Receive multiple bytes. #### Arguments {#api-uart-receive-arguments} - `uint8_t *data` - A pointer to the buffer to read into. + A pointer to a buffer to read into. - `uint16_t length` The number of bytes to read. Take care not to overrun the length of `data`. @@ -123,4 +123,4 @@ Return whether the receive buffer contains data. Call this function to determine #### Return Value {#api-uart-available-return} -`true` if the receive buffer length is non-zero. +`true` if there is data available to read. diff --git a/drivers/uart.h b/drivers/uart.h new file mode 100644 index 00000000000..c5068c86e1c --- /dev/null +++ b/drivers/uart.h @@ -0,0 +1,62 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include +#include + +/** + * \file + * + * \defgroup uart UART API + * + * \brief API to communicate with UART devices. + * \{ + */ + +/** + * \brief Initialize the UART driver. This function must be called only once, before any of the below functions can be called. + * + * \param baud The baud rate to transmit and receive at. This may depend on the device you are communicating with. Common values are 1200, 2400, 4800, 9600, 19200, 38400, 57600, and 115200. + */ +void uart_init(uint32_t baud); + +/** + * \brief Transmit a single byte. + * + * \param data The byte to write. + */ +void uart_write(uint8_t data); + +/** + * \brief Receive a single byte. + * + * \return The byte read from the receive buffer. This function will block if the buffer is empty (ie. no data to read). + */ +uint8_t uart_read(void); + +/** + * \brief Transmit multiple bytes. + * + * \param data A pointer to the data to write from. + * \param length The number of bytes to write. Take care not to overrun the length of `data`. + */ +void uart_transmit(const uint8_t *data, uint16_t length); + +/** + * \brief Receive multiple bytes. + * + * \param data A pointer to a buffer to read into. + * \param length The number of bytes to read. Take care not to overrun the length of `data`. + */ +void uart_receive(uint8_t *data, uint16_t length); + +/** + * \brief Return whether the receive buffer contains data. Call this function to determine if `uart_read()` will return data immediately. + * + * \return true if there is data available to read. + */ +bool uart_available(void); + +/** \} */ diff --git a/platforms/avr/drivers/uart.h b/platforms/avr/drivers/uart.h deleted file mode 100644 index e2dc664eda5..00000000000 --- a/platforms/avr/drivers/uart.h +++ /dev/null @@ -1,39 +0,0 @@ -/* UART Example for Teensy USB Development Board - * http://www.pjrc.com/teensy/ - * Copyright (c) 2009 PJRC.COM, LLC - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -#pragma once - -#include -#include - -void uart_init(uint32_t baud); - -void uart_write(uint8_t data); - -uint8_t uart_read(void); - -void uart_transmit(const uint8_t *data, uint16_t length); - -void uart_receive(uint8_t *data, uint16_t length); - -bool uart_available(void); diff --git a/platforms/chibios/drivers/uart.h b/platforms/chibios/drivers/uart.h deleted file mode 100644 index c1945575f13..00000000000 --- a/platforms/chibios/drivers/uart.h +++ /dev/null @@ -1,200 +0,0 @@ -// Copyright 2024 Stefan Kerkmann -// Copyright 2021 QMK -// Copyright 2024 Stefan Kerkmann -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include -#include - -#include - -#include "gpio.h" -#include "chibios_config.h" - -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef SERIAL_DRIVER -# define UART_DRIVER SERIAL_DRIVER -#endif -#ifdef SD1_TX_PIN -# define UART_TX_PIN SD1_TX_PIN -#endif -#ifdef SD1_RX_PIN -# define UART_RX_PIN SD1_RX_PIN -#endif -#ifdef SD1_CTS_PIN -# define UART_CTS_PIN SD1_CTS_PIN -#endif -#ifdef SD1_RTS_PIN -# define UART_RTS_PIN SD1_RTS_PIN -#endif -#ifdef SD1_TX_PAL_MODE -# define UART_TX_PAL_MODE SD1_TX_PAL_MODE -#endif -#ifdef SD1_RX_PAL_MODE -# define UART_RX_PAL_MODE SD1_RX_PAL_MODE -#endif -#ifdef SD1_CTS_PAL_MODE -# define UART_RTS_PAL_MODE SD1_CTS_PAL_MODE -#endif -#ifdef SD1_RTS_PAL_MODE -# define UART_TX_PAL_MODE SD1_RTS_PAL_MODE -#endif -#ifdef SD1_CR1 -# define UART_CR1 SD1_CR1 -#endif -#ifdef SD1_CR2 -# define UART_CR2 SD1_CR2 -#endif -#ifdef SD1_CR3 -# define UART_CR3 SD1_CR3 -#endif -#ifdef SD1_WRDLEN -# define UART_WRDLEN SD1_WRDLEN -#endif -#ifdef SD1_STPBIT -# define UART_STPBIT SD1_STPBIT -#endif -#ifdef SD1_PARITY -# define UART_PARITY SD1_PARITY -#endif -#ifdef SD1_ATFLCT -# define UART_ATFLCT SD1_ATFLCT -#endif -// ======== - -#ifndef UART_DRIVER -# if (HAL_USE_SERIAL == TRUE) -# define UART_DRIVER SD1 -# elif (HAL_USE_SIO == TRUE) -# define UART_DRIVER SIOD1 -# endif -#endif - -#ifndef UART_TX_PIN -# define UART_TX_PIN A9 -#endif - -#ifndef UART_RX_PIN -# define UART_RX_PIN A10 -#endif - -#ifndef UART_CTS_PIN -# define UART_CTS_PIN A11 -#endif - -#ifndef UART_RTS_PIN -# define UART_RTS_PIN A12 -#endif - -#ifdef USE_GPIOV1 -# ifndef UART_TX_PAL_MODE -# define UART_TX_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL -# endif -# ifndef UART_RX_PAL_MODE -# define UART_RX_PAL_MODE PAL_MODE_INPUT -# endif -# ifndef UART_CTS_PAL_MODE -# define UART_CTS_PAL_MODE PAL_MODE_INPUT -# endif -# ifndef UART_RTS_PAL_MODE -# define UART_RTS_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL -# endif -#else -# ifndef UART_TX_PAL_MODE -# define UART_TX_PAL_MODE 7 -# endif - -# ifndef UART_RX_PAL_MODE -# define UART_RX_PAL_MODE 7 -# endif - -# ifndef UART_CTS_PAL_MODE -# define UART_CTS_PAL_MODE 7 -# endif - -# ifndef UART_RTS_PAL_MODE -# define UART_RTS_PAL_MODE 7 -# endif -#endif - -#ifndef UART_CR1 -# define UART_CR1 0 -#endif - -#ifndef UART_CR2 -# define UART_CR2 0 -#endif - -#ifndef UART_CR3 -# define UART_CR3 0 -#endif - -#ifndef UART_WRDLEN -# define UART_WRDLEN 3 -#endif - -#ifndef UART_STPBIT -# define UART_STPBIT 0 -#endif - -#ifndef UART_PARITY -# define UART_PARITY 0 -#endif - -#ifndef UART_ATFLCT -# define UART_ATFLCT 0 -#endif - -/** - * @brief Initialize the UART driver. This function must be called only once, - * before any of the below functions can be called. - * - * @param baud The baud rate to transmit and receive at. This may depend on the - * device you are communicating with. Common values are 1200, 2400, 4800, 9600, - * 19200, 38400, 57600, and 115200. - */ -void uart_init(uint32_t baud); - -/** - * @brief Transmit a single byte. - * - * @param data The byte to transmit. - */ -void uart_write(uint8_t data); - -/** - * @brief Receive a single byte. - * - * @return uint8_t The byte read from the receive buffer. This function will - * block if the buffer is empty (ie. no data to read). - */ -uint8_t uart_read(void); - -/** - * @brief Transmit multiple bytes. - * - * @param data A pointer to the data to write from. - * @param length The number of bytes to write. Take care not to overrun the - * length of `data`. - */ -void uart_transmit(const uint8_t *data, uint16_t length); - -/** - * @brief Receive multiple bytes. - * - * @param data A pointer to the buffer to read into. - * @param length The number of bytes to read. Take care not to overrun the - * length of `data`. - */ -void uart_receive(uint8_t *data, uint16_t length); - -/** - * @brief Return whether the receive buffer contains data. Call this function - * to determine if `uart_read()` will return data immediately. - * - * @return true If there is data available to read. - * @return false If there is no data available to read. - */ -bool uart_available(void); diff --git a/platforms/chibios/drivers/uart_serial.c b/platforms/chibios/drivers/uart_serial.c index 6aff4eae47a..e0afb9768a1 100644 --- a/platforms/chibios/drivers/uart_serial.c +++ b/platforms/chibios/drivers/uart_serial.c @@ -3,6 +3,89 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include "uart.h" +#include "gpio.h" +#include "chibios_config.h" +#include + +#ifndef UART_DRIVER +# define UART_DRIVER SD1 +#endif + +#ifndef UART_TX_PIN +# define UART_TX_PIN A9 +#endif + +#ifndef UART_TX_PAL_MODE +# ifdef USE_GPIOV1 +# define UART_TX_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL +# else +# define UART_TX_PAL_MODE 7 +# endif +#endif + +#ifndef UART_RX_PIN +# define UART_RX_PIN A10 +#endif + +#ifndef UART_RX_PAL_MODE +# ifdef USE_GPIOV1 +# define UART_RX_PAL_MODE PAL_MODE_INPUT +# else +# define UART_RX_PAL_MODE 7 +# endif +#endif + +#ifndef UART_CTS_PIN +# define UART_CTS_PIN A11 +#endif + +#ifndef UART_CTS_PAL_MODE +# ifdef USE_GPIOV1 +# define UART_CTS_PAL_MODE PAL_MODE_INPUT +# else +# define UART_CTS_PAL_MODE 7 +# endif +#endif + +#ifndef UART_RTS_PIN +# define UART_RTS_PIN A12 +#endif + +#ifndef UART_RTS_PAL_MODE +# ifdef USE_GPIOV1 +# define UART_RTS_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL +# else +# define UART_RTS_PAL_MODE 7 +# endif +#endif + +#ifndef UART_CR1 +# define UART_CR1 0 +#endif + +#ifndef UART_CR2 +# define UART_CR2 0 +#endif + +#ifndef UART_CR3 +# define UART_CR3 0 +#endif + +#ifndef UART_WRDLEN +# define UART_WRDLEN 3 +#endif + +#ifndef UART_STPBIT +# define UART_STPBIT 0 +#endif + +#ifndef UART_PARITY +# define UART_PARITY 0 +#endif + +#ifndef UART_ATFLCT +# define UART_ATFLCT 0 +#endif #if defined(MCU_KINETIS) static SerialConfig serialConfig = {SERIAL_DEFAULT_BITRATE}; diff --git a/platforms/chibios/drivers/uart_sio.c b/platforms/chibios/drivers/uart_sio.c index 442df1c54d8..fc12f0abed9 100644 --- a/platforms/chibios/drivers/uart_sio.c +++ b/platforms/chibios/drivers/uart_sio.c @@ -3,6 +3,73 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include "uart.h" +#include "gpio.h" +#include "chibios_config.h" +#include + +#ifndef UART_DRIVER +# define UART_DRIVER SIOD1 +#endif + +#ifndef UART_TX_PIN +# define UART_TX_PIN A9 +#endif + +#ifndef UART_TX_PAL_MODE +# ifdef USE_GPIOV1 +# define UART_TX_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL +# else +# define UART_TX_PAL_MODE 7 +# endif +#endif + +#ifndef UART_RX_PIN +# define UART_RX_PIN A10 +#endif + +#ifndef UART_RX_PAL_MODE +# ifdef USE_GPIOV1 +# define UART_RX_PAL_MODE PAL_MODE_INPUT +# else +# define UART_RX_PAL_MODE 7 +# endif +#endif + +#ifndef UART_CTS_PIN +# define UART_CTS_PIN A11 +#endif + +#ifndef UART_CTS_PAL_MODE +# ifdef USE_GPIOV1 +# define UART_CTS_PAL_MODE PAL_MODE_INPUT +# else +# define UART_CTS_PAL_MODE 7 +# endif +#endif + +#ifndef UART_RTS_PIN +# define UART_RTS_PIN A12 +#endif + +#ifndef UART_RTS_PAL_MODE +# ifdef USE_GPIOV1 +# define UART_RTS_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL +# else +# define UART_RTS_PAL_MODE 7 +# endif +#endif + +#ifndef UART_CR1 +# define UART_CR1 0 +#endif + +#ifndef UART_CR2 +# define UART_CR2 0 +#endif + +#ifndef UART_CR3 +# define UART_CR3 0 +#endif #if defined(MCU_RP) // 38400 baud, 8 data bits, 1 stop bit, no parity, no flow control From ef29a46c87e3a82459b3af4158f7888d55c0b22b Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 26 Jan 2025 23:48:46 +1100 Subject: [PATCH 200/365] Unify i2c_master headers (#24846) * Unify i2c_master headers * More documentation improvements * Reorganise PAL mode defaults --- docs/drivers/i2c.md | 94 +++++++++++------ drivers/i2c_master.h | 141 +++++++++++++++++++++++++ platforms/avr/drivers/i2c_master.h | 41 ------- platforms/chibios/drivers/i2c_master.c | 43 ++++---- platforms/chibios/drivers/i2c_master.h | 42 -------- 5 files changed, 225 insertions(+), 136 deletions(-) create mode 100644 drivers/i2c_master.h delete mode 100644 platforms/avr/drivers/i2c_master.h delete mode 100644 platforms/chibios/drivers/i2c_master.h diff --git a/docs/drivers/i2c.md b/docs/drivers/i2c.md index 2ef7afccc9d..ad74d0e481d 100644 --- a/docs/drivers/i2c.md +++ b/docs/drivers/i2c.md @@ -16,17 +16,22 @@ You can then call the I2C API by including `i2c_master.h` in your code. ## I2C Addressing {#note-on-i2c-addresses} -All of the addresses expected by this driver should be pushed to the upper 7 bits of the address byte. Setting -the lower bit (indicating read/write) will be done by the respective functions. Almost all I2C addresses listed -on datasheets and the internet will be represented as 7 bits occupying the lower 7 bits and will need to be -shifted to the left (more significant) by one bit. This is easy to do via the bitwise shift operator `<< 1`. +I2C addresses listed on datasheets and the internet are usually represented as a 7-bit value. The eighth bit (the least significant bit) controls whether the operation is a read or a write. -You can either do this on each call to the functions below, or once in your definition of the address. For example, if your device has an address of `0x18`: +All of the address parameters expected by the driver API should therefore be pushed to the upper 7 bits of the address byte; the driver will take care of setting the read/write bit as appropriate. + +This is easy to do via the bitwise left shift operator. For example, if your device has an address of `0x18` you might create a define for convenience: ```c #define MY_I2C_ADDRESS (0x18 << 1) ``` +Or, you can shift the address ahead of time: + +```c +#define MY_I2C_ADDRESS 0x30 +``` + See https://www.robot-electronics.co.uk/i2c-tutorial for more information about I2C addressing and other technical details. ## AVR Configuration {#avr-configuration} @@ -39,12 +44,12 @@ The following defines can be used to configure the I2C master driver: No further setup is required - just connect the `SDA` and `SCL` pins of your I2C devices to the matching pins on the MCU: -|MCU |`SCL`|`SDA`| -|------------------|-----|-----| -|ATmega16/32U4 |`D0` |`D1` | -|AT90USB64/128 |`D0` |`D1` | -|ATmega32A |`C0` |`C1` | -|ATmega328/P |`C5` |`C4` | +|MCU |`SCL`|`SDA`| +|-------------|-----|-----| +|ATmega16/32U4|`D0` |`D1` | +|AT90USB64/128|`D0` |`D1` | +|ATmega32A |`C0` |`C1` | +|ATmega328/P |`C5` |`C4` | ::: tip The ATmega16/32U2 does not possess I2C functionality, and so cannot use this driver. @@ -52,7 +57,7 @@ The ATmega16/32U2 does not possess I2C functionality, and so cannot use this dri ## ChibiOS/ARM Configuration {#arm-configuration} -You'll need to determine which pins can be used for I2C -- a an example, STM32 parts generally have multiple I2C peripherals, labeled I2C1, I2C2, I2C3 etc. +You'll need to determine which pins can be used for I2C -- as an example, STM32 parts generally have multiple I2C peripherals, labeled I2C1, I2C2, I2C3 etc. To enable I2C, modify your board's `halconf.h` to enable I2C, then modify your board's `mcuconf.h` to enable the peripheral you've chosen: @@ -83,15 +88,19 @@ To enable I2C, modify your board's `halconf.h` to enable I2C, then modify your b Configuration-wise, you'll need to set up the peripheral as per your MCU's datasheet -- the defaults match the pins for a Proton-C, i.e. STM32F303. -|`config.h` Overrride |Description |Default| -|------------------------|--------------------------------------------------------------|-------| -|`I2C_DRIVER` |I2C peripheral to use - I2C1 -> `I2CD1`, I2C2 -> `I2CD2` etc. |`I2CD1`| -|`I2C1_SCL_PIN` |The pin definition for SCL |`B6` | -|`I2C1_SCL_PAL_MODE` |The alternate function mode for SCL |`4` | -|`I2C1_SDA_PIN` |The pin definition for SDA |`B7` | -|`I2C1_SDA_PAL_MODE` |The alternate function mode for SDA |`4` | +|`config.h` Override|Description |Default| +|-------------------|-------------------------------------------------------------|-------| +|`I2C_DRIVER` |I2C peripheral to use - I2C1 -> `I2CD1`, I2C2 -> `I2CD2` etc.|`I2CD1`| +|`I2C1_SCL_PIN` |The pin to use for SCL |`B6` | +|`I2C1_SCL_PAL_MODE`|The alternate function mode for SCL |`4` | +|`I2C1_SDA_PIN` |The pin to use for SDA |`B7` | +|`I2C1_SDA_PAL_MODE`|The alternate function mode for SDA |`4` | -The following configuration values depend on the specific MCU in use. +::: tip +Currently only a single I2C peripheral is supported, therefore the `I2C1_*` defines are used for configuration regardless of the selected peripheral. +::: + +The following configuration values are dependent on the ChibiOS I2C LLD, which is dictated by the microcontroller. ### I2Cv1 {#arm-configuration-i2cv1} @@ -158,7 +167,7 @@ Send multiple bytes to the selected I2C device. - `const uint8_t* data` A pointer to the data to transmit. - `uint16_t length` - The number of bytes to write. Take care not to overrun the length of `data`. + The number of bytes to write. Take care not to overrun the length of `data`. - `uint16_t timeout` The time in milliseconds to wait for a response from the target device. @@ -168,6 +177,29 @@ Send multiple bytes to the selected I2C device. --- +### `i2c_status_t i2c_transmit_P(uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-transmit-p} + +Send multiple bytes from PROGMEM to the selected I2C device. + +On ARM devices, this function is simply an alias for `i2c_transmit(address, data, length, timeout)`. + +#### Arguments {#api-i2c-transmit-p-arguments} + + - `uint8_t address` + The 7-bit I2C address of the device. + - `const uint8_t* data` + A pointer to the data to transmit. + - `uint16_t length` + The number of bytes to write. Take care not to overrun the length of `data`. + - `uint16_t timeout` + The time in milliseconds to wait for a response from the target device. + +#### Return Value {#api-i2c-transmit-p-return} + +`I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. + +--- + ### `i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-receive} Receive multiple bytes from the selected I2C device. @@ -177,9 +209,9 @@ Receive multiple bytes from the selected I2C device. - `uint8_t address` The 7-bit I2C address of the device. - `uint8_t* data` - A pointer to the buffer to read into. + A pointer to a buffer to read into. - `uint16_t length` - The number of bytes to read. Take care not to overrun the length of `data`. + The number of bytes to read. Take care not to overrun the length of `data`. - `uint16_t timeout` The time in milliseconds to wait for a response from the target device. @@ -191,7 +223,7 @@ Receive multiple bytes from the selected I2C device. ### `i2c_status_t i2c_write_register(uint8_t devaddr, uint8_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-write-register} -Writes to a register with an 8-bit address on the I2C device. +Write to a register with an 8-bit address on the I2C device. #### Arguments {#api-i2c-write-register-arguments} @@ -202,7 +234,7 @@ Writes to a register with an 8-bit address on the I2C device. - `const uint8_t* data` A pointer to the data to transmit. - `uint16_t length` - The number of bytes to write. Take care not to overrun the length of `data`. + The number of bytes to write. Take care not to overrun the length of `data`. - `uint16_t timeout` The time in milliseconds to wait for a response from the target device. @@ -214,7 +246,7 @@ Writes to a register with an 8-bit address on the I2C device. ### `i2c_status_t i2c_write_register16(uint8_t devaddr, uint16_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-write-register16} -Writes to a register with a 16-bit address (big endian) on the I2C device. +Write to a register with a 16-bit address (big endian) on the I2C device. #### Arguments {#api-i2c-write-register16-arguments} @@ -237,7 +269,7 @@ Writes to a register with a 16-bit address (big endian) on the I2C device. ### `i2c_status_t i2c_read_register(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-read-register} -Reads from a register with an 8-bit address on the I2C device. +Read from a register with an 8-bit address on the I2C device. #### Arguments {#api-i2c-read-register-arguments} @@ -260,7 +292,7 @@ Reads from a register with an 8-bit address on the I2C device. ### `i2c_status_t i2c_read_register16(uint8_t devaddr, uint16_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-read-register16} -Reads from a register with a 16-bit address (big endian) on the I2C device. +Read from a register with a 16-bit address (big endian) on the I2C device. #### Arguments {#api-i2c-read-register16-arguments} @@ -283,16 +315,16 @@ Reads from a register with a 16-bit address (big endian) on the I2C device. ### `i2c_status_t i2c_ping_address(uint8_t address, uint16_t timeout)` {#api-i2c-ping-address} -Pings the I2C bus for a specific address. +Ping the I2C bus for a specific address. -On ChibiOS a "best effort" attempt is made by reading a single byte from register 0 at the requested address. This should generally work except for I2C devices that do not not respond to a register 0 read request, which will result in a false negative result (unsuccessful response to ping attempt). +On ChibiOS a "best effort" attempt is made by reading a single byte from register 0 at the given address. This should generally work except for I2C devices that do not not respond to a register 0 read request, which will result in a false negative result (unsuccessful response to ping attempt). This function is weakly defined, meaning it can be overridden if necessary for your particular use case. #### Arguments {#api-i2c-ping-address-arguments} - `uint8_t address` - The 7-bit I2C address of the device (ie. without the read/write bit - this will be set automatically). + The 7-bit I2C address of the device. - `uint16_t timeout` The time in milliseconds to wait for a response from the target device. diff --git a/drivers/i2c_master.h b/drivers/i2c_master.h new file mode 100644 index 00000000000..dbe1cd42faa --- /dev/null +++ b/drivers/i2c_master.h @@ -0,0 +1,141 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include + +/** + * \file + * + * \defgroup i2c_master I2C Master API + * + * \brief API to communicate with I2C devices. + * \{ + */ + +typedef int16_t i2c_status_t; + +#define I2C_STATUS_SUCCESS (0) +#define I2C_STATUS_ERROR (-1) +#define I2C_STATUS_TIMEOUT (-2) + +#define I2C_TIMEOUT_IMMEDIATE (0) +#define I2C_TIMEOUT_INFINITE (0xFFFF) + +/** + * \brief Initialize the I2C driver. This function must be called only once, before any of the below functions can be called. + * + * This function is weakly defined, meaning it can be overridden if necessary for your particular use case. + */ +void i2c_init(void); + +/** + * \brief Send multiple bytes to the selected I2C device. + * + * \param address The 7-bit I2C address of the device. + * \param data A pointer to the data to transmit. + * \param length The number of bytes to write. Take care not to overrun the length of `data`. + * \param timeout The time in milliseconds to wait for a response from the target device. + * + * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. + */ +i2c_status_t i2c_transmit(uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout); + +#if defined(__AVR__) || defined(__DOXYGEN__) +/** + * \brief Send multiple bytes from PROGMEM to the selected I2C device. + * + * On ARM devices, this function is simply an alias for i2c_transmit(address, data, length, timeout). + * + * \param address The 7-bit I2C address of the device. + * \param data A pointer to the data to transmit. + * \param length The number of bytes to write. Take care not to overrun the length of `data`. + * \param timeout The time in milliseconds to wait for a response from the target device. + * + * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. + */ +i2c_status_t i2c_transmit_P(uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout); +#else +# define i2c_transmit_P(address, data, length, timeout) i2c_transmit(address, data, length, timeout) +#endif + +/** + * \brief Receive multiple bytes from the selected I2C device. + * + * \param address The 7-bit I2C address of the device. + * \param data A pointer to a buffer to read into. + * \param length The number of bytes to read. Take care not to overrun the length of `data`. + * \param timeout The time in milliseconds to wait for a response from the target device. + * + * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. + */ +i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout); + +/** + * \brief Write to a register with an 8-bit address on the I2C device. + * + * \param devaddr The 7-bit I2C address of the device. + * \param regaddr The register address to write to. + * \param data A pointer to the data to transmit. + * \param length The number of bytes to write. Take care not to overrun the length of `data`. + * \param timeout The time in milliseconds to wait for a response from the target device. + * + * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. + */ +i2c_status_t i2c_write_register(uint8_t devaddr, uint8_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout); + +/** + * \brief Write to a register with a 16-bit address (big endian) on the I2C device. + * + * \param devaddr The 7-bit I2C address of the device. + * \param regaddr The register address to write to. + * \param data A pointer to the data to transmit. + * \param length The number of bytes to write. Take care not to overrun the length of `data`. + * \param timeout The time in milliseconds to wait for a response from the target device. + * + * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. + */ +i2c_status_t i2c_write_register16(uint8_t devaddr, uint16_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout); + +/** + * \brief Read from a register with an 8-bit address on the I2C device. + * + * \param devaddr The 7-bit I2C address of the device. + * \param regaddr The register address to read from. + * \param data A pointer to a buffer to read into. + * \param length The number of bytes to read. Take care not to overrun the length of `data`. + * \param timeout The time in milliseconds to wait for a response from the target device. + * + * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. + */ +i2c_status_t i2c_read_register(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout); + +/** + * \brief Read from a register with a 16-bit address (big endian) on the I2C device. + * + * \param devaddr The 7-bit I2C address of the device. + * \param regaddr The register address to read from. + * \param data A pointer to a buffer to read into. + * \param length The number of bytes to read. Take care not to overrun the length of `data`. + * \param timeout The time in milliseconds to wait for a response from the target device. + * + * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. + */ +i2c_status_t i2c_read_register16(uint8_t devaddr, uint16_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout); + +/** + * \brief Ping the I2C bus for a specific address. + * + * On ChibiOS a "best effort" attempt is made by reading a single byte from register 0 at the given address. This should generally work except for I2C devices that do not not respond to a register 0 read request, which will result in a false negative result (unsuccessful response to ping attempt). + * + * This function is weakly defined, meaning it can be overridden if necessary for your particular use case. + * + * \param address The 7-bit I2C address of the device. + * \param timeout The time in milliseconds to wait for a response from the target device. + * + * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. + */ +i2c_status_t i2c_ping_address(uint8_t address, uint16_t timeout); + +/** \} */ diff --git a/platforms/avr/drivers/i2c_master.h b/platforms/avr/drivers/i2c_master.h deleted file mode 100644 index ad92caa55aa..00000000000 --- a/platforms/avr/drivers/i2c_master.h +++ /dev/null @@ -1,41 +0,0 @@ -/* Copyright (C) 2019 Elia Ritterbusch - + - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -/* Library made by: g4lvanix - * GitHub repository: https://github.com/g4lvanix/I2C-master-lib - */ - -#pragma once - -#include - -typedef int16_t i2c_status_t; - -#define I2C_STATUS_SUCCESS (0) -#define I2C_STATUS_ERROR (-1) -#define I2C_STATUS_TIMEOUT (-2) - -#define I2C_TIMEOUT_IMMEDIATE (0) -#define I2C_TIMEOUT_INFINITE (0xFFFF) - -void i2c_init(void); -i2c_status_t i2c_transmit(uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout); -i2c_status_t i2c_transmit_P(uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout); -i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout); -i2c_status_t i2c_write_register(uint8_t devaddr, uint8_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout); -i2c_status_t i2c_write_register16(uint8_t devaddr, uint16_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout); -i2c_status_t i2c_read_register(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout); -i2c_status_t i2c_read_register16(uint8_t devaddr, uint16_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout); -i2c_status_t i2c_ping_address(uint8_t address, uint16_t timeout); diff --git a/platforms/chibios/drivers/i2c_master.c b/platforms/chibios/drivers/i2c_master.c index 0d5fb1e9853..1d7fe276334 100644 --- a/platforms/chibios/drivers/i2c_master.c +++ b/platforms/chibios/drivers/i2c_master.c @@ -29,17 +29,37 @@ #include "i2c_master.h" #include "gpio.h" #include "chibios_config.h" -#include #include #include +#ifndef I2C_DRIVER +# define I2C_DRIVER I2CD1 +#endif + #ifndef I2C1_SCL_PIN # define I2C1_SCL_PIN B6 #endif + +#ifndef I2C1_SCL_PAL_MODE +# ifdef USE_GPIOV1 +# define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATE_OPENDRAIN +# else +# define I2C1_SCL_PAL_MODE 4 +# endif +#endif + #ifndef I2C1_SDA_PIN # define I2C1_SDA_PIN B7 #endif +#ifndef I2C1_SDA_PAL_MODE +# ifdef USE_GPIOV1 +# define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATE_OPENDRAIN +# else +# define I2C1_SDA_PAL_MODE 4 +# endif +#endif + #ifdef USE_I2CV1 # ifndef I2C1_OPMODE # define I2C1_OPMODE OPMODE_I2C @@ -70,27 +90,6 @@ # endif #endif -#ifndef I2C_DRIVER -# define I2C_DRIVER I2CD1 -#endif - -#ifdef USE_GPIOV1 -# ifndef I2C1_SCL_PAL_MODE -# define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATE_OPENDRAIN -# endif -# ifndef I2C1_SDA_PAL_MODE -# define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATE_OPENDRAIN -# endif -#else -// The default PAL alternate modes are used to signal that the pins are used for I2C -# ifndef I2C1_SCL_PAL_MODE -# define I2C1_SCL_PAL_MODE 4 -# endif -# ifndef I2C1_SDA_PAL_MODE -# define I2C1_SDA_PAL_MODE 4 -# endif -#endif - static const I2CConfig i2cconfig = { #if defined(USE_I2CV1_CONTRIB) I2C1_CLOCK_SPEED, diff --git a/platforms/chibios/drivers/i2c_master.h b/platforms/chibios/drivers/i2c_master.h deleted file mode 100644 index 2215f89ad2b..00000000000 --- a/platforms/chibios/drivers/i2c_master.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright 2018 Jack Humbert - * Copyright 2018 Yiancar - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -/* This library follows the convention of the AVR i2c_master library. - * As a result addresses are expected to be already shifted (addr << 1). - * I2CD1 is the default driver which corresponds to pins B6 and B7. This - * can be changed. - * Please ensure that HAL_USE_I2C is TRUE in the halconf.h file and that - * STM32_I2C_USE_I2C1 is TRUE in the mcuconf.h file. - */ -#pragma once - -#include - -typedef int16_t i2c_status_t; - -#define I2C_STATUS_SUCCESS (0) -#define I2C_STATUS_ERROR (-1) -#define I2C_STATUS_TIMEOUT (-2) - -void i2c_init(void); -i2c_status_t i2c_transmit(uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout); -i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout); -i2c_status_t i2c_write_register(uint8_t devaddr, uint8_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout); -i2c_status_t i2c_write_register16(uint8_t devaddr, uint16_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout); -i2c_status_t i2c_read_register(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout); -i2c_status_t i2c_read_register16(uint8_t devaddr, uint16_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout); -i2c_status_t i2c_ping_address(uint8_t address, uint16_t timeout); From 04c2dbd3dfa23bf6fdffa35ae53cf66aa3f33fba Mon Sep 17 00:00:00 2001 From: Mick Hohmann Date: Sun, 26 Jan 2025 17:25:15 +0100 Subject: [PATCH 201/365] Add keyboard clap_studio/flame60 (#24870) - Got the source code from the _Clap_Studio_ Discord server - Migrated the source code to `keyboard.json` format - Added more layouts for most common cases - Fixed errors in `keymaps/default/keymap.c` - Updated the picture with a real picture of the PCB, to avoid confusion --- keyboards/clap_studio/flame60/keyboard.json | 663 ++++++++++++++++++ .../flame60/keymaps/default/keymap.c | 35 + keyboards/clap_studio/flame60/readme.md | 27 + 3 files changed, 725 insertions(+) create mode 100644 keyboards/clap_studio/flame60/keyboard.json create mode 100644 keyboards/clap_studio/flame60/keymaps/default/keymap.c create mode 100644 keyboards/clap_studio/flame60/readme.md diff --git a/keyboards/clap_studio/flame60/keyboard.json b/keyboards/clap_studio/flame60/keyboard.json new file mode 100644 index 00000000000..7f6b9014ae6 --- /dev/null +++ b/keyboards/clap_studio/flame60/keyboard.json @@ -0,0 +1,663 @@ +{ + "manufacturer": "Clap_Studio", + "keyboard_name": "Flame60", + "maintainer": "Freather", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["B0", "B1", "B2", "B3", "B7", "D3", "D2", "D1", "D0", "B5", "B4", "D7", "D6", "D4"], + "rows": ["F4", "F1", "D5", "B6", "F5"] + }, + "processor": "atmega32u4", + "url": "https://www.instagram.com/clap__studio__/", + "usb": { + "device_version": "1.0.0", + "pid": "0x464C", + "vid": "0x434C" + }, + "layout_aliases": { + "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [1, 13], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 1], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [1, 13], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 1], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 1], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [1, 13], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 1], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 12], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [1, 13], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 12], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 12], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [1, 13], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 12], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + } + } +} diff --git a/keyboards/clap_studio/flame60/keymaps/default/keymap.c b/keyboards/clap_studio/flame60/keymaps/default/keymap.c new file mode 100644 index 00000000000..bbf725d3b04 --- /dev/null +++ b/keyboards/clap_studio/flame60/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │Ctrl│GUI │Alt │ │ Alt│ GUI│ Fn │Ctrl│ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ + [0] = LAYOUT_60_ansi( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL + ), + + [1] = LAYOUT_60_ansi( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/clap_studio/flame60/readme.md b/keyboards/clap_studio/flame60/readme.md new file mode 100644 index 00000000000..9e1c6a11638 --- /dev/null +++ b/keyboards/clap_studio/flame60/readme.md @@ -0,0 +1,27 @@ +# Flame60 + +![Flame60 PCB](https://i.imgur.com/vdOxw3j.jpeg) + +The Flame60 consists of a screwless exterior, flex cut pcb and plate to ensure a soft typing experience. + +* Keyboard Maintainer: [CMM.Studio Freather](https://github.com/frankBTHID) +* Hardware Supported: Atmega32u4 +* Hardware Availability: [CLAP.STUDIO (Instagram)](https://www.instagram.com/clap__studio__/) + +Make example for this keyboard (after setting up your build environment): + + make clap_studio/flame60:default + +Flashing example for this keyboard: + + make clap_studio/flame60:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From ee63d39058deee162b794c62d7180d61f540914a Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 27 Jan 2025 08:37:37 +1100 Subject: [PATCH 202/365] Unify spi_master headers (#24857) * Move default config to .c file * Explicitly define PAL modes for boards with custom init * Unify spi_master headers --- docs/drivers/spi.md | 8 +- drivers/spi_master.h | 116 ++++++++++++++++++ .../darkproject/kd83a_bfg_edition/config.h | 3 + .../darkproject/kd87a_bfg_edition/config.h | 3 + keyboards/gmmk/gmmk2/p96/config.h | 3 + keyboards/jukaie/jk01/config.h | 3 + .../projectd/65/projectd_65_ansi/config.h | 3 + keyboards/projectd/75/ansi/config.h | 3 + keyboards/projectd/75/iso/config.h | 3 + platforms/avr/drivers/spi_master.h | 68 ---------- platforms/chibios/drivers/spi_master.c | 43 ++++++- platforms/chibios/drivers/spi_master.h | 102 --------------- 12 files changed, 183 insertions(+), 175 deletions(-) create mode 100644 drivers/spi_master.h delete mode 100644 platforms/avr/drivers/spi_master.h delete mode 100644 platforms/chibios/drivers/spi_master.h diff --git a/docs/drivers/spi.md b/docs/drivers/spi.md index 43d2a056d5d..140b204945f 100644 --- a/docs/drivers/spi.md +++ b/docs/drivers/spi.md @@ -88,7 +88,7 @@ Start an SPI transaction. #### Arguments {#api-spi-start-arguments} - `pin_t slavePin` - The QMK pin to assert as the slave select pin, eg. `B4`. + The GPIO pin connected to the desired device's `SS` line. - `bool lsbFirst` Determines the endianness of the transmission. If `true`, the least significant bit of each byte is sent first. - `uint8_t mode` @@ -106,7 +106,7 @@ Start an SPI transaction. #### Return Value {#api-spi-start-return} -`false` if the supplied parameters are invalid or the SPI peripheral is already in use, or `true`. +`true` if the operation was successful, otherwise `false` if the supplied parameters are invalid or the SPI peripheral is already in use. --- @@ -131,7 +131,7 @@ Read a byte from the selected SPI device. #### Return Value {#api-spi-read-return} -`SPI_STATUS_TIMEOUT` if the timeout period elapses, or the byte read from the device. +`SPI_STATUS_TIMEOUT` if the timeout period elapses, otherwise the byte read from the device. --- @@ -159,7 +159,7 @@ Receive multiple bytes from the selected SPI device. #### Arguments {#api-spi-receive-arguments} - `uint8_t *data` - A pointer to the buffer to read into. + A pointer to a buffer to read into. - `uint16_t length` The number of bytes to read. Take care not to overrun the length of `data`. diff --git a/drivers/spi_master.h b/drivers/spi_master.h new file mode 100644 index 00000000000..d206b812bfd --- /dev/null +++ b/drivers/spi_master.h @@ -0,0 +1,116 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include +#include +#include "gpio.h" + +/** + * \file + * + * \defgroup spi_master SPI Master API + * + * \brief API to communicate with SPI devices. + * \{ + */ + +// Hardware SS pin is defined in the header so that user code can refer to it +#ifdef __AVR__ +# if defined(__AVR_AT90USB162__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) +# define SPI_SS_PIN B0 +# elif defined(__AVR_ATmega32A__) +# define SPI_SS_PIN B4 +# elif defined(__AVR_ATmega328P__) || defined(__AVR_ATmega328__) +# define SPI_SS_PIN B2 +# endif +#endif + +typedef int16_t spi_status_t; + +#define SPI_STATUS_SUCCESS (0) +#define SPI_STATUS_ERROR (-1) +#define SPI_STATUS_TIMEOUT (-2) + +#define SPI_TIMEOUT_IMMEDIATE (0) +#define SPI_TIMEOUT_INFINITE (0xFFFF) + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct spi_start_config_t { + pin_t slave_pin; + bool lsb_first; + uint8_t mode; + uint16_t divisor; + bool cs_active_low; +} spi_start_config_t; + +/** + * \brief Initialize the SPI driver. This function must be called only once, before any of the below functions can be called. + */ +void spi_init(void); + +/** + * \brief Start an SPI transaction. + * + * \param slavePin The GPIO pin connected to the desired device's `SS` line. + * \param lsbFirst Determines the endianness of the transmission. If `true`, the least significant bit of each byte is sent first. + * \param mode The SPI mode to use. + * \param divisor The SPI clock divisor. + * + * \return `true` if the operation was successful, otherwise `false` if the supplied parameters are invalid or the SPI peripheral is already in use. + */ +bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor); + +bool spi_start_extended(spi_start_config_t *start_config); + +/** + * \brief Write a byte to the selected SPI device. + * + * \param data The byte to write. + * + * \return `SPI_STATUS_TIMEOUT` if the timeout period elapses, or `SPI_STATUS_SUCCESS`. + */ +spi_status_t spi_write(uint8_t data); + +/** + * \brief Read a byte from the selected SPI device. + * + * \return `SPI_STATUS_TIMEOUT` if the timeout period elapses, otherwise the byte read from the device. + */ +spi_status_t spi_read(void); + +/** + * \brief Send multiple bytes to the selected SPI device. + * + * \param data A pointer to the data to write from. + * \param length The number of bytes to write. Take care not to overrun the length of `data`. + * + * \return `SPI_STATUS_TIMEOUT` if the timeout period elapses, `SPI_STATUS_ERROR` if some other error occurs, otherwise `SPI_STATUS_SUCCESS`. + */ +spi_status_t spi_transmit(const uint8_t *data, uint16_t length); + +/** + * \brief Receive multiple bytes from the selected SPI device. + * + * \param data A pointer to a buffer to read into. + * \param length The number of bytes to read. Take care not to overrun the length of `data`. + * + * \return `SPI_STATUS_TIMEOUT` if the timeout period elapses, `SPI_STATUS_ERROR` if some other error occurs, otherwise `SPI_STATUS_SUCCESS`. + */ +spi_status_t spi_receive(uint8_t *data, uint16_t length); + +/** + * \brief End the current SPI transaction. This will deassert the slave select pin and reset the endianness, mode and divisor configured by `spi_start()`. + * + */ +void spi_stop(void); + +#ifdef __cplusplus +} +#endif + +/** \} */ diff --git a/keyboards/darkproject/kd83a_bfg_edition/config.h b/keyboards/darkproject/kd83a_bfg_edition/config.h index 880aabd5d71..fce00d29aba 100644 --- a/keyboards/darkproject/kd83a_bfg_edition/config.h +++ b/keyboards/darkproject/kd83a_bfg_edition/config.h @@ -22,8 +22,11 @@ /* SPI Config for LED Driver */ #define SPI_DRIVER SPIDQ #define SPI_SCK_PIN A5 +#define SPI_SCK_PAL_MODE 5 #define SPI_MOSI_PIN A7 +#define SPI_MOSI_PAL_MODE 5 #define SPI_MISO_PIN A6 +#define SPI_MISO_PAL_MODE 5 #define AW20216S_CS_PIN_1 A15 #define AW20216S_CS_PIN_2 B15 diff --git a/keyboards/darkproject/kd87a_bfg_edition/config.h b/keyboards/darkproject/kd87a_bfg_edition/config.h index a32f7122311..9e68844dafd 100644 --- a/keyboards/darkproject/kd87a_bfg_edition/config.h +++ b/keyboards/darkproject/kd87a_bfg_edition/config.h @@ -22,8 +22,11 @@ /* SPI Config for LED Driver */ #define SPI_DRIVER SPIDQ #define SPI_SCK_PIN A5 +#define SPI_SCK_PAL_MODE 5 #define SPI_MOSI_PIN A7 +#define SPI_MOSI_PAL_MODE 5 #define SPI_MISO_PIN A6 +#define SPI_MISO_PAL_MODE 5 #define AW20216S_CS_PIN_1 A15 #define AW20216S_CS_PIN_2 B15 diff --git a/keyboards/gmmk/gmmk2/p96/config.h b/keyboards/gmmk/gmmk2/p96/config.h index 1b246e4f3fa..852d29df653 100644 --- a/keyboards/gmmk/gmmk2/p96/config.h +++ b/keyboards/gmmk/gmmk2/p96/config.h @@ -22,8 +22,11 @@ /* SPI Config for LED Driver */ #define SPI_DRIVER SPIDQ #define SPI_SCK_PIN A5 +#define SPI_SCK_PAL_MODE 5 #define SPI_MOSI_PIN A7 +#define SPI_MOSI_PAL_MODE 5 #define SPI_MISO_PIN A6 +#define SPI_MISO_PAL_MODE 5 #define AW20216S_CS_PIN_1 A15 #define AW20216S_CS_PIN_2 B15 diff --git a/keyboards/jukaie/jk01/config.h b/keyboards/jukaie/jk01/config.h index d8dfb9f5354..41534ce6c46 100644 --- a/keyboards/jukaie/jk01/config.h +++ b/keyboards/jukaie/jk01/config.h @@ -22,8 +22,11 @@ /* SPI Config for LED Driver */ #define SPI_DRIVER SPIDQ #define SPI_SCK_PIN A5 +#define SPI_SCK_PAL_MODE 5 #define SPI_MOSI_PIN A7 +#define SPI_MOSI_PAL_MODE 5 #define SPI_MISO_PIN A6 +#define SPI_MISO_PAL_MODE 5 #define AW20216S_CS_PIN_1 A15 #define AW20216S_CS_PIN_2 B15 diff --git a/keyboards/projectd/65/projectd_65_ansi/config.h b/keyboards/projectd/65/projectd_65_ansi/config.h index c8da5c42a7c..6e23afc9020 100644 --- a/keyboards/projectd/65/projectd_65_ansi/config.h +++ b/keyboards/projectd/65/projectd_65_ansi/config.h @@ -22,8 +22,11 @@ /* SPI Config for LED Driver */ #define SPI_DRIVER SPIDQ #define SPI_SCK_PIN A5 +#define SPI_SCK_PAL_MODE 5 #define SPI_MOSI_PIN A7 +#define SPI_MOSI_PAL_MODE 5 #define SPI_MISO_PIN A6 +#define SPI_MISO_PAL_MODE 5 #define AW20216S_CS_PIN_1 A15 #define AW20216S_EN_PIN C13 diff --git a/keyboards/projectd/75/ansi/config.h b/keyboards/projectd/75/ansi/config.h index 282e20a8e2b..acbe853949c 100644 --- a/keyboards/projectd/75/ansi/config.h +++ b/keyboards/projectd/75/ansi/config.h @@ -22,8 +22,11 @@ /* SPI Config for LED Driver */ #define SPI_DRIVER SPIDQ #define SPI_SCK_PIN A5 +#define SPI_SCK_PAL_MODE 5 #define SPI_MOSI_PIN A7 +#define SPI_MOSI_PAL_MODE 5 #define SPI_MISO_PIN A6 +#define SPI_MISO_PAL_MODE 5 #define AW20216S_CS_PIN_1 A15 #define AW20216S_CS_PIN_2 B15 diff --git a/keyboards/projectd/75/iso/config.h b/keyboards/projectd/75/iso/config.h index 282e20a8e2b..acbe853949c 100644 --- a/keyboards/projectd/75/iso/config.h +++ b/keyboards/projectd/75/iso/config.h @@ -22,8 +22,11 @@ /* SPI Config for LED Driver */ #define SPI_DRIVER SPIDQ #define SPI_SCK_PIN A5 +#define SPI_SCK_PAL_MODE 5 #define SPI_MOSI_PIN A7 +#define SPI_MOSI_PAL_MODE 5 #define SPI_MISO_PIN A6 +#define SPI_MISO_PAL_MODE 5 #define AW20216S_CS_PIN_1 A15 #define AW20216S_CS_PIN_2 B15 diff --git a/platforms/avr/drivers/spi_master.h b/platforms/avr/drivers/spi_master.h deleted file mode 100644 index ebbf7ddeab9..00000000000 --- a/platforms/avr/drivers/spi_master.h +++ /dev/null @@ -1,68 +0,0 @@ -/* Copyright 2020 - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include - -#include "gpio.h" - -typedef int16_t spi_status_t; - -// Hardware SS pin is defined in the header so that user code can refer to it -#if defined(__AVR_AT90USB162__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) -# define SPI_SS_PIN B0 -#elif defined(__AVR_ATmega32A__) -# define SPI_SS_PIN B4 -#elif defined(__AVR_ATmega328P__) || defined(__AVR_ATmega328__) -# define SPI_SS_PIN B2 -#endif - -#define SPI_STATUS_SUCCESS (0) -#define SPI_STATUS_ERROR (-1) -#define SPI_STATUS_TIMEOUT (-2) - -#define SPI_TIMEOUT_IMMEDIATE (0) -#define SPI_TIMEOUT_INFINITE (0xFFFF) - -#ifdef __cplusplus -extern "C" { -#endif -typedef struct spi_start_config_t { - pin_t slave_pin; - bool lsb_first; - uint8_t mode; - uint16_t divisor; - bool cs_active_low; -} spi_start_config_t; - -void spi_init(void); - -bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor); -bool spi_start_extended(spi_start_config_t *start_config); - -spi_status_t spi_write(uint8_t data); - -spi_status_t spi_read(void); - -spi_status_t spi_transmit(const uint8_t *data, uint16_t length); - -spi_status_t spi_receive(uint8_t *data, uint16_t length); - -void spi_stop(void); -#ifdef __cplusplus -} -#endif diff --git a/platforms/chibios/drivers/spi_master.c b/platforms/chibios/drivers/spi_master.c index 414e5b10a31..f5e48edfda5 100644 --- a/platforms/chibios/drivers/spi_master.c +++ b/platforms/chibios/drivers/spi_master.c @@ -15,8 +15,49 @@ */ #include "spi_master.h" +#include "chibios_config.h" +#include +#include -#include "timer.h" +#ifndef SPI_DRIVER +# define SPI_DRIVER SPID2 +#endif + +#ifndef SPI_SCK_PIN +# define SPI_SCK_PIN B13 +#endif + +#ifndef SPI_SCK_PAL_MODE +# ifdef USE_GPIOV1 +# define SPI_SCK_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL +# else +# define SPI_SCK_PAL_MODE 5 +# endif +#endif + +#ifndef SPI_MOSI_PIN +# define SPI_MOSI_PIN B15 +#endif + +#ifndef SPI_MOSI_PAL_MODE +# ifdef USE_GPIOV1 +# define SPI_MOSI_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL +# else +# define SPI_MOSI_PAL_MODE 5 +# endif +#endif + +#ifndef SPI_MISO_PIN +# define SPI_MISO_PIN B14 +#endif + +#ifndef SPI_MISO_PAL_MODE +# ifdef USE_GPIOV1 +# define SPI_MISO_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL +# else +# define SPI_MISO_PAL_MODE 5 +# endif +#endif static bool spiStarted = false; #if SPI_SELECT_MODE == SPI_SELECT_MODE_NONE diff --git a/platforms/chibios/drivers/spi_master.h b/platforms/chibios/drivers/spi_master.h deleted file mode 100644 index 4ad6144091e..00000000000 --- a/platforms/chibios/drivers/spi_master.h +++ /dev/null @@ -1,102 +0,0 @@ -/* Copyright 2020 Nick Brassel (tzarc) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include -#include -#include - -#include "gpio.h" -#include "chibios_config.h" - -#ifndef SPI_DRIVER -# define SPI_DRIVER SPID2 -#endif - -#ifndef SPI_SCK_PIN -# define SPI_SCK_PIN B13 -#endif - -#ifndef SPI_SCK_PAL_MODE -# if defined(USE_GPIOV1) -# define SPI_SCK_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL -# else -# define SPI_SCK_PAL_MODE 5 -# endif -#endif - -#ifndef SPI_MOSI_PIN -# define SPI_MOSI_PIN B15 -#endif - -#ifndef SPI_MOSI_PAL_MODE -# if defined(USE_GPIOV1) -# define SPI_MOSI_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL -# else -# define SPI_MOSI_PAL_MODE 5 -# endif -#endif - -#ifndef SPI_MISO_PIN -# define SPI_MISO_PIN B14 -#endif - -#ifndef SPI_MISO_PAL_MODE -# if defined(USE_GPIOV1) -# define SPI_MISO_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL -# else -# define SPI_MISO_PAL_MODE 5 -# endif -#endif - -typedef int16_t spi_status_t; - -#define SPI_STATUS_SUCCESS (0) -#define SPI_STATUS_ERROR (-1) -#define SPI_STATUS_TIMEOUT (-2) - -#define SPI_TIMEOUT_IMMEDIATE (0) -#define SPI_TIMEOUT_INFINITE (0xFFFF) - -#ifdef __cplusplus -extern "C" { -#endif -typedef struct spi_start_config_t { - pin_t slave_pin; - bool lsb_first; - uint8_t mode; - uint16_t divisor; - bool cs_active_low; -} spi_start_config_t; - -void spi_init(void); - -bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor); -bool spi_start_extended(spi_start_config_t *start_config); - -spi_status_t spi_write(uint8_t data); - -spi_status_t spi_read(void); - -spi_status_t spi_transmit(const uint8_t *data, uint16_t length); - -spi_status_t spi_receive(uint8_t *data, uint16_t length); - -void spi_stop(void); -#ifdef __cplusplus -} -#endif From 544ddde113657a932275399f577a422a809d2880 Mon Sep 17 00:00:00 2001 From: Pascal Getreuer <50221757+getreuer@users.noreply.github.com> Date: Mon, 27 Jan 2025 03:32:23 -0800 Subject: [PATCH 203/365] [Core] Add Chordal Hold, an "opposite hands rule" tap-hold option similar to Achordion, Bilateral Combinations. (#24560) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Chordal Hold: restrict what chords settle as hold * Chordal Hold: docs and further improvements * Fix formatting. * Doc rewording and minor edit. * Support Chordal Hold of multiple tap-hold keys. * Fix formatting. * Simplification and additional test. * Fix formatting. * Tighten tests. * Add test two_mod_taps_same_hand_hold_til_timeout. * Revise handing of pairs of tap-hold keys. * Generate a default chordal_hold_layout. * Document chordal_hold_handedness(). * Add license notice to new and branched files in PR. * Add `tapping.chordal_hold` property for info.json. * Update docs/reference_info_json.md * Revise "hand" jsonschema. * Chordal Hold: Improved layout handedness heuristic. This commit improves the heuristic used in generate-keyboard-c for inferring key handedness from keyboard.json geometry data. Heuristic summary: 1. If the layout is symmetric (e.g. most split keyboards), guess the handedness based on the sign of (x - layout_x_midpoint). 2. Otherwise, if the layout has a key of >=6u width, it is probably the spacebar. Form a dividing line through the spacebar, nearly vertical but with a slight angle to follow typical row stagger. 3. Otherwise, assume handedness based on the widest horizontal separation. I have tested this strategy on a couple dozen keyboards and found it to work reliably. * Use Optional instead of `| None`. * Refactor to avoid lambdas. * Remove trailing comma in chordal_hold_layout. * Minor docs edits. * Revise to allow combining multiple same-hand mods. This commit revises Chordal Hold as described in discussion in https://github.com/qmk/qmk_firmware/pull/24560#discussion_r1894655238 1. In "RCTL_T(KC_A)↓, RSFT_T(KC_C)↓, RCTL_T(KC_A)↑" before the tapping term, RCTL_T(KC_A) is settled as tapped. 2. In "RCTL_T(KC_A)↓, RSFT_T(KC_C)↓, RSFT_T(KC_C)↑", both RCTL_T(KC_A) and RSFT_T(KC_C) are settled as tapped. 3. In "RCTL_T(KC_A)↓, RSFT_T(KC_C)↓, KC_U↓" (all keys on the same side), both RCTL_T(KC_A) and RSFT_T(KC_C) are settled as tapped. 4. In "RCTL_T(KC_A)↓, RSFT_T(KC_C)↓, LSFT_T(KC_T)↓", with the third key on the other side, we allow Permissive Hold or Hold On Other Keypress to decide how/when to settle the keys. 5. In "RCTL_T(KC_A)↓, RSFT_T(KC_C)↓" held until the tapping term, the keys are settled as held. 1–3 provide same-hand roll protection. 4–5 are for combining multiple same-hand modifiers. I've updated the unit tests and have been running it on my keyboard, for a few hours so far, and all seems good. I really like this scheme. It allows combining same-side mods, yet it also has roll protection on streaks. For me, this feels like Achordion, but clearly better streak handling and improved responsiveness. * Fix formatting. * Add a couple tests with LT keys. * Remove stale use of CHORDAL_HOLD_LAYOUT. * Fix misspelling lastest -> latest * Handling tweak for LTs and tests. * Fix formatting. * More tests with LT keys. * Fix formatting. --- data/mappings/info_config.hjson | 1 + data/schemas/keyboard.jsonschema | 7 +- docs/reference_info_json.md | 4 + docs/tap_hold.md | 163 ++++ lib/python/qmk/cli/generate/keyboard_c.py | 138 ++- quantum/action_tapping.c | 274 +++++- quantum/action_tapping.h | 65 ++ .../chordal_hold/default/config.h | 21 + .../chordal_hold/default/test.mk | 17 + .../chordal_hold/default/test_keymap.c | 22 + .../default/test_one_shot_keys.cpp | 168 ++++ .../chordal_hold/default/test_tap_hold.cpp | 264 +++++ .../hold_on_other_key_press/config.h | 22 + .../hold_on_other_key_press/test.mk | 17 + .../hold_on_other_key_press/test_keymap.c | 22 + .../hold_on_other_key_press/test_tap_hold.cpp | 807 ++++++++++++++++ .../chordal_hold/permissive_hold/config.h | 22 + .../chordal_hold/permissive_hold/test.mk | 17 + .../permissive_hold/test_keymap.c | 22 + .../permissive_hold/test_one_shot_keys.cpp | 174 ++++ .../permissive_hold/test_tap_hold.cpp | 898 ++++++++++++++++++ .../retro_shift_permissive_hold/config.h | 28 + .../retro_shift_permissive_hold/test.mk | 18 + .../retro_shift_permissive_hold/test_keymap.c | 22 + .../test_retro_shift.cpp | 420 ++++++++ 25 files changed, 3607 insertions(+), 26 deletions(-) create mode 100644 tests/tap_hold_configurations/chordal_hold/default/config.h create mode 100644 tests/tap_hold_configurations/chordal_hold/default/test.mk create mode 100644 tests/tap_hold_configurations/chordal_hold/default/test_keymap.c create mode 100644 tests/tap_hold_configurations/chordal_hold/default/test_one_shot_keys.cpp create mode 100644 tests/tap_hold_configurations/chordal_hold/default/test_tap_hold.cpp create mode 100644 tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/config.h create mode 100644 tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/test.mk create mode 100644 tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/test_keymap.c create mode 100644 tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/test_tap_hold.cpp create mode 100644 tests/tap_hold_configurations/chordal_hold/permissive_hold/config.h create mode 100644 tests/tap_hold_configurations/chordal_hold/permissive_hold/test.mk create mode 100644 tests/tap_hold_configurations/chordal_hold/permissive_hold/test_keymap.c create mode 100644 tests/tap_hold_configurations/chordal_hold/permissive_hold/test_one_shot_keys.cpp create mode 100644 tests/tap_hold_configurations/chordal_hold/permissive_hold/test_tap_hold.cpp create mode 100644 tests/tap_hold_configurations/chordal_hold/retro_shift_permissive_hold/config.h create mode 100644 tests/tap_hold_configurations/chordal_hold/retro_shift_permissive_hold/test.mk create mode 100644 tests/tap_hold_configurations/chordal_hold/retro_shift_permissive_hold/test_keymap.c create mode 100644 tests/tap_hold_configurations/chordal_hold/retro_shift_permissive_hold/test_retro_shift.cpp diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson index 8d3e3c7f0ee..b643553b526 100644 --- a/data/mappings/info_config.hjson +++ b/data/mappings/info_config.hjson @@ -200,6 +200,7 @@ "SPLIT_WPM_ENABLE": {"info_key": "split.transport.sync.wpm", "value_type": "flag"}, // Tapping + "CHORDAL_HOLD": {"info_key": "tapping.chordal_hold", "value_type": "flag"}, "HOLD_ON_OTHER_KEY_PRESS": {"info_key": "tapping.hold_on_other_key_press", "value_type": "flag"}, "HOLD_ON_OTHER_KEY_PRESS_PER_KEY": {"info_key": "tapping.hold_on_other_key_press_per_key", "value_type": "flag"}, "PERMISSIVE_HOLD": {"info_key": "tapping.permissive_hold", "value_type": "flag"}, diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index ec87680fa05..8b6cc7032bb 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -422,7 +422,11 @@ "h": {"$ref": "qmk.definitions.v1#/key_unit"}, "w": {"$ref": "qmk.definitions.v1#/key_unit"}, "x": {"$ref": "qmk.definitions.v1#/key_unit"}, - "y": {"$ref": "qmk.definitions.v1#/key_unit"} + "y": {"$ref": "qmk.definitions.v1#/key_unit"}, + "hand": { + "type": "string", + "enum": ["L", "R", "*"] + } } } } @@ -915,6 +919,7 @@ "tapping": { "type": "object", "properties": { + "chordal_hold": {"type": "boolean"}, "force_hold": {"type": "boolean"}, "force_hold_per_key": {"type": "boolean"}, "ignore_mod_tap_interrupt": {"type": "boolean"}, diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index 99ff7b1f7a3..29b999c32e8 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -74,6 +74,8 @@ You can create `info.json` files at every level under `qmk_firmware/keyboards/Boolean + * Default: `false` * `hold_on_other_key_press` Boolean * Default: `false` * `hold_on_other_key_press_per_key` Boolean @@ -328,6 +330,8 @@ The ISO enter key is represented by a 1.25u×2uh key. Renderers which utilize in * `h` KeyUnit * The height of the key, in key units. * Default: `1` (1u) + * `hand` String + * The handedness of the key for Chordal Hold, either `"L"` (left hand), `"R"` (right hand), or `"*"` (either or exempted handedness). * `label` String * What to name the key. This is *not* a key assignment as in the keymap, but should usually correspond to the keycode for the first layer of the default keymap. * Example: `"Escape"` diff --git a/docs/tap_hold.md b/docs/tap_hold.md index 9b7f6552cbf..254d5de5ec1 100644 --- a/docs/tap_hold.md +++ b/docs/tap_hold.md @@ -425,6 +425,169 @@ uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t *record) { If `QUICK_TAP_TERM` is set higher than `TAPPING_TERM`, it will default to `TAPPING_TERM`. ::: +## Chordal Hold + +Chordal Hold is intended to be used together with either Permissive Hold or Hold +On Other Key Press. Chordal Hold is enabled by adding to your `config.h`: + +```c +#define CHORDAL_HOLD +``` + +Chordal Hold implements, by default, an "opposite hands" rule. Suppose a +tap-hold key is pressed and then, before the tapping term, another key is +pressed. With Chordal Hold, the tap-hold key is settled as tapped if the two +keys are on the same hand. + +Otherwise, if the keys are on opposite hands, Chordal Hold introduces no new +behavior. Hold On Other Key Press or Permissive Hold may be used together with +Chordal Hold to configure the behavior in the opposite hands case. With Hold On +Other Key Press, an opposite hands chord is settled immediately as held. Or with +Permissive Hold, an opposite hands chord is settled as held provided the other +key is pressed and released (nested press) before releasing the tap-hold key. + +Chordal Hold may be useful to avoid accidental modifier activation with +mod-taps, particularly in rolled keypresses when using home row mods. + +Notes: + +* Chordal Hold has no effect after the tapping term. + +* Combos are exempt from the opposite hands rule, since "handedness" is + ill-defined in this case. Even so, Chordal Hold's behavior involving combos + may be customized through the `get_chordal_hold()` callback. + +An example of a sequence that is affected by “chordal hold”: + +- `SFT_T(KC_A)` Down +- `KC_C` Down +- `KC_C` Up +- `SFT_T(KC_A)` Up + +``` + TAPPING_TERM + +---------------------------|--------+ + | +----------------------+ | | + | | SFT_T(KC_A) | | | + | +----------------------+ | | + | +--------------+ | | + | | KC_C | | | + | +--------------+ | | + +---------------------------|--------+ +``` + +If the two keys are on the same hand, then this will produce `ac` with +`SFT_T(KC_A)` settled as tapped the moment that `KC_C` is pressed. + +If the two keys are on opposite hands and the `HOLD_ON_OTHER_KEY_PRESS` option +enabled, this will produce `C` with `SFT_T(KC_A)` settled as held when `KC_C` is +pressed. + +Or if the two keys are on opposite hands and the `PERMISSIVE_HOLD` option is +enabled, this will produce `C` with `SFT_T(KC_A)` settled as held when that +`KC_C` is released. + +### Chordal Hold Handedness + +Determining whether keys are on the same or opposite hands involves defining the +"handedness" of each key position. By default, if nothing is specified, +handedness is guessed based on keyboard geometry. + +Handedness may be specified with `chordal_hold_layout`. In keymap.c, define +`chordal_hold_layout` in the following form: + +```c +const char chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS] PROGMEM = + LAYOUT( + 'L', 'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R', 'R', + 'L', 'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R', 'R', + 'L', 'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R', 'R', + 'L', 'L', 'L', 'R', 'R', 'R' + ); +``` + +Use the same `LAYOUT` macro as used to define your keymap layers. Each entry is +a character indicating the handedness of one key, either `'L'` for left, `'R'` +for right, or `'*'` to exempt keys from the "opposite hands rule." A key with +`'*'` handedness may settle as held in chords with any other key. This could be +used perhaps on thumb keys or other places where you want to allow same-hand +chords. + +Keyboard makers may specify handedness in keyboard.json. Under `"layouts"`, +specify the handedness of a key by adding a `"hand"` field with a value of +either `"L"`, `"R"`, or `"*"`. Note that if `"layouts"` contains multiple +layouts, only the first one is read. For example: + +```json +{"matrix": [5, 6], "x": 0, "y": 5.5, "w": 1.25, "hand", "*"}, +``` + +Alternatively, handedness may be defined functionally with +`chordal_hold_handedness()`. For example, in keymap.c define: + +```c +char chordal_hold_handedness(keypos_t key) { + if (key.col == 0 || key.col == MATRIX_COLS - 1) { + return '*'; // Exempt the outer columns. + } + // On split keyboards, typically, the first half of the rows are on the + // left, and the other half are on the right. + return key.row < MATRIX_ROWS / 2 ? 'L' : 'R'; +} +``` + +Given the matrix position of a key, the function should return `'L'`, `'R'`, or +`'*'`. Adapt the logic in this function according to the keyboard's matrix. + +::: warning +Note the matrix may have irregularities around larger keys, around the edges of +the board, and around thumb clusters. You may find it helpful to use [this +debugging example](faq_debug#which-matrix-position-is-this-keypress) to +correspond physical keys to matrix positions. +::: + +::: tip If you define both `chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS]` and +`chordal_hold_handedness(keypos_t key)` for handedness, the latter takes +precedence. +::: + + +### Per-chord customization + +Beyond the per-key configuration possible through handedness, Chordal Hold may +be configured at a *per-chord* granularity for detailed tuning. In keymap.c, +define `get_chordal_hold()`. Returning `true` allows the chord to be held, while +returning `false` settles as tapped. + +For example: + +```c +bool get_chordal_hold(uint16_t tap_hold_keycode, keyrecord_t* tap_hold_record, + uint16_t other_keycode, keyrecord_t* other_record) { + // Exceptionally allow some one-handed chords for hotkeys. + switch (tap_hold_keycode) { + case LCTL_T(KC_Z): + if (other_keycode == KC_C || other_keycode == KC_V) { + return true; + } + break; + + case RCTL_T(KC_SLSH): + if (other_keycode == KC_N) { + return true; + } + break; + } + // Otherwise defer to the opposite hands rule. + return get_chordal_hold_default(tap_hold_record, other_record); +} +``` + +As shown in the last line above, you may use +`get_chordal_hold_default(tap_hold_record, other_record)` to get the default tap +vs. hold decision according to the opposite hands rule. + + ## Retro Tapping To enable `retro tapping`, add the following to your `config.h`: diff --git a/lib/python/qmk/cli/generate/keyboard_c.py b/lib/python/qmk/cli/generate/keyboard_c.py index 228b320942a..1978de4a22c 100755 --- a/lib/python/qmk/cli/generate/keyboard_c.py +++ b/lib/python/qmk/cli/generate/keyboard_c.py @@ -1,5 +1,9 @@ """Used by the make system to generate keyboard.c from info.json. """ +import bisect +import dataclasses +from typing import Optional + from milc import cli from qmk.info import info_json @@ -87,6 +91,7 @@ def _gen_matrix_mask(info_data): lines.append(f' 0b{"".join(reversed(mask[i]))},') lines.append('};') lines.append('#endif') + lines.append('') return lines @@ -122,6 +127,128 @@ def _gen_joystick_axes(info_data): lines.append('};') lines.append('#endif') + lines.append('') + + return lines + + +@dataclasses.dataclass +class LayoutKey: + """Geometric info for one key in a layout.""" + row: int + col: int + x: float + y: float + w: float = 1.0 + h: float = 1.0 + hand: Optional[str] = None + + @staticmethod + def from_json(key_json): + row, col = key_json['matrix'] + return LayoutKey( + row=row, + col=col, + x=key_json['x'], + y=key_json['y'], + w=key_json.get('w', 1.0), + h=key_json.get('h', 1.0), + hand=key_json.get('hand', None), + ) + + @property + def cx(self): + """Center x coordinate of the key.""" + return self.x + self.w / 2.0 + + @property + def cy(self): + """Center y coordinate of the key.""" + return self.y + self.h / 2.0 + + +class Layout: + """Geometric info of a layout.""" + def __init__(self, layout_json): + self.keys = [LayoutKey.from_json(key_json) for key_json in layout_json['layout']] + self.x_min = min(key.cx for key in self.keys) + self.x_max = max(key.cx for key in self.keys) + self.x_mid = (self.x_min + self.x_max) / 2 + # If there is one key with width >= 6u, it is probably the spacebar. + i = [i for i, key in enumerate(self.keys) if key.w >= 6.0] + self.spacebar = self.keys[i[0]] if len(i) == 1 else None + + def is_symmetric(self, tol: float = 0.02): + """Whether the key positions are symmetric about x_mid.""" + x = sorted([key.cx for key in self.keys]) + for i in range(len(x)): + x_i_mirrored = 2.0 * self.x_mid - x[i] + # Find leftmost x element greater than or equal to (x_i_mirrored - tol). + j = bisect.bisect_left(x, x_i_mirrored - tol) + if j == len(x) or abs(x[j] - x_i_mirrored) > tol: + return False + + return True + + def widest_horizontal_gap(self): + """Finds the x midpoint of the widest horizontal gap between keys.""" + x = sorted([key.cx for key in self.keys]) + x_mid = self.x_mid + max_sep = 0 + for i in range(len(x) - 1): + sep = x[i + 1] - x[i] + if sep > max_sep: + max_sep = sep + x_mid = (x[i + 1] + x[i]) / 2 + + return x_mid + + +def _gen_chordal_hold_layout(info_data): + """Convert info.json content to chordal_hold_layout + """ + # NOTE: If there are multiple layouts, only the first is read. + for layout_name, layout_json in info_data['layouts'].items(): + layout = Layout(layout_json) + break + + if layout.is_symmetric(): + # If the layout is symmetric (e.g. most split keyboards), guess the + # handedness based on the sign of (x - layout.x_mid). + hand_signs = [key.x - layout.x_mid for key in layout.keys] + elif layout.spacebar is not None: + # If the layout has a spacebar, form a dividing line through the spacebar, + # nearly vertical but with a slight angle to follow typical row stagger. + x0 = layout.spacebar.cx - 0.05 + y0 = layout.spacebar.cy - 1.0 + hand_signs = [(key.x - x0) - (key.y - y0) / 3.0 for key in layout.keys] + else: + # Fallback: assume handedness based on the widest horizontal separation. + x_mid = layout.widest_horizontal_gap() + hand_signs = [key.x - x_mid for key in layout.keys] + + for key, hand_sign in zip(layout.keys, hand_signs): + if key.hand is None: + if key == layout.spacebar or abs(hand_sign) <= 0.02: + key.hand = '*' + else: + key.hand = 'L' if hand_sign < 0.0 else 'R' + + lines = [] + lines.append('#ifdef CHORDAL_HOLD') + line = ('__attribute__((weak)) const char chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS] PROGMEM = ' + layout_name + '(') + + x_prev = None + for key in layout.keys: + if x_prev is None or key.x < x_prev: + lines.append(line) + line = ' ' + line += f"'{key.hand}', " + x_prev = key.x + + lines.append(line[:-2]) + lines.append(');') + lines.append('#endif') return lines @@ -136,11 +263,12 @@ def generate_keyboard_c(cli): kb_info_json = info_json(cli.args.keyboard) # Build the layouts.h file. - keyboard_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#include QMK_KEYBOARD_H', ''] + keyboard_c_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#include QMK_KEYBOARD_H', ''] - keyboard_h_lines.extend(_gen_led_configs(kb_info_json)) - keyboard_h_lines.extend(_gen_matrix_mask(kb_info_json)) - keyboard_h_lines.extend(_gen_joystick_axes(kb_info_json)) + keyboard_c_lines.extend(_gen_led_configs(kb_info_json)) + keyboard_c_lines.extend(_gen_matrix_mask(kb_info_json)) + keyboard_c_lines.extend(_gen_joystick_axes(kb_info_json)) + keyboard_c_lines.extend(_gen_chordal_hold_layout(kb_info_json)) # Show the results - dump_lines(cli.args.output, keyboard_h_lines, cli.args.quiet) + dump_lines(cli.args.output, keyboard_c_lines, cli.args.quiet) diff --git a/quantum/action_tapping.c b/quantum/action_tapping.c index 8f238490f2a..91719707023 100644 --- a/quantum/action_tapping.c +++ b/quantum/action_tapping.c @@ -49,6 +49,45 @@ __attribute__((weak)) bool get_permissive_hold(uint16_t keycode, keyrecord_t *re } # endif +# if defined(CHORDAL_HOLD) +extern const char chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS] PROGMEM; + +# define REGISTERED_TAPS_SIZE 8 +// Array of tap-hold keys that have been settled as tapped but not yet released. +static keypos_t registered_taps[REGISTERED_TAPS_SIZE] = {}; +static uint8_t num_registered_taps = 0; + +/** Adds `key` to the registered_taps array. */ +static void registered_taps_add(keypos_t key); +/** Returns the index of `key` in registered_taps, or -1 if not found. */ +static int8_t registered_tap_find(keypos_t key); +/** Removes index `i` from the registered_taps array. */ +static void registered_taps_del_index(uint8_t i); +/** Logs the registered_taps array for debugging. */ +static void debug_registered_taps(void); + +/** \brief Finds which queued events should be held according to Chordal Hold. + * + * In a situation with multiple unsettled tap-hold key presses, scan the queue + * up until the first release, non-tap-hold, or one-shot event and find the + * latest event in the queue that settles as held according to + * get_chordal_hold(). + * + * \return Index of the first tap, or equivalently, one past the latest hold. + */ +static uint8_t waiting_buffer_find_chordal_hold_tap(void); + +/** Processes queued events up to and including `key` as tapped. */ +static void waiting_buffer_chordal_hold_taps_until(keypos_t key); + +/** \brief Processes and pops buffered events until the first tap-hold event. */ +static void waiting_buffer_process_regular(void); + +static bool is_mt_or_lt(uint16_t keycode) { + return IS_QK_MOD_TAP(keycode) || IS_QK_LAYER_TAP(keycode); +} +# endif // CHORDAL_HOLD + # ifdef HOLD_ON_OTHER_KEY_PRESS_PER_KEY __attribute__((weak)) bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) { return false; @@ -166,6 +205,20 @@ void action_tapping_process(keyrecord_t record) { bool process_tapping(keyrecord_t *keyp) { const keyevent_t event = keyp->event; +# if defined(CHORDAL_HOLD) + if (!event.pressed) { + const int8_t i = registered_tap_find(event.key); + if (i != -1) { + // If a tap-hold key was previously settled as tapped, set its + // tap.count correspondingly on release. + keyp->tap.count = 1; + registered_taps_del_index(i); + ac_dprintf("Found tap release for [%d]\n", i); + debug_registered_taps(); + } + } +# endif // CHORDAL_HOLD + // state machine is in the "reset" state, no tapping key is to be // processed if (IS_NOEVENT(tapping_key.event)) { @@ -188,7 +241,7 @@ bool process_tapping(keyrecord_t *keyp) { return true; } -# if (defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) || defined(PERMISSIVE_HOLD_PER_KEY) || defined(HOLD_ON_OTHER_KEY_PRESS_PER_KEY) +# if (defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) || defined(PERMISSIVE_HOLD_PER_KEY) || defined(CHORDAL_HOLD) || defined(HOLD_ON_OTHER_KEY_PRESS_PER_KEY) TAP_DEFINE_KEYCODE; # endif @@ -199,6 +252,7 @@ bool process_tapping(keyrecord_t *keyp) { // early return for tick events return true; } + if (tapping_key.tap.count == 0) { if (IS_TAPPING_RECORD(keyp) && !event.pressed) { // first tap! @@ -212,6 +266,25 @@ bool process_tapping(keyrecord_t *keyp) { // enqueue return false; } +# if defined(CHORDAL_HOLD) + else if (is_mt_or_lt(tapping_keycode) && !event.pressed && waiting_buffer_typed(event) && !get_chordal_hold(tapping_keycode, &tapping_key, get_record_keycode(keyp, false), keyp)) { + // Key release that is not a chord with the tapping key. + // Settle the tapping key and any other pending tap-hold + // keys preceding the press of this key as tapped. + + ac_dprintf("Tapping: End. Chord considered a tap\n"); + tapping_key.tap.count = 1; + registered_taps_add(tapping_key.event.key); + process_record(&tapping_key); + tapping_key = (keyrecord_t){0}; + + waiting_buffer_chordal_hold_taps_until(event.key); + debug_registered_taps(); + debug_waiting_buffer(); + // enqueue + return false; + } +# endif // CHORDAL_HOLD /* Process a key typed within TAPPING_TERM * This can register the key before settlement of tapping, * useful for long TAPPING_TERM but may prevent fast typing. @@ -229,6 +302,22 @@ bool process_tapping(keyrecord_t *keyp) { // clang-format on ac_dprintf("Tapping: End. No tap. Interfered by typing key\n"); process_record(&tapping_key); + +# if defined(CHORDAL_HOLD) + uint8_t first_tap = waiting_buffer_find_chordal_hold_tap(); + ac_dprintf("first_tap = %u\n", first_tap); + if (first_tap < WAITING_BUFFER_SIZE) { + for (; waiting_buffer_tail != first_tap; waiting_buffer_tail = (waiting_buffer_tail + 1) % WAITING_BUFFER_SIZE) { + ac_dprintf("Processing [%u]\n", waiting_buffer_tail); + process_record(&waiting_buffer[waiting_buffer_tail]); + } + } + + waiting_buffer_chordal_hold_taps_until(event.key); + debug_registered_taps(); + debug_waiting_buffer(); +# endif // CHORDAL_HOLD + tapping_key = (keyrecord_t){0}; debug_tapping_key(); // enqueue @@ -237,6 +326,19 @@ bool process_tapping(keyrecord_t *keyp) { /* Process release event of a key pressed before tapping starts * Without this unexpected repeating will occur with having fast repeating setting * https://github.com/tmk/tmk_keyboard/issues/60 + * + * NOTE: This workaround causes events to process out of order, + * e.g. in a rolled press of three tap-hold keys like + * + * "A down, B down, C down, A up, B up, C up" + * + * events are processed as + * + * "A down, B down, A up, B up, C down, C up" + * + * It seems incorrect to process keyp before the tapping key. + * This workaround is old, from 2013. This might no longer + * be needed for the original problem it was meant to address. */ else if (!event.pressed && !waiting_buffer_typed(event)) { // Modifier/Layer should be retained till end of this tapping. @@ -271,19 +373,52 @@ bool process_tapping(keyrecord_t *keyp) { // set interrupted flag when other key pressed during tapping if (event.pressed) { tapping_key.tap.interrupted = true; - if (TAP_GET_HOLD_ON_OTHER_KEY_PRESS + +# if defined(CHORDAL_HOLD) + if (is_mt_or_lt(tapping_keycode) && !get_chordal_hold(tapping_keycode, &tapping_key, get_record_keycode(keyp, false), keyp)) { + // In process_action(), HOLD_ON_OTHER_KEY_PRESS + // will revert interrupted events to holds, so + // this needs to be set false. + tapping_key.tap.interrupted = false; + + if (!is_tap_record(keyp)) { + ac_dprintf("Tapping: End. Chord considered a tap\n"); + tapping_key.tap.count = 1; + registered_taps_add(tapping_key.event.key); + debug_registered_taps(); + process_record(&tapping_key); + tapping_key = (keyrecord_t){0}; + } + } else +# endif // CHORDAL_HOLD + if (TAP_GET_HOLD_ON_OTHER_KEY_PRESS # if defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT) - // Auto Shift cannot evaluate this early - // Retro Shift uses the hold action for all nested taps even without HOLD_ON_OTHER_KEY_PRESS, so this is fine to skip - && !(MAYBE_RETRO_SHIFTING(event, keyp) && get_auto_shifted_key(get_record_keycode(keyp, false), keyp)) + // Auto Shift cannot evaluate this early + // Retro Shift uses the hold action for all nested taps even without HOLD_ON_OTHER_KEY_PRESS, so this is fine to skip + && !(MAYBE_RETRO_SHIFTING(event, keyp) && get_auto_shifted_key(get_record_keycode(keyp, false), keyp)) # endif - ) { + ) { + // Settle the tapping key as *held*, since + // HOLD_ON_OTHER_KEY_PRESS is enabled for this key. ac_dprintf("Tapping: End. No tap. Interfered by pressed key\n"); process_record(&tapping_key); - tapping_key = (keyrecord_t){0}; + +# if defined(CHORDAL_HOLD) + if (waiting_buffer_tail != waiting_buffer_head && is_tap_record(&waiting_buffer[waiting_buffer_tail])) { + tapping_key = waiting_buffer[waiting_buffer_tail]; + // Pop tail from the queue. + waiting_buffer_tail = (waiting_buffer_tail + 1) % WAITING_BUFFER_SIZE; + debug_waiting_buffer(); + } else +# endif // CHORDAL_HOLD + { + tapping_key = (keyrecord_t){0}; + } debug_tapping_key(); - // enqueue - return false; + +# if defined(CHORDAL_HOLD) + waiting_buffer_process_regular(); +# endif // CHORDAL_HOLD } } // enqueue @@ -520,26 +655,125 @@ void waiting_buffer_scan_tap(void) { } } -/** \brief Tapping key debug print - * - * FIXME: Needs docs - */ +# ifdef CHORDAL_HOLD +__attribute__((weak)) bool get_chordal_hold(uint16_t tap_hold_keycode, keyrecord_t *tap_hold_record, uint16_t other_keycode, keyrecord_t *other_record) { + return get_chordal_hold_default(tap_hold_record, other_record); +} + +bool get_chordal_hold_default(keyrecord_t *tap_hold_record, keyrecord_t *other_record) { + if (tap_hold_record->event.type != KEY_EVENT || other_record->event.type != KEY_EVENT) { + return true; // Return true on combos or other non-key events. + } + + char tap_hold_hand = chordal_hold_handedness(tap_hold_record->event.key); + if (tap_hold_hand == '*') { + return true; + } + char other_hand = chordal_hold_handedness(other_record->event.key); + return other_hand == '*' || tap_hold_hand != other_hand; +} + +__attribute__((weak)) char chordal_hold_handedness(keypos_t key) { + return (char)pgm_read_byte(&chordal_hold_layout[key.row][key.col]); +} + +static void registered_taps_add(keypos_t key) { + if (num_registered_taps >= REGISTERED_TAPS_SIZE) { + ac_dprintf("TAPS OVERFLOW: CLEAR ALL STATES\n"); + clear_keyboard(); + num_registered_taps = 0; + } + + registered_taps[num_registered_taps] = key; + ++num_registered_taps; +} + +static int8_t registered_tap_find(keypos_t key) { + for (int8_t i = 0; i < num_registered_taps; ++i) { + if (KEYEQ(registered_taps[i], key)) { + return i; + } + } + return -1; +} + +static void registered_taps_del_index(uint8_t i) { + if (i < num_registered_taps) { + --num_registered_taps; + if (i < num_registered_taps) { + registered_taps[i] = registered_taps[num_registered_taps]; + } + } +} + +static void debug_registered_taps(void) { + ac_dprintf("registered_taps = { "); + for (int8_t i = 0; i < num_registered_taps; ++i) { + ac_dprintf("%02X%02X ", registered_taps[i].row, registered_taps[i].col); + } + ac_dprintf("}\n"); +} + +static uint8_t waiting_buffer_find_chordal_hold_tap(void) { + keyrecord_t *prev = &tapping_key; + uint16_t prev_keycode = get_record_keycode(&tapping_key, false); + uint8_t first_tap = WAITING_BUFFER_SIZE; + for (uint8_t i = waiting_buffer_tail; i != waiting_buffer_head; i = (i + 1) % WAITING_BUFFER_SIZE) { + keyrecord_t * cur = &waiting_buffer[i]; + const uint16_t cur_keycode = get_record_keycode(cur, false); + if (!cur->event.pressed || !is_mt_or_lt(prev_keycode)) { + break; + } else if (get_chordal_hold(prev_keycode, prev, cur_keycode, cur)) { + first_tap = i; // Track one index past the latest hold. + } + prev = cur; + prev_keycode = cur_keycode; + } + return first_tap; +} + +static void waiting_buffer_chordal_hold_taps_until(keypos_t key) { + while (waiting_buffer_tail != waiting_buffer_head) { + keyrecord_t *record = &waiting_buffer[waiting_buffer_tail]; + ac_dprintf("waiting_buffer_chordal_hold_taps_until: processing [%u]\n", waiting_buffer_tail); + if (is_tap_record(record)) { + record->tap.count = 1; + registered_taps_add(record->event.key); + } + process_record(record); + waiting_buffer_tail = (waiting_buffer_tail + 1) % WAITING_BUFFER_SIZE; + + if (KEYEQ(key, record->event.key) && record->event.pressed) { + break; + } + } +} + +static void waiting_buffer_process_regular(void) { + for (; waiting_buffer_tail != waiting_buffer_head; waiting_buffer_tail = (waiting_buffer_tail + 1) % WAITING_BUFFER_SIZE) { + if (is_tap_record(&waiting_buffer[waiting_buffer_tail])) { + break; // Stop once a tap-hold key event is reached. + } + ac_dprintf("waiting_buffer_process_regular: processing [%u]\n", waiting_buffer_tail); + process_record(&waiting_buffer[waiting_buffer_tail]); + } + debug_waiting_buffer(); +} +# endif // CHORDAL_HOLD + +/** \brief Logs tapping key if ACTION_DEBUG is enabled. */ static void debug_tapping_key(void) { ac_dprintf("TAPPING_KEY="); debug_record(tapping_key); ac_dprintf("\n"); } -/** \brief Waiting buffer debug print - * - * FIXME: Needs docs - */ +/** \brief Logs waiting buffer if ACTION_DEBUG is enabled. */ static void debug_waiting_buffer(void) { - ac_dprintf("{ "); + ac_dprintf("{"); for (uint8_t i = waiting_buffer_tail; i != waiting_buffer_head; i = (i + 1) % WAITING_BUFFER_SIZE) { - ac_dprintf("[%u]=", i); + ac_dprintf(" [%u]=", i); debug_record(waiting_buffer[i]); - ac_dprintf(" "); } ac_dprintf("}\n"); } diff --git a/quantum/action_tapping.h b/quantum/action_tapping.h index 6b518b82988..c3c7b999ec9 100644 --- a/quantum/action_tapping.h +++ b/quantum/action_tapping.h @@ -46,6 +46,71 @@ bool get_permissive_hold(uint16_t keycode, keyrecord_t *record); bool get_retro_tapping(uint16_t keycode, keyrecord_t *record); bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record); +#ifdef CHORDAL_HOLD +/** + * Callback to say when a key chord before the tapping term may be held. + * + * In keymap.c, define the callback + * + * bool get_chordal_hold(uint16_t tap_hold_keycode, + * keyrecord_t* tap_hold_record, + * uint16_t other_keycode, + * keyrecord_t* other_record) { + * // Conditions... + * } + * + * This callback is called when: + * + * 1. `tap_hold_keycode` is pressed. + * 2. `other_keycode` is pressed while `tap_hold_keycode` is still held, + * provided `other_keycode` is *not* also a tap-hold key and it is pressed + * before the tapping term. + * + * If false is returned, this has the effect of immediately settling the + * tap-hold key as tapped. If true is returned, the tap-hold key is still + * unsettled, and may be settled as held depending on configuration and + * subsequent events. + * + * @param tap_hold_keycode Keycode of the tap-hold key. + * @param tap_hold_record Record from the tap-hold press event. + * @param other_keycode Keycode of the other key. + * @param other_record Record from the other key's press event. + * @return True if the tap-hold key may be considered held; false if tapped. + */ +bool get_chordal_hold(uint16_t tap_hold_keycode, keyrecord_t *tap_hold_record, uint16_t other_keycode, keyrecord_t *other_record); + +/** + * Default "opposite hands rule" for whether a key chord may settle as held. + * + * This function returns true when the tap-hold key and other key are on + * "opposite hands." In detail, handedness of the two keys are compared. If + * handedness values differ, or if either handedness is '*', the function + * returns true, indicating that it may be held. Otherwise, it returns false, + * in which case the tap-hold key is immediately settled at tapped. + * + * @param tap_hold_record Record of the active tap-hold key press. + * @param other_record Record of the other, interrupting key press. + * @return True if the tap-hold key may be considered held; false if tapped. + */ +bool get_chordal_hold_default(keyrecord_t *tap_hold_record, keyrecord_t *other_record); + +/** + * Gets the handedness of a key. + * + * This function returns: + * 'L' for keys pressed by the left hand, + * 'R' for keys on the right hand, + * '*' for keys exempt from the "opposite hands rule." This could be used + * perhaps on thumb keys or keys that might be pressed by either hand. + * + * @param key A key matrix position. + * @return Handedness value. + */ +char chordal_hold_handedness(keypos_t key); + +extern const char chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS] PROGMEM; +#endif + #ifdef DYNAMIC_TAPPING_TERM_ENABLE extern uint16_t g_tapping_term; #endif diff --git a/tests/tap_hold_configurations/chordal_hold/default/config.h b/tests/tap_hold_configurations/chordal_hold/default/config.h new file mode 100644 index 00000000000..2ba155df730 --- /dev/null +++ b/tests/tap_hold_configurations/chordal_hold/default/config.h @@ -0,0 +1,21 @@ +/* Copyright 2022 Vladislav Kucheriavykh + * Copyright 2024 Google LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "test_common.h" +#define CHORDAL_HOLD diff --git a/tests/tap_hold_configurations/chordal_hold/default/test.mk b/tests/tap_hold_configurations/chordal_hold/default/test.mk new file mode 100644 index 00000000000..2b049cea3b4 --- /dev/null +++ b/tests/tap_hold_configurations/chordal_hold/default/test.mk @@ -0,0 +1,17 @@ +# Copyright 2022 Vladislav Kucheriavykh +# Copyright 2024 Google LLC +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +INTROSPECTION_KEYMAP_C = test_keymap.c diff --git a/tests/tap_hold_configurations/chordal_hold/default/test_keymap.c b/tests/tap_hold_configurations/chordal_hold/default/test_keymap.c new file mode 100644 index 00000000000..8a6a2c59b0a --- /dev/null +++ b/tests/tap_hold_configurations/chordal_hold/default/test_keymap.c @@ -0,0 +1,22 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "quantum.h" + +const char chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS] PROGMEM = { + {'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, + {'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, + {'*', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, + {'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, +}; diff --git a/tests/tap_hold_configurations/chordal_hold/default/test_one_shot_keys.cpp b/tests/tap_hold_configurations/chordal_hold/default/test_one_shot_keys.cpp new file mode 100644 index 00000000000..ac4edd08b23 --- /dev/null +++ b/tests/tap_hold_configurations/chordal_hold/default/test_one_shot_keys.cpp @@ -0,0 +1,168 @@ +/* Copyright 2021 Stefan Kerkmann + * Copyright 2024 Google LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "action_util.h" +#include "keyboard_report_util.hpp" +#include "test_common.hpp" + +using testing::_; +using testing::InSequence; + +class OneShot : public TestFixture {}; +class OneShotParametrizedTestFixture : public ::testing::WithParamInterface>, public OneShot {}; + +TEST_P(OneShotParametrizedTestFixture, OSMWithAdditionalKeypress) { + TestDriver driver; + KeymapKey osm_key = GetParam().first; + KeymapKey regular_key = GetParam().second; + + set_keymap({osm_key, regular_key}); + + // Press and release OSM. + EXPECT_NO_REPORT(driver); + tap_key(osm_key); + VERIFY_AND_CLEAR(driver); + + // Press regular key. + EXPECT_REPORT(driver, (osm_key.report_code, regular_key.report_code)); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release regular key. + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_P(OneShotParametrizedTestFixture, OSMAsRegularModifierWithAdditionalKeypress) { + TestDriver driver; + KeymapKey osm_key = GetParam().first; + KeymapKey regular_key = GetParam().second; + + set_keymap({osm_key, regular_key}); + + // Press OSM. + EXPECT_NO_REPORT(driver); + osm_key.press(); + run_one_scan_loop(); + // Press regular key. + regular_key.press(); + run_one_scan_loop(); + // Release regular key. + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release OSM. + EXPECT_REPORT(driver, (regular_key.report_code, osm_key.report_code)); + EXPECT_EMPTY_REPORT(driver); + osm_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +// clang-format off + +INSTANTIATE_TEST_CASE_P( + OneShotModifierTests, + OneShotParametrizedTestFixture, + ::testing::Values( + // First is osm key, second is regular key. + std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_LSFT), KC_LSFT}, KeymapKey{0, 1, 1, KC_A}), + std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_LCTL), KC_LCTL}, KeymapKey{0, 1, 1, KC_A}), + std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_LALT), KC_LALT}, KeymapKey{0, 1, 1, KC_A}), + std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_LGUI), KC_LGUI}, KeymapKey{0, 1, 1, KC_A}), + std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_RCTL), KC_RCTL}, KeymapKey{0, 1, 1, KC_A}), + std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_RSFT), KC_RSFT}, KeymapKey{0, 1, 1, KC_A}), + std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_RALT), KC_RALT}, KeymapKey{0, 1, 1, KC_A}), + std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_RGUI), KC_RGUI}, KeymapKey{0, 1, 1, KC_A}) + )); +// clang-format on + +TEST_F(OneShot, OSLWithAdditionalKeypress) { + TestDriver driver; + InSequence s; + KeymapKey osl_key = KeymapKey{0, 0, 0, OSL(1)}; + KeymapKey osl_key1 = KeymapKey{1, 0, 0, KC_X}; + KeymapKey regular_key0 = KeymapKey{0, 1, 0, KC_Y}; + KeymapKey regular_key1 = KeymapKey{1, 1, 0, KC_A}; + + set_keymap({osl_key, osl_key1, regular_key0, regular_key1}); + + // Press OSL key. + EXPECT_NO_REPORT(driver); + osl_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release OSL key. + EXPECT_NO_REPORT(driver); + osl_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press regular key. + EXPECT_REPORT(driver, (regular_key1.report_code)); + EXPECT_EMPTY_REPORT(driver); + regular_key1.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release regular key. + EXPECT_NO_REPORT(driver); + regular_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(OneShot, OSLWithOsmAndAdditionalKeypress) { + TestDriver driver; + InSequence s; + KeymapKey osl_key = KeymapKey{0, 0, 0, OSL(1)}; + KeymapKey osm_key = KeymapKey{1, 1, 0, OSM(MOD_LSFT), KC_LSFT}; + KeymapKey regular_key = KeymapKey{1, 1, 1, KC_A}; + KeymapKey blank_key = KeymapKey{1, 0, 0, KC_NO}; + + set_keymap({osl_key, osm_key, regular_key, blank_key}); + + // Press OSL key. + EXPECT_NO_REPORT(driver); + osl_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release OSL key. + EXPECT_NO_REPORT(driver); + osl_key.release(); + run_one_scan_loop(); + EXPECT_TRUE(layer_state_is(1)); + VERIFY_AND_CLEAR(driver); + + // Press and release OSM. + EXPECT_NO_REPORT(driver); + tap_key(osm_key); + EXPECT_TRUE(layer_state_is(1)); + VERIFY_AND_CLEAR(driver); + + // Tap regular key. + EXPECT_REPORT(driver, (osm_key.report_code, regular_key.report_code)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key); + VERIFY_AND_CLEAR(driver); +} diff --git a/tests/tap_hold_configurations/chordal_hold/default/test_tap_hold.cpp b/tests/tap_hold_configurations/chordal_hold/default/test_tap_hold.cpp new file mode 100644 index 00000000000..70949e218c9 --- /dev/null +++ b/tests/tap_hold_configurations/chordal_hold/default/test_tap_hold.cpp @@ -0,0 +1,264 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "keyboard_report_util.hpp" +#include "keycode.h" +#include "test_common.hpp" +#include "action_tapping.h" +#include "test_fixture.hpp" +#include "test_keymap_key.hpp" + +using testing::_; +using testing::InSequence; + +class ChordalHoldDefault : public TestFixture {}; + +TEST_F(ChordalHoldDefault, chord_nested_press_settled_as_tap) { + TestDriver driver; + InSequence s; + // Mod-tap key on the left hand. + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + // Regular key on the right hand. + auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); + + set_keymap({mod_tap_key, regular_key}); + + // Press mod-tap key. + EXPECT_NO_REPORT(driver); + mod_tap_key.press(); + run_one_scan_loop(); + // Tap regular key. + tap_key(regular_key); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap key. + EXPECT_REPORT(driver, (KC_P)); + EXPECT_REPORT(driver, (KC_P, KC_A)); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldDefault, chord_rolled_press_settled_as_tap) { + TestDriver driver; + InSequence s; + // Mod-tap key on the left hand. + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + // Regular key on the right hand. + auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); + + set_keymap({mod_tap_key, regular_key}); + + // Press mod-tap key and regular key. + EXPECT_NO_REPORT(driver); + mod_tap_key.press(); + run_one_scan_loop(); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap key. + EXPECT_REPORT(driver, (KC_P)); + EXPECT_REPORT(driver, (KC_P, KC_A)); + EXPECT_REPORT(driver, (KC_A)); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release regular key. + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldDefault, non_chord_with_mod_tap_settled_as_tap) { + TestDriver driver; + InSequence s; + // Mod-tap key and regular key both on the left hand. + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + auto regular_key = KeymapKey(0, 2, 0, KC_A); + + set_keymap({mod_tap_key, regular_key}); + + // Press mod-tap-hold key. + EXPECT_NO_REPORT(driver); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press regular key. + EXPECT_REPORT(driver, (KC_P)); + EXPECT_REPORT(driver, (KC_P, KC_A)); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release regular key. + EXPECT_REPORT(driver, (KC_P)); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldDefault, tap_mod_tap_key) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + + set_keymap({mod_tap_key}); + + EXPECT_NO_REPORT(driver); + mod_tap_key.press(); + idle_for(TAPPING_TERM - 1); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldDefault, hold_mod_tap_key) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + + set_keymap({mod_tap_key}); + + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + mod_tap_key.press(); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldDefault, two_mod_taps_same_hand_hold_til_timeout) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, MATRIX_COLS - 2, 0, RCTL_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, MATRIX_COLS - 1, 0, RSFT_T(KC_B)); + + set_keymap({mod_tap_key1, mod_tap_key2}); + + // Press mod-tap keys. + EXPECT_NO_REPORT(driver); + mod_tap_key1.press(); + run_one_scan_loop(); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Continue holding til the tapping term. + EXPECT_REPORT(driver, (KC_RIGHT_CTRL)); + EXPECT_REPORT(driver, (KC_RIGHT_CTRL, KC_RIGHT_SHIFT)); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap keys. + EXPECT_REPORT(driver, (KC_RIGHT_SHIFT)); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldDefault, three_mod_taps_same_hand_streak_roll) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_B)); + auto mod_tap_key3 = KeymapKey(0, 3, 0, RSFT_T(KC_C)); + + set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3}); + + // Press mod-tap keys. + EXPECT_NO_REPORT(driver); + mod_tap_key1.press(); + run_one_scan_loop(); + mod_tap_key2.press(); + run_one_scan_loop(); + mod_tap_key3.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release keys 1, 2, 3. + // + // NOTE: The correct order of events should be + // EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); + // EXPECT_REPORT(driver, (KC_B, KC_C)); + // EXPECT_REPORT(driver, (KC_C)); + // EXPECT_EMPTY_REPORT(driver); + // + // However, due to a workaround for https://github.com/tmk/tmk_keyboard/issues/60, + // the events are processed out of order, with the first two keys released + // before pressing KC_C. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_REPORT(driver, (KC_A, KC_B)); + EXPECT_REPORT(driver, (KC_B)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_C)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key1.release(); + run_one_scan_loop(); + mod_tap_key2.release(); + run_one_scan_loop(); + mod_tap_key3.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldDefault, tap_regular_key_while_layer_tap_key_is_held) { + TestDriver driver; + InSequence s; + auto layer_tap_hold_key = KeymapKey(0, 1, 0, LT(1, KC_P)); + auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); + auto layer_key = KeymapKey(1, MATRIX_COLS - 1, 0, KC_B); + + set_keymap({layer_tap_hold_key, regular_key, layer_key}); + + EXPECT_NO_REPORT(driver); + layer_tap_hold_key.press(); // Press layer-tap-hold key. + run_one_scan_loop(); + regular_key.press(); // Press regular key. + run_one_scan_loop(); + regular_key.release(); // Release regular key. + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_P)); + EXPECT_REPORT(driver, (KC_P, KC_A)); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + layer_tap_hold_key.release(); // Release layer-tap-hold key. + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} diff --git a/tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/config.h b/tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/config.h new file mode 100644 index 00000000000..87094b2faca --- /dev/null +++ b/tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/config.h @@ -0,0 +1,22 @@ +/* Copyright 2022 Vladislav Kucheriavykh + * Copyright 2024 Google LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "test_common.h" +#define CHORDAL_HOLD +#define HOLD_ON_OTHER_KEY_PRESS diff --git a/tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/test.mk b/tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/test.mk new file mode 100644 index 00000000000..2b049cea3b4 --- /dev/null +++ b/tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/test.mk @@ -0,0 +1,17 @@ +# Copyright 2022 Vladislav Kucheriavykh +# Copyright 2024 Google LLC +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +INTROSPECTION_KEYMAP_C = test_keymap.c diff --git a/tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/test_keymap.c b/tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/test_keymap.c new file mode 100644 index 00000000000..8a6a2c59b0a --- /dev/null +++ b/tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/test_keymap.c @@ -0,0 +1,22 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "quantum.h" + +const char chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS] PROGMEM = { + {'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, + {'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, + {'*', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, + {'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, +}; diff --git a/tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/test_tap_hold.cpp b/tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/test_tap_hold.cpp new file mode 100644 index 00000000000..e6852bbbb1e --- /dev/null +++ b/tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/test_tap_hold.cpp @@ -0,0 +1,807 @@ +// Copyright 2024-2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "keyboard_report_util.hpp" +#include "keycode.h" +#include "test_common.hpp" +#include "action_tapping.h" +#include "test_fixture.hpp" +#include "test_keymap_key.hpp" + +using testing::_; +using testing::InSequence; + +class ChordalHoldHoldOnOtherKeyPress : public TestFixture {}; + +TEST_F(ChordalHoldHoldOnOtherKeyPress, chord_with_mod_tap_settled_as_hold) { + TestDriver driver; + InSequence s; + // Mod-tap key on the left hand. + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + // Regular key on the right hand. + auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); + + set_keymap({mod_tap_key, regular_key}); + + // Press mod-tap-hold key. + EXPECT_NO_REPORT(driver); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press regular key. + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_A)); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release regular key. + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldHoldOnOtherKeyPress, chord_nested_press_settled_as_hold) { + TestDriver driver; + InSequence s; + // Mod-tap key on the left hand. + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + // Regular key on the right hand. + auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); + + set_keymap({mod_tap_key, regular_key}); + + // Press mod-tap-hold key. + EXPECT_NO_REPORT(driver); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Tap regular key. + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_A)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + tap_key(regular_key); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldHoldOnOtherKeyPress, chord_rolled_press_settled_as_hold) { + TestDriver driver; + InSequence s; + // Mod-tap key on the left hand. + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + // Regular key on the right hand. + auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); + + set_keymap({mod_tap_key, regular_key}); + + // Press mod-tap key. + EXPECT_NO_REPORT(driver); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press regular key. + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_A)); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap key. + EXPECT_REPORT(driver, (KC_A)); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release regular key. + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldHoldOnOtherKeyPress, non_chord_with_mod_tap_settled_as_tap) { + TestDriver driver; + InSequence s; + // Mod-tap key and regular key both on the left hand. + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + auto regular_key = KeymapKey(0, 2, 0, KC_A); + + set_keymap({mod_tap_key, regular_key}); + + // Press mod-tap-hold key. + EXPECT_NO_REPORT(driver); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press regular key. + EXPECT_REPORT(driver, (KC_P)); + EXPECT_REPORT(driver, (KC_P, KC_A)); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release regular key. + EXPECT_REPORT(driver, (KC_P)); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldHoldOnOtherKeyPress, tap_mod_tap_key) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + + set_keymap({mod_tap_key}); + + EXPECT_NO_REPORT(driver); + mod_tap_key.press(); + idle_for(TAPPING_TERM - 1); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldHoldOnOtherKeyPress, hold_mod_tap_key) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + + set_keymap({mod_tap_key}); + + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + mod_tap_key.press(); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldHoldOnOtherKeyPress, two_mod_taps_same_hand_hold_til_timeout) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, MATRIX_COLS - 2, 0, RCTL_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, MATRIX_COLS - 1, 0, RSFT_T(KC_B)); + + set_keymap({mod_tap_key1, mod_tap_key2}); + + // Press mod-tap keys. + EXPECT_NO_REPORT(driver); + mod_tap_key1.press(); + run_one_scan_loop(); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Continue holding til the tapping term. + EXPECT_REPORT(driver, (KC_RIGHT_CTRL)); + EXPECT_REPORT(driver, (KC_RIGHT_CTRL, KC_RIGHT_SHIFT)); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap keys. + EXPECT_REPORT(driver, (KC_RIGHT_SHIFT)); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldHoldOnOtherKeyPress, two_mod_taps_nested_press_opposite_hands) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, MATRIX_COLS - 1, 0, RSFT_T(KC_B)); + + set_keymap({mod_tap_key1, mod_tap_key2}); + + // Press first mod-tap key. + EXPECT_NO_REPORT(driver); + mod_tap_key1.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press second mod-tap key. + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release second mod-tap key. + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release first mod-tap key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldHoldOnOtherKeyPress, two_mod_taps_nested_press_same_hand) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, RSFT_T(KC_B)); + + set_keymap({mod_tap_key1, mod_tap_key2}); + + // Press mod-tap keys. + EXPECT_NO_REPORT(driver); + mod_tap_key1.press(); + run_one_scan_loop(); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap keys. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_REPORT(driver, (KC_A, KC_B)); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key2.release(); + run_one_scan_loop(); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldHoldOnOtherKeyPress, three_mod_taps_same_hand_streak_roll) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_B)); + auto mod_tap_key3 = KeymapKey(0, 3, 0, RSFT_T(KC_C)); + + set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3}); + + // Press mod-tap keys. + EXPECT_NO_REPORT(driver); + mod_tap_key1.press(); + run_one_scan_loop(); + mod_tap_key2.press(); + run_one_scan_loop(); + mod_tap_key3.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release keys 1, 2, 3. + // + // NOTE: The correct order of events should be + // EXPECT_REPORT(driver, (KC_A)); + // EXPECT_REPORT(driver, (KC_A, KC_B)); + // EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); + // EXPECT_REPORT(driver, (KC_B, KC_C)); + // EXPECT_REPORT(driver, (KC_C)); + // EXPECT_EMPTY_REPORT(driver); + // + // However, due to a workaround for https://github.com/tmk/tmk_keyboard/issues/60, + // the events are processed out of order, with the first two keys released + // before pressing KC_C. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_REPORT(driver, (KC_A, KC_B)); + EXPECT_REPORT(driver, (KC_B)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_C)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key1.release(); + run_one_scan_loop(); + mod_tap_key2.release(); + run_one_scan_loop(); + mod_tap_key3.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldHoldOnOtherKeyPress, three_mod_taps_same_hand_streak_orders) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_B)); + auto mod_tap_key3 = KeymapKey(0, 3, 0, RSFT_T(KC_C)); + + set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3}); + + EXPECT_REPORT(driver, (KC_A)); + EXPECT_REPORT(driver, (KC_A, KC_B)); + EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); + EXPECT_REPORT(driver, (KC_A, KC_B)); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + // Press mod-tap keys. + mod_tap_key1.press(); + run_one_scan_loop(); + mod_tap_key2.press(); + run_one_scan_loop(); + mod_tap_key3.press(); + run_one_scan_loop(); + // Release keys 3, 2, 1. + mod_tap_key3.release(); + run_one_scan_loop(); + mod_tap_key2.release(); + run_one_scan_loop(); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_A)); + EXPECT_REPORT(driver, (KC_A, KC_B)); + EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); + EXPECT_REPORT(driver, (KC_A, KC_B)); + EXPECT_REPORT(driver, (KC_B)); + EXPECT_EMPTY_REPORT(driver); + idle_for(TAPPING_TERM); + // Press mod-tap keys. + mod_tap_key1.press(); + run_one_scan_loop(); + mod_tap_key2.press(); + run_one_scan_loop(); + mod_tap_key3.press(); + run_one_scan_loop(); + // Release keys 3, 1, 2. + mod_tap_key3.release(); + run_one_scan_loop(); + mod_tap_key1.release(); + run_one_scan_loop(); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // NOTE: The correct order of events should be + // EXPECT_REPORT(driver, (KC_A)); + // EXPECT_REPORT(driver, (KC_A, KC_B)); + // EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); + // EXPECT_REPORT(driver, (KC_A, KC_C)); + // EXPECT_REPORT(driver, (KC_A)); + // EXPECT_EMPTY_REPORT(driver); + // + // However, due to a workaround for https://github.com/tmk/tmk_keyboard/issues/60, + // the events are processed out of order, with the first two keys released + // before pressing KC_C. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_REPORT(driver, (KC_A, KC_B)); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_REPORT(driver, (KC_A, KC_C)); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + idle_for(TAPPING_TERM); + // Press mod-tap keys. + mod_tap_key1.press(); + run_one_scan_loop(); + mod_tap_key2.press(); + run_one_scan_loop(); + mod_tap_key3.press(); + run_one_scan_loop(); + // Release keys 2, 3, 1. + mod_tap_key2.release(); + run_one_scan_loop(); + mod_tap_key3.release(); + run_one_scan_loop(); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldHoldOnOtherKeyPress, three_mod_taps_two_left_one_right) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_B)); + auto mod_tap_key3 = KeymapKey(0, MATRIX_COLS - 1, 0, RSFT_T(KC_C)); + + set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3}); + + // Press mod-tap keys. + EXPECT_NO_REPORT(driver); + mod_tap_key1.press(); + run_one_scan_loop(); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_CTRL)); + mod_tap_key3.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release key 3. + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_CTRL, KC_C)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_CTRL)); + mod_tap_key3.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release key 2, then key 1. + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key2.release(); + run_one_scan_loop(); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap keys. + EXPECT_NO_REPORT(driver); + mod_tap_key1.press(); + run_one_scan_loop(); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_CTRL)); + mod_tap_key3.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release key 3. + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_CTRL, KC_C)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_CTRL)); + mod_tap_key3.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release key 1, then key 2. + EXPECT_REPORT(driver, (KC_LEFT_CTRL)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key1.release(); + run_one_scan_loop(); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldHoldOnOtherKeyPress, three_mod_taps_one_held_two_tapped) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, MATRIX_COLS - 2, 0, CTL_T(KC_B)); + auto mod_tap_key3 = KeymapKey(0, MATRIX_COLS - 1, 0, RSFT_T(KC_C)); + + set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3}); + + // Press mod-tap keys. + EXPECT_NO_REPORT(driver); + mod_tap_key1.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release keys 3, 2, 1. + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B, KC_C)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key3.press(); + run_one_scan_loop(); + mod_tap_key3.release(); + run_one_scan_loop(); + mod_tap_key2.release(); + run_one_scan_loop(); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap keys. + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM); + mod_tap_key1.press(); + run_one_scan_loop(); + + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release keys 3, 1, 2. + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B, KC_C)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); + EXPECT_REPORT(driver, (KC_B)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key3.press(); + run_one_scan_loop(); + mod_tap_key3.release(); + run_one_scan_loop(); + mod_tap_key1.release(); + run_one_scan_loop(); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldHoldOnOtherKeyPress, tap_regular_key_while_layer_tap_key_is_held) { + TestDriver driver; + InSequence s; + auto layer_tap_hold_key = KeymapKey(0, 1, 0, LT(1, KC_P)); + auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); + auto no_key = KeymapKey(1, 1, 0, XXXXXXX); + auto layer_key = KeymapKey(1, MATRIX_COLS - 1, 0, KC_B); + + set_keymap({layer_tap_hold_key, regular_key, no_key, layer_key}); + + // Press layer-tap-hold key. + EXPECT_NO_REPORT(driver); + layer_tap_hold_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press regular key. + EXPECT_REPORT(driver, (KC_B)); + regular_key.press(); + run_one_scan_loop(); + EXPECT_EQ(layer_state, 2); + VERIFY_AND_CLEAR(driver); + + // Release regular key. + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + EXPECT_EQ(layer_state, 2); + VERIFY_AND_CLEAR(driver); + + // Release layer-tap-hold key. + EXPECT_NO_REPORT(driver); + layer_tap_hold_key.release(); + run_one_scan_loop(); + EXPECT_EQ(layer_state, 0); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldHoldOnOtherKeyPress, long_distinct_taps_of_layer_tap_key_and_regular_key) { + TestDriver driver; + InSequence s; + auto layer_tap_hold_key = KeymapKey(0, 1, 0, LT(1, KC_P)); + auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); + auto layer_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_B); + + set_keymap({layer_tap_hold_key, regular_key}); + + // Press layer-tap-hold key. + EXPECT_NO_REPORT(driver); + layer_tap_hold_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Idle for tapping term of layer tap hold key. + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM + 1); + EXPECT_EQ(layer_state, 2); + VERIFY_AND_CLEAR(driver); + + // Release layer-tap-hold key. + EXPECT_NO_REPORT(driver); + layer_tap_hold_key.release(); + run_one_scan_loop(); + EXPECT_EQ(layer_state, 0); + VERIFY_AND_CLEAR(driver); + + // Press regular key. + EXPECT_REPORT(driver, (KC_A)); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release regular key. + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldHoldOnOtherKeyPress, nested_tap_of_layer_0_layer_tap_keys) { + TestDriver driver; + InSequence s; + // The keys are layer-taps on layer 0 but regular keys on layer 1. + auto first_layer_tap_key = KeymapKey(0, 1, 0, LT(1, KC_A)); + auto second_layer_tap_key = KeymapKey(0, MATRIX_COLS - 1, 0, LT(1, KC_P)); + auto first_key_on_layer = KeymapKey(1, 1, 0, KC_B); + auto second_key_on_layer = KeymapKey(1, MATRIX_COLS - 1, 0, KC_Q); + + set_keymap({first_layer_tap_key, second_layer_tap_key, first_key_on_layer, second_key_on_layer}); + + // Press first layer-tap key. + EXPECT_NO_REPORT(driver); + first_layer_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press second layer-tap key. + EXPECT_REPORT(driver, (KC_Q)); + second_layer_tap_key.press(); + run_one_scan_loop(); + EXPECT_EQ(layer_state, 2); + VERIFY_AND_CLEAR(driver); + + // Release second layer-tap key. + EXPECT_EMPTY_REPORT(driver); + second_layer_tap_key.release(); + run_one_scan_loop(); + EXPECT_EQ(layer_state, 2); + VERIFY_AND_CLEAR(driver); + + // Release first layer-tap key. + EXPECT_NO_REPORT(driver); + first_layer_tap_key.release(); + run_one_scan_loop(); + EXPECT_EQ(layer_state, 0); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldHoldOnOtherKeyPress, lt_mt_one_regular_key) { + TestDriver driver; + InSequence s; + auto lt_key = KeymapKey(0, 1, 0, LT(1, KC_A)); + auto mt_key0 = KeymapKey(0, 2, 0, SFT_T(KC_B)); + auto mt_key1 = KeymapKey(1, 2, 0, CTL_T(KC_C)); + auto regular_key = KeymapKey(1, MATRIX_COLS - 1, 0, KC_X); + auto no_key0 = KeymapKey(0, MATRIX_COLS - 1, 0, XXXXXXX); + auto no_key1 = KeymapKey(1, 1, 0, XXXXXXX); + + set_keymap({lt_key, mt_key0, mt_key1, regular_key, no_key0, no_key1}); + + // Press LT, MT. + EXPECT_NO_REPORT(driver); + lt_key.press(); + run_one_scan_loop(); + mt_key1.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press regular key. + EXPECT_REPORT(driver, (KC_LCTL)); + EXPECT_REPORT(driver, (KC_LCTL, KC_X)); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release the regular key. + EXPECT_REPORT(driver, (KC_LCTL)); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release MT key. + EXPECT_EMPTY_REPORT(driver); + mt_key1.release(); + run_one_scan_loop(); + EXPECT_EQ(get_mods(), 0); + VERIFY_AND_CLEAR(driver); + + // Release LT key. + lt_key.release(); + run_one_scan_loop(); + EXPECT_EQ(layer_state, 0); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldHoldOnOtherKeyPress, nested_tap_of_layer_tap_keys) { + TestDriver driver; + InSequence s; + // The keys are layer-taps on all layers. + auto first_key_layer_0 = KeymapKey(0, 1, 0, LT(1, KC_A)); + auto second_key_layer_0 = KeymapKey(0, MATRIX_COLS - 1, 0, LT(1, KC_P)); + auto first_key_layer_1 = KeymapKey(1, 1, 0, LT(2, KC_B)); + auto second_key_layer_1 = KeymapKey(1, MATRIX_COLS - 1, 0, LT(2, KC_Q)); + auto first_key_layer_2 = KeymapKey(2, 1, 0, KC_TRNS); + auto second_key_layer_2 = KeymapKey(2, MATRIX_COLS - 1, 0, KC_TRNS); + + set_keymap({first_key_layer_0, second_key_layer_0, first_key_layer_1, second_key_layer_1, first_key_layer_2, second_key_layer_2}); + + // Press first layer-tap key. + EXPECT_NO_REPORT(driver); + first_key_layer_0.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press second layer-tap key. + EXPECT_NO_REPORT(driver); + second_key_layer_0.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release second layer-tap key. + EXPECT_REPORT(driver, (KC_Q)); + EXPECT_EMPTY_REPORT(driver); + second_key_layer_0.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release first layer-tap key. + EXPECT_NO_REPORT(driver); + first_key_layer_0.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldHoldOnOtherKeyPress, roll_layer_tap_key_with_regular_key) { + TestDriver driver; + InSequence s; + + auto layer_tap_hold_key = KeymapKey(0, 1, 0, LT(1, KC_P)); + auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); + auto layer_key = KeymapKey(1, MATRIX_COLS - 1, 0, KC_B); + + set_keymap({layer_tap_hold_key, regular_key, layer_key}); + + // Press layer-tap-hold key. + EXPECT_NO_REPORT(driver); + layer_tap_hold_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press regular key. + EXPECT_REPORT(driver, (KC_B)); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release layer-tap-hold key. + EXPECT_NO_REPORT(driver); + layer_tap_hold_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release regular key. + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} diff --git a/tests/tap_hold_configurations/chordal_hold/permissive_hold/config.h b/tests/tap_hold_configurations/chordal_hold/permissive_hold/config.h new file mode 100644 index 00000000000..f7bb7ab0ec4 --- /dev/null +++ b/tests/tap_hold_configurations/chordal_hold/permissive_hold/config.h @@ -0,0 +1,22 @@ +/* Copyright 2022 Vladislav Kucheriavykh + * Copyright 2024 Google LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "test_common.h" +#define CHORDAL_HOLD +#define PERMISSIVE_HOLD diff --git a/tests/tap_hold_configurations/chordal_hold/permissive_hold/test.mk b/tests/tap_hold_configurations/chordal_hold/permissive_hold/test.mk new file mode 100644 index 00000000000..2b049cea3b4 --- /dev/null +++ b/tests/tap_hold_configurations/chordal_hold/permissive_hold/test.mk @@ -0,0 +1,17 @@ +# Copyright 2022 Vladislav Kucheriavykh +# Copyright 2024 Google LLC +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +INTROSPECTION_KEYMAP_C = test_keymap.c diff --git a/tests/tap_hold_configurations/chordal_hold/permissive_hold/test_keymap.c b/tests/tap_hold_configurations/chordal_hold/permissive_hold/test_keymap.c new file mode 100644 index 00000000000..8a6a2c59b0a --- /dev/null +++ b/tests/tap_hold_configurations/chordal_hold/permissive_hold/test_keymap.c @@ -0,0 +1,22 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "quantum.h" + +const char chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS] PROGMEM = { + {'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, + {'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, + {'*', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, + {'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, +}; diff --git a/tests/tap_hold_configurations/chordal_hold/permissive_hold/test_one_shot_keys.cpp b/tests/tap_hold_configurations/chordal_hold/permissive_hold/test_one_shot_keys.cpp new file mode 100644 index 00000000000..e48cba73e24 --- /dev/null +++ b/tests/tap_hold_configurations/chordal_hold/permissive_hold/test_one_shot_keys.cpp @@ -0,0 +1,174 @@ +/* Copyright 2021 Stefan Kerkmann + * Copyright 2024 Google LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "action_util.h" +#include "keyboard_report_util.hpp" +#include "test_common.hpp" + +using testing::_; +using testing::InSequence; + +class OneShot : public TestFixture {}; +class OneShotParametrizedTestFixture : public ::testing::WithParamInterface>, public OneShot {}; + +TEST_P(OneShotParametrizedTestFixture, OSMWithAdditionalKeypress) { + TestDriver driver; + KeymapKey osm_key = GetParam().first; + KeymapKey regular_key = GetParam().second; + + set_keymap({osm_key, regular_key}); + + // Press and release OSM. + EXPECT_NO_REPORT(driver); + tap_key(osm_key); + VERIFY_AND_CLEAR(driver); + + // Press regular key. + EXPECT_REPORT(driver, (osm_key.report_code, regular_key.report_code)); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release regular key. + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_P(OneShotParametrizedTestFixture, OSMAsRegularModifierWithAdditionalKeypress) { + TestDriver driver; + KeymapKey osm_key = GetParam().first; + KeymapKey regular_key = GetParam().second; + + set_keymap({osm_key, regular_key}); + + // Press OSM. + EXPECT_NO_REPORT(driver); + osm_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press regular key. + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release regular key. + EXPECT_REPORT(driver, (osm_key.report_code)).Times(2); + EXPECT_REPORT(driver, (regular_key.report_code, osm_key.report_code)); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release OSM. + EXPECT_EMPTY_REPORT(driver); + osm_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +// clang-format off + +INSTANTIATE_TEST_CASE_P( + OneShotModifierTests, + OneShotParametrizedTestFixture, + ::testing::Values( + // First is osm key, second is regular key. + std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_LSFT), KC_LSFT}, KeymapKey{0, 1, 1, KC_A}), + std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_LCTL), KC_LCTL}, KeymapKey{0, 1, 1, KC_A}), + std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_LALT), KC_LALT}, KeymapKey{0, 1, 1, KC_A}), + std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_LGUI), KC_LGUI}, KeymapKey{0, 1, 1, KC_A}), + std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_RCTL), KC_RCTL}, KeymapKey{0, 1, 1, KC_A}), + std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_RSFT), KC_RSFT}, KeymapKey{0, 1, 1, KC_A}), + std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_RALT), KC_RALT}, KeymapKey{0, 1, 1, KC_A}), + std::make_pair(KeymapKey{0, 0, 0, OSM(MOD_RGUI), KC_RGUI}, KeymapKey{0, 1, 1, KC_A}) + )); +// clang-format on + +TEST_F(OneShot, OSLWithAdditionalKeypress) { + TestDriver driver; + InSequence s; + KeymapKey osl_key = KeymapKey{0, 0, 0, OSL(1)}; + KeymapKey osl_key1 = KeymapKey{1, 0, 0, KC_X}; + KeymapKey regular_key0 = KeymapKey{0, 1, 0, KC_Y}; + KeymapKey regular_key1 = KeymapKey{1, 1, 0, KC_A}; + + set_keymap({osl_key, osl_key1, regular_key0, regular_key1}); + + // Press OSL key. + EXPECT_NO_REPORT(driver); + osl_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release OSL key. + EXPECT_NO_REPORT(driver); + osl_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press regular key. + EXPECT_REPORT(driver, (regular_key1.report_code)); + EXPECT_EMPTY_REPORT(driver); + regular_key1.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release regular key. + EXPECT_NO_REPORT(driver); + regular_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(OneShot, OSLWithOsmAndAdditionalKeypress) { + TestDriver driver; + InSequence s; + KeymapKey osl_key = KeymapKey{0, 0, 0, OSL(1)}; + KeymapKey osm_key = KeymapKey{1, 1, 0, OSM(MOD_LSFT), KC_LSFT}; + KeymapKey regular_key = KeymapKey{1, 1, 1, KC_A}; + KeymapKey blank_key = KeymapKey{1, 0, 0, KC_NO}; + + set_keymap({osl_key, osm_key, regular_key, blank_key}); + + // Press OSL key. + EXPECT_NO_REPORT(driver); + osl_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release OSL key. + EXPECT_NO_REPORT(driver); + osl_key.release(); + run_one_scan_loop(); + EXPECT_TRUE(layer_state_is(1)); + VERIFY_AND_CLEAR(driver); + + // Press and release OSM. + EXPECT_NO_REPORT(driver); + tap_key(osm_key); + EXPECT_TRUE(layer_state_is(1)); + VERIFY_AND_CLEAR(driver); + + // Tap regular key. + EXPECT_REPORT(driver, (osm_key.report_code, regular_key.report_code)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key); + VERIFY_AND_CLEAR(driver); +} diff --git a/tests/tap_hold_configurations/chordal_hold/permissive_hold/test_tap_hold.cpp b/tests/tap_hold_configurations/chordal_hold/permissive_hold/test_tap_hold.cpp new file mode 100644 index 00000000000..1f89ab3eae4 --- /dev/null +++ b/tests/tap_hold_configurations/chordal_hold/permissive_hold/test_tap_hold.cpp @@ -0,0 +1,898 @@ +// Copyright 2024-2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "keyboard_report_util.hpp" +#include "keycode.h" +#include "test_common.hpp" +#include "action_tapping.h" +#include "test_fixture.hpp" +#include "test_keymap_key.hpp" + +using testing::_; +using testing::InSequence; + +class ChordalHoldPermissiveHold : public TestFixture {}; + +TEST_F(ChordalHoldPermissiveHold, chordal_hold_handedness) { + EXPECT_EQ(chordal_hold_handedness({.col = 0, .row = 0}), 'L'); + EXPECT_EQ(chordal_hold_handedness({.col = MATRIX_COLS - 1, .row = 0}), 'R'); + EXPECT_EQ(chordal_hold_handedness({.col = 0, .row = 2}), '*'); +} + +TEST_F(ChordalHoldPermissiveHold, get_chordal_hold_default) { + auto make_record = [](uint8_t row, uint8_t col, keyevent_type_t type = KEY_EVENT) { + return keyrecord_t{ + .event = + { + .key = {.col = col, .row = row}, + .type = type, + .pressed = true, + }, + }; + }; + // Create two records on the left hand. + keyrecord_t record_l0 = make_record(0, 0); + keyrecord_t record_l1 = make_record(1, 0); + // Create a record on the right hand. + keyrecord_t record_r = make_record(0, MATRIX_COLS - 1); + + // Function should return true when records are on opposite hands. + EXPECT_TRUE(get_chordal_hold_default(&record_l0, &record_r)); + EXPECT_TRUE(get_chordal_hold_default(&record_r, &record_l0)); + // ... and false when on the same hand. + EXPECT_FALSE(get_chordal_hold_default(&record_l0, &record_l1)); + EXPECT_FALSE(get_chordal_hold_default(&record_l1, &record_l0)); + // But (2, 0) has handedness '*', for which true is returned for chords + // with either hand. + keyrecord_t record_l2 = make_record(2, 0); + EXPECT_TRUE(get_chordal_hold_default(&record_l2, &record_l0)); + EXPECT_TRUE(get_chordal_hold_default(&record_l2, &record_r)); + + // Create a record resulting from a combo. + keyrecord_t record_combo = make_record(0, 0, COMBO_EVENT); + // Function returns true in all cases. + EXPECT_TRUE(get_chordal_hold_default(&record_l0, &record_combo)); + EXPECT_TRUE(get_chordal_hold_default(&record_r, &record_combo)); + EXPECT_TRUE(get_chordal_hold_default(&record_combo, &record_l0)); + EXPECT_TRUE(get_chordal_hold_default(&record_combo, &record_r)); +} + +TEST_F(ChordalHoldPermissiveHold, chord_nested_press_settled_as_hold) { + TestDriver driver; + InSequence s; + // Mod-tap key on the left hand. + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + // Regular key on the right hand. + auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); + + set_keymap({mod_tap_key, regular_key}); + + // Press mod-tap key. + EXPECT_NO_REPORT(driver); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Tap regular key. + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_A)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + tap_key(regular_key); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldPermissiveHold, chord_rolled_press_settled_as_tap) { + TestDriver driver; + InSequence s; + // Mod-tap key on the left hand. + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + // Regular key on the right hand. + auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); + + set_keymap({mod_tap_key, regular_key}); + + // Press mod-tap key and regular key. + EXPECT_NO_REPORT(driver); + mod_tap_key.press(); + run_one_scan_loop(); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap key. + EXPECT_REPORT(driver, (KC_P)); + EXPECT_REPORT(driver, (KC_P, KC_A)); + EXPECT_REPORT(driver, (KC_A)); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release regular key. + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldPermissiveHold, non_chord_with_mod_tap_settled_as_tap) { + TestDriver driver; + InSequence s; + // Mod-tap key and regular key both on the left hand. + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + auto regular_key = KeymapKey(0, 2, 0, KC_A); + + set_keymap({mod_tap_key, regular_key}); + + // Press mod-tap-hold key. + EXPECT_NO_REPORT(driver); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press regular key. + EXPECT_REPORT(driver, (KC_P)); + EXPECT_REPORT(driver, (KC_P, KC_A)); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release regular key. + EXPECT_REPORT(driver, (KC_P)); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldPermissiveHold, tap_mod_tap_key) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + + set_keymap({mod_tap_key}); + + EXPECT_NO_REPORT(driver); + mod_tap_key.press(); + idle_for(TAPPING_TERM - 1); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldPermissiveHold, hold_mod_tap_key) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + + set_keymap({mod_tap_key}); + + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + mod_tap_key.press(); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldPermissiveHold, two_mod_taps_same_hand_hold_til_timeout) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, MATRIX_COLS - 2, 0, RCTL_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, MATRIX_COLS - 1, 0, RSFT_T(KC_B)); + + set_keymap({mod_tap_key1, mod_tap_key2}); + + // Press mod-tap keys. + EXPECT_NO_REPORT(driver); + mod_tap_key1.press(); + run_one_scan_loop(); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Continue holding til the tapping term. + EXPECT_REPORT(driver, (KC_RIGHT_CTRL)); + EXPECT_REPORT(driver, (KC_RIGHT_CTRL, KC_RIGHT_SHIFT)); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap keys. + EXPECT_REPORT(driver, (KC_RIGHT_SHIFT)); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldPermissiveHold, two_mod_taps_nested_press_opposite_hands) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, MATRIX_COLS - 1, 0, RSFT_T(KC_B)); + + set_keymap({mod_tap_key1, mod_tap_key2}); + + // Press mod-tap keys. + EXPECT_NO_REPORT(driver); + mod_tap_key1.press(); + run_one_scan_loop(); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap keys. + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldPermissiveHold, two_mod_taps_nested_press_same_hand) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, RSFT_T(KC_B)); + + set_keymap({mod_tap_key1, mod_tap_key2}); + + // Press mod-tap keys. + EXPECT_NO_REPORT(driver); + mod_tap_key1.press(); + run_one_scan_loop(); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap keys. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_REPORT(driver, (KC_A, KC_B)); + EXPECT_REPORT(driver, (KC_A)); + mod_tap_key2.release(); + run_one_scan_loop(); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldPermissiveHold, three_mod_taps_same_hand_streak_roll) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_B)); + auto mod_tap_key3 = KeymapKey(0, 3, 0, RSFT_T(KC_C)); + + set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3}); + + // Press mod-tap keys. + EXPECT_NO_REPORT(driver); + mod_tap_key1.press(); + run_one_scan_loop(); + mod_tap_key2.press(); + run_one_scan_loop(); + mod_tap_key3.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release keys 1, 2, 3. + // + // NOTE: The correct order of events should be + // EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); + // EXPECT_REPORT(driver, (KC_B, KC_C)); + // EXPECT_REPORT(driver, (KC_C)); + // EXPECT_EMPTY_REPORT(driver); + // + // However, due to a workaround for https://github.com/tmk/tmk_keyboard/issues/60, + // the events are processed out of order, with the first two keys released + // before pressing KC_C. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_REPORT(driver, (KC_A, KC_B)); + EXPECT_REPORT(driver, (KC_B)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_C)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key1.release(); + run_one_scan_loop(); + mod_tap_key2.release(); + run_one_scan_loop(); + mod_tap_key3.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldPermissiveHold, three_mod_taps_same_hand_streak_orders) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_B)); + auto mod_tap_key3 = KeymapKey(0, 3, 0, RSFT_T(KC_C)); + + set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3}); + + // Press mod-tap keys. + EXPECT_NO_REPORT(driver); + mod_tap_key1.press(); + run_one_scan_loop(); + mod_tap_key2.press(); + run_one_scan_loop(); + mod_tap_key3.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release keys 3, 2, 1. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_REPORT(driver, (KC_A, KC_B)); + EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); + EXPECT_REPORT(driver, (KC_A, KC_B)); + mod_tap_key3.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_A)); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap keys. + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM); + mod_tap_key1.press(); + run_one_scan_loop(); + mod_tap_key2.press(); + run_one_scan_loop(); + mod_tap_key3.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release keys 3, 1, 2. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_REPORT(driver, (KC_A, KC_B)); + EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); + EXPECT_REPORT(driver, (KC_A, KC_B)); + mod_tap_key3.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_B)); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap keys. + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM); + mod_tap_key1.press(); + run_one_scan_loop(); + mod_tap_key2.press(); + run_one_scan_loop(); + mod_tap_key3.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release keys 2, 3, 1. + // + // NOTE: The correct order of events should be + // EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); + // EXPECT_REPORT(driver, (KC_A, KC_C)); + // EXPECT_REPORT(driver, (KC_A)); + // EXPECT_EMPTY_REPORT(driver); + // + // However, due to a workaround for https://github.com/tmk/tmk_keyboard/issues/60, + // the events are processed out of order. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_REPORT(driver, (KC_A, KC_B)); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_REPORT(driver, (KC_A, KC_C)); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key2.release(); + run_one_scan_loop(); + mod_tap_key3.release(); + run_one_scan_loop(); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldPermissiveHold, three_mod_taps_opposite_hands_roll) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_B)); + auto mod_tap_key3 = KeymapKey(0, MATRIX_COLS - 1, 0, RSFT_T(KC_C)); + + set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3}); + + // Press mod-tap keys. + EXPECT_NO_REPORT(driver); + mod_tap_key1.press(); + run_one_scan_loop(); + mod_tap_key2.press(); + run_one_scan_loop(); + mod_tap_key3.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release keys 1, 2, 3. + // + // NOTE: The correct order of events should be + // EXPECT_REPORT(driver, (KC_A, KC_B)); + // EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); + // EXPECT_REPORT(driver, (KC_B, KC_C)); + // EXPECT_REPORT(driver, (KC_C)); + // EXPECT_EMPTY_REPORT(driver); + // + // However, due to a workaround for https://github.com/tmk/tmk_keyboard/issues/60, + // the events are processed out of order, with the first two keys released + // before pressing KC_C. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_REPORT(driver, (KC_A, KC_B)); + EXPECT_REPORT(driver, (KC_B)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_C)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key1.release(); + run_one_scan_loop(); + mod_tap_key2.release(); + run_one_scan_loop(); + mod_tap_key3.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldPermissiveHold, three_mod_taps_two_left_one_right) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_B)); + auto mod_tap_key3 = KeymapKey(0, MATRIX_COLS - 1, 0, RSFT_T(KC_C)); + + set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3}); + + // Press mod-tap keys. + EXPECT_NO_REPORT(driver); + mod_tap_key1.press(); + run_one_scan_loop(); + mod_tap_key2.press(); + run_one_scan_loop(); + mod_tap_key3.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release key 3. + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_CTRL)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_CTRL, KC_C)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_CTRL)); + mod_tap_key3.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release key 2, then key 1. + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap keys. + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM); + mod_tap_key1.press(); + run_one_scan_loop(); + mod_tap_key2.press(); + run_one_scan_loop(); + mod_tap_key3.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release key 3. + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_CTRL)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_CTRL, KC_C)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_CTRL)); + mod_tap_key3.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release key 1, then key 2. + EXPECT_REPORT(driver, (KC_LEFT_CTRL)); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldPermissiveHold, three_mod_taps_one_held_two_tapped) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, MATRIX_COLS - 2, 0, CTL_T(KC_B)); + auto mod_tap_key3 = KeymapKey(0, MATRIX_COLS - 1, 0, RSFT_T(KC_C)); + + set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3}); + + // Press mod-tap keys. + EXPECT_NO_REPORT(driver); + mod_tap_key1.press(); + run_one_scan_loop(); + mod_tap_key2.press(); + run_one_scan_loop(); + mod_tap_key3.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release keys 3, 2, 1. + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B, KC_C)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); + mod_tap_key3.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap keys. + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM); + mod_tap_key1.press(); + run_one_scan_loop(); + mod_tap_key2.press(); + run_one_scan_loop(); + mod_tap_key3.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release keys 3, 1, 2. + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B, KC_C)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); + mod_tap_key3.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_B)); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldPermissiveHold, two_mod_taps_one_regular_key) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, MATRIX_COLS - 2, 0, CTL_T(KC_B)); + auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_C); + + set_keymap({mod_tap_key1, mod_tap_key2, regular_key}); + + // Press keys. + EXPECT_NO_REPORT(driver); + mod_tap_key1.press(); + run_one_scan_loop(); + mod_tap_key2.press(); + run_one_scan_loop(); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B, KC_C)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_C)); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap keys. + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM); + mod_tap_key1.press(); + run_one_scan_loop(); + mod_tap_key2.press(); + run_one_scan_loop(); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B, KC_C)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_B)); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldPermissiveHold, tap_regular_key_while_layer_tap_key_is_held) { + TestDriver driver; + InSequence s; + auto layer_tap_hold_key = KeymapKey(0, 1, 0, LT(1, KC_P)); + auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); + auto no_key = KeymapKey(1, 1, 0, XXXXXXX); + auto layer_key = KeymapKey(1, MATRIX_COLS - 1, 0, KC_B); + + set_keymap({layer_tap_hold_key, regular_key, no_key, layer_key}); + + // Press layer-tap-hold key. + EXPECT_NO_REPORT(driver); + layer_tap_hold_key.press(); + run_one_scan_loop(); + // Press regular key. + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release regular key. + EXPECT_REPORT(driver, (KC_B)); + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + EXPECT_EQ(layer_state, 2); + VERIFY_AND_CLEAR(driver); + + // Release layer-tap-hold key. + EXPECT_NO_REPORT(driver); + layer_tap_hold_key.release(); + run_one_scan_loop(); + EXPECT_EQ(layer_state, 0); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldPermissiveHold, nested_tap_of_layer_0_layer_tap_keys) { + TestDriver driver; + InSequence s; + // The keys are layer-taps on layer 2 but regular keys on layer 1. + auto first_layer_tap_key = KeymapKey(0, 1, 0, LT(1, KC_A)); + auto second_layer_tap_key = KeymapKey(0, MATRIX_COLS - 1, 0, LT(1, KC_P)); + auto first_key_on_layer = KeymapKey(1, 1, 0, KC_B); + auto second_key_on_layer = KeymapKey(1, MATRIX_COLS - 1, 0, KC_Q); + + set_keymap({first_layer_tap_key, second_layer_tap_key, first_key_on_layer, second_key_on_layer}); + + // Press first layer-tap key. + EXPECT_NO_REPORT(driver); + first_layer_tap_key.press(); + run_one_scan_loop(); + // Press second layer-tap key. + second_layer_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release second layer-tap key. + EXPECT_REPORT(driver, (KC_Q)); + EXPECT_EMPTY_REPORT(driver); + second_layer_tap_key.release(); + run_one_scan_loop(); + EXPECT_EQ(layer_state, 2); + VERIFY_AND_CLEAR(driver); + + // Release first layer-tap key. + EXPECT_NO_REPORT(driver); + first_layer_tap_key.release(); + run_one_scan_loop(); + EXPECT_EQ(layer_state, 0); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldPermissiveHold, lt_mt_one_regular_key) { + TestDriver driver; + InSequence s; + auto lt_key = KeymapKey(0, 1, 0, LT(1, KC_A)); + auto mt_key0 = KeymapKey(0, 2, 0, SFT_T(KC_B)); + auto mt_key1 = KeymapKey(1, 2, 0, CTL_T(KC_C)); + auto regular_key = KeymapKey(1, MATRIX_COLS - 1, 0, KC_X); + auto no_key0 = KeymapKey(0, MATRIX_COLS - 1, 0, XXXXXXX); + auto no_key1 = KeymapKey(1, 1, 0, XXXXXXX); + + set_keymap({lt_key, mt_key0, mt_key1, regular_key, no_key0, no_key1}); + + // Press LT, MT, and regular key. + EXPECT_NO_REPORT(driver); + lt_key.press(); + run_one_scan_loop(); + mt_key1.press(); + run_one_scan_loop(); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release the regular key. + EXPECT_REPORT(driver, (KC_LCTL)); + EXPECT_REPORT(driver, (KC_LCTL, KC_X)); + EXPECT_REPORT(driver, (KC_LCTL)); + regular_key.release(); + run_one_scan_loop(); + EXPECT_EQ(get_mods(), MOD_BIT_LCTRL); + EXPECT_EQ(layer_state, 2); + VERIFY_AND_CLEAR(driver); + + // Release MT key. + EXPECT_EMPTY_REPORT(driver); + mt_key1.release(); + run_one_scan_loop(); + EXPECT_EQ(get_mods(), 0); + VERIFY_AND_CLEAR(driver); + + // Release LT key. + EXPECT_NO_REPORT(driver); + lt_key.release(); + run_one_scan_loop(); + EXPECT_EQ(layer_state, 0); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldPermissiveHold, nested_tap_of_layer_tap_keys) { + TestDriver driver; + InSequence s; + // The keys are layer-taps on all layers. + auto first_key_layer_0 = KeymapKey(0, 1, 0, LT(1, KC_A)); + auto second_key_layer_0 = KeymapKey(0, MATRIX_COLS - 1, 0, LT(1, KC_P)); + auto first_key_layer_1 = KeymapKey(1, 1, 0, LT(2, KC_B)); + auto second_key_layer_1 = KeymapKey(1, MATRIX_COLS - 1, 0, LT(2, KC_Q)); + auto first_key_layer_2 = KeymapKey(2, 1, 0, KC_TRNS); + auto second_key_layer_2 = KeymapKey(2, MATRIX_COLS - 1, 0, KC_TRNS); + + set_keymap({first_key_layer_0, second_key_layer_0, first_key_layer_1, second_key_layer_1, first_key_layer_2, second_key_layer_2}); + + // Press first layer-tap key. + EXPECT_NO_REPORT(driver); + first_key_layer_0.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press second layer-tap key. + EXPECT_NO_REPORT(driver); + second_key_layer_0.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release second layer-tap key. + EXPECT_REPORT(driver, (KC_Q)); + EXPECT_EMPTY_REPORT(driver); + second_key_layer_0.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release first layer-tap key. + EXPECT_NO_REPORT(driver); + first_key_layer_0.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(ChordalHoldPermissiveHold, roll_layer_tap_key_with_regular_key) { + TestDriver driver; + InSequence s; + + auto layer_tap_hold_key = KeymapKey(0, 1, 0, LT(1, KC_P)); + auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); + auto layer_key = KeymapKey(1, MATRIX_COLS - 1, 0, KC_B); + + set_keymap({layer_tap_hold_key, regular_key, layer_key}); + + // Press layer-tap-hold key. + EXPECT_NO_REPORT(driver); + layer_tap_hold_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press regular key. + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release layer-tap-hold key. + EXPECT_REPORT(driver, (KC_P)); + EXPECT_REPORT(driver, (KC_P, KC_A)); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_NO_REPORT(driver); + layer_tap_hold_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release regular key. + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} diff --git a/tests/tap_hold_configurations/chordal_hold/retro_shift_permissive_hold/config.h b/tests/tap_hold_configurations/chordal_hold/retro_shift_permissive_hold/config.h new file mode 100644 index 00000000000..4d704c59788 --- /dev/null +++ b/tests/tap_hold_configurations/chordal_hold/retro_shift_permissive_hold/config.h @@ -0,0 +1,28 @@ +/* Copyright 2022 Isaac Elenbaas + * Copyright 2024 Google LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "test_common.h" + +#define CHORDAL_HOLD +#define PERMISSIVE_HOLD + +#define RETRO_SHIFT 2 * TAPPING_TERM +// releases between AUTO_SHIFT_TIMEOUT and TAPPING_TERM are not tested +#define AUTO_SHIFT_TIMEOUT TAPPING_TERM +#define AUTO_SHIFT_MODIFIERS diff --git a/tests/tap_hold_configurations/chordal_hold/retro_shift_permissive_hold/test.mk b/tests/tap_hold_configurations/chordal_hold/retro_shift_permissive_hold/test.mk new file mode 100644 index 00000000000..c39dfa9cb17 --- /dev/null +++ b/tests/tap_hold_configurations/chordal_hold/retro_shift_permissive_hold/test.mk @@ -0,0 +1,18 @@ +# Copyright 2022 Isaac Elenbaas +# Copyright 2024 Google LLC +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +AUTO_SHIFT_ENABLE = yes +INTROSPECTION_KEYMAP_C = test_keymap.c diff --git a/tests/tap_hold_configurations/chordal_hold/retro_shift_permissive_hold/test_keymap.c b/tests/tap_hold_configurations/chordal_hold/retro_shift_permissive_hold/test_keymap.c new file mode 100644 index 00000000000..8a6a2c59b0a --- /dev/null +++ b/tests/tap_hold_configurations/chordal_hold/retro_shift_permissive_hold/test_keymap.c @@ -0,0 +1,22 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "quantum.h" + +const char chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS] PROGMEM = { + {'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, + {'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, + {'*', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, + {'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R'}, +}; diff --git a/tests/tap_hold_configurations/chordal_hold/retro_shift_permissive_hold/test_retro_shift.cpp b/tests/tap_hold_configurations/chordal_hold/retro_shift_permissive_hold/test_retro_shift.cpp new file mode 100644 index 00000000000..16fbabbd8ac --- /dev/null +++ b/tests/tap_hold_configurations/chordal_hold/retro_shift_permissive_hold/test_retro_shift.cpp @@ -0,0 +1,420 @@ +/* Copyright 2022 Isaac Elenbaas + * Copyright 2024 Google LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "keyboard_report_util.hpp" +#include "keycode.h" +#include "test_common.hpp" +#include "action_tapping.h" +#include "test_fixture.hpp" +#include "test_keymap_key.hpp" + +bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) { + return true; +} + +using testing::_; +using testing::AnyNumber; +using testing::AnyOf; +using testing::InSequence; + +class RetroShiftPermissiveHold : public TestFixture {}; + +TEST_F(RetroShiftPermissiveHold, tap_regular_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); + + set_keymap({mod_tap_hold_key, regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release regular key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftPermissiveHold, tap_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, ALT_T(KC_A)); + + set_keymap({mod_tap_hold_key, mod_tap_regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press mod-tap-regular key. */ + EXPECT_NO_REPORT(driver); + mod_tap_regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-regular key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftPermissiveHold, tap_regular_key_while_mod_tap_key_is_held_over_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); + + set_keymap({mod_tap_hold_key, regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release regular key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + regular_key.release(); + run_one_scan_loop(); + idle_for(TAPPING_TERM); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftPermissiveHold, tap_mod_tap_key_while_mod_tap_key_is_held_over_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, ALT_T(KC_A)); + + set_keymap({mod_tap_hold_key, mod_tap_regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press mod-tap-regular key. */ + EXPECT_NO_REPORT(driver); + mod_tap_regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-regular key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_regular_key.release(); + run_one_scan_loop(); + idle_for(TAPPING_TERM); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftPermissiveHold, hold_regular_key_while_mod_tap_key_is_held_over_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); + + set_keymap({mod_tap_hold_key, regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + idle_for(AUTO_SHIFT_TIMEOUT); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release regular key. */ + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT), + KeyboardReport(KC_LCTL)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A)); + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL)); + regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftPermissiveHold, hold_mod_tap_key_while_mod_tap_key_is_held_over_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, ALT_T(KC_A)); + + set_keymap({mod_tap_hold_key, mod_tap_regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press mod-tap-regular key. */ + EXPECT_NO_REPORT(driver); + mod_tap_regular_key.press(); + run_one_scan_loop(); + idle_for(AUTO_SHIFT_TIMEOUT); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-regular key. */ + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT), + KeyboardReport(KC_LCTL)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A)); + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_regular_key.release(); + run_one_scan_loop(); + idle_for(TAPPING_TERM); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftPermissiveHold, roll_tap_regular_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); + + set_keymap({mod_tap_hold_key, regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release regular key. */ + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftPermissiveHold, roll_tap_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, ALT_T(KC_A)); + + set_keymap({mod_tap_hold_key, mod_tap_regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press mod-tap-regular key. */ + EXPECT_NO_REPORT(driver); + mod_tap_regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-regular key. */ + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftPermissiveHold, roll_hold_regular_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); + + set_keymap({mod_tap_hold_key, regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LSFT, KC_A)); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + idle_for(AUTO_SHIFT_TIMEOUT); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + +TEST_F(RetroShiftPermissiveHold, roll_hold_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, ALT_T(KC_A)); + + set_keymap({mod_tap_hold_key, mod_tap_regular_key}); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Press mod-tap-regular key. */ + EXPECT_NO_REPORT(driver); + mod_tap_regular_key.press(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-hold key. */ + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); + + /* Release mod-tap-regular key. */ + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LSFT, KC_A)); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); + EXPECT_EMPTY_REPORT(driver); + idle_for(AUTO_SHIFT_TIMEOUT); + mod_tap_regular_key.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} From c7904502e535b4368bd39cb12fa68f2717d0b3c1 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 28 Jan 2025 05:58:21 +0000 Subject: [PATCH 204/365] handwired/xealous - Remove DEFAULT_FOLDER (#24877) --- data/mappings/keyboard_aliases.hjson | 3 ++ keyboards/handwired/xealous/config.h | 32 --------------- keyboards/handwired/xealous/matrix.c | 49 ----------------------- keyboards/handwired/xealous/rev1/config.h | 13 ++++++ keyboards/handwired/xealous/rules.mk | 3 -- 5 files changed, 16 insertions(+), 84 deletions(-) delete mode 100644 keyboards/handwired/xealous/config.h delete mode 100644 keyboards/handwired/xealous/matrix.c delete mode 100644 keyboards/handwired/xealous/rules.mk diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index 745faee8013..86fcdb8c29d 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -1731,6 +1731,9 @@ "handwired/unk": { "target": "handwired/unk/rev1" }, + "handwired/xealous": { + "target": "handwired/xealous/rev1" + }, "hillside/46": { "target": "hillside/46/0_1" }, diff --git a/keyboards/handwired/xealous/config.h b/keyboards/handwired/xealous/config.h deleted file mode 100644 index 6cc6b4d1de4..00000000000 --- a/keyboards/handwired/xealous/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -#define USE_I2C -#define SCL_CLOCK 800000UL - -//#define DEBUG_MATRIX_SCAN_RATE //Use this to determine scan-rate. - -#ifdef AUDIO_ENABLE - #define AUDIO_PIN C6 - #define STARTUP_SONG SONG(STARTUP_SOUND) - #define NO_MUSIC_MODE - #define TONE_QWERTY SONG(Q__NOTE(_E4)); - #define TONE_NUMPAD SONG(Q__NOTE(_D4)); -#endif diff --git a/keyboards/handwired/xealous/matrix.c b/keyboards/handwired/xealous/matrix.c deleted file mode 100644 index b8ae9fd7385..00000000000 --- a/keyboards/handwired/xealous/matrix.c +++ /dev/null @@ -1,49 +0,0 @@ -/* -Copyright 2012 Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -/* - * scan matrix - */ -#include -#include -#include -#include "wait.h" -#include "print.h" -#include "debug.h" -#include "util.h" -#include "matrix.h" -#include "split_util.h" -#include "timer.h" - -// Copy this code to split_common/matrix.c, -// and call it instead of the unoptimized col_reader. Scan-rate jumps from 1200->1920 -// Also remove the sleep_us(30), not necessary for this keyboard. -// In usb_descriptor.c, set .PollingIntervalMS = 0x01 -#define ROW_SHIFTER ((uint8_t)1) -inline static matrix_row_t optimized_col_reader(void) { - //MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, F5, F4 } - return (PINB & (1 << 6) ? 0 : (ROW_SHIFTER << 0)) | - (PINB & (1 << 2) ? 0 : (ROW_SHIFTER << 1)) | - (PINB & (1 << 3) ? 0 : (ROW_SHIFTER << 2)) | - (PINB & (1 << 1) ? 0 : (ROW_SHIFTER << 3)) | - (PINF & (1 << 7) ? 0 : (ROW_SHIFTER << 4)) | - (PINF & (1 << 6) ? 0 : (ROW_SHIFTER << 5)) | - (PINF & (1 << 5) ? 0 : (ROW_SHIFTER << 6)) | - (PINF & (1 << 4) ? 0 : (ROW_SHIFTER << 7)); -} - - diff --git a/keyboards/handwired/xealous/rev1/config.h b/keyboards/handwired/xealous/rev1/config.h index 49be10cce4e..2ea66a692cf 100644 --- a/keyboards/handwired/xealous/rev1/config.h +++ b/keyboards/handwired/xealous/rev1/config.h @@ -18,6 +18,19 @@ along with this program. If not, see . #pragma once +#define USE_I2C +#define SCL_CLOCK 800000UL + +//#define DEBUG_MATRIX_SCAN_RATE //Use this to determine scan-rate. + +#ifdef AUDIO_ENABLE + #define AUDIO_PIN C6 + #define STARTUP_SONG SONG(STARTUP_SOUND) + #define NO_MUSIC_MODE + #define TONE_QWERTY SONG(Q__NOTE(_E4)); + #define TONE_NUMPAD SONG(Q__NOTE(_D4)); +#endif + /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/handwired/xealous/rules.mk b/keyboards/handwired/xealous/rules.mk deleted file mode 100644 index 4a97d066df7..00000000000 --- a/keyboards/handwired/xealous/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -SRC += matrix.c - -DEFAULT_FOLDER = handwired/xealous/rev1 From 8afa3f2f084ce16a2f55ae72efcc2b8db1b74269 Mon Sep 17 00:00:00 2001 From: muge <221161+muge@users.noreply.github.com> Date: Tue, 28 Jan 2025 18:18:41 -0800 Subject: [PATCH 205/365] Add CXT Studio 12E3 keyboard (#24749) Co-authored-by: jack Co-authored-by: Joel Challis --- keyboards/cxt_studio/12e3/keyboard.json | 99 +++++++++++++++++++ .../cxt_studio/12e3/keymaps/default/keymap.c | 40 ++++++++ .../cxt_studio/12e3/keymaps/default/rules.mk | 1 + keyboards/cxt_studio/12e3/readme.md | 27 +++++ 4 files changed, 167 insertions(+) create mode 100644 keyboards/cxt_studio/12e3/keyboard.json create mode 100644 keyboards/cxt_studio/12e3/keymaps/default/keymap.c create mode 100644 keyboards/cxt_studio/12e3/keymaps/default/rules.mk create mode 100644 keyboards/cxt_studio/12e3/readme.md diff --git a/keyboards/cxt_studio/12e3/keyboard.json b/keyboards/cxt_studio/12e3/keyboard.json new file mode 100644 index 00000000000..763f6bd5b94 --- /dev/null +++ b/keyboards/cxt_studio/12e3/keyboard.json @@ -0,0 +1,99 @@ +{ + "manufacturer": "cxt_studio", + "keyboard_name": "cxt_studio 12E3", + "maintainer": "muge", + "bootloader": "atmel-dfu", + "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "encoder": true, + "rgb_matrix": true + }, + "ws2812": { + "pin": "F7" + }, + "matrix_pins": { + "cols": ["D4", "D7", "B4", "B5"], + "rows": ["C7", "C6", "D6", "F4"] + }, + "encoder": { + "rotary": [ + {"pin_a": "F5", "pin_b": "F6"}, + {"pin_a": "E6", "pin_b": "F0"}, + {"pin_a": "B3", "pin_b": "B2", "resolution": 2} + ] + }, + "processor": "atmega32u4", + "rgb_matrix": { + "animations": { + "breathing": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "default": { + "animation": "solid_reactive_simple" + }, + "driver": "ws2812", + "layout": [ + {"flags": 4, "matrix": [0, 3], "x": 3, "y": 0}, + {"flags": 4, "matrix": [0, 2], "x": 2, "y": 0}, + {"flags": 4, "matrix": [0, 1], "x": 1, "y": 0}, + {"flags": 4, "matrix": [0, 0], "x": 0, "y": 0}, + {"flags": 4, "matrix": [1, 0], "x": 0, "y": 1}, + {"flags": 4, "matrix": [1, 1], "x": 1, "y": 1}, + {"flags": 4, "matrix": [1, 2], "x": 2, "y": 1}, + {"flags": 4, "matrix": [1, 3], "x": 3, "y": 1}, + {"flags": 4, "matrix": [2, 3], "x": 3, "y": 2}, + {"flags": 4, "matrix": [2, 2], "x": 2, "y": 2}, + {"flags": 4, "matrix": [2, 1], "x": 1, "y": 2}, + {"flags": 4, "matrix": [2, 0], "x": 0, "y": 2} + ] + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x12E3", + "vid": "0x0215" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + + {"matrix": [3, 2], "x": 4, "y": 0}, + {"matrix": [3, 3], "x": 5, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + + {"matrix": [3, 1], "x": 4, "y": 1, "w": 2, "h": 2}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2} + ] + } + } +} + diff --git a/keyboards/cxt_studio/12e3/keymaps/default/keymap.c b/keyboards/cxt_studio/12e3/keymaps/default/keymap.c new file mode 100644 index 00000000000..78375680d4f --- /dev/null +++ b/keyboards/cxt_studio/12e3/keymaps/default/keymap.c @@ -0,0 +1,40 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum my_layers { + _BASE, + _RGBL, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT( + KC_PSCR, KC_CUT, KC_COPY, KC_PSTE, MS_BTN3, RM_TOGG, + KC_CALC, KC_UNDO, KC_MPLY, KC_MNXT, KC_MUTE, + MO(1), KC_LGUI, KC_DEL, KC_APP + ), + + [_RGBL] = LAYOUT( + RM_NEXT, RM_SATU, KC_INS, KC_DEL, _______, _______, + RM_PREV, RM_SATD, KC_PGUP, KC_HOME, _______, + _______, QK_BOOT, KC_PGDN, KC_END + ), +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + // Encoders: Left, Right, Big + [_BASE] = { + ENCODER_CCW_CW(MS_WHLD, MS_WHLU), + ENCODER_CCW_CW(KC_PGDN, KC_PGUP), + ENCODER_CCW_CW(KC_VOLD, KC_VOLU) + }, + [_RGBL] = { + ENCODER_CCW_CW(RM_HUED, RM_HUEU), + ENCODER_CCW_CW(RM_SPDD, RM_SPDU), + ENCODER_CCW_CW(RM_VALD, RM_VALU) + }, +}; +#endif diff --git a/keyboards/cxt_studio/12e3/keymaps/default/rules.mk b/keyboards/cxt_studio/12e3/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/cxt_studio/12e3/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/cxt_studio/12e3/readme.md b/keyboards/cxt_studio/12e3/readme.md new file mode 100644 index 00000000000..8ea527f4734 --- /dev/null +++ b/keyboards/cxt_studio/12e3/readme.md @@ -0,0 +1,27 @@ +# cxt_studio/12e3 + +![cxt_studio/12e3](https://i.postimg.cc/NFK8rY8N/M5rtTSP.png) + +3x4 ortho layout, with 3 encoders. + +* Keyboard Maintainer: [muge](https://github.com/muge) +* Hardware Supported: CXT Studio 12E3 +* Hardware Availability: AliExpress, Taobao + +Make example for this keyboard (after setting up your build environment): + + make cxt_studio/12e3:default + +Flashing example for this keyboard: + + make cxt_studio/12e3:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB, located under the large encoder, on the right side +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. It is included in the default layout From 08dcc8856f078e50f6dbdd6a75647f131e270645 Mon Sep 17 00:00:00 2001 From: Joy Lee Date: Wed, 29 Jan 2025 11:09:12 +0800 Subject: [PATCH 206/365] Add more layout for skiller_sgk50_s4 (#24784) * Add more layout for skiller_sgk50_s4 * Update skiller_sgk50_s4 default keymap * update keymap.c Co-authored-by: Ryan * Update keymap.c Co-authored-by: Ryan * Update keyboard.json * Update keyboard.json * Update keyboard.json * Update keyboard.json --------- Co-authored-by: wb Co-authored-by: Ryan --- .../sharkoon/skiller_sgk50_s4/keyboard.json | 130 ++++++++++-------- .../skiller_sgk50_s4/keymaps/default/keymap.c | 12 +- 2 files changed, 80 insertions(+), 62 deletions(-) diff --git a/keyboards/sharkoon/skiller_sgk50_s4/keyboard.json b/keyboards/sharkoon/skiller_sgk50_s4/keyboard.json index 7d36616e52b..b7a628fd785 100644 --- a/keyboards/sharkoon/skiller_sgk50_s4/keyboard.json +++ b/keyboards/sharkoon/skiller_sgk50_s4/keyboard.json @@ -21,7 +21,7 @@ "rgb_matrix": true }, "matrix_pins": { - "cols": ["C0", "C1", "C2", "C3", "A6", "B1", "B10", "B11", "B12", "B13", "B14", "B15", "C6", "C7"], + "cols": ["C0", "C1", "C2", "C3", "A6", "B1", "B10", "B11", "B12", "B13", "B14", "C6", "C7", "C8", "C9", "A8"], "rows": ["A0", "A1", "A2", "A3", "C13"] }, "processor": "WB32FQ95", @@ -77,11 +77,15 @@ "driver": "ws2812", "layout": [ {"matrix": [4, 6], "x": 103, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 154, "y": 64, "flags": 4}, {"matrix": [4, 10], "x": 172, "y": 64, "flags": 4}, {"matrix": [4, 11], "x": 190, "y": 64, "flags": 4}, {"matrix": [4, 12], "x": 207, "y": 64, "flags": 4}, - {"matrix": [4, 13], "x": 224, "y": 64, "flags": 4}, - {"matrix": [3, 13], "x": 224, "y": 48, "flags": 4}, + {"matrix": [4, 15], "x": 224, "y": 64, "flags": 4}, + {"matrix": [3, 15], "x": 224, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 200, "y": 48, "flags": 4}, {"matrix": [3, 11], "x": 190, "y": 48, "flags": 4}, {"matrix": [3, 10], "x": 172, "y": 48, "flags": 4}, {"matrix": [3, 9], "x": 155, "y": 48, "flags": 4}, @@ -93,6 +97,7 @@ {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4}, {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4}, {"matrix": [3, 1], "x": 17, "y": 48, "flags": 4}, + {"matrix": [4, 3], "x": 52, "y": 64, "flags": 4}, {"matrix": [4, 2], "x": 34, "y": 64, "flags": 4}, {"matrix": [4, 1], "x": 17, "y": 64, "flags": 4}, {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, @@ -109,8 +114,10 @@ {"matrix": [2, 9], "x": 155, "y": 32, "flags": 4}, {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4}, {"matrix": [2, 11], "x": 190, "y": 32, "flags": 4}, - {"matrix": [2, 13], "x": 207, "y": 32, "flags": 4}, - {"matrix": [2, 12], "x": 224, "y": 16, "flags": 4}, + {"matrix": [2, 12], "x": 200, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 224, "y": 32, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 224, "y": 16, "flags": 4}, {"matrix": [1, 12], "x": 207, "y": 16, "flags": 4}, {"matrix": [1, 11], "x": 190, "y": 16, "flags": 4}, {"matrix": [1, 10], "x": 172, "y": 16, "flags": 4}, @@ -137,7 +144,9 @@ {"matrix": [0, 10], "x": 172, "y": 0, "flags": 4}, {"matrix": [0, 11], "x": 190, "y": 0, "flags": 4}, {"matrix": [0, 12], "x": 207, "y": 0, "flags": 4}, - {"matrix": [0, 13], "x": 224, "y": 0, "flags": 4} + {"matrix": [0, 13], "x": 210, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 210, "y": 0, "flags": 4}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 4} ], "max_brightness": 110, "sleep": true, @@ -145,13 +154,13 @@ }, "url": "", "usb": { - "device_version": "1.0.0", + "device_version": "1.1.0", "pid": "0x1020", "suspend_wakeup_delay": 1000, "vid": "0x6332" }, "ws2812": { - "pin": "A8" + "pin": "B15" }, "community_layouts": ["60_ansi", "60_iso"], "layouts": { @@ -170,7 +179,9 @@ {"matrix": [0, 10], "x": 10, "y": 0}, {"matrix": [0, 11], "x": 11, "y": 0}, {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 0.5}, + {"matrix": [0, 14], "x": 13.5, "y": 0}, + {"matrix": [0, 15], "x": 14.5, "y": 0, "w": 0.5}, {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, {"matrix": [1, 2], "x": 2.5, "y": 1}, @@ -184,7 +195,8 @@ {"matrix": [1, 10], "x": 10.5, "y": 1}, {"matrix": [1, 11], "x": 11.5, "y": 1}, {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 13], "x": 13.5, "y": 1}, + {"matrix": [1, 14], "x": 14.5, "y": 1, "w": 0.5}, {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, {"matrix": [2, 1], "x": 1.75, "y": 2}, {"matrix": [2, 2], "x": 2.75, "y": 2}, @@ -197,28 +209,34 @@ {"matrix": [2, 9], "x": 9.75, "y": 2}, {"matrix": [2, 10], "x": 10.75, "y": 2}, {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 0.75}, + {"matrix": [3, 1], "x": 0.75, "y": 3, "w": 0.5}, + {"matrix": [3, 2], "x": 1.25, "y": 3}, + {"matrix": [3, 3], "x": 2.25, "y": 3}, + {"matrix": [3, 4], "x": 3.25, "y": 3}, + {"matrix": [3, 5], "x": 4.25, "y": 3}, + {"matrix": [3, 6], "x": 5.25, "y": 3}, + {"matrix": [3, 7], "x": 6.25, "y": 3}, + {"matrix": [3, 8], "x": 7.25, "y": 3}, + {"matrix": [3, 9], "x": 8.25, "y": 3}, + {"matrix": [3, 10], "x": 9.25, "y": 3}, + {"matrix": [3, 11], "x": 10.25, "y": 3}, + {"matrix": [3, 12], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3}, + {"matrix": [3, 14], "x": 13.25, "y": 3, "w": 0.75}, + {"matrix": [3, 15], "x": 14, "y": 3}, {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 3], "x": 3.75, "y": 4}, + {"matrix": [4, 6], "x": 4.75, "y": 4, "w": 4.25}, + {"matrix": [4, 9], "x": 9, "y": 4}, {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + {"matrix": [4, 15], "x": 13.75, "y": 4, "w": 1.25} ] }, "LAYOUT_60_ansi": { @@ -236,7 +254,7 @@ {"matrix": [0, 10], "x": 10, "y": 0}, {"matrix": [0, 11], "x": 11, "y": 0}, {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, {"matrix": [1, 2], "x": 2.5, "y": 1}, @@ -250,7 +268,7 @@ {"matrix": [1, 10], "x": 10.5, "y": 1}, {"matrix": [1, 11], "x": 11.5, "y": 1}, {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, {"matrix": [2, 1], "x": 1.75, "y": 2}, {"matrix": [2, 2], "x": 2.75, "y": 2}, @@ -264,18 +282,18 @@ {"matrix": [2, 10], "x": 10.75, "y": 2}, {"matrix": [2, 11], "x": 11.75, "y": 2}, {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [3, 1], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 3], "x": 2.25, "y": 3}, + {"matrix": [3, 4], "x": 3.25, "y": 3}, + {"matrix": [3, 5], "x": 4.25, "y": 3}, + {"matrix": [3, 6], "x": 5.25, "y": 3}, + {"matrix": [3, 7], "x": 6.25, "y": 3}, + {"matrix": [3, 8], "x": 7.25, "y": 3}, + {"matrix": [3, 9], "x": 8.25, "y": 3}, + {"matrix": [3, 10], "x": 9.25, "y": 3}, + {"matrix": [3, 11], "x": 10.25, "y": 3}, + {"matrix": [3, 12], "x": 11.25, "y": 3}, + {"matrix": [3, 14], "x": 12.25, "y": 3, "w": 2.75}, {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, @@ -283,7 +301,7 @@ {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + {"matrix": [4, 15], "x": 13.75, "y": 4, "w": 1.25} ] }, "LAYOUT_60_iso": { @@ -301,7 +319,7 @@ {"matrix": [0, 10], "x": 10, "y": 0}, {"matrix": [0, 11], "x": 11, "y": 0}, {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, {"matrix": [1, 2], "x": 2.5, "y": 1}, @@ -328,20 +346,20 @@ {"matrix": [2, 10], "x": 10.75, "y": 2}, {"matrix": [2, 11], "x": 11.75, "y": 2}, {"matrix": [2, 12], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [1, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [3, 2], "x": 1.25, "y": 3}, + {"matrix": [3, 3], "x": 2.25, "y": 3}, + {"matrix": [3, 4], "x": 3.25, "y": 3}, + {"matrix": [3, 5], "x": 4.25, "y": 3}, + {"matrix": [3, 6], "x": 5.25, "y": 3}, + {"matrix": [3, 7], "x": 6.25, "y": 3}, + {"matrix": [3, 8], "x": 7.25, "y": 3}, + {"matrix": [3, 9], "x": 8.25, "y": 3}, + {"matrix": [3, 10], "x": 9.25, "y": 3}, + {"matrix": [3, 11], "x": 10.25, "y": 3}, + {"matrix": [3, 12], "x": 11.25, "y": 3}, + {"matrix": [3, 14], "x": 12.25, "y": 3, "w": 2.75}, {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, @@ -349,7 +367,7 @@ {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + {"matrix": [4, 15], "x": 13.75, "y": 4, "w": 1.25} ] } } diff --git a/keyboards/sharkoon/skiller_sgk50_s4/keymaps/default/keymap.c b/keyboards/sharkoon/skiller_sgk50_s4/keymaps/default/keymap.c index a8a64d1f2dc..9a9e2071138 100644 --- a/keyboards/sharkoon/skiller_sgk50_s4/keymaps/default/keymap.c +++ b/keyboards/sharkoon/skiller_sgk50_s4/keymaps/default/keymap.c @@ -4,18 +4,18 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_all( + [0] = LAYOUT_60_iso( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL ), - [1] = LAYOUT_all( + [1] = LAYOUT_60_iso( KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - _______, _______, _______, _______, _______, _______, KC_INS, _______, KC_UP, KC_PAUS, KC_PGUP, KC_HOME, KC_PSCR, RM_VALU, - _______, _______, _______, _______, _______, _______, KC_SCRL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, _______, + _______, _______, _______, _______, _______, _______, KC_INS, _______, KC_UP, KC_PAUS, KC_PGUP, KC_HOME, KC_PSCR, + _______, _______, _______, _______, _______, _______, KC_SCRL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, RM_VALU, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, RM_VALD, _______, _______, GU_TOGG, _______, _______, _______, _______, RM_HUEU, RM_NEXT ) From 76b5cef79345cdb42bbcb42417f56881c4e59b2d Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 29 Jan 2025 19:17:29 +0000 Subject: [PATCH 207/365] Reject keyboard.json next to info.json (#24882) --- lib/python/qmk/info.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index 38ca89697c0..d70e7ee1b37 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -99,6 +99,13 @@ def _validate_build_target(keyboard, info_data): if info_file != keyboard_json_path: _log_error(info_data, f'Invalid keyboard.json location detected: {info_file}.') + # No keyboard.json next to info.json + for conf_file in config_files: + if conf_file.name == 'keyboard.json': + info_file = conf_file.parent / 'info.json' + if info_file.exists(): + _log_error(info_data, f'Invalid info.json location detected: {info_file}.') + # Moving forward keyboard.json should be used as a build target if keyboard_json_count == 0: _log_warning(info_data, 'Build marker "keyboard.json" not found.') From 9d799aff97163a1cce24c2bd1551a085fac7a8f6 Mon Sep 17 00:00:00 2001 From: Pascal Getreuer <50221757+getreuer@users.noreply.github.com> Date: Wed, 29 Jan 2025 11:17:54 -0800 Subject: [PATCH 208/365] [Bug][Core] Fix for Chordal Hold: stuck mods when mod-taps are pressed in a stuttered sequence. (#24878) --- quantum/action_tapping.c | 2 +- .../hold_on_other_key_press/test_tap_hold.cpp | 43 ++++++++++++++++++ .../permissive_hold/test_tap_hold.cpp | 45 ++++++++++++++++++- 3 files changed, 88 insertions(+), 2 deletions(-) diff --git a/quantum/action_tapping.c b/quantum/action_tapping.c index 91719707023..e42a98554d3 100644 --- a/quantum/action_tapping.c +++ b/quantum/action_tapping.c @@ -736,7 +736,7 @@ static void waiting_buffer_chordal_hold_taps_until(keypos_t key) { while (waiting_buffer_tail != waiting_buffer_head) { keyrecord_t *record = &waiting_buffer[waiting_buffer_tail]; ac_dprintf("waiting_buffer_chordal_hold_taps_until: processing [%u]\n", waiting_buffer_tail); - if (is_tap_record(record)) { + if (record->event.pressed && is_tap_record(record)) { record->tap.count = 1; registered_taps_add(record->event.key); } diff --git a/tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/test_tap_hold.cpp b/tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/test_tap_hold.cpp index e6852bbbb1e..7691f226af6 100644 --- a/tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/test_tap_hold.cpp +++ b/tests/tap_hold_configurations/chordal_hold/hold_on_other_key_press/test_tap_hold.cpp @@ -805,3 +805,46 @@ TEST_F(ChordalHoldHoldOnOtherKeyPress, roll_layer_tap_key_with_regular_key) { run_one_scan_loop(); VERIFY_AND_CLEAR(driver); } + +TEST_F(ChordalHoldHoldOnOtherKeyPress, two_mod_tap_keys_stuttered_press) { + TestDriver driver; + InSequence s; + + auto mod_tap_key1 = KeymapKey(0, 1, 0, LSFT_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, LCTL_T(KC_B)); + + set_keymap({mod_tap_key1, mod_tap_key2}); + + // Hold first mod-tap key until the tapping term. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key1.press(); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Press the second mod-tap key, then quickly release and press the first. + EXPECT_NO_REPORT(driver); + mod_tap_key2.press(); + run_one_scan_loop(); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT, KC_B)); + EXPECT_REPORT(driver, (KC_B)); + EXPECT_REPORT(driver, (KC_B, KC_A)); + mod_tap_key1.press(); + run_one_scan_loop(); + EXPECT_EQ(get_mods(), 0); // Verify that Shift was released. + VERIFY_AND_CLEAR(driver); + + // Release both keys. + EXPECT_REPORT(driver, (KC_A)); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} diff --git a/tests/tap_hold_configurations/chordal_hold/permissive_hold/test_tap_hold.cpp b/tests/tap_hold_configurations/chordal_hold/permissive_hold/test_tap_hold.cpp index 1f89ab3eae4..19e73edb027 100644 --- a/tests/tap_hold_configurations/chordal_hold/permissive_hold/test_tap_hold.cpp +++ b/tests/tap_hold_configurations/chordal_hold/permissive_hold/test_tap_hold.cpp @@ -877,6 +877,7 @@ TEST_F(ChordalHoldPermissiveHold, roll_layer_tap_key_with_regular_key) { VERIFY_AND_CLEAR(driver); // Press regular key. + EXPECT_NO_REPORT(driver); regular_key.press(); run_one_scan_loop(); VERIFY_AND_CLEAR(driver); @@ -885,7 +886,6 @@ TEST_F(ChordalHoldPermissiveHold, roll_layer_tap_key_with_regular_key) { EXPECT_REPORT(driver, (KC_P)); EXPECT_REPORT(driver, (KC_P, KC_A)); EXPECT_REPORT(driver, (KC_A)); - EXPECT_NO_REPORT(driver); layer_tap_hold_key.release(); run_one_scan_loop(); VERIFY_AND_CLEAR(driver); @@ -896,3 +896,46 @@ TEST_F(ChordalHoldPermissiveHold, roll_layer_tap_key_with_regular_key) { run_one_scan_loop(); VERIFY_AND_CLEAR(driver); } + +TEST_F(ChordalHoldPermissiveHold, two_mod_tap_keys_stuttered_press) { + TestDriver driver; + InSequence s; + + auto mod_tap_key1 = KeymapKey(0, 1, 0, LSFT_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, LCTL_T(KC_B)); + + set_keymap({mod_tap_key1, mod_tap_key2}); + + // Hold first mod-tap key until the tapping term. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key1.press(); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Press the second mod-tap key, then quickly release and press the first. + EXPECT_NO_REPORT(driver); + mod_tap_key2.press(); + run_one_scan_loop(); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT, KC_B)); + EXPECT_REPORT(driver, (KC_B)); + EXPECT_REPORT(driver, (KC_B, KC_A)); + mod_tap_key1.press(); + run_one_scan_loop(); + EXPECT_EQ(get_mods(), 0); // Verify that Shift was released. + VERIFY_AND_CLEAR(driver); + + // Release both keys. + EXPECT_REPORT(driver, (KC_A)); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} From d7fb12164a6623da0ab356b2d1ce1c1fa9797535 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Thu, 30 Jan 2025 06:18:07 +1100 Subject: [PATCH 209/365] Invoke `process_record_via` after `_user`/`_kb` have a chance to handle it. (#24879) --- quantum/quantum.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/quantum/quantum.c b/quantum/quantum.c index d4ebd58e7fc..b63300add8e 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -329,13 +329,13 @@ bool process_record_quantum(keyrecord_t *record) { #ifdef HAPTIC_ENABLE process_haptic(keycode, record) && #endif -#if defined(VIA_ENABLE) - process_record_via(keycode, record) && -#endif #if defined(POINTING_DEVICE_ENABLE) && defined(POINTING_DEVICE_AUTO_MOUSE_ENABLE) process_auto_mouse(keycode, record) && #endif process_record_kb(keycode, record) && +#if defined(VIA_ENABLE) + process_record_via(keycode, record) && +#endif #if defined(SECURE_ENABLE) process_secure(keycode, record) && #endif From ea3a968510d14b55c44c3e92dc39600f114fddef Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Jan 2025 06:20:08 +1100 Subject: [PATCH 210/365] Bump vite from 5.2.14 to 5.4.12 in /builddefs/docsgen (#24852) --- builddefs/docsgen/package.json | 2 +- builddefs/docsgen/yarn.lock | 477 +++++++++++++++++---------------- 2 files changed, 251 insertions(+), 228 deletions(-) diff --git a/builddefs/docsgen/package.json b/builddefs/docsgen/package.json index 3bc4b38c86b..21f56d7ddfb 100644 --- a/builddefs/docsgen/package.json +++ b/builddefs/docsgen/package.json @@ -1,7 +1,7 @@ { "license": "GPL-2.0-or-later", "devDependencies": { - "vite": "^5.2.14", + "vite": "^5.4.12", "vitepress": "^1.1.0", "vitepress-plugin-tabs": "^0.5.0", "vue": "^3.4.24" diff --git a/builddefs/docsgen/yarn.lock b/builddefs/docsgen/yarn.lock index 057e89d0738..0b36eec07c7 100644 --- a/builddefs/docsgen/yarn.lock +++ b/builddefs/docsgen/yarn.lock @@ -178,205 +178,220 @@ "@docsearch/css" "3.6.0" algoliasearch "^4.19.1" -"@esbuild/aix-ppc64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz#a70f4ac11c6a1dfc18b8bbb13284155d933b9537" - integrity sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g== +"@esbuild/aix-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" + integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ== -"@esbuild/android-arm64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz#db1c9202a5bc92ea04c7b6840f1bbe09ebf9e6b9" - integrity sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg== +"@esbuild/android-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052" + integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A== -"@esbuild/android-arm@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz#3b488c49aee9d491c2c8f98a909b785870d6e995" - integrity sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w== +"@esbuild/android-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28" + integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg== -"@esbuild/android-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz#3b1628029e5576249d2b2d766696e50768449f98" - integrity sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg== +"@esbuild/android-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e" + integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA== -"@esbuild/darwin-arm64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz#6e8517a045ddd86ae30c6608c8475ebc0c4000bb" - integrity sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA== +"@esbuild/darwin-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a" + integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ== -"@esbuild/darwin-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz#90ed098e1f9dd8a9381695b207e1cff45540a0d0" - integrity sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA== +"@esbuild/darwin-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22" + integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw== -"@esbuild/freebsd-arm64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz#d71502d1ee89a1130327e890364666c760a2a911" - integrity sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw== +"@esbuild/freebsd-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e" + integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g== -"@esbuild/freebsd-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz#aa5ea58d9c1dd9af688b8b6f63ef0d3d60cea53c" - integrity sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw== +"@esbuild/freebsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261" + integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ== -"@esbuild/linux-arm64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz#055b63725df678379b0f6db9d0fa85463755b2e5" - integrity sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A== +"@esbuild/linux-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b" + integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== -"@esbuild/linux-arm@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz#76b3b98cb1f87936fbc37f073efabad49dcd889c" - integrity sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg== +"@esbuild/linux-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9" + integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA== -"@esbuild/linux-ia32@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz#c0e5e787c285264e5dfc7a79f04b8b4eefdad7fa" - integrity sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig== +"@esbuild/linux-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2" + integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg== -"@esbuild/linux-loong64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz#a6184e62bd7cdc63e0c0448b83801001653219c5" - integrity sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ== +"@esbuild/linux-loong64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df" + integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg== -"@esbuild/linux-mips64el@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz#d08e39ce86f45ef8fc88549d29c62b8acf5649aa" - integrity sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA== +"@esbuild/linux-mips64el@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe" + integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg== -"@esbuild/linux-ppc64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz#8d252f0b7756ffd6d1cbde5ea67ff8fd20437f20" - integrity sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg== +"@esbuild/linux-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4" + integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w== -"@esbuild/linux-riscv64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz#19f6dcdb14409dae607f66ca1181dd4e9db81300" - integrity sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg== +"@esbuild/linux-riscv64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc" + integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA== -"@esbuild/linux-s390x@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz#3c830c90f1a5d7dd1473d5595ea4ebb920988685" - integrity sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ== +"@esbuild/linux-s390x@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de" + integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A== -"@esbuild/linux-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz#86eca35203afc0d9de0694c64ec0ab0a378f6fff" - integrity sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw== +"@esbuild/linux-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0" + integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== -"@esbuild/netbsd-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz#e771c8eb0e0f6e1877ffd4220036b98aed5915e6" - integrity sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ== +"@esbuild/netbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047" + integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg== -"@esbuild/openbsd-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz#9a795ae4b4e37e674f0f4d716f3e226dd7c39baf" - integrity sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ== +"@esbuild/openbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70" + integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow== -"@esbuild/sunos-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz#7df23b61a497b8ac189def6e25a95673caedb03f" - integrity sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w== +"@esbuild/sunos-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b" + integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg== -"@esbuild/win32-arm64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz#f1ae5abf9ca052ae11c1bc806fb4c0f519bacf90" - integrity sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ== +"@esbuild/win32-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d" + integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A== -"@esbuild/win32-ia32@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz#241fe62c34d8e8461cd708277813e1d0ba55ce23" - integrity sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ== +"@esbuild/win32-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b" + integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA== -"@esbuild/win32-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz#9c907b21e30a52db959ba4f80bb01a0cc403d5cc" - integrity sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ== +"@esbuild/win32-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" + integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== "@jridgewell/sourcemap-codec@^1.4.15": version "1.4.15" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@rollup/rollup-android-arm-eabi@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz#8b613b9725e8f9479d142970b106b6ae878610d5" - integrity sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w== +"@rollup/rollup-android-arm-eabi@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.31.0.tgz#d4dd60da0075a6ce9a6c76d71b8204f3e1822285" + integrity sha512-9NrR4033uCbUBRgvLcBrJofa2KY9DzxL2UKZ1/4xA/mnTNyhZCWBuD8X3tPm1n4KxcgaraOYgrFKSgwjASfmlA== -"@rollup/rollup-android-arm64@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz#654ca1049189132ff602bfcf8df14c18da1f15fb" - integrity sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA== +"@rollup/rollup-android-arm64@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.31.0.tgz#25c4d33259a7a2ccd2f52a5ffcc0bb3ab3f0729d" + integrity sha512-iBbODqT86YBFHajxxF8ebj2hwKm1k8PTBQSojSt3d1FFt1gN+xf4CowE47iN0vOSdnd+5ierMHBbu/rHc7nq5g== -"@rollup/rollup-darwin-arm64@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz#6d241d099d1518ef0c2205d96b3fa52e0fe1954b" - integrity sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q== +"@rollup/rollup-darwin-arm64@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.31.0.tgz#d137dff254b19163a6b52ac083a71cd055dae844" + integrity sha512-WHIZfXgVBX30SWuTMhlHPXTyN20AXrLH4TEeH/D0Bolvx9PjgZnn4H677PlSGvU6MKNsjCQJYczkpvBbrBnG6g== -"@rollup/rollup-darwin-x64@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz#42bd19d292a57ee11734c980c4650de26b457791" - integrity sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw== +"@rollup/rollup-darwin-x64@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.31.0.tgz#58ff20b5dacb797d3adca19f02a21c532f9d55bf" + integrity sha512-hrWL7uQacTEF8gdrQAqcDy9xllQ0w0zuL1wk1HV8wKGSGbKPVjVUv/DEwT2+Asabf8Dh/As+IvfdU+H8hhzrQQ== -"@rollup/rollup-linux-arm-gnueabihf@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz#f23555ee3d8fe941c5c5fd458cd22b65eb1c2232" - integrity sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ== +"@rollup/rollup-freebsd-arm64@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.31.0.tgz#96ce1a241c591ec3e068f4af765d94eddb24e60c" + integrity sha512-S2oCsZ4hJviG1QjPY1h6sVJLBI6ekBeAEssYKad1soRFv3SocsQCzX6cwnk6fID6UQQACTjeIMB+hyYrFacRew== -"@rollup/rollup-linux-arm-musleabihf@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz#f3bbd1ae2420f5539d40ac1fde2b38da67779baa" - integrity sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg== +"@rollup/rollup-freebsd-x64@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.31.0.tgz#e59e7ede505be41f0b4311b0b943f8eb44938467" + integrity sha512-pCANqpynRS4Jirn4IKZH4tnm2+2CqCNLKD7gAdEjzdLGbH1iO0zouHz4mxqg0uEMpO030ejJ0aA6e1PJo2xrPA== -"@rollup/rollup-linux-arm64-gnu@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz#7abe900120113e08a1f90afb84c7c28774054d15" - integrity sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw== +"@rollup/rollup-linux-arm-gnueabihf@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.31.0.tgz#e455ca6e4ff35bd46d62201c153352e717000a7b" + integrity sha512-0O8ViX+QcBd3ZmGlcFTnYXZKGbFu09EhgD27tgTdGnkcYXLat4KIsBBQeKLR2xZDCXdIBAlWLkiXE1+rJpCxFw== -"@rollup/rollup-linux-arm64-musl@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz#9e655285c8175cd44f57d6a1e8e5dedfbba1d820" - integrity sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA== +"@rollup/rollup-linux-arm-musleabihf@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.31.0.tgz#bc1a93d807d19e70b1e343a5bfea43723bcd6327" + integrity sha512-w5IzG0wTVv7B0/SwDnMYmbr2uERQp999q8FMkKG1I+j8hpPX2BYFjWe69xbhbP6J9h2gId/7ogesl9hwblFwwg== -"@rollup/rollup-linux-powerpc64le-gnu@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz#9a79ae6c9e9d8fe83d49e2712ecf4302db5bef5e" - integrity sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg== +"@rollup/rollup-linux-arm64-gnu@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.31.0.tgz#f38bf843f1dc3d5de680caf31084008846e3efae" + integrity sha512-JyFFshbN5xwy6fulZ8B/8qOqENRmDdEkcIMF0Zz+RsfamEW+Zabl5jAb0IozP/8UKnJ7g2FtZZPEUIAlUSX8cA== -"@rollup/rollup-linux-riscv64-gnu@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz#67ac70eca4ace8e2942fabca95164e8874ab8128" - integrity sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA== +"@rollup/rollup-linux-arm64-musl@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.31.0.tgz#b3987a96c18b7287129cf735be2dbf83e94d9d05" + integrity sha512-kpQXQ0UPFeMPmPYksiBL9WS/BDiQEjRGMfklVIsA0Sng347H8W2iexch+IEwaR7OVSKtr2ZFxggt11zVIlZ25g== -"@rollup/rollup-linux-s390x-gnu@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz#9f883a7440f51a22ed7f99e1d070bd84ea5005fc" - integrity sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q== +"@rollup/rollup-linux-loongarch64-gnu@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.31.0.tgz#0f0324044e71c4f02e9f49e7ec4e347b655b34ee" + integrity sha512-pMlxLjt60iQTzt9iBb3jZphFIl55a70wexvo8p+vVFK+7ifTRookdoXX3bOsRdmfD+OKnMozKO6XM4zR0sHRrQ== -"@rollup/rollup-linux-x64-gnu@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz#70116ae6c577fe367f58559e2cffb5641a1dd9d0" - integrity sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg== +"@rollup/rollup-linux-powerpc64le-gnu@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.31.0.tgz#809479f27f1fd5b4eecd2aa732132ad952d454ba" + integrity sha512-D7TXT7I/uKEuWiRkEFbed1UUYZwcJDU4vZQdPTcepK7ecPhzKOYk4Er2YR4uHKme4qDeIh6N3XrLfpuM7vzRWQ== -"@rollup/rollup-linux-x64-musl@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz#f473f88219feb07b0b98b53a7923be716d1d182f" - integrity sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g== +"@rollup/rollup-linux-riscv64-gnu@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.31.0.tgz#7bc75c4f22db04d3c972f83431739cfa41c6a36e" + integrity sha512-wal2Tc8O5lMBtoePLBYRKj2CImUCJ4UNGJlLwspx7QApYny7K1cUYlzQ/4IGQBLmm+y0RS7dwc3TDO/pmcneTw== -"@rollup/rollup-win32-arm64-msvc@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz#4349482d17f5d1c58604d1c8900540d676f420e0" - integrity sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw== +"@rollup/rollup-linux-s390x-gnu@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.31.0.tgz#cfe8052345c55864d83ae343362cf1912480170e" + integrity sha512-O1o5EUI0+RRMkK9wiTVpk2tyzXdXefHtRTIjBbmFREmNMy7pFeYXCFGbhKFwISA3UOExlo5GGUuuj3oMKdK6JQ== -"@rollup/rollup-win32-ia32-msvc@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz#a6fc39a15db618040ec3c2a24c1e26cb5f4d7422" - integrity sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g== +"@rollup/rollup-linux-x64-gnu@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.31.0.tgz#c6b048f1e25f3fea5b4bd246232f4d07a159c5a0" + integrity sha512-zSoHl356vKnNxwOWnLd60ixHNPRBglxpv2g7q0Cd3Pmr561gf0HiAcUBRL3S1vPqRC17Zo2CX/9cPkqTIiai1g== -"@rollup/rollup-win32-x64-msvc@4.22.4": - version "4.22.4" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz#3dd5d53e900df2a40841882c02e56f866c04d202" - integrity sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q== +"@rollup/rollup-linux-x64-musl@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.31.0.tgz#615273ac52d1a201f4de191cbd3389016a9d7d80" + integrity sha512-ypB/HMtcSGhKUQNiFwqgdclWNRrAYDH8iMYH4etw/ZlGwiTVxBz2tDrGRrPlfZu6QjXwtd+C3Zib5pFqID97ZA== + +"@rollup/rollup-win32-arm64-msvc@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.31.0.tgz#32ed85810c1b831c648eca999d68f01255b30691" + integrity sha512-JuhN2xdI/m8Hr+aVO3vspO7OQfUFO6bKLIRTAy0U15vmWjnZDLrEgCZ2s6+scAYaQVpYSh9tZtRijApw9IXyMw== + +"@rollup/rollup-win32-ia32-msvc@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.31.0.tgz#d47effada68bcbfdccd30c4a788d42e4542ff4d3" + integrity sha512-U1xZZXYkvdf5MIWmftU8wrM5PPXzyaY1nGCI4KI4BFfoZxHamsIe+BtnPLIvvPykvQWlVbqUXdLa4aJUuilwLQ== + +"@rollup/rollup-win32-x64-msvc@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.31.0.tgz#7a2d89a82cf0388d60304964217dd7beac6de645" + integrity sha512-ul8rnCsUumNln5YWwz0ted2ZHFhzhRRnkpBZ+YRuHoRAlUji9KChpOUOndY7uykrPEPXVbHLlsdo6v5yXo/TXw== "@shikijs/core@1.3.0", "@shikijs/core@^1.3.0": version "1.3.0" @@ -390,10 +405,10 @@ dependencies: shiki "1.3.0" -"@types/estree@1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" - integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== +"@types/estree@1.0.6": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" + integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== "@types/linkify-it@*": version "3.0.5" @@ -589,34 +604,34 @@ entities@^4.5.0: resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== -esbuild@^0.20.1: - version "0.20.2" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.20.2.tgz#9d6b2386561766ee6b5a55196c6d766d28c87ea1" - integrity sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g== +esbuild@^0.21.3: + version "0.21.5" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d" + integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== optionalDependencies: - "@esbuild/aix-ppc64" "0.20.2" - "@esbuild/android-arm" "0.20.2" - "@esbuild/android-arm64" "0.20.2" - "@esbuild/android-x64" "0.20.2" - "@esbuild/darwin-arm64" "0.20.2" - "@esbuild/darwin-x64" "0.20.2" - "@esbuild/freebsd-arm64" "0.20.2" - "@esbuild/freebsd-x64" "0.20.2" - "@esbuild/linux-arm" "0.20.2" - "@esbuild/linux-arm64" "0.20.2" - "@esbuild/linux-ia32" "0.20.2" - "@esbuild/linux-loong64" "0.20.2" - "@esbuild/linux-mips64el" "0.20.2" - "@esbuild/linux-ppc64" "0.20.2" - "@esbuild/linux-riscv64" "0.20.2" - "@esbuild/linux-s390x" "0.20.2" - "@esbuild/linux-x64" "0.20.2" - "@esbuild/netbsd-x64" "0.20.2" - "@esbuild/openbsd-x64" "0.20.2" - "@esbuild/sunos-x64" "0.20.2" - "@esbuild/win32-arm64" "0.20.2" - "@esbuild/win32-ia32" "0.20.2" - "@esbuild/win32-x64" "0.20.2" + "@esbuild/aix-ppc64" "0.21.5" + "@esbuild/android-arm" "0.21.5" + "@esbuild/android-arm64" "0.21.5" + "@esbuild/android-x64" "0.21.5" + "@esbuild/darwin-arm64" "0.21.5" + "@esbuild/darwin-x64" "0.21.5" + "@esbuild/freebsd-arm64" "0.21.5" + "@esbuild/freebsd-x64" "0.21.5" + "@esbuild/linux-arm" "0.21.5" + "@esbuild/linux-arm64" "0.21.5" + "@esbuild/linux-ia32" "0.21.5" + "@esbuild/linux-loong64" "0.21.5" + "@esbuild/linux-mips64el" "0.21.5" + "@esbuild/linux-ppc64" "0.21.5" + "@esbuild/linux-riscv64" "0.21.5" + "@esbuild/linux-s390x" "0.21.5" + "@esbuild/linux-x64" "0.21.5" + "@esbuild/netbsd-x64" "0.21.5" + "@esbuild/openbsd-x64" "0.21.5" + "@esbuild/sunos-x64" "0.21.5" + "@esbuild/win32-arm64" "0.21.5" + "@esbuild/win32-ia32" "0.21.5" + "@esbuild/win32-x64" "0.21.5" estree-walker@^2.0.2: version "2.0.2" @@ -662,7 +677,7 @@ mitt@^3.0.1: resolved "https://registry.yarnpkg.com/mitt/-/mitt-3.0.1.tgz#ea36cf0cc30403601ae074c8f77b7092cdab36d1" integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw== -nanoid@^3.3.7: +nanoid@^3.3.8: version "3.3.8" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf" integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w== @@ -672,19 +687,19 @@ perfect-debounce@^1.0.0: resolved "https://registry.yarnpkg.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz#9c2e8bc30b169cc984a58b7d5b28049839591d2a" integrity sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA== -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== +picocolors@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== -postcss@^8.4.38: - version "8.4.38" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e" - integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== +postcss@^8.4.38, postcss@^8.4.43: + version "8.5.1" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.1.tgz#e2272a1f8a807fafa413218245630b5db10a3214" + integrity sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ== dependencies: - nanoid "^3.3.7" - picocolors "^1.0.0" - source-map-js "^1.2.0" + nanoid "^3.3.8" + picocolors "^1.1.1" + source-map-js "^1.2.1" preact@^10.0.0: version "10.20.2" @@ -696,29 +711,32 @@ rfdc@^1.3.1: resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.1.tgz#2b6d4df52dffe8bb346992a10ea9451f24373a8f" integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg== -rollup@^4.13.0: - version "4.22.4" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.22.4.tgz#4135a6446671cd2a2453e1ad42a45d5973ec3a0f" - integrity sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A== +rollup@^4.20.0: + version "4.31.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.31.0.tgz#b84af969a0292cb047dce2c0ec5413a9457597a4" + integrity sha512-9cCE8P4rZLx9+PjoyqHLs31V9a9Vpvfo4qNcs6JCiGWYhw2gijSetFbH6SSy1whnkgcefnUwr8sad7tgqsGvnw== dependencies: - "@types/estree" "1.0.5" + "@types/estree" "1.0.6" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.22.4" - "@rollup/rollup-android-arm64" "4.22.4" - "@rollup/rollup-darwin-arm64" "4.22.4" - "@rollup/rollup-darwin-x64" "4.22.4" - "@rollup/rollup-linux-arm-gnueabihf" "4.22.4" - "@rollup/rollup-linux-arm-musleabihf" "4.22.4" - "@rollup/rollup-linux-arm64-gnu" "4.22.4" - "@rollup/rollup-linux-arm64-musl" "4.22.4" - "@rollup/rollup-linux-powerpc64le-gnu" "4.22.4" - "@rollup/rollup-linux-riscv64-gnu" "4.22.4" - "@rollup/rollup-linux-s390x-gnu" "4.22.4" - "@rollup/rollup-linux-x64-gnu" "4.22.4" - "@rollup/rollup-linux-x64-musl" "4.22.4" - "@rollup/rollup-win32-arm64-msvc" "4.22.4" - "@rollup/rollup-win32-ia32-msvc" "4.22.4" - "@rollup/rollup-win32-x64-msvc" "4.22.4" + "@rollup/rollup-android-arm-eabi" "4.31.0" + "@rollup/rollup-android-arm64" "4.31.0" + "@rollup/rollup-darwin-arm64" "4.31.0" + "@rollup/rollup-darwin-x64" "4.31.0" + "@rollup/rollup-freebsd-arm64" "4.31.0" + "@rollup/rollup-freebsd-x64" "4.31.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.31.0" + "@rollup/rollup-linux-arm-musleabihf" "4.31.0" + "@rollup/rollup-linux-arm64-gnu" "4.31.0" + "@rollup/rollup-linux-arm64-musl" "4.31.0" + "@rollup/rollup-linux-loongarch64-gnu" "4.31.0" + "@rollup/rollup-linux-powerpc64le-gnu" "4.31.0" + "@rollup/rollup-linux-riscv64-gnu" "4.31.0" + "@rollup/rollup-linux-s390x-gnu" "4.31.0" + "@rollup/rollup-linux-x64-gnu" "4.31.0" + "@rollup/rollup-linux-x64-musl" "4.31.0" + "@rollup/rollup-win32-arm64-msvc" "4.31.0" + "@rollup/rollup-win32-ia32-msvc" "4.31.0" + "@rollup/rollup-win32-x64-msvc" "4.31.0" fsevents "~2.3.2" shiki@1.3.0, shiki@^1.3.0: @@ -733,6 +751,11 @@ source-map-js@^1.2.0: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== +source-map-js@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" + integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== + speakingurl@^14.0.1: version "14.0.1" resolved "https://registry.yarnpkg.com/speakingurl/-/speakingurl-14.0.1.tgz#f37ec8ddc4ab98e9600c1c9ec324a8c48d772a53" @@ -743,14 +766,14 @@ tabbable@^6.2.0: resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== -vite@^5.2.14, vite@^5.2.9: - version "5.2.14" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.2.14.tgz#fd5f60facf6b5f90ec7da6323c467a365d380c3d" - integrity sha512-TFQLuwWLPms+NBNlh0D9LZQ+HXW471COABxw/9TEUBrjuHMo9BrYBPrN/SYAwIuVL+rLerycxiLT41t4f5MZpA== +vite@^5.2.9, vite@^5.4.12: + version "5.4.12" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.12.tgz#627d12ff06de3942557dfe8632fd712a12a072c7" + integrity sha512-KwUaKB27TvWwDJr1GjjWthLMATbGEbeWYZIbGZ5qFIsgPP3vWzLu4cVooqhm5/Z2SPDUMjyPVjTztm5tYKwQxA== dependencies: - esbuild "^0.20.1" - postcss "^8.4.38" - rollup "^4.13.0" + esbuild "^0.21.3" + postcss "^8.4.43" + rollup "^4.20.0" optionalDependencies: fsevents "~2.3.3" From 7073ba3dbb0570309b63bbb6cb9642c4638b229b Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 29 Jan 2025 19:21:09 +0000 Subject: [PATCH 211/365] Migrate some DEFAULT_FOLDER to keyboard_aliases.hjson (#24845) --- data/mappings/keyboard_aliases.hjson | 84 +++++++++++++++++++ keyboards/25keys/aleth42/rules.mk | 1 - keyboards/25keys/zinc/rules.mk | 1 - keyboards/aeboards/ext65/rules.mk | 1 - keyboards/biacco42/ergo42/rules.mk | 1 - keyboards/custommk/genesis/rules.mk | 1 - keyboards/drhigsby/ogurec/rules.mk | 1 - keyboards/input_club/infinity60/rules.mk | 1 - keyboards/jacky_studio/piggy60/rev1/rules.mk | 1 - keyboards/jacky_studio/piggy60/rules.mk | 1 - keyboards/jones/rules.mk | 1 - keyboards/kakunpc/angel17/rules.mk | 1 - keyboards/kakunpc/suihankey/split/rules.mk | 1 - keyboards/keyhive/navi10/rules.mk | 1 - keyboards/keyhive/uno/rules.mk | 1 - .../maple_computing/christmas_tree/rules.mk | 1 - keyboards/marksard/treadstone32/rules.mk | 1 - keyboards/mechlovin/hannah65/rev1/rules.mk | 1 - keyboards/mechlovin/hannah65/rules.mk | 1 - keyboards/rate/pistachio/rules.mk | 1 - keyboards/recompile_keys/choco60/rules.mk | 1 - keyboards/recompile_keys/nomu30/rules.mk | 1 - keyboards/salicylic_acid3/7skb/rules.mk | 1 - keyboards/salicylic_acid3/getta25/rules.mk | 1 - keyboards/salicylic_acid3/jisplit89/rules.mk | 1 - keyboards/salicylic_acid3/naked48/rules.mk | 1 - keyboards/salicylic_acid3/naked60/rules.mk | 1 - keyboards/salicylic_acid3/naked64/rules.mk | 1 - keyboards/salicylic_acid3/setta21/rules.mk | 1 - keyboards/spaceholdings/nebula68b/rules.mk | 1 - keyboards/splitkb/kyria/rules.mk | 1 - keyboards/takashiski/namecard2x4/rules.mk | 1 - keyboards/tominabox1/le_chiffre/rules.mk | 1 - keyboards/ymdk/yd60mq/rules.mk | 1 - 34 files changed, 84 insertions(+), 33 deletions(-) delete mode 100644 keyboards/25keys/aleth42/rules.mk delete mode 100644 keyboards/25keys/zinc/rules.mk delete mode 100644 keyboards/aeboards/ext65/rules.mk delete mode 100644 keyboards/biacco42/ergo42/rules.mk delete mode 100644 keyboards/custommk/genesis/rules.mk delete mode 100644 keyboards/drhigsby/ogurec/rules.mk delete mode 100644 keyboards/input_club/infinity60/rules.mk delete mode 100644 keyboards/jacky_studio/piggy60/rev1/rules.mk delete mode 100644 keyboards/jacky_studio/piggy60/rules.mk delete mode 100644 keyboards/jones/rules.mk delete mode 100644 keyboards/kakunpc/angel17/rules.mk delete mode 100644 keyboards/kakunpc/suihankey/split/rules.mk delete mode 100644 keyboards/keyhive/navi10/rules.mk delete mode 100644 keyboards/keyhive/uno/rules.mk delete mode 100644 keyboards/maple_computing/christmas_tree/rules.mk delete mode 100644 keyboards/marksard/treadstone32/rules.mk delete mode 100644 keyboards/mechlovin/hannah65/rev1/rules.mk delete mode 100644 keyboards/mechlovin/hannah65/rules.mk delete mode 100644 keyboards/rate/pistachio/rules.mk delete mode 100644 keyboards/recompile_keys/choco60/rules.mk delete mode 100644 keyboards/recompile_keys/nomu30/rules.mk delete mode 100644 keyboards/salicylic_acid3/7skb/rules.mk delete mode 100644 keyboards/salicylic_acid3/getta25/rules.mk delete mode 100644 keyboards/salicylic_acid3/jisplit89/rules.mk delete mode 100644 keyboards/salicylic_acid3/naked48/rules.mk delete mode 100644 keyboards/salicylic_acid3/naked60/rules.mk delete mode 100644 keyboards/salicylic_acid3/naked64/rules.mk delete mode 100644 keyboards/salicylic_acid3/setta21/rules.mk delete mode 100644 keyboards/spaceholdings/nebula68b/rules.mk delete mode 100644 keyboards/splitkb/kyria/rules.mk delete mode 100644 keyboards/takashiski/namecard2x4/rules.mk delete mode 100644 keyboards/tominabox1/le_chiffre/rules.mk delete mode 100644 keyboards/ymdk/yd60mq/rules.mk diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index 86fcdb8c29d..760e54b889a 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -1575,6 +1575,12 @@ "1upkeyboards/sweet16": { "target": "1upkeyboards/sweet16/v1" }, + "25keys/aleth42": { + "target": "25keys/aleth42/rev1" + }, + "25keys/zinc": { + "target": "25keys/zinc/rev1" + }, "40percentclub/i75": { "target": "40percentclub/i75/promicro" }, @@ -1599,6 +1605,9 @@ "atreyu": { "target": "atreyu/rev1" }, + "biacco42/ergo42": { + "target": "biacco42/ergo42/rev1" + }, "binepad/bn009": { "target": "binepad/bn009/r2" }, @@ -1641,6 +1650,9 @@ "deltasplit75": { "target": "deltasplit75/v2" }, + "drhigsby/ogurec": { + "target": "drhigsby/ogurec/left_pm" + }, "duck/octagon": { "target": "duck/octagon/v2" }, @@ -1755,9 +1767,15 @@ "inett_studio/sq80": { "target": "inett_studio/sq80/hotswap_layout_i" }, + "input_club/infinity60": { + "target": "input_club/infinity60/led" + }, "jacky_studio/bear_65": { "target": "jacky_studio/bear_65/rev1" }, + "jacky_studio/piggy60/rev1": { + "target": "jacky_studio/piggy60/rev1/solder" + }, "jadookb/jkb65": { "target": "jadookb/jkb65/r1" }, @@ -1773,12 +1791,18 @@ "junco": { "target": "junco/rev1" }, + "kakunpc/angel17": { + "target": "kakunpc/angel17/rev1" + }, "kakunpc/business_card": { "target": "kakunpc/business_card/beta" }, "kakunpc/suihankey": { "target": "kakunpc/suihankey/rev1" }, + "kakunpc/suihankey/split": { + "target": "kakunpc/suihankey/split/rev1" + }, "kapcave/paladinpad": { "target": "kapcave/paladinpad/rev2" }, @@ -1821,6 +1845,12 @@ "keycapsss/kimiko": { "target": "keycapsss/kimiko/rev2" }, + "keyhive/navi10": { + "target": "keyhive/navi10/rev3" + }, + "keyhive/uno": { + "target": "keyhive/uno/rev1" + }, "kin80": { "target": "kin80/blackpill401" }, @@ -1851,6 +1881,9 @@ "lime": { "target": "lime/rev1" }, + "maple_computing/christmas_tree": { + "target": "maple_computing/christmas_tree/v2017" + }, "maple_computing/ivy": { "target": "maple_computing/ivy/rev1" }, @@ -1866,6 +1899,9 @@ "marksard/rhymestone": { "target": "marksard/rhymestone/rev1" }, + "marksard/treadstone32": { + "target": "marksard/treadstone32/rev1" + }, "marksard/treadstone48": { "target": "marksard/treadstone48/rev1" }, @@ -1890,6 +1926,9 @@ "mechlovin/adelais/standard_led/avr": { "target": "mechlovin/adelais/standard_led/avr/rev1" }, + "mechlovin/hannah65/rev1": { + "target": "mechlovin/hannah65/rev1/haus" + }, "mechlovin/infinity87/rev1": { "target": "mechlovin/infinity87/rev1/standard" }, @@ -1986,6 +2025,15 @@ "qwertyydox": { "target": "qwertyydox/rev1" }, + "rate/pistachio": { + "target": "rate/pistachio/rev2" + }, + "recompile_keys/choco60": { + "target": "recompile_keys/choco60/rev1" + }, + "recompile_keys/nomu30": { + "target": "recompile_keys/nomu30/rev1" + }, "redox/rev1": { "target": "redox/rev1/base" }, @@ -2025,6 +2073,27 @@ "rura66": { "target": "rura66/rev1" }, + "salicylic_acid3/7skb": { + "target": "salicylic_acid3/7skb/rev1" + }, + "salicylic_acid3/getta25": { + "target": "salicylic_acid3/getta25/rev1" + }, + "salicylic_acid3/jisplit89": { + "target": "salicylic_acid3/jisplit89/rev1" + }, + "salicylic_acid3/naked48": { + "target": "salicylic_acid3/naked48/rev1" + }, + "salicylic_acid3/naked60": { + "target": "salicylic_acid3/naked60/rev1" + }, + "salicylic_acid3/naked64": { + "target": "salicylic_acid3/naked64/rev1" + }, + "salicylic_acid3/setta21": { + "target": "salicylic_acid3/setta21/rev1" + }, "sawnsprojects/okayu": { "target": "sawnsprojects/okayu/stm32f072" }, @@ -2034,6 +2103,9 @@ "sofle": { "target": "sofle/rev1" }, + "spaceholdings/nebula68b": { + "target": "spaceholdings/nebula68b/solder" + }, "spacetime": { "target": "spacetime/rev1" }, @@ -2052,6 +2124,9 @@ "splitkb/aurora/sweep": { "target": "splitkb/aurora/sweep/rev1" }, + "splitkb/kyria": { + "target": "splitkb/kyria/rev3" + }, "splitkb/kyria/rev1": { "target": "splitkb/kyria/rev1/base" }, @@ -2067,12 +2142,18 @@ "takashiski/hecomi": { "target": "takashiski/hecomi/alpha" }, + "takashiski/namecard2x4": { + "target": "takashiski/namecard2x4/rev2" + }, "themadnoodle/noodlepad": { "target": "themadnoodle/noodlepad/v1" }, "tkw/grandiceps": { "target": "tkw/grandiceps/rev1" }, + "tominabox1/le_chiffre": { + "target": "tominabox1/le_chiffre/rev1" + }, "tominabox1/littlefoot_lx": { "target": "tominabox1/littlefoot_lx/rev1" }, @@ -2103,6 +2184,9 @@ "yosino58": { "target": "yosino58/rev1" }, + "ymdk/yd60mq": { + "target": "ymdk/yd60mq/12led" + }, "yushakobo/navpad/10": { "target": "yushakobo/navpad/10/rev1" }, diff --git a/keyboards/25keys/aleth42/rules.mk b/keyboards/25keys/aleth42/rules.mk deleted file mode 100644 index 8034ad54407..00000000000 --- a/keyboards/25keys/aleth42/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = 25keys/aleth42/rev1 diff --git a/keyboards/25keys/zinc/rules.mk b/keyboards/25keys/zinc/rules.mk deleted file mode 100644 index 1edcb0a3455..00000000000 --- a/keyboards/25keys/zinc/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = 25keys/zinc/rev1 diff --git a/keyboards/aeboards/ext65/rules.mk b/keyboards/aeboards/ext65/rules.mk deleted file mode 100644 index d8b0595a5d3..00000000000 --- a/keyboards/aeboards/ext65/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = aeboards/ext65/rev2 \ No newline at end of file diff --git a/keyboards/biacco42/ergo42/rules.mk b/keyboards/biacco42/ergo42/rules.mk deleted file mode 100644 index 18059c0a3bc..00000000000 --- a/keyboards/biacco42/ergo42/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = biacco42/ergo42/rev1 diff --git a/keyboards/custommk/genesis/rules.mk b/keyboards/custommk/genesis/rules.mk deleted file mode 100644 index 3d64c0af2b9..00000000000 --- a/keyboards/custommk/genesis/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = custommk/genesis/rev2 diff --git a/keyboards/drhigsby/ogurec/rules.mk b/keyboards/drhigsby/ogurec/rules.mk deleted file mode 100644 index ed83fb63868..00000000000 --- a/keyboards/drhigsby/ogurec/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = drhigsby/ogurec/left_pm diff --git a/keyboards/input_club/infinity60/rules.mk b/keyboards/input_club/infinity60/rules.mk deleted file mode 100644 index 9c4b1e74c2e..00000000000 --- a/keyboards/input_club/infinity60/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = input_club/infinity60/led diff --git a/keyboards/jacky_studio/piggy60/rev1/rules.mk b/keyboards/jacky_studio/piggy60/rev1/rules.mk deleted file mode 100644 index 873e9334ed7..00000000000 --- a/keyboards/jacky_studio/piggy60/rev1/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = jacky_studio/piggy60/rev1/solder diff --git a/keyboards/jacky_studio/piggy60/rules.mk b/keyboards/jacky_studio/piggy60/rules.mk deleted file mode 100644 index 873e9334ed7..00000000000 --- a/keyboards/jacky_studio/piggy60/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = jacky_studio/piggy60/rev1/solder diff --git a/keyboards/jones/rules.mk b/keyboards/jones/rules.mk deleted file mode 100644 index 9f0da2abecc..00000000000 --- a/keyboards/jones/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = jones/v1 diff --git a/keyboards/kakunpc/angel17/rules.mk b/keyboards/kakunpc/angel17/rules.mk deleted file mode 100644 index 48095d37e61..00000000000 --- a/keyboards/kakunpc/angel17/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = kakunpc/angel17/rev1 diff --git a/keyboards/kakunpc/suihankey/split/rules.mk b/keyboards/kakunpc/suihankey/split/rules.mk deleted file mode 100644 index 1dc7b014f02..00000000000 --- a/keyboards/kakunpc/suihankey/split/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = kakunpc/suihankey/split/rev1 diff --git a/keyboards/keyhive/navi10/rules.mk b/keyboards/keyhive/navi10/rules.mk deleted file mode 100644 index 6ebb2d0cebf..00000000000 --- a/keyboards/keyhive/navi10/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = keyhive/navi10/rev3 diff --git a/keyboards/keyhive/uno/rules.mk b/keyboards/keyhive/uno/rules.mk deleted file mode 100644 index 32209945937..00000000000 --- a/keyboards/keyhive/uno/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = keyhive/uno/rev1 diff --git a/keyboards/maple_computing/christmas_tree/rules.mk b/keyboards/maple_computing/christmas_tree/rules.mk deleted file mode 100644 index 3a6633cf568..00000000000 --- a/keyboards/maple_computing/christmas_tree/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = maple_computing/christmas_tree/v2017 diff --git a/keyboards/marksard/treadstone32/rules.mk b/keyboards/marksard/treadstone32/rules.mk deleted file mode 100644 index 2d7ca16d86c..00000000000 --- a/keyboards/marksard/treadstone32/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = marksard/treadstone32/rev1 diff --git a/keyboards/mechlovin/hannah65/rev1/rules.mk b/keyboards/mechlovin/hannah65/rev1/rules.mk deleted file mode 100644 index ae9bc176a4c..00000000000 --- a/keyboards/mechlovin/hannah65/rev1/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/hannah65/rev1/haus diff --git a/keyboards/mechlovin/hannah65/rules.mk b/keyboards/mechlovin/hannah65/rules.mk deleted file mode 100644 index ae9bc176a4c..00000000000 --- a/keyboards/mechlovin/hannah65/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/hannah65/rev1/haus diff --git a/keyboards/rate/pistachio/rules.mk b/keyboards/rate/pistachio/rules.mk deleted file mode 100644 index a5f44853163..00000000000 --- a/keyboards/rate/pistachio/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = rate/pistachio/rev2 diff --git a/keyboards/recompile_keys/choco60/rules.mk b/keyboards/recompile_keys/choco60/rules.mk deleted file mode 100644 index 6abfd34d473..00000000000 --- a/keyboards/recompile_keys/choco60/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = recompile_keys/choco60/rev1 diff --git a/keyboards/recompile_keys/nomu30/rules.mk b/keyboards/recompile_keys/nomu30/rules.mk deleted file mode 100644 index 431b619249b..00000000000 --- a/keyboards/recompile_keys/nomu30/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = recompile_keys/nomu30/rev1 diff --git a/keyboards/salicylic_acid3/7skb/rules.mk b/keyboards/salicylic_acid3/7skb/rules.mk deleted file mode 100644 index 15364c29a51..00000000000 --- a/keyboards/salicylic_acid3/7skb/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = salicylic_acid3/7skb/rev1 diff --git a/keyboards/salicylic_acid3/getta25/rules.mk b/keyboards/salicylic_acid3/getta25/rules.mk deleted file mode 100644 index 069fe74b142..00000000000 --- a/keyboards/salicylic_acid3/getta25/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = salicylic_acid3/getta25/rev1 diff --git a/keyboards/salicylic_acid3/jisplit89/rules.mk b/keyboards/salicylic_acid3/jisplit89/rules.mk deleted file mode 100644 index d54d2ccef4d..00000000000 --- a/keyboards/salicylic_acid3/jisplit89/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = salicylic_acid3/jisplit89/rev1 diff --git a/keyboards/salicylic_acid3/naked48/rules.mk b/keyboards/salicylic_acid3/naked48/rules.mk deleted file mode 100644 index dadfa7a2579..00000000000 --- a/keyboards/salicylic_acid3/naked48/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = salicylic_acid3/naked48/rev1 diff --git a/keyboards/salicylic_acid3/naked60/rules.mk b/keyboards/salicylic_acid3/naked60/rules.mk deleted file mode 100644 index 904309ea356..00000000000 --- a/keyboards/salicylic_acid3/naked60/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = salicylic_acid3/naked60/rev1 diff --git a/keyboards/salicylic_acid3/naked64/rules.mk b/keyboards/salicylic_acid3/naked64/rules.mk deleted file mode 100644 index 0ac8d83bfcc..00000000000 --- a/keyboards/salicylic_acid3/naked64/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = salicylic_acid3/naked64/rev1 diff --git a/keyboards/salicylic_acid3/setta21/rules.mk b/keyboards/salicylic_acid3/setta21/rules.mk deleted file mode 100644 index 02e68b57487..00000000000 --- a/keyboards/salicylic_acid3/setta21/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = salicylic_acid3/setta21/rev1 diff --git a/keyboards/spaceholdings/nebula68b/rules.mk b/keyboards/spaceholdings/nebula68b/rules.mk deleted file mode 100644 index 8fe37f83b32..00000000000 --- a/keyboards/spaceholdings/nebula68b/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = spaceholdings/nebula68b/solder diff --git a/keyboards/splitkb/kyria/rules.mk b/keyboards/splitkb/kyria/rules.mk deleted file mode 100644 index 1342089f56d..00000000000 --- a/keyboards/splitkb/kyria/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = splitkb/kyria/rev3 diff --git a/keyboards/takashiski/namecard2x4/rules.mk b/keyboards/takashiski/namecard2x4/rules.mk deleted file mode 100644 index f93cfc823d9..00000000000 --- a/keyboards/takashiski/namecard2x4/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = takashiski/namecard2x4/rev2 diff --git a/keyboards/tominabox1/le_chiffre/rules.mk b/keyboards/tominabox1/le_chiffre/rules.mk deleted file mode 100644 index 57b3d94eabd..00000000000 --- a/keyboards/tominabox1/le_chiffre/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = tominabox1/le_chiffre/rev1 diff --git a/keyboards/ymdk/yd60mq/rules.mk b/keyboards/ymdk/yd60mq/rules.mk deleted file mode 100644 index c37722c8bb8..00000000000 --- a/keyboards/ymdk/yd60mq/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = ymdk/yd60mq/12led From 0c14fc3a211fc6ba55cf58c1b8224700102a33b3 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 29 Jan 2025 19:22:05 +0000 Subject: [PATCH 212/365] Resolve keyboard_aliases when processing keyboard make targets (#24834) --- Makefile | 36 +++++++++++++++++++---------- lib/python/qmk/cli/__init__.py | 1 + lib/python/qmk/cli/resolve_alias.py | 16 +++++++++++++ 3 files changed, 41 insertions(+), 12 deletions(-) create mode 100644 lib/python/qmk/cli/resolve_alias.py diff --git a/Makefile b/Makefile index 5fcd6bbf0f3..c68ee7418a4 100644 --- a/Makefile +++ b/Makefile @@ -113,6 +113,29 @@ endef # Make it easier to call TRY_TO_MATCH_RULE_FROM_LIST TRY_TO_MATCH_RULE_FROM_LIST = $(eval $(call TRY_TO_MATCH_RULE_FROM_LIST_HELPER,$1))$(RULE_FOUND) +# As TRY_TO_MATCH_RULE_FROM_LIST_HELPER, but with additional +# resolution of DEFAULT_FOLDER and keyboard_aliases.hjson for provided rule +define TRY_TO_MATCH_RULE_FROM_LIST_HELPER_KB + # Split on ":", padding with empty strings to avoid indexing issues + TOKEN1:=$$(shell python3 -c "import sys; print((sys.argv[1].split(':',1)+[''])[0])" $$(RULE)) + TOKENr:=$$(shell python3 -c "import sys; print((sys.argv[1].split(':',1)+[''])[1])" $$(RULE)) + + TOKEN1:=$$(shell $(QMK_BIN) resolve-alias --allow-unknown $$(TOKEN1)) + + FOUNDx:=$$(shell echo $1 | tr " " "\n" | grep -Fx $$(TOKEN1)) + ifneq ($$(FOUNDx),) + RULE := $$(TOKENr) + RULE_FOUND := true + MATCHED_ITEM := $$(TOKEN1) + else + RULE_FOUND := false + MATCHED_ITEM := + endif +endef + +# Make it easier to call TRY_TO_MATCH_RULE_FROM_LIST_KB +TRY_TO_MATCH_RULE_FROM_LIST_KB = $(eval $(call TRY_TO_MATCH_RULE_FROM_LIST_HELPER_KB,$1))$(RULE_FOUND) + define ALL_IN_LIST_LOOP OLD_RULE$1 := $$(RULE) $$(eval $$(call $1,$$(ITEM$1))) @@ -138,7 +161,7 @@ define PARSE_RULE $$(eval $$(call PARSE_TEST)) # If the rule starts with the name of a known keyboard, then continue # the parsing from PARSE_KEYBOARD - else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(shell $(QMK_BIN) list-keyboards --no-resolve-defaults)),true) + else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST_KB,$$(shell $(QMK_BIN) list-keyboards)),true) KEYBOARD_RULE=$$(MATCHED_ITEM) $$(eval $$(call PARSE_KEYBOARD,$$(MATCHED_ITEM))) else @@ -170,17 +193,6 @@ define PARSE_KEYBOARD # include the correct makefile to determine the actual name of it CURRENT_KB := $1 - # KEYBOARD_FOLDERS := $$(subst /, , $(CURRENT_KB)) - - DEFAULT_FOLDER := $$(CURRENT_KB) - - # We assume that every rules.mk will contain the full default value - $$(eval include $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/rules.mk) - ifneq ($$(DEFAULT_FOLDER),$$(CURRENT_KB)) - $$(eval include $(ROOT_DIR)/keyboards/$$(DEFAULT_FOLDER)/rules.mk) - endif - CURRENT_KB := $$(DEFAULT_FOLDER) - # 5/4/3/2/1 KEYBOARD_FOLDER_PATH_1 := $$(CURRENT_KB) KEYBOARD_FOLDER_PATH_2 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_1))) diff --git a/lib/python/qmk/cli/__init__.py b/lib/python/qmk/cli/__init__.py index 2d63dfb4477..bb47ea26ed2 100644 --- a/lib/python/qmk/cli/__init__.py +++ b/lib/python/qmk/cli/__init__.py @@ -82,6 +82,7 @@ subcommands = [ 'qmk.cli.new.keymap', 'qmk.cli.painter', 'qmk.cli.pytest', + 'qmk.cli.resolve_alias', 'qmk.cli.test.c', 'qmk.cli.userspace.add', 'qmk.cli.userspace.compile', diff --git a/lib/python/qmk/cli/resolve_alias.py b/lib/python/qmk/cli/resolve_alias.py new file mode 100644 index 00000000000..b9ffb466181 --- /dev/null +++ b/lib/python/qmk/cli/resolve_alias.py @@ -0,0 +1,16 @@ +from qmk.keyboard import keyboard_folder + +from milc import cli + + +@cli.argument('--allow-unknown', arg_only=True, action='store_true', help="Return original if rule is not a valid keyboard.") +@cli.argument('keyboard', arg_only=True, help='The keyboard\'s name') +@cli.subcommand('Resolve DEFAULT_FOLDER and any keyboard_aliases for provided rule') +def resolve_alias(cli): + try: + print(keyboard_folder(cli.args.keyboard)) + except ValueError: + if cli.args.allow_unknown: + print(cli.args.keyboard) + else: + raise From 8bf01dd7966c9d556a7931be47f97bafe9a32ff9 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Wed, 29 Jan 2025 11:25:21 -0800 Subject: [PATCH 213/365] [OS Detection] Improve MacOS detection (#24708) --- quantum/os_detection.c | 2 +- quantum/os_detection/tests/os_detection.cpp | 61 ++++++++++++++++++--- 2 files changed, 55 insertions(+), 8 deletions(-) diff --git a/quantum/os_detection.c b/quantum/os_detection.c index 0dd048a8c47..84bbeeed544 100644 --- a/quantum/os_detection.c +++ b/quantum/os_detection.c @@ -133,7 +133,7 @@ void process_wlength(const uint16_t w_length) { } else if (setups_data.count == setups_data.cnt_ff) { // Linux has 3 packets with 0xFF. guessed = OS_LINUX; - } else if (setups_data.count == 5 && setups_data.last_wlength == 0xFF && setups_data.cnt_ff == 1 && setups_data.cnt_02 == 2) { + } else if (setups_data.count >= 5 && setups_data.last_wlength == 0xFF && setups_data.cnt_ff >= 1 && setups_data.cnt_02 >= 2) { guessed = OS_MACOS; } else if (setups_data.count == 4 && setups_data.cnt_ff == 0 && setups_data.cnt_02 == 2) { // iOS and iPadOS don't have the last 0xFF packet. diff --git a/quantum/os_detection/tests/os_detection.cpp b/quantum/os_detection/tests/os_detection.cpp index ea43de144c3..21c4536243e 100644 --- a/quantum/os_detection/tests/os_detection.cpp +++ b/quantum/os_detection/tests/os_detection.cpp @@ -68,8 +68,12 @@ ChibiOS: Windows 10: [FF, FF, 4, 24, 4, 24, 4, FF, 24, FF, 4, FF, 24, 4, 24, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A, 20A] Windows 10 (another host): [FF, FF, 4, 24, 4, 24, 4, 24, 4, 24, 4, 24] macOS 12.5: [2, 24, 2, 28, FF] +macOS 15.1.x: [ 2, 4E, 2, 1C, 2, 1A, FF, FF] +macOS 15.x (another host): [ 2, 0E, 2, 1E, 2, 42, FF] +macOS 15.x (periodic weirdness): [ 2, 42, 2, 1C, 2, 1A, FF, 2, 42, 2, 1C, 2, 1A, FF ] iOS/iPadOS 15.6: [2, 24, 2, 28] Linux (including Android, Raspberry Pi and WebOS TV): [FF, FF, FF] +Linux (another host): [FF, FF, FF, FF, FF, FF] PS5: [2, 4, 2, 28, 2, 24] Nintendo Switch: [82, FF, 40, 40, FF, 40, 40, FF, 40, 40, FF, 40, 40, FF, 40, 40] Quest 2: [FF, FF, FF, FE, FF, FE, FF, FE, FF, FE, FF] @@ -79,6 +83,7 @@ Windows 10 (first connect): [12, FF, FF, 4, 10, FF, FF, FF, 4, 10, 20A, 20A, 20A Windows 10 (subsequent connect): [FF, FF, 4, 10, FF, 4, FF, 10, FF, 20A, 20A, 20A, 20A, 20A, 20A] Windows 10 (another host): [FF, FF, 4, 10, 4, 10] macOS: [2, 10, 2, E, FF] +macOS 15.x: [ 2, 64, 2, 28, FF, FF] iOS/iPadOS: [2, 10, 2, E] Linux: [FF, FF, FF] PS5: [2, 4, 2, E, 2, 10] @@ -109,18 +114,67 @@ TEST_F(OsDetectionTest, TestLinux) { assert_not_reported(); } +TEST_F(OsDetectionTest, TestChibiosLinux) { + EXPECT_EQ(check_sequence({0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}), OS_LINUX); + os_detection_task(); + assert_not_reported(); +} + TEST_F(OsDetectionTest, TestChibiosMacos) { EXPECT_EQ(check_sequence({0x2, 0x24, 0x2, 0x28, 0xFF}), OS_MACOS); os_detection_task(); assert_not_reported(); } +TEST_F(OsDetectionTest, TestChibiosMacos2) { + EXPECT_EQ(check_sequence({0x2, 0x42, 0x2, 0x1C, 0x2, 0x1A, 0xFF}), OS_MACOS); + os_detection_task(); + assert_not_reported(); +} + +TEST_F(OsDetectionTest, TestChibiosMacos3) { + EXPECT_EQ(check_sequence({0x2, 0x42, 0x2, 0x1C, 0x2, 0x1A, 0xFF, 0x2, 0x42, 0x2, 0x1C, 0x2, 0x1A, 0xFF}), OS_MACOS); + os_detection_task(); + assert_not_reported(); +} + +// Regression reported in https://github.com/qmk/qmk_firmware/pull/21777#issuecomment-1922815841 +TEST_F(OsDetectionTest, TestChibiosMacM1) { + EXPECT_EQ(check_sequence({0x02, 0x32, 0x02, 0x24, 0x101, 0xFF}), OS_MACOS); + os_detection_task(); + assert_not_reported(); +} + +TEST_F(OsDetectionTest, TestChibiosMacSequoia) { + EXPECT_EQ(check_sequence({0x02, 0x4E, 0x02, 0x1C, 0x02, 0x1A, 0xFF, 0xFF}), OS_MACOS); + os_detection_task(); + assert_not_reported(); +} + +TEST_F(OsDetectionTest, TestChibiosMacSequoia2) { + EXPECT_EQ(check_sequence({0x02, 0x4E, 0x02, 0x1C, 0x02, 0x1A, 0xFF, 0x02, 0x42, 0x02, 0x1C, 0x02, 0x1A, 0xFF}), OS_MACOS); + os_detection_task(); + assert_not_reported(); +} + +TEST_F(OsDetectionTest, TestChibiosMacSequoia3) { + EXPECT_EQ(check_sequence({0x02, 0x0E, 0x02, 0x1E, 0x02, 0x42, 0xFF}), OS_MACOS); + os_detection_task(); + assert_not_reported(); +} + TEST_F(OsDetectionTest, TestLufaMacos) { EXPECT_EQ(check_sequence({0x2, 0x10, 0x2, 0xE, 0xFF}), OS_MACOS); os_detection_task(); assert_not_reported(); } +TEST_F(OsDetectionTest, TestDetectLufaMacSequoia2) { + EXPECT_EQ(check_sequence({0x02, 0x64, 0x02, 0x28, 0xFF, 0xFF}), OS_MACOS); + os_detection_task(); + assert_not_reported(); +} + TEST_F(OsDetectionTest, TestVusbMacos) { EXPECT_EQ(check_sequence({0x2, 0xE, 0x2, 0xE, 0xFF}), OS_MACOS); os_detection_task(); @@ -235,13 +289,6 @@ TEST_F(OsDetectionTest, TestVusbQuest2) { assert_not_reported(); } -// Regression reported in https://github.com/qmk/qmk_firmware/pull/21777#issuecomment-1922815841 -TEST_F(OsDetectionTest, TestDetectMacM1AsIOS) { - EXPECT_EQ(check_sequence({0x02, 0x32, 0x02, 0x24, 0x101, 0xFF}), OS_IOS); - os_detection_task(); - assert_not_reported(); -} - TEST_F(OsDetectionTest, TestDoNotReportIfUsbUnstable) { EXPECT_EQ(check_sequence({0xFF, 0xFF, 0xFF, 0xFE}), OS_LINUX); os_detection_task(); From fa98117a3e10afed347f16b2614e4e8a9e26cd32 Mon Sep 17 00:00:00 2001 From: adophoxia <100170946+adophoxia@users.noreply.github.com> Date: Wed, 29 Jan 2025 11:28:58 -0800 Subject: [PATCH 214/365] Add Keychron C3 Pro (Red & RGB) (#24874) * Add Keychron C3 Pro variants * Update to upstream standards * Apply suggestions from code review Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Ryan * Reformatted `keyboard.json` for `red`/`rgb` and `c3_pro.c` * Apply suggestions from code review Co-authored-by: Ryan * Update keyboards/keychron/c3_pro/ansi/red/config.h Co-authored-by: Daniel <1767914+iamdanielv@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Drashna Jaelre * Add C Pro V2 variants * remove boards by accident --------- Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Ryan Co-authored-by: Daniel <1767914+iamdanielv@users.noreply.github.com> Co-authored-by: Drashna Jaelre --- keyboards/keychron/c3_pro/ansi/red/config.h | 31 +++ .../keychron/c3_pro/ansi/red/keyboard.json | 242 +++++++++++++++++ .../c3_pro/ansi/red/keymaps/default/keymap.c | 60 +++++ keyboards/keychron/c3_pro/ansi/red/red.c | 132 ++++++++++ keyboards/keychron/c3_pro/ansi/rgb/config.h | 29 ++ .../keychron/c3_pro/ansi/rgb/keyboard.json | 249 ++++++++++++++++++ .../c3_pro/ansi/rgb/keymaps/default/keymap.c | 64 +++++ keyboards/keychron/c3_pro/ansi/rgb/rgb.c | 135 ++++++++++ keyboards/keychron/c3_pro/c3_pro.c | 112 ++++++++ keyboards/keychron/c3_pro/c3_pro.h | 25 ++ keyboards/keychron/c3_pro/config.h | 24 ++ keyboards/keychron/c3_pro/halconf.h | 21 ++ keyboards/keychron/c3_pro/info.json | 26 ++ keyboards/keychron/c3_pro/mcuconf.h | 28 ++ keyboards/keychron/c3_pro/readme.md | 28 ++ 15 files changed, 1206 insertions(+) create mode 100644 keyboards/keychron/c3_pro/ansi/red/config.h create mode 100644 keyboards/keychron/c3_pro/ansi/red/keyboard.json create mode 100644 keyboards/keychron/c3_pro/ansi/red/keymaps/default/keymap.c create mode 100644 keyboards/keychron/c3_pro/ansi/red/red.c create mode 100644 keyboards/keychron/c3_pro/ansi/rgb/config.h create mode 100644 keyboards/keychron/c3_pro/ansi/rgb/keyboard.json create mode 100644 keyboards/keychron/c3_pro/ansi/rgb/keymaps/default/keymap.c create mode 100644 keyboards/keychron/c3_pro/ansi/rgb/rgb.c create mode 100644 keyboards/keychron/c3_pro/c3_pro.c create mode 100644 keyboards/keychron/c3_pro/c3_pro.h create mode 100644 keyboards/keychron/c3_pro/config.h create mode 100644 keyboards/keychron/c3_pro/halconf.h create mode 100644 keyboards/keychron/c3_pro/info.json create mode 100644 keyboards/keychron/c3_pro/mcuconf.h create mode 100644 keyboards/keychron/c3_pro/readme.md diff --git a/keyboards/keychron/c3_pro/ansi/red/config.h b/keyboards/keychron/c3_pro/ansi/red/config.h new file mode 100644 index 00000000000..5af1da7f3bf --- /dev/null +++ b/keyboards/keychron/c3_pro/ansi/red/config.h @@ -0,0 +1,31 @@ +/* Copyright 2024 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Indication led */ +#define LED_MAC_OS_PIN A4 +#define LED_WIN_OS_PIN A5 +#define LED_OS_PIN_ON_STATE 1 + +/* LED Matrix Driver Configuration */ +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND + +/* Use first 7 channels of LED driver */ +#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_7_CHANNEL + +/* Set LED driver current */ +#define SNLED27351_CURRENT_TUNE { 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50 } diff --git a/keyboards/keychron/c3_pro/ansi/red/keyboard.json b/keyboards/keychron/c3_pro/ansi/red/keyboard.json new file mode 100644 index 00000000000..a759e92928b --- /dev/null +++ b/keyboards/keychron/c3_pro/ansi/red/keyboard.json @@ -0,0 +1,242 @@ + +{ + "keyboard_name": "Keychron C3 Pro Red", + "features": { + "led_matrix": true + }, + "indicators": { + "caps_lock": "A3" + }, + "led_matrix": { + "animations": { + "band_pinwheel": true, + "band_spiral": true, + "breathing": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_up_down": true, + "dual_beacon": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_simple": true, + "solid_splash": true, + "wave_left_right": true, + "wave_up_down": true + }, + "driver": "snled27351", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 26, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 39, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 52, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 65, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 97, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 123, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 143, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 156, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 182, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 224, "y": 0, "flags": 1}, + + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 13, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 117, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 130, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 156, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 175, "y": 16, "flags": 1}, + {"matrix": [1, 14], "x": 198, "y": 16, "flags": 1}, + {"matrix": [1, 15], "x": 211, "y": 16, "flags": 1}, + {"matrix": [1, 16], "x": 224, "y": 16, "flags": 1}, + + {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1}, + {"matrix": [2, 1], "x": 19, "y": 28, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 28, "flags": 4}, + {"matrix": [2, 4], "x": 58, "y": 28, "flags": 4}, + {"matrix": [2, 5], "x": 71, "y": 28, "flags": 4}, + {"matrix": [2, 6], "x": 84, "y": 28, "flags": 4}, + {"matrix": [2, 7], "x": 97, "y": 28, "flags": 4}, + {"matrix": [2, 8], "x": 110, "y": 28, "flags": 4}, + {"matrix": [2, 9], "x": 123, "y": 28, "flags": 4}, + {"matrix": [2, 10], "x": 136, "y": 28, "flags": 4}, + {"matrix": [2, 11], "x": 149, "y": 28, "flags": 4}, + {"matrix": [2, 12], "x": 162, "y": 28, "flags": 4}, + {"matrix": [2, 13], "x": 178, "y": 28, "flags": 1}, + {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1}, + {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1}, + {"matrix": [2, 16], "x": 224, "y": 28, "flags": 1}, + + {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 126, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 139, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 152, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 173, "y": 40, "flags": 1}, + + {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 170, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1}, + + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 148, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 164, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 224, "y": 64, "flags": 1}, + + {"x": 0, "y": 0, "flags": 1}, + {"x": 0, "y": 16, "flags": 1}, + {"x": 0, "y": 28, "flags": 1}, + {"x": 0, "y": 40, "flags": 1}, + {"x": 0, "y": 52, "flags": 1}, + {"x": 0, "y": 64, "flags": 1}, + {"x": 224, "y": 0, "flags": 1}, + {"x": 224, "y": 16, "flags": 1}, + {"x": 224, "y": 28, "flags": 1}, + {"x": 224, "y": 40, "flags": 1}, + {"x": 224, "y": 52, "flags": 1}, + {"x": 224, "y": 64, "flags": 1} + ], + "sleep": true + }, + "matrix_pins": { + "cols": ["C6", "C7", "C8", "A14", "A15", "C10", "C11", "C13", "C14", "C15", "C0", "C1", "C2", "C3", "A0", "A1", "A2"], + "rows": ["C12", "D2", "B3", "B4", "B5", "B6"] + }, + "usb": { + "device_version": "1.0.1", + "pid": "0x0430" + }, + "layouts": { + "LAYOUT_tkl_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/keychron/c3_pro/ansi/red/keymaps/default/keymap.c b/keyboards/keychron/c3_pro/ansi/red/keymaps/default/keymap.c new file mode 100644 index 00000000000..053ede0545e --- /dev/null +++ b/keyboards/keychron/c3_pro/ansi/red/keymaps/default/keymap.c @@ -0,0 +1,60 @@ +/* Copyright 2024 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN, +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_tkl_ansi( + KC_ESC, KC_BRID, KC_BRIU, _______, _______, LM_BRID, LM_BRIU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_TRNS, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MAC_FN),KC_TRNS, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_tkl_ansi( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, BL_STEP, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_TOGG, BL_STEP, LM_BRIU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_OSSW, _______, LM_BRID, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT_tkl_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_tkl_ansi( + _______, KC_BRID, KC_BRIU, _______, _______, LM_BRID, LM_BRIU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, BL_STEP, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_TOGG, BL_STEP, LM_BRIU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_OSSW, _______, LM_BRID, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; + diff --git a/keyboards/keychron/c3_pro/ansi/red/red.c b/keyboards/keychron/c3_pro/ansi/red/red.c new file mode 100644 index 00000000000..faf79e0cac9 --- /dev/null +++ b/keyboards/keychron/c3_pro/ansi/red/red.c @@ -0,0 +1,132 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef LED_MATRIX_ENABLE +// clang-format off +const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations + * driver + * | LED address + * | | */ + {0, CB6_CA1}, + {0, CB6_CA3}, + {0, CB6_CA4}, + {0, CB6_CA5}, + {0, CB6_CA6}, + {0, CB6_CA7}, + {0, CB6_CA8}, + {0, CB6_CA9}, + {0, CB6_CA10}, + {0, CB6_CA11}, + {0, CB6_CA12}, + {0, CB6_CA13}, + {0, CB6_CA14}, + {0, CB6_CA15}, + {0, CB6_CA16}, + {0, CB3_CA13}, + + {0, CB5_CA1}, + {0, CB5_CA2}, + {0, CB5_CA3}, + {0, CB5_CA4}, + {0, CB5_CA5}, + {0, CB5_CA6}, + {0, CB5_CA7}, + {0, CB5_CA8}, + {0, CB5_CA9}, + {0, CB5_CA10}, + {0, CB5_CA11}, + {0, CB5_CA12}, + {0, CB5_CA13}, + {0, CB5_CA14}, + {0, CB5_CA15}, + {0, CB5_CA16}, + {0, CB3_CA15}, + + {0, CB4_CA1}, + {0, CB4_CA2}, + {0, CB4_CA3}, + {0, CB4_CA4}, + {0, CB4_CA5}, + {0, CB4_CA6}, + {0, CB4_CA7}, + {0, CB4_CA8}, + {0, CB4_CA9}, + {0, CB4_CA10}, + {0, CB4_CA11}, + {0, CB4_CA12}, + {0, CB4_CA13}, + {0, CB4_CA14}, + {0, CB4_CA15}, + {0, CB4_CA16}, + {0, CB3_CA16}, + + {0, CB3_CA1}, + {0, CB3_CA2}, + {0, CB3_CA3}, + {0, CB3_CA4}, + {0, CB3_CA5}, + {0, CB3_CA6}, + {0, CB3_CA7}, + {0, CB3_CA8}, + {0, CB3_CA9}, + {0, CB3_CA10}, + {0, CB3_CA11}, + {0, CB3_CA12}, + {0, CB3_CA14}, + + {0, CB2_CA1}, + {0, CB2_CA3}, + {0, CB2_CA4}, + {0, CB2_CA5}, + {0, CB2_CA6}, + {0, CB2_CA7}, + {0, CB2_CA8}, + {0, CB2_CA9}, + {0, CB2_CA10}, + {0, CB2_CA11}, + {0, CB2_CA12}, + {0, CB2_CA14}, + {0, CB2_CA16}, + + {0, CB1_CA1}, + {0, CB1_CA2}, + {0, CB1_CA3}, + {0, CB1_CA7}, + {0, CB1_CA11}, + {0, CB1_CA12}, + {0, CB1_CA13}, + {0, CB1_CA14}, + {0, CB1_CA15}, + {0, CB1_CA16}, + {0, CB2_CA15}, + + {0, CB7_CA1}, + {0, CB7_CA2}, + {0, CB7_CA3}, + {0, CB7_CA4}, + {0, CB7_CA5}, + {0, CB7_CA6}, + {0, CB7_CA12}, + {0, CB7_CA11}, + {0, CB7_CA10}, + {0, CB7_CA9}, + {0, CB7_CA8}, + {0, CB7_CA7}, +}; +#endif diff --git a/keyboards/keychron/c3_pro/ansi/rgb/config.h b/keyboards/keychron/c3_pro/ansi/rgb/config.h new file mode 100644 index 00000000000..19054e4773d --- /dev/null +++ b/keyboards/keychron/c3_pro/ansi/rgb/config.h @@ -0,0 +1,29 @@ +/* Copyright 2024 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Enable indicator LED*/ +#define LED_MAC_OS_PIN A6 +#define LED_WIN_OS_PIN A7 +#define LED_OS_PIN_ON_STATE 1 + +/* RGB Matrix Driver Configuration */ +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND + +/* Set LED driver current */ +#define SNLED27351_CURRENT_TUNE { 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30 } diff --git a/keyboards/keychron/c3_pro/ansi/rgb/keyboard.json b/keyboards/keychron/c3_pro/ansi/rgb/keyboard.json new file mode 100644 index 00000000000..ca6f1abf088 --- /dev/null +++ b/keyboards/keychron/c3_pro/ansi/rgb/keyboard.json @@ -0,0 +1,249 @@ +{ + "keyboard_name": "Keychron C3 Pro RGB", + "features": { + "rgb_matrix": true + }, + "indicators": { + "caps_lock": "A5" + }, + "matrix_pins": { + "cols": ["C6", "C7", "C8", "A14", "B7", "C13", "C14", "C15", "C0", "C1", "C2", "C3", "A0", "A1", "A2", "A3", "A4"], + "rows": ["C12", "D2", "B3", "B4", "B5", "B6"] + }, + "rgb_matrix": { + "animations": { + "band_spiral_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "jellybean_raindrops": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_simple": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "driver": "snled27351", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 20, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 30, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 40, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 50, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 65, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 75, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 85, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 95, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 120, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 130, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 140, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 155, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 165, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 175, "y": 0, "flags": 1}, + + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 20, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 30, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 40, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 50, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 60, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 70, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 80, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 90, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 100, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 110, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 120, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 135, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 155, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 165, "y": 15, "flags": 1}, + {"matrix": [1, 16], "x": 175, "y": 15, "flags": 1}, + + {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, + {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4}, + {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4}, + {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4}, + {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4}, + {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4}, + {"matrix": [2, 13], "x": 143, "y": 27, "flags": 4}, + {"matrix": [2, 14], "x": 155, "y": 27, "flags": 1}, + {"matrix": [2, 15], "x": 165, "y": 27, "flags": 1}, + {"matrix": [2, 16], "x": 175, "y": 27, "flags": 1}, + + {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 143, "y": 40, "flags": 4}, + + {"matrix": [4, 0], "x": 7, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 165, "y": 52, "flags": 1}, + + {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 67, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 104, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 116, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 128, "y": 64, "flags": 4}, + {"matrix": [5, 13], "x": 140, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 155, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 165, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 175, "y": 64, "flags": 1}, + + {"x": 0, "y": 0, "flags": 1}, + {"x": 0, "y": 16, "flags": 1}, + {"x": 0, "y": 28, "flags": 1}, + {"x": 0, "y": 40, "flags": 1}, + {"x": 0, "y": 52, "flags": 1}, + {"x": 0, "y": 64, "flags": 1}, + {"x": 224, "y": 0, "flags": 1}, + {"x": 224, "y": 16, "flags": 1}, + {"x": 224, "y": 28, "flags": 1}, + {"x": 224, "y": 40, "flags": 1}, + {"x": 224, "y": 52, "flags": 1}, + {"x": 224, "y": 64, "flags": 1} + ], + "sleep": true + }, + "usb": { + "device_version": "1.0.1", + "pid": "0x0433" + }, + "layouts": { + "LAYOUT_tkl_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 3, "y": 0}, + {"matrix": [0, 3], "x": 4, "y": 0}, + {"matrix": [0, 4], "x": 5, "y": 0}, + {"matrix": [0, 5], "x": 6.5, "y": 0}, + {"matrix": [0, 6], "x": 7.5, "y": 0}, + {"matrix": [0, 7], "x": 8.5, "y": 0}, + {"matrix": [0, 8], "x": 9.5, "y": 0}, + {"matrix": [0, 9], "x": 10, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/keychron/c3_pro/ansi/rgb/keymaps/default/keymap.c b/keyboards/keychron/c3_pro/ansi/rgb/keymaps/default/keymap.c new file mode 100644 index 00000000000..27b5a7fb07b --- /dev/null +++ b/keyboards/keychron/c3_pro/ansi/rgb/keymaps/default/keymap.c @@ -0,0 +1,64 @@ +/* Copyright 2024 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN, +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_tkl_ansi( + KC_ESC, KC_BRID, KC_BRIU, _______, _______, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_TRNS, RM_NEXT, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MAC_FN), KC_APP, KC_RCTL,KC_LEFT, KC_DOWN, KC_RGHT ), + + [MAC_FN] = LAYOUT_tkl_ansi( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_OSSW, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), + + [WIN_BASE] = LAYOUT_tkl_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,KC_SCROLL_LOCK,KC_PAUSE, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_APP, KC_RCTL,KC_LEFT, KC_DOWN, KC_RGHT ), + + [WIN_FN] = LAYOUT_tkl_ansi( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_NEXT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_OSSW, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), +}; diff --git a/keyboards/keychron/c3_pro/ansi/rgb/rgb.c b/keyboards/keychron/c3_pro/ansi/rgb/rgb.c new file mode 100644 index 00000000000..8ec1995a097 --- /dev/null +++ b/keyboards/keychron/c3_pro/ansi/rgb/rgb.c @@ -0,0 +1,135 @@ +/* Copyright 2024 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE +// clang-format off +const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations + + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, CB7_CA1, CB9_CA1, CB8_CA1}, + {0, CB7_CA3, CB9_CA3, CB8_CA3}, + {0, CB7_CA4, CB9_CA4, CB8_CA4}, + {0, CB7_CA5, CB9_CA5, CB8_CA5}, + {0, CB7_CA6, CB9_CA6, CB8_CA6}, + {0, CB7_CA7, CB9_CA7, CB8_CA7}, + {0, CB7_CA8, CB9_CA8, CB8_CA8}, + {0, CB7_CA9, CB9_CA9, CB8_CA9}, + {0, CB7_CA10, CB9_CA10, CB8_CA10}, + {0, CB7_CA11, CB9_CA11, CB8_CA11}, + {0, CB7_CA12, CB9_CA12, CB8_CA12}, + {0, CB7_CA13, CB9_CA13, CB8_CA13}, + {0, CB7_CA14, CB9_CA14, CB8_CA14}, + {0, CB7_CA15, CB9_CA15, CB8_CA15}, + {0, CB7_CA16, CB9_CA16, CB8_CA16}, + {1, CB7_CA16, CB9_CA16, CB8_CA16}, + + {0, CB4_CA1, CB6_CA1, CB5_CA1}, + {0, CB4_CA2, CB6_CA2, CB5_CA2}, + {0, CB4_CA3, CB6_CA3, CB5_CA3}, + {0, CB4_CA4, CB6_CA4, CB5_CA4}, + {0, CB4_CA5, CB6_CA5, CB5_CA5}, + {0, CB4_CA6, CB6_CA6, CB5_CA6}, + {0, CB4_CA7, CB6_CA7, CB5_CA7}, + {0, CB4_CA8, CB6_CA8, CB5_CA8}, + {0, CB4_CA9, CB6_CA9, CB5_CA9}, + {0, CB4_CA10, CB6_CA10, CB5_CA10}, + {0, CB4_CA11, CB6_CA11, CB5_CA11}, + {0, CB4_CA12, CB6_CA12, CB5_CA12}, + {0, CB4_CA13, CB6_CA13, CB5_CA13}, + {0, CB4_CA14, CB6_CA14, CB5_CA14}, + {0, CB4_CA15, CB6_CA15, CB5_CA15}, + {0, CB4_CA16, CB6_CA16, CB5_CA16}, + {1, CB7_CA13, CB9_CA13, CB8_CA13}, + + {0, CB1_CA1, CB3_CA1, CB2_CA1}, + {0, CB1_CA2, CB3_CA2, CB2_CA2}, + {0, CB1_CA3, CB3_CA3, CB2_CA3}, + {0, CB1_CA4, CB3_CA4, CB2_CA4}, + {0, CB1_CA5, CB3_CA5, CB2_CA5}, + {0, CB1_CA6, CB3_CA6, CB2_CA6}, + {0, CB1_CA7, CB3_CA7, CB2_CA7}, + {0, CB1_CA8, CB3_CA8, CB2_CA8}, + {0, CB1_CA9, CB3_CA9, CB2_CA9}, + {0, CB1_CA10, CB3_CA10, CB2_CA10}, + {0, CB1_CA11, CB3_CA11, CB2_CA11}, + {0, CB1_CA12, CB3_CA12, CB2_CA12}, + {0, CB1_CA13, CB3_CA13, CB2_CA13}, + {0, CB1_CA14, CB3_CA14, CB2_CA14}, + {0, CB1_CA15, CB3_CA15, CB2_CA15}, + {0, CB1_CA16, CB3_CA16, CB2_CA16}, + {1, CB7_CA15, CB9_CA15, CB8_CA15}, + + {1, CB7_CA1, CB9_CA1, CB8_CA1}, + {1, CB7_CA2, CB9_CA2, CB8_CA2}, + {1, CB7_CA3, CB9_CA3, CB8_CA3}, + {1, CB7_CA4, CB9_CA4, CB8_CA4}, + {1, CB7_CA5, CB9_CA5, CB8_CA5}, + {1, CB7_CA6, CB9_CA6, CB8_CA6}, + {1, CB7_CA7, CB9_CA7, CB8_CA7}, + {1, CB7_CA8, CB9_CA8, CB8_CA8}, + {1, CB7_CA9, CB9_CA9, CB8_CA9}, + {1, CB7_CA10, CB9_CA10, CB8_CA10}, + {1, CB7_CA11, CB9_CA11, CB8_CA11}, + {1, CB7_CA12, CB9_CA12, CB8_CA12}, + {1, CB7_CA14, CB9_CA14, CB8_CA14}, + + {1, CB1_CA1, CB3_CA1, CB2_CA1}, + {1, CB1_CA3, CB3_CA3, CB2_CA3}, + {1, CB1_CA4, CB3_CA4, CB2_CA4}, + {1, CB1_CA5, CB3_CA5, CB2_CA5}, + {1, CB1_CA6, CB3_CA6, CB2_CA6}, + {1, CB1_CA7, CB3_CA7, CB2_CA7}, + {1, CB1_CA8, CB3_CA8, CB2_CA8}, + {1, CB1_CA9, CB3_CA9, CB2_CA9}, + {1, CB1_CA10, CB3_CA10, CB2_CA10}, + {1, CB1_CA11, CB3_CA11, CB2_CA11}, + {1, CB1_CA12, CB3_CA12, CB2_CA12}, + {1, CB1_CA14, CB3_CA14, CB2_CA14}, + {1, CB1_CA16, CB3_CA16, CB2_CA16}, + + {1, CB4_CA1, CB6_CA1, CB5_CA1}, + {1, CB4_CA2, CB6_CA2, CB5_CA2}, + {1, CB4_CA3, CB6_CA3, CB5_CA3}, + {1, CB4_CA7, CB6_CA7, CB5_CA7}, + {1, CB4_CA11, CB6_CA11, CB5_CA11}, + {1, CB4_CA12, CB6_CA12, CB5_CA12}, + {1, CB4_CA13, CB6_CA13, CB5_CA13}, + {1, CB4_CA14, CB6_CA14, CB5_CA14}, + {1, CB4_CA15, CB6_CA15, CB5_CA15}, + {1, CB4_CA16, CB6_CA16, CB5_CA16}, + {1, CB1_CA15, CB3_CA15, CB2_CA15}, + + {0, CB10_CA1, CB12_CA1, CB11_CA1}, + {0, CB10_CA2, CB12_CA2, CB11_CA2}, + {0, CB10_CA3, CB12_CA3, CB11_CA3}, + {0, CB10_CA4, CB12_CA4, CB11_CA4}, + {0, CB10_CA5, CB12_CA5, CB11_CA5}, + {0, CB10_CA6, CB12_CA6, CB11_CA6}, + {0, CB10_CA7, CB12_CA7, CB11_CA7}, + {0, CB10_CA8, CB12_CA8, CB11_CA8}, + {0, CB10_CA9, CB12_CA9, CB11_CA9}, + {0, CB10_CA10, CB12_CA10, CB11_CA10}, + {0, CB10_CA11, CB12_CA11, CB11_CA11}, + {0, CB10_CA12, CB12_CA12, CB11_CA12}, +}; +#endif diff --git a/keyboards/keychron/c3_pro/c3_pro.c b/keyboards/keychron/c3_pro/c3_pro.c new file mode 100644 index 00000000000..905eb86f5a3 --- /dev/null +++ b/keyboards/keychron/c3_pro/c3_pro.c @@ -0,0 +1,112 @@ +/* Copyright 2024 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "c3_pro.h" + +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 QK_RGB_MATRIX_TOGGLE: + 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; + } + } + if (!rgb_matrix_is_enabled()) { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable(); + } + return false; +#endif +#ifdef LED_MATRIX_ENABLE + case QK_LED_MATRIX_TOGGLE: + if (record->event.pressed) { + switch (led_matrix_get_flags()) { + case LED_FLAG_ALL: { + led_matrix_set_flags(LED_FLAG_NONE); + led_matrix_set_value_all(0); + } break; + default: { + led_matrix_set_flags(LED_FLAG_ALL); + } break; + } + } + if (!led_matrix_is_enabled()) { + led_matrix_set_flags(LED_FLAG_ALL); + led_matrix_enable(); + } + return false; +#endif + case KC_OSSW: + if (record->event.pressed) { + default_layer_xor(1U << 0); + default_layer_xor(1U << 2); + eeconfig_update_default_layer(default_layer_state); + } + return false; + default: + return true; + } +} + +#if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) + +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { + return false; + } + // RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue); + + if (host_keyboard_led_state().caps_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_LED_INDEX, 255, 255, 255); + } else { + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_LED_INDEX, 0, 0, 0); + } + } + return true; +} + +#endif // RGB_MATRIX_ENABLE && CAPS_LOCK_LED_INDEX + +#if defined(LED_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) + +bool led_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!led_matrix_indicators_advanced_user(led_min, led_max)) { + return false; + } + + if (host_keyboard_led_state().caps_lock) { + led_matrix_set_value(CAPS_LOCK_LED_INDEX, 255); + + } else { + if (!led_matrix_get_flags()) { + led_matrix_set_value(CAPS_LOCK_LED_INDEX, 0); + } + } + return true; +} + +#endif // LED_MATRIX_ENABLE && CAPS_LOCK_LED_INDEX diff --git a/keyboards/keychron/c3_pro/c3_pro.h b/keyboards/keychron/c3_pro/c3_pro.h new file mode 100644 index 00000000000..689e0616578 --- /dev/null +++ b/keyboards/keychron/c3_pro/c3_pro.h @@ -0,0 +1,25 @@ +/* Copyright 2024 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +enum my_keycodes { + KC_OS_SWITCH = QK_KB_11, +}; + +#define KC_OSSW KC_OS_SWITCH diff --git a/keyboards/keychron/c3_pro/config.h b/keyboards/keychron/c3_pro/config.h new file mode 100644 index 00000000000..f5e7e859697 --- /dev/null +++ b/keyboards/keychron/c3_pro/config.h @@ -0,0 +1,24 @@ +/* Copyright 2024 @ Keychron(https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* I2C driver Configuration */ +#define I2C1_SCL_PIN B8 +#define I2C1_SDA_PIN B9 +#define I2C1_CLOCK_SPEED 400000 +#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 + diff --git a/keyboards/keychron/c3_pro/halconf.h b/keyboards/keychron/c3_pro/halconf.h new file mode 100644 index 00000000000..093e4254c34 --- /dev/null +++ b/keyboards/keychron/c3_pro/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2024 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/keychron/c3_pro/info.json b/keyboards/keychron/c3_pro/info.json new file mode 100644 index 00000000000..2bcd155c1bf --- /dev/null +++ b/keyboards/keychron/c3_pro/info.json @@ -0,0 +1,26 @@ +{ + "manufacturer": "Keychron", + "maintainer": "Joe", + "bootloader": "stm32-dfu", + "community_layouts": ["tkl_ansi"], + "diode_direction": "ROW2COL", + "eeprom": { + "wear_leveling": { + "backing_size": 4096 + } + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "processor": "STM32F401", + "url": "https://github.com/Keychron", + "usb": { + "device_version": "1.0.1", + "vid": "0x3434" + } +} diff --git a/keyboards/keychron/c3_pro/mcuconf.h b/keyboards/keychron/c3_pro/mcuconf.h new file mode 100644 index 00000000000..b2b81df8551 --- /dev/null +++ b/keyboards/keychron/c3_pro/mcuconf.h @@ -0,0 +1,28 @@ +/* Copyright 2024 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000U + +#undef STM32_PLLM_VALUE +#define STM32_PLLM_VALUE 8 + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/keychron/c3_pro/readme.md b/keyboards/keychron/c3_pro/readme.md new file mode 100644 index 00000000000..ae2deb45a73 --- /dev/null +++ b/keyboards/keychron/c3_pro/readme.md @@ -0,0 +1,28 @@ +# Keychron C3 Pro + +![Keychron C3 Pro](https://i.imgur.com/b4FTJsf.jpg) + +A customizable 87% keyboard. + +* Keyboard Maintainer: [Keychron](https://github.com/keychron) +* Hardware Supported: Keychron C3 Pro +* Hardware Availability: [Keychron](https://www.keychron.com/) + +Make example for this keyboard (after setting up your build environment): + + make keychron/c3_pro/ansi/red:default + make keychron/c3_pro/ansi/rgb:default + +Flashing example for this keyboard: + + make keychron/c3_pro/ansi/red:default:flash + make keychron/c3_pro/ansi/rgb:default:flash + +## bootloader + +Enter the bootloader in two ways: + +* **Bootmagic reset**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. +* **Physical reset button**: Briefly press the RESET button under the spacebar. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). From 273d8d6a1a6badb8d9b473954f16a0fbbe671987 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 1 Feb 2025 21:19:30 +1100 Subject: [PATCH 215/365] `qmk docs`: restore `--port` and `--browser` arguments (#24623) * `qmk docs`: restore `--port` and `--browser` arguments * Make docs command args always a list --- docs/cli_commands.md | 15 +++++++++------ docs/contributing.md | 4 ++-- lib/python/qmk/cli/docs.py | 9 ++++++--- lib/python/qmk/cli/generate/docs.py | 6 ++---- lib/python/qmk/docs.py | 8 ++++---- 5 files changed, 23 insertions(+), 19 deletions(-) diff --git a/docs/cli_commands.md b/docs/cli_commands.md index 4cd5ae98c39..d17b0eda237 100644 --- a/docs/cli_commands.md +++ b/docs/cli_commands.md @@ -723,23 +723,26 @@ Now open your dev environment and live a squiggly-free life. ## `qmk docs` -This command starts a local HTTP server which you can use for browsing or improving the docs. Default port is 5173. +This command starts a local HTTP server which you can use for browsing or improving the docs, and provides live reload capability whilst editing. Default port is 8936. +Use the `-b`/`--browser` flag to automatically open the local webserver in your default browser. -This command requires `node` and `yarn` to be installed as prerequisites, and provides live reload capability whilst editing. +Requires `node` and `yarn` to be installed as prerequisites. **Usage**: ``` -usage: qmk docs [-h] +usage: qmk docs [-h] [-b] [-p PORT] options: - -h, --help show this help message and exit + -h, --help show this help message and exit + -b, --browser Open the docs in the default browser. + -p, --port PORT Port number to use. ``` ## `qmk generate-docs` -This command allows you to generate QMK documentation locally. It can be uses for general browsing or improving the docs. -Use the `-s`/`--serve` flag to also serve the static site once built. Default port is 4173. +This command generates QMK documentation for production. +Use the `-s`/`--serve` flag to also serve the static site on port 4173 once built. Note that this does not provide live reloading; use `qmk docs` instead for development purposes. This command requires `node` and `yarn` to be installed as prerequisites, and requires the operating system to support symlinks. diff --git a/docs/contributing.md b/docs/contributing.md index bbb1997a6f6..70a00b706d7 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -106,10 +106,10 @@ enum my_keycodes { Before opening a pull request, you can preview your changes if you have set up the development environment by running this command from the `qmk_firmware/` folder: ``` -qmk docs +qmk docs -b ``` -and navigating to `http://localhost:5173/`. +Which should automatically open your browser; otherwise, navigate to `http://localhost:8936/`. ## Keyboards diff --git a/lib/python/qmk/cli/docs.py b/lib/python/qmk/cli/docs.py index d28dddf194e..da02ebf95e3 100644 --- a/lib/python/qmk/cli/docs.py +++ b/lib/python/qmk/cli/docs.py @@ -6,6 +6,8 @@ from qmk.docs import prepare_docs_build_area, run_docs_command from milc import cli +@cli.argument('-p', '--port', default=8936, type=int, help='Port number to use.') +@cli.argument('-b', '--browser', action='store_true', help='Open the docs in the default browser.') @cli.subcommand('Run a local webserver for QMK documentation.', hidden=False if cli.config.user.developer else True) def docs(cli): """Spin up a local HTTP server for the QMK docs. @@ -22,6 +24,7 @@ def docs(cli): if not prepare_docs_build_area(is_production=False): return False - if not cli.config.general.verbose: - cli.log.info('Serving docs at http://localhost:5173/ (Ctrl+C to stop)') - run_docs_command('run', 'docs:dev') + cmd = ['docs:dev', '--port', f'{cli.args.port}'] + if cli.args.browser: + cmd.append('--open') + run_docs_command('run', cmd) diff --git a/lib/python/qmk/cli/generate/docs.py b/lib/python/qmk/cli/generate/docs.py index 5821d43b869..7abeca9d2ab 100644 --- a/lib/python/qmk/cli/generate/docs.py +++ b/lib/python/qmk/cli/generate/docs.py @@ -27,10 +27,8 @@ def generate_docs(cli): return False cli.log.info('Building vitepress docs') - run_docs_command('run', 'docs:build') + run_docs_command('run', ['docs:build']) cli.log.info('Successfully generated docs to %s.', BUILD_DOCS_PATH) if cli.args.serve: - if not cli.config.general.verbose: - cli.log.info('Serving docs at http://localhost:4173/ (Ctrl+C to stop)') - run_docs_command('run', 'docs:preview') + run_docs_command('run', ['docs:preview']) diff --git a/lib/python/qmk/docs.py b/lib/python/qmk/docs.py index 56694cf6aeb..75d2d60bda1 100644 --- a/lib/python/qmk/docs.py +++ b/lib/python/qmk/docs.py @@ -17,18 +17,18 @@ BUILD_DOCS_PATH = BUILD_PATH / 'docs' DOXYGEN_PATH = BUILD_DOCS_PATH / 'static' / 'doxygen' -def run_docs_command(verb, cmd=None): +def run_docs_command(verb, cmd_args=None): environ['PATH'] += pathsep + str(NODE_MODULES_PATH / '.bin') - args = {'capture_output': False if cli.config.general.verbose else True, 'check': True, 'stdin': DEVNULL} + args = {'capture_output': False, 'check': True} docs_env = environ.copy() if cli.config.general.verbose: docs_env['DEBUG'] = 'vitepress:*,vite:*' args['env'] = docs_env arg_list = ['yarn', verb] - if cmd: - arg_list.append(cmd) + if cmd_args: + arg_list.extend(cmd_args) chdir(BUILDDEFS_PATH) cli.run(arg_list, **args) From 7fe168a8ed1577be2f75ec0f0a43a3997a7df199 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Fri, 7 Feb 2025 00:10:45 -0800 Subject: [PATCH 216/365] [Keyboard] Move Ergodox STM32 to handwired folder (#24903) * [Keyboard] Move Erogdox STM32 to handwired folder To minimize confusion with ZSA's ergodox EZ ST (stm32f303) and because this is basically a one-off board * Don't forget mapping * Fix readme --- data/mappings/keyboard_aliases.hjson | 3 +++ keyboards/{ => handwired}/ergodox_stm32/board.h | 0 keyboards/{ => handwired}/ergodox_stm32/chconf.h | 0 keyboards/{ => handwired}/ergodox_stm32/config.h | 0 keyboards/{ => handwired}/ergodox_stm32/ergodox_stm32.c | 0 keyboards/{ => handwired}/ergodox_stm32/ergodox_stm32.h | 0 keyboards/{ => handwired}/ergodox_stm32/halconf.h | 0 keyboards/{ => handwired}/ergodox_stm32/keyboard.json | 0 .../{ => handwired}/ergodox_stm32/keymaps/default/keymap.c | 0 .../{ => handwired}/ergodox_stm32/ld/stm32f103_bootloader.ld | 0 keyboards/{ => handwired}/ergodox_stm32/matrix.c | 0 keyboards/{ => handwired}/ergodox_stm32/mcuconf.h | 0 keyboards/{ => handwired}/ergodox_stm32/readme.md | 2 +- keyboards/{ => handwired}/ergodox_stm32/rules.mk | 0 14 files changed, 4 insertions(+), 1 deletion(-) rename keyboards/{ => handwired}/ergodox_stm32/board.h (100%) rename keyboards/{ => handwired}/ergodox_stm32/chconf.h (100%) rename keyboards/{ => handwired}/ergodox_stm32/config.h (100%) rename keyboards/{ => handwired}/ergodox_stm32/ergodox_stm32.c (100%) rename keyboards/{ => handwired}/ergodox_stm32/ergodox_stm32.h (100%) rename keyboards/{ => handwired}/ergodox_stm32/halconf.h (100%) rename keyboards/{ => handwired}/ergodox_stm32/keyboard.json (100%) rename keyboards/{ => handwired}/ergodox_stm32/keymaps/default/keymap.c (100%) rename keyboards/{ => handwired}/ergodox_stm32/ld/stm32f103_bootloader.ld (100%) rename keyboards/{ => handwired}/ergodox_stm32/matrix.c (100%) rename keyboards/{ => handwired}/ergodox_stm32/mcuconf.h (100%) rename keyboards/{ => handwired}/ergodox_stm32/readme.md (91%) rename keyboards/{ => handwired}/ergodox_stm32/rules.mk (100%) diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index 760e54b889a..d03ff33f2c1 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -197,6 +197,9 @@ "ergodone": { "target": "ktec/ergodone" }, + "ergodox_stm32": { + "target": "handwired/ergodox_stm32" + }, "ergoinu": { "target": "dm9records/ergoinu" }, diff --git a/keyboards/ergodox_stm32/board.h b/keyboards/handwired/ergodox_stm32/board.h similarity index 100% rename from keyboards/ergodox_stm32/board.h rename to keyboards/handwired/ergodox_stm32/board.h diff --git a/keyboards/ergodox_stm32/chconf.h b/keyboards/handwired/ergodox_stm32/chconf.h similarity index 100% rename from keyboards/ergodox_stm32/chconf.h rename to keyboards/handwired/ergodox_stm32/chconf.h diff --git a/keyboards/ergodox_stm32/config.h b/keyboards/handwired/ergodox_stm32/config.h similarity index 100% rename from keyboards/ergodox_stm32/config.h rename to keyboards/handwired/ergodox_stm32/config.h diff --git a/keyboards/ergodox_stm32/ergodox_stm32.c b/keyboards/handwired/ergodox_stm32/ergodox_stm32.c similarity index 100% rename from keyboards/ergodox_stm32/ergodox_stm32.c rename to keyboards/handwired/ergodox_stm32/ergodox_stm32.c diff --git a/keyboards/ergodox_stm32/ergodox_stm32.h b/keyboards/handwired/ergodox_stm32/ergodox_stm32.h similarity index 100% rename from keyboards/ergodox_stm32/ergodox_stm32.h rename to keyboards/handwired/ergodox_stm32/ergodox_stm32.h diff --git a/keyboards/ergodox_stm32/halconf.h b/keyboards/handwired/ergodox_stm32/halconf.h similarity index 100% rename from keyboards/ergodox_stm32/halconf.h rename to keyboards/handwired/ergodox_stm32/halconf.h diff --git a/keyboards/ergodox_stm32/keyboard.json b/keyboards/handwired/ergodox_stm32/keyboard.json similarity index 100% rename from keyboards/ergodox_stm32/keyboard.json rename to keyboards/handwired/ergodox_stm32/keyboard.json diff --git a/keyboards/ergodox_stm32/keymaps/default/keymap.c b/keyboards/handwired/ergodox_stm32/keymaps/default/keymap.c similarity index 100% rename from keyboards/ergodox_stm32/keymaps/default/keymap.c rename to keyboards/handwired/ergodox_stm32/keymaps/default/keymap.c diff --git a/keyboards/ergodox_stm32/ld/stm32f103_bootloader.ld b/keyboards/handwired/ergodox_stm32/ld/stm32f103_bootloader.ld similarity index 100% rename from keyboards/ergodox_stm32/ld/stm32f103_bootloader.ld rename to keyboards/handwired/ergodox_stm32/ld/stm32f103_bootloader.ld diff --git a/keyboards/ergodox_stm32/matrix.c b/keyboards/handwired/ergodox_stm32/matrix.c similarity index 100% rename from keyboards/ergodox_stm32/matrix.c rename to keyboards/handwired/ergodox_stm32/matrix.c diff --git a/keyboards/ergodox_stm32/mcuconf.h b/keyboards/handwired/ergodox_stm32/mcuconf.h similarity index 100% rename from keyboards/ergodox_stm32/mcuconf.h rename to keyboards/handwired/ergodox_stm32/mcuconf.h diff --git a/keyboards/ergodox_stm32/readme.md b/keyboards/handwired/ergodox_stm32/readme.md similarity index 91% rename from keyboards/ergodox_stm32/readme.md rename to keyboards/handwired/ergodox_stm32/readme.md index f8b9c4c553e..84accbb5fe6 100644 --- a/keyboards/ergodox_stm32/readme.md +++ b/keyboards/handwired/ergodox_stm32/readme.md @@ -4,6 +4,6 @@ Make example for this keyboard (after setting up your build environment): - make ergodox_stm32:default + make handwired/ergodox_stm32:default See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/ergodox_stm32/rules.mk b/keyboards/handwired/ergodox_stm32/rules.mk similarity index 100% rename from keyboards/ergodox_stm32/rules.mk rename to keyboards/handwired/ergodox_stm32/rules.mk From 2699e2f7c826b0288c3dddcd86a97811726cf6a4 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sat, 8 Feb 2025 12:17:35 +0000 Subject: [PATCH 217/365] Avoid WindowsPath errors for 'qmk format-text' (#24905) --- lib/python/qmk/cli/format/text.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/python/qmk/cli/format/text.py b/lib/python/qmk/cli/format/text.py index 6dd45118965..344631081b4 100644 --- a/lib/python/qmk/cli/format/text.py +++ b/lib/python/qmk/cli/format/text.py @@ -18,7 +18,7 @@ def _get_chunks(it, size): def dos2unix_run(files): """Spawn multiple dos2unix subprocess avoiding too long commands on formatting everything """ - for chunk in _get_chunks(files, 10): + for chunk in _get_chunks([normpath(file).as_posix() for file in files], 10): dos2unix = cli.run(['dos2unix', *chunk]) if dos2unix.returncode: From 37e234252e70957725734221d829ffd814a2ae72 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 12 Feb 2025 17:16:27 +0000 Subject: [PATCH 218/365] Extend lint to reject 'blank' files (#23994) --- lib/python/qmk/c_parse.py | 6 +- lib/python/qmk/cli/lint.py | 112 +++++++++++++++++++++++++++---------- 2 files changed, 84 insertions(+), 34 deletions(-) diff --git a/lib/python/qmk/c_parse.py b/lib/python/qmk/c_parse.py index 08d23cf5ba9..785b9404562 100644 --- a/lib/python/qmk/c_parse.py +++ b/lib/python/qmk/c_parse.py @@ -24,7 +24,7 @@ def _get_chunks(it, size): return iter(lambda: tuple(islice(it, size)), ()) -def _preprocess_c_file(file): +def preprocess_c_file(file): """Load file and strip comments """ file_contents = file.read_text(encoding='utf-8') @@ -66,7 +66,7 @@ def find_layouts(file): parsed_layouts = {} # Search the file for LAYOUT macros and aliases - file_contents = _preprocess_c_file(file) + file_contents = preprocess_c_file(file) for line in file_contents.split('\n'): if layout_macro_define_regex.match(line.lstrip()) and '(' in line and 'LAYOUT' in line: @@ -248,7 +248,7 @@ def _parse_led_config(file, matrix_cols, matrix_rows): current_row_index = 0 current_row = [] - for _type, value in lex(_preprocess_c_file(file), CLexer()): + for _type, value in lex(preprocess_c_file(file), CLexer()): if not found_g_led_config: # Check for type if value == 'led_config_t': diff --git a/lib/python/qmk/cli/lint.py b/lib/python/qmk/cli/lint.py index efb29704ae3..d82be8b2d0a 100644 --- a/lib/python/qmk/cli/lint.py +++ b/lib/python/qmk/cli/lint.py @@ -10,7 +10,7 @@ from qmk.keyboard import keyboard_completer, keyboard_folder_or_all, is_all_keyb from qmk.keymap import locate_keymap, list_keymaps from qmk.path import keyboard from qmk.git import git_get_ignored_files -from qmk.c_parse import c_source_files +from qmk.c_parse import c_source_files, preprocess_c_file CHIBIOS_CONF_CHECKS = ['chconf.h', 'halconf.h', 'mcuconf.h', 'board.h'] INVALID_KB_FEATURES = set(['encoder_map', 'dip_switch_map', 'combo', 'tap_dance', 'via']) @@ -33,12 +33,42 @@ def _list_defaultish_keymaps(kb): return keymaps +def _get_build_files(kb, km=None): + """Return potential keyboard/keymap build files + """ + search_path = locate_keymap(kb, km).parent if km else keyboard(kb) + + build_files = [] + + if not km: + current_path = Path() + for path_part in search_path.parts: + current_path = current_path / path_part + build_files.extend(current_path.glob('*rules.mk')) + + for file in search_path.glob("**/*rules.mk"): + # Ignore keymaps when only globing keyboard files + if not km and 'keymaps' in file.parts: + continue + build_files.append(file) + + return set(build_files) + + def _get_code_files(kb, km=None): """Return potential keyboard/keymap code files """ search_path = locate_keymap(kb, km).parent if km else keyboard(kb) code_files = [] + + if not km: + current_path = Path() + for path_part in search_path.parts: + current_path = current_path / path_part + code_files.extend(current_path.glob('*.h')) + code_files.extend(current_path.glob('*.c')) + for file in c_source_files([search_path]): # Ignore keymaps when only globing keyboard files if not km and 'keymaps' in file.parts: @@ -48,6 +78,24 @@ def _get_code_files(kb, km=None): return code_files +def _is_empty_rules(file): + """Check if file contains any useful content + """ + for line in file.read_text(encoding='utf-8').split("\n"): + if len(line) > 0 and not line.isspace() and not line.startswith('#'): + return False + return True + + +def _is_empty_include(file): + """Check if file contains any useful content + """ + for line in preprocess_c_file(file).split("\n"): + if len(line) > 0 and not line.isspace() and not line.startswith('#pragma once'): + return False + return True + + def _has_license(file): """Check file has a license header """ @@ -91,37 +139,28 @@ def _chibios_conf_includenext_check(target): return None -def _rules_mk_assignment_only(kb): +def _rules_mk_assignment_only(rules_mk): """Check the keyboard-level rules.mk to ensure it only has assignments. """ - keyboard_path = keyboard(kb) - current_path = Path() errors = [] + continuation = None + for i, line in enumerate(rules_mk.open()): + line = line.strip() - for path_part in keyboard_path.parts: - current_path = current_path / path_part - rules_mk = current_path / 'rules.mk' + if '#' in line: + line = line[:line.index('#')] - if rules_mk.exists(): + if continuation: + line = continuation + line continuation = None - for i, line in enumerate(rules_mk.open()): - line = line.strip() + if line: + if line[-1] == '\\': + continuation = line[:-1] + continue - if '#' in line: - line = line[:line.index('#')] - - if continuation: - line = continuation + line - continuation = None - - if line: - if line[-1] == '\\': - continuation = line[:-1] - continue - - if line and '=' not in line: - errors.append(f'Non-assignment code on line +{i} {rules_mk}: {line}') + if line and '=' not in line: + errors.append(f'Non-assignment code on line +{i} {rules_mk}: {line}') return errors @@ -175,13 +214,6 @@ def keyboard_check(kb): if not _handle_invalid_features(kb, kb_info): ok = False - rules_mk_assignment_errors = _rules_mk_assignment_only(kb) - if rules_mk_assignment_errors: - ok = False - cli.log.error('%s: Non-assignment code found in rules.mk. Move it to post_rules.mk instead.', kb) - for assignment_error in rules_mk_assignment_errors: - cli.log.error(assignment_error) - invalid_files = git_get_ignored_files(f'keyboards/{kb}/') for file in invalid_files: if 'keymap' in file: @@ -189,11 +221,29 @@ def keyboard_check(kb): cli.log.error(f'{kb}: The file "{file}" should not exist!') ok = False + for file in _get_build_files(kb): + if _is_empty_rules(file): + cli.log.error(f'{kb}: The file "{file}" is effectively empty and should be removed!') + ok = False + + if file.suffix in ['rules.mk']: + rules_mk_assignment_errors = _rules_mk_assignment_only(file) + if rules_mk_assignment_errors: + ok = False + cli.log.error('%s: Non-assignment code found in rules.mk. Move it to post_rules.mk instead.', kb) + for assignment_error in rules_mk_assignment_errors: + cli.log.error(assignment_error) + for file in _get_code_files(kb): if not _has_license(file): cli.log.error(f'{kb}: The file "{file}" does not have a license header!') ok = False + if file.name in ['config.h']: + if _is_empty_include(file): + cli.log.error(f'{kb}: The file "{file}" is effectively empty and should be removed!') + ok = False + if file.name in CHIBIOS_CONF_CHECKS: check_error = _chibios_conf_includenext_check(file) if check_error is not None: From 8400fad3d8822a9499e72ea0752e59642d9f6ac3 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 13 Feb 2025 07:03:55 +0000 Subject: [PATCH 219/365] Remove readme dummy content (#24912) --- keyboards/al1/readme.md | 2 -- keyboards/alf/dc60/readme.md | 2 -- keyboards/biacco42/meishi2/readme.md | 3 +-- keyboards/bpiphany/unloved_bastard/readme.md | 4 ---- keyboards/cool836a/readme.md | 2 +- keyboards/deltapad/readme.md | 5 ----- keyboards/duck/jetfire/readme.md | 2 -- keyboards/ericrlau/numdiscipline/readme.md | 1 - keyboards/handwired/fc200rt_qmk/readme.md | 1 - keyboards/handwired/novem/readme.md | 2 -- keyboards/hineybush/h75_singa/readme.md | 2 -- keyboards/kakunpc/business_card/readme.md | 8 +------- keyboards/keebio/ergodicity/readme.md | 4 ---- keyboards/kira/kira75/readme.md | 2 -- keyboards/kprepublic/bm16a/v1/readme.md | 1 - keyboards/kprepublic/bm16s/readme.md | 1 - keyboards/marksard/treadstone32/readme.md | 4 +--- keyboards/marksard/treadstone48/readme.md | 4 +--- keyboards/masterworks/classy_tkl/readme.md | 2 -- keyboards/mb44/readme.md | 2 -- keyboards/mechlovin/delphine/readme.md | 2 -- keyboards/mechwild/mokulua/readme.md | 2 -- keyboards/meme/readme.md | 2 -- keyboards/mint60/readme.md | 3 --- keyboards/pegasus/readme.md | 2 -- keyboards/tgr/tris/readme.md | 2 -- keyboards/x16/readme.md | 1 - 27 files changed, 5 insertions(+), 63 deletions(-) diff --git a/keyboards/al1/readme.md b/keyboards/al1/readme.md index 3531e2fdc6b..4dcf83f05f1 100644 --- a/keyboards/al1/readme.md +++ b/keyboards/al1/readme.md @@ -1,7 +1,5 @@ # TriangleLabs AL1 -![AL1](imgur.com image replace me!) - * Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin), [Olivia](https://github.com/olivia) * Hardware Supported: AL1 PCB * Hardware Availability: [GroupBuy](https://geekhack.org/index.php?topic=93258.0) diff --git a/keyboards/alf/dc60/readme.md b/keyboards/alf/dc60/readme.md index d8e20a8f4f7..628878e8de3 100644 --- a/keyboards/alf/dc60/readme.md +++ b/keyboards/alf/dc60/readme.md @@ -1,7 +1,5 @@ # dc60 -![dc60](imgur.com image replace me!) - A 60% PCB sold with the Alf DC60. Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin) diff --git a/keyboards/biacco42/meishi2/readme.md b/keyboards/biacco42/meishi2/readme.md index 97c5465f866..b190ff38ce4 100644 --- a/keyboards/biacco42/meishi2/readme.md +++ b/keyboards/biacco42/meishi2/readme.md @@ -5,8 +5,7 @@ meishi2 - The better micro macro keyboard Keyboard Maintainer: [Biacco42](https://github.com/Biacco42) -Hardware Supported: The PCBs, controllers supported -Hardware Availability: [links to where you can find this hardware](https://github.com/Biacco42/meishi2) +Hardware Availability: https://github.com/Biacco42/meishi2 Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/bpiphany/unloved_bastard/readme.md b/keyboards/bpiphany/unloved_bastard/readme.md index 9909d5af3fc..b11a9bfa773 100644 --- a/keyboards/bpiphany/unloved_bastard/readme.md +++ b/keyboards/bpiphany/unloved_bastard/readme.md @@ -1,9 +1,5 @@ # unloved_bastard -![unloved_bastard](imgur.com image replace me!) - -A short description of the keyboard/project - Keyboard Maintainer: [Alexander Fougner](https://github.com/fougner) Hardware Supported: CoolerMaster Masterkeys S PBT (Not the Pro versions with backlighting etc) Hardware Availability: Pretty much anywhere diff --git a/keyboards/cool836a/readme.md b/keyboards/cool836a/readme.md index dd3ace3cbc3..9473b7136ac 100644 --- a/keyboards/cool836a/readme.md +++ b/keyboards/cool836a/readme.md @@ -28,7 +28,7 @@ git clone のあと、 ----------------- ## English -- [Here](https://github.com/telzo2000/cool836A) are a full description of this project and build guide by the great Designer: [m.ki](imgur.com image replace me!) +- [Here](https://github.com/telzo2000/cool836A) are a full description of this project and build guide by the great Designer: m.ki - Each virsions(A, B+, C+) of cool836A has the same circuit and that means you can install this firmware on any of them. - However, this repository is currently(Jan 7, 2021) tested on ver.B+ (RED version) only. Feel free to contact [ME](https://github.com/ketcha-k) for any problems. diff --git a/keyboards/deltapad/readme.md b/keyboards/deltapad/readme.md index 858f99b4365..f5dae4d9b0a 100644 --- a/keyboards/deltapad/readme.md +++ b/keyboards/deltapad/readme.md @@ -1,15 +1,10 @@ # deltapad - - -*A short description of the keyboard/project* - A 4x4 keypad * Keyboard Maintainer: [Richard Snijder](https://github.com/rich239) * Hardware Supported: Atmel 32u4 based keypads - Make example for this keyboard (after setting up your build environment): make deltapad:default diff --git a/keyboards/duck/jetfire/readme.md b/keyboards/duck/jetfire/readme.md index 8de2f5ced6f..2e12315d6b8 100644 --- a/keyboards/duck/jetfire/readme.md +++ b/keyboards/duck/jetfire/readme.md @@ -1,7 +1,5 @@ # Jetfire -![jetfire](imgur.com image replace me!) - The Duck Jetfire is a hybrid full size and 1800 layout keyboard that went on Group Buy in November 2017. diff --git a/keyboards/ericrlau/numdiscipline/readme.md b/keyboards/ericrlau/numdiscipline/readme.md index bd040df2a51..9770432e56c 100644 --- a/keyboards/ericrlau/numdiscipline/readme.md +++ b/keyboards/ericrlau/numdiscipline/readme.md @@ -13,7 +13,6 @@ A modified version of the through hole 65% Discipline keyboard by cftkb. Other Information: * Keyboard Maintainer: [ELau](https://github.com/ericrlau) -* Hardware Supported: The PCBs, controllers supported * Hardware Availability: https://github.com/ericrlau/NumDiscipline Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/handwired/fc200rt_qmk/readme.md b/keyboards/handwired/fc200rt_qmk/readme.md index 6490227806a..2b7a0dd1ecc 100644 --- a/keyboards/handwired/fc200rt_qmk/readme.md +++ b/keyboards/handwired/fc200rt_qmk/readme.md @@ -25,7 +25,6 @@ Choose any key from the corrosponding row and column and solder it to the pin on _NOTE: Some of the keys had mislabled columns and rows, so make sure the columns are all connected without diodes to one another, and that the rows are soldered after the diode_ * Keyboard Maintainer: [NaCly](https://github.com/Na-Cly) -* Hardware Supported: The PCBs, controllers supported * Hardware Availability: Leopold FC200RT + Teensy 2.0 Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/handwired/novem/readme.md b/keyboards/handwired/novem/readme.md index c259c2cb828..4ccf8152361 100644 --- a/keyboards/handwired/novem/readme.md +++ b/keyboards/handwired/novem/readme.md @@ -2,8 +2,6 @@ ![novem](https://i.imgur.com/nPjBE9b.jpg) -A short description of the keyboard/project - * Keyboard Maintainer: [Jose I. Martinez](https://github.com/mechanicalguy21) * Hardware Supported: This is a handwired keyboard created over a 3d printed case. STL will be shared soon. diff --git a/keyboards/hineybush/h75_singa/readme.md b/keyboards/hineybush/h75_singa/readme.md index 815785834cb..b110fd5b14b 100644 --- a/keyboards/hineybush/h75_singa/readme.md +++ b/keyboards/hineybush/h75_singa/readme.md @@ -1,7 +1,5 @@ # h75_singa -![h75_singa](imgur.com image replace me!) - TBD - New 75% PCB for Singa Keyboards * Keyboard Maintainer: [hineybush](https://github.com/hineybush) diff --git a/keyboards/kakunpc/business_card/readme.md b/keyboards/kakunpc/business_card/readme.md index cbd05af4108..98fdf1be907 100644 --- a/keyboards/kakunpc/business_card/readme.md +++ b/keyboards/kakunpc/business_card/readme.md @@ -1,12 +1,6 @@ # business_card -![business_card](imgur.com image replace me!) - -A short description of the keyboard/project - -Keyboard Maintainer: [kakunpc](https://github.com/kakunpc) -Hardware Supported: The PCBs, controllers supported -Hardware Availability: links to where you can find this hardware +* Keyboard Maintainer: [kakunpc](https://github.com/kakunpc) Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/keebio/ergodicity/readme.md b/keyboards/keebio/ergodicity/readme.md index 0f841d6e3eb..61f4ee658c4 100644 --- a/keyboards/keebio/ergodicity/readme.md +++ b/keyboards/keebio/ergodicity/readme.md @@ -1,9 +1,5 @@ # Ergodicity -![ergodicity](imgur.com image replace me!) - -A short description of the keyboard/project - Keyboard Maintainer: [nooges/bakingpy](https://github.com/nooges) Hardware Supported: Ergodicity PCB w/ATmega32u4 Hardware Availability: [Keebio](https://keeb.io) diff --git a/keyboards/kira/kira75/readme.md b/keyboards/kira/kira75/readme.md index a30b60d179d..237e81d06b0 100644 --- a/keyboards/kira/kira75/readme.md +++ b/keyboards/kira/kira75/readme.md @@ -1,7 +1,5 @@ # Kira 75 -![kira75](imgur.com image replace me!) - 75% keyboard designed by thesiscamper Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin) diff --git a/keyboards/kprepublic/bm16a/v1/readme.md b/keyboards/kprepublic/bm16a/v1/readme.md index d24a8795055..6ad3773371c 100644 --- a/keyboards/kprepublic/bm16a/v1/readme.md +++ b/keyboards/kprepublic/bm16a/v1/readme.md @@ -5,7 +5,6 @@ A 16 key macropad, with USB C, RGB underglow and backlight. * Keyboard Maintainer: QMK Community -* Hardware Supported: The PCBs, controllers supported * Hardware Availability: [KPrepublic](https://kprepublic.com/products/bm16a-16-keys-custom-mechanical-keyboard-pcb-plate-programmed-numpad-layouts-qmk-firmware-with-rgb-bottom-underglow-alps-mx); [AliExpress](https://www.aliexpress.com/store/product/bm16a-16-keys-Custom-Mechanical-Keyboard-PCB-plate-programmed-numpad-layouts-qmk-firmware-with-rgb-bottom/3034003_32970629907.html) Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/kprepublic/bm16s/readme.md b/keyboards/kprepublic/bm16s/readme.md index 6a887e553ae..5b121cdaeae 100644 --- a/keyboards/kprepublic/bm16s/readme.md +++ b/keyboards/kprepublic/bm16s/readme.md @@ -3,7 +3,6 @@ A 16-key macropad, with USB C and per-key RGB backlighting. This is a variant of the BM16A, but with low profile Choc switches. * Keyboard Maintainer: QMK Community -* Hardware Supported: The PCBs, controllers supported * Hardware Availability: [KPrepublic](https://kprepublic.com/collections/pcb/products/bm16s-16-keys-custom-mechanical-keyboard-pcb-plate-programmed-numpad-layouts-qmk-firmware-with-rgb-switch-leds-choc-switch); [AliExpress](https://www.aliexpress.com/item/bm16s-16-keys-Custom-Mechanical-Keyboard-PCB-plate-programmed-numpad-layouts-qmk-firmware-with-rgb-switch/32999247908.html); [Massdrop](https://www.massdrop.com/buy/78169) Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/marksard/treadstone32/readme.md b/keyboards/marksard/treadstone32/readme.md index 170c6bc7618..4e3d5446989 100644 --- a/keyboards/marksard/treadstone32/readme.md +++ b/keyboards/marksard/treadstone32/readme.md @@ -4,9 +4,7 @@ A 32-key Symmetric staggered keyboard. -Keyboard Maintainer: [marksard](https://github.com/marksard) -Hardware Supported: The PCBs, controllers supported -Hardware Availability: links to where you can find this hardware +* Keyboard Maintainer: [marksard](https://github.com/marksard) Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/marksard/treadstone48/readme.md b/keyboards/marksard/treadstone48/readme.md index c5f6f8f73fe..692891447c5 100644 --- a/keyboards/marksard/treadstone48/readme.md +++ b/keyboards/marksard/treadstone48/readme.md @@ -4,9 +4,7 @@ A 47 (or 48) keys Symmetric Staggered keyboard. -Keyboard Maintainer: [marksard](https://github.com/marksard) -Hardware Supported: The PCBs, controllers supported -Hardware Availability: links to where you can find this hardware +* Keyboard Maintainer: [marksard](https://github.com/marksard) Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/masterworks/classy_tkl/readme.md b/keyboards/masterworks/classy_tkl/readme.md index 0557ed7f4c4..1e5903483cf 100644 --- a/keyboards/masterworks/classy_tkl/readme.md +++ b/keyboards/masterworks/classy_tkl/readme.md @@ -2,8 +2,6 @@ ![Classy TKL](https://i.imgur.com/p1dxfYKl.jpg) -A short description of the keyboard/project - * Keyboard Maintainer: [Mathias Andersson](https://github.com/wraul) * Hardware Supported: [Classy TKL PCB](https://github.com/4pplet/classyTKL) * Hardware Availability: https://geekhack.org/index.php?topic=105933 diff --git a/keyboards/mb44/readme.md b/keyboards/mb44/readme.md index 3cd59ecdb13..3029c69f9e2 100644 --- a/keyboards/mb44/readme.md +++ b/keyboards/mb44/readme.md @@ -5,8 +5,6 @@ To reset and put into bootloader mode, please use the hardware reset button on the botton of the PCB. If the PCB is on the default firmware, software reset is available by holding the bottom left corner key and pressing `B` in the standard qwerty layout. * Keyboard Maintainer: [melonbred](https://github.com/melonbred) -* Hardware Supported: The PCBs, controllers supported -* Hardware Availability: Links to where you can find this hardware Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/mechlovin/delphine/readme.md b/keyboards/mechlovin/delphine/readme.md index 9a5389a5f33..397a0ada407 100644 --- a/keyboards/mechlovin/delphine/readme.md +++ b/keyboards/mechlovin/delphine/readme.md @@ -1,7 +1,5 @@ # delphine -![delphine](imgur.com image replace me!) - A Number-Pad PCB, Mono backlight and RGB backlight version, Dolpad compatible. * Keyboard Maintainer: [Mechlovin'](https://github.com/mechlovin) diff --git a/keyboards/mechwild/mokulua/readme.md b/keyboards/mechwild/mokulua/readme.md index 24f01b10d46..5a6b69e66e2 100644 --- a/keyboards/mechwild/mokulua/readme.md +++ b/keyboards/mechwild/mokulua/readme.md @@ -2,8 +2,6 @@ ![Mokulua](https://i.imgur.com/7fifiQch.jpg) -*A short description of the keyboard/project* - * Keyboard Maintainer: [Kyle McCreery](https://github.com/kylemccreery) * Hardware Supported: Mokulua v1.3 * Hardware Availability: https://mechwild.com/product/mokulua/ diff --git a/keyboards/meme/readme.md b/keyboards/meme/readme.md index 94b55d746ef..7b09a5e18fb 100644 --- a/keyboards/meme/readme.md +++ b/keyboards/meme/readme.md @@ -1,7 +1,5 @@ # Meme -![meme](imgur.com image replace me!) - 65% gasket mount keyboard. Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin) diff --git a/keyboards/mint60/readme.md b/keyboards/mint60/readme.md index 1824c682f86..3a28f56181b 100644 --- a/keyboards/mint60/readme.md +++ b/keyboards/mint60/readme.md @@ -2,11 +2,8 @@ ![Mint60](https://i.imgur.com/suOE8HN.jpg) -A short description of the keyboard/project - Keyboard Maintainer: [Eucalyn](https://github.com/eucalyn) [@eucalyn_](https://twitter.com/eucalyn_) Hardware Supported: The Mint60 PCBs, ProMicro supported -Hardware Availability: links to where you can find this hardware Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/pegasus/readme.md b/keyboards/pegasus/readme.md index c523c035404..9c6d575e923 100644 --- a/keyboards/pegasus/readme.md +++ b/keyboards/pegasus/readme.md @@ -5,8 +5,6 @@ Pegasus is a 40% keyboard with a 12.75u "WKL" layout with 0.75u blockers. * Keyboard Maintainer: [melonbred](https://github.com/melonbred) -* Hardware Supported: The PCBs, controllers supported -* Hardware Availability: Links to where you can find this hardware Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/tgr/tris/readme.md b/keyboards/tgr/tris/readme.md index c9cc1990696..e01e7decaad 100644 --- a/keyboards/tgr/tris/readme.md +++ b/keyboards/tgr/tris/readme.md @@ -1,7 +1,5 @@ # TGR Tris/Tris CE -A short description of the keyboard/project - * Keyboard Maintainer: [poisonking](https://github.com/halfenergized) * Hardware Supported: Tris PCB * Hardware Availability: https://geekhack.org/index.php?topic=86221.0 diff --git a/keyboards/x16/readme.md b/keyboards/x16/readme.md index 6434af99c7b..cfe83905d73 100644 --- a/keyboards/x16/readme.md +++ b/keyboards/x16/readme.md @@ -3,7 +3,6 @@ A 16 key macropad, with USB C * Keyboard Maintainer: QMK Community -* Hardware Supported: The PCBs, controllers supported * Hardware Availability: The x16 was discontinued by [x16](https://yinxianwei.github.io/x16/) Make example for this keyboard (after setting up your build environment): From 5e886478792ba40cf98c95a508e0faee9fa171a6 Mon Sep 17 00:00:00 2001 From: wmatex Date: Sat, 15 Feb 2025 05:56:00 +0100 Subject: [PATCH 220/365] Fix installation of clang in gentoo install script (#24917) fix: sys-devel/clang was renamed to llvm-core/clang see: https://github.com/gentoo/gentoo/commit/1f9f1999cdc8ccb94054dec2d2951c7e486aa996 --- util/install/gentoo.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/install/gentoo.sh b/util/install/gentoo.sh index 49e80490bec..3c8f417fb7b 100755 --- a/util/install/gentoo.sh +++ b/util/install/gentoo.sh @@ -22,7 +22,7 @@ _qmk_install() { echo "sys-devel/gcc multilib\ncross-arm-none-eabi/newlib nano" | sudo tee --append /etc/portage/package.use/qmkfirmware >/dev/null sudo emerge -auN sys-devel/gcc sudo emerge -au --noreplace \ - app-arch/unzip app-arch/zip net-misc/wget sys-devel/clang \ + app-arch/unzip app-arch/zip net-misc/wget llvm-core/clang \ sys-devel/crossdev \>=dev-lang/python-3.7 dev-embedded/avrdude \ dev-embedded/dfu-programmer app-mobilephone/dfu-util sys-apps/hwloc \ dev-libs/hidapi From 3ab2b3b6e2ac85c8bc00b81911d73f060e616228 Mon Sep 17 00:00:00 2001 From: DavidSannier Date: Sun, 16 Feb 2025 10:48:40 +0100 Subject: [PATCH 221/365] Chaining OSL and MO (#23065) --- quantum/action.c | 4 + tests/basic/test_one_shot_keys.cpp | 336 ++++++++++++++++++++++++++++- 2 files changed, 339 insertions(+), 1 deletion(-) diff --git a/quantum/action.c b/quantum/action.c index a39631ba3e9..395340d9d78 100644 --- a/quantum/action.c +++ b/quantum/action.c @@ -817,6 +817,10 @@ void process_action(keyrecord_t *record, action_t action) { case ACT_LAYER_TAP_EXT: # endif led_set(host_keyboard_leds()); +# ifndef NO_ACTION_ONESHOT + // don't release the key + do_release_oneshot = false; +# endif break; default: break; diff --git a/tests/basic/test_one_shot_keys.cpp b/tests/basic/test_one_shot_keys.cpp index 64a8673a5cd..92db52f811e 100644 --- a/tests/basic/test_one_shot_keys.cpp +++ b/tests/basic/test_one_shot_keys.cpp @@ -168,7 +168,7 @@ TEST_F(OneShot, OSMChainingTwoOSMs) { tap_key(osm_key1); VERIFY_AND_CLEAR(driver); - /* Press and relesea OSM2 */ + /* Press and release OSM2 */ EXPECT_NO_REPORT(driver); tap_key(osm_key2); VERIFY_AND_CLEAR(driver); @@ -353,3 +353,337 @@ TEST_F(OneShot, OSLWithOsmAndAdditionalKeypress) { run_one_scan_loop(); VERIFY_AND_CLEAR(driver); } + +TEST_F(OneShot, OSLWithMoAndAdditionalKeypress) { + TestDriver driver; + InSequence s; + KeymapKey osl_key = KeymapKey{0, 0, 0, OSL(1)}; + KeymapKey mo_key = KeymapKey{1, 1, 0, MO(2)}; + KeymapKey regular_key = KeymapKey{2, 1, 1, KC_A}; + + set_keymap({osl_key, mo_key, regular_key}); + + /* Press OSL key */ + EXPECT_NO_REPORT(driver); + osl_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + /* Release OSL key */ + EXPECT_NO_REPORT(driver); + osl_key.release(); + run_one_scan_loop(); + EXPECT_TRUE(layer_state_is(1)); + VERIFY_AND_CLEAR(driver); + + /* Press MO */ + EXPECT_NO_REPORT(driver); + mo_key.press(); + run_one_scan_loop(); + EXPECT_TRUE(layer_state_is(2)); + VERIFY_AND_CLEAR(driver); + + /* Press regular key */ + EXPECT_REPORT(driver, (regular_key.report_code)).Times(1); + regular_key.press(); + run_one_scan_loop(); + EXPECT_TRUE(layer_state_is(2)); + VERIFY_AND_CLEAR(driver); + + /* Release regular key */ + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + /* Release MO */ + EXPECT_NO_REPORT(driver); + mo_key.release(); + run_one_scan_loop(); + EXPECT_TRUE(layer_state_is(0)); + VERIFY_AND_CLEAR(driver); +} + +class OneShotLayerParametrizedTestFixture : public ::testing::WithParamInterface, public OneShot {}; + +TEST_P(OneShotLayerParametrizedTestFixture, OSLWithActionAndAdditionalKeypress) { + TestDriver driver; + InSequence s; + KeymapKey osl_key = KeymapKey{0, 0, 0, OSL(1)}; + KeymapKey action_key = KeymapKey{1, 1, 0, GetParam()}; + KeymapKey regular_key = KeymapKey{2, 1, 1, KC_A}; + + set_keymap({osl_key, action_key, regular_key}); + + /* Tap OSL key */ + EXPECT_NO_REPORT(driver); + tap_key(osl_key); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + /* Tag Action key */ + EXPECT_NO_REPORT(driver); + tap_key(action_key); + run_one_scan_loop(); + EXPECT_TRUE(layer_state_is(2)); + VERIFY_AND_CLEAR(driver); + + /* Press regular key */ + EXPECT_REPORT(driver, (regular_key.report_code)).Times(1); + regular_key.press(); + run_one_scan_loop(); + EXPECT_TRUE(layer_state_is(2)); + VERIFY_AND_CLEAR(driver); + + /* Release regular key */ + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +INSTANTIATE_TEST_CASE_P(OneShotLayerTests, OneShotLayerParametrizedTestFixture, ::testing::Values(TG(2), TO(2))); + +TEST_F(OneShot, OSLWithDFAndAdditionalKeypress) { + TestDriver driver; + InSequence s; + KeymapKey osl_key = KeymapKey{0, 0, 0, OSL(1)}; + KeymapKey df_key = KeymapKey{1, 1, 0, DF(2)}; + KeymapKey regular_key = KeymapKey{2, 1, 1, KC_A}; + + set_keymap({osl_key, df_key, regular_key}); + + layer_state_t default_layer_state_bak = default_layer_state; + + /* Tap OSL key */ + EXPECT_NO_REPORT(driver); + tap_key(osl_key); + run_one_scan_loop(); + EXPECT_TRUE(layer_state_is(1)); + VERIFY_AND_CLEAR(driver); + + /* Press DF key */ + EXPECT_NO_REPORT(driver); + df_key.press(); + run_one_scan_loop(); + EXPECT_EQ(default_layer_state, 0b001); + + VERIFY_AND_CLEAR(driver); + + /* Release DF key */ + EXPECT_NO_REPORT(driver); + df_key.release(); + run_one_scan_loop(); + EXPECT_EQ(default_layer_state, 0b100); + VERIFY_AND_CLEAR(driver); + + /* Press regular key */ + EXPECT_REPORT(driver, (regular_key.report_code)).Times(1); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + /* Release regular key */ + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + default_layer_state = default_layer_state_bak; +} + +TEST_F(OneShot, OSLChainingTwoOSLsAndAdditionalKeypress) { + TestDriver driver; + InSequence s; + KeymapKey osl1_key = KeymapKey{0, 0, 0, OSL(1)}; + KeymapKey osl2_key = KeymapKey{1, 1, 0, OSL(2)}; + KeymapKey regular_key = KeymapKey{2, 1, 1, KC_A}; + + set_keymap({osl1_key, osl2_key, regular_key}); + + /* Press and release first OSL key */ + EXPECT_NO_REPORT(driver); + osl1_key.press(); + run_one_scan_loop(); + osl1_key.release(); + run_one_scan_loop(); + EXPECT_TRUE(layer_state_is(1)); + VERIFY_AND_CLEAR(driver); + + /* Press and release second OSL */ + EXPECT_NO_REPORT(driver); + osl2_key.press(); + run_one_scan_loop(); + osl2_key.release(); + run_one_scan_loop(); + EXPECT_TRUE(layer_state_is(2)); + VERIFY_AND_CLEAR(driver); + + /* Press regular key */ + EXPECT_REPORT(driver, (regular_key.report_code)).Times(1); + EXPECT_EMPTY_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + /* Release regular key */ + EXPECT_NO_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + EXPECT_TRUE(layer_state_is(0)); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(OneShot, OSLWithShortLT) { + TestDriver driver; + InSequence s; + KeymapKey osl_key = KeymapKey{0, 0, 0, OSL(1)}; + KeymapKey lt_key = KeymapKey(1, 1, 0, LT(2, KC_A)); + + set_keymap({osl_key, lt_key}); + + /* Tap OSL key */ + EXPECT_NO_REPORT(driver); + tap_key(osl_key); + run_one_scan_loop(); + EXPECT_TRUE(layer_state_is(1)); + VERIFY_AND_CLEAR(driver); + + /* Tap LT key. */ + EXPECT_REPORT(driver, (lt_key.report_code)).Times(1); + EXPECT_EMPTY_REPORT(driver); + tap_key(lt_key); + run_one_scan_loop(); + EXPECT_TRUE(layer_state_is(0)); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(OneShot, OSLWithLongLTAndRegularKey) { + TestDriver driver; + InSequence s; + KeymapKey osl_key = KeymapKey{0, 0, 0, OSL(1)}; + KeymapKey lt_key = KeymapKey(1, 1, 0, LT(2, KC_A)); + KeymapKey regular_key = KeymapKey(2, 1, 1, KC_B); + + set_keymap({osl_key, lt_key, regular_key}); + + /* Tap OSL key */ + EXPECT_NO_REPORT(driver); + tap_key(osl_key); + run_one_scan_loop(); + EXPECT_TRUE(layer_state_is(1)); + VERIFY_AND_CLEAR(driver); + + /* Press LT key. */ + EXPECT_NO_REPORT(driver); + lt_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + /* Idle for tapping term of mod tap hold key. */ + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + EXPECT_TRUE(layer_state_is(2)); + + /* Press regular key. */ + EXPECT_REPORT(driver, (regular_key.report_code)).Times(1); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + /* Release regular key. */ + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(OneShot, OSLWithShortModTapKeyAndRegularKey) { + TestDriver driver; + InSequence s; + KeymapKey osl_key = KeymapKey{0, 0, 0, OSL(1)}; + KeymapKey mod_tap_hold_key = KeymapKey(1, 1, 0, SFT_T(KC_P)); + KeymapKey regular_key = KeymapKey(0, 2, 0, KC_A); + + set_keymap({osl_key, mod_tap_hold_key, regular_key}); + + /* Tap OSL key */ + EXPECT_NO_REPORT(driver); + tap_key(osl_key); + run_one_scan_loop(); + EXPECT_TRUE(layer_state_is(1)); + VERIFY_AND_CLEAR(driver); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + /* Release mod-tap-hold key. */ + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + /* Press regular key. */ + EXPECT_REPORT(driver, (regular_key.report_code)); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + /* Release regular key. */ + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(OneShot, OSLWithLongModTapKeyAndRegularKey) { + TestDriver driver; + InSequence s; + KeymapKey osl_key = KeymapKey{0, 0, 0, OSL(1)}; + KeymapKey mod_tap_hold_key = KeymapKey(1, 1, 0, SFT_T(KC_P)); + KeymapKey regular_key = KeymapKey(1, 2, 0, KC_A); + + set_keymap({osl_key, mod_tap_hold_key, regular_key}); + + /* Tap OSL key */ + EXPECT_NO_REPORT(driver); + tap_key(osl_key); + run_one_scan_loop(); + EXPECT_TRUE(layer_state_is(1)); + VERIFY_AND_CLEAR(driver); + + /* Press mod-tap-hold key. */ + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + /* Idle for tapping term of mod tap hold key. */ + EXPECT_REPORT(driver, (KC_LSFT)); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + /* Release mod-tap-hold key. */ + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + /* Press regular key. */ + EXPECT_REPORT(driver, (regular_key.report_code)).Times(1); + EXPECT_EMPTY_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + /* Release regular key. */ + EXPECT_NO_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} \ No newline at end of file From b69bf4b885cd8d597c29f0af64a3faf2aafa54ce Mon Sep 17 00:00:00 2001 From: John Date: Sun, 16 Feb 2025 03:50:42 -0600 Subject: [PATCH 222/365] Retro Tapping Re-Write; Key Roll Fix (#23641) --- quantum/action.c | 50 ++- .../retro_tapping/test_key_roll.cpp | 408 ++++++++++++++++++ 2 files changed, 446 insertions(+), 12 deletions(-) create mode 100644 tests/tap_hold_configurations/retro_tapping/test_key_roll.cpp diff --git a/quantum/action.c b/quantum/action.c index 395340d9d78..be85192d25a 100644 --- a/quantum/action.c +++ b/quantum/action.c @@ -47,7 +47,12 @@ along with this program. If not, see . int tp_buttons; #if defined(RETRO_TAPPING) || defined(RETRO_TAPPING_PER_KEY) || (defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) -int retro_tapping_counter = 0; +bool retro_tap_primed = false; +uint16_t retro_tap_curr_key = 0; +# if !(defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) +uint8_t retro_tap_curr_mods = 0; +uint8_t retro_tap_next_mods = 0; +# endif #endif #if defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT) && !defined(NO_ACTION_TAPPING) @@ -77,7 +82,13 @@ void action_exec(keyevent_t event) { debug_event(event); ac_dprintf("\n"); #if defined(RETRO_TAPPING) || defined(RETRO_TAPPING_PER_KEY) || (defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) - retro_tapping_counter++; + uint16_t event_keycode = get_event_keycode(event, false); + if (event.pressed) { + retro_tap_primed = false; + retro_tap_curr_key = event_keycode; + } else if (retro_tap_curr_key == event_keycode) { + retro_tap_primed = true; + } #endif } @@ -531,7 +542,8 @@ void process_action(keyrecord_t *record, action_t action) { # if defined(RETRO_TAPPING) && defined(DUMMY_MOD_NEUTRALIZER_KEYCODE) // Send a dummy keycode to neutralize flashing modifiers // if the key was held and then released with no interruptions. - if (retro_tapping_counter == 2) { + uint16_t ev_kc = get_event_keycode(event, false); + if (retro_tap_primed && retro_tap_curr_key == ev_kc) { neutralize_flashing_modifiers(get_mods()); } # endif @@ -829,30 +841,44 @@ void process_action(keyrecord_t *record, action_t action) { #ifndef NO_ACTION_TAPPING # if defined(RETRO_TAPPING) || defined(RETRO_TAPPING_PER_KEY) || (defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) - if (!is_tap_action(action)) { - retro_tapping_counter = 0; - } else { + if (is_tap_action(action)) { if (event.pressed) { if (tap_count > 0) { - retro_tapping_counter = 0; + retro_tap_primed = false; + } else { +# if !(defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) + retro_tap_curr_mods = retro_tap_next_mods; + retro_tap_next_mods = get_mods(); +# endif } } else { + uint16_t event_keycode = get_event_keycode(event, false); +# if !(defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) + uint8_t curr_mods = get_mods(); +# endif if (tap_count > 0) { - retro_tapping_counter = 0; - } else { + retro_tap_primed = false; + } else if (retro_tap_curr_key == event_keycode) { if ( # ifdef RETRO_TAPPING_PER_KEY - get_retro_tapping(get_event_keycode(record->event, false), record) && + get_retro_tapping(event_keycode, record) && # endif - retro_tapping_counter == 2) { + retro_tap_primed) { # if defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT) process_auto_shift(action.layer_tap.code, record); # else + register_mods(retro_tap_curr_mods); + wait_ms(TAP_CODE_DELAY); tap_code(action.layer_tap.code); + wait_ms(TAP_CODE_DELAY); + unregister_mods(retro_tap_curr_mods); # endif } - retro_tapping_counter = 0; + retro_tap_primed = false; } +# if !(defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) + retro_tap_next_mods = curr_mods; +# endif } } # endif diff --git a/tests/tap_hold_configurations/retro_tapping/test_key_roll.cpp b/tests/tap_hold_configurations/retro_tapping/test_key_roll.cpp new file mode 100644 index 00000000000..afcbde99379 --- /dev/null +++ b/tests/tap_hold_configurations/retro_tapping/test_key_roll.cpp @@ -0,0 +1,408 @@ +/* Copyright 2024 John Rigoni + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "keyboard_report_util.hpp" +#include "keycode.h" +#include "keycodes.h" +#include "test_common.hpp" +#include "action_tapping.h" +#include "test_keymap_key.hpp" + +using testing::_; +using testing::InSequence; + +class RetroTapKeyRoll : public TestFixture {}; + +TEST_F(RetroTapKeyRoll, regular_to_left_gui_mod_over_tap_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 1, 0, LGUI_T(KC_P)); + auto regular_key = KeymapKey(0, 2, 0, KC_B); + + set_keymap({mod_tap_hold_key, regular_key}); + + EXPECT_REPORT(driver, (KC_B)); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_B, KC_LEFT_GUI)); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LEFT_GUI)); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LEFT_GUI, DUMMY_MOD_NEUTRALIZER_KEYCODE)); + EXPECT_REPORT(driver, (KC_LEFT_GUI)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroTapKeyRoll, regular_to_mod_over_tap_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 1, 0, SFT_T(KC_A)); + auto regular_key = KeymapKey(0, 2, 0, KC_B); + + set_keymap({mod_tap_hold_key, regular_key}); + + EXPECT_REPORT(driver, (KC_B)); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_B, KC_LEFT_SHIFT)); + mod_tap_hold_key.press(); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroTapKeyRoll, regular_to_mod_under_tap_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 1, 0, SFT_T(KC_A)); + auto regular_key = KeymapKey(0, 2, 0, KC_B); + + set_keymap({mod_tap_hold_key, regular_key}); + + EXPECT_REPORT(driver, (KC_B)); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroTapKeyRoll, mod_under_tap_term_to_regular) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 1, 0, LGUI_T(KC_P)); + auto regular_key = KeymapKey(0, 2, 0, KC_B); + + set_keymap({mod_tap_hold_key, regular_key}); + + EXPECT_NO_REPORT(driver); + mod_tap_hold_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_P)); + EXPECT_REPORT(driver, (KC_B, KC_P)); + EXPECT_REPORT(driver, (KC_B)); + mod_tap_hold_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroTapKeyRoll, mod_over_tap_term_to_regular) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_key = KeymapKey(0, 1, 0, SFT_T(KC_A)); + auto regular_key = KeymapKey(0, 2, 0, KC_B); + + set_keymap({mod_tap_hold_key, regular_key}); + + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + mod_tap_hold_key.press(); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_B)); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_B)); + mod_tap_hold_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroTapKeyRoll, mod_under_tap_term_to_mod_under_tap_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_gui = KeymapKey(0, 1, 0, LGUI_T(KC_P)); + auto mod_tap_hold_lshft = KeymapKey(0, 2, 0, SFT_T(KC_A)); + + set_keymap({mod_tap_hold_gui, mod_tap_hold_lshft}); + + EXPECT_NO_REPORT(driver); + mod_tap_hold_lshft.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + mod_tap_hold_gui.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_lshft.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_gui.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroTapKeyRoll, mod_over_tap_term_to_mod_under_tap_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_gui = KeymapKey(0, 1, 0, LGUI_T(KC_P)); + auto mod_tap_hold_lshft = KeymapKey(0, 2, 0, SFT_T(KC_A)); + + set_keymap({mod_tap_hold_gui, mod_tap_hold_lshft}); + + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + mod_tap_hold_lshft.press(); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + mod_tap_hold_gui.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + mod_tap_hold_lshft.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_P)); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_gui.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroTapKeyRoll, mod_under_tap_term_to_mod_over_tap_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_gui = KeymapKey(0, 1, 0, LGUI_T(KC_P)); + auto mod_tap_hold_lshft = KeymapKey(0, 2, 0, SFT_T(KC_A)); + + set_keymap({mod_tap_hold_gui, mod_tap_hold_lshft}); + + EXPECT_NO_REPORT(driver); + mod_tap_hold_lshft.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_GUI)); + mod_tap_hold_gui.press(); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LEFT_GUI)); + mod_tap_hold_lshft.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LEFT_GUI, DUMMY_MOD_NEUTRALIZER_KEYCODE)); + EXPECT_REPORT(driver, (KC_LEFT_GUI)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + EXPECT_REPORT(driver, (KC_P, KC_LEFT_SHIFT)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_gui.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroTapKeyRoll, mod_under_tap_term_to_mod_over_tap_term_offset) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_gui = KeymapKey(0, 1, 0, LGUI_T(KC_P)); + auto mod_tap_hold_lshft = KeymapKey(0, 2, 0, SFT_T(KC_A)); + + set_keymap({mod_tap_hold_gui, mod_tap_hold_lshft}); + + EXPECT_NO_REPORT(driver); + mod_tap_hold_lshft.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + mod_tap_hold_gui.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_lshft.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LEFT_GUI)); + EXPECT_REPORT(driver, (KC_LEFT_GUI, DUMMY_MOD_NEUTRALIZER_KEYCODE)); + EXPECT_REPORT(driver, (KC_LEFT_GUI)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + idle_for(TAPPING_TERM); + mod_tap_hold_gui.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroTapKeyRoll, mod_over_tap_term_to_mod_over_tap_term) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_gui = KeymapKey(0, 1, 0, LGUI_T(KC_P)); + auto mod_tap_hold_lshft = KeymapKey(0, 2, 0, SFT_T(KC_A)); + + set_keymap({mod_tap_hold_gui, mod_tap_hold_lshft}); + + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + mod_tap_hold_lshft.press(); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_GUI)); + mod_tap_hold_gui.press(); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LEFT_GUI)); + mod_tap_hold_lshft.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LEFT_GUI, DUMMY_MOD_NEUTRALIZER_KEYCODE)); + EXPECT_REPORT(driver, (KC_LEFT_GUI)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + EXPECT_REPORT(driver, (KC_P, KC_LEFT_SHIFT)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_gui.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroTapKeyRoll, mod_to_mod_to_mod) { + TestDriver driver; + InSequence s; + auto mod_tap_hold_lalt = KeymapKey(0, 1, 0, LALT_T(KC_R)); + auto mod_tap_hold_lshft = KeymapKey(0, 2, 0, SFT_T(KC_A)); + auto mod_tap_hold_lctrl = KeymapKey(0, 3, 0, LCTL_T(KC_C)); + + set_keymap({mod_tap_hold_lalt, mod_tap_hold_lshft, mod_tap_hold_lctrl}); + + EXPECT_REPORT(driver, (KC_LEFT_ALT)); + mod_tap_hold_lalt.press(); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, KC_LEFT_ALT)); + mod_tap_hold_lshft.press(); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + mod_tap_hold_lalt.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LEFT_CTRL, KC_LEFT_SHIFT)); + EXPECT_NO_REPORT(driver); + mod_tap_hold_lctrl.press(); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LEFT_CTRL)); + mod_tap_hold_lshft.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + EXPECT_REPORT(driver, (KC_C, KC_LEFT_SHIFT)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_hold_lctrl.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} From 110cc0923b012c6f081a448fc120cddc2e670cb9 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 16 Feb 2025 10:22:57 +0000 Subject: [PATCH 223/365] Reject readme dummy content (#24913) --- lib/python/qmk/cli/lint.py | 48 +++++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/lib/python/qmk/cli/lint.py b/lib/python/qmk/cli/lint.py index d82be8b2d0a..c09e377ad67 100644 --- a/lib/python/qmk/cli/lint.py +++ b/lib/python/qmk/cli/lint.py @@ -33,6 +33,28 @@ def _list_defaultish_keymaps(kb): return keymaps +def _get_readme_files(kb, km=None): + """Return potential keyboard/keymap readme files + """ + search_path = locate_keymap(kb, km).parent if km else keyboard(kb) + + readme_files = [] + + if not km: + current_path = Path(search_path.parts[0]) + for path_part in search_path.parts[1:]: + current_path = current_path / path_part + readme_files.extend(current_path.glob('*readme.md')) + + for file in search_path.glob("**/*readme.md"): + # Ignore keymaps when only globing keyboard files + if not km and 'keymaps' in file.parts: + continue + readme_files.append(file) + + return set(readme_files) + + def _get_build_files(kb, km=None): """Return potential keyboard/keymap build files """ @@ -78,6 +100,25 @@ def _get_code_files(kb, km=None): return code_files +def _is_invalid_readme(file): + """Check if file contains any unfilled content + """ + tokens = [ + '%KEYBOARD%', + '%REAL_NAME%', + '%USER_NAME%', + 'image replace me!', + 'A short description of the keyboard/project', + 'The PCBs, controllers supported', + 'Links to where you can find this hardware', + ] + + for line in file.read_text(encoding='utf-8').split("\n"): + if any(token in line for token in tokens): + return True + return False + + def _is_empty_rules(file): """Check if file contains any useful content """ @@ -201,7 +242,7 @@ def keymap_check(kb, km): return ok -def keyboard_check(kb): +def keyboard_check(kb): # noqa C901 """Perform the keyboard level checks. """ ok = True @@ -221,6 +262,11 @@ def keyboard_check(kb): cli.log.error(f'{kb}: The file "{file}" should not exist!') ok = False + for file in _get_readme_files(kb): + if _is_invalid_readme(file): + cli.log.error(f'{kb}: The file "{file}" still contains template tokens!') + ok = False + for file in _get_build_files(kb): if _is_empty_rules(file): cli.log.error(f'{kb}: The file "{file}" is effectively empty and should be removed!') From ad2c0f35651a7825277c8c30bc3c0e8ead5ddb73 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sun, 16 Feb 2025 21:24:01 +1100 Subject: [PATCH 224/365] Add more stale exemption labels. (#24922) --- .github/workflows/stale.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index ce9bd0f3161..25649ce9437 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -45,7 +45,7 @@ jobs: stale-pr-label: stale days-before-pr-stale: 45 days-before-pr-close: 30 - exempt-pr-labels: bug,awaiting review,breaking_change,in progress,on hold + exempt-pr-labels: bug,awaiting review,breaking_change,in progress,on hold,needs-core-wireless,crippled-firmware stale-pr-message: > Thank you for your contribution! From d035f02c08b587213a35335c1d523af10b11b543 Mon Sep 17 00:00:00 2001 From: HorrorTroll Date: Sun, 16 Feb 2025 22:07:17 +0700 Subject: [PATCH 225/365] Patch up issue for inverted complementary output on Backlight (#24794) Change complementary output to active high, when backlight on state is 1 --- platforms/chibios/drivers/backlight_pwm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/platforms/chibios/drivers/backlight_pwm.c b/platforms/chibios/drivers/backlight_pwm.c index 25fe7962b02..47ad0084156 100644 --- a/platforms/chibios/drivers/backlight_pwm.c +++ b/platforms/chibios/drivers/backlight_pwm.c @@ -28,9 +28,9 @@ // Support for pins which are on TIM1_CH1N #ifdef BACKLIGHT_PWM_COMPLEMENTARY_OUTPUT # if BACKLIGHT_ON_STATE == 1 -# define PWM_OUTPUT_MODE PWM_COMPLEMENTARY_OUTPUT_ACTIVE_LOW; -# else # define PWM_OUTPUT_MODE PWM_COMPLEMENTARY_OUTPUT_ACTIVE_HIGH; +# else +# define PWM_OUTPUT_MODE PWM_COMPLEMENTARY_OUTPUT_ACTIVE_LOW; # endif #else # if BACKLIGHT_ON_STATE == 1 From 132efa907679832b81c06c57042c337241b17b8c Mon Sep 17 00:00:00 2001 From: Nizhegorodtsev Vyacheslav Sergeyevich <42460719+Programmer86@users.noreply.github.com> Date: Sun, 16 Feb 2025 21:32:50 +0500 Subject: [PATCH 226/365] Update for 'A-JAZZ AKC084' ('A-JAZZ AKP846') (#24868) Fix indicators, image, bootloader instructions and default keymap for 'A-JAZZ AKC084' --- keyboards/a_jazz/akc084/keyboard.json | 2 +- .../a_jazz/akc084/keymaps/default/keymap.c | 18 +++++++++--------- keyboards/a_jazz/akc084/readme.md | 6 +++--- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/keyboards/a_jazz/akc084/keyboard.json b/keyboards/a_jazz/akc084/keyboard.json index a489a5ade50..a8290ea75f4 100644 --- a/keyboards/a_jazz/akc084/keyboard.json +++ b/keyboards/a_jazz/akc084/keyboard.json @@ -20,7 +20,7 @@ }, "indicators": { "caps_lock": "A9", - "num_lock": "A10" + "scroll_lock": "A10" }, "matrix_pins": { "cols": ["B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "B10", "B11", "B12", "B13"], diff --git a/keyboards/a_jazz/akc084/keymaps/default/keymap.c b/keyboards/a_jazz/akc084/keymaps/default/keymap.c index 0ea7355fecb..2bd7992707f 100644 --- a/keyboards/a_jazz/akc084/keymaps/default/keymap.c +++ b/keyboards/a_jazz/akc084/keymaps/default/keymap.c @@ -25,19 +25,19 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, KC_MUTE, + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_PAUS, KC_DEL, KC_MUTE, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT ), [1] = LAYOUT( - _______, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_MYCM, KC_CALC, _______, _______, _______, _______, + _______, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_MYCM, KC_CALC, _______, _______, KC_SCRL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SCRL, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, _______, _______ ) }; \ No newline at end of file diff --git a/keyboards/a_jazz/akc084/readme.md b/keyboards/a_jazz/akc084/readme.md index d93c8a687d4..4be104f5817 100644 --- a/keyboards/a_jazz/akc084/readme.md +++ b/keyboards/a_jazz/akc084/readme.md @@ -1,8 +1,8 @@ -# A-JAZZ AKC084 +# A-JAZZ AKC084 (AKP846) A customizable 84keys keyboard -![akc084](https://i.imgur.com/381vaD7.png) +![akc084](https://i.imgur.com/6D0jBco.png) * Keyboard Maintainer: [Feng](https://github.com/fenggx-a-jazz) * Hardware Supported: [a-jazz](https://www.a-jazz.com) * Hardware Availability: [a-jazz](https://ajazzstore.com/collections/all/products/ajazz-akp846) @@ -18,6 +18,6 @@ Flashing example for this keyboard: See the build environment setup and the make instructions for more information. Brand new to QMK? Start with our Complete Newbs Guide. ## Bootloader ESC the bootloader in 3 ways: -* **Bootmagic reset: Hold down Enter in the keyboard then replug +* **Bootmagic reset: Hold down Esc in the keyboard then replug * **Physical reset button: Briefly press the button on the back of the PCB * **Keycode in layout: Press the key mapped to QK_BOOT From 164b7331c3b98165e49d38127bee366f9c545513 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 16 Feb 2025 21:39:29 +0000 Subject: [PATCH 227/365] Migrate some DEFAULT_FOLDER to keyboard_aliases.hjson (#24915) --- data/mappings/keyboard_aliases.hjson | 36 +++++++++++++++++++ .../db60/hotswap}/rules.mk | 2 -- .../westm68 => cannonkeys/db60/j02}/rules.mk | 2 -- keyboards/cannonkeys/db60/{ => rev2}/rules.mk | 2 -- keyboards/converter/palm_usb/info.json | 20 ----------- .../palm_usb/{ => stowaway}/config.h | 0 .../converter/palm_usb/stowaway/keyboard.json | 18 ++++++++++ .../palm_usb/{ => stowaway}/matrix.c | 0 .../palm_usb/{ => stowaway}/readme.md | 0 .../palm_usb/{ => stowaway}/rules.mk | 2 -- .../meck_tkl/blackpill_f401/rules.mk | 2 ++ keyboards/handwired/meck_tkl/rules.mk | 4 --- keyboards/hhkb/ansi/{ => 32u2}/rules.mk | 2 -- keyboards/hhkb/ansi/32u4/rules.mk | 4 +++ keyboards/kakunpc/angel64/alpha/rules.mk | 3 ++ keyboards/kakunpc/angel64/rev1/rules.mk | 3 ++ keyboards/kakunpc/angel64/rules.mk | 5 --- keyboards/oddball/{ => v1}/rules.mk | 2 -- keyboards/oddball/v2/rules.mk | 1 + keyboards/oddball/v2_1/rules.mk | 1 + keyboards/teleport/native/ansi/rules.mk | 1 + keyboards/teleport/native/iso/rules.mk | 1 + keyboards/teleport/native/rules.mk | 3 -- keyboards/westm/westm68/rev1/rules.mk | 2 ++ keyboards/westm/westm68/rev2/rules.mk | 2 ++ keyboards/westm/westm9/rev1/rules.mk | 2 ++ keyboards/westm/westm9/rev2/rules.mk | 2 ++ keyboards/woodkeys/meira/featherble/rules.mk | 3 ++ keyboards/woodkeys/meira/promicro/rules.mk | 3 ++ keyboards/woodkeys/meira/rules.mk | 4 --- keyboards/work_louder/loop/post_rules.mk | 1 + keyboards/work_louder/loop/rules.mk | 3 -- .../work_louder/work_board/post_rules.mk | 1 + keyboards/work_louder/work_board/rules.mk | 3 -- keyboards/zsa/planck_ez/base/rules.mk | 2 ++ keyboards/zsa/planck_ez/glow/rules.mk | 2 ++ keyboards/zsa/planck_ez/rules.mk | 4 --- 37 files changed, 90 insertions(+), 58 deletions(-) rename keyboards/{westm/westm9 => cannonkeys/db60/hotswap}/rules.mk (64%) rename keyboards/{westm/westm68 => cannonkeys/db60/j02}/rules.mk (63%) rename keyboards/cannonkeys/db60/{ => rev2}/rules.mk (62%) delete mode 100644 keyboards/converter/palm_usb/info.json rename keyboards/converter/palm_usb/{ => stowaway}/config.h (100%) rename keyboards/converter/palm_usb/{ => stowaway}/matrix.c (100%) rename keyboards/converter/palm_usb/{ => stowaway}/readme.md (100%) rename keyboards/converter/palm_usb/{ => stowaway}/rules.mk (65%) create mode 100644 keyboards/handwired/meck_tkl/blackpill_f401/rules.mk delete mode 100644 keyboards/handwired/meck_tkl/rules.mk rename keyboards/hhkb/ansi/{ => 32u2}/rules.mk (64%) create mode 100644 keyboards/hhkb/ansi/32u4/rules.mk create mode 100644 keyboards/kakunpc/angel64/alpha/rules.mk create mode 100644 keyboards/kakunpc/angel64/rev1/rules.mk delete mode 100644 keyboards/kakunpc/angel64/rules.mk rename keyboards/oddball/{ => v1}/rules.mk (53%) create mode 100644 keyboards/oddball/v2/rules.mk create mode 100644 keyboards/oddball/v2_1/rules.mk create mode 100644 keyboards/teleport/native/ansi/rules.mk create mode 100644 keyboards/teleport/native/iso/rules.mk delete mode 100644 keyboards/teleport/native/rules.mk create mode 100644 keyboards/westm/westm68/rev1/rules.mk create mode 100644 keyboards/westm/westm68/rev2/rules.mk create mode 100644 keyboards/westm/westm9/rev1/rules.mk create mode 100644 keyboards/westm/westm9/rev2/rules.mk delete mode 100644 keyboards/woodkeys/meira/rules.mk create mode 100644 keyboards/work_louder/loop/post_rules.mk delete mode 100644 keyboards/work_louder/loop/rules.mk create mode 100644 keyboards/work_louder/work_board/post_rules.mk delete mode 100644 keyboards/work_louder/work_board/rules.mk create mode 100644 keyboards/zsa/planck_ez/base/rules.mk create mode 100644 keyboards/zsa/planck_ez/glow/rules.mk delete mode 100644 keyboards/zsa/planck_ez/rules.mk diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index d03ff33f2c1..09549baf69e 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -1626,9 +1626,15 @@ "buzzard": { "target": "buzzard/rev1" }, + "cannonkeys/db60": { + "target": "cannonkeys/db60/rev2" + }, "clickety_split/leeloo": { "target": "clickety_split/leeloo/rev3" }, + "converter/palm_usb": { + "target": "converter/palm_usb/stowaway" + }, "crkbd": { "target": "crkbd/rev1" }, @@ -1713,6 +1719,9 @@ "handwired/dactyl_manuform/6x6": { "target": "handwired/dactyl_manuform/6x6/promicro" }, + "handwired/meck_tkl": { + "target": "handwired/meck_tkl/blackpill_f401" + }, "handwired/ms_sculpt_mobile": { "target": "handwired/ms_sculpt_mobile/teensy2pp" }, @@ -1752,6 +1761,9 @@ "hillside/46": { "target": "hillside/46/0_1" }, + "hhkb/ansi": { + "target": "hhkb/ansi/32u4" + }, "hillside/48": { "target": "hillside/48/0_1" }, @@ -1797,6 +1809,9 @@ "kakunpc/angel17": { "target": "kakunpc/angel17/rev1" }, + "kakunpc/angel64": { + "target": "kakunpc/angel64/rev1" + }, "kakunpc/business_card": { "target": "kakunpc/business_card/beta" }, @@ -2148,6 +2163,9 @@ "takashiski/namecard2x4": { "target": "takashiski/namecard2x4/rev2" }, + "teleport/native": { + "target": "teleport/native/iso" + }, "themadnoodle/noodlepad": { "target": "themadnoodle/noodlepad/v1" }, @@ -2181,6 +2199,21 @@ "vitamins_included": { "target": "vitamins_included/rev2" }, + "westm/westm68": { + "target": "westm/westm68/rev2" + }, + "westm/westm9": { + "target": "westm/westm9/rev2" + }, + "woodkeys/meira": { + "target": "woodkeys/meira/promicro" + }, + "work_louder/loop": { + "target": "work_louder/loop/rev3" + }, + "work_louder/work_board": { + "target": "work_louder/work_board/rev3" + }, "yanghu/unicorne": { "target": "yanghu/unicorne/f411" }, @@ -2195,5 +2228,8 @@ }, "yynmt/acperience12": { "target": "yynmt/acperience12/rev1" + }, + "zsa/planck_ez": { + "target": "zsa/planck_ez/base" } } diff --git a/keyboards/westm/westm9/rules.mk b/keyboards/cannonkeys/db60/hotswap/rules.mk similarity index 64% rename from keyboards/westm/westm9/rules.mk rename to keyboards/cannonkeys/db60/hotswap/rules.mk index 3ff78857b35..0ab54aaaf71 100644 --- a/keyboards/westm/westm9/rules.mk +++ b/keyboards/cannonkeys/db60/hotswap/rules.mk @@ -1,4 +1,2 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF - -DEFAULT_FOLDER = westm/westm9/rev2 diff --git a/keyboards/westm/westm68/rules.mk b/keyboards/cannonkeys/db60/j02/rules.mk similarity index 63% rename from keyboards/westm/westm68/rules.mk rename to keyboards/cannonkeys/db60/j02/rules.mk index 2a716f41c4a..0ab54aaaf71 100644 --- a/keyboards/westm/westm68/rules.mk +++ b/keyboards/cannonkeys/db60/j02/rules.mk @@ -1,4 +1,2 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF - -DEFAULT_FOLDER = westm/westm68/rev2 diff --git a/keyboards/cannonkeys/db60/rules.mk b/keyboards/cannonkeys/db60/rev2/rules.mk similarity index 62% rename from keyboards/cannonkeys/db60/rules.mk rename to keyboards/cannonkeys/db60/rev2/rules.mk index 60addd7fe72..0ab54aaaf71 100644 --- a/keyboards/cannonkeys/db60/rules.mk +++ b/keyboards/cannonkeys/db60/rev2/rules.mk @@ -1,4 +1,2 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF - -DEFAULT_FOLDER = cannonkeys/db60/rev2 diff --git a/keyboards/converter/palm_usb/info.json b/keyboards/converter/palm_usb/info.json deleted file mode 100644 index c5b893d7576..00000000000 --- a/keyboards/converter/palm_usb/info.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "keyboard_name": "Stowaway Converter", - "manufacturer": "QMK", - "url": "", - "maintainer": "qmk", - "usb": { - "vid": "0xFEED", - "pid": "0x0001", - "device_version": "1.0.0" - }, - "processor": "atmega32u4", - "bootloader": "caterina", - "features": { - "bootmagic": false, - "mousekey": false, - "extrakey": false, - "console": true, - "command": true - } -} diff --git a/keyboards/converter/palm_usb/config.h b/keyboards/converter/palm_usb/stowaway/config.h similarity index 100% rename from keyboards/converter/palm_usb/config.h rename to keyboards/converter/palm_usb/stowaway/config.h diff --git a/keyboards/converter/palm_usb/stowaway/keyboard.json b/keyboards/converter/palm_usb/stowaway/keyboard.json index 9a263327adf..c93957b7d83 100644 --- a/keyboards/converter/palm_usb/stowaway/keyboard.json +++ b/keyboards/converter/palm_usb/stowaway/keyboard.json @@ -1,4 +1,22 @@ { + "keyboard_name": "Stowaway Converter", + "manufacturer": "QMK", + "url": "", + "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x0001", + "device_version": "1.0.0" + }, + "processor": "atmega32u4", + "bootloader": "caterina", + "features": { + "bootmagic": false, + "mousekey": false, + "extrakey": false, + "console": true, + "command": true + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/converter/palm_usb/matrix.c b/keyboards/converter/palm_usb/stowaway/matrix.c similarity index 100% rename from keyboards/converter/palm_usb/matrix.c rename to keyboards/converter/palm_usb/stowaway/matrix.c diff --git a/keyboards/converter/palm_usb/readme.md b/keyboards/converter/palm_usb/stowaway/readme.md similarity index 100% rename from keyboards/converter/palm_usb/readme.md rename to keyboards/converter/palm_usb/stowaway/readme.md diff --git a/keyboards/converter/palm_usb/rules.mk b/keyboards/converter/palm_usb/stowaway/rules.mk similarity index 65% rename from keyboards/converter/palm_usb/rules.mk rename to keyboards/converter/palm_usb/stowaway/rules.mk index bdb3bb0d6bb..ccb8eb9ecc3 100644 --- a/keyboards/converter/palm_usb/rules.mk +++ b/keyboards/converter/palm_usb/stowaway/rules.mk @@ -3,5 +3,3 @@ CUSTOM_MATRIX = yes SRC += matrix.c UART_DRIVER_REQUIRED = yes - -DEFAULT_FOLDER = converter/palm_usb/stowaway diff --git a/keyboards/handwired/meck_tkl/blackpill_f401/rules.mk b/keyboards/handwired/meck_tkl/blackpill_f401/rules.mk new file mode 100644 index 00000000000..6e47ffcd670 --- /dev/null +++ b/keyboards/handwired/meck_tkl/blackpill_f401/rules.mk @@ -0,0 +1,2 @@ +AUDIO_SUPPORTED = no +BACKLIGHT_SUPPORTED = no diff --git a/keyboards/handwired/meck_tkl/rules.mk b/keyboards/handwired/meck_tkl/rules.mk deleted file mode 100644 index cdf3900ff0d..00000000000 --- a/keyboards/handwired/meck_tkl/rules.mk +++ /dev/null @@ -1,4 +0,0 @@ -AUDIO_SUPPORTED = no -BACKLIGHT_SUPPORTED = no - -DEFAULT_FOLDER = handwired/meck_tkl/blackpill_f401 diff --git a/keyboards/hhkb/ansi/rules.mk b/keyboards/hhkb/ansi/32u2/rules.mk similarity index 64% rename from keyboards/hhkb/ansi/rules.mk rename to keyboards/hhkb/ansi/32u2/rules.mk index 841565b8465..94eaaab9c06 100644 --- a/keyboards/hhkb/ansi/rules.mk +++ b/keyboards/hhkb/ansi/32u2/rules.mk @@ -2,5 +2,3 @@ CUSTOM_MATRIX = yes # project specific files SRC = matrix.c - -DEFAULT_FOLDER = hhkb/ansi/32u4 diff --git a/keyboards/hhkb/ansi/32u4/rules.mk b/keyboards/hhkb/ansi/32u4/rules.mk new file mode 100644 index 00000000000..94eaaab9c06 --- /dev/null +++ b/keyboards/hhkb/ansi/32u4/rules.mk @@ -0,0 +1,4 @@ +CUSTOM_MATRIX = yes + +# project specific files +SRC = matrix.c diff --git a/keyboards/kakunpc/angel64/alpha/rules.mk b/keyboards/kakunpc/angel64/alpha/rules.mk new file mode 100644 index 00000000000..09c02c88b0d --- /dev/null +++ b/keyboards/kakunpc/angel64/alpha/rules.mk @@ -0,0 +1,3 @@ +CUSTOM_MATRIX = yes + +SRC += matrix.c diff --git a/keyboards/kakunpc/angel64/rev1/rules.mk b/keyboards/kakunpc/angel64/rev1/rules.mk new file mode 100644 index 00000000000..09c02c88b0d --- /dev/null +++ b/keyboards/kakunpc/angel64/rev1/rules.mk @@ -0,0 +1,3 @@ +CUSTOM_MATRIX = yes + +SRC += matrix.c diff --git a/keyboards/kakunpc/angel64/rules.mk b/keyboards/kakunpc/angel64/rules.mk deleted file mode 100644 index c95d5297bd7..00000000000 --- a/keyboards/kakunpc/angel64/rules.mk +++ /dev/null @@ -1,5 +0,0 @@ -CUSTOM_MATRIX = yes - -SRC += matrix.c - -DEFAULT_FOLDER = kakunpc/angel64/rev1 diff --git a/keyboards/oddball/rules.mk b/keyboards/oddball/v1/rules.mk similarity index 53% rename from keyboards/oddball/rules.mk rename to keyboards/oddball/v1/rules.mk index 2fc8995acbe..84de35aeb14 100644 --- a/keyboards/oddball/rules.mk +++ b/keyboards/oddball/v1/rules.mk @@ -1,3 +1 @@ POINTING_DEVICE_DRIVER = adns9800 - -DEFAULT_FOLDER = oddball/v1 diff --git a/keyboards/oddball/v2/rules.mk b/keyboards/oddball/v2/rules.mk new file mode 100644 index 00000000000..84de35aeb14 --- /dev/null +++ b/keyboards/oddball/v2/rules.mk @@ -0,0 +1 @@ +POINTING_DEVICE_DRIVER = adns9800 diff --git a/keyboards/oddball/v2_1/rules.mk b/keyboards/oddball/v2_1/rules.mk new file mode 100644 index 00000000000..84de35aeb14 --- /dev/null +++ b/keyboards/oddball/v2_1/rules.mk @@ -0,0 +1 @@ +POINTING_DEVICE_DRIVER = adns9800 diff --git a/keyboards/teleport/native/ansi/rules.mk b/keyboards/teleport/native/ansi/rules.mk new file mode 100644 index 00000000000..942ef4c5dbd --- /dev/null +++ b/keyboards/teleport/native/ansi/rules.mk @@ -0,0 +1 @@ +RGB_MATRIX_CUSTOM_KB = yes diff --git a/keyboards/teleport/native/iso/rules.mk b/keyboards/teleport/native/iso/rules.mk new file mode 100644 index 00000000000..942ef4c5dbd --- /dev/null +++ b/keyboards/teleport/native/iso/rules.mk @@ -0,0 +1 @@ +RGB_MATRIX_CUSTOM_KB = yes diff --git a/keyboards/teleport/native/rules.mk b/keyboards/teleport/native/rules.mk deleted file mode 100644 index 53dc2b17475..00000000000 --- a/keyboards/teleport/native/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -RGB_MATRIX_CUSTOM_KB = yes - -DEFAULT_FOLDER = teleport/native/iso diff --git a/keyboards/westm/westm68/rev1/rules.mk b/keyboards/westm/westm68/rev1/rules.mk new file mode 100644 index 00000000000..0ab54aaaf71 --- /dev/null +++ b/keyboards/westm/westm68/rev1/rules.mk @@ -0,0 +1,2 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF diff --git a/keyboards/westm/westm68/rev2/rules.mk b/keyboards/westm/westm68/rev2/rules.mk new file mode 100644 index 00000000000..0ab54aaaf71 --- /dev/null +++ b/keyboards/westm/westm68/rev2/rules.mk @@ -0,0 +1,2 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF diff --git a/keyboards/westm/westm9/rev1/rules.mk b/keyboards/westm/westm9/rev1/rules.mk new file mode 100644 index 00000000000..0ab54aaaf71 --- /dev/null +++ b/keyboards/westm/westm9/rev1/rules.mk @@ -0,0 +1,2 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF diff --git a/keyboards/westm/westm9/rev2/rules.mk b/keyboards/westm/westm9/rev2/rules.mk new file mode 100644 index 00000000000..0ab54aaaf71 --- /dev/null +++ b/keyboards/westm/westm9/rev2/rules.mk @@ -0,0 +1,2 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF diff --git a/keyboards/woodkeys/meira/featherble/rules.mk b/keyboards/woodkeys/meira/featherble/rules.mk index 3437a35bdf1..44ebb2c1fe2 100644 --- a/keyboards/woodkeys/meira/featherble/rules.mk +++ b/keyboards/woodkeys/meira/featherble/rules.mk @@ -1,2 +1,5 @@ # Processor frequency F_CPU = 8000000 + +CUSTOM_MATRIX = yes +SRC += matrix.c diff --git a/keyboards/woodkeys/meira/promicro/rules.mk b/keyboards/woodkeys/meira/promicro/rules.mk index 09057bea54b..32a05accc57 100644 --- a/keyboards/woodkeys/meira/promicro/rules.mk +++ b/keyboards/woodkeys/meira/promicro/rules.mk @@ -1,3 +1,6 @@ +CUSTOM_MATRIX = yes +SRC += matrix.c + # Disable unsupported hardware RGBLIGHT_SUPPORTED = no AUDIO_SUPPORTED = no diff --git a/keyboards/woodkeys/meira/rules.mk b/keyboards/woodkeys/meira/rules.mk deleted file mode 100644 index 423c14cfb73..00000000000 --- a/keyboards/woodkeys/meira/rules.mk +++ /dev/null @@ -1,4 +0,0 @@ -CUSTOM_MATRIX = yes -SRC += matrix.c - -DEFAULT_FOLDER = woodkeys/meira/promicro diff --git a/keyboards/work_louder/loop/post_rules.mk b/keyboards/work_louder/loop/post_rules.mk new file mode 100644 index 00000000000..e0822c009b2 --- /dev/null +++ b/keyboards/work_louder/loop/post_rules.mk @@ -0,0 +1 @@ +SRC += rgb_functions.c diff --git a/keyboards/work_louder/loop/rules.mk b/keyboards/work_louder/loop/rules.mk deleted file mode 100644 index 53c3227972d..00000000000 --- a/keyboards/work_louder/loop/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -SRC += rgb_functions.c - -DEFAULT_FOLDER = work_louder/loop/rev3 diff --git a/keyboards/work_louder/work_board/post_rules.mk b/keyboards/work_louder/work_board/post_rules.mk new file mode 100644 index 00000000000..e0822c009b2 --- /dev/null +++ b/keyboards/work_louder/work_board/post_rules.mk @@ -0,0 +1 @@ +SRC += rgb_functions.c diff --git a/keyboards/work_louder/work_board/rules.mk b/keyboards/work_louder/work_board/rules.mk deleted file mode 100644 index a4c45393c01..00000000000 --- a/keyboards/work_louder/work_board/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -SRC += rgb_functions.c - -DEFAULT_FOLDER = work_louder/work_board/rev3 diff --git a/keyboards/zsa/planck_ez/base/rules.mk b/keyboards/zsa/planck_ez/base/rules.mk new file mode 100644 index 00000000000..c0b951fba9d --- /dev/null +++ b/keyboards/zsa/planck_ez/base/rules.mk @@ -0,0 +1,2 @@ +RGBLIGHT_SUPPORTED = no +BACKLIGHT_SUPPORTED = no diff --git a/keyboards/zsa/planck_ez/glow/rules.mk b/keyboards/zsa/planck_ez/glow/rules.mk new file mode 100644 index 00000000000..c0b951fba9d --- /dev/null +++ b/keyboards/zsa/planck_ez/glow/rules.mk @@ -0,0 +1,2 @@ +RGBLIGHT_SUPPORTED = no +BACKLIGHT_SUPPORTED = no diff --git a/keyboards/zsa/planck_ez/rules.mk b/keyboards/zsa/planck_ez/rules.mk deleted file mode 100644 index 67921c96ed8..00000000000 --- a/keyboards/zsa/planck_ez/rules.mk +++ /dev/null @@ -1,4 +0,0 @@ -RGBLIGHT_SUPPORTED = no -BAKCLIGHT_SUPPORTED = no - -DEFAULT_FOLDER = zsa/planck_ez/base From c00b0c5bc96b4cd5d096d3c8701e86be9aba4982 Mon Sep 17 00:00:00 2001 From: Steve Storck Date: Sun, 16 Feb 2025 16:41:07 -0500 Subject: [PATCH 228/365] Created SH1107 driver for quantum painter (#24724) Co-authored-by: Sergey Vlasov --- drivers/painter/sh1107/qp_sh1107.c | 218 +++++++++++++++++++++ drivers/painter/sh1107/qp_sh1107.h | 64 ++++++ drivers/painter/sh1107/qp_sh1107_opcodes.h | 25 +++ quantum/painter/qp.h | 6 + quantum/painter/qp_internal.c | 1 + quantum/painter/rules.mk | 25 +++ 6 files changed, 339 insertions(+) create mode 100644 drivers/painter/sh1107/qp_sh1107.c create mode 100644 drivers/painter/sh1107/qp_sh1107.h create mode 100644 drivers/painter/sh1107/qp_sh1107_opcodes.h diff --git a/drivers/painter/sh1107/qp_sh1107.c b/drivers/painter/sh1107/qp_sh1107.c new file mode 100644 index 00000000000..f4cbd49e402 --- /dev/null +++ b/drivers/painter/sh1107/qp_sh1107.c @@ -0,0 +1,218 @@ +#include "qp_internal.h" +#include "qp_comms.h" +#include "qp_surface_internal.h" +#include "qp_oled_panel.h" +#include "qp_sh1107.h" +#include "qp_sh1107_opcodes.h" +#include "qp_surface.h" + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Driver storage +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +typedef struct sh1107_device_t { + oled_panel_painter_device_t oled; + + uint8_t framebuffer[SURFACE_REQUIRED_BUFFER_BYTE_SIZE(128, 128, 1)]; +} sh1107_device_t; + +static sh1107_device_t sh1107_drivers[SH1107_NUM_DEVICES] = {0}; + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Quantum Painter API implementations + +// Initialisation +__attribute__((weak)) bool qp_sh1107_init(painter_device_t device, painter_rotation_t rotation) { + sh1107_device_t *driver = (sh1107_device_t *)device; + + // Change the surface geometry based on the panel rotation + if (rotation == QP_ROTATION_90 || rotation == QP_ROTATION_270) { + driver->oled.surface.base.panel_width = driver->oled.base.panel_height; + driver->oled.surface.base.panel_height = driver->oled.base.panel_width; + } else { + driver->oled.surface.base.panel_width = driver->oled.base.panel_width; + driver->oled.surface.base.panel_height = driver->oled.base.panel_height; + } + + // Init the internal surface + if (!qp_init(&driver->oled.surface.base, QP_ROTATION_0)) { + qp_dprintf("Failed to init internal surface in qp_sh1107_init\n"); + return false; + } + + // clang-format off + uint8_t sh1107_init_sequence[] = { + // Command, Delay, N, Data[N] + SH1107_SET_MUX_RATIO, 0, 1, 0x7F, // 1/128 duty + SH1107_DISPLAY_OFFSET, 0, 1, 0x00, + SH1107_SET_START_LINE, 0, 1, 0x00, // Different from SH1106 + SH1107_SET_SEGMENT_REMAP_INV, 0, 0, + SH1107_COM_SCAN_DIR_DEC, 0, 0, + SH1107_COM_PADS_HW_CFG, 0, 1, 0x12, + SH1107_SET_CONTRAST, 0, 1, 0x7F, + SH1107_ALL_ON_RESUME, 0, 0, + SH1107_NON_INVERTING_DISPLAY, 0, 0, + SH1107_SET_OSC_DIVFREQ, 0, 1, 0x80, + SH1107_SET_CHARGE_PUMP, 0, 1, 0x14, + SH1107_DISPLAY_ON, 0, 0, + }; + // clang-format on + + // If the display width is anything other than the default 128 pixels, change SH1107_SET_MUX_RATIO data byte to the correct value. + if (driver->oled.base.panel_width != 128) { + sh1107_init_sequence[3] = driver->oled.base.panel_width - 1; + } + + // If the display width is less than the default 128 pixels, change SH1107_DISPLAY_OFFSET to use the center columns. + if (driver->oled.base.panel_width < 128) { + sh1107_init_sequence[7] = (128U - driver->oled.base.panel_width) / 2; + } + + // For smaller displays, change SH1107_COM_PADS_HW_CFG data byte from alternative (0x12) to sequential (0x02) configuration + if (driver->oled.base.panel_height <= 64) { + sh1107_init_sequence[20] = 0x02; + } + + qp_comms_bulk_command_sequence(device, sh1107_init_sequence, sizeof(sh1107_init_sequence)); + return true; +} + +// Screen flush +bool qp_sh1107_flush(painter_device_t device) { + sh1107_device_t *driver = (sh1107_device_t *)device; + + if (!driver->oled.surface.dirty.is_dirty) { + return true; + } + + switch (driver->oled.base.rotation) { + default: + case QP_ROTATION_0: + qp_oled_panel_page_column_flush_rot0(device, &driver->oled.surface.dirty, driver->framebuffer); + break; + case QP_ROTATION_90: + qp_oled_panel_page_column_flush_rot90(device, &driver->oled.surface.dirty, driver->framebuffer); + break; + case QP_ROTATION_180: + qp_oled_panel_page_column_flush_rot180(device, &driver->oled.surface.dirty, driver->framebuffer); + break; + case QP_ROTATION_270: + qp_oled_panel_page_column_flush_rot270(device, &driver->oled.surface.dirty, driver->framebuffer); + break; + } + + // Clear the dirty area + qp_flush(&driver->oled.surface); + + return true; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Driver vtable +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +const oled_panel_painter_driver_vtable_t sh1107_driver_vtable = { + .base = + { + .init = qp_sh1107_init, + .power = qp_oled_panel_power, + .clear = qp_oled_panel_clear, + .flush = qp_sh1107_flush, + .pixdata = qp_oled_panel_passthru_pixdata, + .viewport = qp_oled_panel_passthru_viewport, + .palette_convert = qp_oled_panel_passthru_palette_convert, + .append_pixels = qp_oled_panel_passthru_append_pixels, + .append_pixdata = qp_oled_panel_passthru_append_pixdata, + }, + .opcodes = + { + .display_on = SH1107_DISPLAY_ON, + .display_off = SH1107_DISPLAY_OFF, + .set_page = SH1107_PAGE_ADDR, + .set_column_lsb = SH1107_SETCOLUMN_LSB, + .set_column_msb = SH1107_SETCOLUMN_MSB, + }, +}; + +#ifdef QUANTUM_PAINTER_SH1107_SPI_ENABLE +// Factory function for creating a handle to the SH1107 device +painter_device_t qp_sh1107_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode) { + for (uint32_t i = 0; i < SH1107_NUM_DEVICES; ++i) { + sh1107_device_t *driver = &sh1107_drivers[i]; + if (!driver->oled.base.driver_vtable) { + painter_device_t surface = qp_make_mono1bpp_surface_advanced(&driver->oled.surface, 1, panel_width, panel_height, driver->framebuffer); + if (!surface) { + return NULL; + } + + // Setup the OLED device + driver->oled.base.driver_vtable = (const painter_driver_vtable_t *)&sh1107_driver_vtable; + driver->oled.base.comms_vtable = (const painter_comms_vtable_t *)&spi_comms_with_dc_vtable; + driver->oled.base.native_bits_per_pixel = 1; // 1bpp mono + driver->oled.base.panel_width = panel_width; + driver->oled.base.panel_height = panel_height; + driver->oled.base.rotation = QP_ROTATION_0; + driver->oled.base.offset_x = 0; + driver->oled.base.offset_y = 0; + + // SPI and other pin configuration + driver->oled.base.comms_config = &driver->oled.spi_dc_reset_config; + driver->oled.spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin; + driver->oled.spi_dc_reset_config.spi_config.divisor = spi_divisor; + driver->oled.spi_dc_reset_config.spi_config.lsb_first = false; + driver->oled.spi_dc_reset_config.spi_config.mode = spi_mode; + driver->oled.spi_dc_reset_config.dc_pin = dc_pin; + driver->oled.spi_dc_reset_config.reset_pin = reset_pin; + driver->oled.spi_dc_reset_config.command_params_uses_command_pin = true; + + if (!qp_internal_register_device((painter_device_t)driver)) { + memset(driver, 0, sizeof(sh1107_device_t)); + return NULL; + } + + return (painter_device_t)driver; + } + } + return NULL; +} + +#endif // QUANTUM_PAINTER_SH1107_SPI_ENABLE + +#ifdef QUANTUM_PAINTER_SH1107_I2C_ENABLE +// Factory function for creating a handle to the SH1107 device +painter_device_t qp_sh1107_make_i2c_device(uint16_t panel_width, uint16_t panel_height, uint8_t i2c_address) { + for (uint32_t i = 0; i < SH1107_NUM_DEVICES; ++i) { + sh1107_device_t *driver = &sh1107_drivers[i]; + if (!driver->oled.base.driver_vtable) { + // Instantiate the surface + painter_device_t surface = qp_make_mono1bpp_surface_advanced(&driver->oled.surface, 1, panel_width, panel_height, driver->framebuffer); + if (!surface) { + return NULL; + } + + // Setup the OLED device + driver->oled.base.driver_vtable = (const painter_driver_vtable_t *)&sh1107_driver_vtable; + driver->oled.base.comms_vtable = (const painter_comms_vtable_t *)&i2c_comms_cmddata_vtable; + driver->oled.base.native_bits_per_pixel = 1; // 1bpp mono + driver->oled.base.panel_width = panel_width; + driver->oled.base.panel_height = panel_height; + driver->oled.base.rotation = QP_ROTATION_0; + driver->oled.base.offset_x = 0; + driver->oled.base.offset_y = 0; + + // I2C configuration + driver->oled.base.comms_config = &driver->oled.i2c_config; + driver->oled.i2c_config.chip_address = i2c_address; + + if (!qp_internal_register_device((painter_device_t)driver)) { + memset(driver, 0, sizeof(sh1107_device_t)); + return NULL; + } + + return (painter_device_t)driver; + } + } + return NULL; +} + +#endif // QUANTUM_PAINTER_SH1107_I2C_ENABLE diff --git a/drivers/painter/sh1107/qp_sh1107.h b/drivers/painter/sh1107/qp_sh1107.h new file mode 100644 index 00000000000..2b866d7dc85 --- /dev/null +++ b/drivers/painter/sh1107/qp_sh1107.h @@ -0,0 +1,64 @@ +#pragma once + +#include "gpio.h" +#include "qp_internal.h" + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Quantum Painter SH1107 configurables (add to your keyboard's config.h) + +#if defined(QUANTUM_PAINTER_SH1107_SPI_ENABLE) && !defined(SH1107_NUM_SPI_DEVICES) +/** + * @def This controls the maximum number of SPI SH1107 devices that Quantum Painter can communicate with at any one time. + * Increasing this number allows for multiple displays to be used. + */ +# define SH1107_NUM_SPI_DEVICES 1 +#else +# define SH1107_NUM_SPI_DEVICES 0 +#endif + +#if defined(QUANTUM_PAINTER_SH1107_I2C_ENABLE) && !defined(SH1107_NUM_I2C_DEVICES) +/** + * @def This controls the maximum number of I2C SH1107 devices that Quantum Painter can communicate with at any one time. + * Increasing this number allows for multiple displays to be used. + */ +# define SH1107_NUM_I2C_DEVICES 1 +#else +# define SH1107_NUM_I2C_DEVICES 0 +#endif + +#define SH1107_NUM_DEVICES ((SH1107_NUM_SPI_DEVICES) + (SH1107_NUM_I2C_DEVICES)) + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Quantum Painter SH1107 device factories + +#ifdef QUANTUM_PAINTER_SH1107_SPI_ENABLE + +/** + * Factory method for an SH1107 SPI LCD device. + * + * @param panel_width[in] the width of the display in pixels (usually 64) + * @param panel_height[in] the height of the display in pixels (usually 128) + * @param chip_select_pin[in] the GPIO pin used for SPI chip select + * @param dc_pin[in] the GPIO pin used for D/C control + * @param reset_pin[in] the GPIO pin used for RST + * @param spi_divisor[in] the SPI divisor to use when communicating with the display + * @param spi_mode[in] the SPI mode to use when communicating with the display + * @return the device handle used with all drawing routines in Quantum Painter + */ +painter_device_t qp_sh1107_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode); + +#endif // QUANTUM_PAINTER_SH1107_SPI_ENABLE + +#ifdef QUANTUM_PAINTER_SH1107_I2C_ENABLE + +/** + * Factory method for an SH1107 I2C LCD device. + * + * @param panel_width[in] the width of the display in pixels (usually 64) + * @param panel_height[in] the height of the display in pixels (usually 128) + * @param i2c_address[in] the I2C address to use + * @return the device handle used with all drawing routines in Quantum Painter + */ +painter_device_t qp_sh1107_make_i2c_device(uint16_t panel_width, uint16_t panel_height, uint8_t i2c_address); + +#endif // QUANTUM_PAINTER_SH1107_I2C_ENABLE diff --git a/drivers/painter/sh1107/qp_sh1107_opcodes.h b/drivers/painter/sh1107/qp_sh1107_opcodes.h new file mode 100644 index 00000000000..818bf409289 --- /dev/null +++ b/drivers/painter/sh1107/qp_sh1107_opcodes.h @@ -0,0 +1,25 @@ +// Copyright 2024 Steve Branam (@smbranam) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define SH1107_DISPLAY_ON 0xAF +#define SH1107_DISPLAY_OFF 0xAE +#define SH1107_SET_OSC_DIVFREQ 0xD5 +#define SH1107_SET_MUX_RATIO 0xA8 +#define SH1107_DISPLAY_OFFSET 0xD3 +#define SH1107_SET_START_LINE 0xDC // Key/sole difference from SH1106 (which uses 0x40) +#define SH1107_SET_CHARGE_PUMP 0x8D +#define SH1107_SET_SEGMENT_REMAP_NORMAL 0xA0 +#define SH1107_SET_SEGMENT_REMAP_INV 0xA1 +#define SH1107_COM_SCAN_DIR_INC 0xC0 +#define SH1107_COM_SCAN_DIR_DEC 0xC8 +#define SH1107_COM_PADS_HW_CFG 0xDA +#define SH1107_SET_CONTRAST 0x81 +#define SH1107_SET_PRECHARGE_PERIOD 0xD9 +#define SH1107_VCOM_DESELECT_LEVEL 0xDB +#define SH1107_ALL_ON_RESUME 0xA4 +#define SH1107_NON_INVERTING_DISPLAY 0xA6 +#define SH1107_DEACTIVATE_SCROLL 0x2E +#define SH1107_SETCOLUMN_LSB 0x00 +#define SH1107_SETCOLUMN_MSB 0x10 +#define SH1107_PAGE_ADDR 0xB0 diff --git a/quantum/painter/qp.h b/quantum/painter/qp.h index 3dc77b42cfb..f7fdb027893 100644 --- a/quantum/painter/qp.h +++ b/quantum/painter/qp.h @@ -557,6 +557,12 @@ int16_t qp_drawtext_recolor(painter_device_t device, uint16_t x, uint16_t y, pai # define SH1106_NUM_DEVICES 0 #endif // QUANTUM_PAINTER_SH1106_ENABLE +#ifdef QUANTUM_PAINTER_SH1107_ENABLE +# include "qp_sh1107.h" +#else // QUANTUM_PAINTER_SH1107_ENABLE +# define SH1107_NUM_DEVICES 0 +#endif // QUANTUM_PAINTER_SH1107_ENABLE + #ifdef QUANTUM_PAINTER_LD7032_ENABLE # include "qp_ld7032.h" #else // QUANTUM_PAINTER_LD7032_ENABLE diff --git a/quantum/painter/qp_internal.c b/quantum/painter/qp_internal.c index 5097edfa074..24b881bd090 100644 --- a/quantum/painter/qp_internal.c +++ b/quantum/painter/qp_internal.c @@ -19,6 +19,7 @@ enum { + (GC9107_NUM_DEVICES) // GC9107 + (SSD1351_NUM_DEVICES) // SSD1351 + (SH1106_NUM_DEVICES) // SH1106 + + (SH1107_NUM_DEVICES) // SH1107 + (LD7032_NUM_DEVICES) // LD7032 }; diff --git a/quantum/painter/rules.mk b/quantum/painter/rules.mk index b773dd091c3..10c2698092b 100644 --- a/quantum/painter/rules.mk +++ b/quantum/painter/rules.mk @@ -18,6 +18,8 @@ VALID_QUANTUM_PAINTER_DRIVERS := \ ssd1351_spi \ sh1106_i2c \ sh1106_spi \ + sh1107_i2c \ + sh1107_spi \ ld7032_i2c \ ld7032_spi @@ -184,6 +186,29 @@ define handle_quantum_painter_driver $(DRIVER_PATH)/painter/oled_panel/qp_oled_panel.c \ $(DRIVER_PATH)/painter/sh1106/qp_sh1106.c + else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),sh1107_spi) + QUANTUM_PAINTER_NEEDS_SURFACE := yes + QUANTUM_PAINTER_NEEDS_COMMS_SPI := yes + QUANTUM_PAINTER_NEEDS_COMMS_SPI_DC_RESET := yes + OPT_DEFS += -DQUANTUM_PAINTER_SH1107_ENABLE -DQUANTUM_PAINTER_SH1107_SPI_ENABLE + COMMON_VPATH += \ + $(DRIVER_PATH)/painter/oled_panel \ + $(DRIVER_PATH)/painter/sh1107 + SRC += \ + $(DRIVER_PATH)/painter/oled_panel/qp_oled_panel.c \ + $(DRIVER_PATH)/painter/sh1107/qp_sh1107.c + + else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),sh1107_i2c) + QUANTUM_PAINTER_NEEDS_SURFACE := yes + QUANTUM_PAINTER_NEEDS_COMMS_I2C := yes + OPT_DEFS += -DQUANTUM_PAINTER_SH1107_ENABLE -DQUANTUM_PAINTER_SH1107_I2C_ENABLE + COMMON_VPATH += \ + $(DRIVER_PATH)/painter/oled_panel \ + $(DRIVER_PATH)/painter/sh1107 + SRC += \ + $(DRIVER_PATH)/painter/oled_panel/qp_oled_panel.c \ + $(DRIVER_PATH)/painter/sh1107/qp_sh1107.c + else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),ld7032_spi) QUANTUM_PAINTER_NEEDS_SURFACE := yes QUANTUM_PAINTER_NEEDS_COMMS_SPI := yes From a5c77b5c45d377a01e25d9d479b7e245f2159cba Mon Sep 17 00:00:00 2001 From: Juno Nguyen Date: Wed, 19 Feb 2025 00:04:57 +0800 Subject: [PATCH 229/365] Fix startup sound for Planck (#24893) --- keyboards/planck/config.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/keyboards/planck/config.h b/keyboards/planck/config.h index 469d237b861..d7d071ad82c 100644 --- a/keyboards/planck/config.h +++ b/keyboards/planck/config.h @@ -20,6 +20,8 @@ along with this program. If not, see . #define AUDIO_VOICES #define AUDIO_PIN C6 +#define AUDIO_INIT_DELAY + /* * Feature disable options * These options are also useful to firmware size reduction. From 6d0e5728aa61b442885d48caf49d29e5c60e8197 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 20 Feb 2025 14:07:18 +0000 Subject: [PATCH 230/365] Bump JamesIves/github-pages-deploy-action from 4.7.2 to 4.7.3 (#24933) Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.7.2 to 4.7.3. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.7.2...v4.7.3) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index edce1a6e5c8..34319675bfd 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -56,7 +56,7 @@ jobs: - name: Deploy if: ${{ github.event_name == 'push' && github.repository == 'qmk/qmk_firmware' }} - uses: JamesIves/github-pages-deploy-action@v4.7.2 + uses: JamesIves/github-pages-deploy-action@v4.7.3 with: token: ${{ secrets.GITHUB_TOKEN }} branch: gh-pages From 50967dbe7e5137f74365b9989e10f03e94d92926 Mon Sep 17 00:00:00 2001 From: ploopyco <54917504+ploopyco@users.noreply.github.com> Date: Fri, 21 Feb 2025 03:01:29 -0500 Subject: [PATCH 231/365] Updates to Ploopy Classic, Mouse, and Thumb for RP2040 hardware upgrade (#24880) Co-authored-by: Drashna Jaelre --- keyboards/ploopyco/mouse/config.h | 11 ------- .../mouse/{keyboard.json => info.json} | 27 +++------------ keyboards/ploopyco/mouse/post_rules.mk | 1 + keyboards/ploopyco/mouse/readme.md | 6 ++-- keyboards/ploopyco/mouse/rev1_002/config.h | 33 +++++++++++++++++++ .../ploopyco/mouse/rev1_002/keyboard.json | 21 ++++++++++++ keyboards/ploopyco/mouse/rev1_002/readme.md | 3 ++ .../ploopyco/mouse/{ => rev1_002}/rules.mk | 2 -- keyboards/ploopyco/mouse/rev1_003/config.h | 32 ++++++++++++++++++ .../ploopyco/mouse/rev1_003/keyboard.json | 25 ++++++++++++++ keyboards/ploopyco/mouse/rev1_003/readme.md | 3 ++ keyboards/ploopyco/trackball/config.h | 11 +------ keyboards/ploopyco/trackball/info.json | 5 ++- keyboards/ploopyco/trackball/post_rules.mk | 1 + keyboards/ploopyco/trackball/readme.md | 25 +++++++++----- .../trackball/{rev1 => rev1_004}/config.h | 6 ++++ .../{rev1 => rev1_004}/keyboard.json | 0 .../trackball/{rev1 => rev1_004}/readme.md | 0 .../ploopyco/trackball/rev1_004/rules.mk | 2 ++ .../ploopyco/trackball/rev1_005/config.h | 9 +++++ .../ploopyco/trackball/rev1_005/readme.md | 4 +-- .../ploopyco/trackball/rev1_005/rules.mk | 2 ++ .../ploopyco/trackball/rev1_007/config.h | 32 ++++++++++++++++++ .../ploopyco/trackball/rev1_007/keyboard.json | 25 ++++++++++++++ .../ploopyco/trackball/rev1_007/readme.md | 3 ++ keyboards/ploopyco/trackball/rules.mk | 6 ---- keyboards/ploopyco/trackball_thumb/config.h | 6 ---- keyboards/ploopyco/trackball_thumb/info.json | 14 ++++---- .../ploopyco/trackball_thumb/post_rules.mk | 1 + keyboards/ploopyco/trackball_thumb/readme.md | 4 +-- .../trackball_thumb/rev1_001/config.h | 6 ++++ .../trackball_thumb/rev1_001/keyboard.json | 12 +++---- .../trackball_thumb/rev1_001/readme.md | 4 +-- .../trackball_thumb/rev1_001/rules.mk | 2 ++ .../trackball_thumb/rev1_002/config.h | 32 ++++++++++++++++++ .../trackball_thumb/rev1_002/keyboard.json | 25 ++++++++++++++ .../trackball_thumb/rev1_002/readme.md | 3 ++ keyboards/ploopyco/trackball_thumb/rules.mk | 6 ---- 38 files changed, 311 insertions(+), 99 deletions(-) rename keyboards/ploopyco/mouse/{keyboard.json => info.json} (69%) create mode 100644 keyboards/ploopyco/mouse/post_rules.mk create mode 100644 keyboards/ploopyco/mouse/rev1_002/config.h create mode 100644 keyboards/ploopyco/mouse/rev1_002/keyboard.json create mode 100644 keyboards/ploopyco/mouse/rev1_002/readme.md rename keyboards/ploopyco/mouse/{ => rev1_002}/rules.mk (52%) create mode 100644 keyboards/ploopyco/mouse/rev1_003/config.h create mode 100644 keyboards/ploopyco/mouse/rev1_003/keyboard.json create mode 100644 keyboards/ploopyco/mouse/rev1_003/readme.md create mode 100644 keyboards/ploopyco/trackball/post_rules.mk rename keyboards/ploopyco/trackball/{rev1 => rev1_004}/config.h (90%) rename keyboards/ploopyco/trackball/{rev1 => rev1_004}/keyboard.json (100%) rename keyboards/ploopyco/trackball/{rev1 => rev1_004}/readme.md (100%) create mode 100644 keyboards/ploopyco/trackball/rev1_004/rules.mk create mode 100644 keyboards/ploopyco/trackball/rev1_005/rules.mk create mode 100644 keyboards/ploopyco/trackball/rev1_007/config.h create mode 100644 keyboards/ploopyco/trackball/rev1_007/keyboard.json create mode 100644 keyboards/ploopyco/trackball/rev1_007/readme.md delete mode 100644 keyboards/ploopyco/trackball/rules.mk create mode 100644 keyboards/ploopyco/trackball_thumb/post_rules.mk create mode 100644 keyboards/ploopyco/trackball_thumb/rev1_001/rules.mk create mode 100644 keyboards/ploopyco/trackball_thumb/rev1_002/config.h create mode 100644 keyboards/ploopyco/trackball_thumb/rev1_002/keyboard.json create mode 100644 keyboards/ploopyco/trackball_thumb/rev1_002/readme.md delete mode 100644 keyboards/ploopyco/trackball_thumb/rules.mk diff --git a/keyboards/ploopyco/mouse/config.h b/keyboards/ploopyco/mouse/config.h index 0f8774dcd7f..0645283880d 100644 --- a/keyboards/ploopyco/mouse/config.h +++ b/keyboards/ploopyco/mouse/config.h @@ -18,11 +18,6 @@ #pragma once -// These pins are not broken out, and cannot be used normally. -// They are set as output and pulled high, by default -#define UNUSABLE_PINS \ - { B4, D6, F1, F5, F6, F7 } - /* disable action features */ //#define NO_ACTION_LAYER //#define NO_ACTION_TAPPING @@ -30,13 +25,7 @@ // #define DEBUG_LED_PIN F7 -/* PMW33XX Settings */ -#define PMW33XX_CS_PIN B0 - #define ENCODER_BUTTON_COL 1 #define ENCODER_BUTTON_ROW 0 /* Custom encoder needs to specify just how many encoders we have */ #define NUM_ENCODERS 1 - -#define ENCODER_A_PINS { F0 } -#define ENCODER_B_PINS { F4 } diff --git a/keyboards/ploopyco/mouse/keyboard.json b/keyboards/ploopyco/mouse/info.json similarity index 69% rename from keyboards/ploopyco/mouse/keyboard.json rename to keyboards/ploopyco/mouse/info.json index 4c81ee73383..1a70989f256 100644 --- a/keyboards/ploopyco/mouse/keyboard.json +++ b/keyboards/ploopyco/mouse/info.json @@ -1,6 +1,6 @@ { "keyboard_name": "Mouse", - "manufacturer": "PloopyCo", + "manufacturer": "Ploopy", "url": "www.ploopy.co", "maintainer": "drashna", "usb": { @@ -9,6 +9,9 @@ "device_version": "0.0.1", "max_power": 100 }, + "bootmagic": { + "matrix": [0, 3] + }, "features": { "bootmagic": true, "extrakey": true, @@ -17,28 +20,6 @@ "pointing_device": true, "encoder": true }, - "bootmagic": { - "matrix": [0, 3] - }, - "ws2812": { - "pin": "B5" - }, - "rgblight": { - "led_count": 4, - "max_brightness": 40, - "animations": { - "breathing": true, - "rainbow_mood": true, - "rainbow_swirl": true - } - }, - "processor": "atmega32u4", - "bootloader": "atmel-dfu", - "matrix_pins": { - "direct": [ - ["D4", "D2", "E6", "B6", "D7", "C6", "C7", "B7"] - ] - }, "encoder": { "driver": "custom" }, diff --git a/keyboards/ploopyco/mouse/post_rules.mk b/keyboards/ploopyco/mouse/post_rules.mk new file mode 100644 index 00000000000..0d1a00b89e0 --- /dev/null +++ b/keyboards/ploopyco/mouse/post_rules.mk @@ -0,0 +1 @@ +POINTING_DEVICE_DRIVER = pmw3360 \ No newline at end of file diff --git a/keyboards/ploopyco/mouse/readme.md b/keyboards/ploopyco/mouse/readme.md index 060448c2bf2..c5c6bb7dcef 100644 --- a/keyboards/ploopyco/mouse/readme.md +++ b/keyboards/ploopyco/mouse/readme.md @@ -6,14 +6,14 @@ It's a DIY, QMK Powered Mouse!!!! * Keyboard Maintainer: [PloopyCo](https://github.com/ploopyco), [Drashna Jael're](https://github.com/drashna/), [Germ](https://github.com/germ/) -* Hardware Supported: ATMega32u4 8MHz(3.3v) +* Hardware Supported: ATMega32u4 8MHz(3.3v), Raspberry RP2040 * Hardware Availability: [Store](https://ploopy.co), [GitHub](https://github.com/ploopyco) Make example for this keyboard (after setting up your build environment): make ploopyco/mouse:default:flash - -To jump to the bootloader, hold down "Button 4" (the "forward" button on the left side) + +To jump to the bootloader, hold down "Button 4" (the "forward" button on the left side) See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/ploopyco/mouse/rev1_002/config.h b/keyboards/ploopyco/mouse/rev1_002/config.h new file mode 100644 index 00000000000..49b53bc8dd9 --- /dev/null +++ b/keyboards/ploopyco/mouse/rev1_002/config.h @@ -0,0 +1,33 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * Copyright 2020 Ploopy Corporation + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +// These pins are not broken out, and cannot be used normally. +// They are set as output and pulled high, by default +#define UNUSABLE_PINS \ + { B4, D6, F1, F5, F6, F7 } + +// If board has a debug LED, you can enable it by defining this +// #define DEBUG_LED_PIN F7 + +/* PMW33XX Settings */ +#define PMW33XX_CS_PIN B0 + +#define ENCODER_A_PINS { F0 } +#define ENCODER_B_PINS { F4 } diff --git a/keyboards/ploopyco/mouse/rev1_002/keyboard.json b/keyboards/ploopyco/mouse/rev1_002/keyboard.json new file mode 100644 index 00000000000..bfed3232f06 --- /dev/null +++ b/keyboards/ploopyco/mouse/rev1_002/keyboard.json @@ -0,0 +1,21 @@ +{ + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "matrix_pins": { + "direct": [ + ["D4", "D2", "E6", "B6", "D7", "C6", "C7", "B7"] + ] + }, + "ws2812": { + "pin": "B5" + }, + "rgblight": { + "led_count": 3, + "max_brightness": 40, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true + } + } +} diff --git a/keyboards/ploopyco/mouse/rev1_002/readme.md b/keyboards/ploopyco/mouse/rev1_002/readme.md new file mode 100644 index 00000000000..a9400ea1008 --- /dev/null +++ b/keyboards/ploopyco/mouse/rev1_002/readme.md @@ -0,0 +1,3 @@ +See the [main readme](../readme.md) for more details. + +This is for the R1.002 version of the Mouse. It's easily distinguishable from the R1.003+ versions of the Mouse because it has an ATmega32u4 on the board. diff --git a/keyboards/ploopyco/mouse/rules.mk b/keyboards/ploopyco/mouse/rev1_002/rules.mk similarity index 52% rename from keyboards/ploopyco/mouse/rules.mk rename to keyboards/ploopyco/mouse/rev1_002/rules.mk index 3d1d3fc961b..3437a35bdf1 100644 --- a/keyboards/ploopyco/mouse/rules.mk +++ b/keyboards/ploopyco/mouse/rev1_002/rules.mk @@ -1,4 +1,2 @@ # Processor frequency F_CPU = 8000000 - -POINTING_DEVICE_DRIVER = pmw3360 diff --git a/keyboards/ploopyco/mouse/rev1_003/config.h b/keyboards/ploopyco/mouse/rev1_003/config.h new file mode 100644 index 00000000000..b4291e307b0 --- /dev/null +++ b/keyboards/ploopyco/mouse/rev1_003/config.h @@ -0,0 +1,32 @@ +/* Copyright 2024 Colin Lam (Ploopy Corporation) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define UNUSABLE_PINS \ + { GP1, GP3, GP4, GP6, GP8, GP10, GP11, GP16, GP18, GP20, GP25, GP27, GP29 } + +/* PMW3360 Settings */ +#define PMW33XX_LIFTOFF_DISTANCE 0x00 +#define PMW33XX_CS_PIN GP5 +#define SPI_SCK_PIN GP2 +#define SPI_MISO_PIN GP0 +#define SPI_MOSI_PIN GP7 + +#define ENCODER_A_PINS { GP26 } +#define ENCODER_B_PINS { GP28 } diff --git a/keyboards/ploopyco/mouse/rev1_003/keyboard.json b/keyboards/ploopyco/mouse/rev1_003/keyboard.json new file mode 100644 index 00000000000..46eca8012f5 --- /dev/null +++ b/keyboards/ploopyco/mouse/rev1_003/keyboard.json @@ -0,0 +1,25 @@ +{ + "processor": "RP2040", + "bootloader": "rp2040", + "usb": { + "device_version": "1.0.0" + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "direct": [ + ["GP15", "GP21", "GP23", "GP17", "GP19", "GP22", "GP14", "GP24"] + ] + }, + "rgblight": { + "led_count": 1, + "max_brightness": 40, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true + } + }, + "ws2812": { + "pin": "GP12" + } +} diff --git a/keyboards/ploopyco/mouse/rev1_003/readme.md b/keyboards/ploopyco/mouse/rev1_003/readme.md new file mode 100644 index 00000000000..3e402f42809 --- /dev/null +++ b/keyboards/ploopyco/mouse/rev1_003/readme.md @@ -0,0 +1,3 @@ +See the [main readme](../readme.md) for more details. + +This is for the R1.003+ version of the Mouse. It's easily distinguishable from the previous versions of the Mouse because it has an RP2040 on the board. diff --git a/keyboards/ploopyco/trackball/config.h b/keyboards/ploopyco/trackball/config.h index 2aac27437ab..1a9b4ad2256 100644 --- a/keyboards/ploopyco/trackball/config.h +++ b/keyboards/ploopyco/trackball/config.h @@ -23,20 +23,11 @@ //#define NO_ACTION_TAPPING //#define NO_ACTION_ONESHOT +/* PMW3360 settings */ #define ROTATIONAL_TRANSFORM_ANGLE 20 - -// If board has a debug LED, you can enable it by defining this -// #define DEBUG_LED_PIN F7 - -/* PMW33XX Settings */ -#define PMW33XX_CS_PIN B0 #define POINTING_DEVICE_INVERT_Y - #define ENCODER_BUTTON_COL 1 #define ENCODER_BUTTON_ROW 0 /* Custom encoder needs to specify just how many encoders we have */ #define NUM_ENCODERS 1 - -#define ENCODER_A_PINS { F0 } -#define ENCODER_B_PINS { F4 } diff --git a/keyboards/ploopyco/trackball/info.json b/keyboards/ploopyco/trackball/info.json index 8014db1d638..9e3312d4bc7 100644 --- a/keyboards/ploopyco/trackball/info.json +++ b/keyboards/ploopyco/trackball/info.json @@ -1,6 +1,6 @@ { - "keyboard_name": "Trackball", - "manufacturer": "PloopyCo", + "keyboard_name": "Classic Trackball", + "manufacturer": "Ploopy", "url": "www.ploopy.co", "maintainer": "drashna", "usb": { @@ -12,7 +12,6 @@ "bootmagic": { "matrix": [0, 3] }, - "features": { "bootmagic": true, "extrakey": true, diff --git a/keyboards/ploopyco/trackball/post_rules.mk b/keyboards/ploopyco/trackball/post_rules.mk new file mode 100644 index 00000000000..0d1a00b89e0 --- /dev/null +++ b/keyboards/ploopyco/trackball/post_rules.mk @@ -0,0 +1 @@ +POINTING_DEVICE_DRIVER = pmw3360 \ No newline at end of file diff --git a/keyboards/ploopyco/trackball/readme.md b/keyboards/ploopyco/trackball/readme.md index c668c5dd031..cca2c151146 100644 --- a/keyboards/ploopyco/trackball/readme.md +++ b/keyboards/ploopyco/trackball/readme.md @@ -1,27 +1,34 @@ -# Ploopyco Trackball +# Ploopy Classic Trackball -![Ploopyco Trackball](https://i.redd.it/j7z0y83txps31.jpg) +![Ploopy Trackball](https://i.redd.it/j7z0y83txps31.jpg) It's a DIY, QMK Powered Trackball!!!! -* Keyboard Maintainer: [PloopyCo](https://github.com/ploopyco), [Drashna Jael're](https://github.com/drashna/), [Germ](https://github.com/germ/) -* Hardware Supported: ATMega32u4 8MHz(3.3v) +* Keyboard Maintainer: [Ploopy](https://github.com/ploopyco), [Drashna Jael're](https://github.com/drashna/), [Germ](https://github.com/germ/) +* Hardware Supported: ATMega32u4 8MHz(3.3v), Raspberry RP2040 * Hardware Availability: [Store](https://ploopy.co), [GitHub](https://github.com/ploopyco) Make example for this keyboard (after setting up your build environment): - make ploopyco/trackball/rev1:default:flash + make ploopyco/trackball/rev1_004:default:flash make ploopyco/trackball/rev1_005:default:flash - -To jump to the bootloader, hold down "Button 4" (immediate right of the trackball) + make ploopyco/trackball/rev1_007:default:flash + +To jump to the bootloader, hold down "Button 4" (immediate right of the trackball) See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). ## Revisions -There are two main revisions for the PloopyCo Trackball, everything up to 1.004, and 1.005-1.006. +There are three main revisions for the Ploopy Classic Trackball: -In the 1.005 revision, button for was changed from pin B5 to B6, and the debug LED pin was changed from F7 to B5. +- Everything up to 1.004 (very rare) +- Revision 1.005 and 1.006 (commonly sold between 2020 and 2024) +- Revision 1.007 (first available in 2025) + +In the 1.005 revision, button four was changed from pin B5 to B6, and the debug LED pin was changed from F7 to B5. + +In the 1.007 revision, the board was switched from an ATMega32u4 architecture to the Raspberry RP2040 architecture. The PCB should indicate which revision this is. diff --git a/keyboards/ploopyco/trackball/rev1/config.h b/keyboards/ploopyco/trackball/rev1_004/config.h similarity index 90% rename from keyboards/ploopyco/trackball/rev1/config.h rename to keyboards/ploopyco/trackball/rev1_004/config.h index 35ab2153418..25bcf86391c 100644 --- a/keyboards/ploopyco/trackball/rev1/config.h +++ b/keyboards/ploopyco/trackball/rev1_004/config.h @@ -25,3 +25,9 @@ // If board has a debug LED, you can enable it by defining this #define DEBUG_LED_PIN F7 + +/* PMW33XX Settings */ +#define PMW33XX_CS_PIN B0 + +#define ENCODER_A_PINS { F0 } +#define ENCODER_B_PINS { F4 } diff --git a/keyboards/ploopyco/trackball/rev1/keyboard.json b/keyboards/ploopyco/trackball/rev1_004/keyboard.json similarity index 100% rename from keyboards/ploopyco/trackball/rev1/keyboard.json rename to keyboards/ploopyco/trackball/rev1_004/keyboard.json diff --git a/keyboards/ploopyco/trackball/rev1/readme.md b/keyboards/ploopyco/trackball/rev1_004/readme.md similarity index 100% rename from keyboards/ploopyco/trackball/rev1/readme.md rename to keyboards/ploopyco/trackball/rev1_004/readme.md diff --git a/keyboards/ploopyco/trackball/rev1_004/rules.mk b/keyboards/ploopyco/trackball/rev1_004/rules.mk new file mode 100644 index 00000000000..3437a35bdf1 --- /dev/null +++ b/keyboards/ploopyco/trackball/rev1_004/rules.mk @@ -0,0 +1,2 @@ +# Processor frequency +F_CPU = 8000000 diff --git a/keyboards/ploopyco/trackball/rev1_005/config.h b/keyboards/ploopyco/trackball/rev1_005/config.h index 014d67f9c1f..404caca093a 100644 --- a/keyboards/ploopyco/trackball/rev1_005/config.h +++ b/keyboards/ploopyco/trackball/rev1_005/config.h @@ -22,3 +22,12 @@ // They are set as output and pulled high, by default #define UNUSABLE_PINS \ { D1, D3, B4, B7, D6, C7, F6, F5, F3, F7 } + +// If board has a debug LED, you can enable it by defining this +// #define DEBUG_LED_PIN F7 + +/* PMW33XX Settings */ +#define PMW33XX_CS_PIN B0 + +#define ENCODER_A_PINS { F0 } +#define ENCODER_B_PINS { F4 } diff --git a/keyboards/ploopyco/trackball/rev1_005/readme.md b/keyboards/ploopyco/trackball/rev1_005/readme.md index a923d165911..980f118a100 100644 --- a/keyboards/ploopyco/trackball/rev1_005/readme.md +++ b/keyboards/ploopyco/trackball/rev1_005/readme.md @@ -1,3 +1,3 @@ -See the [main readme](../readme.md) for more details. +See the [main readme](../readme.md) for more details. -This is just the rev 1.005+ trackball +This is for the R1.005-R1.006 version of the Classic. It's easily distinguishable from the R1.007+ versions of the Classic because it has an ATmega32u4 on the board. \ No newline at end of file diff --git a/keyboards/ploopyco/trackball/rev1_005/rules.mk b/keyboards/ploopyco/trackball/rev1_005/rules.mk new file mode 100644 index 00000000000..3437a35bdf1 --- /dev/null +++ b/keyboards/ploopyco/trackball/rev1_005/rules.mk @@ -0,0 +1,2 @@ +# Processor frequency +F_CPU = 8000000 diff --git a/keyboards/ploopyco/trackball/rev1_007/config.h b/keyboards/ploopyco/trackball/rev1_007/config.h new file mode 100644 index 00000000000..97f2e46b5c5 --- /dev/null +++ b/keyboards/ploopyco/trackball/rev1_007/config.h @@ -0,0 +1,32 @@ +/* Copyright 2024 Colin Lam (Ploopy Corporation) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define UNUSABLE_PINS \ + { GP1, GP3, GP4, GP6, GP8, GP10, GP11, GP14, GP16, GP18, GP20, GP22, GP24, GP25, GP27, GP29 } + +/* PMW3360 Settings */ +#define PMW33XX_LIFTOFF_DISTANCE 0x00 +#define PMW33XX_CS_PIN GP5 +#define SPI_SCK_PIN GP2 +#define SPI_MISO_PIN GP0 +#define SPI_MOSI_PIN GP7 + +#define ENCODER_A_PINS { GP26 } +#define ENCODER_B_PINS { GP28 } diff --git a/keyboards/ploopyco/trackball/rev1_007/keyboard.json b/keyboards/ploopyco/trackball/rev1_007/keyboard.json new file mode 100644 index 00000000000..4098c86fdaf --- /dev/null +++ b/keyboards/ploopyco/trackball/rev1_007/keyboard.json @@ -0,0 +1,25 @@ +{ + "processor": "RP2040", + "bootloader": "rp2040", + "usb": { + "device_version": "1.0.0" + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "direct": [ + ["GP15", "GP21", "GP23", "GP17", "GP19"] + ] + }, + "rgblight": { + "led_count": 1, + "max_brightness": 40, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true + } + }, + "ws2812": { + "pin": "GP12" + } +} diff --git a/keyboards/ploopyco/trackball/rev1_007/readme.md b/keyboards/ploopyco/trackball/rev1_007/readme.md new file mode 100644 index 00000000000..6b8da3a959a --- /dev/null +++ b/keyboards/ploopyco/trackball/rev1_007/readme.md @@ -0,0 +1,3 @@ +See the [main readme](../readme.md) for more details. + +This is for the R1.007+ version of the Classic. It's easily distinguishable from the previous versions of the Classic because it has an RP2040 on the board. diff --git a/keyboards/ploopyco/trackball/rules.mk b/keyboards/ploopyco/trackball/rules.mk deleted file mode 100644 index 9ea10ba6e8f..00000000000 --- a/keyboards/ploopyco/trackball/rules.mk +++ /dev/null @@ -1,6 +0,0 @@ -# Processor frequency -F_CPU = 8000000 - -POINTING_DEVICE_DRIVER = pmw3360 - -DEFAULT_FOLDER = ploopyco/trackball/rev1_005 diff --git a/keyboards/ploopyco/trackball_thumb/config.h b/keyboards/ploopyco/trackball_thumb/config.h index f03ffc76990..0f269bd21ad 100644 --- a/keyboards/ploopyco/trackball_thumb/config.h +++ b/keyboards/ploopyco/trackball_thumb/config.h @@ -29,9 +29,6 @@ // If board has a debug LED, you can enable it by defining this // #define DEBUG_LED_PIN F7 -/* PMW3360 Settings */ -#define POINTING_DEVICE_CS_PIN B0 - #define ENCODER_BUTTON_COL 1 #define ENCODER_BUTTON_ROW 0 @@ -41,6 +38,3 @@ #define ENCODER_HIGH_THRES_B 90 /* Custom encoder needs to specify just how many encoders we have */ #define NUM_ENCODERS 1 - -#define ENCODER_A_PINS { F4 } -#define ENCODER_B_PINS { F0 } diff --git a/keyboards/ploopyco/trackball_thumb/info.json b/keyboards/ploopyco/trackball_thumb/info.json index e27bf472521..7e93296d24b 100644 --- a/keyboards/ploopyco/trackball_thumb/info.json +++ b/keyboards/ploopyco/trackball_thumb/info.json @@ -1,22 +1,22 @@ { - "keyboard_name": "PloopyCo Thumb Trackball", + "keyboard_name": "Thumb Trackball", + "manufacturer": "Ploopy", "url": "www.ploopy.co", "maintainer": "ploopyco", - "manufacturer": "Ploopy Corporation", - "processor": "atmega32u4", - "bootloader": "atmel-dfu", "usb": { "vid": "0x5043", "pid": "0x5C46", + "device_version": "0.0.1", "max_power": 100 }, + "bootmagic": { + "matrix": [0, 3] + }, "features": { "bootmagic": true, - "command": false, - "console": false, "extrakey": true, "mousekey": true, - "nkro": true, + "nkro": false, "pointing_device": true, "encoder": true }, diff --git a/keyboards/ploopyco/trackball_thumb/post_rules.mk b/keyboards/ploopyco/trackball_thumb/post_rules.mk new file mode 100644 index 00000000000..0d1a00b89e0 --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/post_rules.mk @@ -0,0 +1 @@ +POINTING_DEVICE_DRIVER = pmw3360 \ No newline at end of file diff --git a/keyboards/ploopyco/trackball_thumb/readme.md b/keyboards/ploopyco/trackball_thumb/readme.md index 8299c088094..bb870d2003c 100644 --- a/keyboards/ploopyco/trackball_thumb/readme.md +++ b/keyboards/ploopyco/trackball_thumb/readme.md @@ -3,13 +3,13 @@ It's a DIY, QMK Powered Trackball...for thumb ballers! * Keyboard Maintainer: [PloopyCo](https://github.com/ploopyco), [Drashna Jael're](https://github.com/drashna/), [Germ](https://github.com/germ/) -* Hardware Supported: ATMega32u4 8MHz(3.3v) +* Hardware Supported: ATMega32u4 8MHz(3.3v), Raspberry RP2040 * Hardware Availability: [Store](https://ploopy.co), [GitHub](https://github.com/ploopyco) Make example for this keyboard (after setting up your build environment): make ploopyco/trackball_thumb/rev1_001:default:flash - + To jump to the bootloader, hold down "Button 4" (button closest to the USB port). See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/ploopyco/trackball_thumb/rev1_001/config.h b/keyboards/ploopyco/trackball_thumb/rev1_001/config.h index a648e8e8e4c..108a104cdc1 100644 --- a/keyboards/ploopyco/trackball_thumb/rev1_001/config.h +++ b/keyboards/ploopyco/trackball_thumb/rev1_001/config.h @@ -22,3 +22,9 @@ // They are set as output and pulled high, by default #define UNUSABLE_PINS \ { D1, D3, B4, B7, D6, C7, F6, F5, F3, F7 } + +/* PMW33XX Settings */ +#define PMW33XX_CS_PIN B0 + +#define ENCODER_A_PINS { F0 } +#define ENCODER_B_PINS { F4 } diff --git a/keyboards/ploopyco/trackball_thumb/rev1_001/keyboard.json b/keyboards/ploopyco/trackball_thumb/rev1_001/keyboard.json index db12ee6217f..04457f19b9f 100644 --- a/keyboards/ploopyco/trackball_thumb/rev1_001/keyboard.json +++ b/keyboards/ploopyco/trackball_thumb/rev1_001/keyboard.json @@ -1,13 +1,14 @@ { - "usb": { - "device_version": "1.0.0" - }, - "diode_direction": "COL2ROW", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", "matrix_pins": { "direct": [ ["D5", "B6", "D4", "D2", "E6", "D7"] ] }, + "ws2812": { + "pin": "B5" + }, "rgblight": { "led_count": 3, "max_brightness": 40, @@ -16,8 +17,5 @@ "rainbow_mood": true, "rainbow_swirl": true } - }, - "ws2812": { - "pin": "B5" } } diff --git a/keyboards/ploopyco/trackball_thumb/rev1_001/readme.md b/keyboards/ploopyco/trackball_thumb/rev1_001/readme.md index 5a5f0563e76..658a71df0aa 100644 --- a/keyboards/ploopyco/trackball_thumb/rev1_001/readme.md +++ b/keyboards/ploopyco/trackball_thumb/rev1_001/readme.md @@ -1,3 +1,3 @@ -This is the R1.001+ version of the Thumb. Future versions may have other features. +See the [main readme](../readme.md) for more details. -See the [main readme](../readme.md) for more details. +This is for the R1.001 version of the Thumb. It's easily distinguishable from the R1.002+ versions of the Thumb because it has an ATmega32u4 on the board. \ No newline at end of file diff --git a/keyboards/ploopyco/trackball_thumb/rev1_001/rules.mk b/keyboards/ploopyco/trackball_thumb/rev1_001/rules.mk new file mode 100644 index 00000000000..3437a35bdf1 --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/rev1_001/rules.mk @@ -0,0 +1,2 @@ +# Processor frequency +F_CPU = 8000000 diff --git a/keyboards/ploopyco/trackball_thumb/rev1_002/config.h b/keyboards/ploopyco/trackball_thumb/rev1_002/config.h new file mode 100644 index 00000000000..e25f50604e7 --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/rev1_002/config.h @@ -0,0 +1,32 @@ +/* Copyright 2024 Colin Lam (Ploopy Corporation) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define UNUSABLE_PINS \ + { GP1, GP3, GP4, GP6, GP8, GP10, GP11, GP14, GP18, GP20, GP22, GP24, GP25, GP27, GP29 } + +/* PMW3360 Settings */ +#define PMW33XX_LIFTOFF_DISTANCE 0x00 +#define PMW33XX_CS_PIN GP5 +#define SPI_SCK_PIN GP2 +#define SPI_MISO_PIN GP0 +#define SPI_MOSI_PIN GP7 + +#define ENCODER_A_PINS { GP28 } +#define ENCODER_B_PINS { GP26 } diff --git a/keyboards/ploopyco/trackball_thumb/rev1_002/keyboard.json b/keyboards/ploopyco/trackball_thumb/rev1_002/keyboard.json new file mode 100644 index 00000000000..a3a50a536e5 --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/rev1_002/keyboard.json @@ -0,0 +1,25 @@ +{ + "processor": "RP2040", + "bootloader": "rp2040", + "usb": { + "device_version": "1.0.0" + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "direct": [ + ["GP17", "GP16", "GP15", "GP21", "GP23", "GP19"] + ] + }, + "rgblight": { + "led_count": 1, + "max_brightness": 40, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true + } + }, + "ws2812": { + "pin": "GP12" + } +} diff --git a/keyboards/ploopyco/trackball_thumb/rev1_002/readme.md b/keyboards/ploopyco/trackball_thumb/rev1_002/readme.md new file mode 100644 index 00000000000..c1e95d9a8e7 --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/rev1_002/readme.md @@ -0,0 +1,3 @@ +See the [main readme](../readme.md) for more details. + +This is for the R1.002+ version of the Thumb. It's easily distinguishable from the previous versions of the Thumb because it has an RP2040 on the board. diff --git a/keyboards/ploopyco/trackball_thumb/rules.mk b/keyboards/ploopyco/trackball_thumb/rules.mk deleted file mode 100644 index 0bd44d316a3..00000000000 --- a/keyboards/ploopyco/trackball_thumb/rules.mk +++ /dev/null @@ -1,6 +0,0 @@ -# Processor frequency -F_CPU = 8000000 - -POINTING_DEVICE_DRIVER = pmw3360 - -DEFAULT_FOLDER = ploopyco/trackball_thumb/rev1_001 From 63daf94ee60a629afcce2de623f22ae6777682c5 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sat, 22 Feb 2025 01:48:42 +0000 Subject: [PATCH 232/365] Migrate some DEFAULT_FOLDER to keyboard_aliases.hjson (#24938) --- data/mappings/keyboard_aliases.hjson | 12 ++++++++++++ keyboards/ploopyco/madromys/post_rules.mk | 1 + keyboards/ploopyco/madromys/rules.mk | 3 --- keyboards/ploopyco/trackball_mini/post_rules.mk | 1 + keyboards/ploopyco/trackball_mini/rules.mk | 3 --- keyboards/ploopyco/trackball_nano/post_rules.mk | 1 + keyboards/ploopyco/trackball_nano/rules.mk | 3 --- 7 files changed, 15 insertions(+), 9 deletions(-) create mode 100644 keyboards/ploopyco/madromys/post_rules.mk delete mode 100644 keyboards/ploopyco/madromys/rules.mk create mode 100644 keyboards/ploopyco/trackball_mini/post_rules.mk delete mode 100644 keyboards/ploopyco/trackball_mini/rules.mk create mode 100644 keyboards/ploopyco/trackball_nano/post_rules.mk delete mode 100644 keyboards/ploopyco/trackball_nano/rules.mk diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index 09549baf69e..b601a427616 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -2025,6 +2025,18 @@ "pinky": { "target": "pinky/3" }, + "ploopyco/madromys": { + "target": "ploopyco/madromys/rev1_001" + }, + "ploopyco/trackball_mini": { + "target": "ploopyco/trackball_mini/rev1_001" + }, + "ploopyco/trackball_nano": { + "target": "ploopyco/trackball_nano/rev1_001" + }, + "ploopyco/trackball_thumb": { + "target": "ploopyco/trackball_thumb/rev1_001" + }, "primekb/meridian": { "target": "primekb/meridian/ktr1010" }, diff --git a/keyboards/ploopyco/madromys/post_rules.mk b/keyboards/ploopyco/madromys/post_rules.mk new file mode 100644 index 00000000000..fab9162dc64 --- /dev/null +++ b/keyboards/ploopyco/madromys/post_rules.mk @@ -0,0 +1 @@ +POINTING_DEVICE_DRIVER = pmw3360 diff --git a/keyboards/ploopyco/madromys/rules.mk b/keyboards/ploopyco/madromys/rules.mk deleted file mode 100644 index b7e33d92f92..00000000000 --- a/keyboards/ploopyco/madromys/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -POINTING_DEVICE_DRIVER = pmw3360 - -DEFAULT_FOLDER = ploopyco/madromys/rev1_001 diff --git a/keyboards/ploopyco/trackball_mini/post_rules.mk b/keyboards/ploopyco/trackball_mini/post_rules.mk new file mode 100644 index 00000000000..99fca15fc13 --- /dev/null +++ b/keyboards/ploopyco/trackball_mini/post_rules.mk @@ -0,0 +1 @@ +POINTING_DEVICE_DRIVER = adns5050 diff --git a/keyboards/ploopyco/trackball_mini/rules.mk b/keyboards/ploopyco/trackball_mini/rules.mk deleted file mode 100644 index 2705ac6855c..00000000000 --- a/keyboards/ploopyco/trackball_mini/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -POINTING_DEVICE_DRIVER = adns5050 - -DEFAULT_FOLDER = ploopyco/trackball_mini/rev1_001 diff --git a/keyboards/ploopyco/trackball_nano/post_rules.mk b/keyboards/ploopyco/trackball_nano/post_rules.mk new file mode 100644 index 00000000000..99fca15fc13 --- /dev/null +++ b/keyboards/ploopyco/trackball_nano/post_rules.mk @@ -0,0 +1 @@ +POINTING_DEVICE_DRIVER = adns5050 diff --git a/keyboards/ploopyco/trackball_nano/rules.mk b/keyboards/ploopyco/trackball_nano/rules.mk deleted file mode 100644 index df29dfbc07f..00000000000 --- a/keyboards/ploopyco/trackball_nano/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -POINTING_DEVICE_DRIVER = adns5050 - -DEFAULT_FOLDER = ploopyco/trackball_nano/rev1_001 From 63b095212b157c4522bdeda3de144fb87213085d Mon Sep 17 00:00:00 2001 From: Joel Beckmeyer Date: Wed, 26 Feb 2025 06:25:01 -0500 Subject: [PATCH 233/365] fix EEPROM driver for STM32L0/1 cat.1 devices (#24928) --- .../drivers/eeprom/eeprom_stm32_L0_L1.c | 45 +++++++++++++++---- 1 file changed, 36 insertions(+), 9 deletions(-) diff --git a/platforms/chibios/drivers/eeprom/eeprom_stm32_L0_L1.c b/platforms/chibios/drivers/eeprom/eeprom_stm32_L0_L1.c index 628137a0b35..31062a48167 100644 --- a/platforms/chibios/drivers/eeprom/eeprom_stm32_L0_L1.c +++ b/platforms/chibios/drivers/eeprom/eeprom_stm32_L0_L1.c @@ -25,6 +25,7 @@ #define EEPROM_ADDR(offset) (EEPROM_BASE_ADDR + (offset)) #define EEPROM_PTR(offset) ((__IO uint8_t *)EEPROM_ADDR(offset)) #define EEPROM_BYTE(location, offset) (*(EEPROM_PTR(((uint32_t)location) + ((uint32_t)offset)))) +#define EEPROM_WORD(location) (*(__IO uint32_t *)EEPROM_PTR(location)) #define BUFFER_BYTE(buffer, offset) (*(((uint8_t *)buffer) + offset)) @@ -62,12 +63,16 @@ void eeprom_driver_erase(void) { STM32_L0_L1_EEPROM_Unlock(); for (size_t offset = 0; offset < STM32_ONBOARD_EEPROM_SIZE; offset += sizeof(uint32_t)) { +#ifdef QMK_MCU_SERIES_STM32L0XX FLASH->PECR |= FLASH_PECR_ERASE | FLASH_PECR_DATA; +#endif - *(__IO uint32_t *)EEPROM_ADDR(offset) = (uint32_t)0; + EEPROM_WORD(offset) = (uint32_t)0; STM32_L0_L1_EEPROM_WaitNotBusy(); +#ifdef QMK_MCU_SERIES_STM32L0XX FLASH->PECR &= ~(FLASH_PECR_ERASE | FLASH_PECR_DATA); +#endif } STM32_L0_L1_EEPROM_Lock(); @@ -86,17 +91,39 @@ void eeprom_read_block(void *buf, const void *addr, size_t len) { } void eeprom_write_block(const void *buf, void *addr, size_t len) { - STM32_L0_L1_EEPROM_Unlock(); + // use word-aligned write to overcome issues with writing null bytes + uint32_t start_addr = (uint32_t)addr; + if (start_addr >= (STM32_ONBOARD_EEPROM_SIZE)) { + return; + } + uint32_t max_len = (STM32_ONBOARD_EEPROM_SIZE)-start_addr; + if (len > max_len) { + len = max_len; + } + uint32_t end_addr = start_addr + len; - for (size_t offset = 0; offset < len; ++offset) { - // Drop out if we've hit the limit of the EEPROM - if ((((uint32_t)addr) + offset) >= STM32_ONBOARD_EEPROM_SIZE) { - break; + uint32_t aligned_start = start_addr & ~0x3; + uint32_t aligned_end = (end_addr + 3) & ~0x3; + + STM32_L0_L1_EEPROM_Unlock(); + for (uint32_t word_addr = aligned_start; word_addr < aligned_end; word_addr += 4) { + uint32_t existing_word = EEPROM_WORD(word_addr); + uint32_t new_word = existing_word; + + // Update the relevant bytes in the word + for (int i = 0; i < 4; i++) { + uint32_t byte_addr = word_addr + i; + if (byte_addr >= start_addr && byte_addr < end_addr) { + uint8_t new_byte = BUFFER_BYTE(buf, byte_addr - start_addr); + new_word = (new_word & ~(0xFFU << (i * 8))) | ((uint32_t)new_byte << (i * 8)); + } } - STM32_L0_L1_EEPROM_WaitNotBusy(); - EEPROM_BYTE(addr, offset) = BUFFER_BYTE(buf, offset); + // Only write if the word has changed + if (new_word != existing_word) { + STM32_L0_L1_EEPROM_WaitNotBusy(); + EEPROM_WORD(word_addr) = new_word; + } } - STM32_L0_L1_EEPROM_Lock(); } From 1efc82403bebe759272d1ba7a79d9dfa0d5df506 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Wed, 26 Feb 2025 22:25:41 +1100 Subject: [PATCH 234/365] Community modules (#24848) --- .github/labeler.yml | 4 + .github/workflows/format.yml | 1 + builddefs/build_keyboard.mk | 122 +++++--- data/constants/keycodes/keycodes_0.0.7.hjson | 7 + data/constants/module_hooks/0.1.0.hjson | 25 ++ data/constants/module_hooks/1.0.0.hjson | 26 ++ data/schemas/community_module.jsonschema | 17 ++ data/schemas/keyboard.jsonschema | 17 +- data/schemas/keymap.jsonschema | 6 + docs/_sidebar.json | 1 + docs/custom_quantum_functions.md | 11 +- docs/features/community_modules.md | 142 ++++++++++ .../onekey/keymaps/community_module/keymap.c | 7 + .../keymaps/community_module/keymap.json | 3 + lib/python/qmk/cli/__init__.py | 1 + lib/python/qmk/cli/format/c.py | 2 +- lib/python/qmk/cli/format/json.py | 13 +- .../qmk/cli/generate/community_modules.py | 263 ++++++++++++++++++ lib/python/qmk/cli/generate/rules_mk.py | 46 ++- lib/python/qmk/cli/info.py | 5 + lib/python/qmk/commands.py | 5 +- lib/python/qmk/community_modules.py | 100 +++++++ lib/python/qmk/info.py | 27 ++ lib/python/qmk/json_encoders.py | 28 ++ lib/python/qmk/keymap.py | 27 -- modules/qmk/hello_world/hello_world.c | 33 +++ modules/qmk/hello_world/introspection.c | 10 + modules/qmk/hello_world/introspection.h | 10 + modules/qmk/hello_world/qmk_module.json | 13 + modules/qmk/hello_world/rules.mk | 2 + quantum/action.h | 2 +- quantum/keyboard.c | 44 ++- quantum/keycodes.h | 3 + quantum/keymap_introspection.c | 11 + quantum/os_detection.c | 7 + quantum/quantum.c | 26 +- quantum/quantum.h | 4 + 37 files changed, 987 insertions(+), 84 deletions(-) create mode 100644 data/constants/keycodes/keycodes_0.0.7.hjson create mode 100644 data/constants/module_hooks/0.1.0.hjson create mode 100644 data/constants/module_hooks/1.0.0.hjson create mode 100644 data/schemas/community_module.jsonschema create mode 100644 docs/features/community_modules.md create mode 100644 keyboards/handwired/onekey/keymaps/community_module/keymap.c create mode 100644 keyboards/handwired/onekey/keymaps/community_module/keymap.json create mode 100644 lib/python/qmk/cli/generate/community_modules.py create mode 100644 lib/python/qmk/community_modules.py create mode 100644 modules/qmk/hello_world/hello_world.c create mode 100644 modules/qmk/hello_world/introspection.c create mode 100644 modules/qmk/hello_world/introspection.h create mode 100644 modules/qmk/hello_world/qmk_module.json create mode 100644 modules/qmk/hello_world/rules.mk diff --git a/.github/labeler.yml b/.github/labeler.yml index 270cd1a8136..82f9672bb7a 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -54,3 +54,7 @@ dd: - data/constants/** - data/mappings/** - data/schemas/** +community_module: + - changed-files: + - any-glob-to-any-file: + - modules/** diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index 74c518fe051..b4e32f981bb 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -10,6 +10,7 @@ on: - 'lib/arm_atsam/**' - 'lib/lib8tion/**' - 'lib/python/**' + - 'modules/**' - 'platforms/**' - 'quantum/**' - 'tests/**' diff --git a/builddefs/build_keyboard.mk b/builddefs/build_keyboard.mk index 7d58c29462a..c5fc9cd25d0 100644 --- a/builddefs/build_keyboard.mk +++ b/builddefs/build_keyboard.mk @@ -112,6 +112,39 @@ endif ifneq ("$(wildcard $(KEYBOARD_PATH_1)/rules.mk)","") include $(KEYBOARD_PATH_1)/rules.mk endif +# Create dependencies on DD keyboard config - structure validated elsewhere +DD_CONFIG_FILES := +ifneq ("$(wildcard $(KEYBOARD_PATH_1)/info.json)","") + DD_CONFIG_FILES += $(KEYBOARD_PATH_1)/info.json +endif +ifneq ("$(wildcard $(KEYBOARD_PATH_2)/info.json)","") + DD_CONFIG_FILES += $(KEYBOARD_PATH_2)/info.json +endif +ifneq ("$(wildcard $(KEYBOARD_PATH_3)/info.json)","") + DD_CONFIG_FILES += $(KEYBOARD_PATH_3)/info.json +endif +ifneq ("$(wildcard $(KEYBOARD_PATH_4)/info.json)","") + DD_CONFIG_FILES += $(KEYBOARD_PATH_4)/info.json +endif +ifneq ("$(wildcard $(KEYBOARD_PATH_5)/info.json)","") + DD_CONFIG_FILES += $(KEYBOARD_PATH_5)/info.json +endif + +ifneq ("$(wildcard $(KEYBOARD_PATH_1)/keyboard.json)","") + DD_CONFIG_FILES += $(KEYBOARD_PATH_1)/keyboard.json +endif +ifneq ("$(wildcard $(KEYBOARD_PATH_2)/keyboard.json)","") + DD_CONFIG_FILES += $(KEYBOARD_PATH_2)/keyboard.json +endif +ifneq ("$(wildcard $(KEYBOARD_PATH_3)/keyboard.json)","") + DD_CONFIG_FILES += $(KEYBOARD_PATH_3)/keyboard.json +endif +ifneq ("$(wildcard $(KEYBOARD_PATH_4)/keyboard.json)","") + DD_CONFIG_FILES += $(KEYBOARD_PATH_4)/keyboard.json +endif +ifneq ("$(wildcard $(KEYBOARD_PATH_5)/keyboard.json)","") + DD_CONFIG_FILES += $(KEYBOARD_PATH_5)/keyboard.json +endif MAIN_KEYMAP_PATH_1 := $(KEYBOARD_PATH_1)/keymaps/$(KEYMAP) MAIN_KEYMAP_PATH_2 := $(KEYBOARD_PATH_2)/keymaps/$(KEYMAP) @@ -207,17 +240,17 @@ ifneq ("$(wildcard $(KEYMAP_JSON))", "") include $(INFO_RULES_MK) # Add rules to generate the keymap files - indentation here is important -$(INTERMEDIATE_OUTPUT)/src/keymap.c: $(KEYMAP_JSON) +$(INTERMEDIATE_OUTPUT)/src/keymap.c: $(KEYMAP_JSON) $(DD_CONFIG_FILES) @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) $(eval CMD=$(QMK_BIN) json2c --quiet --output $(KEYMAP_C) $(KEYMAP_JSON)) @$(BUILD_CMD) -$(INTERMEDIATE_OUTPUT)/src/config.h: $(KEYMAP_JSON) +$(INTERMEDIATE_OUTPUT)/src/config.h: $(KEYMAP_JSON) $(DD_CONFIG_FILES) @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) $(eval CMD=$(QMK_BIN) generate-config-h --quiet --output $(KEYMAP_H) $(KEYMAP_JSON)) @$(BUILD_CMD) -$(INTERMEDIATE_OUTPUT)/src/keymap.h: $(KEYMAP_JSON) +$(INTERMEDIATE_OUTPUT)/src/keymap.h: $(KEYMAP_JSON) $(DD_CONFIG_FILES) @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) $(eval CMD=$(QMK_BIN) generate-keymap-h --quiet --output $(INTERMEDIATE_OUTPUT)/src/keymap.h $(KEYMAP_JSON)) @$(BUILD_CMD) @@ -226,6 +259,32 @@ generated-files: $(INTERMEDIATE_OUTPUT)/src/config.h $(INTERMEDIATE_OUTPUT)/src/ endif +# Community modules +$(INTERMEDIATE_OUTPUT)/src/community_modules.h: $(KEYMAP_JSON) $(DD_CONFIG_FILES) + @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) + $(eval CMD=$(QMK_BIN) generate-community-modules-h -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/community_modules.h $(KEYMAP_JSON)) + @$(BUILD_CMD) + +$(INTERMEDIATE_OUTPUT)/src/community_modules.c: $(KEYMAP_JSON) $(DD_CONFIG_FILES) + @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) + $(eval CMD=$(QMK_BIN) generate-community-modules-c -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/community_modules.c $(KEYMAP_JSON)) + @$(BUILD_CMD) + +$(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.c: $(KEYMAP_JSON) $(DD_CONFIG_FILES) + @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) + $(eval CMD=$(QMK_BIN) generate-community-modules-introspection-c -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.c $(KEYMAP_JSON)) + @$(BUILD_CMD) + +$(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.h: $(KEYMAP_JSON) $(DD_CONFIG_FILES) + @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) + $(eval CMD=$(QMK_BIN) generate-community-modules-introspection-h -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.h $(KEYMAP_JSON)) + @$(BUILD_CMD) + +SRC += $(INTERMEDIATE_OUTPUT)/src/community_modules.c + +generated-files: $(INTERMEDIATE_OUTPUT)/src/community_modules.h $(INTERMEDIATE_OUTPUT)/src/community_modules.c $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.c $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.h + + include $(BUILDDEFS_PATH)/converters.mk # Generate the board's version.h file. @@ -315,6 +374,14 @@ endif # Find all of the config.h files and add them to our CONFIG_H define. CONFIG_H := + +define config_h_community_module_appender + ifneq ("$(wildcard $(1)/config.h)","") + CONFIG_H += $(1)/config.h + endif +endef +$(foreach module,$(COMMUNITY_MODULE_PATHS),$(eval $(call config_h_community_module_appender,$(module)))) + ifneq ("$(wildcard $(KEYBOARD_PATH_5)/config.h)","") CONFIG_H += $(KEYBOARD_PATH_5)/config.h endif @@ -332,6 +399,14 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_1)/config.h)","") endif POST_CONFIG_H := + +define post_config_h_community_module_appender + ifneq ("$(wildcard $(1)/post_config.h)","") + POST_CONFIG_H += $(1)/post_config.h + endif +endef +$(foreach module,$(COMMUNITY_MODULE_PATHS),$(eval $(call post_config_h_community_module_appender,$(module)))) + ifneq ("$(wildcard $(KEYBOARD_PATH_1)/post_config.h)","") POST_CONFIG_H += $(KEYBOARD_PATH_1)/post_config.h endif @@ -348,40 +423,6 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_5)/post_config.h)","") POST_CONFIG_H += $(KEYBOARD_PATH_5)/post_config.h endif -# Create dependencies on DD keyboard config - structure validated elsewhere -DD_CONFIG_FILES := -ifneq ("$(wildcard $(KEYBOARD_PATH_1)/info.json)","") - DD_CONFIG_FILES += $(KEYBOARD_PATH_1)/info.json -endif -ifneq ("$(wildcard $(KEYBOARD_PATH_2)/info.json)","") - DD_CONFIG_FILES += $(KEYBOARD_PATH_2)/info.json -endif -ifneq ("$(wildcard $(KEYBOARD_PATH_3)/info.json)","") - DD_CONFIG_FILES += $(KEYBOARD_PATH_3)/info.json -endif -ifneq ("$(wildcard $(KEYBOARD_PATH_4)/info.json)","") - DD_CONFIG_FILES += $(KEYBOARD_PATH_4)/info.json -endif -ifneq ("$(wildcard $(KEYBOARD_PATH_5)/info.json)","") - DD_CONFIG_FILES += $(KEYBOARD_PATH_5)/info.json -endif - -ifneq ("$(wildcard $(KEYBOARD_PATH_1)/keyboard.json)","") - DD_CONFIG_FILES += $(KEYBOARD_PATH_1)/keyboard.json -endif -ifneq ("$(wildcard $(KEYBOARD_PATH_2)/keyboard.json)","") - DD_CONFIG_FILES += $(KEYBOARD_PATH_2)/keyboard.json -endif -ifneq ("$(wildcard $(KEYBOARD_PATH_3)/keyboard.json)","") - DD_CONFIG_FILES += $(KEYBOARD_PATH_3)/keyboard.json -endif -ifneq ("$(wildcard $(KEYBOARD_PATH_4)/keyboard.json)","") - DD_CONFIG_FILES += $(KEYBOARD_PATH_4)/keyboard.json -endif -ifneq ("$(wildcard $(KEYBOARD_PATH_5)/keyboard.json)","") - DD_CONFIG_FILES += $(KEYBOARD_PATH_5)/keyboard.json -endif - CONFIG_H += $(INTERMEDIATE_OUTPUT)/src/info_config.h KEYBOARD_SRC += $(INTERMEDIATE_OUTPUT)/src/default_keyboard.c @@ -462,6 +503,13 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_5)/post_rules.mk)","") include $(KEYBOARD_PATH_5)/post_rules.mk endif +define post_rules_mk_community_module_includer + ifneq ("$(wildcard $(1)/post_rules.mk)","") + include $(1)/post_rules.mk + endif +endef +$(foreach module,$(COMMUNITY_MODULE_PATHS),$(eval $(call post_rules_mk_community_module_includer,$(module)))) + ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","") CONFIG_H += $(KEYMAP_PATH)/config.h endif diff --git a/data/constants/keycodes/keycodes_0.0.7.hjson b/data/constants/keycodes/keycodes_0.0.7.hjson new file mode 100644 index 00000000000..52e1a504438 --- /dev/null +++ b/data/constants/keycodes/keycodes_0.0.7.hjson @@ -0,0 +1,7 @@ +{ + "ranges": { + "0x77C0/0x003F": { + "define": "QK_COMMUNITY_MODULE" + } + } +} diff --git a/data/constants/module_hooks/0.1.0.hjson b/data/constants/module_hooks/0.1.0.hjson new file mode 100644 index 00000000000..c77f4c297e2 --- /dev/null +++ b/data/constants/module_hooks/0.1.0.hjson @@ -0,0 +1,25 @@ +{ + keyboard_pre_init: { + ret_type: void + args: void + } + keyboard_post_init: { + ret_type: void + args: void + } + pre_process_record: { + ret_type: bool + args: uint16_t keycode, keyrecord_t *record + call_params: keycode, record + } + process_record: { + ret_type: bool + args: uint16_t keycode, keyrecord_t *record + call_params: keycode, record + } + post_process_record: { + ret_type: void + args: uint16_t keycode, keyrecord_t *record + call_params: keycode, record + } +} diff --git a/data/constants/module_hooks/1.0.0.hjson b/data/constants/module_hooks/1.0.0.hjson new file mode 100644 index 00000000000..4e7bf304126 --- /dev/null +++ b/data/constants/module_hooks/1.0.0.hjson @@ -0,0 +1,26 @@ +{ + housekeeping_task: { + ret_type: void + args: void + } + suspend_power_down: { + ret_type: void + args: void + } + suspend_wakeup_init: { + ret_type: void + args: void + } + shutdown: { + ret_type: bool + args: bool jump_to_bootloader + call_params: jump_to_bootloader + } + process_detected_host_os: { + ret_type: bool + args: os_variant_t os + call_params: os + guard: defined(OS_DETECTION_ENABLE) + header: os_detection.h + } +} diff --git a/data/schemas/community_module.jsonschema b/data/schemas/community_module.jsonschema new file mode 100644 index 00000000000..a3474476dff --- /dev/null +++ b/data/schemas/community_module.jsonschema @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema#", + "$id": "qmk.community_module.v1", + "title": "Community Module Information", + "type": "object", + "required": ["module_name", "maintainer"] + "properties": { + "module_name": {"$ref": "qmk.definitions.v1#/text_identifier"}, + "maintainer": {"$ref": "qmk.definitions.v1#/text_identifier"}, + "url": { + "type": "string", + "format": "uri" + }, + "keycodes": {"$ref": "qmk.definitions.v1#/keycode_decl_array"}, + "features": {"$ref": "qmk.keyboard.v1#/definitions/features_config"}, + } +} diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 8b6cc7032bb..9b63f62d451 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -31,6 +31,11 @@ "pins": {"$ref": "qmk.definitions.v1#/mcu_pin_array"} } } + "features_config": { + "$ref": "qmk.definitions.v1#/boolean_array", + "propertyNames": {"$ref": "qmk.definitions.v1#/snake_case"}, + "not": {"required": ["lto"]} + }, }, "type": "object", "not": {"required": ["vendorId", "productId"]}, // reject via keys... @@ -328,11 +333,7 @@ "enabled": {"type": "boolean"} } }, - "features": { - "$ref": "qmk.definitions.v1#/boolean_array", - "propertyNames": {"$ref": "qmk.definitions.v1#/snake_case"}, - "not": {"required": ["lto"]} - }, + "features": { "$ref": "#/definitions/features_config" }, "indicators": { "type": "object", "properties": { @@ -467,6 +468,12 @@ "rows": {"$ref": "qmk.definitions.v1#/mcu_pin_array"} } }, + "modules": { + "type": "array", + "items": { + "type": "string" + } + }, "mouse_key": { "type": "object", "properties": { diff --git a/data/schemas/keymap.jsonschema b/data/schemas/keymap.jsonschema index e967e45c53e..b92a536c2c8 100644 --- a/data/schemas/keymap.jsonschema +++ b/data/schemas/keymap.jsonschema @@ -71,6 +71,12 @@ "config": {"$ref": "qmk.keyboard.v1"}, "notes": { "type": "string" + }, + "modules": { + "type": "array", + "items": { + "type": "string" + } } } } diff --git a/docs/_sidebar.json b/docs/_sidebar.json index 95601be7ded..0b5f2970187 100644 --- a/docs/_sidebar.json +++ b/docs/_sidebar.json @@ -60,6 +60,7 @@ "items": [ { "text": "Customizing Functionality", "link": "/custom_quantum_functions" }, { "text": "Driver Installation with Zadig", "link": "/driver_installation_zadig" }, + { "text": "Community Modules", "link": "/features/community_modules" }, { "text": "Keymap Overview", "link": "/keymap" }, { "text": "Development Environments", diff --git a/docs/custom_quantum_functions.md b/docs/custom_quantum_functions.md index 1479eb53f6c..c69beb055e9 100644 --- a/docs/custom_quantum_functions.md +++ b/docs/custom_quantum_functions.md @@ -9,12 +9,19 @@ This page does not assume any special knowledge about QMK, but reading [Understa We have structured QMK as a hierarchy: * Core (`_quantum`) + * Community Module (`_`) + * Community Module -> Keyboard/Revision (`__kb`) + * Community Module -> Keymap (`__user`) * Keyboard/Revision (`_kb`) * Keymap (`_user`) Each of the functions described below can be defined with a `_kb()` suffix or a `_user()` suffix. We intend for you to use the `_kb()` suffix at the Keyboard/Revision level, while the `_user()` suffix should be used at the Keymap level. -When defining functions at the Keyboard/Revision level it is important that your `_kb()` implementation call `_user()` before executing anything else- otherwise the keymap level function will never be called. +When defining functions at the Keyboard/Revision level it is important that your `_kb()` implementation call `_user()` at an appropriate location, otherwise the keymap level function will never be called. + +Functions at the `__xxx()` level are intended to allow keyboards or keymaps to override or enhance the processing associated with a [community module](/features/community_modules). + +When defining module overrides such as `process_record_()`, the same pattern should be used; the module must invoke `process_record__kb()` as appropriate. # Custom Keycodes @@ -99,7 +106,7 @@ These are the three main initialization functions, listed in the order that they * `keyboard_post_init_*` - Happens at the end of the firmware's startup process. This is where you'd want to put "customization" code, for the most part. ::: warning -For most people, the `keyboard_post_init_user` function is what you want to call. For instance, this is where you want to set up things for RGB Underglow. +For most people, the `keyboard_post_init_user` function is what you want to implement. For instance, this is where you want to set up things for RGB Underglow. ::: ## Keyboard Pre Initialization code diff --git a/docs/features/community_modules.md b/docs/features/community_modules.md new file mode 100644 index 00000000000..3a1a82e7bc6 --- /dev/null +++ b/docs/features/community_modules.md @@ -0,0 +1,142 @@ +# Community Modules + +Community Modules are a feature within QMK which allows code to be implemented by third parties, making it available for other people to import into their own builds. + +These modules can provide implementations which override or enhance normal QMK processing; initialization, key processing, suspend, and shutdown are some of the provided hooks which modules may implement. + +## Adding a Community Module to your build + +Community Modules have first-class support for [External Userspace](/newbs_external_userspace), and QMK strongly recommends using External Userspace for hosting keymaps and Community Modules together. + +Modules must live in either of two locations: + +* `/modules/` +* `/modules/` + +A basic module is provided within QMK itself -- `qmk/hello_world` -- which prints out a notification over [HID console](/faq_debug) after 10 seconds, and adds a new keycode, `COMMUNITY_MODULE_HELLO` (aliased to `CM_HELO`) which types `Hello there.` to the active application when the corresponding key is pressed. + +To add this module to your build, in your keymap's directory create a `keymap.json` with the following content: + +```json +{ + "modules": [ + "qmk/hello_world" + ] +} +``` + +If you already have a `keymap.json`, you'll need to manually merge the `modules` section into your keymap. + +::: warning +Community Modules are not supported by QMK Configurator. If you wish to use Community Modules, you must build your own firmware. +::: + +## Adding a Community Module to your External Userspace + +Module authors are encouraged to provide a git repository on GitHub which may be imported into a user's external userspace. If a user wishes to import a module repository, they can do the following: + +```sh +cd /path/to/your/external/userspace +mkdir -p modules +# Replace the following {user} and {repo} with the author's community module repository +git submodule add https://github.com/{user}/{repo}.git modules/{user} +git submdule update --init --recursive +``` + +This will ensure the copy of the module is made in your userspace. + +Add a new entry into your `keymap.json` with the desired modules, replacing `{user}` and `{module_name}` as appropriate: + +```json +{ + "modules": [ + "qmk/hello_world", + "{user}/{module_name}" + ] +} +``` + +::: info +The module listed in `keymap.json` is the relative path within the `modules/` directory. So long as the module is present _somewhere_ under `modules/`, then the `keymap.json` can refer to that path. +::: + +## Writing a QMK Community Module + +As stated earlier, Community Module authors are strongly encouraged to provide their modules through git, allowing users to leverage submodules to import functionality. + +### `qmk_module.json` + +A Community Module is denoted by a `qmk_module.json` file such as the following: + +```json +{ + "module_name": "Hello World", + "maintainer": "QMK Maintainers", + "features": { + "deferred_exec": true + }, + "keycodes": [ + { + "key": "COMMUNITY_MODULE_HELLO", + "aliases": ["CM_HELO"] + } + ] +} +``` + +At minimum, the module must provide the `module_name` and `maintainer` fields. + +The use of `features` matches the definition normally provided within `keyboard.json` and `info.json`, allowing a module to signal to the build system that it has its own dependencies. In the example above, it enables the _deferred executor_ feature whenever the above module is used in a build. + +The `keycodes` array allows a module to provide new keycodes (as well as corresponding aliases) to a keymap. + +### `rules.mk` / `post_rules.mk` + +These two files follows standard QMK build system logic, allowing for `Makefile`-style customisation as if it were present in the keyboard or keymap. + +### `.c` + +This file will be automatically added to the build if the filename matches the directory name. For example, the `qmk/hello_world` module contains a `hello_world.c` file, which is automatically added to the build. + +::: info +Other files intended to be included must use the normal method of `SRC += my_file.c` inside `rules.mk`. +::: + +::: tip +This file should use `ASSERT_COMMUNITY_MODULES_MIN_API_VERSION(1,0,0);` to enforce a minimum version of the API that it requires, ensuring the Community Module is built with a compatible version of QMK. The list of APIs and corresponding version is given at the bottom of this document. Note the use of commas instead of periods. +::: + +### `introspection.c` / `introspection.h` + +These two files hook into the keymap introspection logic -- the header is prepended before the user keymap, and the C source file is appended after the user keymap. + +The header may provide definitions which are useful to the user's `keymap.c`. + +The source file may provide functions which allow access to information specified in the user's `keymap.c`. + +::: warning +Introspection is a relatively advanced topic within QMK, and existing patterns should be followed. If you need help please [open an issue](https://github.com/qmk/qmk_firmware/issues/new) or [chat with us on Discord](https://discord.gg/qmk). +::: + +### Compatible APIs + +Community Modules may provide specializations for the following APIs: + +| Base API | API Format | Example (`hello_world` module) | API Version | +|----------------------------|-------------------------------------|----------------------------------------|-------------| +| `keyboard_pre_init` | `keyboard_pre_init_` | `keyboard_pre_init_hello_world` | `0.1.0` | +| `keyboard_post_init` | `keyboard_post_init_` | `keyboard_post_init_hello_world` | `0.1.0` | +| `pre_process_record` | `pre_process_record_` | `pre_process_record_hello_world` | `0.1.0` | +| `process_record` | `process_record_` | `process_record_hello_world` | `0.1.0` | +| `post_process_record` | `post_process_record_` | `post_process_record_hello_world` | `0.1.0` | +| `housekeeping_task` | `housekeeping_task_` | `housekeeping_task_hello_world` | `1.0.0` | +| `suspend_power_down` | `suspend_power_down_` | `suspend_power_down_hello_world` | `1.0.0` | +| `suspend_wakeup_init` | `suspend_wakeup_init_` | `suspend_wakeup_init_hello_world` | `1.0.0` | +| `shutdown` | `shutdown_` | `shutdown_hello_world` | `1.0.0` | +| `process_detected_host_os` | `process_detected_host_os_` | `process_detected_host_os_hello_world` | `1.0.0` | + +::: info +An unspecified API is disregarded if a Community Module does not provide a specialization for it. +::: + +Each API has an equivalent `__kb()` and `__user()` hook, as per the normal QMK [`_quantum`, `_kb`, and `_user` functions](/custom_quantum_functions#a-word-on-core-vs-keyboards-vs-keymap). diff --git a/keyboards/handwired/onekey/keymaps/community_module/keymap.c b/keyboards/handwired/onekey/keymaps/community_module/keymap.c new file mode 100644 index 00000000000..5115a9fea0b --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/community_module/keymap.c @@ -0,0 +1,7 @@ +// Copyright 2025 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + LAYOUT_ortho_1x1(CM_HELO) +}; diff --git a/keyboards/handwired/onekey/keymaps/community_module/keymap.json b/keyboards/handwired/onekey/keymaps/community_module/keymap.json new file mode 100644 index 00000000000..e3b4051b9ed --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/community_module/keymap.json @@ -0,0 +1,3 @@ +{ + "modules": ["qmk/hello_world"] +} diff --git a/lib/python/qmk/cli/__init__.py b/lib/python/qmk/cli/__init__.py index bb47ea26ed2..3f2ba9ce3cc 100644 --- a/lib/python/qmk/cli/__init__.py +++ b/lib/python/qmk/cli/__init__.py @@ -49,6 +49,7 @@ subcommands = [ 'qmk.cli.generate.api', 'qmk.cli.generate.autocorrect_data', 'qmk.cli.generate.compilation_database', + 'qmk.cli.generate.community_modules', 'qmk.cli.generate.config_h', 'qmk.cli.generate.develop_pr_list', 'qmk.cli.generate.dfu_header', diff --git a/lib/python/qmk/cli/format/c.py b/lib/python/qmk/cli/format/c.py index a58aef3fbc1..65818155b0f 100644 --- a/lib/python/qmk/cli/format/c.py +++ b/lib/python/qmk/cli/format/c.py @@ -10,7 +10,7 @@ from qmk.path import normpath from qmk.c_parse import c_source_files c_file_suffixes = ('c', 'h', 'cpp', 'hpp') -core_dirs = ('drivers', 'quantum', 'tests', 'tmk_core', 'platforms') +core_dirs = ('drivers', 'quantum', 'tests', 'tmk_core', 'platforms', 'modules') ignored = ('tmk_core/protocol/usb_hid', 'platforms/chibios/boards') diff --git a/lib/python/qmk/cli/format/json.py b/lib/python/qmk/cli/format/json.py index 36702944345..61f52541845 100755 --- a/lib/python/qmk/cli/format/json.py +++ b/lib/python/qmk/cli/format/json.py @@ -9,7 +9,7 @@ from milc import cli from qmk.info import info_json from qmk.json_schema import json_load, validate -from qmk.json_encoders import InfoJSONEncoder, KeymapJSONEncoder, UserspaceJSONEncoder +from qmk.json_encoders import InfoJSONEncoder, KeymapJSONEncoder, UserspaceJSONEncoder, CommunityModuleJSONEncoder from qmk.path import normpath @@ -30,6 +30,13 @@ def _detect_json_format(file, json_data): except ValidationError: pass + if json_encoder is None: + try: + validate(json_data, 'qmk.community_module.v1') + json_encoder = CommunityModuleJSONEncoder + except ValidationError: + pass + if json_encoder is None: try: validate(json_data, 'qmk.keyboard.v1') @@ -54,6 +61,8 @@ def _get_json_encoder(file, json_data): json_encoder = KeymapJSONEncoder elif cli.args.format == 'userspace': json_encoder = UserspaceJSONEncoder + elif cli.args.format == 'community_module': + json_encoder = CommunityModuleJSONEncoder else: # This should be impossible cli.log.error('Unknown format: %s', cli.args.format) @@ -61,7 +70,7 @@ def _get_json_encoder(file, json_data): @cli.argument('json_file', arg_only=True, type=normpath, help='JSON file to format') -@cli.argument('-f', '--format', choices=['auto', 'keyboard', 'keymap', 'userspace'], default='auto', arg_only=True, help='JSON formatter to use (Default: autodetect)') +@cli.argument('-f', '--format', choices=['auto', 'keyboard', 'keymap', 'userspace', 'community_module'], default='auto', arg_only=True, help='JSON formatter to use (Default: autodetect)') @cli.argument('-i', '--inplace', action='store_true', arg_only=True, help='If set, will operate in-place on the input file') @cli.argument('-p', '--print', action='store_true', arg_only=True, help='If set, will print the formatted json to stdout ') @cli.subcommand('Generate an info.json file for a keyboard.', hidden=False if cli.config.user.developer else True) diff --git a/lib/python/qmk/cli/generate/community_modules.py b/lib/python/qmk/cli/generate/community_modules.py new file mode 100644 index 00000000000..23678a2fb54 --- /dev/null +++ b/lib/python/qmk/cli/generate/community_modules.py @@ -0,0 +1,263 @@ +import contextlib +from argcomplete.completers import FilesCompleter +from pathlib import Path + +from milc import cli + +import qmk.path +from qmk.info import get_modules +from qmk.keyboard import keyboard_completer, keyboard_folder +from qmk.commands import dump_lines +from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE +from qmk.community_modules import module_api_list, load_module_jsons, find_module_path + + +@contextlib.contextmanager +def _render_api_guard(lines, api): + if api.guard: + lines.append(f'#if {api.guard}') + yield + if api.guard: + lines.append(f'#endif // {api.guard}') + + +def _render_api_header(api): + lines = [] + if api.header: + lines.append('') + with _render_api_guard(lines, api): + lines.append(f'#include <{api.header}>') + return lines + + +def _render_keycodes(module_jsons): + lines = [] + lines.append('') + lines.append('enum {') + first = True + for module_json in module_jsons: + module_name = Path(module_json['module']).name + keycodes = module_json.get('keycodes', []) + if len(keycodes) > 0: + lines.append(f' // From module: {module_name}') + for keycode in keycodes: + key = keycode.get('key', None) + if first: + lines.append(f' {key} = QK_COMMUNITY_MODULE,') + first = False + else: + lines.append(f' {key},') + for alias in keycode.get('aliases', []): + lines.append(f' {alias} = {key},') + lines.append('') + lines.append(' LAST_COMMUNITY_MODULE_KEY') + lines.append('};') + lines.append('_Static_assert((int)LAST_COMMUNITY_MODULE_KEY <= (int)(QK_COMMUNITY_MODULE_MAX+1), "Too many community module keycodes");') + return lines + + +def _render_api_declarations(api, module, user_kb=True): + lines = [] + lines.append('') + with _render_api_guard(lines, api): + if user_kb: + lines.append(f'{api.ret_type} {api.name}_{module}_user({api.args});') + lines.append(f'{api.ret_type} {api.name}_{module}_kb({api.args});') + lines.append(f'{api.ret_type} {api.name}_{module}({api.args});') + return lines + + +def _render_api_implementations(api, module): + module_name = Path(module).name + lines = [] + lines.append('') + with _render_api_guard(lines, api): + # _user + lines.append(f'__attribute__((weak)) {api.ret_type} {api.name}_{module_name}_user({api.args}) {{') + if api.ret_type == 'bool': + lines.append(' return true;') + else: + pass + lines.append('}') + lines.append('') + + # _kb + lines.append(f'__attribute__((weak)) {api.ret_type} {api.name}_{module_name}_kb({api.args}) {{') + if api.ret_type == 'bool': + lines.append(f' if(!{api.name}_{module_name}_user({api.call_params})) {{ return false; }}') + lines.append(' return true;') + else: + lines.append(f' {api.name}_{module_name}_user({api.call_params});') + lines.append('}') + lines.append('') + + # module (non-suffixed) + lines.append(f'__attribute__((weak)) {api.ret_type} {api.name}_{module_name}({api.args}) {{') + if api.ret_type == 'bool': + lines.append(f' if(!{api.name}_{module_name}_kb({api.call_params})) {{ return false; }}') + lines.append(' return true;') + else: + lines.append(f' {api.name}_{module_name}_kb({api.call_params});') + lines.append('}') + return lines + + +def _render_core_implementation(api, modules): + lines = [] + lines.append('') + with _render_api_guard(lines, api): + lines.append(f'{api.ret_type} {api.name}_modules({api.args}) {{') + if api.ret_type == 'bool': + lines.append(' return true') + for module in modules: + module_name = Path(module).name + if api.ret_type == 'bool': + lines.append(f' && {api.name}_{module_name}({api.call_params})') + else: + lines.append(f' {api.name}_{module_name}({api.call_params});') + if api.ret_type == 'bool': + lines.append(' ;') + lines.append('}') + return lines + + +@cli.argument('-o', '--output', arg_only=True, type=qmk.path.normpath, help='File to write to') +@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") +@cli.argument('-kb', '--keyboard', arg_only=True, type=keyboard_folder, completer=keyboard_completer, help='Keyboard to generate community_modules.h for.') +@cli.argument('filename', nargs='?', type=qmk.path.FileType('r'), arg_only=True, completer=FilesCompleter('.json'), help='Configurator JSON file') +@cli.subcommand('Creates a community_modules.h from a keymap.json file.') +def generate_community_modules_h(cli): + """Creates a community_modules.h from a keymap.json file + """ + if cli.args.output and cli.args.output.name == '-': + cli.args.output = None + + api_list, api_version, ver_major, ver_minor, ver_patch = module_api_list() + + lines = [ + GPL2_HEADER_C_LIKE, + GENERATED_HEADER_C_LIKE, + '#pragma once', + '#include ', + '#include ', + '#include ', + '', + '#define COMMUNITY_MODULES_API_VERSION_BUILDER(ver_major,ver_minor,ver_patch) (((((uint32_t)(ver_major))&0xFF) << 24) | ((((uint32_t)(ver_minor))&0xFF) << 16) | (((uint32_t)(ver_patch))&0xFF))', + f'#define COMMUNITY_MODULES_API_VERSION COMMUNITY_MODULES_API_VERSION_BUILDER({ver_major},{ver_minor},{ver_patch})', + f'#define ASSERT_COMMUNITY_MODULES_MIN_API_VERSION(ver_major,ver_minor,ver_patch) _Static_assert(COMMUNITY_MODULES_API_VERSION_BUILDER(ver_major,ver_minor,ver_patch) <= COMMUNITY_MODULES_API_VERSION, "Community module requires a newer version of QMK modules API -- needs: " #ver_major "." #ver_minor "." #ver_patch ", current: {api_version}.")', + '', + 'typedef struct keyrecord_t keyrecord_t; // forward declaration so we don\'t need to include quantum.h', + '', + ] + + modules = get_modules(cli.args.keyboard, cli.args.filename) + module_jsons = load_module_jsons(modules) + if len(modules) > 0: + lines.extend(_render_keycodes(module_jsons)) + + for api in api_list: + lines.extend(_render_api_header(api)) + + for module in modules: + lines.append('') + lines.append(f'// From module: {module}') + for api in api_list: + lines.extend(_render_api_declarations(api, Path(module).name)) + lines.append('') + + lines.append('// Core wrapper') + for api in api_list: + lines.extend(_render_api_declarations(api, 'modules', user_kb=False)) + + dump_lines(cli.args.output, lines, cli.args.quiet, remove_repeated_newlines=True) + + +@cli.argument('-o', '--output', arg_only=True, type=qmk.path.normpath, help='File to write to') +@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") +@cli.argument('-kb', '--keyboard', arg_only=True, type=keyboard_folder, completer=keyboard_completer, help='Keyboard to generate community_modules.c for.') +@cli.argument('filename', nargs='?', type=qmk.path.FileType('r'), arg_only=True, completer=FilesCompleter('.json'), help='Configurator JSON file') +@cli.subcommand('Creates a community_modules.c from a keymap.json file.') +def generate_community_modules_c(cli): + """Creates a community_modules.c from a keymap.json file + """ + if cli.args.output and cli.args.output.name == '-': + cli.args.output = None + + api_list, _, _, _, _ = module_api_list() + + lines = [ + GPL2_HEADER_C_LIKE, + GENERATED_HEADER_C_LIKE, + '', + '#include "community_modules.h"', + ] + + modules = get_modules(cli.args.keyboard, cli.args.filename) + if len(modules) > 0: + + for module in modules: + for api in api_list: + lines.extend(_render_api_implementations(api, Path(module).name)) + + for api in api_list: + lines.extend(_render_core_implementation(api, modules)) + + dump_lines(cli.args.output, lines, cli.args.quiet, remove_repeated_newlines=True) + + +@cli.argument('-o', '--output', arg_only=True, type=qmk.path.normpath, help='File to write to') +@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") +@cli.argument('-kb', '--keyboard', arg_only=True, type=keyboard_folder, completer=keyboard_completer, help='Keyboard to generate community_modules.c for.') +@cli.argument('filename', nargs='?', type=qmk.path.FileType('r'), arg_only=True, completer=FilesCompleter('.json'), help='Configurator JSON file') +@cli.subcommand('Creates a community_modules_introspection.h from a keymap.json file.') +def generate_community_modules_introspection_h(cli): + """Creates a community_modules_introspection.h from a keymap.json file + """ + if cli.args.output and cli.args.output.name == '-': + cli.args.output = None + + lines = [ + GPL2_HEADER_C_LIKE, + GENERATED_HEADER_C_LIKE, + '', + ] + + modules = get_modules(cli.args.keyboard, cli.args.filename) + if len(modules) > 0: + for module in modules: + module_path = find_module_path(module) + lines.append(f'#if __has_include("{module_path}/introspection.h")') + lines.append(f'#include "{module_path}/introspection.h"') + lines.append(f'#endif // __has_include("{module_path}/introspection.h")') + lines.append('') + + dump_lines(cli.args.output, lines, cli.args.quiet, remove_repeated_newlines=True) + + +@cli.argument('-o', '--output', arg_only=True, type=qmk.path.normpath, help='File to write to') +@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") +@cli.argument('-kb', '--keyboard', arg_only=True, type=keyboard_folder, completer=keyboard_completer, help='Keyboard to generate community_modules.c for.') +@cli.argument('filename', nargs='?', type=qmk.path.FileType('r'), arg_only=True, completer=FilesCompleter('.json'), help='Configurator JSON file') +@cli.subcommand('Creates a community_modules_introspection.c from a keymap.json file.') +def generate_community_modules_introspection_c(cli): + """Creates a community_modules_introspection.c from a keymap.json file + """ + if cli.args.output and cli.args.output.name == '-': + cli.args.output = None + + lines = [ + GPL2_HEADER_C_LIKE, + GENERATED_HEADER_C_LIKE, + '', + ] + + modules = get_modules(cli.args.keyboard, cli.args.filename) + if len(modules) > 0: + for module in modules: + module_path = find_module_path(module) + lines.append(f'#if __has_include("{module_path}/introspection.c")') + lines.append(f'#include "{module_path}/introspection.c"') + lines.append(f'#endif // __has_include("{module_path}/introspection.c")') + lines.append('') + + dump_lines(cli.args.output, lines, cli.args.quiet, remove_repeated_newlines=True) diff --git a/lib/python/qmk/cli/generate/rules_mk.py b/lib/python/qmk/cli/generate/rules_mk.py index 52915561095..cae9b07c3e8 100755 --- a/lib/python/qmk/cli/generate/rules_mk.py +++ b/lib/python/qmk/cli/generate/rules_mk.py @@ -6,12 +6,13 @@ from dotty_dict import dotty from argcomplete.completers import FilesCompleter from milc import cli -from qmk.info import info_json +from qmk.info import info_json, get_modules from qmk.json_schema import json_load from qmk.keyboard import keyboard_completer, keyboard_folder from qmk.commands import dump_lines, parse_configurator_json from qmk.path import normpath, FileType from qmk.constants import GPL2_HEADER_SH_LIKE, GENERATED_HEADER_SH_LIKE +from qmk.community_modules import find_module_path, load_module_jsons def generate_rule(rules_key, rules_value): @@ -46,6 +47,42 @@ def process_mapping_rule(kb_info_json, rules_key, info_dict): return generate_rule(rules_key, rules_value) +def generate_features_rules(features_dict): + lines = [] + for feature, enabled in features_dict.items(): + feature = feature.upper() + enabled = 'yes' if enabled else 'no' + lines.append(generate_rule(f'{feature}_ENABLE', enabled)) + return lines + + +def generate_modules_rules(keyboard, filename): + lines = [] + modules = get_modules(keyboard, filename) + if len(modules) > 0: + lines.append('') + lines.append('OPT_DEFS += -DCOMMUNITY_MODULES_ENABLE=TRUE') + for module in modules: + module_path = find_module_path(module) + if not module_path: + raise FileNotFoundError(f"Module '{module}' not found.") + lines.append('') + lines.append(f'COMMUNITY_MODULES += {module_path.name}') # use module_path here instead of module as it may be a subdirectory + lines.append(f'OPT_DEFS += -DCOMMUNITY_MODULE_{module_path.name.upper()}_ENABLE=TRUE') + lines.append(f'COMMUNITY_MODULE_PATHS += {module_path}') + lines.append(f'VPATH += {module_path}') + lines.append(f'SRC += $(wildcard {module_path}/{module_path.name}.c)') + lines.append(f'-include {module_path}/rules.mk') + + module_jsons = load_module_jsons(modules) + for module_json in module_jsons: + if 'features' in module_json: + lines.append('') + lines.append(f'# Module: {module_json["module_name"]}') + lines.extend(generate_features_rules(module_json['features'])) + return lines + + @cli.argument('filename', nargs='?', arg_only=True, type=FileType('r'), completer=FilesCompleter('.json'), help='A configurator export JSON to be compiled and flashed or a pre-compiled binary firmware file (bin/hex) to be flashed.') @cli.argument('-o', '--output', arg_only=True, type=normpath, help='File to write to') @cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") @@ -80,10 +117,7 @@ def generate_rules_mk(cli): # Iterate through features to enable/disable them if 'features' in kb_info_json: - for feature, enabled in kb_info_json['features'].items(): - feature = feature.upper() - enabled = 'yes' if enabled else 'no' - rules_mk_lines.append(generate_rule(f'{feature}_ENABLE', enabled)) + rules_mk_lines.extend(generate_features_rules(kb_info_json['features'])) # Set SPLIT_TRANSPORT, if needed if kb_info_json.get('split', {}).get('transport', {}).get('protocol') == 'custom': @@ -99,6 +133,8 @@ def generate_rules_mk(cli): if converter: rules_mk_lines.append(generate_rule('CONVERT_TO', converter)) + rules_mk_lines.extend(generate_modules_rules(cli.args.keyboard, cli.args.filename)) + # Show the results dump_lines(cli.args.output, rules_mk_lines) diff --git a/lib/python/qmk/cli/info.py b/lib/python/qmk/cli/info.py index e662407474e..5925b572589 100755 --- a/lib/python/qmk/cli/info.py +++ b/lib/python/qmk/cli/info.py @@ -52,6 +52,11 @@ def show_keymap(kb_info_json, title_caps=True): if keymap_path and keymap_path.suffix == '.json': keymap_data = json.load(keymap_path.open(encoding='utf-8')) + + # cater for layout-less keymap.json + if 'layout' not in keymap_data: + return + layout_name = keymap_data['layout'] layout_name = kb_info_json.get('layout_aliases', {}).get(layout_name, layout_name) # Resolve alias names diff --git a/lib/python/qmk/commands.py b/lib/python/qmk/commands.py index a05b3641b5c..0e1876ca7ae 100644 --- a/lib/python/qmk/commands.py +++ b/lib/python/qmk/commands.py @@ -98,11 +98,14 @@ def in_virtualenv(): return active_prefix != sys.prefix -def dump_lines(output_file, lines, quiet=True): +def dump_lines(output_file, lines, quiet=True, remove_repeated_newlines=False): """Handle dumping to stdout or file Creates parent folders if required """ generated = '\n'.join(lines) + '\n' + if remove_repeated_newlines: + while '\n\n\n' in generated: + generated = generated.replace('\n\n\n', '\n\n') if output_file and output_file.name != '-': output_file.parent.mkdir(parents=True, exist_ok=True) if output_file.exists(): diff --git a/lib/python/qmk/community_modules.py b/lib/python/qmk/community_modules.py new file mode 100644 index 00000000000..f7e96a6b93e --- /dev/null +++ b/lib/python/qmk/community_modules.py @@ -0,0 +1,100 @@ +import os + +from pathlib import Path +from functools import lru_cache + +from milc.attrdict import AttrDict + +from qmk.json_schema import json_load, validate, merge_ordered_dicts +from qmk.util import truthy +from qmk.constants import QMK_FIRMWARE, QMK_USERSPACE, HAS_QMK_USERSPACE +from qmk.path import under_qmk_firmware, under_qmk_userspace + +COMMUNITY_MODULE_JSON_FILENAME = 'qmk_module.json' + + +class ModuleAPI(AttrDict): + def __init__(self, **kwargs): + super().__init__() + for key, value in kwargs.items(): + self[key] = value + + +@lru_cache(maxsize=1) +def module_api_list(): + module_definition_files = sorted(set(QMK_FIRMWARE.glob('data/constants/module_hooks/*.hjson'))) + module_definition_jsons = [json_load(f) for f in module_definition_files] + module_definitions = merge_ordered_dicts(module_definition_jsons) + latest_module_version = module_definition_files[-1].stem + latest_module_version_parts = latest_module_version.split('.') + + api_list = [] + for name, mod in module_definitions.items(): + api_list.append(ModuleAPI( + ret_type=mod['ret_type'], + name=name, + args=mod['args'], + call_params=mod.get('call_params', ''), + guard=mod.get('guard', None), + header=mod.get('header', None), + )) + + return api_list, latest_module_version, latest_module_version_parts[0], latest_module_version_parts[1], latest_module_version_parts[2] + + +def find_available_module_paths(): + """Find all available modules. + """ + search_dirs = [] + if HAS_QMK_USERSPACE: + search_dirs.append(QMK_USERSPACE / 'modules') + search_dirs.append(QMK_FIRMWARE / 'modules') + + modules = [] + for search_dir in search_dirs: + for module_json_path in search_dir.rglob(COMMUNITY_MODULE_JSON_FILENAME): + modules.append(module_json_path.parent) + return modules + + +def find_module_path(module): + """Find a module by name. + """ + for module_path in find_available_module_paths(): + # Ensure the module directory is under QMK Firmware or QMK Userspace + relative_path = under_qmk_firmware(module_path) + if not relative_path: + relative_path = under_qmk_userspace(module_path) + if not relative_path: + continue + + lhs = str(relative_path.as_posix())[len('modules/'):] + rhs = str(Path(module).as_posix()) + + if relative_path and lhs == rhs: + return module_path + return None + + +def load_module_json(module): + """Load a module JSON file. + """ + module_path = find_module_path(module) + if not module_path: + raise FileNotFoundError(f'Module not found: {module}') + + module_json = json_load(module_path / COMMUNITY_MODULE_JSON_FILENAME) + + if not truthy(os.environ.get('SKIP_SCHEMA_VALIDATION'), False): + validate(module_json, 'qmk.community_module.v1') + + module_json['module'] = module + module_json['module_path'] = module_path + + return module_json + + +def load_module_jsons(modules): + """Load the module JSON files, matching the specified order. + """ + return list(map(load_module_json, modules)) diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index d70e7ee1b37..93eba7376ae 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -1059,3 +1059,30 @@ def keymap_json(keyboard, keymap, force_layout=None): _extract_config_h(kb_info_json, parse_config_h_file(keymap_config)) return kb_info_json + + +def get_modules(keyboard, keymap_filename): + """Get the modules for a keyboard/keymap. + """ + modules = [] + + if keymap_filename: + keymap_json = parse_configurator_json(keymap_filename) + + if keymap_json: + kb = keymap_json.get('keyboard', None) + if not kb: + kb = keyboard + + if kb: + kb_info_json = info_json(kb) + if kb_info_json: + modules.extend(kb_info_json.get('modules', [])) + + modules.extend(keymap_json.get('modules', [])) + + elif keyboard: + kb_info_json = info_json(keyboard) + modules.extend(kb_info_json.get('modules', [])) + + return list(dict.fromkeys(modules)) # remove dupes diff --git a/lib/python/qmk/json_encoders.py b/lib/python/qmk/json_encoders.py index 0e4ad1d2202..e83a381d520 100755 --- a/lib/python/qmk/json_encoders.py +++ b/lib/python/qmk/json_encoders.py @@ -235,3 +235,31 @@ class UserspaceJSONEncoder(QMKJSONEncoder): return '01build_targets' return key + + +class CommunityModuleJSONEncoder(QMKJSONEncoder): + """Custom encoder to make qmk_module.json's a little nicer to work with. + """ + def sort_dict(self, item): + """Sorts the hashes in a nice way. + """ + key = item[0] + + if self.indentation_level == 1: + if key == 'module_name': + return '00module_name' + if key == 'maintainer': + return '01maintainer' + if key == 'url': + return '02url' + if key == 'features': + return '03features' + if key == 'keycodes': + return '04keycodes' + elif self.indentation_level == 3: # keycodes + if key == 'key': + return '00key' + if key == 'aliases': + return '01aliases' + + return key diff --git a/lib/python/qmk/keymap.py b/lib/python/qmk/keymap.py index 9dd043c4a89..8e36461722b 100644 --- a/lib/python/qmk/keymap.py +++ b/lib/python/qmk/keymap.py @@ -334,33 +334,6 @@ def write_json(keyboard, keymap, layout, layers, macros=None): return write_file(keymap_file, keymap_content) -def write(keymap_json): - """Generate the `keymap.c` and write it to disk. - - Returns the filename written to. - - `keymap_json` should be a dict with the following keys: - keyboard - The name of the keyboard - - keymap - The name of the keymap - - layout - The LAYOUT macro this keymap uses. - - layers - An array of arrays describing the keymap. Each item in the inner array should be a string that is a valid QMK keycode. - - macros - A list of macros for this keymap. - """ - keymap_content = generate_c(keymap_json) - keymap_file = qmk.path.keymaps(keymap_json['keyboard'])[0] / keymap_json['keymap'] / 'keymap.c' - - return write_file(keymap_file, keymap_content) - - def locate_keymap(keyboard, keymap, force_layout=None): """Returns the path to a keymap for a specific keyboard. """ diff --git a/modules/qmk/hello_world/hello_world.c b/modules/qmk/hello_world/hello_world.c new file mode 100644 index 00000000000..d9dd3661007 --- /dev/null +++ b/modules/qmk/hello_world/hello_world.c @@ -0,0 +1,33 @@ +// Copyright 2025 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +#include "introspection.h" + +ASSERT_COMMUNITY_MODULES_MIN_API_VERSION(1, 0, 0); + +uint32_t delayed_hello_world(uint32_t trigger_time, void *cb_arg) { + printf("Hello, world! I'm a QMK based keyboard! The keymap array size is %d bytes.\n", (int)hello_world_introspection().total_size); + return 0; +} + +void keyboard_post_init_hello_world(void) { + keyboard_post_init_hello_world_kb(); + defer_exec(10000, delayed_hello_world, NULL); +} + +bool process_record_hello_world(uint16_t keycode, keyrecord_t *record) { + if (!process_record_hello_world_kb(keycode, record)) { + return false; + } + + switch (keycode) { + case COMMUNITY_MODULE_HELLO: + if (record->event.pressed) { + SEND_STRING("Hello there."); + break; + } + } + + return true; +} diff --git a/modules/qmk/hello_world/introspection.c b/modules/qmk/hello_world/introspection.c new file mode 100644 index 00000000000..2c32a074f51 --- /dev/null +++ b/modules/qmk/hello_world/introspection.c @@ -0,0 +1,10 @@ +// Copyright 2025 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later + +hello_world_introspection_t hello_world_introspection(void) { + hello_world_introspection_t introspection = { + .total_size = sizeof(keymaps), + .layer_count = sizeof(keymaps) / sizeof(keymaps[0]), + }; + return introspection; +} diff --git a/modules/qmk/hello_world/introspection.h b/modules/qmk/hello_world/introspection.h new file mode 100644 index 00000000000..fd3d7f24a05 --- /dev/null +++ b/modules/qmk/hello_world/introspection.h @@ -0,0 +1,10 @@ +// Copyright 2025 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +typedef struct hello_world_introspection_t { + int16_t total_size; + int16_t layer_count; +} hello_world_introspection_t; + +hello_world_introspection_t hello_world_introspection(void); diff --git a/modules/qmk/hello_world/qmk_module.json b/modules/qmk/hello_world/qmk_module.json new file mode 100644 index 00000000000..4f269cb4e94 --- /dev/null +++ b/modules/qmk/hello_world/qmk_module.json @@ -0,0 +1,13 @@ +{ + "module_name": "Hello World", + "maintainer": "QMK Maintainers", + "features": { + "deferred_exec": true + }, + "keycodes": [ + { + "key": "COMMUNITY_MODULE_HELLO", + "aliases": ["CM_HELO"] + } + ] +} diff --git a/modules/qmk/hello_world/rules.mk b/modules/qmk/hello_world/rules.mk new file mode 100644 index 00000000000..91806fb1e3c --- /dev/null +++ b/modules/qmk/hello_world/rules.mk @@ -0,0 +1,2 @@ +# Just a simple rules.mk which tests that they work from a community module. +$(shell $(QMK_BIN) hello -n "from QMK's hello world community module") diff --git a/quantum/action.h b/quantum/action.h index d5b15c6f173..7596688f31d 100644 --- a/quantum/action.h +++ b/quantum/action.h @@ -45,7 +45,7 @@ typedef struct { } tap_t; /* Key event container for recording */ -typedef struct { +typedef struct keyrecord_t { keyevent_t event; #ifndef NO_ACTION_TAPPING tap_t tap; diff --git a/quantum/keyboard.c b/quantum/keyboard.c index d7836cf36e0..ad740de4b3f 100644 --- a/quantum/keyboard.c +++ b/quantum/keyboard.c @@ -289,6 +289,21 @@ __attribute__((weak)) void keyboard_pre_init_kb(void) { keyboard_pre_init_user(); } +/** \brief keyboard_pre_init_modules + * + * FIXME: needs doc + */ +__attribute__((weak)) void keyboard_pre_init_modules(void) {} + +/** \brief keyboard_pre_init_quantum + * + * FIXME: needs doc + */ +void keyboard_pre_init_quantum(void) { + keyboard_pre_init_modules(); + keyboard_pre_init_kb(); +} + /** \brief keyboard_post_init_user * * FIXME: needs doc @@ -305,6 +320,23 @@ __attribute__((weak)) void keyboard_post_init_kb(void) { keyboard_post_init_user(); } +/** \brief keyboard_post_init_modules + * + * FIXME: needs doc + */ + +__attribute__((weak)) void keyboard_post_init_modules(void) {} + +/** \brief keyboard_post_init_quantum + * + * FIXME: needs doc + */ + +void keyboard_post_init_quantum(void) { + keyboard_post_init_modules(); + keyboard_post_init_kb(); +} + /** \brief matrix_can_read * * Allows overriding when matrix scanning operations should be executed. @@ -323,7 +355,7 @@ void keyboard_setup(void) { eeprom_driver_init(); #endif matrix_setup(); - keyboard_pre_init_kb(); + keyboard_pre_init_quantum(); } #ifndef SPLIT_KEYBOARD @@ -355,6 +387,13 @@ __attribute__((weak)) bool should_process_keypress(void) { return is_keyboard_master(); } +/** \brief housekeeping_task_modules + * + * Codegen will override this if community modules are enabled. + * This is specific to keyboard-level functionality. + */ +__attribute__((weak)) void housekeeping_task_modules(void) {} + /** \brief housekeeping_task_kb * * Override this function if you have a need to execute code for every keyboard main loop iteration. @@ -374,6 +413,7 @@ __attribute__((weak)) void housekeeping_task_user(void) {} * Invokes hooks for executing code after QMK is done after each loop iteration. */ void housekeeping_task(void) { + housekeeping_task_modules(); housekeeping_task_kb(); housekeeping_task_user(); } @@ -493,7 +533,7 @@ void keyboard_init(void) { debug_enable = true; #endif - keyboard_post_init_kb(); /* Always keep this last */ + keyboard_post_init_quantum(); /* Always keep this last */ } /** \brief key_event_task diff --git a/quantum/keycodes.h b/quantum/keycodes.h index 5929e356873..b4fc38f5ff4 100644 --- a/quantum/keycodes.h +++ b/quantum/keycodes.h @@ -76,6 +76,8 @@ enum qk_keycode_ranges { QK_MACRO_MAX = 0x777F, QK_CONNECTION = 0x7780, QK_CONNECTION_MAX = 0x77BF, + QK_COMMUNITY_MODULE = 0x77C0, + QK_COMMUNITY_MODULE_MAX = 0x77FF, QK_LIGHTING = 0x7800, QK_LIGHTING_MAX = 0x78FF, QK_QUANTUM = 0x7C00, @@ -1476,6 +1478,7 @@ enum qk_keycode_defines { #define IS_QK_STENO(code) ((code) >= QK_STENO && (code) <= QK_STENO_MAX) #define IS_QK_MACRO(code) ((code) >= QK_MACRO && (code) <= QK_MACRO_MAX) #define IS_QK_CONNECTION(code) ((code) >= QK_CONNECTION && (code) <= QK_CONNECTION_MAX) +#define IS_QK_COMMUNITY_MODULE(code) ((code) >= QK_COMMUNITY_MODULE && (code) <= QK_COMMUNITY_MODULE_MAX) #define IS_QK_LIGHTING(code) ((code) >= QK_LIGHTING && (code) <= QK_LIGHTING_MAX) #define IS_QK_QUANTUM(code) ((code) >= QK_QUANTUM && (code) <= QK_QUANTUM_MAX) #define IS_QK_KB(code) ((code) >= QK_KB && (code) <= QK_KB_MAX) diff --git a/quantum/keymap_introspection.c b/quantum/keymap_introspection.c index 236b54ce980..23e842353a3 100644 --- a/quantum/keymap_introspection.c +++ b/quantum/keymap_introspection.c @@ -1,6 +1,10 @@ // Copyright 2022 Nick Brassel (@tzarc) // SPDX-License-Identifier: GPL-2.0-or-later +#if defined(COMMUNITY_MODULES_ENABLE) +# include "community_modules_introspection.h" +#endif // defined(COMMUNITY_MODULES_ENABLE) + // Pull the actual keymap code so that we can inspect stuff from it #include KEYMAP_C @@ -171,3 +175,10 @@ __attribute__((weak)) const key_override_t* key_override_get(uint16_t key_overri } #endif // defined(KEY_OVERRIDE_ENABLE) + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Community modules (must be last in this file!) + +#if defined(COMMUNITY_MODULES_ENABLE) +# include "community_modules_introspection.c" +#endif // defined(COMMUNITY_MODULES_ENABLE) diff --git a/quantum/os_detection.c b/quantum/os_detection.c index 84bbeeed544..9a9f9052f24 100644 --- a/quantum/os_detection.c +++ b/quantum/os_detection.c @@ -72,6 +72,8 @@ static volatile struct usb_device_state maxprev_usb_device_state = {.configure_s static volatile bool debouncing = false; static volatile fast_timer_t last_time = 0; +bool process_detected_host_os_modules(os_variant_t os); + void os_detection_task(void) { #ifdef OS_DETECTION_KEYBOARD_RESET // resetting the keyboard on the USB device state change callback results in instability, so delegate that to this task @@ -96,12 +98,17 @@ void os_detection_task(void) { if (detected_os != reported_os || first_report) { first_report = false; reported_os = detected_os; + process_detected_host_os_modules(detected_os); process_detected_host_os_kb(detected_os); } } } } +__attribute__((weak)) bool process_detected_host_os_modules(os_variant_t os) { + return true; +} + __attribute__((weak)) bool process_detected_host_os_kb(os_variant_t detected_os) { return process_detected_host_os_user(detected_os); } diff --git a/quantum/quantum.c b/quantum/quantum.c index b63300add8e..adb14d64b61 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -162,6 +162,10 @@ __attribute__((weak)) void tap_code16(uint16_t code) { tap_code16_delay(code, code == KC_CAPS_LOCK ? TAP_HOLD_CAPS_DELAY : TAP_CODE_DELAY); } +__attribute__((weak)) bool pre_process_record_modules(uint16_t keycode, keyrecord_t *record) { + return true; +} + __attribute__((weak)) bool pre_process_record_kb(uint16_t keycode, keyrecord_t *record) { return pre_process_record_user(keycode, record); } @@ -174,6 +178,10 @@ __attribute__((weak)) bool process_action_kb(keyrecord_t *record) { return true; } +__attribute__((weak)) bool process_record_modules(uint16_t keycode, keyrecord_t *record) { + return true; +} + __attribute__((weak)) bool process_record_kb(uint16_t keycode, keyrecord_t *record) { return process_record_user(keycode, record); } @@ -182,12 +190,22 @@ __attribute__((weak)) bool process_record_user(uint16_t keycode, keyrecord_t *re return true; } +__attribute__((weak)) void post_process_record_modules(uint16_t keycode, keyrecord_t *record) {} + __attribute__((weak)) void post_process_record_kb(uint16_t keycode, keyrecord_t *record) { post_process_record_user(keycode, record); } __attribute__((weak)) void post_process_record_user(uint16_t keycode, keyrecord_t *record) {} +__attribute__((weak)) bool shutdown_modules(bool jump_to_bootloader) { + return true; +} + +__attribute__((weak)) void suspend_power_down_modules(void) {} + +__attribute__((weak)) void suspend_wakeup_init_modules(void) {} + void shutdown_quantum(bool jump_to_bootloader) { clear_keyboard(); #if defined(MIDI_ENABLE) && defined(MIDI_BASIC) @@ -199,11 +217,13 @@ void shutdown_quantum(bool jump_to_bootloader) { # endif uint16_t timer_start = timer_read(); PLAY_SONG(goodbye_song); + shutdown_modules(jump_to_bootloader); shutdown_kb(jump_to_bootloader); while (timer_elapsed(timer_start) < 250) wait_ms(1); stop_all_notes(); #else + shutdown_modules(jump_to_bootloader); shutdown_kb(jump_to_bootloader); wait_ms(250); #endif @@ -258,7 +278,7 @@ uint16_t get_event_keycode(keyevent_t event, bool update_layer_cache) { /* Get keycode, and then process pre tapping functionality */ bool pre_process_record_quantum(keyrecord_t *record) { - return pre_process_record_kb(get_record_keycode(record, true), record) && + return pre_process_record_modules(get_record_keycode(record, true), record) && pre_process_record_kb(get_record_keycode(record, true), record) && #ifdef COMBO_ENABLE process_combo(get_record_keycode(record, true), record) && #endif @@ -268,6 +288,7 @@ bool pre_process_record_quantum(keyrecord_t *record) { /* Get keycode, and then call keyboard function */ void post_process_record_quantum(keyrecord_t *record) { uint16_t keycode = get_record_keycode(record, false); + post_process_record_modules(keycode, record); post_process_record_kb(keycode, record); } @@ -332,6 +353,7 @@ bool process_record_quantum(keyrecord_t *record) { #if defined(POINTING_DEVICE_ENABLE) && defined(POINTING_DEVICE_AUTO_MOUSE_ENABLE) process_auto_mouse(keycode, record) && #endif + process_record_modules(keycode, record) && // modules must run before kb process_record_kb(keycode, record) && #if defined(VIA_ENABLE) process_record_via(keycode, record) && @@ -526,6 +548,7 @@ __attribute__((weak)) bool shutdown_kb(bool jump_to_bootloader) { } void suspend_power_down_quantum(void) { + suspend_power_down_modules(); suspend_power_down_kb(); #ifndef NO_SUSPEND_POWER_DOWN // Turn off backlight @@ -593,6 +616,7 @@ __attribute__((weak)) void suspend_wakeup_init_quantum(void) { #if defined(RGB_MATRIX_ENABLE) rgb_matrix_set_suspend_state(false); #endif + suspend_wakeup_init_modules(); suspend_wakeup_init_kb(); } diff --git a/quantum/quantum.h b/quantum/quantum.h index 9db88a54d4b..59a415ead4e 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h @@ -244,6 +244,10 @@ extern layer_state_t layer_state; # include "layer_lock.h" #endif +#ifdef COMMUNITY_MODULES_ENABLE +# include "community_modules.h" +#endif + void set_single_default_layer(uint8_t default_layer); void set_single_persistent_default_layer(uint8_t default_layer); From c4aaab5fa34ec9d66bb57c3640a5356c2daa638f Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 27 Feb 2025 22:14:32 +0000 Subject: [PATCH 235/365] 2025q1 develop changelog (#24949) Co-authored-by: Nick Brassel --- docs/ChangeLog/20250223.md | 135 ++++++++++++++++++++++++ docs/_sidebar.json | 2 +- docs/breaking_changes.md | 20 ++-- docs/breaking_changes_history.md | 1 + modules/qmk/hello_world/qmk_module.json | 1 + 5 files changed, 148 insertions(+), 11 deletions(-) create mode 100644 docs/ChangeLog/20250223.md diff --git a/docs/ChangeLog/20250223.md b/docs/ChangeLog/20250223.md new file mode 100644 index 00000000000..858848a60bc --- /dev/null +++ b/docs/ChangeLog/20250223.md @@ -0,0 +1,135 @@ +# QMK Breaking Changes - 2025 February 23 Changelog + +## Notable Features + +### Community Modules ([#24848](https://github.com/qmk/qmk_firmware/pull/24848)) + +Community Modules are a feature within QMK which allows code to be implemented by third parties, making it available for other people to import into their own builds. + +These modules can provide implementations which override or enhance normal QMK processing; initialization, key processing, suspend, and shutdown are some of the provided hooks which modules may currently implement. + +See the [Community Modules documentation](../features/community_modules) for more information, including the full list of available hooks. + +First-class support for [External Userspace](../newbs_external_userspace) is included out of the box, so there's even more reason to take the plunge and convert your keymap builds to a userspace repository! + +::: tip +An example with a new keycode and some debugging information in the QMK repository [lives here](https://github.com/qmk/qmk_firmware/tree/master/modules/qmk/hello_world), and a community module port of [getreuer's SOCD Cleaner](https://getreuer.info/posts/keyboards/socd-cleaner/) can be found in [tzarc's modules repo](https://github.com/tzarc/qmk_modules). +::: + +### Chordal Hold ([#24560](https://github.com/qmk/qmk_firmware/pull/24560)) + +Chordal Hold implements, by default, an "opposite hands" rule. Suppose a tap-hold key is pressed and then, before the tapping term, another key is pressed. With Chordal Hold, the tap-hold key is settled as tapped if the two keys are on the same hand. + +Chordal Hold may be useful to avoid accidental modifier activation with mod-taps, particularly in rolled keypresses when using home row mods. + +See the [Chordal Hold documentation](../tap_hold#chordal-hold) for more information. + +## Changes Requiring User Action + +### Updated Keyboard Codebases + +| Old Keyboard Name | New Keyboard Name | +|-------------------------|-----------------------------| +| cxt_studio | cxt_studio/12e4 | +| ergodox_stm32 | handwired/ergodox_stm32 | +| ploopyco/mouse | ploopyco/mouse/rev1_002 | +| ploopyco/trackball/rev1 | ploopyco/trackball/rev1_004 | +| ymdk/id75 | ymdk/id75/f103 | + +## Deprecation Notices + +In line with the [notice period](../support_deprecation_policy#how-much-advance-notice-will-be-given), deprecation notices for larger items are listed here. + +### DEFAULT_FOLDER removal ([#24836](https://github.com/qmk/qmk_firmware/pull/24836)) + +`DEFAULT_FOLDER` was originally introduced to work around limitations within the build system. +Parent folders containing common configuration would create invalid build targets. + +With the introduction of [`keyboard.json`](./20240526#keyboard-json) as a configuration file, the build system now has a consistent method to detect build targets. +The `DEFAULT_FOLDER` functionality is now redundant and the intent is for `rules.mk` to become pure configuration. + +Backwards compatibility of build targets has been maintained where possible. + +## Full changelist + +Core: +* Chaining OSL and MO ([#23065](https://github.com/qmk/qmk_firmware/pull/23065)) +* Add extra keymap for EurKEY layout ([#24241](https://github.com/qmk/qmk_firmware/pull/24241)) +* Add leader_add_user callback ([#24266](https://github.com/qmk/qmk_firmware/pull/24266)) +* always return audio pin to 0 on ARM ([#24503](https://github.com/qmk/qmk_firmware/pull/24503)) +* Update Starlight matrix effects ([#24521](https://github.com/qmk/qmk_firmware/pull/24521)) +* Refactor Hue Breathing matrix effect with runner ([#24525](https://github.com/qmk/qmk_firmware/pull/24525)) +* Ensure timer_read() is safe to call from interrupt handlers on ARM ([#24529](https://github.com/qmk/qmk_firmware/pull/24529)) +* Update Raindrops effect to respect LED range limits ([#24531](https://github.com/qmk/qmk_firmware/pull/24531)) +* Add Chordal Hold, an "opposite hands rule" tap-hold option similar to Achordion, Bilateral Combinations. ([#24560](https://github.com/qmk/qmk_firmware/pull/24560)) +* Azoteq - improve I2C behaviour while polling. ([#24611](https://github.com/qmk/qmk_firmware/pull/24611)) +* macOS install: remove bad ARM toolchains ([#24637](https://github.com/qmk/qmk_firmware/pull/24637)) +* small refactoring of TIMER_DIFF ([#24678](https://github.com/qmk/qmk_firmware/pull/24678)) +* Subscript alef correction ([#24707](https://github.com/qmk/qmk_firmware/pull/24707)) +* Created SH1107 driver for quantum painter ([#24724](https://github.com/qmk/qmk_firmware/pull/24724)) +* [CI] Regenerate Files ([#24772](https://github.com/qmk/qmk_firmware/pull/24772)) +* Patch up issue for inverted complementary output on Backlight ([#24794](https://github.com/qmk/qmk_firmware/pull/24794)) +* Patch up issue when compile with APA102 driver ([#24800](https://github.com/qmk/qmk_firmware/pull/24800)) +* Consolidate send_string implementations. ([#24817](https://github.com/qmk/qmk_firmware/pull/24817)) +* Consolidate timer_elapsed implementations ([#24830](https://github.com/qmk/qmk_firmware/pull/24830)) +* `i2c_master`: remove deprecated functions ([#24832](https://github.com/qmk/qmk_firmware/pull/24832)) +* Resolve keyboard_aliases when processing keyboard make targets ([#24834](https://github.com/qmk/qmk_firmware/pull/24834)) +* LED drivers: remove deprecated defines ([#24837](https://github.com/qmk/qmk_firmware/pull/24837)) +* `ferris/0_1`: update I2C API usage ([#24839](https://github.com/qmk/qmk_firmware/pull/24839)) +* Unify i2c_master headers ([#24846](https://github.com/qmk/qmk_firmware/pull/24846)) +* Community modules ([#24848](https://github.com/qmk/qmk_firmware/pull/24848)) +* Relocate base WS2812 code ([#24850](https://github.com/qmk/qmk_firmware/pull/24850)) +* Unify UART headers ([#24855](https://github.com/qmk/qmk_firmware/pull/24855)) +* Unify spi_master headers ([#24857](https://github.com/qmk/qmk_firmware/pull/24857)) +* Invoke `process_record_via` after `_user`/`_kb` have a chance to handle it. ([#24879](https://github.com/qmk/qmk_firmware/pull/24879)) + +CLI: +* Extend lint to reject 'blank' files ([#23994](https://github.com/qmk/qmk_firmware/pull/23994)) +* `qmk docs`: restore `--port` and `--browser` arguments ([#24623](https://github.com/qmk/qmk_firmware/pull/24623)) +* Update via2json layout macro searching ([#24640](https://github.com/qmk/qmk_firmware/pull/24640)) +* Change `new-keymap` keymap name prompt ([#24701](https://github.com/qmk/qmk_firmware/pull/24701)) +* default_keyboard.h generation tweaks ([#24715](https://github.com/qmk/qmk_firmware/pull/24715)) +* Ensure `qmk flash` rejects invalid files for uf2 compatible bootloaders ([#24802](https://github.com/qmk/qmk_firmware/pull/24802)) +* Reject readme dummy content ([#24913](https://github.com/qmk/qmk_firmware/pull/24913)) + +Submodule updates: +* chibios: usb_main: remove OTG sof workaround ([#24259](https://github.com/qmk/qmk_firmware/pull/24259)) +* Update ChibiOS to latest stable branch. ([#24651](https://github.com/qmk/qmk_firmware/pull/24651)) +* Update ChibiOS `stable_21.11.x`. ([#24714](https://github.com/qmk/qmk_firmware/pull/24714)) +* Update ChibiOS-Contrib. ([#24803](https://github.com/qmk/qmk_firmware/pull/24803)) + +Keyboards: +* refactor: move ymdk/id75 to revision ([#24590](https://github.com/qmk/qmk_firmware/pull/24590)) +* skyloong/gk61: Remove overriding of core keycode behaviour ([#24655](https://github.com/qmk/qmk_firmware/pull/24655)) +* moky/moky88: Remove use of deprecated defines ([#24656](https://github.com/qmk/qmk_firmware/pull/24656)) +* Updating Promenade keyboard (Missing keys in matrix, other minor changes to keymap) ([#24705](https://github.com/qmk/qmk_firmware/pull/24705)) +* Moving cxt_studio keyboard to own folder ([#24748](https://github.com/qmk/qmk_firmware/pull/24748)) +* Add CXT Studio 12E3 keyboard ([#24749](https://github.com/qmk/qmk_firmware/pull/24749)) +* Add Silakka54 keyboard ([#24757](https://github.com/qmk/qmk_firmware/pull/24757)) +* Add more layout for skiller_sgk50_s4 ([#24784](https://github.com/qmk/qmk_firmware/pull/24784)) +* Add watchdog service to RGBKB Sol 3 ([#24786](https://github.com/qmk/qmk_firmware/pull/24786)) +* Migrate some DEFAULT_FOLDER to keyboard_aliases.hjson ([#24835](https://github.com/qmk/qmk_firmware/pull/24835)) +* Remove DEFAULT_FOLDER where keyboard aliases already exists ([#24838](https://github.com/qmk/qmk_firmware/pull/24838)) +* Migrate some DEFAULT_FOLDER to keyboard_aliases.hjson ([#24845](https://github.com/qmk/qmk_firmware/pull/24845)) +* Update for 'A-JAZZ AKC084' ('A-JAZZ AKP846') ([#24868](https://github.com/qmk/qmk_firmware/pull/24868)) +* handwired/xealous - Remove DEFAULT_FOLDER ([#24877](https://github.com/qmk/qmk_firmware/pull/24877)) +* Updates to Ploopy Classic, Mouse, and Thumb for RP2040 hardware upgrade ([#24880](https://github.com/qmk/qmk_firmware/pull/24880)) +* Move Ergodox STM32 to handwired folder ([#24903](https://github.com/qmk/qmk_firmware/pull/24903)) +* Remove readme dummy content ([#24912](https://github.com/qmk/qmk_firmware/pull/24912)) +* Migrate some DEFAULT_FOLDER to keyboard_aliases.hjson ([#24915](https://github.com/qmk/qmk_firmware/pull/24915)) +* Migrate some DEFAULT_FOLDER to keyboard_aliases.hjson ([#24938](https://github.com/qmk/qmk_firmware/pull/24938)) + +Keyboard fixes: +* Fix up CI with `DEFAULT_FOLDER`. ([#24842](https://github.com/qmk/qmk_firmware/pull/24842)) +* rgbkb/pan - Remove invalid build target ([#24844](https://github.com/qmk/qmk_firmware/pull/24844)) + +Others: +* Formally deprecate DEFAULT_FOLDER ([#24836](https://github.com/qmk/qmk_firmware/pull/24836)) +* Correct I2C API reference ([#24840](https://github.com/qmk/qmk_firmware/pull/24840)) + +Bugs: +* Retro Tapping Re-Write; Key Roll Fix ([#23641](https://github.com/qmk/qmk_firmware/pull/23641)) +* Fix Quantum Painter compiliation issues with heavy optimization ([#24667](https://github.com/qmk/qmk_firmware/pull/24667)) +* Bugfix and update for AT32F415 ([#24807](https://github.com/qmk/qmk_firmware/pull/24807)) +* Fix for Chordal Hold: stuck mods when mod-taps are pressed in a stuttered sequence. ([#24878](https://github.com/qmk/qmk_firmware/pull/24878)) +* fix EEPROM driver for STM32L0/1 cat.1 devices ([#24928](https://github.com/qmk/qmk_firmware/pull/24928)) diff --git a/docs/_sidebar.json b/docs/_sidebar.json index 0b5f2970187..ae4d8fe4a9d 100644 --- a/docs/_sidebar.json +++ b/docs/_sidebar.json @@ -207,7 +207,7 @@ { "text": "My Pull Request Was Flagged", "link": "/breaking_changes_instructions" }, { "text": "Most Recent ChangeLog", - "link": "/ChangeLog/20241124" + "link": "/ChangeLog/20250223" }, { "text": "Past Breaking Changes", "link": "/breaking_changes_history" }, { "text": "Deprecation Policy", "link": "/support_deprecation_policy" } diff --git a/docs/breaking_changes.md b/docs/breaking_changes.md index 132c5943cc1..a5a57ccd12a 100644 --- a/docs/breaking_changes.md +++ b/docs/breaking_changes.md @@ -10,25 +10,25 @@ Practically, this means QMK merges the `develop` branch into the `master` branch ## What has been included in past Breaking Changes? +* [2025 Feb 23](ChangeLog/20250223) * [2024 Nov 24](ChangeLog/20241124) * [2024 Aug 25](ChangeLog/20240825) -* [2024 May 26](ChangeLog/20240526) * [Older Breaking Changes](breaking_changes_history) ## When is the next Breaking Change? -The next Breaking Change is scheduled for February 23, 2025. +The next Breaking Change is scheduled for May 25, 2025. ### Important Dates -* 2024 Nov 24 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions. -* 2025 Jan 26 - `develop` closed to new PRs. -* 2025 Jan 26 - Call for testers. -* 2025 Feb 9 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes -* 2025 Feb 16 - `develop` is locked, only critical bugfix PRs merged. -* 2024 Nov 21 - `master` is locked, no PRs merged. -* 2025 Feb 23 - Merge `develop` to `master`. -* 2025 Feb 23 - `master` is unlocked. PRs can be merged again. +* 2025 Feb 23 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions. +* 2025 Apr 27 - `develop` closed to new PRs. +* 2025 Apr 27 - Call for testers. +* 2025 May 11 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes +* 2025 May 18 - `develop` is locked, only critical bugfix PRs merged. +* 2025 May 23 - `master` is locked, no PRs merged. +* 2025 May 25 - Merge `develop` to `master`. +* 2025 May 25 - `master` is unlocked. PRs can be merged again. ## What changes will be included? diff --git a/docs/breaking_changes_history.md b/docs/breaking_changes_history.md index f877f426395..af8c1c04d5f 100644 --- a/docs/breaking_changes_history.md +++ b/docs/breaking_changes_history.md @@ -2,6 +2,7 @@ This page links to all previous changelogs from the QMK Breaking Changes process. +* [2025 Feb 23](ChangeLog/20250223) - version 0.28.0 * [2024 Nov 24](ChangeLog/20241124) - version 0.27.0 * [2024 Aug 25](ChangeLog/20240825) - version 0.26.0 * [2024 May 26](ChangeLog/20240526) - version 0.25.0 diff --git a/modules/qmk/hello_world/qmk_module.json b/modules/qmk/hello_world/qmk_module.json index 4f269cb4e94..fd855a6e237 100644 --- a/modules/qmk/hello_world/qmk_module.json +++ b/modules/qmk/hello_world/qmk_module.json @@ -2,6 +2,7 @@ "module_name": "Hello World", "maintainer": "QMK Maintainers", "features": { + "console": true, "deferred_exec": true }, "keycodes": [ From cdb865cf60b17593f5c811c24a21d7b3030d8653 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Fri, 28 Feb 2025 09:20:58 +1100 Subject: [PATCH 236/365] Merge point for 2025q1 breaking change. --- readme.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/readme.md b/readme.md index e5c0d41b7b3..62aed120662 100644 --- a/readme.md +++ b/readme.md @@ -1,7 +1,3 @@ -# THIS IS THE DEVELOP BRANCH - -Warning- This is the `develop` branch of QMK Firmware. You may encounter broken code here. Please see [Breaking Changes](https://docs.qmk.fm/#/breaking_changes) for more information. - # Quantum Mechanical Keyboard Firmware [![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) From 312f42945daede5c46d72e58dfe44b86c7666eb1 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Fri, 28 Feb 2025 09:26:13 +1100 Subject: [PATCH 237/365] Branch point for 2025q2 breaking change. --- readme.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/readme.md b/readme.md index 62aed120662..e5c0d41b7b3 100644 --- a/readme.md +++ b/readme.md @@ -1,3 +1,7 @@ +# THIS IS THE DEVELOP BRANCH + +Warning- This is the `develop` branch of QMK Firmware. You may encounter broken code here. Please see [Breaking Changes](https://docs.qmk.fm/#/breaking_changes) for more information. + # Quantum Mechanical Keyboard Firmware [![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) From 6ee806f376f2bb821c1eb724645444fbf4f5a18e Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 28 Feb 2025 05:46:14 +0000 Subject: [PATCH 238/365] Implement battery level interface (#24666) Co-authored-by: Nick Brassel --- builddefs/common_features.mk | 22 ++++++++ docs/_sidebar.json | 1 + docs/drivers/battery.md | 51 +++++++++++++++++ drivers/battery/battery.c | 31 +++++++++++ drivers/battery/battery.h | 34 ++++++++++++ drivers/battery/battery_adc.c | 55 +++++++++++++++++++ drivers/battery/battery_driver.h | 29 ++++++++++ .../handwired/onekey/keymaps/battery/config.h | 6 ++ .../handwired/onekey/keymaps/battery/keymap.c | 28 ++++++++++ .../onekey/keymaps/battery/keymap.json | 7 +++ .../handwired/onekey/keymaps/battery/rules.mk | 1 + quantum/keyboard.c | 10 ++++ 12 files changed, 275 insertions(+) create mode 100644 docs/drivers/battery.md create mode 100644 drivers/battery/battery.c create mode 100644 drivers/battery/battery.h create mode 100644 drivers/battery/battery_adc.c create mode 100644 drivers/battery/battery_driver.h create mode 100644 keyboards/handwired/onekey/keymaps/battery/config.h create mode 100644 keyboards/handwired/onekey/keymaps/battery/keymap.c create mode 100644 keyboards/handwired/onekey/keymaps/battery/keymap.json create mode 100644 keyboards/handwired/onekey/keymaps/battery/rules.mk diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index c88ce36011c..cbfbbcced56 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -934,6 +934,28 @@ ifeq ($(strip $(DIP_SWITCH_ENABLE)), yes) endif endif +VALID_BATTERY_DRIVER_TYPES := adc custom vendor + +BATTERY_DRIVER ?= adc +ifeq ($(strip $(BATTERY_DRIVER_REQUIRED)), yes) + ifeq ($(filter $(BATTERY_DRIVER),$(VALID_BATTERY_DRIVER_TYPES)),) + $(call CATASTROPHIC_ERROR,Invalid BATTERY_DRIVER,BATTERY_DRIVER="$(BATTERY_DRIVER)" is not a valid battery driver) + endif + + OPT_DEFS += -DBATTERY_DRIVER + OPT_DEFS += -DBATTERY_$(strip $(shell echo $(BATTERY_DRIVER) | tr '[:lower:]' '[:upper:]')) + + COMMON_VPATH += $(DRIVER_PATH)/battery + + SRC += battery.c + SRC += battery_$(strip $(BATTERY_DRIVER)).c + + # add extra deps + ifeq ($(strip $(BATTERY_DRIVER)), adc) + ANALOG_DRIVER_REQUIRED = yes + endif +endif + VALID_WS2812_DRIVER_TYPES := bitbang custom i2c pwm spi vendor WS2812_DRIVER ?= bitbang diff --git a/docs/_sidebar.json b/docs/_sidebar.json index ae4d8fe4a9d..f504f6f900f 100644 --- a/docs/_sidebar.json +++ b/docs/_sidebar.json @@ -227,6 +227,7 @@ { "text": "ADC Driver", "link": "/drivers/adc" }, { "text": "APA102 Driver", "link": "/drivers/apa102" }, { "text": "Audio Driver", "link": "/drivers/audio" }, + { "text": "Battery Driver", "link": "/drivers/battery" }, { "text": "EEPROM Driver", "link": "/drivers/eeprom" }, { "text": "Flash Driver", "link": "/drivers/flash" }, { "text": "I2C Driver", "link": "/drivers/i2c" }, diff --git a/docs/drivers/battery.md b/docs/drivers/battery.md new file mode 100644 index 00000000000..b1f75c11566 --- /dev/null +++ b/docs/drivers/battery.md @@ -0,0 +1,51 @@ +# Battery Driver + +This driver provides support for sampling battery level. + +## Usage + +To use this driver, add the following to your `rules.mk`: + +```make +BATTERY_DRIVER_REQUIRED = yes +``` + +## Basic Configuration {#basic-configuration} + +Add the following to your `config.h`: + +|Define |Default |Description | +|--------------------------|--------|--------------------------------------------------| +|`BATTERY_SAMPLE_INTERVAL` |`30000` |The time between battery samples in milliseconds. | + +## Driver Configuration {#driver-configuration} + +Driver selection can be configured in `rules.mk` as `BATTERY_DRIVER`. Valid values are `adc` (default), `vendor`, or `custom`. See below for information on individual drivers. + +### ADC Driver {#adc-driver} + +This is the default battery driver. The default configuration assumes the battery is connected to a ADC capable pin through a voltage divider. + +```make +BATTERY_DRIVER = adc +``` + +The following `#define`s apply only to the `adc` driver: + +|Define |Default |Description | +|-----------------------------|--------------|--------------------------------------------------------------| +|`BATTERY_PIN` |*Not defined* |The GPIO pin connected to the voltage divider. | +|`BATTERY_REF_VOLTAGE_MV` |`3300` |The ADC reverence voltage, in millivolts. | +|`BATTERY_VOLTAGE_DIVIDER_R1` |`100000` |The voltage divider resistance, in kOhm. Set to 0 to disable. | +|`BATTERY_VOLTAGE_DIVIDER_R1` |`100000` |The voltage divider resistance, in kOhm. Set to 0 to disable. | +|`BATTERY_ADC_RESOLUTION` |`10` |The ADC resolution configured for the ADC Driver. | + +## Functions + +### `uint8_t battery_get_percent(void)` {#api-battery-get-percent} + +Sample battery level. + +#### Return Value {#api-battery-get-percent-return} + +The battery percentage, in the range 0-100. diff --git a/drivers/battery/battery.c b/drivers/battery/battery.c new file mode 100644 index 00000000000..65497399e8f --- /dev/null +++ b/drivers/battery/battery.c @@ -0,0 +1,31 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "battery_driver.h" +#include "battery.h" +#include "timer.h" + +#ifndef BATTERY_SAMPLE_INTERVAL +# define BATTERY_SAMPLE_INTERVAL 30000 +#endif + +static uint8_t last_bat_level = 100; + +void battery_init(void) { + battery_driver_init(); + + last_bat_level = battery_driver_sample_percent(); +} + +void battery_task(void) { + static uint32_t bat_timer = 0; + if (timer_elapsed32(bat_timer) > BATTERY_SAMPLE_INTERVAL) { + last_bat_level = battery_driver_sample_percent(); + + bat_timer = timer_read32(); + } +} + +uint8_t battery_get_percent(void) { + return last_bat_level; +} diff --git a/drivers/battery/battery.h b/drivers/battery/battery.h new file mode 100644 index 00000000000..831b1f07e59 --- /dev/null +++ b/drivers/battery/battery.h @@ -0,0 +1,34 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include + +/** + * \file + * + * \defgroup battery Battery API + * + * \brief API to query battery status. + * \{ + */ + +/** + * \brief Initialize the battery driver. + */ +void battery_init(void); + +/** + * \brief Perform housekeeping tasks. + */ +void battery_task(void); + +/** + * \brief Sample battery level. + * + * \return The battery percentage, in the range 0-100. + */ +uint8_t battery_get_percent(void); + +/** \} */ diff --git a/drivers/battery/battery_adc.c b/drivers/battery/battery_adc.c new file mode 100644 index 00000000000..cf0e69cb48a --- /dev/null +++ b/drivers/battery/battery_adc.c @@ -0,0 +1,55 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "analog.h" +#include "gpio.h" + +#ifndef BATTERY_PIN +# error("BATTERY_PIN not configured!") +#endif + +#ifndef BATTERY_REF_VOLTAGE_MV +# define BATTERY_REF_VOLTAGE_MV 3300 +#endif + +#ifndef BATTERY_VOLTAGE_DIVIDER_R1 +# define BATTERY_VOLTAGE_DIVIDER_R1 100 +#endif + +#ifndef BATTERY_VOLTAGE_DIVIDER_R2 +# define BATTERY_VOLTAGE_DIVIDER_R2 100 +#endif + +// TODO: infer from adc config? +#ifndef BATTERY_ADC_RESOLUTION +# define BATTERY_ADC_RESOLUTION 10 +#endif + +void battery_driver_init(void) { + gpio_set_pin_input(BATTERY_PIN); +} + +uint16_t battery_driver_get_mv(void) { + uint32_t raw = analogReadPin(BATTERY_PIN); + + uint32_t bat_mv = raw * BATTERY_REF_VOLTAGE_MV / (1 << BATTERY_ADC_RESOLUTION); + +#if BATTERY_VOLTAGE_DIVIDER_R1 > 0 && BATTERY_VOLTAGE_DIVIDER_R2 > 0 + bat_mv = bat_mv * (BATTERY_VOLTAGE_DIVIDER_R1 + BATTERY_VOLTAGE_DIVIDER_R2) / BATTERY_VOLTAGE_DIVIDER_R2; +#endif + + return bat_mv; +} + +uint8_t battery_driver_sample_percent(void) { + uint16_t bat_mv = battery_driver_get_mv(); + + // https://github.com/zmkfirmware/zmk/blob/3f7c9d7cc4f46617faad288421025ea2a6b0bd28/app/module/drivers/sensor/battery/battery_common.c#L33 + if (bat_mv >= 4200) { + return 100; + } else if (bat_mv <= 3450) { + return 0; + } + + return bat_mv * 2 / 15 - 459; +} diff --git a/drivers/battery/battery_driver.h b/drivers/battery/battery_driver.h new file mode 100644 index 00000000000..c2ee75e9669 --- /dev/null +++ b/drivers/battery/battery_driver.h @@ -0,0 +1,29 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include + +/** + * \file + * + * \defgroup battery Battery Driver API + * + * \brief API to query battery status. + * \{ + */ + +/** + * \brief Initialize the battery driver. This function must be called only once, before any of the below functions can be called. + */ +void battery_driver_init(void); + +/** + * \brief Sample battery level. + * + * \return The battery percentage, in the range 0-100. + */ +uint8_t battery_driver_sample_percent(void); + +/** \} */ diff --git a/keyboards/handwired/onekey/keymaps/battery/config.h b/keyboards/handwired/onekey/keymaps/battery/config.h new file mode 100644 index 00000000000..8a1c05d4363 --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/battery/config.h @@ -0,0 +1,6 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define BATTERY_PIN ADC_PIN diff --git a/keyboards/handwired/onekey/keymaps/battery/keymap.c b/keyboards/handwired/onekey/keymaps/battery/keymap.c new file mode 100644 index 00000000000..74191e83fce --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/battery/keymap.c @@ -0,0 +1,28 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +#include "battery.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + LAYOUT_ortho_1x1(KC_A) +}; + +void keyboard_post_init_user(void) { + // Customise these values to desired behaviour + debug_enable=true; +// debug_matrix=false; +// debug_keyboard=true; +// debug_mouse=false; + + battery_init(); +} + +void housekeeping_task_user(void) { + static uint32_t last = 0; + if (timer_elapsed32(last) > 2000) { + uprintf("Bat: %d!\n", battery_get_percent()); + + last = timer_read32(); + } +} diff --git a/keyboards/handwired/onekey/keymaps/battery/keymap.json b/keyboards/handwired/onekey/keymaps/battery/keymap.json new file mode 100644 index 00000000000..c641dfe7735 --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/battery/keymap.json @@ -0,0 +1,7 @@ +{ + "config": { + "features": { + "console": true + } + } +} diff --git a/keyboards/handwired/onekey/keymaps/battery/rules.mk b/keyboards/handwired/onekey/keymaps/battery/rules.mk new file mode 100644 index 00000000000..06908179ae2 --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/battery/rules.mk @@ -0,0 +1 @@ +BATTERY_DRIVER_REQUIRED = yes diff --git a/quantum/keyboard.c b/quantum/keyboard.c index ad740de4b3f..fccdaf29905 100644 --- a/quantum/keyboard.c +++ b/quantum/keyboard.c @@ -122,6 +122,9 @@ along with this program. If not, see . #ifdef SPLIT_KEYBOARD # include "split_util.h" #endif +#ifdef BATTERY_DRIVER +# include "battery.h" +#endif #ifdef BLUETOOTH_ENABLE # include "bluetooth.h" #endif @@ -522,6 +525,9 @@ void keyboard_init(void) { // init after split init pointing_device_init(); #endif +#ifdef BATTERY_DRIVER + battery_init(); +#endif #ifdef BLUETOOTH_ENABLE bluetooth_init(); #endif @@ -782,6 +788,10 @@ void keyboard_task(void) { joystick_task(); #endif +#ifdef BATTERY_DRIVER + battery_task(); +#endif + #ifdef BLUETOOTH_ENABLE bluetooth_task(); #endif From e62352e606b1dacccae8b15c825229d18d60044c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Mart=C3=ADnez?= <58857054+elpekenin@users.noreply.github.com> Date: Fri, 28 Feb 2025 18:39:43 +0100 Subject: [PATCH 239/365] [Cleanup] Handling of optional `*.mk` files (#24952) replace check + `include` with `-include` --- builddefs/build_keyboard.mk | 41 ++++++++++--------------------------- 1 file changed, 11 insertions(+), 30 deletions(-) diff --git a/builddefs/build_keyboard.mk b/builddefs/build_keyboard.mk index c5fc9cd25d0..fb07042bb79 100644 --- a/builddefs/build_keyboard.mk +++ b/builddefs/build_keyboard.mk @@ -97,21 +97,12 @@ endif # Pull in rules.mk files from all our subfolders -ifneq ("$(wildcard $(KEYBOARD_PATH_5)/rules.mk)","") - include $(KEYBOARD_PATH_5)/rules.mk -endif -ifneq ("$(wildcard $(KEYBOARD_PATH_4)/rules.mk)","") - include $(KEYBOARD_PATH_4)/rules.mk -endif -ifneq ("$(wildcard $(KEYBOARD_PATH_3)/rules.mk)","") - include $(KEYBOARD_PATH_3)/rules.mk -endif -ifneq ("$(wildcard $(KEYBOARD_PATH_2)/rules.mk)","") - include $(KEYBOARD_PATH_2)/rules.mk -endif -ifneq ("$(wildcard $(KEYBOARD_PATH_1)/rules.mk)","") - include $(KEYBOARD_PATH_1)/rules.mk -endif +-include $(KEYBOARD_PATH_5)/rules.mk +-include $(KEYBOARD_PATH_4)/rules.mk +-include $(KEYBOARD_PATH_3)/rules.mk +-include $(KEYBOARD_PATH_2)/rules.mk +-include $(KEYBOARD_PATH_1)/rules.mk + # Create dependencies on DD keyboard config - structure validated elsewhere DD_CONFIG_FILES := ifneq ("$(wildcard $(KEYBOARD_PATH_1)/info.json)","") @@ -487,21 +478,11 @@ ifneq ("$(CONVERTER)","") endif # Pull in post_rules.mk files from all our subfolders -ifneq ("$(wildcard $(KEYBOARD_PATH_1)/post_rules.mk)","") - include $(KEYBOARD_PATH_1)/post_rules.mk -endif -ifneq ("$(wildcard $(KEYBOARD_PATH_2)/post_rules.mk)","") - include $(KEYBOARD_PATH_2)/post_rules.mk -endif -ifneq ("$(wildcard $(KEYBOARD_PATH_3)/post_rules.mk)","") - include $(KEYBOARD_PATH_3)/post_rules.mk -endif -ifneq ("$(wildcard $(KEYBOARD_PATH_4)/post_rules.mk)","") - include $(KEYBOARD_PATH_4)/post_rules.mk -endif -ifneq ("$(wildcard $(KEYBOARD_PATH_5)/post_rules.mk)","") - include $(KEYBOARD_PATH_5)/post_rules.mk -endif +-include $(KEYBOARD_PATH_1)/post_rules.mk +-include $(KEYBOARD_PATH_2)/post_rules.mk +-include $(KEYBOARD_PATH_3)/post_rules.mk +-include $(KEYBOARD_PATH_4)/post_rules.mk +-include $(KEYBOARD_PATH_5)/post_rules.mk define post_rules_mk_community_module_includer ifneq ("$(wildcard $(1)/post_rules.mk)","") From a4d86a63f2b9a075648ac02f4e20582f418a332a Mon Sep 17 00:00:00 2001 From: Dasky <32983009+daskygit@users.noreply.github.com> Date: Fri, 28 Feb 2025 19:07:51 +0000 Subject: [PATCH 240/365] Add Mechboards Lily58 variant and common code. (#24937) * Add lily58 and common code * Apply suggestions from code review Co-authored-by: jack * Apply suggestions from code review Co-authored-by: jack --------- Co-authored-by: jack --- keyboards/mechboards/common/display_oled.c | 385 ++++++++++++++++++ keyboards/mechboards/common/post_rules.mk | 3 + keyboards/mechboards/common/rgb_effects.h | 54 +++ keyboards/mechboards/lily58/pro/config.h | 6 + keyboards/mechboards/lily58/pro/keyboard.json | 206 ++++++++++ .../lily58/pro/keymaps/default/keymap.c | 51 +++ .../lily58/pro/keymaps/default/rules.mk | 1 + keyboards/mechboards/lily58/pro/post_rules.mk | 1 + keyboards/mechboards/lily58/pro/pro.c | 15 + keyboards/mechboards/lily58/pro/readme.md | 25 ++ 10 files changed, 747 insertions(+) create mode 100644 keyboards/mechboards/common/display_oled.c create mode 100644 keyboards/mechboards/common/post_rules.mk create mode 100644 keyboards/mechboards/common/rgb_effects.h create mode 100644 keyboards/mechboards/lily58/pro/config.h create mode 100644 keyboards/mechboards/lily58/pro/keyboard.json create mode 100644 keyboards/mechboards/lily58/pro/keymaps/default/keymap.c create mode 100644 keyboards/mechboards/lily58/pro/keymaps/default/rules.mk create mode 100644 keyboards/mechboards/lily58/pro/post_rules.mk create mode 100644 keyboards/mechboards/lily58/pro/pro.c create mode 100644 keyboards/mechboards/lily58/pro/readme.md diff --git a/keyboards/mechboards/common/display_oled.c b/keyboards/mechboards/common/display_oled.c new file mode 100644 index 00000000000..fed13c22fd2 --- /dev/null +++ b/keyboards/mechboards/common/display_oled.c @@ -0,0 +1,385 @@ +// Copyright 2025 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +static uint16_t current_keycode = 0xFF; + +static const char *depad_str(const char *depad_str, char depad_char) { + while (*depad_str == depad_char) + ++depad_str; + return depad_str; +} + +static void render_spacer(uint8_t char_length) { + static const char PROGMEM spacer_char[] = {8, 8, 8, 8, 8, 8, 8}; + if (char_length > 5) { + char_length = 5; + } + for (uint8_t i = 0; i < char_length; i++) { + oled_write_raw_P(spacer_char, sizeof(spacer_char)); + oled_advance_char(); + } +} + +__attribute__((weak)) void render_logo(void) { + static const char PROGMEM mb_logo[] = { + 252, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 31, 31, 31, 31, 31, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 227, 227, 227, 3, 227, 227, 227, 3, 227, 227, 227, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 7, 254, 252, 255, 255, 255, 255, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 255, 255, 4, 4, 4, 4, 4, 255, + 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 224, 0, 238, 238, 238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 255, 255, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 255, 255, 65, 65, 65, 65, 65, 255, 255, 255, 65, 65, 65, 65, 65, 255, 127, 127, 127, 127, 127, 255, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 63, 127, 255, 255, 255, 240, 240, 240, 240, 240, 255, 255, 255, 255, 255, 255, 255, 240, 240, 240, 240, 240, 255, 255, 255, 255, 255, 255, 255, 240, 240, 240, 240, 240, 255, 255, 255, 240, 240, 240, 240, 240, 255, 240, 240, 240, 240, 240, 255, 240, 240, 240, 240, 240, 255, 255, 255, 255, 255, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 199, 199, 199, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 224, 127, 63, + }; + oled_write_raw_P(mb_logo, sizeof(mb_logo)); +} + +void render_small_mb_logo(void) { + static const char PROGMEM small_mb_logo[] = { + 112, 112, 112, 0, 112, 112, 112, 0, 112, 112, 112, 0, 112, 112, 112, 0, 112, 112, 112, 0, 0, 119, 119, 119, 0, 112, 112, 112, 0, 112, 112, 112, 119, 119, 119, 0, 0, 0, 0, 0, 119, 119, 119, 0, 0, 0, 0, 0, 119, 119, 119, 0, 0, 119, 119, 119, 0, 112, 112, 112, 0, 119, 119, 119, + }; + oled_write_raw_P(small_mb_logo, sizeof(small_mb_logo)); +} + +static uint8_t last_hue; +static uint8_t last_sat; +static uint8_t last_val; +static uint8_t last_mode; + +void render_rgb_info(void) { + last_hue = rgb_matrix_get_hue(); + last_sat = rgb_matrix_get_sat(); + last_val = rgb_matrix_get_val(); + last_mode = rgb_matrix_get_mode(); + oled_set_cursor(0, 6); + oled_write("H:", false); + oled_write(depad_str(get_u16_str(last_hue, ' '), ' '), false); + oled_set_cursor(0, 7); + oled_write("S:", false); + oled_write_ln(depad_str(get_u16_str(last_sat, ' '), ' '), false); + oled_set_cursor(0, 8); + oled_write("V:", false); + oled_write_ln(depad_str(get_u16_str(last_val, ' '), ' '), false); + oled_set_cursor(0, 9); + oled_write("M:", false); + oled_write_ln(depad_str(get_u16_str(last_mode, ' '), ' '), false); +} + +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + if (is_keyboard_master()) { + return OLED_ROTATION_270; + } + return rotation; +} + +char basic_codes_to_name[57] = {' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', '#', ';', '\'', '`', ',', '.', '/'}; + +const char *keycode_string(uint16_t keycode) { + char *keycode_str; + static char key; + switch (keycode) { + case 0 ... 56: + key = pgm_read_byte(&basic_codes_to_name[keycode]); + return &key; + case KC_CAPS: + keycode_str = "Caps\0"; + break; + case KC_SCRL: + keycode_str = "Scrl\0"; + break; + case KC_PAUS: + keycode_str = "Pause\0"; + break; + case KC_DEL: + keycode_str = "Del\0"; + break; + case KC_NUM: + keycode_str = "Num\0"; + break; + case KC_MUTE: + keycode_str = "Mute\0"; + break; + case KC_VOLU: + keycode_str = "VolUp\0"; + break; + case KC_VOLD: + keycode_str = "VolD\0"; + break; + case KC_MNXT: + keycode_str = "Next\0"; + break; + case KC_MPRV: + keycode_str = "Prev\0"; + break; + case KC_MSTP: + keycode_str = "Stop\0"; + break; + case KC_MPLY: + keycode_str = "Play\0"; + break; + case QK_MODS ... QK_MODS_MAX: + keycode_str = "MOD()\0"; + break; + case QK_MOD_TAP ... QK_MOD_TAP_MAX: + keycode_str = "MT()\0"; + break; + case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: + keycode_str = "LT()\0"; + break; + case QK_LAYER_MOD ... QK_LAYER_MOD_MAX: + keycode_str = "LM()\0"; + break; + case QK_TO ... QK_TO_MAX: + keycode_str = "TO()\0"; + break; + case QK_MOMENTARY ... QK_MOMENTARY_MAX: + keycode_str = "MO()\0"; + break; + case QK_DEF_LAYER ... QK_DEF_LAYER_MAX: + keycode_str = "DF()\0"; + break; + case QK_TOGGLE_LAYER ... QK_TOGGLE_LAYER_MAX: + keycode_str = "TG()\0"; + break; + case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_MOD_MAX: + keycode_str = "1SHOT\0"; + break; + case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX: + keycode_str = "TT()\0"; + break; + case QK_PERSISTENT_DEF_LAYER ... QK_PERSISTENT_DEF_LAYER_MAX: + keycode_str = "PDF()\0"; + break; + case QK_SWAP_HANDS ... QK_SWAP_HANDS_MAX: + keycode_str = "SWAP\0"; + break; + case QK_TAP_DANCE ... QK_TAP_DANCE_MAX: + keycode_str = "TD()\0"; + break; + case QK_MAGIC ... QK_MAGIC_MAX: + keycode_str = "Magic\0"; + break; + case QK_MIDI ... QK_MIDI_MAX: + keycode_str = "Midi\0"; + break; + case QK_SEQUENCER ... QK_SEQUENCER_MAX: + keycode_str = "Seq\0"; + break; + case QK_JOYSTICK ... QK_JOYSTICK_MAX: + keycode_str = "Joy\0"; + break; + case QK_PROGRAMMABLE_BUTTON ... QK_PROGRAMMABLE_BUTTON_MAX: + keycode_str = "Prog\0"; + break; + case QK_AUDIO ... QK_AUDIO_MAX: + keycode_str = "Audio\0"; + break; + case QK_STENO ... QK_STENO_MAX: + keycode_str = "Steno\0"; + break; + case QK_MACRO ... QK_MACRO_MAX: + keycode_str = "Macro\0"; + break; + case QK_CONNECTION ... QK_CONNECTION_MAX: + keycode_str = "Conn\0"; + break; + case QK_LIGHTING ... QK_LIGHTING_MAX: + keycode_str = "Light\0"; + break; + case QK_QUANTUM ... QK_QUANTUM_MAX: + keycode_str = "Quant\0"; + break; + case QK_KB ... QK_KB_MAX: + keycode_str = "KB\0"; + break; + case QK_USER ... QK_USER_MAX: + keycode_str = "USER\0"; + break; + case QK_UNICODEMAP ... QK_UNICODEMAP_PAIR_MAX: + keycode_str = "Uni\0"; + break; + default: + keycode_str = "Undef\0"; + break; + } + + return keycode_str; +} + +const char *layer_string(uint32_t layer) { + char *layer_str; + switch (layer) { + case 0: + layer_str = "Zero\0"; + break; + case 1: + layer_str = "One\0"; + break; + case 2: + layer_str = "Two\0"; + break; + case 3: + layer_str = "Three\0"; + break; + case 4: + layer_str = "Four\0"; + break; + case 5: + layer_str = "Five\0"; + break; + case 6: + layer_str = "Six\0"; + break; + case 7: + layer_str = "Seven\0"; + break; + default: + return get_u16_str(layer, ' '); + } + + return layer_str; +} + +bool process_detected_host_os_kb(os_variant_t detected_os) { + if (!process_detected_host_os_user(detected_os)) { + return false; + } + + oled_set_cursor(0, 10); + switch (detected_os) { + case OS_MACOS: + oled_write_ln("MacOS", false); + case OS_IOS: + oled_write_ln("Apple", false); + break; + case OS_WINDOWS: + oled_write_ln("Win", false); + break; + case OS_LINUX: + oled_write_ln("Linux", false); + break; + case OS_UNSURE: + oled_write_ln("Unkno", false); + + break; + } + + return true; +} + +void keyboard_post_init_kb(void) { + if (!is_keyboard_master()) { + render_logo(); + } else { + oled_set_cursor(0, 0); + oled_write("Layer", false); + render_spacer(5); + oled_write_ln(layer_string(get_highest_layer(layer_state)), false); + + oled_set_cursor(0, 4); + oled_write_ln("Key", false); + render_spacer(3); + oled_advance_page(false); + oled_write_ln("None", false); + + oled_set_cursor(0, 8); + oled_write_ln("OS", false); + render_spacer(2); + oled_advance_page(false); + oled_write_ln("Wait", false); + + oled_set_cursor(0, 12); + oled_write_ln("Rate", false); + render_spacer(4); + } + keyboard_post_init_user(); +} + +layer_state_t layer_state_set_kb(layer_state_t state) { + state = layer_state_set_user(state); + oled_set_cursor(0, 2); + oled_write_ln(layer_string(get_highest_layer(state)), false); + return state; +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + current_keycode = keycode; + return process_record_user(keycode, record); +}; + +uint16_t loop_rate = 0; +void housekeeping_task_kb(void) { + if (is_keyboard_master()) { + static uint32_t loop_count = 0; + static fast_timer_t loop_time = 0; + loop_count++; + if (timer_elapsed_fast(loop_time) > 1000) { + loop_time = timer_read_fast(); + loop_rate = loop_count > UINT16_MAX ? UINT16_MAX : loop_count; + loop_count = 0; + if (is_oled_on()) { + oled_set_cursor(0, 14); + oled_write(depad_str(get_u16_str(loop_rate, ' '), ' '), false); + } + } + } + if (is_oled_on() && last_input_activity_elapsed() > OLED_TIMEOUT) { + oled_off(); + } +} + +void oled_reinit_slave(void) { + oled_init(OLED_ROTATION_270); + oled_clear(); + oled_set_cursor(0, 0); + oled_write_ln("WPM", false); + render_spacer(3); + oled_advance_page(false); + oled_write_ln(depad_str(get_u16_str(get_current_wpm(), ' '), ' '), false); + + oled_set_cursor(0, 4); + oled_write_ln("RGB", false); + render_spacer(3); + render_rgb_info(); + + oled_set_cursor(0, 13); + render_small_mb_logo(); +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + + static uint16_t last_keycode = 0xFF; + static bool oled_slave_init_done = false; + + if (is_keyboard_master()) { + if (last_keycode != current_keycode) { + oled_set_cursor(0, 6); + if (current_keycode < ARRAY_SIZE(basic_codes_to_name)) { + oled_write_char(basic_codes_to_name[current_keycode], false); + oled_advance_page(true); + } else { + oled_write_ln(keycode_string(current_keycode), false); + } + last_keycode = current_keycode; + } + } else { + if (!oled_slave_init_done) { + if (timer_elapsed32(0) > 5000) { + oled_slave_init_done = true; + oled_reinit_slave(); + } + } else { + static uint16_t last_wpm = 0; + if (rgb_matrix_get_hue() != last_hue || rgb_matrix_get_sat() != last_sat || rgb_matrix_get_val() != last_val || rgb_matrix_get_mode() != last_mode) { + render_rgb_info(); + } + if (last_wpm != get_current_wpm()) { + last_wpm = get_current_wpm(); + oled_set_cursor(0, 2); + oled_write_ln(depad_str(get_u16_str(last_wpm, ' '), ' '), false); + } + } + } + + return false; +} diff --git a/keyboards/mechboards/common/post_rules.mk b/keyboards/mechboards/common/post_rules.mk new file mode 100644 index 00000000000..69bbbab9d0c --- /dev/null +++ b/keyboards/mechboards/common/post_rules.mk @@ -0,0 +1,3 @@ +ifeq ($(strip $(OLED_ENABLE)), yes) + SRC += keyboards/mechboards/common/display_oled.c +endif diff --git a/keyboards/mechboards/common/rgb_effects.h b/keyboards/mechboards/common/rgb_effects.h new file mode 100644 index 00000000000..8763d2a0073 --- /dev/null +++ b/keyboards/mechboards/common/rgb_effects.h @@ -0,0 +1,54 @@ +// Copyright 2025 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#ifdef CONVERTER_ENABLED +# define ENABLE_RGB_MATRIX_ALPHA_MODS +# define ENABLE_RGB_MATRIX_BREATHING +# define ENABLE_RGB_MATRIX_COLORBAND_PINWHEEL_SAT +# define ENABLE_RGB_MATRIX_COLORBAND_PINWHEEL_VAL +# define ENABLE_RGB_MATRIX_COLORBAND_SAT +# define ENABLE_RGB_MATRIX_COLORBAND_SPIRIAL_SAT +# define ENABLE_RGB_MATRIX_COLORBAND_SPIRIAL_VAL +# define ENABLE_RGB_MATRIX_COLORBAND_VAL +# define ENABLE_RGB_MATRIX_CYCLE_ALL +# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +# define ENABLE_RGB_MATRIX_DIGITAL_RAIN +# define ENABLE_RGB_MATRIX_DUAL_BEACON +# define ENABLE_RGB_MATRIX_FLOWER_BLOOMING +# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +# define ENABLE_RGB_MATRIX_HUE_BREATHING +# define ENABLE_RGB_MATRIX_HUE_PENDULUM +# define ENABLE_RGB_MATRIX_HUE_WAVE +# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +# define ENABLE_RGB_MATRIX_PIXEL_FLOW +# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +# define ENABLE_RGB_MATRIX_PIXEL_RAIN +# define ENABLE_RGB_MATRIX_RAINBOW_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +# define ENABLE_RGB_MATRIX_RAINDROPS +# define ENABLE_RGB_MATRIX_RIVERFLOW +# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +# define ENABLE_RGB_MATRIX_SOLID_SPLASH +# define ENABLE_RGB_MATRIX_SPLASH +# define ENABLE_RGB_MATRIX_STARLIGHT +# define ENABLE_RGB_MATRIX_STARLIGHT_DUAL_HUE +# define ENABLE_RGB_MATRIX_STARLIGHT_DUAL_SAT +# define ENABLE_RGB_MATRIX_TYPING_HEATMAP +#endif diff --git a/keyboards/mechboards/lily58/pro/config.h b/keyboards/mechboards/lily58/pro/config.h new file mode 100644 index 00000000000..43a4b3eb9fa --- /dev/null +++ b/keyboards/mechboards/lily58/pro/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "keyboards/mechboards/common/rgb_effects.h" diff --git a/keyboards/mechboards/lily58/pro/keyboard.json b/keyboards/mechboards/lily58/pro/keyboard.json new file mode 100644 index 00000000000..d655377f195 --- /dev/null +++ b/keyboards/mechboards/lily58/pro/keyboard.json @@ -0,0 +1,206 @@ +{ + "manufacturer": "Mechboards", + "keyboard_name": "Lily58 Pro", + "maintainer": "dasky", + "build": { + "lto": true + }, + "development_board": "promicro", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "F5", "pin_b": "F4"} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "oled": true, + "os_detection": true, + "rgb_matrix": true, + "wpm": true + }, + "matrix_pins": { + "cols": ["F6", "F7", "B1", "B3", "B2", "B6"], + "rows": ["C6", "D7", "E6", "B4", "B5"] + }, + "rgb_matrix": { + "animations": { + "cycle_left_right": true + }, + "default": { + "animation": "cycle_left_right" + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 5], "x": 72, "y": 4, "flags": 4}, + {"matrix": [0, 4], "x": 58, "y": 2, "flags": 4}, + {"matrix": [0, 3], "x": 43, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 29, "y": 2, "flags": 4}, + {"matrix": [0, 1], "x": 14, "y": 6, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 8, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 23, "flags": 4}, + {"matrix": [1, 1], "x": 14, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 29, "y": 17, "flags": 4}, + {"matrix": [1, 3], "x": 43, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 58, "y": 17, "flags": 4}, + {"matrix": [1, 5], "x": 72, "y": 19, "flags": 4}, + {"matrix": [2, 5], "x": 72, "y": 34, "flags": 4}, + {"matrix": [2, 4], "x": 58, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 43, "y": 30, "flags": 4}, + {"matrix": [2, 2], "x": 29, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 14, "y": 36, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 38, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 53, "flags": 4}, + {"matrix": [3, 1], "x": 14, "y": 51, "flags": 4}, + {"matrix": [3, 2], "x": 29, "y": 47, "flags": 4}, + {"matrix": [3, 3], "x": 43, "y": 45, "flags": 4}, + {"matrix": [3, 4], "x": 58, "y": 47, "flags": 4}, + {"matrix": [3, 5], "x": 72, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 87, "y": 41, "flags": 4}, + {"matrix": [4, 4], "x": 87, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 65, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 51, "y": 62, "flags": 4}, + {"matrix": [4, 1], "x": 36, "y": 62, "flags": 4}, + {"x": 96, "y": 64, "flags": 2}, + {"x": 32, "y": 64, "flags": 2}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 0, "y": 32, "flags": 2}, + {"x": 16, "y": 0, "flags": 2}, + {"x": 50, "y": 0, "flags": 2}, + {"x": 80, "y": 0, "flags": 2}, + {"x": 96, "y": 32, "flags": 2}, + {"matrix": [5, 5], "x": 152, "y": 4, "flags": 4}, + {"matrix": [5, 4], "x": 166, "y": 2, "flags": 4}, + {"matrix": [5, 3], "x": 181, "y": 0, "flags": 4}, + {"matrix": [5, 2], "x": 195, "y": 2, "flags": 4}, + {"matrix": [5, 1], "x": 210, "y": 6, "flags": 4}, + {"matrix": [5, 0], "x": 224, "y": 8, "flags": 4}, + {"matrix": [6, 0], "x": 224, "y": 23, "flags": 4}, + {"matrix": [6, 1], "x": 210, "y": 21, "flags": 4}, + {"matrix": [6, 2], "x": 195, "y": 17, "flags": 4}, + {"matrix": [6, 3], "x": 181, "y": 15, "flags": 4}, + {"matrix": [6, 4], "x": 166, "y": 17, "flags": 4}, + {"matrix": [6, 5], "x": 152, "y": 19, "flags": 4}, + {"matrix": [7, 5], "x": 152, "y": 34, "flags": 4}, + {"matrix": [7, 4], "x": 166, "y": 32, "flags": 4}, + {"matrix": [7, 3], "x": 181, "y": 30, "flags": 4}, + {"matrix": [7, 2], "x": 195, "y": 32, "flags": 4}, + {"matrix": [7, 1], "x": 210, "y": 36, "flags": 4}, + {"matrix": [7, 0], "x": 224, "y": 38, "flags": 4}, + {"matrix": [8, 0], "x": 224, "y": 53, "flags": 4}, + {"matrix": [8, 1], "x": 210, "y": 51, "flags": 4}, + {"matrix": [8, 2], "x": 195, "y": 47, "flags": 4}, + {"matrix": [8, 3], "x": 181, "y": 45, "flags": 4}, + {"matrix": [8, 4], "x": 166, "y": 47, "flags": 4}, + {"matrix": [8, 5], "x": 152, "y": 49, "flags": 4}, + {"matrix": [9, 5], "x": 137, "y": 41, "flags": 4}, + {"matrix": [9, 4], "x": 137, "y": 64, "flags": 4}, + {"matrix": [9, 3], "x": 159, "y": 64, "flags": 4}, + {"matrix": [9, 2], "x": 173, "y": 62, "flags": 4}, + {"matrix": [9, 1], "x": 188, "y": 62, "flags": 4}, + {"x": 128, "y": 64, "flags": 2}, + {"x": 192, "y": 64, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 224, "y": 32, "flags": 2}, + {"x": 206, "y": 0, "flags": 2}, + {"x": 150, "y": 0, "flags": 2}, + {"x": 140, "y": 0, "flags": 2}, + {"x": 128, "y": 32, "flags": 2} + ], + "max_brightness": 120, + "sleep": true, + "split_count": [37, 37] + }, + "rgblight": { + "max_brightness": 120 + }, + "split": { + "enabled": true, + "serial": { + "pin": "D2" + }, + "transport": { + "sync": { + "matrix_state": true, + "oled": true, + "wpm": true + } + } + }, + "url": "mechboards.co.uk", + "usb": { + "device_version": "1.0.0", + "pid": "0x0002", + "vid": "0x7171" + }, + "ws2812": { + "pin": "D3" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.5}, + {"matrix": [0, 1], "x": 1, "y": 0.375}, + {"matrix": [0, 2], "x": 2, "y": 0.125}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0.125}, + {"matrix": [0, 5], "x": 5, "y": 0.25}, + {"matrix": [5, 5], "x": 10.5, "y": 0.25}, + {"matrix": [5, 4], "x": 11.5, "y": 0.125}, + {"matrix": [5, 3], "x": 12.5, "y": 0}, + {"matrix": [5, 2], "x": 13.5, "y": 0.125}, + {"matrix": [5, 1], "x": 14.5, "y": 0.375}, + {"matrix": [5, 0], "x": 15.5, "y": 0.5}, + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.375}, + {"matrix": [1, 2], "x": 2, "y": 1.125}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1.125}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [6, 5], "x": 10.5, "y": 1.25}, + {"matrix": [6, 4], "x": 11.5, "y": 1.125}, + {"matrix": [6, 3], "x": 12.5, "y": 1}, + {"matrix": [6, 2], "x": 13.5, "y": 1.125}, + {"matrix": [6, 1], "x": 14.5, "y": 1.375}, + {"matrix": [6, 0], "x": 15.5, "y": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2.5}, + {"matrix": [2, 1], "x": 1, "y": 2.375}, + {"matrix": [2, 2], "x": 2, "y": 2.125}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2.125}, + {"matrix": [2, 5], "x": 5, "y": 2.25}, + {"matrix": [7, 5], "x": 10.5, "y": 2.25}, + {"matrix": [7, 4], "x": 11.5, "y": 2.125}, + {"matrix": [7, 3], "x": 12.5, "y": 2}, + {"matrix": [7, 2], "x": 13.5, "y": 2.125}, + {"matrix": [7, 1], "x": 14.5, "y": 2.375}, + {"matrix": [7, 0], "x": 15.5, "y": 2.5}, + {"matrix": [3, 0], "x": 0, "y": 3.5}, + {"matrix": [3, 1], "x": 1, "y": 3.375}, + {"matrix": [3, 2], "x": 2, "y": 3.125}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3.125}, + {"matrix": [3, 5], "x": 5, "y": 3.25}, + {"matrix": [4, 5], "x": 6, "y": 2.75}, + {"matrix": [9, 5], "x": 9.5, "y": 2.75}, + {"matrix": [8, 5], "x": 10.5, "y": 3.25}, + {"matrix": [8, 4], "x": 11.5, "y": 3.125}, + {"matrix": [8, 3], "x": 12.5, "y": 3}, + {"matrix": [8, 2], "x": 13.5, "y": 3.125}, + {"matrix": [8, 1], "x": 14.5, "y": 3.375}, + {"matrix": [8, 0], "x": 15.5, "y": 3.5}, + {"matrix": [4, 1], "x": 2.5, "y": 4.125}, + {"matrix": [4, 2], "x": 3.5, "y": 4.15}, + {"matrix": [4, 3], "x": 4.5, "y": 4.25}, + {"matrix": [4, 4], "x": 6, "y": 4.25, "h": 1.5}, + {"matrix": [9, 4], "x": 9.5, "y": 4.25, "h": 1.5}, + {"matrix": [9, 3], "x": 11, "y": 4.25}, + {"matrix": [9, 2], "x": 12, "y": 4.15}, + {"matrix": [9, 1], "x": 13, "y": 4.15} + ] + } + } +} diff --git a/keyboards/mechboards/lily58/pro/keymaps/default/keymap.c b/keyboards/mechboards/lily58/pro/keymaps/default/keymap.c new file mode 100644 index 00000000000..6c23650b05d --- /dev/null +++ b/keyboards/mechboards/lily58/pro/keymaps/default/keymap.c @@ -0,0 +1,51 @@ +// Copyright 2025 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_ENT, MO(2), KC_BSPC, KC_RGUI +), + +[1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TILD, + _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, _______, _______, _______, _______, MO(3), _______, _______ +), + + +[2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_PLUS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, _______, MO(3), _______, _______, _______, _______, _______ +), + + [3] = LAYOUT( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RM_NEXT, RM_HUED, RM_SATD, RM_VALD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS)}, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS)}, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS)} +}; +#endif +// clang-format on diff --git a/keyboards/mechboards/lily58/pro/keymaps/default/rules.mk b/keyboards/mechboards/lily58/pro/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/mechboards/lily58/pro/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/mechboards/lily58/pro/post_rules.mk b/keyboards/mechboards/lily58/pro/post_rules.mk new file mode 100644 index 00000000000..4bfdc8ca891 --- /dev/null +++ b/keyboards/mechboards/lily58/pro/post_rules.mk @@ -0,0 +1 @@ +include keyboards/mechboards/common/post_rules.mk diff --git a/keyboards/mechboards/lily58/pro/pro.c b/keyboards/mechboards/lily58/pro/pro.c new file mode 100644 index 00000000000..34c1f6409ea --- /dev/null +++ b/keyboards/mechboards/lily58/pro/pro.c @@ -0,0 +1,15 @@ +// Copyright 2025 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#ifdef OLED_ENABLE +void render_logo(void) { + static const char PROGMEM pro_logo[] = { + 252, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 31, 31, 31, 31, 31, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 0, 0, 0, 248, 248, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 0, 0, 224, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 248, 24, 24, 24, 24, 24, 24, 0, 0, 240, 248, 24, 24, 24, 24, 24, 248, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 255, 255, 4, 4, 4, 4, 4, 255, + 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 255, 255, 255, 255, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 249, 249, 0, 0, 255, 255, 0, 0, 248, 248, 0, 0, 0, 0, 248, 248, 0, 0, 7, 7, 6, 6, 6, 6, 254, 252, 0, 0, 251, 255, 6, 6, 6, 6, 6, 255, 251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 255, 255, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 255, 255, 65, 65, 65, 65, 65, 255, 255, 255, 65, 65, 65, 65, 65, 255, 127, 127, 127, 127, 127, 255, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 3, 3, 0, 0, 3, 3, 0, 0, 131, 131, 131, 131, 131, 131, + 255, 255, 0, 0, 3, 3, 3, 3, 3, 3, 3, 1, 0, 0, 1, 3, 3, 3, 3, 3, 3, 3, 225, 240, 48, 176, 176, 112, 240, 48, 176, 176, 112, 240, 112, 176, 176, 112, 240, 224, 0, 0, 63, 127, 255, 255, 255, 240, 240, 240, 240, 240, 255, 255, 255, 255, 255, 255, 255, 240, 240, 240, 240, 240, 255, 255, 255, 255, 255, 255, 255, 240, 240, 240, 240, 240, 255, 255, 255, 240, 240, 240, 240, 240, 255, 240, 240, 240, 240, 240, 255, 240, 240, 240, 240, 240, 255, 255, 255, 127, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 63, 48, 61, 61, 62, 63, 48, 61, 61, 50, 63, 56, 55, 55, 56, 63, 31, 0, 0, + }; + oled_write_raw_P(pro_logo, sizeof(pro_logo)); +} +#endif diff --git a/keyboards/mechboards/lily58/pro/readme.md b/keyboards/mechboards/lily58/pro/readme.md new file mode 100644 index 00000000000..9ec83c28001 --- /dev/null +++ b/keyboards/mechboards/lily58/pro/readme.md @@ -0,0 +1,25 @@ +# Lily58 Pro + +A refreshed Lily58 PCB with RGB, battery, power switch and encoder support. + +* Keyboard Maintainer: [dasky](https://github.com/daskygit) +* Hardware Supported: Controllers using promicro footprint. +* Hardware Availability: https://mechboards.co.uk + +Make example for this keyboard (after setting up your build environment): + + qmk compile -kb mechboards/lily58/pro -km default + +Flashing example for this keyboard: + + qmk flash -kb mechboards/lily58/pro -km default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top left key (for left half) or top right key (for right half) when plugging in USB. +* **Physical reset button**: Briefly double press the button below the TRRS socket. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From e0e96c2a755cf957ab684c9ad414ab1b19fe3372 Mon Sep 17 00:00:00 2001 From: Danny Date: Sat, 1 Mar 2025 15:47:16 -0500 Subject: [PATCH 241/365] Add Handwired Cherry Protype (#24806) * Add handwired Cherry Protype * Fix instructions * Replace tabs with spaces Co-authored-by: Drashna Jaelre * Update keyboards/handwired/protype/keyboard.json Co-authored-by: Drashna Jaelre --------- Co-authored-by: Drashna Jaelre --- keyboards/handwired/protype/keyboard.json | 104 ++++++++++++++++++ .../protype/keymaps/default/keymap.c | 15 +++ keyboards/handwired/protype/readme.md | 26 +++++ 3 files changed, 145 insertions(+) create mode 100644 keyboards/handwired/protype/keyboard.json create mode 100644 keyboards/handwired/protype/keymaps/default/keymap.c create mode 100644 keyboards/handwired/protype/readme.md diff --git a/keyboards/handwired/protype/keyboard.json b/keyboards/handwired/protype/keyboard.json new file mode 100644 index 00000000000..69f196abc40 --- /dev/null +++ b/keyboards/handwired/protype/keyboard.json @@ -0,0 +1,104 @@ +{ + "manufacturer": "Cherry", + "keyboard_name": "Protype Display Typewriter", + "maintainer": "nooges", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "rows": ["GP29", "GP28", "GP27", "GP26", "GP22", "GP20", "GP23", "GP21"], + "cols": ["GP12", "GP9", "GP10", "GP0", "GP1", "GP5", "GP6", "GP2", "GP3", "GP4"] + }, + "processor": "RP2040", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0xB7D7", + "vid": "0x046A" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "F1", "matrix": [0, 0], "w": 1.5, "x": 0, "y": 0 }, + { "label": "F2", "matrix": [0, 1], "w": 1.5, "x": 1.5, "y": 0 }, + { "label": "`", "matrix": [0, 2], "x": 3.5, "y": 0 }, + { "label": "1", "matrix": [0, 3], "x": 4.5, "y": 0 }, + { "label": "2", "matrix": [0, 4], "x": 5.5, "y": 0 }, + { "label": "3", "matrix": [0, 5], "x": 6.5, "y": 0 }, + { "label": "4", "matrix": [0, 6], "x": 7.5, "y": 0 }, + { "label": "5", "matrix": [0, 7], "x": 8.5, "y": 0 }, + { "label": "6", "matrix": [0, 8], "x": 9.5, "y": 0 }, + { "label": "7", "matrix": [0, 9], "x": 10.5, "y": 0 }, + { "label": "8", "matrix": [4, 8], "x": 11.5, "y": 0 }, + { "label": "9", "matrix": [4, 7], "x": 12.5, "y": 0 }, + { "label": "0", "matrix": [4, 6], "x": 13.5, "y": 0 }, + { "label": "-", "matrix": [4, 5], "x": 14.5, "y": 0 }, + { "label": "=", "matrix": [4, 4], "x": 15.5, "y": 0 }, + { "label": "Backspace", "matrix": [4, 3], "w": 2, "x": 16.5, "y": 0 }, + { "label": "Pg Up", "matrix": [4, 2], "x": 18.5, "y": 0 }, + { "label": "F8", "matrix": [4, 1], "w": 1.5, "x": 20, "y": 0 }, + { "label": "F9", "matrix": [4, 0], "w": 1.5, "x": 21.5, "y": 0 }, + { "label": "F3", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "F4", "matrix": [1, 1], "w": 1.5, "x": 1.5, "y": 1 }, + { "label": "Tab", "matrix": [1, 2], "w": 1.5, "x": 3.5, "y": 1 }, + { "label": "Q", "matrix": [1, 3], "x": 5, "y": 1 }, + { "label": "W", "matrix": [1, 4], "x": 6, "y": 1 }, + { "label": "E", "matrix": [1, 5], "x": 7, "y": 1 }, + { "label": "R", "matrix": [1, 6], "x": 8, "y": 1 }, + { "label": "T", "matrix": [1, 7], "x": 9, "y": 1 }, + { "label": "Y", "matrix": [1, 8], "x": 10, "y": 1 }, + { "label": "U", "matrix": [5, 9], "x": 11, "y": 1 }, + { "label": "I", "matrix": [5, 8], "x": 12, "y": 1 }, + { "label": "O", "matrix": [5, 7], "x": 13, "y": 1 }, + { "label": "P", "matrix": [5, 6], "x": 14, "y": 1 }, + { "label": "[", "matrix": [5, 5], "x": 15, "y": 1 }, + { "label": "]", "matrix": [5, 4], "x": 16, "y": 1 }, + { "label": "\\", "matrix": [5, 3], "w": 1.5, "x": 17, "y": 1 }, + { "label": "Pg Dn", "matrix": [5, 2], "x": 18.5, "y": 1 }, + { "label": "F10", "matrix": [5, 1], "w": 1.5, "x": 20, "y": 1 }, + { "label": "F11", "matrix": [5, 0], "w": 1.5, "x": 21.5, "y": 1 }, + { "label": "F5", "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2 }, + { "label": "F6", "matrix": [2, 1], "w": 1.5, "x": 1.5, "y": 2 }, + { "label": "Caps Lock", "matrix": [2, 2], "w": 1.75, "x": 3.5, "y": 2 }, + { "label": "A", "matrix": [2, 3], "x": 5.25, "y": 2 }, + { "label": "S", "matrix": [2, 4], "x": 6.25, "y": 2 }, + { "label": "D", "matrix": [2, 5], "x": 7.25, "y": 2 }, + { "label": "F", "matrix": [2, 6], "x": 8.25, "y": 2 }, + { "label": "G", "matrix": [2, 7], "x": 9.25, "y": 2 }, + { "label": "H", "matrix": [2, 8], "x": 10.25, "y": 2 }, + { "label": "J", "matrix": [2, 9], "x": 11.25, "y": 2 }, + { "label": "K", "matrix": [6, 8], "x": 12.25, "y": 2 }, + { "label": "L", "matrix": [6, 7], "x": 13.25, "y": 2 }, + { "label": ";", "matrix": [6, 6], "x": 14.25, "y": 2 }, + { "label": "'", "matrix": [6, 5], "x": 15.25, "y": 2 }, + { "label": "Enter", "matrix": [6, 4], "w": 2.25, "x": 16.25, "y": 2 }, + { "label": "Up", "matrix": [6, 2], "x": 18.5, "y": 2 }, + { "label": "F12", "matrix": [6, 1], "w": 1.5, "x": 20, "y": 2 }, + { "label": "F13", "matrix": [6, 0], "w": 1.5, "x": 21.5, "y": 2 }, + { "label": "F7", "matrix": [3, 0], "w": 3, "x": 0, "y": 3 }, + { "label": "Ctrl", "matrix": [3, 2], "x": 3.5, "y": 3 }, + { "label": "Shift", "matrix": [3, 3], "w": 1.25, "x": 4.5, "y": 3 }, + { "label": "Z", "matrix": [3, 4], "x": 5.75, "y": 3 }, + { "label": "X", "matrix": [3, 5], "x": 6.75, "y": 3 }, + { "label": "C", "matrix": [3, 6], "x": 7.75, "y": 3 }, + { "label": "V", "matrix": [3, 7], "x": 8.75, "y": 3 }, + { "label": "B", "matrix": [3, 8], "x": 9.75, "y": 3 }, + { "label": "N", "matrix": [7, 9], "x": 10.75, "y": 3 }, + { "label": "M", "matrix": [7, 8], "x": 11.75, "y": 3 }, + { "label": ",", "matrix": [7, 7], "x": 12.75, "y": 3 }, + { "label": ".", "matrix": [7, 6], "x": 13.75, "y": 3 }, + { "label": "/", "matrix": [7, 5], "x": 14.75, "y": 3 }, + { "label": "Shift", "matrix": [7, 4], "w": 2.75, "x": 15.75, "y": 3 }, + { "label": "Down", "matrix": [7, 2], "x": 18.5, "y": 3 }, + { "label": "F14", "matrix": [7, 1], "w": 1.5, "x": 20, "y": 3 }, + { "label": "F15", "matrix": [7, 0], "w": 1.5, "x": 21.5, "y": 3 }, + { "matrix": [3, 1], "w": 9, "x": 6.75, "y": 4 } + ] + } + } +} diff --git a/keyboards/handwired/protype/keymaps/default/keymap.c b/keyboards/handwired/protype/keymaps/default/keymap.c new file mode 100644 index 00000000000..a8c41d9f7db --- /dev/null +++ b/keyboards/handwired/protype/keymaps/default/keymap.c @@ -0,0 +1,15 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_F1, KC_F2, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_F8, KC_F9, + KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, KC_F10, KC_F11, + KC_F5, KC_F6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_UP, KC_F12, KC_F13, + KC_F7, KC_LCTL, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_DOWN, KC_F14, KC_F15, + KC_SPC + ) +}; diff --git a/keyboards/handwired/protype/readme.md b/keyboards/handwired/protype/readme.md new file mode 100644 index 00000000000..678ab2b8886 --- /dev/null +++ b/keyboards/handwired/protype/readme.md @@ -0,0 +1,26 @@ +# Cherry Protype Display Typewriter + +![handwired/protype](https://i.imgur.com/hcFikid.jpeg) + +Handwired RP2040 Pro Micro (Community Edition) on Cherry Protype Display Typewriter PCB. + +* Keyboard Maintainer: [nooges](https://github.com/nooges) +* Hardware Supported: RP2040 Pro Micro Controller + +Make example for this keyboard (after setting up your build environment): + + qmk compile -kb handwired/protype -km default + +Flashing example for this keyboard: + + qmk flash -kb handwired/protype -km default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Hold the Boot button on the microcontroller and then press Reset +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 88d1f61f10d75b4c49c0185478c9310cf89f5f0e Mon Sep 17 00:00:00 2001 From: arcmags Date: Sat, 1 Mar 2025 14:48:11 -0600 Subject: [PATCH 242/365] Add `tkl_f13_ansi_tsangan` community layout to novelkeys/nk87* (#24730) * missing LAYOUTS added to novelkeys/nk87*/rules.mk * Revert "missing LAYOUTS added to novelkeys/nk87*/rules.mk" This reverts commit 43917bfc3638ebde58bc8c2b6b8cbc477343b646. * missing community layouts added to novelkeys/nk87*/keyboard.json --- keyboards/novelkeys/nk87/keyboard.json | 1 + keyboards/novelkeys/nk87b/keyboard.json | 1 + 2 files changed, 2 insertions(+) diff --git a/keyboards/novelkeys/nk87/keyboard.json b/keyboards/novelkeys/nk87/keyboard.json index 9573ff4c9ce..8b7f8fed4da 100755 --- a/keyboards/novelkeys/nk87/keyboard.json +++ b/keyboards/novelkeys/nk87/keyboard.json @@ -22,6 +22,7 @@ "processor": "STM32F303", "bootloader": "stm32-dfu", "board": "QMK_PROTON_C", + "community_layouts": ["tkl_f13_ansi_tsangan"], "layout_aliases": { "LAYOUT_all": "LAYOUT_tkl_f13_ansi_tsangan" }, diff --git a/keyboards/novelkeys/nk87b/keyboard.json b/keyboards/novelkeys/nk87b/keyboard.json index f81793aceed..563f502aaee 100755 --- a/keyboards/novelkeys/nk87b/keyboard.json +++ b/keyboards/novelkeys/nk87b/keyboard.json @@ -80,6 +80,7 @@ }, "processor": "STM32F072", "bootloader": "stm32-dfu", + "community_layouts": ["tkl_f13_ansi_tsangan"], "layout_aliases": { "LAYOUT_all": "LAYOUT_tkl_f13_ansi_tsangan" }, From a3a3af118426edc7e6650f62e03633a0e0cf8ad4 Mon Sep 17 00:00:00 2001 From: telybelly <136142585+telybelly@users.noreply.github.com> Date: Sun, 2 Mar 2025 04:59:52 +0800 Subject: [PATCH 243/365] Add Janky No.9 (#24910) * Add Janky No.9 Add Janky No.9 * Update readme.md * Update keyboard.json updated as per waffle87 suggestions, and run qmk format-json * Apply suggestions from code review updated as per suggestions from zvecr Co-authored-by: Joel Challis --------- Co-authored-by: Joel Challis --- keyboards/jankycaps/janky9/keyboard.json | 40 +++++++++++++++++++ .../jankycaps/janky9/keymaps/default/keymap.c | 25 ++++++++++++ keyboards/jankycaps/janky9/readme.md | 27 +++++++++++++ 3 files changed, 92 insertions(+) create mode 100644 keyboards/jankycaps/janky9/keyboard.json create mode 100644 keyboards/jankycaps/janky9/keymaps/default/keymap.c create mode 100644 keyboards/jankycaps/janky9/readme.md diff --git a/keyboards/jankycaps/janky9/keyboard.json b/keyboards/jankycaps/janky9/keyboard.json new file mode 100644 index 00000000000..73116a5cb8b --- /dev/null +++ b/keyboards/jankycaps/janky9/keyboard.json @@ -0,0 +1,40 @@ +{ + "manufacturer": "jankycaps", + "keyboard_name": "Janky No.9", + "maintainer": "telybelly", + "development_board": "promicro", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true + }, + "matrix_pins": { + "direct": [ + ["F4", "F5", "F6"], + ["F7", "B1", "B3"], + ["B2", "B6", "B5"] + ] + }, + "url": "https://anky.studio/", + "usb": { + "device_version": "1.0.0", + "pid": "0x0001", + "vid": "0x4E4B" + }, + "community_layouts": ["ortho_3x3"], + "layouts": { + "LAYOUT_ortho_3x3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2} + ] + } + } +} diff --git a/keyboards/jankycaps/janky9/keymaps/default/keymap.c b/keyboards/jankycaps/janky9/keymaps/default/keymap.c new file mode 100644 index 00000000000..2a04817a90d --- /dev/null +++ b/keyboards/jankycaps/janky9/keymaps/default/keymap.c @@ -0,0 +1,25 @@ +/* Copyright 2025 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_3x3( + KC_1, KC_2, KC_3, + KC_4, KC_5, KC_6, + KC_7, KC_8, KC_9 + ), +}; diff --git a/keyboards/jankycaps/janky9/readme.md b/keyboards/jankycaps/janky9/readme.md new file mode 100644 index 00000000000..b97fd0f078e --- /dev/null +++ b/keyboards/jankycaps/janky9/readme.md @@ -0,0 +1,27 @@ +# Janky No.9 + +![Janky No.9](https://i.imgur.com/hkEorpO.jpeg) + +*A Handmade 3x3 Macropad* + +* Keyboard Maintainer: [telybelly](https://github.com/telybelly) +* Hardware Supported: Janky No.9 +* Hardware Availability: + +Make example for this keyboard (after setting up your build environment): + + make jankycaps/janky9:default + +Flashing example for this keyboard: + + make jankycaps/janky9:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Quickly short the RST and GND pads on the PCB twice +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 0419cd2eed96157ff47d340c5f20ca7f46787848 Mon Sep 17 00:00:00 2001 From: Eric Banker Date: Sat, 1 Mar 2025 13:01:30 -0800 Subject: [PATCH 244/365] [Docs] Fix example code in quantum_painter.md (#24897) https://github.com/qmk/qmk_firmware/issues/24896 --- docs/quantum_painter.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/quantum_painter.md b/docs/quantum_painter.md index 782d496ff7d..bbe89445161 100644 --- a/docs/quantum_painter.md +++ b/docs/quantum_painter.md @@ -884,7 +884,7 @@ static painter_image_handle_t my_image; void keyboard_post_init_kb(void) { my_image = qp_load_image_mem(gfx_my_image); if (my_image != NULL) { - qp_drawimage(display, (239 - my_image->width), (319 - my_image->height), my_image); + qp_drawimage(display, (240 - my_image->width), (320 - my_image->height), my_image); } } ``` @@ -909,7 +909,7 @@ static deferred_token my_anim; void keyboard_post_init_kb(void) { my_image = qp_load_image_mem(gfx_my_image); if (my_image != NULL) { - my_anim = qp_animate(display, (239 - my_image->width), (319 - my_image->height), my_image); + my_anim = qp_animate(display, (240 - my_image->width), (320 - my_image->height), my_image); } } ``` @@ -1001,7 +1001,7 @@ void keyboard_post_init_kb(void) { if (my_font != NULL) { static const char *text = "Hello from QMK!"; int16_t width = qp_textwidth(my_font, text); - qp_drawtext(display, (239 - width), (319 - my_font->line_height), my_font, text); + qp_drawtext(display, (240 - width), (320 - my_font->line_height), my_font, text); } } ``` From 516fa90f991f95edc005b823e59fdfa789e8dfeb Mon Sep 17 00:00:00 2001 From: era <73109780+eerraa@users.noreply.github.com> Date: Sun, 2 Mar 2025 06:25:26 +0900 Subject: [PATCH 245/365] Add Chickpad (#24895) * Add ChickPad Add ChickPad * Add Chickpad Add Chickpad * Add PCB image Add PCB image * Update keyboards/era/sirind/chickpad/keyboard.json Co-authored-by: Joel Challis * Update keyboards/era/sirind/chickpad/config.h Co-authored-by: jack <0x6a73@protonmail.com> * Update keyboards/era/sirind/chickpad/keymaps/default/keymap.c Co-authored-by: jack <0x6a73@protonmail.com> * Update keyboards/era/sirind/chickpad/readme.md Co-authored-by: jack <0x6a73@protonmail.com> --------- Co-authored-by: Joel Challis Co-authored-by: jack --- keyboards/era/sirind/chickpad/config.h | 8 ++ keyboards/era/sirind/chickpad/keyboard.json | 120 ++++++++++++++++++ .../sirind/chickpad/keymaps/default/keymap.c | 13 ++ keyboards/era/sirind/chickpad/readme.md | 25 ++++ 4 files changed, 166 insertions(+) create mode 100644 keyboards/era/sirind/chickpad/config.h create mode 100644 keyboards/era/sirind/chickpad/keyboard.json create mode 100644 keyboards/era/sirind/chickpad/keymaps/default/keymap.c create mode 100644 keyboards/era/sirind/chickpad/readme.md diff --git a/keyboards/era/sirind/chickpad/config.h b/keyboards/era/sirind/chickpad/config.h new file mode 100644 index 00000000000..4a8c7d1a6b6 --- /dev/null +++ b/keyboards/era/sirind/chickpad/config.h @@ -0,0 +1,8 @@ +// Copyright 2024 Hyojin Bak (@eerraa) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* Reset */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U diff --git a/keyboards/era/sirind/chickpad/keyboard.json b/keyboards/era/sirind/chickpad/keyboard.json new file mode 100644 index 00000000000..fe76df006d3 --- /dev/null +++ b/keyboards/era/sirind/chickpad/keyboard.json @@ -0,0 +1,120 @@ +{ + "manufacturer": "SIRIND", + "keyboard_name": "ChickPad", + "maintainer": "eerraa", + "bootloader": "rp2040", + "build": { + "debounce_type": "sym_defer_pk" + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP23", "GP25", "GP3", "GP5", "GP4"], + "rows": ["GP18", "GP24", "GP22"] + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "flower_blooming": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "multisplash": true, + "pixel_flow": true, + "pixel_fractal": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "riverflow": true, + "solid_multisplash": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_splash": true, + "splash": true, + "starlight": true, + "starlight_dual_hue": true, + "starlight_dual_sat": true, + "typing_heatmap": true + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 56, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 168, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 224, "y": 16, "flags": 1}, + {"matrix": [1, 3], "x": 168, "y": 32, "flags": 4}, + {"matrix": [1, 2], "x": 112, "y": 32, "flags": 4}, + {"matrix": [1, 1], "x": 56, "y": 32, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 28, "y": 64, "flags": 1}, + {"matrix": [2, 2], "x": 112, "y": 64, "flags": 4}, + {"matrix": [2, 3], "x": 168, "y": 64, "flags": 4}, + {"matrix": [2, 4], "x": 224, "y": 64, "flags": 4} + ], + "sleep": true + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0015", + "vid": "0x4552" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP19" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0, "w": 1.25, "h": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.25}, + {"matrix": [1, 1], "x": 1.25, "y": 1}, + {"matrix": [1, 2], "x": 2.25, "y": 1}, + {"matrix": [1, 3], "x": 3.25, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, + {"matrix": [2, 2], "x": 2.25, "y": 2}, + {"matrix": [2, 3], "x": 3.25, "y": 2}, + {"matrix": [2, 4], "x": 4.25, "y": 2} + ] + } + } +} diff --git a/keyboards/era/sirind/chickpad/keymaps/default/keymap.c b/keyboards/era/sirind/chickpad/keymaps/default/keymap.c new file mode 100644 index 00000000000..a208c4866cd --- /dev/null +++ b/keyboards/era/sirind/chickpad/keymaps/default/keymap.c @@ -0,0 +1,13 @@ +// Copyright 2024 QMK (@qmk) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_1 , KC_2 , KC_3 , KC_4 , KC_ENT , + KC_LSFT, KC_VOLU, KC_VOLD, KC_UP , + KC_SPC , KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/keyboards/era/sirind/chickpad/readme.md b/keyboards/era/sirind/chickpad/readme.md new file mode 100644 index 00000000000..fd6ad72d4f0 --- /dev/null +++ b/keyboards/era/sirind/chickpad/readme.md @@ -0,0 +1,25 @@ +# ChickPad Unified + +![Chickpad](https://i.imgur.com/RAH7dyl.jpeg) + +* Keyboard Maintainer: [ERA](https://github.com/eerraa) +* Hardware supported: Chickpad PCB w/ RP2040 +* Hardware availability: [Syryan](https://srind.mysoho.com/) + +Make example for this keyboard (after setting up your build environment): + + make era/sirind/chickpad:default + +Flashing example for this keyboard: + + make era/sirind/chickpad:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at ESC(0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly short the `RESET` and `GND` pads on the SWD header twice, or short the `BOOT` header and plug in keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file From 655bf4008a1f04adebec0cdf1c67705a952fb20f Mon Sep 17 00:00:00 2001 From: suikagiken <115451678+suikagiken@users.noreply.github.com> Date: Sun, 2 Mar 2025 06:50:10 +0900 Subject: [PATCH 246/365] Add keyboard suika15tone (#24947) * Add keyboard suika15tone * Update keyboards/suikagiken/suika15tone/keyboard.json Co-authored-by: Drashna Jaelre --------- Co-authored-by: Drashna Jaelre --- keyboards/suikagiken/suika15tone/config.h | 5 ++ .../suikagiken/suika15tone/keyboard.json | 48 +++++++++++++++++++ .../suika15tone/keymaps/default/keymap.json | 12 +++++ .../suika15tone/keymaps/midi/keymap.json | 12 +++++ keyboards/suikagiken/suika15tone/readme.md | 44 +++++++++++++++++ 5 files changed, 121 insertions(+) create mode 100644 keyboards/suikagiken/suika15tone/config.h create mode 100644 keyboards/suikagiken/suika15tone/keyboard.json create mode 100644 keyboards/suikagiken/suika15tone/keymaps/default/keymap.json create mode 100644 keyboards/suikagiken/suika15tone/keymaps/midi/keymap.json create mode 100644 keyboards/suikagiken/suika15tone/readme.md diff --git a/keyboards/suikagiken/suika15tone/config.h b/keyboards/suikagiken/suika15tone/config.h new file mode 100644 index 00000000000..7d35e3c4369 --- /dev/null +++ b/keyboards/suikagiken/suika15tone/config.h @@ -0,0 +1,5 @@ +// Copyright 2025 @suikagiken +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once +#define MIDI_ADVANCED diff --git a/keyboards/suikagiken/suika15tone/keyboard.json b/keyboards/suikagiken/suika15tone/keyboard.json new file mode 100644 index 00000000000..de3c8f33f31 --- /dev/null +++ b/keyboards/suikagiken/suika15tone/keyboard.json @@ -0,0 +1,48 @@ +{ + "manufacturer": "suikagiken", + "keyboard_name": "suika15tone", + "maintainer": "suikagiken", + "processor": "RP2040", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "midi": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP24", "GP0", "GP1", "GP2", "GP3", "GP4", "GP12", "GP13", "GP14"], + "rows": ["GP25", "GP23"] + }, + "url": "https://github.com/suikagiken/suika15tone", + "usb": { + "device_version": "1.0.0", + "vid": "0x4B48", + "pid": "0x0301" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [0, 2], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 5, "y": 0}, + {"matrix": [0, 5], "x": 6, "y": 0}, + {"matrix": [0, 6], "x": 7, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1} + ] + } + } +} diff --git a/keyboards/suikagiken/suika15tone/keymaps/default/keymap.json b/keyboards/suikagiken/suika15tone/keymaps/default/keymap.json new file mode 100644 index 00000000000..478bcc62126 --- /dev/null +++ b/keyboards/suikagiken/suika15tone/keymaps/default/keymap.json @@ -0,0 +1,12 @@ +{ + "author": "suikagiken", + "keyboard": "suikagiken/suika15tone", + "keymap": "default", + "layout": "LAYOUT", + "layers": [ + [ + "KC_A", "KC_D", "KC_F", "KC_I", "KC_K", "KC_M", + "KC_B", "KC_C", "KC_E", "KC_G", "KC_H", "KC_J", "KC_L", "KC_N", "KC_O" + ] + ] +} diff --git a/keyboards/suikagiken/suika15tone/keymaps/midi/keymap.json b/keyboards/suikagiken/suika15tone/keymaps/midi/keymap.json new file mode 100644 index 00000000000..532f7dd5c9c --- /dev/null +++ b/keyboards/suikagiken/suika15tone/keymaps/midi/keymap.json @@ -0,0 +1,12 @@ +{ + "author": "suikagiken", + "keyboard": "suikagiken/suika15tone", + "keymap": "midi", + "layout": "LAYOUT", + "layers": [ + [ + "MI_OCTU", "MI_Cs1", "MI_Ds1", "MI_Fs1", "MI_Gs1", "MI_As1", + "MI_OCTD", "MI_C1", "MI_D1", "MI_E1", "MI_F1", "MI_G1", "MI_A1", "MI_B1", "MI_C2" + ] + ] +} diff --git a/keyboards/suikagiken/suika15tone/readme.md b/keyboards/suikagiken/suika15tone/readme.md new file mode 100644 index 00000000000..39489898dd1 --- /dev/null +++ b/keyboards/suikagiken/suika15tone/readme.md @@ -0,0 +1,44 @@ +# suika15tone +(English Follows Japanese) + +## 概要 +![suika15tone1](https://i.imgur.com/r0shhWR.jpg) +![suika15tone2](https://i.imgur.com/7lCqpEX.jpg) + +suika15toneは1オクターブのピアノ鍵盤型マクロキーパッドです。 +通常のマクロキーパッドとしても使えるほか、MIDIキーボードとしてDAWソフトの入力や演奏に使用できます。 + +* 制作 : すいか技研 (Website: https://suikagiken.net GitHub: [suikagiken](https://github.com/suikagiken) ) +* 販売 : すいか技研の[booth](https://suikagiken.booth.pm/)にて販売予定です + +## ビルドガイド + +[こちら](https://github.com/suikagiken/suika15tone/blob/main/buildguide_1.0.md)からご覧下さい。 + +--- + +## Overview + +suika15tone is a 1-octave piano shaped macro keypad. +You can use it as a normal macro keypad, or use it as a MIDI keyboard for DAW software input and musical performance. + +* Keyboard Maintainer: [suikagiken](https://github.com/suikagiken) +* Hardware Availability: Available at [booth](https://suikagiken.booth.pm/). + +Make example for this keyboard (after setting up your build environment): + + make suikagiken/suika15tone:default + +Flashing example for this keyboard: + + make suikagiken/suika15tone:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the top left key) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From acec6904d8097a1890df272e424c4d43ad8a6831 Mon Sep 17 00:00:00 2001 From: blindassassin111 <38090555+blindassassin111@users.noreply.github.com> Date: Sat, 1 Mar 2025 16:24:15 -0600 Subject: [PATCH 247/365] Adding support for the VKR 94 (#24883) * Adding support for the VKR 94 * Update keyboards/viktus/vkr94/keyboard.json Co-authored-by: Joel Challis * Delete keyboards/viktus/vkr94/config.h * Delete keyboards/viktus/vkr94/rules.mk * Update readme.md --------- Co-authored-by: Joel Challis --- keyboards/viktus/vkr94/keyboard.json | 947 ++++++++++++++++++ .../viktus/vkr94/keymaps/default/keymap.c | 35 + keyboards/viktus/vkr94/readme.md | 27 + 3 files changed, 1009 insertions(+) create mode 100644 keyboards/viktus/vkr94/keyboard.json create mode 100644 keyboards/viktus/vkr94/keymaps/default/keymap.c create mode 100644 keyboards/viktus/vkr94/readme.md diff --git a/keyboards/viktus/vkr94/keyboard.json b/keyboards/viktus/vkr94/keyboard.json new file mode 100644 index 00000000000..31fd8ee1c7e --- /dev/null +++ b/keyboards/viktus/vkr94/keyboard.json @@ -0,0 +1,947 @@ +{ + "keyboard_name": "VKR 94", + "manufacturer": "Viktus Design", + "url": "", + "maintainer": "BlindAssassin111", + "usb": { + "vid": "0x5644", + "pid": "0x3934", + "device_version": "1.0.0" + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["D1", "D3", "D5", "D4", "D6", "D7", "B4", "B5", "B6"], + "rows": ["F1", "F0", "F5", "F4", "F7", "F6", "C7", "C6", "D0"] + }, + "ws2812": { + "pin": "D2" + }, + "rgb_matrix": { + "driver": "ws2812", + "max_brightness": 150, + "layout": [ + { "flags": 8, "x": 1, "y": 2 }, + { "flags": 8, "x": 0, "y": 2 }, + { "flags": 8, "x": 0, "y": 1 }, + { "flags": 8, "x": 1, "y": 1 }, + { "flags": 8, "x": 1, "y": 0 }, + { "flags": 8, "x": 0, "y": 0 } + ], + "animations": { + "breathing": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true + }, + "sleep": true + }, + "layouts": { + "LAYOUT_splitbs_splitshift_ansi_7u": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1.5, "y": 0}, + {"matrix": [0, 1], "x": 2.5, "y": 0}, + {"matrix": [1, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [1, 2], "x": 5.5, "y": 0}, + {"matrix": [0, 3], "x": 6.5, "y": 0}, + {"matrix": [1, 3], "x": 7.5, "y": 0}, + {"matrix": [0, 4], "x": 8.5, "y": 0}, + {"matrix": [1, 4], "x": 9.5, "y": 0}, + {"matrix": [0, 5], "x": 10.5, "y": 0}, + {"matrix": [1, 5], "x": 11.5, "y": 0}, + {"matrix": [0, 6], "x": 12.5, "y": 0}, + {"matrix": [1, 6], "x": 13.5, "y": 0}, + {"matrix": [0, 7], "x": 14.5, "y": 0}, + {"matrix": [1, 7], "x": 15.5, "y": 0}, + {"matrix": [0, 8], "x": 18, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1}, + {"matrix": [3, 0], "x": 1.5, "y": 1, "w": 1.5}, + {"matrix": [2, 1], "x": 3, "y": 1}, + {"matrix": [3, 1], "x": 4, "y": 1}, + {"matrix": [2, 2], "x": 5, "y": 1}, + {"matrix": [3, 2], "x": 6, "y": 1}, + {"matrix": [2, 3], "x": 7, "y": 1}, + {"matrix": [3, 3], "x": 8, "y": 1}, + {"matrix": [2, 4], "x": 9, "y": 1}, + {"matrix": [3, 4], "x": 10, "y": 1}, + {"matrix": [2, 5], "x": 11, "y": 1}, + {"matrix": [3, 5], "x": 12, "y": 1}, + {"matrix": [2, 6], "x": 13, "y": 1}, + {"matrix": [3, 6], "x": 14, "y": 1}, + {"matrix": [3, 7], "x": 15, "y": 1, "w": 1.5}, + {"matrix": [2, 8], "x": 18, "y": 1}, + + {"matrix": [4, 0], "x": 0, "y": 2}, + {"matrix": [5, 0], "x": 1.5, "y": 2, "w": 1.75}, + {"matrix": [4, 1], "x": 3.25, "y": 2}, + {"matrix": [5, 1], "x": 4.25, "y": 2}, + {"matrix": [4, 2], "x": 5.25, "y": 2}, + {"matrix": [5, 2], "x": 6.25, "y": 2}, + {"matrix": [4, 3], "x": 7.25, "y": 2}, + {"matrix": [5, 3], "x": 8.25, "y": 2}, + {"matrix": [4, 4], "x": 9.25, "y": 2}, + {"matrix": [5, 4], "x": 10.25, "y": 2}, + {"matrix": [4, 5], "x": 11.25, "y": 2}, + {"matrix": [5, 5], "x": 12.25, "y": 2}, + {"matrix": [4, 6], "x": 13.25, "y": 2}, + {"matrix": [5, 7], "x": 14.25, "y": 2, "w": 2.25}, + {"matrix": [4, 8], "x": 18, "y": 2}, + + {"matrix": [6, 0], "x": 0, "y": 3}, + {"matrix": [7, 0], "x": 2, "y": 3, "w": 1.75}, + {"matrix": [6, 1], "x": 3.75, "y": 3}, + {"matrix": [7, 1], "x": 4.75, "y": 3}, + {"matrix": [6, 2], "x": 5.75, "y": 3}, + {"matrix": [7, 2], "x": 6.75, "y": 3}, + {"matrix": [6, 3], "x": 7.75, "y": 3}, + {"matrix": [7, 3], "x": 8.75, "y": 3}, + {"matrix": [6, 4], "x": 9.75, "y": 3}, + {"matrix": [7, 4], "x": 10.75, "y": 3}, + {"matrix": [6, 5], "x": 11.75, "y": 3}, + {"matrix": [7, 5], "x": 12.75, "y": 3}, + {"matrix": [6, 6], "x": 13.75, "y": 3, "w": 1.25}, + {"matrix": [7, 7], "x": 15, "y": 3}, + {"matrix": [6, 8], "x": 18, "y": 3}, + + {"matrix": [8, 0], "x": 3, "y": 4}, + {"matrix": [8, 1], "x": 4, "y": 4, "w": 1.5}, + {"matrix": [8, 3], "x": 5.5, "y": 4, "w": 7}, + {"matrix": [8, 5], "x": 12.5, "y": 4, "w": 1.5}, + {"matrix": [8, 6], "x": 14, "y": 4} + ] + }, + "LAYOUT_splitbs_fullshift_ansi_7u": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1.5, "y": 0}, + {"matrix": [0, 1], "x": 2.5, "y": 0}, + {"matrix": [1, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [1, 2], "x": 5.5, "y": 0}, + {"matrix": [0, 3], "x": 6.5, "y": 0}, + {"matrix": [1, 3], "x": 7.5, "y": 0}, + {"matrix": [0, 4], "x": 8.5, "y": 0}, + {"matrix": [1, 4], "x": 9.5, "y": 0}, + {"matrix": [0, 5], "x": 10.5, "y": 0}, + {"matrix": [1, 5], "x": 11.5, "y": 0}, + {"matrix": [0, 6], "x": 12.5, "y": 0}, + {"matrix": [1, 6], "x": 13.5, "y": 0}, + {"matrix": [0, 7], "x": 14.5, "y": 0}, + {"matrix": [1, 7], "x": 15.5, "y": 0}, + {"matrix": [0, 8], "x": 18, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1}, + {"matrix": [3, 0], "x": 1.5, "y": 1, "w": 1.5}, + {"matrix": [2, 1], "x": 3, "y": 1}, + {"matrix": [3, 1], "x": 4, "y": 1}, + {"matrix": [2, 2], "x": 5, "y": 1}, + {"matrix": [3, 2], "x": 6, "y": 1}, + {"matrix": [2, 3], "x": 7, "y": 1}, + {"matrix": [3, 3], "x": 8, "y": 1}, + {"matrix": [2, 4], "x": 9, "y": 1}, + {"matrix": [3, 4], "x": 10, "y": 1}, + {"matrix": [2, 5], "x": 11, "y": 1}, + {"matrix": [3, 5], "x": 12, "y": 1}, + {"matrix": [2, 6], "x": 13, "y": 1}, + {"matrix": [3, 6], "x": 14, "y": 1}, + {"matrix": [3, 7], "x": 15, "y": 1, "w": 1.5}, + {"matrix": [2, 8], "x": 18, "y": 1}, + + {"matrix": [4, 0], "x": 0, "y": 2}, + {"matrix": [5, 0], "x": 1.5, "y": 2, "w": 1.75}, + {"matrix": [4, 1], "x": 3.25, "y": 2}, + {"matrix": [5, 1], "x": 4.25, "y": 2}, + {"matrix": [4, 2], "x": 5.25, "y": 2}, + {"matrix": [5, 2], "x": 6.25, "y": 2}, + {"matrix": [4, 3], "x": 7.25, "y": 2}, + {"matrix": [5, 3], "x": 8.25, "y": 2}, + {"matrix": [4, 4], "x": 9.25, "y": 2}, + {"matrix": [5, 4], "x": 10.25, "y": 2}, + {"matrix": [4, 5], "x": 11.25, "y": 2}, + {"matrix": [5, 5], "x": 12.25, "y": 2}, + {"matrix": [4, 6], "x": 13.25, "y": 2}, + {"matrix": [5, 7], "x": 14.25, "y": 2, "w": 2.25}, + {"matrix": [4, 8], "x": 18, "y": 2}, + + {"matrix": [6, 0], "x": 0, "y": 3}, + {"matrix": [7, 0], "x": 2, "y": 3, "w": 1.75}, + {"matrix": [6, 1], "x": 3.75, "y": 3}, + {"matrix": [7, 1], "x": 4.75, "y": 3}, + {"matrix": [6, 2], "x": 5.75, "y": 3}, + {"matrix": [7, 2], "x": 6.75, "y": 3}, + {"matrix": [6, 3], "x": 7.75, "y": 3}, + {"matrix": [7, 3], "x": 8.75, "y": 3}, + {"matrix": [6, 4], "x": 9.75, "y": 3}, + {"matrix": [7, 4], "x": 10.75, "y": 3}, + {"matrix": [6, 5], "x": 11.75, "y": 3}, + {"matrix": [7, 5], "x": 12.75, "y": 3}, + {"matrix": [6, 6], "x": 13.75, "y": 3, "w": 2.25}, + {"matrix": [6, 8], "x": 18, "y": 3}, + + {"matrix": [8, 0], "x": 3, "y": 4}, + {"matrix": [8, 1], "x": 4, "y": 4, "w": 1.5}, + {"matrix": [8, 3], "x": 5.5, "y": 4, "w": 7}, + {"matrix": [8, 5], "x": 12.5, "y": 4, "w": 1.5}, + {"matrix": [8, 6], "x": 14, "y": 4} + ] + }, + "LAYOUT_splitbs_splitshift_ansi_9u": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1.5, "y": 0}, + {"matrix": [0, 1], "x": 2.5, "y": 0}, + {"matrix": [1, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [1, 2], "x": 5.5, "y": 0}, + {"matrix": [0, 3], "x": 6.5, "y": 0}, + {"matrix": [1, 3], "x": 7.5, "y": 0}, + {"matrix": [0, 4], "x": 8.5, "y": 0}, + {"matrix": [1, 4], "x": 9.5, "y": 0}, + {"matrix": [0, 5], "x": 10.5, "y": 0}, + {"matrix": [1, 5], "x": 11.5, "y": 0}, + {"matrix": [0, 6], "x": 12.5, "y": 0}, + {"matrix": [1, 6], "x": 13.5, "y": 0}, + {"matrix": [0, 7], "x": 14.5, "y": 0}, + {"matrix": [1, 7], "x": 15.5, "y": 0}, + {"matrix": [0, 8], "x": 18, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1}, + {"matrix": [3, 0], "x": 1.5, "y": 1, "w": 1.5}, + {"matrix": [2, 1], "x": 3, "y": 1}, + {"matrix": [3, 1], "x": 4, "y": 1}, + {"matrix": [2, 2], "x": 5, "y": 1}, + {"matrix": [3, 2], "x": 6, "y": 1}, + {"matrix": [2, 3], "x": 7, "y": 1}, + {"matrix": [3, 3], "x": 8, "y": 1}, + {"matrix": [2, 4], "x": 9, "y": 1}, + {"matrix": [3, 4], "x": 10, "y": 1}, + {"matrix": [2, 5], "x": 11, "y": 1}, + {"matrix": [3, 5], "x": 12, "y": 1}, + {"matrix": [2, 6], "x": 13, "y": 1}, + {"matrix": [3, 6], "x": 14, "y": 1}, + {"matrix": [3, 7], "x": 15, "y": 1, "w": 1.5}, + {"matrix": [2, 8], "x": 18, "y": 1}, + + {"matrix": [4, 0], "x": 0, "y": 2}, + {"matrix": [5, 0], "x": 1.5, "y": 2, "w": 1.75}, + {"matrix": [4, 1], "x": 3.25, "y": 2}, + {"matrix": [5, 1], "x": 4.25, "y": 2}, + {"matrix": [4, 2], "x": 5.25, "y": 2}, + {"matrix": [5, 2], "x": 6.25, "y": 2}, + {"matrix": [4, 3], "x": 7.25, "y": 2}, + {"matrix": [5, 3], "x": 8.25, "y": 2}, + {"matrix": [4, 4], "x": 9.25, "y": 2}, + {"matrix": [5, 4], "x": 10.25, "y": 2}, + {"matrix": [4, 5], "x": 11.25, "y": 2}, + {"matrix": [5, 5], "x": 12.25, "y": 2}, + {"matrix": [4, 6], "x": 13.25, "y": 2}, + {"matrix": [5, 7], "x": 14.25, "y": 2, "w": 2.25}, + {"matrix": [4, 8], "x": 18, "y": 2}, + + {"matrix": [6, 0], "x": 0, "y": 3}, + {"matrix": [7, 0], "x": 2, "y": 3, "w": 1.75}, + {"matrix": [6, 1], "x": 3.75, "y": 3}, + {"matrix": [7, 1], "x": 4.75, "y": 3}, + {"matrix": [6, 2], "x": 5.75, "y": 3}, + {"matrix": [7, 2], "x": 6.75, "y": 3}, + {"matrix": [6, 3], "x": 7.75, "y": 3}, + {"matrix": [7, 3], "x": 8.75, "y": 3}, + {"matrix": [6, 4], "x": 9.75, "y": 3}, + {"matrix": [7, 4], "x": 10.75, "y": 3}, + {"matrix": [6, 5], "x": 11.75, "y": 3}, + {"matrix": [7, 5], "x": 12.75, "y": 3}, + {"matrix": [6, 6], "x": 13.75, "y": 3, "w": 1.25}, + {"matrix": [7, 7], "x": 15, "y": 3}, + {"matrix": [6, 8], "x": 18, "y": 3}, + + {"matrix": [8, 0], "x": 3, "y": 4, "w": 1.5}, + {"matrix": [8, 3], "x": 4.5, "y": 4, "w": 9}, + {"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_splitbs_fullshift_ansi_9u": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1.5, "y": 0}, + {"matrix": [0, 1], "x": 2.5, "y": 0}, + {"matrix": [1, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [1, 2], "x": 5.5, "y": 0}, + {"matrix": [0, 3], "x": 6.5, "y": 0}, + {"matrix": [1, 3], "x": 7.5, "y": 0}, + {"matrix": [0, 4], "x": 8.5, "y": 0}, + {"matrix": [1, 4], "x": 9.5, "y": 0}, + {"matrix": [0, 5], "x": 10.5, "y": 0}, + {"matrix": [1, 5], "x": 11.5, "y": 0}, + {"matrix": [0, 6], "x": 12.5, "y": 0}, + {"matrix": [1, 6], "x": 13.5, "y": 0}, + {"matrix": [0, 7], "x": 14.5, "y": 0}, + {"matrix": [1, 7], "x": 15.5, "y": 0}, + {"matrix": [0, 8], "x": 18, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1}, + {"matrix": [3, 0], "x": 1.5, "y": 1, "w": 1.5}, + {"matrix": [2, 1], "x": 3, "y": 1}, + {"matrix": [3, 1], "x": 4, "y": 1}, + {"matrix": [2, 2], "x": 5, "y": 1}, + {"matrix": [3, 2], "x": 6, "y": 1}, + {"matrix": [2, 3], "x": 7, "y": 1}, + {"matrix": [3, 3], "x": 8, "y": 1}, + {"matrix": [2, 4], "x": 9, "y": 1}, + {"matrix": [3, 4], "x": 10, "y": 1}, + {"matrix": [2, 5], "x": 11, "y": 1}, + {"matrix": [3, 5], "x": 12, "y": 1}, + {"matrix": [2, 6], "x": 13, "y": 1}, + {"matrix": [3, 6], "x": 14, "y": 1}, + {"matrix": [3, 7], "x": 15, "y": 1, "w": 1.5}, + {"matrix": [2, 8], "x": 18, "y": 1}, + + {"matrix": [4, 0], "x": 0, "y": 2}, + {"matrix": [5, 0], "x": 1.5, "y": 2, "w": 1.75}, + {"matrix": [4, 1], "x": 3.25, "y": 2}, + {"matrix": [5, 1], "x": 4.25, "y": 2}, + {"matrix": [4, 2], "x": 5.25, "y": 2}, + {"matrix": [5, 2], "x": 6.25, "y": 2}, + {"matrix": [4, 3], "x": 7.25, "y": 2}, + {"matrix": [5, 3], "x": 8.25, "y": 2}, + {"matrix": [4, 4], "x": 9.25, "y": 2}, + {"matrix": [5, 4], "x": 10.25, "y": 2}, + {"matrix": [4, 5], "x": 11.25, "y": 2}, + {"matrix": [5, 5], "x": 12.25, "y": 2}, + {"matrix": [4, 6], "x": 13.25, "y": 2}, + {"matrix": [5, 7], "x": 14.25, "y": 2, "w": 2.25}, + {"matrix": [4, 8], "x": 18, "y": 2}, + + {"matrix": [6, 0], "x": 0, "y": 3}, + {"matrix": [7, 0], "x": 2, "y": 3, "w": 1.75}, + {"matrix": [6, 1], "x": 3.75, "y": 3}, + {"matrix": [7, 1], "x": 4.75, "y": 3}, + {"matrix": [6, 2], "x": 5.75, "y": 3}, + {"matrix": [7, 2], "x": 6.75, "y": 3}, + {"matrix": [6, 3], "x": 7.75, "y": 3}, + {"matrix": [7, 3], "x": 8.75, "y": 3}, + {"matrix": [6, 4], "x": 9.75, "y": 3}, + {"matrix": [7, 4], "x": 10.75, "y": 3}, + {"matrix": [6, 5], "x": 11.75, "y": 3}, + {"matrix": [7, 5], "x": 12.75, "y": 3}, + {"matrix": [6, 6], "x": 13.75, "y": 3, "w": 2.25}, + {"matrix": [6, 8], "x": 18, "y": 3}, + + {"matrix": [8, 0], "x": 3, "y": 4, "w": 1.5}, + {"matrix": [8, 3], "x": 4.5, "y": 4, "w": 9}, + {"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_splitbs_splitshift_ansi_10u": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1.5, "y": 0}, + {"matrix": [0, 1], "x": 2.5, "y": 0}, + {"matrix": [1, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [1, 2], "x": 5.5, "y": 0}, + {"matrix": [0, 3], "x": 6.5, "y": 0}, + {"matrix": [1, 3], "x": 7.5, "y": 0}, + {"matrix": [0, 4], "x": 8.5, "y": 0}, + {"matrix": [1, 4], "x": 9.5, "y": 0}, + {"matrix": [0, 5], "x": 10.5, "y": 0}, + {"matrix": [1, 5], "x": 11.5, "y": 0}, + {"matrix": [0, 6], "x": 12.5, "y": 0}, + {"matrix": [1, 6], "x": 13.5, "y": 0}, + {"matrix": [0, 7], "x": 14.5, "y": 0}, + {"matrix": [1, 7], "x": 15.5, "y": 0}, + {"matrix": [0, 8], "x": 18, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1}, + {"matrix": [3, 0], "x": 1.5, "y": 1, "w": 1.5}, + {"matrix": [2, 1], "x": 3, "y": 1}, + {"matrix": [3, 1], "x": 4, "y": 1}, + {"matrix": [2, 2], "x": 5, "y": 1}, + {"matrix": [3, 2], "x": 6, "y": 1}, + {"matrix": [2, 3], "x": 7, "y": 1}, + {"matrix": [3, 3], "x": 8, "y": 1}, + {"matrix": [2, 4], "x": 9, "y": 1}, + {"matrix": [3, 4], "x": 10, "y": 1}, + {"matrix": [2, 5], "x": 11, "y": 1}, + {"matrix": [3, 5], "x": 12, "y": 1}, + {"matrix": [2, 6], "x": 13, "y": 1}, + {"matrix": [3, 6], "x": 14, "y": 1}, + {"matrix": [3, 7], "x": 15, "y": 1, "w": 1.5}, + {"matrix": [2, 8], "x": 18, "y": 1}, + + {"matrix": [4, 0], "x": 0, "y": 2}, + {"matrix": [5, 0], "x": 1.5, "y": 2, "w": 1.75}, + {"matrix": [4, 1], "x": 3.25, "y": 2}, + {"matrix": [5, 1], "x": 4.25, "y": 2}, + {"matrix": [4, 2], "x": 5.25, "y": 2}, + {"matrix": [5, 2], "x": 6.25, "y": 2}, + {"matrix": [4, 3], "x": 7.25, "y": 2}, + {"matrix": [5, 3], "x": 8.25, "y": 2}, + {"matrix": [4, 4], "x": 9.25, "y": 2}, + {"matrix": [5, 4], "x": 10.25, "y": 2}, + {"matrix": [4, 5], "x": 11.25, "y": 2}, + {"matrix": [5, 5], "x": 12.25, "y": 2}, + {"matrix": [4, 6], "x": 13.25, "y": 2}, + {"matrix": [5, 7], "x": 14.25, "y": 2, "w": 2.25}, + {"matrix": [4, 8], "x": 18, "y": 2}, + + {"matrix": [6, 0], "x": 0, "y": 3}, + {"matrix": [7, 0], "x": 2, "y": 3, "w": 1.75}, + {"matrix": [6, 1], "x": 3.75, "y": 3}, + {"matrix": [7, 1], "x": 4.75, "y": 3}, + {"matrix": [6, 2], "x": 5.75, "y": 3}, + {"matrix": [7, 2], "x": 6.75, "y": 3}, + {"matrix": [6, 3], "x": 7.75, "y": 3}, + {"matrix": [7, 3], "x": 8.75, "y": 3}, + {"matrix": [6, 4], "x": 9.75, "y": 3}, + {"matrix": [7, 4], "x": 10.75, "y": 3}, + {"matrix": [6, 5], "x": 11.75, "y": 3}, + {"matrix": [7, 5], "x": 12.75, "y": 3}, + {"matrix": [6, 6], "x": 13.75, "y": 3, "w": 1.25}, + {"matrix": [7, 7], "x": 15, "y": 3}, + {"matrix": [6, 8], "x": 18, "y": 3}, + + {"matrix": [8, 0], "x": 3, "y": 4}, + {"matrix": [8, 3], "x": 4, "y": 4, "w": 10}, + {"matrix": [8, 6], "x": 14, "y": 4} + ] + }, + "LAYOUT_splitbs_fullshift_ansi_10u": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1.5, "y": 0}, + {"matrix": [0, 1], "x": 2.5, "y": 0}, + {"matrix": [1, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [1, 2], "x": 5.5, "y": 0}, + {"matrix": [0, 3], "x": 6.5, "y": 0}, + {"matrix": [1, 3], "x": 7.5, "y": 0}, + {"matrix": [0, 4], "x": 8.5, "y": 0}, + {"matrix": [1, 4], "x": 9.5, "y": 0}, + {"matrix": [0, 5], "x": 10.5, "y": 0}, + {"matrix": [1, 5], "x": 11.5, "y": 0}, + {"matrix": [0, 6], "x": 12.5, "y": 0}, + {"matrix": [1, 6], "x": 13.5, "y": 0}, + {"matrix": [0, 7], "x": 14.5, "y": 0}, + {"matrix": [1, 7], "x": 15.5, "y": 0}, + {"matrix": [0, 8], "x": 18, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1}, + {"matrix": [3, 0], "x": 1.5, "y": 1, "w": 1.5}, + {"matrix": [2, 1], "x": 3, "y": 1}, + {"matrix": [3, 1], "x": 4, "y": 1}, + {"matrix": [2, 2], "x": 5, "y": 1}, + {"matrix": [3, 2], "x": 6, "y": 1}, + {"matrix": [2, 3], "x": 7, "y": 1}, + {"matrix": [3, 3], "x": 8, "y": 1}, + {"matrix": [2, 4], "x": 9, "y": 1}, + {"matrix": [3, 4], "x": 10, "y": 1}, + {"matrix": [2, 5], "x": 11, "y": 1}, + {"matrix": [3, 5], "x": 12, "y": 1}, + {"matrix": [2, 6], "x": 13, "y": 1}, + {"matrix": [3, 6], "x": 14, "y": 1}, + {"matrix": [3, 7], "x": 15, "y": 1, "w": 1.5}, + {"matrix": [2, 8], "x": 18, "y": 1}, + + {"matrix": [4, 0], "x": 0, "y": 2}, + {"matrix": [5, 0], "x": 1.5, "y": 2, "w": 1.75}, + {"matrix": [4, 1], "x": 3.25, "y": 2}, + {"matrix": [5, 1], "x": 4.25, "y": 2}, + {"matrix": [4, 2], "x": 5.25, "y": 2}, + {"matrix": [5, 2], "x": 6.25, "y": 2}, + {"matrix": [4, 3], "x": 7.25, "y": 2}, + {"matrix": [5, 3], "x": 8.25, "y": 2}, + {"matrix": [4, 4], "x": 9.25, "y": 2}, + {"matrix": [5, 4], "x": 10.25, "y": 2}, + {"matrix": [4, 5], "x": 11.25, "y": 2}, + {"matrix": [5, 5], "x": 12.25, "y": 2}, + {"matrix": [4, 6], "x": 13.25, "y": 2}, + {"matrix": [5, 7], "x": 14.25, "y": 2, "w": 2.25}, + {"matrix": [4, 8], "x": 18, "y": 2}, + + {"matrix": [6, 0], "x": 0, "y": 3}, + {"matrix": [7, 0], "x": 2, "y": 3, "w": 1.75}, + {"matrix": [6, 1], "x": 3.75, "y": 3}, + {"matrix": [7, 1], "x": 4.75, "y": 3}, + {"matrix": [6, 2], "x": 5.75, "y": 3}, + {"matrix": [7, 2], "x": 6.75, "y": 3}, + {"matrix": [6, 3], "x": 7.75, "y": 3}, + {"matrix": [7, 3], "x": 8.75, "y": 3}, + {"matrix": [6, 4], "x": 9.75, "y": 3}, + {"matrix": [7, 4], "x": 10.75, "y": 3}, + {"matrix": [6, 5], "x": 11.75, "y": 3}, + {"matrix": [7, 5], "x": 12.75, "y": 3}, + {"matrix": [6, 6], "x": 13.75, "y": 3, "w": 2.25}, + {"matrix": [6, 8], "x": 18, "y": 3}, + + {"matrix": [8, 0], "x": 3, "y": 4}, + {"matrix": [8, 3], "x": 4, "y": 4, "w": 10}, + {"matrix": [8, 6], "x": 14, "y": 4} + ] + }, + "LAYOUT_fullbs_splitshift_iso_7u": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1.5, "y": 0}, + {"matrix": [0, 1], "x": 2.5, "y": 0}, + {"matrix": [1, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [1, 2], "x": 5.5, "y": 0}, + {"matrix": [0, 3], "x": 6.5, "y": 0}, + {"matrix": [1, 3], "x": 7.5, "y": 0}, + {"matrix": [0, 4], "x": 8.5, "y": 0}, + {"matrix": [1, 4], "x": 9.5, "y": 0}, + {"matrix": [0, 5], "x": 10.5, "y": 0}, + {"matrix": [1, 5], "x": 11.5, "y": 0}, + {"matrix": [0, 6], "x": 12.5, "y": 0}, + {"matrix": [1, 6], "x": 13.5, "y": 0}, + {"matrix": [1, 7], "x": 14.5, "y": 0, "w": 2}, + {"matrix": [0, 8], "x": 18, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1}, + {"matrix": [3, 0], "x": 1.5, "y": 1, "w": 1.5}, + {"matrix": [2, 1], "x": 3, "y": 1}, + {"matrix": [3, 1], "x": 4, "y": 1}, + {"matrix": [2, 2], "x": 5, "y": 1}, + {"matrix": [3, 2], "x": 6, "y": 1}, + {"matrix": [2, 3], "x": 7, "y": 1}, + {"matrix": [3, 3], "x": 8, "y": 1}, + {"matrix": [2, 4], "x": 9, "y": 1}, + {"matrix": [3, 4], "x": 10, "y": 1}, + {"matrix": [2, 5], "x": 11, "y": 1}, + {"matrix": [3, 5], "x": 12, "y": 1}, + {"matrix": [2, 6], "x": 13, "y": 1}, + {"matrix": [3, 6], "x": 14, "y": 1}, + {"matrix": [5, 7], "x": 15.25, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 8], "x": 18, "y": 1}, + + {"matrix": [4, 0], "x": 0, "y": 2}, + {"matrix": [5, 0], "x": 1.5, "y": 2, "w": 1.75}, + {"matrix": [4, 1], "x": 3.25, "y": 2}, + {"matrix": [5, 1], "x": 4.25, "y": 2}, + {"matrix": [4, 2], "x": 5.25, "y": 2}, + {"matrix": [5, 2], "x": 6.25, "y": 2}, + {"matrix": [4, 3], "x": 7.25, "y": 2}, + {"matrix": [5, 3], "x": 8.25, "y": 2}, + {"matrix": [4, 4], "x": 9.25, "y": 2}, + {"matrix": [5, 4], "x": 10.25, "y": 2}, + {"matrix": [4, 5], "x": 11.25, "y": 2}, + {"matrix": [5, 5], "x": 12.25, "y": 2}, + {"matrix": [4, 6], "x": 13.25, "y": 2}, + {"matrix": [5, 6], "x": 14.25, "y": 2}, + {"matrix": [4, 8], "x": 18, "y": 2}, + + {"matrix": [6, 0], "x": 0, "y": 3}, + {"matrix": [7, 0], "x": 2, "y": 3, "w": 1.75}, + {"matrix": [6, 1], "x": 3.75, "y": 3}, + {"matrix": [7, 1], "x": 4.75, "y": 3}, + {"matrix": [6, 2], "x": 5.75, "y": 3}, + {"matrix": [7, 2], "x": 6.75, "y": 3}, + {"matrix": [6, 3], "x": 7.75, "y": 3}, + {"matrix": [7, 3], "x": 8.75, "y": 3}, + {"matrix": [6, 4], "x": 9.75, "y": 3}, + {"matrix": [7, 4], "x": 10.75, "y": 3}, + {"matrix": [6, 5], "x": 11.75, "y": 3}, + {"matrix": [7, 5], "x": 12.75, "y": 3}, + {"matrix": [6, 6], "x": 13.75, "y": 3, "w": 1.25}, + {"matrix": [7, 7], "x": 15, "y": 3}, + {"matrix": [6, 8], "x": 18, "y": 3}, + + {"matrix": [8, 0], "x": 3, "y": 4}, + {"matrix": [8, 1], "x": 4, "y": 4, "w": 1.5}, + {"matrix": [8, 3], "x": 5.5, "y": 4, "w": 7}, + {"matrix": [8, 5], "x": 12.5, "y": 4, "w": 1.5}, + {"matrix": [8, 6], "x": 14, "y": 4} + ] + }, + "LAYOUT_fullbs_fullshift_iso_7u": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1.5, "y": 0}, + {"matrix": [0, 1], "x": 2.5, "y": 0}, + {"matrix": [1, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [1, 2], "x": 5.5, "y": 0}, + {"matrix": [0, 3], "x": 6.5, "y": 0}, + {"matrix": [1, 3], "x": 7.5, "y": 0}, + {"matrix": [0, 4], "x": 8.5, "y": 0}, + {"matrix": [1, 4], "x": 9.5, "y": 0}, + {"matrix": [0, 5], "x": 10.5, "y": 0}, + {"matrix": [1, 5], "x": 11.5, "y": 0}, + {"matrix": [0, 6], "x": 12.5, "y": 0}, + {"matrix": [1, 6], "x": 13.5, "y": 0}, + {"matrix": [1, 7], "x": 14.5, "y": 0, "w": 2}, + {"matrix": [0, 8], "x": 18, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1}, + {"matrix": [3, 0], "x": 1.5, "y": 1, "w": 1.5}, + {"matrix": [2, 1], "x": 3, "y": 1}, + {"matrix": [3, 1], "x": 4, "y": 1}, + {"matrix": [2, 2], "x": 5, "y": 1}, + {"matrix": [3, 2], "x": 6, "y": 1}, + {"matrix": [2, 3], "x": 7, "y": 1}, + {"matrix": [3, 3], "x": 8, "y": 1}, + {"matrix": [2, 4], "x": 9, "y": 1}, + {"matrix": [3, 4], "x": 10, "y": 1}, + {"matrix": [2, 5], "x": 11, "y": 1}, + {"matrix": [3, 5], "x": 12, "y": 1}, + {"matrix": [2, 6], "x": 13, "y": 1}, + {"matrix": [3, 6], "x": 14, "y": 1}, + {"matrix": [5, 7], "x": 15.25, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 8], "x": 18, "y": 1}, + + {"matrix": [4, 0], "x": 0, "y": 2}, + {"matrix": [5, 0], "x": 1.5, "y": 2, "w": 1.75}, + {"matrix": [4, 1], "x": 3.25, "y": 2}, + {"matrix": [5, 1], "x": 4.25, "y": 2}, + {"matrix": [4, 2], "x": 5.25, "y": 2}, + {"matrix": [5, 2], "x": 6.25, "y": 2}, + {"matrix": [4, 3], "x": 7.25, "y": 2}, + {"matrix": [5, 3], "x": 8.25, "y": 2}, + {"matrix": [4, 4], "x": 9.25, "y": 2}, + {"matrix": [5, 4], "x": 10.25, "y": 2}, + {"matrix": [4, 5], "x": 11.25, "y": 2}, + {"matrix": [5, 5], "x": 12.25, "y": 2}, + {"matrix": [4, 6], "x": 13.25, "y": 2}, + {"matrix": [5, 6], "x": 14.25, "y": 2}, + {"matrix": [4, 8], "x": 18, "y": 2}, + + {"matrix": [6, 0], "x": 0, "y": 3}, + {"matrix": [7, 0], "x": 2, "y": 3, "w": 1.75}, + {"matrix": [6, 1], "x": 3.75, "y": 3}, + {"matrix": [7, 1], "x": 4.75, "y": 3}, + {"matrix": [6, 2], "x": 5.75, "y": 3}, + {"matrix": [7, 2], "x": 6.75, "y": 3}, + {"matrix": [6, 3], "x": 7.75, "y": 3}, + {"matrix": [7, 3], "x": 8.75, "y": 3}, + {"matrix": [6, 4], "x": 9.75, "y": 3}, + {"matrix": [7, 4], "x": 10.75, "y": 3}, + {"matrix": [6, 5], "x": 11.75, "y": 3}, + {"matrix": [7, 5], "x": 12.75, "y": 3}, + {"matrix": [6, 6], "x": 13.75, "y": 3, "w": 2.25}, + {"matrix": [6, 8], "x": 18, "y": 3}, + + {"matrix": [8, 0], "x": 3, "y": 4}, + {"matrix": [8, 1], "x": 4, "y": 4, "w": 1.5}, + {"matrix": [8, 3], "x": 5.5, "y": 4, "w": 7}, + {"matrix": [8, 5], "x": 12.5, "y": 4, "w": 1.5}, + {"matrix": [8, 6], "x": 14, "y": 4} + ] + }, + "LAYOUT_fullbs_splitshift_iso_9u": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1.5, "y": 0}, + {"matrix": [0, 1], "x": 2.5, "y": 0}, + {"matrix": [1, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [1, 2], "x": 5.5, "y": 0}, + {"matrix": [0, 3], "x": 6.5, "y": 0}, + {"matrix": [1, 3], "x": 7.5, "y": 0}, + {"matrix": [0, 4], "x": 8.5, "y": 0}, + {"matrix": [1, 4], "x": 9.5, "y": 0}, + {"matrix": [0, 5], "x": 10.5, "y": 0}, + {"matrix": [1, 5], "x": 11.5, "y": 0}, + {"matrix": [0, 6], "x": 12.5, "y": 0}, + {"matrix": [1, 6], "x": 13.5, "y": 0}, + {"matrix": [1, 7], "x": 14.5, "y": 0, "w": 2}, + {"matrix": [0, 8], "x": 18, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1}, + {"matrix": [3, 0], "x": 1.5, "y": 1, "w": 1.5}, + {"matrix": [2, 1], "x": 3, "y": 1}, + {"matrix": [3, 1], "x": 4, "y": 1}, + {"matrix": [2, 2], "x": 5, "y": 1}, + {"matrix": [3, 2], "x": 6, "y": 1}, + {"matrix": [2, 3], "x": 7, "y": 1}, + {"matrix": [3, 3], "x": 8, "y": 1}, + {"matrix": [2, 4], "x": 9, "y": 1}, + {"matrix": [3, 4], "x": 10, "y": 1}, + {"matrix": [2, 5], "x": 11, "y": 1}, + {"matrix": [3, 5], "x": 12, "y": 1}, + {"matrix": [2, 6], "x": 13, "y": 1}, + {"matrix": [3, 6], "x": 14, "y": 1}, + {"matrix": [5, 7], "x": 15.25, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 8], "x": 18, "y": 1}, + + {"matrix": [4, 0], "x": 0, "y": 2}, + {"matrix": [5, 0], "x": 1.5, "y": 2, "w": 1.75}, + {"matrix": [4, 1], "x": 3.25, "y": 2}, + {"matrix": [5, 1], "x": 4.25, "y": 2}, + {"matrix": [4, 2], "x": 5.25, "y": 2}, + {"matrix": [5, 2], "x": 6.25, "y": 2}, + {"matrix": [4, 3], "x": 7.25, "y": 2}, + {"matrix": [5, 3], "x": 8.25, "y": 2}, + {"matrix": [4, 4], "x": 9.25, "y": 2}, + {"matrix": [5, 4], "x": 10.25, "y": 2}, + {"matrix": [4, 5], "x": 11.25, "y": 2}, + {"matrix": [5, 5], "x": 12.25, "y": 2}, + {"matrix": [4, 6], "x": 13.25, "y": 2}, + {"matrix": [5, 6], "x": 14.25, "y": 2}, + {"matrix": [4, 8], "x": 18, "y": 2}, + + {"matrix": [6, 0], "x": 0, "y": 3}, + {"matrix": [7, 0], "x": 2, "y": 3, "w": 1.75}, + {"matrix": [6, 1], "x": 3.75, "y": 3}, + {"matrix": [7, 1], "x": 4.75, "y": 3}, + {"matrix": [6, 2], "x": 5.75, "y": 3}, + {"matrix": [7, 2], "x": 6.75, "y": 3}, + {"matrix": [6, 3], "x": 7.75, "y": 3}, + {"matrix": [7, 3], "x": 8.75, "y": 3}, + {"matrix": [6, 4], "x": 9.75, "y": 3}, + {"matrix": [7, 4], "x": 10.75, "y": 3}, + {"matrix": [6, 5], "x": 11.75, "y": 3}, + {"matrix": [7, 5], "x": 12.75, "y": 3}, + {"matrix": [6, 6], "x": 13.75, "y": 3, "w": 1.25}, + {"matrix": [7, 7], "x": 15, "y": 3}, + {"matrix": [6, 8], "x": 18, "y": 3}, + + {"matrix": [8, 0], "x": 3, "y": 4, "w": 1.5}, + {"matrix": [8, 3], "x": 4.5, "y": 4, "w": 9}, + {"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_fullbs_fullshift_iso_9u": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1.5, "y": 0}, + {"matrix": [0, 1], "x": 2.5, "y": 0}, + {"matrix": [1, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [1, 2], "x": 5.5, "y": 0}, + {"matrix": [0, 3], "x": 6.5, "y": 0}, + {"matrix": [1, 3], "x": 7.5, "y": 0}, + {"matrix": [0, 4], "x": 8.5, "y": 0}, + {"matrix": [1, 4], "x": 9.5, "y": 0}, + {"matrix": [0, 5], "x": 10.5, "y": 0}, + {"matrix": [1, 5], "x": 11.5, "y": 0}, + {"matrix": [0, 6], "x": 12.5, "y": 0}, + {"matrix": [1, 6], "x": 13.5, "y": 0}, + {"matrix": [1, 7], "x": 14.5, "y": 0, "w": 2}, + {"matrix": [0, 8], "x": 18, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1}, + {"matrix": [3, 0], "x": 1.5, "y": 1, "w": 1.5}, + {"matrix": [2, 1], "x": 3, "y": 1}, + {"matrix": [3, 1], "x": 4, "y": 1}, + {"matrix": [2, 2], "x": 5, "y": 1}, + {"matrix": [3, 2], "x": 6, "y": 1}, + {"matrix": [2, 3], "x": 7, "y": 1}, + {"matrix": [3, 3], "x": 8, "y": 1}, + {"matrix": [2, 4], "x": 9, "y": 1}, + {"matrix": [3, 4], "x": 10, "y": 1}, + {"matrix": [2, 5], "x": 11, "y": 1}, + {"matrix": [3, 5], "x": 12, "y": 1}, + {"matrix": [2, 6], "x": 13, "y": 1}, + {"matrix": [3, 6], "x": 14, "y": 1}, + {"matrix": [5, 7], "x": 15.25, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 8], "x": 18, "y": 1}, + + {"matrix": [4, 0], "x": 0, "y": 2}, + {"matrix": [5, 0], "x": 1.5, "y": 2, "w": 1.75}, + {"matrix": [4, 1], "x": 3.25, "y": 2}, + {"matrix": [5, 1], "x": 4.25, "y": 2}, + {"matrix": [4, 2], "x": 5.25, "y": 2}, + {"matrix": [5, 2], "x": 6.25, "y": 2}, + {"matrix": [4, 3], "x": 7.25, "y": 2}, + {"matrix": [5, 3], "x": 8.25, "y": 2}, + {"matrix": [4, 4], "x": 9.25, "y": 2}, + {"matrix": [5, 4], "x": 10.25, "y": 2}, + {"matrix": [4, 5], "x": 11.25, "y": 2}, + {"matrix": [5, 5], "x": 12.25, "y": 2}, + {"matrix": [4, 6], "x": 13.25, "y": 2}, + {"matrix": [5, 6], "x": 14.25, "y": 2}, + {"matrix": [4, 8], "x": 18, "y": 2}, + + {"matrix": [6, 0], "x": 0, "y": 3}, + {"matrix": [7, 0], "x": 2, "y": 3, "w": 1.75}, + {"matrix": [6, 1], "x": 3.75, "y": 3}, + {"matrix": [7, 1], "x": 4.75, "y": 3}, + {"matrix": [6, 2], "x": 5.75, "y": 3}, + {"matrix": [7, 2], "x": 6.75, "y": 3}, + {"matrix": [6, 3], "x": 7.75, "y": 3}, + {"matrix": [7, 3], "x": 8.75, "y": 3}, + {"matrix": [6, 4], "x": 9.75, "y": 3}, + {"matrix": [7, 4], "x": 10.75, "y": 3}, + {"matrix": [6, 5], "x": 11.75, "y": 3}, + {"matrix": [7, 5], "x": 12.75, "y": 3}, + {"matrix": [6, 6], "x": 13.75, "y": 3, "w": 2.25}, + {"matrix": [6, 8], "x": 18, "y": 3}, + + {"matrix": [8, 0], "x": 3, "y": 4, "w": 1.5}, + {"matrix": [8, 3], "x": 4.5, "y": 4, "w": 9}, + {"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_fullbs_splitshift_iso_10u": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1.5, "y": 0}, + {"matrix": [0, 1], "x": 2.5, "y": 0}, + {"matrix": [1, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [1, 2], "x": 5.5, "y": 0}, + {"matrix": [0, 3], "x": 6.5, "y": 0}, + {"matrix": [1, 3], "x": 7.5, "y": 0}, + {"matrix": [0, 4], "x": 8.5, "y": 0}, + {"matrix": [1, 4], "x": 9.5, "y": 0}, + {"matrix": [0, 5], "x": 10.5, "y": 0}, + {"matrix": [1, 5], "x": 11.5, "y": 0}, + {"matrix": [0, 6], "x": 12.5, "y": 0}, + {"matrix": [1, 6], "x": 13.5, "y": 0}, + {"matrix": [1, 7], "x": 14.5, "y": 0, "w": 2}, + {"matrix": [0, 8], "x": 18, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1}, + {"matrix": [3, 0], "x": 1.5, "y": 1, "w": 1.5}, + {"matrix": [2, 1], "x": 3, "y": 1}, + {"matrix": [3, 1], "x": 4, "y": 1}, + {"matrix": [2, 2], "x": 5, "y": 1}, + {"matrix": [3, 2], "x": 6, "y": 1}, + {"matrix": [2, 3], "x": 7, "y": 1}, + {"matrix": [3, 3], "x": 8, "y": 1}, + {"matrix": [2, 4], "x": 9, "y": 1}, + {"matrix": [3, 4], "x": 10, "y": 1}, + {"matrix": [2, 5], "x": 11, "y": 1}, + {"matrix": [3, 5], "x": 12, "y": 1}, + {"matrix": [2, 6], "x": 13, "y": 1}, + {"matrix": [3, 6], "x": 14, "y": 1}, + {"matrix": [5, 7], "x": 15.25, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 8], "x": 18, "y": 1}, + + {"matrix": [4, 0], "x": 0, "y": 2}, + {"matrix": [5, 0], "x": 1.5, "y": 2, "w": 1.75}, + {"matrix": [4, 1], "x": 3.25, "y": 2}, + {"matrix": [5, 1], "x": 4.25, "y": 2}, + {"matrix": [4, 2], "x": 5.25, "y": 2}, + {"matrix": [5, 2], "x": 6.25, "y": 2}, + {"matrix": [4, 3], "x": 7.25, "y": 2}, + {"matrix": [5, 3], "x": 8.25, "y": 2}, + {"matrix": [4, 4], "x": 9.25, "y": 2}, + {"matrix": [5, 4], "x": 10.25, "y": 2}, + {"matrix": [4, 5], "x": 11.25, "y": 2}, + {"matrix": [5, 5], "x": 12.25, "y": 2}, + {"matrix": [4, 6], "x": 13.25, "y": 2}, + {"matrix": [5, 6], "x": 14.25, "y": 2}, + {"matrix": [4, 8], "x": 18, "y": 2}, + + {"matrix": [6, 0], "x": 0, "y": 3}, + {"matrix": [7, 0], "x": 2, "y": 3, "w": 1.75}, + {"matrix": [6, 1], "x": 3.75, "y": 3}, + {"matrix": [7, 1], "x": 4.75, "y": 3}, + {"matrix": [6, 2], "x": 5.75, "y": 3}, + {"matrix": [7, 2], "x": 6.75, "y": 3}, + {"matrix": [6, 3], "x": 7.75, "y": 3}, + {"matrix": [7, 3], "x": 8.75, "y": 3}, + {"matrix": [6, 4], "x": 9.75, "y": 3}, + {"matrix": [7, 4], "x": 10.75, "y": 3}, + {"matrix": [6, 5], "x": 11.75, "y": 3}, + {"matrix": [7, 5], "x": 12.75, "y": 3}, + {"matrix": [6, 6], "x": 13.75, "y": 3, "w": 1.25}, + {"matrix": [7, 7], "x": 15, "y": 3}, + {"matrix": [6, 8], "x": 18, "y": 3}, + + {"matrix": [8, 0], "x": 3, "y": 4}, + {"matrix": [8, 3], "x": 4, "y": 4, "w": 10}, + {"matrix": [8, 6], "x": 14, "y": 4} + ] + }, + "LAYOUT_fullbs_fullshift_iso_10u": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1.5, "y": 0}, + {"matrix": [0, 1], "x": 2.5, "y": 0}, + {"matrix": [1, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [1, 2], "x": 5.5, "y": 0}, + {"matrix": [0, 3], "x": 6.5, "y": 0}, + {"matrix": [1, 3], "x": 7.5, "y": 0}, + {"matrix": [0, 4], "x": 8.5, "y": 0}, + {"matrix": [1, 4], "x": 9.5, "y": 0}, + {"matrix": [0, 5], "x": 10.5, "y": 0}, + {"matrix": [1, 5], "x": 11.5, "y": 0}, + {"matrix": [0, 6], "x": 12.5, "y": 0}, + {"matrix": [1, 6], "x": 13.5, "y": 0}, + {"matrix": [1, 7], "x": 14.5, "y": 0, "w": 2}, + {"matrix": [0, 8], "x": 18, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1}, + {"matrix": [3, 0], "x": 1.5, "y": 1, "w": 1.5}, + {"matrix": [2, 1], "x": 3, "y": 1}, + {"matrix": [3, 1], "x": 4, "y": 1}, + {"matrix": [2, 2], "x": 5, "y": 1}, + {"matrix": [3, 2], "x": 6, "y": 1}, + {"matrix": [2, 3], "x": 7, "y": 1}, + {"matrix": [3, 3], "x": 8, "y": 1}, + {"matrix": [2, 4], "x": 9, "y": 1}, + {"matrix": [3, 4], "x": 10, "y": 1}, + {"matrix": [2, 5], "x": 11, "y": 1}, + {"matrix": [3, 5], "x": 12, "y": 1}, + {"matrix": [2, 6], "x": 13, "y": 1}, + {"matrix": [3, 6], "x": 14, "y": 1}, + {"matrix": [5, 7], "x": 15.25, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 8], "x": 18, "y": 1}, + + {"matrix": [4, 0], "x": 0, "y": 2}, + {"matrix": [5, 0], "x": 1.5, "y": 2, "w": 1.75}, + {"matrix": [4, 1], "x": 3.25, "y": 2}, + {"matrix": [5, 1], "x": 4.25, "y": 2}, + {"matrix": [4, 2], "x": 5.25, "y": 2}, + {"matrix": [5, 2], "x": 6.25, "y": 2}, + {"matrix": [4, 3], "x": 7.25, "y": 2}, + {"matrix": [5, 3], "x": 8.25, "y": 2}, + {"matrix": [4, 4], "x": 9.25, "y": 2}, + {"matrix": [5, 4], "x": 10.25, "y": 2}, + {"matrix": [4, 5], "x": 11.25, "y": 2}, + {"matrix": [5, 5], "x": 12.25, "y": 2}, + {"matrix": [4, 6], "x": 13.25, "y": 2}, + {"matrix": [5, 6], "x": 14.25, "y": 2}, + {"matrix": [4, 8], "x": 18, "y": 2}, + + {"matrix": [6, 0], "x": 0, "y": 3}, + {"matrix": [7, 0], "x": 2, "y": 3, "w": 1.75}, + {"matrix": [6, 1], "x": 3.75, "y": 3}, + {"matrix": [7, 1], "x": 4.75, "y": 3}, + {"matrix": [6, 2], "x": 5.75, "y": 3}, + {"matrix": [7, 2], "x": 6.75, "y": 3}, + {"matrix": [6, 3], "x": 7.75, "y": 3}, + {"matrix": [7, 3], "x": 8.75, "y": 3}, + {"matrix": [6, 4], "x": 9.75, "y": 3}, + {"matrix": [7, 4], "x": 10.75, "y": 3}, + {"matrix": [6, 5], "x": 11.75, "y": 3}, + {"matrix": [7, 5], "x": 12.75, "y": 3}, + {"matrix": [6, 6], "x": 13.75, "y": 3, "w": 2.25}, + {"matrix": [6, 8], "x": 18, "y": 3}, + + {"matrix": [8, 0], "x": 3, "y": 4}, + {"matrix": [8, 3], "x": 4, "y": 4, "w": 10}, + {"matrix": [8, 6], "x": 14, "y": 4} + ] + } + } +} diff --git a/keyboards/viktus/vkr94/keymaps/default/keymap.c b/keyboards/viktus/vkr94/keymaps/default/keymap.c new file mode 100644 index 00000000000..8c266deb773 --- /dev/null +++ b/keyboards/viktus/vkr94/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2025 BlindAssassin111 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_splitbs_splitshift_ansi_7u( + KC_F1, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_DEL, + KC_F2, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_HOME, + KC_F3, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_F4, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_PGDN, + KC_LCTL, KC_LALT, LT(1,KC_SPC), KC_RALT, KC_RCTL + ), + + [1] = LAYOUT_splitbs_splitshift_ansi_7u( + QK_BOOT, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_RGHT, KC_DOWN, KC_LEFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/viktus/vkr94/readme.md b/keyboards/viktus/vkr94/readme.md new file mode 100644 index 00000000000..9a6f4d228c0 --- /dev/null +++ b/keyboards/viktus/vkr94/readme.md @@ -0,0 +1,27 @@ +# Viktus VKR 94 + +![viktus/vkr94](https://i.imgur.com/ahJVciu.png) + +A small run vintage-esque design with RGB indicators. + +* Keyboard Maintainer: [BlindAssassin111](https://github.com/blindassassin111) +* Hardware Supported: VKR 94 PCBs +* Hardware Availability: BlindAssassin111 + +Make example for this keyboard (after setting up your build environment): + + make viktus/vkr94:default + +Flashing example for this keyboard: + + make viktus/vkr94:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From abea50c26e2bb26977146a1431e458a73bea7f39 Mon Sep 17 00:00:00 2001 From: adophoxia <100170946+adophoxia@users.noreply.github.com> Date: Sat, 1 Mar 2025 16:48:59 -0800 Subject: [PATCH 248/365] Add Keychron C1 Pro V2 (#24899) * Add C1 Pro V2 * Remove default values for f401xC generic board definition * Update clang and copyright years * Add version description --- .../c1_pro_v2/ansi/non_light/keyboard.json | 7 + .../ansi/non_light/keymaps/default/keymap.c | 64 +++++++++ .../keychron/c1_pro_v2/ansi/rgb/config.h | 24 ++++ .../keychron/c1_pro_v2/ansi/rgb/keyboard.json | 131 ++++++++++++++++++ .../ansi/rgb/keymaps/default/keymap.c | 65 +++++++++ keyboards/keychron/c1_pro_v2/ansi/rgb/rgb.c | 124 +++++++++++++++++ .../keychron/c1_pro_v2/ansi/white/config.h | 25 ++++ .../c1_pro_v2/ansi/white/keyboard.json | 122 ++++++++++++++++ .../ansi/white/keymaps/default/keymap.c | 65 +++++++++ .../keychron/c1_pro_v2/ansi/white/white.c | 121 ++++++++++++++++ keyboards/keychron/c1_pro_v2/c1_pro_v2.c | 104 ++++++++++++++ keyboards/keychron/c1_pro_v2/config.h | 29 ++++ keyboards/keychron/c1_pro_v2/halconf.h | 21 +++ keyboards/keychron/c1_pro_v2/info.json | 131 ++++++++++++++++++ keyboards/keychron/c1_pro_v2/mcuconf.h | 28 ++++ keyboards/keychron/c1_pro_v2/readme.md | 32 +++++ 16 files changed, 1093 insertions(+) create mode 100644 keyboards/keychron/c1_pro_v2/ansi/non_light/keyboard.json create mode 100644 keyboards/keychron/c1_pro_v2/ansi/non_light/keymaps/default/keymap.c create mode 100644 keyboards/keychron/c1_pro_v2/ansi/rgb/config.h create mode 100644 keyboards/keychron/c1_pro_v2/ansi/rgb/keyboard.json create mode 100644 keyboards/keychron/c1_pro_v2/ansi/rgb/keymaps/default/keymap.c create mode 100644 keyboards/keychron/c1_pro_v2/ansi/rgb/rgb.c create mode 100644 keyboards/keychron/c1_pro_v2/ansi/white/config.h create mode 100644 keyboards/keychron/c1_pro_v2/ansi/white/keyboard.json create mode 100644 keyboards/keychron/c1_pro_v2/ansi/white/keymaps/default/keymap.c create mode 100644 keyboards/keychron/c1_pro_v2/ansi/white/white.c create mode 100644 keyboards/keychron/c1_pro_v2/c1_pro_v2.c create mode 100644 keyboards/keychron/c1_pro_v2/config.h create mode 100644 keyboards/keychron/c1_pro_v2/halconf.h create mode 100644 keyboards/keychron/c1_pro_v2/info.json create mode 100644 keyboards/keychron/c1_pro_v2/mcuconf.h create mode 100644 keyboards/keychron/c1_pro_v2/readme.md diff --git a/keyboards/keychron/c1_pro_v2/ansi/non_light/keyboard.json b/keyboards/keychron/c1_pro_v2/ansi/non_light/keyboard.json new file mode 100644 index 00000000000..07a0688e0a4 --- /dev/null +++ b/keyboards/keychron/c1_pro_v2/ansi/non_light/keyboard.json @@ -0,0 +1,7 @@ +{ + "keyboards_name": "Keychron C1 Pro V2 Non-Light", + "usb": { + "pid": "0x051C", + "device_version": "1.0.0" + } +} diff --git a/keyboards/keychron/c1_pro_v2/ansi/non_light/keymaps/default/keymap.c b/keyboards/keychron/c1_pro_v2/ansi/non_light/keymaps/default/keymap.c new file mode 100644 index 00000000000..3c24214b9c0 --- /dev/null +++ b/keyboards/keychron/c1_pro_v2/ansi/non_light/keymaps/default/keymap.c @@ -0,0 +1,64 @@ +/* Copyright 2025 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN, +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_tkl_ansi( + KC_ESC, KC_BRID, KC_BRIU, _______, _______, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, KC_SLEP, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_tkl_ansi( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT_tkl_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_NO, KC_SLEP, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_tkl_ansi( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; + +// clang-format on diff --git a/keyboards/keychron/c1_pro_v2/ansi/rgb/config.h b/keyboards/keychron/c1_pro_v2/ansi/rgb/config.h new file mode 100644 index 00000000000..739eb788fd5 --- /dev/null +++ b/keyboards/keychron/c1_pro_v2/ansi/rgb/config.h @@ -0,0 +1,24 @@ +/* Copyright 2025 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* RGB Matrix Driver Configuration */ +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND + +/* Set LED driver current */ +#define SNLED27351_CURRENT_TUNE { 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28 } diff --git a/keyboards/keychron/c1_pro_v2/ansi/rgb/keyboard.json b/keyboards/keychron/c1_pro_v2/ansi/rgb/keyboard.json new file mode 100644 index 00000000000..e1aca75ea59 --- /dev/null +++ b/keyboards/keychron/c1_pro_v2/ansi/rgb/keyboard.json @@ -0,0 +1,131 @@ +{ + "keyboard_name": "Keychron C1 Pro V2 RGB", + "features": { + "rgb_matrix": true + }, + "rgb_matrix": { + "animations": { + "band_spiral_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "jellybean_raindrops": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_simple": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "driver": "snled27351", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 26, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 39, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 52, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 65, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 85, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 98, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 111, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 124, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 156, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 182, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 224, "y": 0, "flags": 1}, + + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 176, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1}, + {"matrix": [1, 16], "x": 224, "y": 15, "flags": 1}, + + {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, + {"matrix": [2, 1], "x": 20, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 33, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 46, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 59, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 72, "y": 27, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 98, "y": 27, "flags": 4}, + {"matrix": [2, 8], "x": 111, "y": 27, "flags": 4}, + {"matrix": [2, 9], "x": 124, "y": 27, "flags": 4}, + {"matrix": [2, 10], "x": 137, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 150, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 163, "y": 27, "flags": 4}, + {"matrix": [2, 13], "x": 179, "y": 27, "flags": 1}, + {"matrix": [2, 14], "x": 198, "y": 27, "flags": 1}, + {"matrix": [2, 15], "x": 211, "y": 27, "flags": 1}, + {"matrix": [2, 16], "x": 224, "y": 27, "flags": 1}, + + {"matrix": [3, 0], "x": 5, "y": 39, "flags": 8}, + {"matrix": [3, 1], "x": 23, "y": 39, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 39, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 39, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 39, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 39, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 39, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 39, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 39, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 39, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 39, "flags": 4}, + {"matrix": [3, 11], "x": 153, "y": 39, "flags": 4}, + {"matrix": [3, 13], "x": 174, "y": 39, "flags": 1}, + + {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 82, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 95, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 108, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 121, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 134, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 147, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 171, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1}, + + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 132, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 148, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 165, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 181, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 224, "y": 64, "flags": 1} + ], + "sleep": true + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x0516" + } +} diff --git a/keyboards/keychron/c1_pro_v2/ansi/rgb/keymaps/default/keymap.c b/keyboards/keychron/c1_pro_v2/ansi/rgb/keymaps/default/keymap.c new file mode 100644 index 00000000000..e775db45d19 --- /dev/null +++ b/keyboards/keychron/c1_pro_v2/ansi/rgb/keymaps/default/keymap.c @@ -0,0 +1,65 @@ +/* Copyright 2025 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_tkl_ansi( + KC_ESC, KC_BRID, KC_BRIU, _______, _______, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RM_NEXT, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_tkl_ansi( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RM_TOGG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT_tkl_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_NO, RM_NEXT, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_tkl_ansi( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_TOGG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; + +// clang-format on diff --git a/keyboards/keychron/c1_pro_v2/ansi/rgb/rgb.c b/keyboards/keychron/c1_pro_v2/ansi/rgb/rgb.c new file mode 100644 index 00000000000..8c5b45583af --- /dev/null +++ b/keyboards/keychron/c1_pro_v2/ansi/rgb/rgb.c @@ -0,0 +1,124 @@ +/* Copyright 2025 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE + +// clang-format off +const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, CB9_CA1, CB7_CA1, CB8_CA1}, + {0, CB9_CA2, CB7_CA2, CB8_CA2}, + {0, CB9_CA3, CB7_CA3, CB8_CA3}, + {0, CB9_CA4, CB7_CA4, CB8_CA4}, + {0, CB9_CA5, CB7_CA5, CB8_CA5}, + {0, CB9_CA6, CB7_CA6, CB8_CA6}, + {0, CB9_CA7, CB7_CA7, CB8_CA7}, + {0, CB9_CA8, CB7_CA8, CB8_CA8}, + {0, CB9_CA9, CB7_CA9, CB8_CA9}, + {0, CB9_CA10, CB7_CA10, CB8_CA10}, + {0, CB9_CA11, CB7_CA11, CB8_CA11}, + {0, CB9_CA12, CB7_CA12, CB8_CA12}, + {0, CB9_CA13, CB7_CA13, CB8_CA13}, + {0, CB9_CA15, CB7_CA15, CB8_CA15}, + {0, CB9_CA16, CB7_CA16, CB8_CA16}, + {0, CB12_CA5, CB10_CA5, CB11_CA5}, + + {0, CB3_CA1, CB1_CA1, CB2_CA1}, + {0, CB3_CA2, CB1_CA2, CB2_CA2}, + {0, CB3_CA3, CB1_CA3, CB2_CA3}, + {0, CB3_CA4, CB1_CA4, CB2_CA4}, + {0, CB3_CA5, CB1_CA5, CB2_CA5}, + {0, CB3_CA6, CB1_CA6, CB2_CA6}, + {0, CB3_CA7, CB1_CA7, CB2_CA7}, + {0, CB3_CA8, CB1_CA8, CB2_CA8}, + {0, CB3_CA9, CB1_CA9, CB2_CA9}, + {0, CB3_CA10, CB1_CA10, CB2_CA10}, + {0, CB3_CA11, CB1_CA11, CB2_CA11}, + {0, CB3_CA12, CB1_CA12, CB2_CA12}, + {0, CB3_CA13, CB1_CA13, CB2_CA13}, + {0, CB3_CA14, CB1_CA14, CB2_CA14}, + {0, CB3_CA15, CB1_CA15, CB2_CA15}, + {0, CB3_CA16, CB1_CA16, CB2_CA16}, + {0, CB12_CA9, CB10_CA9, CB11_CA9}, + + {0, CB6_CA1, CB4_CA1, CB5_CA1}, + {0, CB6_CA2, CB4_CA2, CB5_CA2}, + {0, CB6_CA3, CB4_CA3, CB5_CA3}, + {0, CB6_CA4, CB4_CA4, CB5_CA4}, + {0, CB6_CA5, CB4_CA5, CB5_CA5}, + {0, CB6_CA6, CB4_CA6, CB5_CA6}, + {0, CB6_CA7, CB4_CA7, CB5_CA7}, + {0, CB6_CA8, CB4_CA8, CB5_CA8}, + {0, CB6_CA9, CB4_CA9, CB5_CA9}, + {0, CB6_CA10, CB4_CA10, CB5_CA10}, + {0, CB6_CA11, CB4_CA11, CB5_CA11}, + {0, CB6_CA12, CB4_CA12, CB5_CA12}, + {0, CB6_CA13, CB4_CA13, CB5_CA13}, + {0, CB6_CA14, CB4_CA14, CB5_CA14}, + {0, CB6_CA15, CB4_CA15, CB5_CA15}, + {0, CB6_CA16, CB4_CA16, CB5_CA16}, + {0, CB12_CA14, CB10_CA14, CB11_CA14}, + + {1, CB3_CA16, CB1_CA16, CB2_CA16}, + {1, CB3_CA15, CB1_CA15, CB2_CA15}, + {1, CB3_CA14, CB1_CA14, CB2_CA14}, + {1, CB3_CA13, CB1_CA13, CB2_CA13}, + {1, CB3_CA12, CB1_CA12, CB2_CA12}, + {1, CB3_CA11, CB1_CA11, CB2_CA11}, + {1, CB3_CA10, CB1_CA10, CB2_CA10}, + {1, CB3_CA9, CB1_CA9, CB2_CA9}, + {1, CB3_CA8, CB1_CA8, CB2_CA8}, + {1, CB3_CA7, CB1_CA7, CB2_CA7}, + {1, CB3_CA6, CB1_CA6, CB2_CA6}, + {1, CB3_CA5, CB1_CA5, CB2_CA5}, + {1, CB3_CA3, CB1_CA3, CB2_CA3}, + + {1, CB9_CA16, CB7_CA16, CB8_CA16}, + {1, CB9_CA14, CB7_CA14, CB8_CA14}, + {1, CB9_CA13, CB7_CA13, CB8_CA13}, + {1, CB9_CA12, CB7_CA12, CB8_CA12}, + {1, CB9_CA11, CB7_CA11, CB8_CA11}, + {1, CB9_CA10, CB7_CA10, CB8_CA10}, + {1, CB9_CA9, CB7_CA9, CB8_CA9}, + {1, CB9_CA8, CB7_CA8, CB8_CA8}, + {1, CB9_CA7, CB7_CA7, CB8_CA7}, + {1, CB9_CA6, CB7_CA6, CB8_CA6}, + {1, CB9_CA5, CB7_CA5, CB8_CA5}, + {1, CB9_CA3, CB7_CA3, CB8_CA3}, + {1, CB9_CA1, CB7_CA1, CB8_CA1}, + + {1, CB6_CA16, CB4_CA16, CB5_CA16}, + {1, CB6_CA15, CB4_CA15, CB5_CA15}, + {1, CB6_CA14, CB4_CA14, CB5_CA14}, + {1, CB6_CA10, CB4_CA10, CB5_CA10}, + {1, CB6_CA6, CB4_CA6, CB5_CA6}, + {1, CB6_CA5, CB4_CA5, CB5_CA5}, + {1, CB6_CA4, CB4_CA4, CB5_CA4}, + {1, CB6_CA3, CB4_CA3, CB5_CA3}, + {1, CB6_CA2, CB4_CA2, CB5_CA2}, + {1, CB6_CA1, CB4_CA1, CB5_CA1}, + {1, CB12_CA10, CB10_CA10, CB11_CA10}, +}; +#endif // RGB_MATRIX_ENABLE + +// clang-format on diff --git a/keyboards/keychron/c1_pro_v2/ansi/white/config.h b/keyboards/keychron/c1_pro_v2/ansi/white/config.h new file mode 100644 index 00000000000..4fdbf33656e --- /dev/null +++ b/keyboards/keychron/c1_pro_v2/ansi/white/config.h @@ -0,0 +1,25 @@ +/* Copyright 2025 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* LED Matrix Driver Configuration */ +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND + +/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */ +#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL + +#define SNLED27351_CURRENT_TUNE { 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60 } diff --git a/keyboards/keychron/c1_pro_v2/ansi/white/keyboard.json b/keyboards/keychron/c1_pro_v2/ansi/white/keyboard.json new file mode 100644 index 00000000000..cd29952e624 --- /dev/null +++ b/keyboards/keychron/c1_pro_v2/ansi/white/keyboard.json @@ -0,0 +1,122 @@ +{ + "features": { + "led_matrix": true + }, + "led_matrix": { + "animations": { + "band_pinwheel": true, + "band_spiral": true, + "breathing": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_up_down": true, + "dual_beacon": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_simple": true, + "solid_splash": true, + "wave_left_right": true, + "wave_up_down": true + }, + "driver": "snled27351", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 26, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 39, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 52, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 65, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 85, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 98, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 111, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 124, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 156, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 182, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 224, "y": 0, "flags": 1}, + + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 176, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1}, + {"matrix": [1, 16], "x": 224, "y": 15, "flags": 1}, + + {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, + {"matrix": [2, 1], "x": 20, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 33, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 46, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 59, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 72, "y": 27, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 98, "y": 27, "flags": 4}, + {"matrix": [2, 8], "x": 111, "y": 27, "flags": 4}, + {"matrix": [2, 9], "x": 124, "y": 27, "flags": 4}, + {"matrix": [2, 10], "x": 137, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 150, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 163, "y": 27, "flags": 4}, + {"matrix": [2, 13], "x": 179, "y": 27, "flags": 1}, + {"matrix": [2, 14], "x": 198, "y": 27, "flags": 1}, + {"matrix": [2, 15], "x": 211, "y": 27, "flags": 1}, + {"matrix": [2, 16], "x": 224, "y": 27, "flags": 1}, + + {"matrix": [3, 0], "x": 5, "y": 39, "flags": 8}, + {"matrix": [3, 1], "x": 23, "y": 39, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 39, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 39, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 39, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 39, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 39, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 39, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 39, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 39, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 39, "flags": 4}, + {"matrix": [3, 11], "x": 153, "y": 39, "flags": 4}, + {"matrix": [3, 13], "x": 174, "y": 39, "flags": 1}, + + {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 82, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 95, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 108, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 121, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 134, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 147, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 171, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1}, + + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 132, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 148, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 165, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 181, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 224, "y": 64, "flags": 1} + ], + "sleep": true + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x0519" + } +} diff --git a/keyboards/keychron/c1_pro_v2/ansi/white/keymaps/default/keymap.c b/keyboards/keychron/c1_pro_v2/ansi/white/keymaps/default/keymap.c new file mode 100644 index 00000000000..af1c54d738e --- /dev/null +++ b/keyboards/keychron/c1_pro_v2/ansi/white/keymaps/default/keymap.c @@ -0,0 +1,65 @@ +/* Copyright 2025 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_tkl_ansi( + KC_ESC, KC_BRID, KC_BRIU, _______, _______, LM_BRID, LM_BRIU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, LM_NEXT, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_FN] = LAYOUT_tkl_ansi( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, LM_TOGG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + LM_TOGG, LM_NEXT, LM_BRIU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, LM_BRID, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [WIN_BASE] = LAYOUT_tkl_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, _______, LM_NEXT, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_FN] = LAYOUT_tkl_ansi( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, LM_BRID, LM_BRIU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, LM_TOGG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + LM_TOGG, LM_NEXT, LM_BRIU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, LM_BRID, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; + +// clang-format on diff --git a/keyboards/keychron/c1_pro_v2/ansi/white/white.c b/keyboards/keychron/c1_pro_v2/ansi/white/white.c new file mode 100644 index 00000000000..36fa6bf1d10 --- /dev/null +++ b/keyboards/keychron/c1_pro_v2/ansi/white/white.c @@ -0,0 +1,121 @@ +/* Copyright 2025 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef LED_MATRIX_ENABLE +// clang-format off +const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations + * driver + * | LED address + * | | */ + {0, CB1_CA16}, + {0, CB1_CA15}, + {0, CB1_CA14}, + {0, CB1_CA13}, + {0, CB1_CA12}, + {0, CB1_CA11}, + {0, CB1_CA10}, + {0, CB1_CA9 }, + {0, CB1_CA8 }, + {0, CB1_CA7 }, + {0, CB1_CA6 }, + {0, CB1_CA5 }, + {0, CB1_CA4 }, + {0, CB1_CA2 }, + {0, CB1_CA1 }, + {0, CB7_CA1 }, + + {0, CB2_CA16}, + {0, CB2_CA15}, + {0, CB2_CA14}, + {0, CB2_CA13}, + {0, CB2_CA12}, + {0, CB2_CA11}, + {0, CB2_CA10}, + {0, CB2_CA9 }, + {0, CB2_CA8 }, + {0, CB2_CA7 }, + {0, CB2_CA6 }, + {0, CB2_CA5 }, + {0, CB2_CA4 }, + {0, CB2_CA3 }, + {0, CB2_CA2 }, + {0, CB2_CA1 }, + {0, CB8_CA1 }, + + {0, CB3_CA16}, + {0, CB3_CA15}, + {0, CB3_CA14}, + {0, CB3_CA13}, + {0, CB3_CA12}, + {0, CB3_CA11}, + {0, CB3_CA10}, + {0, CB3_CA9 }, + {0, CB3_CA8 }, + {0, CB3_CA7 }, + {0, CB3_CA6 }, + {0, CB3_CA5 }, + {0, CB3_CA4 }, + {0, CB3_CA3 }, + {0, CB3_CA2 }, + {0, CB3_CA1 }, + {0, CB7_CA6 }, + + {0, CB4_CA16}, + {0, CB4_CA15}, + {0, CB4_CA14}, + {0, CB4_CA13}, + {0, CB4_CA12}, + {0, CB4_CA11}, + {0, CB4_CA10}, + {0, CB4_CA9 }, + {0, CB4_CA8 }, + {0, CB4_CA7 }, + {0, CB4_CA6 }, + {0, CB4_CA5 }, + {0, CB4_CA3 }, + + {0, CB5_CA16}, + {0, CB5_CA14}, + {0, CB5_CA13}, + {0, CB5_CA12}, + {0, CB5_CA11}, + {0, CB5_CA10}, + {0, CB5_CA9 }, + {0, CB5_CA8 }, + {0, CB5_CA7 }, + {0, CB5_CA6 }, + {0, CB5_CA5 }, + {0, CB5_CA3 }, + {0, CB5_CA1 }, + + {0, CB6_CA16}, + {0, CB6_CA15}, + {0, CB6_CA14}, + {0, CB6_CA10}, + {0, CB6_CA6 }, + {0, CB6_CA5 }, + {0, CB6_CA4 }, + {0, CB6_CA3 }, + {0, CB6_CA2 }, + {0, CB6_CA1 }, + {0, CB7_CA13}, +}; +#endif + +// clang-fomat on diff --git a/keyboards/keychron/c1_pro_v2/c1_pro_v2.c b/keyboards/keychron/c1_pro_v2/c1_pro_v2.c new file mode 100644 index 00000000000..d4ff5eb9dc8 --- /dev/null +++ b/keyboards/keychron/c1_pro_v2/c1_pro_v2.c @@ -0,0 +1,104 @@ +/* Copyright 2025 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef DIP_SWITCH_ENABLE +bool dip_switch_update_kb(uint8_t index, bool active) { + if (!dip_switch_update_user(index, active)) { + return false; + } + if (index == 0) { + default_layer_set(1UL << (active ? 0 : 2)); + } + 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 QK_RGB_MATRIX_TOGGLE: + 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; + } + } + if (!rgb_matrix_is_enabled()) { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable(); + } + return false; +#endif +#ifdef LED_MATRIX_ENABLE + case QK_LED_MATRIX_TOGGLE: + if (record->event.pressed) { + switch (led_matrix_get_flags()) { + case LED_FLAG_ALL: { + led_matrix_set_flags(LED_FLAG_NONE); + led_matrix_set_value_all(0); + } break; + default: { + led_matrix_set_flags(LED_FLAG_ALL); + } break; + } + } + if (!led_matrix_is_enabled()) { + led_matrix_set_flags(LED_FLAG_ALL); + led_matrix_enable(); + } + return false; +#endif + default: + return true; + } +} + +void keyboard_post_init_kb(void) { + gpio_set_pin_output_push_pull(LED_MAC_OS_PIN); + gpio_set_pin_output_push_pull(LED_WIN_OS_PIN); + gpio_write_pin(LED_MAC_OS_PIN, !LED_OS_PIN_ON_STATE); + gpio_write_pin(LED_WIN_OS_PIN, !LED_OS_PIN_ON_STATE); + + keyboard_post_init_user(); +} + +void housekeeping_task_kb(void) { + if (default_layer_state == (1U << 0)) { + gpio_write_pin(LED_MAC_OS_PIN, LED_OS_PIN_ON_STATE); + gpio_write_pin(LED_WIN_OS_PIN, !LED_OS_PIN_ON_STATE); + } + if (default_layer_state == (1U << 2)) { + gpio_write_pin(LED_MAC_OS_PIN, !LED_OS_PIN_ON_STATE); + gpio_write_pin(LED_WIN_OS_PIN, LED_OS_PIN_ON_STATE); + } +} + +void suspend_power_down_kb(void) { + gpio_write_pin(LED_WIN_OS_PIN, !LED_OS_PIN_ON_STATE); + gpio_write_pin(LED_MAC_OS_PIN, !LED_OS_PIN_ON_STATE); + + suspend_power_down_user(); +} diff --git a/keyboards/keychron/c1_pro_v2/config.h b/keyboards/keychron/c1_pro_v2/config.h new file mode 100644 index 00000000000..eb8ee47a96f --- /dev/null +++ b/keyboards/keychron/c1_pro_v2/config.h @@ -0,0 +1,29 @@ +/* Copyright 2025 @ Keychron(https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* DIP switch */ +#define DIP_SWITCH_PINS { D2 } + +/* Increase I2C speed to 1000 KHz */ +#define I2C1_CLOCK_SPEED 400000 +#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 + +/* System indication led */ +#define LED_MAC_OS_PIN C10 +#define LED_WIN_OS_PIN C11 +#define LED_OS_PIN_ON_STATE 1 diff --git a/keyboards/keychron/c1_pro_v2/halconf.h b/keyboards/keychron/c1_pro_v2/halconf.h new file mode 100644 index 00000000000..d0a99336370 --- /dev/null +++ b/keyboards/keychron/c1_pro_v2/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2025 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/keychron/c1_pro_v2/info.json b/keyboards/keychron/c1_pro_v2/info.json new file mode 100644 index 00000000000..af4e6017e4a --- /dev/null +++ b/keyboards/keychron/c1_pro_v2/info.json @@ -0,0 +1,131 @@ +{ + "manufacturer": "Keychron", + "maintainer": "lalalademaxiya1", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "eeprom": { + "wear_leveling": { + "backing_size": 4096 + } + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "dip_switch": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "C9" + }, + "matrix_pins": { + "cols": ["A0", "A1", "A2", "A3", "C0", "C1", "C2", "C3", "A8", "C12", "B9", "C6", "C7", "C4", "C5", "A15", "B10"], + "rows": ["B0", "B1", "B8", "B3", "B4", "B5"] + }, + "processor": "STM32F401", + "url": "https://github.com/Keychron", + "usb": { + "vid": "0x3434" + }, + "community_layouts": ["tkl_ansi"], + "layouts": { + "LAYOUT_tkl_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [0, 2], "x": 3, "y": 0}, + {"matrix": [0, 3], "x": 4, "y": 0}, + {"matrix": [0, 4], "x": 5, "y": 0}, + {"matrix": [0, 5], "x": 6.5, "y": 0}, + {"matrix": [0, 6], "x": 7.5, "y": 0}, + {"matrix": [0, 7], "x": 8.5, "y": 0}, + {"matrix": [0, 8], "x": 9.5, "y": 0}, + {"matrix": [0, 9], "x": 11, "y": 0}, + {"matrix": [0, 10], "x": 12, "y": 0}, + {"matrix": [0, 11], "x": 13, "y": 0}, + {"matrix": [0, 12], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/keychron/c1_pro_v2/mcuconf.h b/keyboards/keychron/c1_pro_v2/mcuconf.h new file mode 100644 index 00000000000..ca470fb5b3d --- /dev/null +++ b/keyboards/keychron/c1_pro_v2/mcuconf.h @@ -0,0 +1,28 @@ +/* Copyright 2025 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000U + +#undef STM32_PLLM_VALUE +#define STM32_PLLM_VALUE 8 + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/keychron/c1_pro_v2/readme.md b/keyboards/keychron/c1_pro_v2/readme.md new file mode 100644 index 00000000000..6cabd71b182 --- /dev/null +++ b/keyboards/keychron/c1_pro_v2/readme.md @@ -0,0 +1,32 @@ +# Keychron C1 Pro V2 + +![Keychron C1 Pro](https://i.imgur.com/Svdm4lph.jpg) + +A customizable 80% TKL keyboard. + +v1 is based on STM32L432 and v2 is based on STM32F402. + +* Keyboard Maintainer: [Keychron](https://github.com/keychron) +* Hardware Supported: Keychron C1 Pro +* Hardware Availability: [Keychron](https://www.keychron.com) + +Make example for this keyboard (after setting up your build environment): + + make keychron/c1_pro_v2/ansi/rgb:default + make keychron/c1_pro_v2/ansi/white:default + make keychron/c1_pro_v2/ansi/non_light:default + +Flashing example for this keyboard: + + make keychron/c1_pro_v2/ansi/rgb:default:flash + make keychron/c1_pro_v2/ansi/white:default:flash + make keychron/c1_pro_v2/ansi/non_light:default:flash + +## bootloader + +Enter the bootloader in two ways: + +* **Bootmagic reset**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. +* **Physical reset button**: Briefly press the RESET button under the spacebar. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). From 6c10839e3306521e5f0e0050a891c013b7a4f766 Mon Sep 17 00:00:00 2001 From: adophoxia <100170946+adophoxia@users.noreply.github.com> Date: Sat, 1 Mar 2025 16:57:15 -0800 Subject: [PATCH 249/365] Add Keychron C2 Pro V2 (#24900) Same changes as for C1 Pro V2 --- .../keychron/c2_pro_v2/ansi/rgb/config.h | 24 +++ .../keychron/c2_pro_v2/ansi/rgb/keyboard.json | 148 ++++++++++++++++++ .../ansi/rgb/keymaps/default/keymap.c | 64 ++++++++ keyboards/keychron/c2_pro_v2/ansi/rgb/rgb.c | 139 ++++++++++++++++ .../keychron/c2_pro_v2/ansi/white/config.h | 26 +++ .../c2_pro_v2/ansi/white/keyboard.json | 140 +++++++++++++++++ .../ansi/white/keymaps/default/keymap.c | 65 ++++++++ .../keychron/c2_pro_v2/ansi/white/white.c | 138 ++++++++++++++++ keyboards/keychron/c2_pro_v2/c2_pro_v2.c | 104 ++++++++++++ keyboards/keychron/c2_pro_v2/config.h | 29 ++++ keyboards/keychron/c2_pro_v2/halconf.h | 21 +++ keyboards/keychron/c2_pro_v2/info.json | 148 ++++++++++++++++++ keyboards/keychron/c2_pro_v2/mcuconf.h | 28 ++++ keyboards/keychron/c2_pro_v2/readme.md | 30 ++++ 14 files changed, 1104 insertions(+) create mode 100644 keyboards/keychron/c2_pro_v2/ansi/rgb/config.h create mode 100644 keyboards/keychron/c2_pro_v2/ansi/rgb/keyboard.json create mode 100644 keyboards/keychron/c2_pro_v2/ansi/rgb/keymaps/default/keymap.c create mode 100644 keyboards/keychron/c2_pro_v2/ansi/rgb/rgb.c create mode 100644 keyboards/keychron/c2_pro_v2/ansi/white/config.h create mode 100644 keyboards/keychron/c2_pro_v2/ansi/white/keyboard.json create mode 100644 keyboards/keychron/c2_pro_v2/ansi/white/keymaps/default/keymap.c create mode 100644 keyboards/keychron/c2_pro_v2/ansi/white/white.c create mode 100644 keyboards/keychron/c2_pro_v2/c2_pro_v2.c create mode 100644 keyboards/keychron/c2_pro_v2/config.h create mode 100644 keyboards/keychron/c2_pro_v2/halconf.h create mode 100644 keyboards/keychron/c2_pro_v2/info.json create mode 100644 keyboards/keychron/c2_pro_v2/mcuconf.h create mode 100644 keyboards/keychron/c2_pro_v2/readme.md diff --git a/keyboards/keychron/c2_pro_v2/ansi/rgb/config.h b/keyboards/keychron/c2_pro_v2/ansi/rgb/config.h new file mode 100644 index 00000000000..739eb788fd5 --- /dev/null +++ b/keyboards/keychron/c2_pro_v2/ansi/rgb/config.h @@ -0,0 +1,24 @@ +/* Copyright 2025 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* RGB Matrix Driver Configuration */ +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO +#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND + +/* Set LED driver current */ +#define SNLED27351_CURRENT_TUNE { 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28 } diff --git a/keyboards/keychron/c2_pro_v2/ansi/rgb/keyboard.json b/keyboards/keychron/c2_pro_v2/ansi/rgb/keyboard.json new file mode 100644 index 00000000000..f619ab096c7 --- /dev/null +++ b/keyboards/keychron/c2_pro_v2/ansi/rgb/keyboard.json @@ -0,0 +1,148 @@ +{ + "keyboard_name": "Keychron C2 Pro V2 RGB", + "features": { + "rgb_matrix": true + }, + "rgb_matrix": { + "animations": { + "band_spiral_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "jellybean_raindrops": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_simple": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "driver": "snled27351", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 21, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 31, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 52, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 68, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 78, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 89, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 99, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 115, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 125, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 136, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 146, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1}, + + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1}, + {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1}, + {"matrix": [1, 17], "x": 193, "y": 15, "flags": 4}, + {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4}, + {"matrix": [1, 19], "x": 214, "y": 15, "flags": 4}, + {"matrix": [1, 20], "x": 224, "y": 15, "flags": 4}, + + {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, + {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4}, + {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4}, + {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4}, + {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4}, + {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4}, + {"matrix": [2, 13], "x": 143, "y": 27, "flags": 1}, + {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1}, + {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1}, + {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1}, + {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4}, + {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4}, + {"matrix": [2, 19], "x": 214, "y": 27, "flags": 4}, + {"matrix": [2, 20], "x": 224, "y": 34, "flags": 4}, + + {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 139, "y": 40, "flags": 1}, + {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4}, + {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4}, + {"matrix": [3, 19], "x": 214, "y": 40, "flags": 4}, + + {"matrix": [4, 0], "x": 7, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1}, + {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4}, + {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4}, + {"matrix": [4, 19], "x": 214, "y": 52, "flags": 4}, + {"matrix": [4, 20], "x": 224, "y": 58, "flags": 4}, + + {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 17], "x": 198, "y": 64, "flags": 4}, + {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4} + ], + "sleep": true + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x0526" + } +} diff --git a/keyboards/keychron/c2_pro_v2/ansi/rgb/keymaps/default/keymap.c b/keyboards/keychron/c2_pro_v2/ansi/rgb/keymaps/default/keymap.c new file mode 100644 index 00000000000..7e09d028f79 --- /dev/null +++ b/keyboards/keychron/c2_pro_v2/ansi/rgb/keymaps/default/keymap.c @@ -0,0 +1,64 @@ +/* Copyright 2025 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN, +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_104_ansi( + KC_ESC, KC_BRID, KC_BRIU, _______, _______, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, RM_NEXT, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ), + + [MAC_FN] = LAYOUT_104_ansi( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RM_NEXT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), + + [WIN_BASE] = LAYOUT_104_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_NO, RM_NEXT, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ), + + [WIN_FN] = LAYOUT_104_ansi( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALU, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_TOGG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), +}; + +// clang-format on diff --git a/keyboards/keychron/c2_pro_v2/ansi/rgb/rgb.c b/keyboards/keychron/c2_pro_v2/ansi/rgb/rgb.c new file mode 100644 index 00000000000..d92cf177f4c --- /dev/null +++ b/keyboards/keychron/c2_pro_v2/ansi/rgb/rgb.c @@ -0,0 +1,139 @@ +/* Copyright 2025 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE +const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, CB9_CA1, CB7_CA1, CB8_CA1}, + {0, CB9_CA2, CB7_CA2, CB8_CA2}, + {0, CB9_CA3, CB7_CA3, CB8_CA3}, + {0, CB9_CA4, CB7_CA4, CB8_CA4}, + {0, CB9_CA5, CB7_CA5, CB8_CA5}, + {0, CB9_CA6, CB7_CA6, CB8_CA6}, + {0, CB9_CA7, CB7_CA7, CB8_CA7}, + {0, CB9_CA8, CB7_CA8, CB8_CA8}, + {0, CB9_CA9, CB7_CA9, CB8_CA9}, + {0, CB9_CA10, CB7_CA10, CB8_CA10}, + {0, CB9_CA11, CB7_CA11, CB8_CA11}, + {0, CB9_CA12, CB7_CA12, CB8_CA12}, + {0, CB9_CA13, CB7_CA13, CB8_CA13}, + {0, CB9_CA15, CB7_CA15, CB8_CA15}, + {0, CB9_CA16, CB7_CA16, CB8_CA16}, + {0, CB12_CA5, CB10_CA5, CB11_CA5}, + + {0, CB3_CA1, CB1_CA1, CB2_CA1}, + {0, CB3_CA2, CB1_CA2, CB2_CA2}, + {0, CB3_CA3, CB1_CA3, CB2_CA3}, + {0, CB3_CA4, CB1_CA4, CB2_CA4}, + {0, CB3_CA5, CB1_CA5, CB2_CA5}, + {0, CB3_CA6, CB1_CA6, CB2_CA6}, + {0, CB3_CA7, CB1_CA7, CB2_CA7}, + {0, CB3_CA8, CB1_CA8, CB2_CA8}, + {0, CB3_CA9, CB1_CA9, CB2_CA9}, + {0, CB3_CA10, CB1_CA10, CB2_CA10}, + {0, CB3_CA11, CB1_CA11, CB2_CA11}, + {0, CB3_CA12, CB1_CA12, CB2_CA12}, + {0, CB3_CA13, CB1_CA13, CB2_CA13}, + {0, CB3_CA14, CB1_CA14, CB2_CA14}, + {0, CB3_CA15, CB1_CA15, CB2_CA15}, + {0, CB3_CA16, CB1_CA16, CB2_CA16}, + {0, CB12_CA9, CB10_CA9, CB11_CA9}, + {0, CB12_CA10, CB10_CA10, CB11_CA10}, + {0, CB12_CA11, CB10_CA11, CB11_CA11}, + {0, CB12_CA12, CB10_CA12, CB11_CA12}, + {0, CB12_CA13, CB10_CA13, CB11_CA13}, + + {0, CB6_CA1, CB4_CA1, CB5_CA1}, + {0, CB6_CA2, CB4_CA2, CB5_CA2}, + {0, CB6_CA3, CB4_CA3, CB5_CA3}, + {0, CB6_CA4, CB4_CA4, CB5_CA4}, + {0, CB6_CA5, CB4_CA5, CB5_CA5}, + {0, CB6_CA6, CB4_CA6, CB5_CA6}, + {0, CB6_CA7, CB4_CA7, CB5_CA7}, + {0, CB6_CA8, CB4_CA8, CB5_CA8}, + {0, CB6_CA9, CB4_CA9, CB5_CA9}, + {0, CB6_CA10, CB4_CA10, CB5_CA10}, + {0, CB6_CA11, CB4_CA11, CB5_CA11}, + {0, CB6_CA12, CB4_CA12, CB5_CA12}, + {0, CB6_CA13, CB4_CA13, CB5_CA13}, + {0, CB6_CA14, CB4_CA14, CB5_CA14}, + {0, CB6_CA15, CB4_CA15, CB5_CA15}, + {0, CB6_CA16, CB4_CA16, CB5_CA16}, + {0, CB12_CA14, CB10_CA14, CB11_CA14}, + {0, CB12_CA15, CB10_CA15, CB11_CA15}, + {0, CB12_CA16, CB10_CA16, CB11_CA16}, + {1, CB12_CA1, CB10_CA1, CB11_CA1}, + {1, CB12_CA2, CB10_CA2, CB11_CA2}, + + {1, CB3_CA16, CB1_CA16, CB2_CA16}, + {1, CB3_CA15, CB1_CA15, CB2_CA15}, + {1, CB3_CA14, CB1_CA14, CB2_CA14}, + {1, CB3_CA13, CB1_CA13, CB2_CA13}, + {1, CB3_CA12, CB1_CA12, CB2_CA12}, + {1, CB3_CA11, CB1_CA11, CB2_CA11}, + {1, CB3_CA10, CB1_CA10, CB2_CA10}, + {1, CB3_CA9, CB1_CA9, CB2_CA9}, + {1, CB3_CA8, CB1_CA8, CB2_CA8}, + {1, CB3_CA7, CB1_CA7, CB2_CA7}, + {1, CB3_CA6, CB1_CA6, CB2_CA6}, + {1, CB3_CA5, CB1_CA5, CB2_CA5}, + {1, CB3_CA3, CB1_CA3, CB2_CA3}, + {1, CB12_CA3, CB10_CA3, CB11_CA3}, + {1, CB12_CA4, CB10_CA4, CB11_CA4}, + {1, CB12_CA5, CB10_CA5, CB11_CA5}, + + {1, CB9_CA16, CB7_CA16, CB8_CA16}, + {1, CB9_CA14, CB7_CA14, CB8_CA14}, + {1, CB9_CA13, CB7_CA13, CB8_CA13}, + {1, CB9_CA12, CB7_CA12, CB8_CA12}, + {1, CB9_CA11, CB7_CA11, CB8_CA11}, + {1, CB9_CA10, CB7_CA10, CB8_CA10}, + {1, CB9_CA9, CB7_CA9, CB8_CA9}, + {1, CB9_CA8, CB7_CA8, CB8_CA8}, + {1, CB9_CA7, CB7_CA7, CB8_CA7}, + {1, CB9_CA6, CB7_CA6, CB8_CA6}, + {1, CB9_CA5, CB7_CA5, CB8_CA5}, + {1, CB9_CA3, CB7_CA3, CB8_CA3}, + {1, CB9_CA1, CB7_CA1, CB8_CA1}, + {1, CB12_CA6, CB10_CA6, CB11_CA6}, + {1, CB12_CA7, CB10_CA7, CB11_CA7}, + {1, CB12_CA8, CB10_CA8, CB11_CA8}, + {1, CB12_CA9, CB10_CA9, CB11_CA9}, + + {1, CB6_CA16, CB4_CA16, CB5_CA16}, + {1, CB6_CA15, CB4_CA15, CB5_CA15}, + {1, CB6_CA14, CB4_CA14, CB5_CA14}, + {1, CB6_CA10, CB4_CA10, CB5_CA10}, + {1, CB6_CA6, CB4_CA6, CB5_CA6}, + {1, CB6_CA5, CB4_CA5, CB5_CA5}, + {1, CB6_CA4, CB4_CA4, CB5_CA4}, + {1, CB6_CA3, CB4_CA3, CB5_CA3}, + {1, CB6_CA2, CB4_CA2, CB5_CA2}, + {1, CB6_CA1, CB4_CA1, CB5_CA1}, + {1, CB12_CA10, CB10_CA10, CB11_CA10}, + {1, CB12_CA11, CB10_CA11, CB11_CA11}, + {1, CB12_CA12, CB10_CA12, CB11_CA12}, +}; +#endif + +// clang-format on diff --git a/keyboards/keychron/c2_pro_v2/ansi/white/config.h b/keyboards/keychron/c2_pro_v2/ansi/white/config.h new file mode 100644 index 00000000000..65302c99696 --- /dev/null +++ b/keyboards/keychron/c2_pro_v2/ansi/white/config.h @@ -0,0 +1,26 @@ +/* Copyright 2025 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* LED Matrix Driver Configuration */ +#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND + +/* Use the first 8 channels of led driver */ +#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_8_CHANNEL + +/* Set LED driver current */ +#define SNLED27351_CURRENT_TUNE { 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50 } diff --git a/keyboards/keychron/c2_pro_v2/ansi/white/keyboard.json b/keyboards/keychron/c2_pro_v2/ansi/white/keyboard.json new file mode 100644 index 00000000000..020f6c0bd9b --- /dev/null +++ b/keyboards/keychron/c2_pro_v2/ansi/white/keyboard.json @@ -0,0 +1,140 @@ +{ + "keyboard_name": "Keychron C2 Pro V2 White", + "features": { + "led_matrix": true + }, + "led_matrix": { + "animations": { + "band_pinwheel": true, + "band_spiral": true, + "breathing": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_up_down": true, + "dual_beacon": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_simple": true, + "solid_splash": true, + "wave_left_right": true, + "wave_up_down": true + }, + "driver": "snled27351", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 21, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 31, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 52, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 68, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 78, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 89, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 99, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 115, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 125, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 136, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 146, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1}, + + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1}, + {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1}, + {"matrix": [1, 17], "x": 193, "y": 15, "flags": 4}, + {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4}, + {"matrix": [1, 19], "x": 214, "y": 15, "flags": 4}, + {"matrix": [1, 20], "x": 224, "y": 15, "flags": 4}, + + {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, + {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4}, + {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4}, + {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4}, + {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4}, + {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4}, + {"matrix": [2, 13], "x": 143, "y": 27, "flags": 1}, + {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1}, + {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1}, + {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1}, + {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4}, + {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4}, + {"matrix": [2, 19], "x": 214, "y": 27, "flags": 4}, + {"matrix": [2, 20], "x": 224, "y": 34, "flags": 4}, + + {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 139, "y": 40, "flags": 1}, + {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4}, + {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4}, + {"matrix": [3, 19], "x": 214, "y": 40, "flags": 4}, + + {"matrix": [4, 0], "x": 7, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1}, + {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4}, + {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4}, + {"matrix": [4, 19], "x": 214, "y": 52, "flags": 4}, + {"matrix": [4, 20], "x": 224, "y": 58, "flags": 4}, + + {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 17], "x": 198, "y": 64, "flags": 4}, + {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4} + ], + "sleep": true + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x0529" + } +} diff --git a/keyboards/keychron/c2_pro_v2/ansi/white/keymaps/default/keymap.c b/keyboards/keychron/c2_pro_v2/ansi/white/keymaps/default/keymap.c new file mode 100644 index 00000000000..da212f3d54f --- /dev/null +++ b/keyboards/keychron/c2_pro_v2/ansi/white/keymaps/default/keymap.c @@ -0,0 +1,65 @@ +/* Copyright 2025 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN, +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [MAC_BASE] = LAYOUT_104_ansi( + KC_ESC, KC_BRID, KC_BRIU, _______, _______, LM_BRID, LM_BRIU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, LM_NEXT, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ), + + [MAC_FN] = LAYOUT_104_ansi( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, BL_TOGG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + LM_TOGG, LM_NEXT, LM_BRIU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, LM_BRID, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), + + [WIN_BASE] = LAYOUT_104_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_NO, BL_STEP, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ), + + [WIN_FN] = LAYOUT_104_ansi( + _______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, LM_BRID, LM_BRIU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, LM_TOGG, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + LM_TOGG, LM_NEXT, LM_BRIU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, LM_BRID, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), +}; + +// clang-format on + diff --git a/keyboards/keychron/c2_pro_v2/ansi/white/white.c b/keyboards/keychron/c2_pro_v2/ansi/white/white.c new file mode 100644 index 00000000000..3ba0274e6ae --- /dev/null +++ b/keyboards/keychron/c2_pro_v2/ansi/white/white.c @@ -0,0 +1,138 @@ +/* Copyright 2025 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +// clang-format off +#ifdef LED_MATRIX_ENABLE +const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations + * driver + * | LED address + * | | */ + {0, CB1_CA16}, + {0, CB1_CA15}, + {0, CB1_CA14}, + {0, CB1_CA13}, + {0, CB1_CA12}, + {0, CB1_CA11}, + {0, CB1_CA10}, + {0, CB1_CA9 }, + {0, CB1_CA8 }, + {0, CB1_CA7 }, + {0, CB1_CA6 }, + {0, CB1_CA5 }, + {0, CB1_CA4 }, + {0, CB1_CA2 }, + {0, CB1_CA1 }, + {0, CB7_CA1 }, + + {0, CB2_CA16}, + {0, CB2_CA15}, + {0, CB2_CA14}, + {0, CB2_CA13}, + {0, CB2_CA12}, + {0, CB2_CA11}, + {0, CB2_CA10}, + {0, CB2_CA9 }, + {0, CB2_CA8 }, + {0, CB2_CA7 }, + {0, CB2_CA6 }, + {0, CB2_CA5 }, + {0, CB2_CA4 }, + {0, CB2_CA3 }, + {0, CB2_CA2 }, + {0, CB2_CA1 }, + {0, CB8_CA1 }, + {0, CB8_CA2 }, + {0, CB8_CA3 }, + {0, CB8_CA4 }, + {0, CB8_CA5 }, + + {0, CB3_CA16}, + {0, CB3_CA15}, + {0, CB3_CA14}, + {0, CB3_CA13}, + {0, CB3_CA12}, + {0, CB3_CA11}, + {0, CB3_CA10}, + {0, CB3_CA9 }, + {0, CB3_CA8 }, + {0, CB3_CA7 }, + {0, CB3_CA6 }, + {0, CB3_CA5 }, + {0, CB3_CA4 }, + {0, CB3_CA3 }, + {0, CB3_CA2 }, + {0, CB3_CA1 }, + {0, CB7_CA6 }, + {0, CB7_CA7 }, + {0, CB7_CA8 }, + {0, CB7_CA9 }, + {0, CB7_CA10}, + + {0, CB4_CA16}, + {0, CB4_CA15}, + {0, CB4_CA14}, + {0, CB4_CA13}, + {0, CB4_CA12}, + {0, CB4_CA11}, + {0, CB4_CA10}, + {0, CB4_CA9 }, + {0, CB4_CA8 }, + {0, CB4_CA7 }, + {0, CB4_CA6 }, + {0, CB4_CA5 }, + {0, CB4_CA3 }, + {0, CB8_CA7 }, + {0, CB8_CA8 }, + {0, CB8_CA9 }, + + {0, CB5_CA16}, + {0, CB5_CA14}, + {0, CB5_CA13}, + {0, CB5_CA12}, + {0, CB5_CA11}, + {0, CB5_CA10}, + {0, CB5_CA9 }, + {0, CB5_CA8 }, + {0, CB5_CA7 }, + {0, CB5_CA6 }, + {0, CB5_CA5 }, + {0, CB5_CA3 }, + {0, CB5_CA1 }, + {0, CB8_CA6 }, + {0, CB8_CA11}, + {0, CB8_CA12}, + {0, CB8_CA10}, + + {0, CB6_CA16}, + {0, CB6_CA15}, + {0, CB6_CA14}, + {0, CB6_CA10}, + {0, CB6_CA6 }, + {0, CB6_CA5 }, + {0, CB6_CA4 }, + {0, CB6_CA3 }, + {0, CB6_CA2 }, + {0, CB6_CA1 }, + {0, CB7_CA13}, + {0, CB7_CA11}, + {0, CB7_CA12}, +}; +#endif + +// clang-format on diff --git a/keyboards/keychron/c2_pro_v2/c2_pro_v2.c b/keyboards/keychron/c2_pro_v2/c2_pro_v2.c new file mode 100644 index 00000000000..d4ff5eb9dc8 --- /dev/null +++ b/keyboards/keychron/c2_pro_v2/c2_pro_v2.c @@ -0,0 +1,104 @@ +/* Copyright 2025 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef DIP_SWITCH_ENABLE +bool dip_switch_update_kb(uint8_t index, bool active) { + if (!dip_switch_update_user(index, active)) { + return false; + } + if (index == 0) { + default_layer_set(1UL << (active ? 0 : 2)); + } + 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 QK_RGB_MATRIX_TOGGLE: + 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; + } + } + if (!rgb_matrix_is_enabled()) { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable(); + } + return false; +#endif +#ifdef LED_MATRIX_ENABLE + case QK_LED_MATRIX_TOGGLE: + if (record->event.pressed) { + switch (led_matrix_get_flags()) { + case LED_FLAG_ALL: { + led_matrix_set_flags(LED_FLAG_NONE); + led_matrix_set_value_all(0); + } break; + default: { + led_matrix_set_flags(LED_FLAG_ALL); + } break; + } + } + if (!led_matrix_is_enabled()) { + led_matrix_set_flags(LED_FLAG_ALL); + led_matrix_enable(); + } + return false; +#endif + default: + return true; + } +} + +void keyboard_post_init_kb(void) { + gpio_set_pin_output_push_pull(LED_MAC_OS_PIN); + gpio_set_pin_output_push_pull(LED_WIN_OS_PIN); + gpio_write_pin(LED_MAC_OS_PIN, !LED_OS_PIN_ON_STATE); + gpio_write_pin(LED_WIN_OS_PIN, !LED_OS_PIN_ON_STATE); + + keyboard_post_init_user(); +} + +void housekeeping_task_kb(void) { + if (default_layer_state == (1U << 0)) { + gpio_write_pin(LED_MAC_OS_PIN, LED_OS_PIN_ON_STATE); + gpio_write_pin(LED_WIN_OS_PIN, !LED_OS_PIN_ON_STATE); + } + if (default_layer_state == (1U << 2)) { + gpio_write_pin(LED_MAC_OS_PIN, !LED_OS_PIN_ON_STATE); + gpio_write_pin(LED_WIN_OS_PIN, LED_OS_PIN_ON_STATE); + } +} + +void suspend_power_down_kb(void) { + gpio_write_pin(LED_WIN_OS_PIN, !LED_OS_PIN_ON_STATE); + gpio_write_pin(LED_MAC_OS_PIN, !LED_OS_PIN_ON_STATE); + + suspend_power_down_user(); +} diff --git a/keyboards/keychron/c2_pro_v2/config.h b/keyboards/keychron/c2_pro_v2/config.h new file mode 100644 index 00000000000..cde450aa685 --- /dev/null +++ b/keyboards/keychron/c2_pro_v2/config.h @@ -0,0 +1,29 @@ +/* Copyright 2025 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* DIP switch */ +#define DIP_SWITCH_PINS { D2 } + +/* Indication led */ +#define LED_MAC_OS_PIN C10 +#define LED_WIN_OS_PIN C11 +#define LED_OS_PIN_ON_STATE 1 + +/* The I2C Driver Configuration */ +#define I2C1_CLOCK_SPEED 400000 +#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 diff --git a/keyboards/keychron/c2_pro_v2/halconf.h b/keyboards/keychron/c2_pro_v2/halconf.h new file mode 100644 index 00000000000..d0a99336370 --- /dev/null +++ b/keyboards/keychron/c2_pro_v2/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2025 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/keychron/c2_pro_v2/info.json b/keyboards/keychron/c2_pro_v2/info.json new file mode 100644 index 00000000000..06a592a0604 --- /dev/null +++ b/keyboards/keychron/c2_pro_v2/info.json @@ -0,0 +1,148 @@ +{ + "manufacturer": "Keychron", + "url": "https://github.com/Keychron", + "maintainer": "lalalademaxiya1", + "eeprom": { + "wear_leveling": { + "backing_size": 4096 + } + }, + "usb": { + "vid": "0x3434" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "dip_switch": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "processor": "STM32F401", + "bootloader": "stm32-dfu", + "matrix_pins": { + "cols": ["A0", "A1", "A2", "A3", "C0", "C1", "C2", "C3", "A8", "C12", "B9", "C6", "C7", "C4", "C5","A15", "B10", "B12", "B13", "B14", "B15"], + "rows": ["B0", "B1", "B8", "B3", "B4", "B5"] + }, + "diode_direction": "COL2ROW", + "indicators": { + "caps_lock": "C9", + "num_lock": "C8" + }, + "layouts": { + "LAYOUT_104_ansi": { + "layout": [ + {"matrix":[0,0], "x":0, "y":0}, + {"matrix":[0,1], "x":2, "y":0}, + {"matrix":[0,2], "x":3, "y":0}, + {"matrix":[0,3], "x":4, "y":0}, + {"matrix":[0,4], "x":5, "y":0}, + {"matrix":[0,5], "x":6.5, "y":0}, + {"matrix":[0,6], "x":7.5, "y":0}, + {"matrix":[0,7], "x":8.5, "y":0}, + {"matrix":[0,8], "x":9.5, "y":0}, + {"matrix":[0,9], "x":11, "y":0}, + {"matrix":[0,10], "x":12, "y":0}, + {"matrix":[0,11], "x":13, "y":0}, + {"matrix":[0,12], "x":14, "y":0}, + {"matrix":[0,14], "x":15.25, "y":0}, + {"matrix":[0,15], "x":16.25, "y":0}, + {"matrix":[0,16], "x":17.25, "y":0}, + + {"matrix":[1,0], "x":0, "y":1.25}, + {"matrix":[1,1], "x":1, "y":1.25}, + {"matrix":[1,2], "x":2, "y":1.25}, + {"matrix":[1,3], "x":3, "y":1.25}, + {"matrix":[1,4], "x":4, "y":1.25}, + {"matrix":[1,5], "x":5, "y":1.25}, + {"matrix":[1,6], "x":6, "y":1.25}, + {"matrix":[1,7], "x":7, "y":1.25}, + {"matrix":[1,8], "x":8, "y":1.25}, + {"matrix":[1,9], "x":9, "y":1.25}, + {"matrix":[1,10], "x":10, "y":1.25}, + {"matrix":[1,11], "x":11, "y":1.25}, + {"matrix":[1,12], "x":12, "y":1.25}, + {"matrix":[1,13], "x":13, "y":1.25, "w":2}, + {"matrix":[1,14], "x":15.25, "y":1.25}, + {"matrix":[1,15], "x":16.25, "y":1.25}, + {"matrix":[1,16], "x":17.25, "y":1.25}, + {"matrix":[1,17], "x":18.5, "y":1.25}, + {"matrix":[1,18], "x":19.5, "y":1.25}, + {"matrix":[1,19], "x":20.5, "y":1.25}, + {"matrix":[1,20], "x":21.5, "y":1.25}, + + {"matrix":[2,0], "x":0, "y":2.25, "w":1.5}, + {"matrix":[2,1], "x":1.5, "y":2.25}, + {"matrix":[2,2], "x":2.5, "y":2.25}, + {"matrix":[2,3], "x":3.5, "y":2.25}, + {"matrix":[2,4], "x":4.5, "y":2.25}, + {"matrix":[2,5], "x":5.5, "y":2.25}, + {"matrix":[2,6], "x":6.5, "y":2.25}, + {"matrix":[2,7], "x":7.5, "y":2.25}, + {"matrix":[2,8], "x":8.5, "y":2.25}, + {"matrix":[2,9], "x":9.5, "y":2.25}, + {"matrix":[2,10], "x":10.5, "y":2.25}, + {"matrix":[2,11], "x":11.5, "y":2.25}, + {"matrix":[2,12], "x":12.5, "y":2.25}, + {"matrix":[2,13], "x":13.5, "y":2.25, "w":1.5}, + {"matrix":[2,14], "x":15.25, "y":2.25}, + {"matrix":[2,15], "x":16.25, "y":2.25}, + {"matrix":[2,16], "x":17.25, "y":2.25}, + {"matrix":[2,17], "x":18.5, "y":2.25}, + {"matrix":[2,18], "x":19.5, "y":2.25}, + {"matrix":[2,19], "x":20.5, "y":2.25}, + {"matrix":[2,20], "x":21.5, "y":2.25, "h":2}, + + {"matrix":[3,0], "x":0, "y":3.25, "w":1.75}, + {"matrix":[3,1], "x":1.75, "y":3.25}, + {"matrix":[3,2], "x":2.75, "y":3.25}, + {"matrix":[3,3], "x":3.75, "y":3.25}, + {"matrix":[3,4], "x":4.75, "y":3.25}, + {"matrix":[3,5], "x":5.75, "y":3.25}, + {"matrix":[3,6], "x":6.75, "y":3.25}, + {"matrix":[3,7], "x":7.75, "y":3.25}, + {"matrix":[3,8], "x":8.75, "y":3.25}, + {"matrix":[3,9], "x":9.75, "y":3.25}, + {"matrix":[3,10], "x":10.75, "y":3.25}, + {"matrix":[3,11], "x":11.75, "y":3.25}, + {"matrix":[3,13], "x":12.75, "y":3.25, "w":2.25}, + {"matrix":[3,17], "x":18.5, "y":3.25}, + {"matrix":[3,18], "x":19.5, "y":3.25}, + {"matrix":[3,19], "x":20.5, "y":3.25}, + + {"matrix":[4,0], "x":0, "y":4.25, "w":2.25}, + {"matrix":[4,2], "x":2.25, "y":4.25}, + {"matrix":[4,3], "x":3.25, "y":4.25}, + {"matrix":[4,4], "x":4.25, "y":4.25}, + {"matrix":[4,5], "x":5.25, "y":4.25}, + {"matrix":[4,6], "x":6.25, "y":4.25}, + {"matrix":[4,7], "x":7.25, "y":4.25}, + {"matrix":[4,8], "x":8.25, "y":4.25}, + {"matrix":[4,9], "x":9.25, "y":4.25}, + {"matrix":[4,10], "x":10.25, "y":4.25}, + {"matrix":[4,11], "x":11.25, "y":4.25}, + {"matrix":[4,13], "x":12.25, "y":4.25, "w":2.75}, + {"matrix":[4,15], "x":16.25, "y":4.25}, + {"matrix":[4,17], "x":18.5, "y":4.25}, + {"matrix":[4,18], "x":19.5, "y":4.25}, + {"matrix":[4,19], "x":20.5, "y":4.25}, + {"matrix":[4,20], "x":21.5, "y":4.25, "h":2}, + + {"matrix":[5,0], "x":0, "y":5.25, "w":1.25}, + {"matrix":[5,1], "x":1.25, "y":5.25, "w":1.25}, + {"matrix":[5,2], "x":2.5, "y":5.25, "w":1.25}, + {"matrix":[5,6], "x":3.75, "y":5.25, "w":6.25}, + {"matrix":[5,10], "x":10, "y":5.25, "w":1.25}, + {"matrix":[5,11], "x":11.25, "y":5.25, "w":1.25}, + {"matrix":[5,12], "x":12.5, "y":5.25, "w":1.25}, + {"matrix":[5,13], "x":13.75, "y":5.25, "w":1.25}, + {"matrix":[5,14], "x":15.25, "y":5.25}, + {"matrix":[5,15], "x":16.25, "y":5.25}, + {"matrix":[5,16], "x":17.25, "y":5.25}, + {"matrix":[5,17], "x":18.5, "y":5.25, "w":2}, + {"matrix":[5,18], "x":20.5, "y":5.25} + ] + } + } +} diff --git a/keyboards/keychron/c2_pro_v2/mcuconf.h b/keyboards/keychron/c2_pro_v2/mcuconf.h new file mode 100644 index 00000000000..ca470fb5b3d --- /dev/null +++ b/keyboards/keychron/c2_pro_v2/mcuconf.h @@ -0,0 +1,28 @@ +/* Copyright 2025 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000U + +#undef STM32_PLLM_VALUE +#define STM32_PLLM_VALUE 8 + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/keychron/c2_pro_v2/readme.md b/keyboards/keychron/c2_pro_v2/readme.md new file mode 100644 index 00000000000..4c9462260ed --- /dev/null +++ b/keyboards/keychron/c2_pro_v2/readme.md @@ -0,0 +1,30 @@ +# Keychron C2 Pro V2 + +![Keychron C2 Pro](https://i.imgur.com/BQE1tFO.jpg) + +A customizable 100% keyboard. + +Rev1 is based on STM32L432 and rev2 is based on STM32F402. + +* Keyboard Maintainer: [Keychron](https://github.com/keychron) +* Hardware Supported: Keychron C2 Pro +* Hardware Availability: [Keychron C2 Pro QMK/VIA Wired Mechanical Keyboard](https://www.keychron.com/products/keychron-c2-pro-qmk-via-wired-mechanical-keyboard) + +Make example for this keyboard (after setting up your build environment): + + make keychron/c2_pro_v2/ansi/rgb:default + make keychron/c2_pro_v2/ansi/white:default + +Flashing example for this keyboard: + + make keychron/c2_pro_v2/ansi/rgb:default:flash + make keychron/c2_pro_v2/ansi/white:default:flash + +## bootloader + +Enter the bootloader in two ways: + +* **Bootmagic reset**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. +* **Physical reset button**: Briefly press the RESET button under the spacebar. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). From 563eb6fdc9224a772d19e2d5714e903fa7c021c6 Mon Sep 17 00:00:00 2001 From: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Mon, 3 Mar 2025 08:04:33 +1100 Subject: [PATCH 250/365] [Keyboard] Valor Rev3 (#22581) * initial valor * update * fixup and move to info.json * clean up keymap * code review from lesshonor * Update keyboards/xelus/valor/rev3/readme.md Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> * Update readme.md * Update keyboards/xelus/valor/rev3/rev3.c Co-authored-by: Drashna Jaelre * Update rev3.c * Remove custom rev3.c * remove via keymap * remove empty rules.mk * Update keyboards/xelus/valor/rev3/keymaps/default/keymap.c Co-authored-by: jack --------- Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> Co-authored-by: Drashna Jaelre Co-authored-by: Xelus22 <> Co-authored-by: jack --- keyboards/xelus/valor/rev3/info.json | 130 ++++++++++++++++++ .../xelus/valor/rev3/keymaps/default/keymap.c | 34 +++++ keyboards/xelus/valor/rev3/readme.md | 25 ++++ 3 files changed, 189 insertions(+) create mode 100644 keyboards/xelus/valor/rev3/info.json create mode 100644 keyboards/xelus/valor/rev3/keymaps/default/keymap.c create mode 100644 keyboards/xelus/valor/rev3/readme.md diff --git a/keyboards/xelus/valor/rev3/info.json b/keyboards/xelus/valor/rev3/info.json new file mode 100644 index 00000000000..52954fb784c --- /dev/null +++ b/keyboards/xelus/valor/rev3/info.json @@ -0,0 +1,130 @@ +{ + "manufacturer": "Xelus", + "keyboard_name": "Valor Rev3", + "maintainer": "Xelus22", + "bootloader": "atmel-dfu", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["E6", "F0", "F1", "F4", "F5", "F6", "F7", "B5", "B4", "D7", "D6", "D4", "D5", "D3", "D2"], + "rows": ["B1", "B2", "C7", "C6", "B6"] + }, + "processor": "atmega32u4", + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "rgblight": { + "default": { + "animation": "rainbow_swirl" + }, + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "led_count": 32, + "max_brightness": 200, + "saturation_steps": 8 + }, + "url": "", + "usb": { + "device_version": "0.0.1", + "pid": "0x5652", + "vid": "0x5845" + }, + "ws2812": { + "pin": "B0" + }, + "community_layouts": ["alice_split_bs"], + "layouts": { + "LAYOUT_alice_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.25, "y": 0}, + {"matrix": [0, 6], "x": 6.25, "y": 0}, + {"matrix": [0, 7], "x": 7.25, "y": 0}, + {"matrix": [0, 8], "x": 10.25, "y": 0}, + {"matrix": [0, 9], "x": 11.25, "y": 0}, + {"matrix": [0, 10], "x": 12.25, "y": 0}, + {"matrix": [0, 11], "x": 13.25, "y": 0}, + {"matrix": [0, 12], "x": 14.25, "y": 0}, + {"matrix": [0, 13], "x": 15.25, "y": 0}, + {"matrix": [0, 14], "x": 16.25, "y": 0}, + {"matrix": [2, 14], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1.25, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 2.75, "y": 1}, + {"matrix": [1, 3], "x": 3.75, "y": 1}, + {"matrix": [1, 4], "x": 4.75, "y": 1}, + {"matrix": [1, 5], "x": 5.75, "y": 1}, + {"matrix": [1, 6], "x": 6.75, "y": 1}, + {"matrix": [1, 7], "x": 9.75, "y": 1}, + {"matrix": [1, 8], "x": 10.75, "y": 1}, + {"matrix": [1, 9], "x": 11.75, "y": 1}, + {"matrix": [1, 10], "x": 12.75, "y": 1}, + {"matrix": [1, 11], "x": 13.75, "y": 1}, + {"matrix": [1, 12], "x": 14.75, "y": 1}, + {"matrix": [1, 13], "x": 15.75, "y": 1}, + {"matrix": [1, 14], "x": 16.75, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1.25, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3, "y": 2}, + {"matrix": [2, 3], "x": 4, "y": 2}, + {"matrix": [2, 4], "x": 5, "y": 2}, + {"matrix": [2, 5], "x": 6, "y": 2}, + {"matrix": [2, 6], "x": 7, "y": 2}, + {"matrix": [2, 7], "x": 10, "y": 2}, + {"matrix": [2, 8], "x": 11, "y": 2}, + {"matrix": [2, 9], "x": 12, "y": 2}, + {"matrix": [2, 10], "x": 13, "y": 2}, + {"matrix": [2, 11], "x": 14, "y": 2}, + {"matrix": [2, 12], "x": 15, "y": 2}, + {"matrix": [2, 13], "x": 16, "y": 2, "w": 2.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 3.5, "y": 3}, + {"matrix": [3, 3], "x": 4.5, "y": 3}, + {"matrix": [3, 4], "x": 5.5, "y": 3}, + {"matrix": [3, 5], "x": 6.5, "y": 3}, + {"matrix": [3, 6], "x": 7.5, "y": 3}, + {"matrix": [3, 7], "x": 9.5, "y": 3}, + {"matrix": [3, 8], "x": 10.5, "y": 3}, + {"matrix": [3, 9], "x": 11.5, "y": 3}, + {"matrix": [3, 10], "x": 12.5, "y": 3}, + {"matrix": [3, 11], "x": 13.5, "y": 3}, + {"matrix": [3, 12], "x": 14.5, "y": 3}, + {"matrix": [3, 13], "x": 15.5, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 17.25, "y": 3}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5}, + {"matrix": [4, 3], "x": 4.25, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 5.75, "y": 4, "w": 2}, + {"matrix": [4, 6], "x": 7.75, "y": 4, "w": 1.25}, + {"matrix": [4, 8], "x": 9.5, "y": 4, "w": 2.75}, + {"matrix": [4, 10], "x": 12.25, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 16.75, "y": 4, "w": 1.5} + ] + } + } +} diff --git a/keyboards/xelus/valor/rev3/keymaps/default/keymap.c b/keyboards/xelus/valor/rev3/keymaps/default/keymap.c new file mode 100644 index 00000000000..f663bc95896 --- /dev/null +++ b/keyboards/xelus/valor/rev3/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2023 Harrison Chan (Xelus) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_alice_split_bs( + KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL, KC_BSPC, + KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RGUI, + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL + ), + + [1] = LAYOUT_alice_split_bs( + UG_TOGG, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + UG_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/xelus/valor/rev3/readme.md b/keyboards/xelus/valor/rev3/readme.md new file mode 100644 index 00000000000..63b938003e7 --- /dev/null +++ b/keyboards/xelus/valor/rev3/readme.md @@ -0,0 +1,25 @@ +# Valor Rev 3 + +An Alice replacement keyboard PCB. + +* Keyboard Maintainer: [Xelus22](https://github.com/Xelus22) +* Hardware Supported: Valor Rev 3 +* Hardware Availability: Custom keyboard group buys + +Make example for this keyboard (after setting up your build environment): + + make xelus/valor/rev3:default + +Flashing example for this keyboard: + + make xelus/valor/rev3:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top left key and plug in the keyboard +* **Physical Reset**: The AVR ISP is exposed. Short the RST pad with GND. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` From cb6e1c1af54790e778062ba7203aa23370c263b0 Mon Sep 17 00:00:00 2001 From: leah-splitkb <103112489+leah-splitkb@users.noreply.github.com> Date: Sun, 2 Mar 2025 22:33:03 +0100 Subject: [PATCH 251/365] Add splitkb.com's Elora (#22557) * Add splitkb's Elora * WIP * Make requested changes * fix missing call to keyboard init user for elora * sync vial_qmk with qmk * Add fixes * Add encoder quadrature and update files * Update Readme * Implement changes * Remove encoder driver from keyboard.json * make requested changed * Implement changes and remove myriad_task as it wasn't actually doing anything. * Remove myriad.h from matrix.c * Simplify OLED code debug * Update RGB keycodes (qmk#24484) * remove rules.mk (qmk#23281) * Add matrix state sync --------- Co-authored-by: NapOli1084 <10320176+NapOli1084@users.noreply.github.com> Co-authored-by: harveysch <126267034+harvey-splitkb@users.noreply.github.com> Co-authored-by: harvey Co-authored-by: VeyPatch <126267034+VeyPatch@users.noreply.github.com> --- keyboards/splitkb/elora/info.json | 172 ++++++++++ .../splitkb/elora/keymaps/debug/config.h | 9 + .../splitkb/elora/keymaps/debug/keymap.c | 71 ++++ .../splitkb/elora/keymaps/debug/readme.md | 22 ++ .../splitkb/elora/keymaps/debug/rules.mk | 2 + .../splitkb/elora/keymaps/default/config.h | 7 + .../splitkb/elora/keymaps/default/keymap.c | 320 ++++++++++++++++++ .../splitkb/elora/keymaps/default/readme.md | 50 +++ keyboards/splitkb/elora/readme.md | 43 +++ keyboards/splitkb/elora/rev1/config.h | 60 ++++ keyboards/splitkb/elora/rev1/halconf.h | 13 + keyboards/splitkb/elora/rev1/keyboard.json | 108 ++++++ keyboards/splitkb/elora/rev1/matrix.c | 57 ++++ keyboards/splitkb/elora/rev1/mcuconf.h | 18 + keyboards/splitkb/elora/rev1/myriad.c | 315 +++++++++++++++++ keyboards/splitkb/elora/rev1/myriad.h | 52 +++ keyboards/splitkb/elora/rev1/rev1.c | 214 ++++++++++++ keyboards/splitkb/elora/rev1/rev1.h | 14 + keyboards/splitkb/elora/rev1/rules.mk | 7 + 19 files changed, 1554 insertions(+) create mode 100644 keyboards/splitkb/elora/info.json create mode 100644 keyboards/splitkb/elora/keymaps/debug/config.h create mode 100644 keyboards/splitkb/elora/keymaps/debug/keymap.c create mode 100644 keyboards/splitkb/elora/keymaps/debug/readme.md create mode 100644 keyboards/splitkb/elora/keymaps/debug/rules.mk create mode 100644 keyboards/splitkb/elora/keymaps/default/config.h create mode 100644 keyboards/splitkb/elora/keymaps/default/keymap.c create mode 100644 keyboards/splitkb/elora/keymaps/default/readme.md create mode 100644 keyboards/splitkb/elora/readme.md create mode 100644 keyboards/splitkb/elora/rev1/config.h create mode 100644 keyboards/splitkb/elora/rev1/halconf.h create mode 100644 keyboards/splitkb/elora/rev1/keyboard.json create mode 100644 keyboards/splitkb/elora/rev1/matrix.c create mode 100644 keyboards/splitkb/elora/rev1/mcuconf.h create mode 100644 keyboards/splitkb/elora/rev1/myriad.c create mode 100644 keyboards/splitkb/elora/rev1/myriad.h create mode 100644 keyboards/splitkb/elora/rev1/rev1.c create mode 100644 keyboards/splitkb/elora/rev1/rev1.h create mode 100644 keyboards/splitkb/elora/rev1/rules.mk diff --git a/keyboards/splitkb/elora/info.json b/keyboards/splitkb/elora/info.json new file mode 100644 index 00000000000..2ed11bfd190 --- /dev/null +++ b/keyboards/splitkb/elora/info.json @@ -0,0 +1,172 @@ +{ + "manufacturer": "splitkb.com", + "keyboard_name": "Elora", + "maintainer": "splitkb", + "build": { + "lto": true + }, + "split": { + "enabled": true + }, + "url": "https://splitkb.com", + "usb": { + "device_version": "1.0.0", + "vid": "0x8D1D" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "MX101", "matrix": [4, 1], "x": 0, "y": 0.75}, + {"label": "MX105", "matrix": [4, 2], "x": 1, "y": 0.75}, + {"label": "MX109", "matrix": [3, 1], "x": 2, "y": 0.25}, + {"label": "MX113", "matrix": [3, 2], "x": 3, "y": 0}, + {"label": "MX117", "matrix": [2, 1], "x": 4, "y": 0.25}, + {"label": "MX121", "matrix": [2, 2], "x": 5, "y": 0.5}, + {"label": "LPED1", "matrix": [0, 1], "x": 7, "y": 0}, + {"label": "RPED1", "matrix": [6, 6], "x": 8.5, "y": 0}, + {"label": "MX221", "matrix": [8, 5], "x": 10.5, "y": 0.5}, + {"label": "MX217", "matrix": [8, 6], "x": 11.5, "y": 0.25}, + {"label": "MX213", "matrix": [9, 5], "x": 12.5, "y": 0}, + {"label": "MX209", "matrix": [9, 6], "x": 13.5, "y": 0.25}, + {"label": "MX205", "matrix": [10, 5], "x": 14.5, "y": 0.75}, + {"label": "MX201", "matrix": [10, 6], "x": 15.5, "y": 0.75}, + {"label": "MX102", "matrix": [4, 0], "x": 0, "y": 1.75}, + {"label": "MX106", "matrix": [4, 3], "x": 1, "y": 1.75}, + {"label": "MX110", "matrix": [3, 0], "x": 2, "y": 1.25}, + {"label": "MX114", "matrix": [3, 3], "x": 3, "y": 1}, + {"label": "MX118", "matrix": [2, 0], "x": 4, "y": 1.25}, + {"label": "MX122", "matrix": [2, 3], "x": 5, "y": 1.5}, + {"label": "LPED2", "matrix": [0, 2], "x": 7, "y": 1}, + {"label": "RPED2", "matrix": [6, 5], "x": 8.5, "y": 1}, + {"label": "MX222", "matrix": [8, 4], "x": 10.5, "y": 1.5}, + {"label": "MX218", "matrix": [8, 7], "x": 11.5, "y": 1.25}, + {"label": "MX214", "matrix": [9, 4], "x": 12.5, "y": 1}, + {"label": "MX210", "matrix": [9, 7], "x": 13.5, "y": 1.25}, + {"label": "MX206", "matrix": [10, 4], "x": 14.5, "y": 1.75}, + {"label": "MX202", "matrix": [10, 7], "x": 15.5, "y": 1.75}, + {"label": "MX103", "matrix": [4, 7], "x": 0, "y": 2.75}, + {"label": "MX107", "matrix": [4, 4], "x": 1, "y": 2.75}, + {"label": "MX111", "matrix": [3, 7], "x": 2, "y": 2.25}, + {"label": "MX115", "matrix": [3, 4], "x": 3, "y": 2}, + {"label": "MX119", "matrix": [2, 7], "x": 4, "y": 2.25}, + {"label": "MX123", "matrix": [2, 4], "x": 5, "y": 2.5}, + {"label": "LPED3", "matrix": [0, 3], "x": 7, "y": 2}, + {"label": "RPED3", "matrix": [6, 4], "x": 8.5, "y": 2}, + {"label": "MX223", "matrix": [8, 3], "x": 10.5, "y": 2.5}, + {"label": "MX219", "matrix": [8, 0], "x": 11.5, "y": 2.25}, + {"label": "MX215", "matrix": [9, 3], "x": 12.5, "y": 2}, + {"label": "MX211", "matrix": [9, 0], "x": 13.5, "y": 2.25}, + {"label": "MX207", "matrix": [10, 3], "x": 14.5, "y": 2.75}, + {"label": "MX203", "matrix": [10, 0], "x": 15.5, "y": 2.75}, + {"label": "MX104", "matrix": [4, 6], "x": 0, "y": 3.75}, + {"label": "MX108", "matrix": [4, 5], "x": 1, "y": 3.75}, + {"label": "MX112", "matrix": [3, 6], "x": 2, "y": 3.25}, + {"label": "MX116", "matrix": [3, 5], "x": 3, "y": 3}, + {"label": "MX120", "matrix": [2, 6], "x": 4, "y": 3.25}, + {"label": "MX124", "matrix": [2, 5], "x": 5, "y": 3.5}, + {"label": "MX131", "matrix": [0, 0], "x": 6, "y": 4}, + {"label": "MX130", "matrix": [0, 4], "x": 7, "y": 4.25}, + {"label": "MX230", "matrix": [6, 3], "x": 8.5, "y": 4.25}, + {"label": "MX231", "matrix": [6, 7], "x": 9.5, "y": 4}, + {"label": "MX224", "matrix": [8, 2], "x": 10.5, "y": 3.5}, + {"label": "MX220", "matrix": [8, 1], "x": 11.5, "y": 3.25}, + {"label": "MX216", "matrix": [9, 2], "x": 12.5, "y": 3}, + {"label": "MX212", "matrix": [9, 1], "x": 13.5, "y": 3.25}, + {"label": "MX208", "matrix": [10, 2], "x": 14.5, "y": 3.75}, + {"label": "MX204", "matrix": [10, 1], "x": 15.5, "y": 3.75}, + {"label": "MX125", "matrix": [1, 7], "x": 2.5, "y": 4.25}, + {"label": "MX126", "matrix": [1, 6], "x": 3.5, "y": 4.25}, + {"label": "MX127", "matrix": [1, 5], "x": 4.5, "y": 4.5}, + {"label": "MX128", "matrix": [1, 4], "x": 5.5, "y": 5}, + {"label": "MX129", "matrix": [0, 5], "x": 6.5, "y": 5.25}, + {"label": "MX229", "matrix": [6, 2], "x": 9, "y": 5.25}, + {"label": "MX228", "matrix": [7, 3], "x": 10, "y": 5}, + {"label": "MX227", "matrix": [7, 2], "x": 11, "y": 4.5}, + {"label": "MX226", "matrix": [7, 1], "x": 12, "y": 4.25}, + {"label": "MX225", "matrix": [7, 0], "x": 13, "y": 4.25} + ] + }, + "LAYOUT_myr": { + "layout": [ + {"label": "MX101", "matrix": [4, 1], "x": 0, "y": 0.75}, + {"label": "MX105", "matrix": [4, 2], "x": 1, "y": 0.75}, + {"label": "MX109", "matrix": [3, 1], "x": 2, "y": 0.25}, + {"label": "MX113", "matrix": [3, 2], "x": 3, "y": 0}, + {"label": "MX117", "matrix": [2, 1], "x": 4, "y": 0.25}, + {"label": "MX121", "matrix": [2, 2], "x": 5, "y": 0.5}, + {"label": "LPED1", "matrix": [0, 1], "x": 7, "y": 0}, + {"label": "RPED1", "matrix": [6, 6], "x": 8.5, "y": 0}, + {"label": "MX221", "matrix": [8, 5], "x": 10.5, "y": 0.5}, + {"label": "MX217", "matrix": [8, 6], "x": 11.5, "y": 0.25}, + {"label": "MX213", "matrix": [9, 5], "x": 12.5, "y": 0}, + {"label": "MX209", "matrix": [9, 6], "x": 13.5, "y": 0.25}, + {"label": "MX205", "matrix": [10, 5], "x": 14.5, "y": 0.75}, + {"label": "MX201", "matrix": [10, 6], "x": 15.5, "y": 0.75}, + {"label": "MX102", "matrix": [4, 0], "x": 0, "y": 1.75}, + {"label": "MX106", "matrix": [4, 3], "x": 1, "y": 1.75}, + {"label": "MX110", "matrix": [3, 0], "x": 2, "y": 1.25}, + {"label": "MX114", "matrix": [3, 3], "x": 3, "y": 1}, + {"label": "MX118", "matrix": [2, 0], "x": 4, "y": 1.25}, + {"label": "MX122", "matrix": [2, 3], "x": 5, "y": 1.5}, + {"label": "LPED2", "matrix": [0, 2], "x": 7, "y": 1}, + {"label": "RPED2", "matrix": [6, 5], "x": 8.5, "y": 1}, + {"label": "MX222", "matrix": [8, 4], "x": 10.5, "y": 1.5}, + {"label": "MX218", "matrix": [8, 7], "x": 11.5, "y": 1.25}, + {"label": "MX214", "matrix": [9, 4], "x": 12.5, "y": 1}, + {"label": "MX210", "matrix": [9, 7], "x": 13.5, "y": 1.25}, + {"label": "MX206", "matrix": [10, 4], "x": 14.5, "y": 1.75}, + {"label": "MX202", "matrix": [10, 7], "x": 15.5, "y": 1.75}, + {"label": "MX103", "matrix": [4, 7], "x": 0, "y": 2.75}, + {"label": "MX107", "matrix": [4, 4], "x": 1, "y": 2.75}, + {"label": "MX111", "matrix": [3, 7], "x": 2, "y": 2.25}, + {"label": "MX115", "matrix": [3, 4], "x": 3, "y": 2}, + {"label": "MX119", "matrix": [2, 7], "x": 4, "y": 2.25}, + {"label": "MX123", "matrix": [2, 4], "x": 5, "y": 2.5}, + {"label": "LPED3", "matrix": [0, 3], "x": 7, "y": 2}, + {"label": "RPED3", "matrix": [6, 4], "x": 8.5, "y": 2}, + {"label": "MX223", "matrix": [8, 3], "x": 10.5, "y": 2.5}, + {"label": "MX219", "matrix": [8, 0], "x": 11.5, "y": 2.25}, + {"label": "MX215", "matrix": [9, 3], "x": 12.5, "y": 2}, + {"label": "MX211", "matrix": [9, 0], "x": 13.5, "y": 2.25}, + {"label": "MX207", "matrix": [10, 3], "x": 14.5, "y": 2.75}, + {"label": "MX203", "matrix": [10, 0], "x": 15.5, "y": 2.75}, + {"label": "MX104", "matrix": [4, 6], "x": 0, "y": 3.75}, + {"label": "MX108", "matrix": [4, 5], "x": 1, "y": 3.75}, + {"label": "MX112", "matrix": [3, 6], "x": 2, "y": 3.25}, + {"label": "MX116", "matrix": [3, 5], "x": 3, "y": 3}, + {"label": "MX120", "matrix": [2, 6], "x": 4, "y": 3.25}, + {"label": "MX124", "matrix": [2, 5], "x": 5, "y": 3.5}, + {"label": "MX131", "matrix": [0, 0], "x": 6, "y": 4}, + {"label": "MX130", "matrix": [0, 4], "x": 7, "y": 4.25}, + {"label": "MX230", "matrix": [6, 3], "x": 8.5, "y": 4.25}, + {"label": "MX231", "matrix": [6, 7], "x": 9.5, "y": 4}, + {"label": "MX224", "matrix": [8, 2], "x": 10.5, "y": 3.5}, + {"label": "MX220", "matrix": [8, 1], "x": 11.5, "y": 3.25}, + {"label": "MX216", "matrix": [9, 2], "x": 12.5, "y": 3}, + {"label": "MX212", "matrix": [9, 1], "x": 13.5, "y": 3.25}, + {"label": "MX208", "matrix": [10, 2], "x": 14.5, "y": 3.75}, + {"label": "MX204", "matrix": [10, 1], "x": 15.5, "y": 3.75}, + {"label": "MX125", "matrix": [1, 7], "x": 2.5, "y": 4.25}, + {"label": "MX126", "matrix": [1, 6], "x": 3.5, "y": 4.25}, + {"label": "MX127", "matrix": [1, 5], "x": 4.5, "y": 4.5}, + {"label": "MX128", "matrix": [1, 4], "x": 5.5, "y": 5}, + {"label": "MX129", "matrix": [0, 5], "x": 6.5, "y": 5.25}, + {"label": "MX229", "matrix": [6, 2], "x": 9, "y": 5.25}, + {"label": "MX228", "matrix": [7, 3], "x": 10, "y": 5}, + {"label": "MX227", "matrix": [7, 2], "x": 11, "y": 4.5}, + {"label": "MX226", "matrix": [7, 1], "x": 12, "y": 4.25}, + {"label": "MX225", "matrix": [7, 0], "x": 13, "y": 4.25}, + {"label": "MYRL1", "matrix": [5, 0], "x": 0, "y": 6}, + {"label": "MYRL2", "matrix": [5, 1], "x": 1, "y": 6}, + {"label": "MYRL3", "matrix": [5, 2], "x": 2, "y": 6}, + {"label": "MYRL4", "matrix": [5, 3], "x": 3, "y": 6}, + {"label": "MYRL5", "matrix": [5, 4], "x": 5, "y": 6}, + {"label": "MYRR1", "matrix": [11, 0], "x": 8, "y": 6}, + {"label": "MYRR2", "matrix": [11, 1], "x": 9, "y": 6}, + {"label": "MYRR3", "matrix": [11, 2], "x": 10, "y": 6}, + {"label": "MYRR4", "matrix": [11, 3], "x": 11, "y": 6}, + {"label": "MYRR5", "matrix": [11, 4], "x": 13, "y": 6} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/splitkb/elora/keymaps/debug/config.h b/keyboards/splitkb/elora/keymaps/debug/config.h new file mode 100644 index 00000000000..0024fe4dfee --- /dev/null +++ b/keyboards/splitkb/elora/keymaps/debug/config.h @@ -0,0 +1,9 @@ +// Copyright 2024 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// Myriad boilerplate +#define MYRIAD_ENABLE + +#define RGBLIGHT_EFFECT_BREATHING \ No newline at end of file diff --git a/keyboards/splitkb/elora/keymaps/debug/keymap.c b/keyboards/splitkb/elora/keymaps/debug/keymap.c new file mode 100644 index 00000000000..a8a5973b00e --- /dev/null +++ b/keyboards/splitkb/elora/keymaps/debug/keymap.c @@ -0,0 +1,71 @@ +// Copyright 2024 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layers { + _DEFAULT = 0, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_DEFAULT] = LAYOUT_myr( + KC_A, KC_E, KC_I, KC_M, KC_Q, KC_U, KC_9, KC_9, S(KC_U), S(KC_Q), S(KC_M), S(KC_I), S(KC_E), S(KC_A), + KC_B, KC_F, KC_J, KC_N, KC_R, KC_V, KC_8, KC_8, S(KC_V), S(KC_R), S(KC_N), S(KC_J), S(KC_F), S(KC_B), + KC_C, KC_G, KC_K, KC_O, KC_S, KC_W, KC_7, KC_7, S(KC_W), S(KC_S), S(KC_O), S(KC_K), S(KC_G), S(KC_C), + KC_D, KC_H, KC_L, KC_P, KC_T, KC_X, KC_5, KC_6, KC_6, KC_5, S(KC_X), S(KC_T), S(KC_P), S(KC_L), S(KC_H), S(KC_D), + KC_0, KC_1, KC_2, KC_3, KC_4, KC_4, KC_3, KC_2, KC_1, KC_0, + + KC_A, KC_B, KC_C, KC_D, KC_E, KC_A, KC_B, KC_C, KC_D, KC_E + ), +}; + +void keyboard_post_init_user(void) { + #ifdef RGBLIGHT_ENABLE + rgblight_enable_noeeprom(); // enables RGB, without saving settings + rgblight_sethsv_noeeprom(HSV_RED); // sets the color to red without saving + rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3); // sets mode to Fast breathing without saving + #endif +} + +#ifdef ENCODER_ENABLE +bool encoder_update_user(uint8_t index, bool clockwise) { + // 0-3 left-half encoders + // 4-7 are right-half encoders + if (index == 0) { + tap_code(KC_0); + } else if (index == 1) { + tap_code(KC_1); + } else if (index == 2) { + tap_code(KC_2); + } else if (index == 3) { + // Myriad + tap_code(KC_3); + } else if (index == 4) { + tap_code(KC_4); + } else if (index == 5) { + tap_code(KC_5); + } else if (index == 6) { + tap_code(KC_6); + } else if (index == 7) { + // Myriad + tap_code(KC_7); + } + + if (clockwise) { + tap_code16(KC_PLUS); + } else { + tap_code(KC_MINUS); + } + + return false; +} +#endif + +#ifdef OLED_ENABLE +bool oled_task_user(void) { + // A 128x32 OLED rotated 90 degrees is 5 characters wide and 16 characters tall + // This example string should fill that neatly + oled_write_P(PSTR("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789!@#$%^&*()[]{}-=_+?"), is_keyboard_master()); + return false; +} +#endif diff --git a/keyboards/splitkb/elora/keymaps/debug/readme.md b/keyboards/splitkb/elora/keymaps/debug/readme.md new file mode 100644 index 00000000000..ec5705070c7 --- /dev/null +++ b/keyboards/splitkb/elora/keymaps/debug/readme.md @@ -0,0 +1,22 @@ +# Elora's Debug Keymap + +To make debugging your build as easy as possible, we have provided a special debugging keymap. It is not intended to actually type on, it is just here to make sure that your hardware is working correctly. + +## Keys + +The left side uses lowercase letters, the right side uses uppercase ones. + +## Encoders + +Encoders output a number, depending on the installed position. +These correspond to the index used for custom encoder code. + +The number is followed by either a `+` or a `-`, depending on the direction turned. + +## LEDs + +Underglow RGB should be fading between red and off. + +## OLEDs + +Both the primary and secondary side should be filled with characters. diff --git a/keyboards/splitkb/elora/keymaps/debug/rules.mk b/keyboards/splitkb/elora/keymaps/debug/rules.mk new file mode 100644 index 00000000000..6c52b64847e --- /dev/null +++ b/keyboards/splitkb/elora/keymaps/debug/rules.mk @@ -0,0 +1,2 @@ +RGB_MATRIX_ENABLE = no +RGBLIGHT_ENABLE = yes \ No newline at end of file diff --git a/keyboards/splitkb/elora/keymaps/default/config.h b/keyboards/splitkb/elora/keymaps/default/config.h new file mode 100644 index 00000000000..e35c193957c --- /dev/null +++ b/keyboards/splitkb/elora/keymaps/default/config.h @@ -0,0 +1,7 @@ +// Copyright 2024 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// Myriad boilerplate +#define MYRIAD_ENABLE \ No newline at end of file diff --git a/keyboards/splitkb/elora/keymaps/default/keymap.c b/keyboards/splitkb/elora/keymaps/default/keymap.c new file mode 100644 index 00000000000..84f53561fd1 --- /dev/null +++ b/keyboards/splitkb/elora/keymaps/default/keymap.c @@ -0,0 +1,320 @@ +// Copyright 2024 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layers { + _QWERTY = 0, + _DVORAK, + _COLEMAK_DH, + _NAV, + _SYM, + _FUNCTION, + _ADJUST, +}; + +// Aliases for readability +#define QWERTY DF(_QWERTY) +#define COLEMAK DF(_COLEMAK_DH) +#define DVORAK DF(_DVORAK) + +#define SYM MO(_SYM) +#define NAV MO(_NAV) +#define FKEYS MO(_FUNCTION) +#define ADJUST MO(_ADJUST) + +#define CTL_ESC MT(MOD_LCTL, KC_ESC) +#define CTL_QUOT MT(MOD_RCTL, KC_QUOTE) +#define CTL_MINS MT(MOD_RCTL, KC_MINUS) +#define ALT_ENT MT(MOD_LALT, KC_ENT) + +// Note: LAlt/Enter (ALT_ENT) is not the same thing as the keyboard shortcut Alt+Enter. +// The notation `mod/tap` denotes a key that activates the modifier `mod` when held down, and +// produces the key `tap` when tapped (i.e. pressed and released). + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* + * Base Layer: QWERTY + * + * ,-------------------------------------------. ,------. ,------. ,-------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | |LShift| |RShift| | 6 | 7 | 8 | 9 | 0 | Esc | + * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | |LCtrl | | RCtrl| | Y | U | I | O | P | Bksp | + * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| + * |Ctrl/Esc| A | S | D | F | G | | LAlt | | RAlt | | H | J | K | L | ; : |Ctrl/' "| + * |--------+------+------+------+------+------+------+------| |------|------+------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + * | | | Enter| | | | | | | | | + * `----------------------------------' `----------------------------------' + * + * ,----------------------------. ,------. ,----------------------------. ,------. + * | Prev | Next | Pause | Stop | | Mute | | Prev | Next | Pause | Stop | | Mute | + * `----------------------------' `------' `----------------------------' '------' + */ + [_QWERTY] = LAYOUT_myr( + KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_LSFT, KC_RSFT, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_ESC, + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_LCTL, KC_RCTL, KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC, + CTL_ESC , KC_A , KC_S , KC_D , KC_F , KC_G , KC_LALT, KC_RALT, KC_H , KC_J , KC_K , KC_L ,KC_SCLN,CTL_QUOT, + KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_N , KC_M ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, + ADJUST , KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP, + + KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE + ), + +/* + * Base Layer: Dvorak + * + * ,-------------------------------------------. ,------. ,------. ,-------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | |LShift| |RShift| | 6 | 7 | 8 | 9 | 0 | Esc | + * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| + * | Tab | ' " | , < | . > | P | Y | |LCtrl | | RCtrl| | F | G | C | R | L | Bksp | + * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| + * |Ctrl/Esc| A | O | E | U | I | | LAlt | | RAlt | | D | H | T | N | S |Ctrl/- _| + * |--------+------+------+------+------+------+------+------| |------|------+------+------+------+------+------+--------| + * | LShift | ; : | Q | J | K | X | [ { |CapsLk| |F-keys| ] } | B | M | W | V | Z | RShift | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + * | | | Enter| | | | | | | | | + * `----------------------------------' `----------------------------------' + * + * ,----------------------------. ,------. ,----------------------------. ,------. + * | Prev | Next | Pause | Stop | | Mute | | Prev | Next | Pause | Stop | | Mute | + * `----------------------------' `------' `----------------------------' '------' + */ + [_DVORAK] = LAYOUT_myr( + KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_LSFT, KC_RSFT, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_ESC, + KC_TAB ,KC_QUOTE,KC_COMM, KC_DOT, KC_P , KC_Y , KC_LCTL, KC_RCTL, KC_F, KC_G , KC_C , KC_R , KC_L , KC_BSPC, + CTL_ESC , KC_A , KC_O , KC_E , KC_U , KC_I , KC_LALT, KC_RALT, KC_D, KC_H , KC_T , KC_N , KC_S , CTL_MINS, + KC_LSFT ,KC_SCLN, KC_Q , KC_J , KC_K , KC_X , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_B, KC_M , KC_W , KC_V , KC_Z , KC_RSFT, + ADJUST, KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP, + + KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE + ), + +/* + * Base Layer: Colemak DH + * + * ,-------------------------------------------. ,------. ,------. ,-------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | |LShift| |RShift| | 6 | 7 | 8 | 9 | 0 | Esc | + * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| + * | Tab | Q | W | F | P | B | |LCtrl | | RCtrl| | J | L | U | Y | ; : | Bksp | + * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| + * |Ctrl/Esc| A | R | S | T | G | | LAlt | | RAlt | | M | N | E | I | O |Ctrl/' "| + * |--------+------+------+------+------+------+------+------| |------|------+------+------+------+------+------+--------| + * | LShift | Z | X | C | D | V | [ { |CapsLk| |F-keys| ] } | K | H | , < | . > | / ? | RShift | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + * | | | Enter| | | | | | | | | + * `----------------------------------' `----------------------------------' + * + * ,----------------------------. ,------. ,----------------------------. ,------. + * | Prev | Next | Pause | Stop | | Mute | | Prev | Next | Pause | Stop | | Mute | + * `----------------------------' `------' `----------------------------' '------' + */ + [_COLEMAK_DH] = LAYOUT_myr( + KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_LSFT, KC_RSFT, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_ESC, + KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_B , KC_LCTL, KC_RCTL, KC_J, KC_L , KC_U , KC_Y ,KC_SCLN, KC_BSPC, + CTL_ESC , KC_A , KC_R , KC_S , KC_T , KC_G , KC_LALT, KC_RALT, KC_M, KC_N , KC_E , KC_I , KC_O , CTL_QUOT, + KC_LSFT , KC_Z , KC_X , KC_C , KC_D , KC_V , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_K, KC_H ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, + ADJUST, KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP, + + KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE + ), + +/* + * Nav Layer: Media, navigation + * + * ,-------------------------------------------. ,------. ,------. ,-------------------------------------------. + * | | | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| + * | | | | | | | | | | | | PgUp | Home | ↑ | End | VolUp| Delete | + * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| + * | | GUI | Alt | Ctrl | Shift| | | | | | | PgDn | ← | ↓ | → | VolDn| Insert | + * |--------+------+------+------+------+------+------+------| |------|------+------+------+------+------+------+--------| + * | | | | | | | |ScLck | | | | Pause|M Prev|M Play|M Next|VolMut| PrtSc | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * + * ,----------------------------. ,------. ,----------------------------. ,------. + * | Prev | Next | Pause | Stop | | Mute | | Prev | Next | Pause | Stop | | Mute | + * `----------------------------' `------' `----------------------------' '------' + */ + [_NAV] = LAYOUT_myr( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_VOLU, KC_DEL, + _______, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, _______, _______, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_VOLD, KC_INS, + _______, _______, _______, _______, _______, _______, _______, KC_SCRL, _______, _______,KC_PAUSE, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_PSCR, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +/* + * Sym Layer: Numbers and symbols + * + * ,-------------------------------------------. ,------. ,------. ,-------------------------------------------. + * | | | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| + * | ` | 1 | 2 | 3 | 4 | 5 | | | | | | 6 | 7 | 8 | 9 | 0 | = | + * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| + * | ~ | ! | @ | # | $ | % | | | | | | ^ | & | * | ( | ) | + | + * |--------+------+------+------+------+------+------+------| |------|------+------+------+------+------+------+--------| + * | | | \ | : | ; | - | [ | { | | | | } | ] | _ | , | . | / | ? | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * + * ,-----------------------------. ,------. ,---------------------------. ,------. + * | | | | | | | | | | | | | | + * `-----------------------------' `------' `---------------------------' '------' + */ + [_SYM] = LAYOUT_myr( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , _______, _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_EQL , + KC_TILD , KC_EXLM, KC_AT , KC_HASH, KC_DLR, KC_PERC, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PLUS, + KC_PIPE , KC_BSLS, KC_COLN, KC_SCLN, KC_MINS, KC_LBRC, KC_LCBR, _______, _______, KC_RCBR, KC_RBRC, KC_UNDS, KC_COMM, KC_DOT, KC_SLSH, KC_QUES, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +/* + * Function Layer: Function keys + * + * ,-------------------------------------------. ,------. ,------. ,-------------------------------------------. + * | | | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| + * | | F9 | F10 | F11 | F12 | | | | | | | | | | | | | + * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| + * | | F5 | F6 | F7 | F8 | | | | | | | | Shift| Ctrl | Alt | GUI | | + * |--------+------+------+------+------+------+------+------| |------|------+------+------+------+------+------+--------| + * | | F1 | F2 | F3 | F4 | | | | | | | | | | | | | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * + * ,-----------------------------. ,------. ,---------------------------. ,------. + * | | | | | | | | | | | | | | + * `-----------------------------' `------' `---------------------------' '------' + */ + [_FUNCTION] = LAYOUT_myr( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_F9 , KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , _______, _______, _______, _______, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, _______, + _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +/* + * Adjust Layer: Default layer settings, RGB + * + * ,-------------------------------------------. ,------. ,------. ,-------------------------------------------. + * | | | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| + * | | | |QWERTY| | | | | | | | | | | | | | + * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| + * | | | |Dvorak| | | | | | | | TOG | SAI | HUI | VAI | MOD | | + * |--------+------+------+------+------+------+------+------| |------|------+------+------+------+------+------+--------| + * | | | |Colmak| | | | | | | | | SAD | HUD | VAD | RMOD | | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * + * ,-----------------------------. ,------. ,---------------------------. ,------. + * | | | | | | | | | | | | | | + * `-----------------------------' `------' `---------------------------' '------' + */ + [_ADJUST] = LAYOUT_myr( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, QWERTY , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, DVORAK , _______, _______, _______, _______, RM_TOGG, RM_SATU, RM_HUEU, RM_VALU, RM_NEXT, _______, + _______, _______, _______, COLEMAK, _______, _______,_______, _______, _______, _______, _______, RM_SATD, RM_HUED, RM_VALD, RM_PREV, _______, + _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + + ), + +// /* +// * Layer template - LAYOUT +// * +// * ,-------------------------------------------. ,------. ,------. ,-------------------------------------------. +// * | | | | | | | | | | | | | | | | | | +// * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| +// * | | | | | | | | | | | | | | | | | | +// * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| +// * | | | | | | | | | | | | | | | | | | +// * |--------+------+------+------+------+------+------+------| |------|------+------+------+------+------+------+--------| +// * | | | | | | | | | | | | | | | | | | +// * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' +// * | | | | | | | | | | | | +// * | | | | | | | | | | | | +// * `----------------------------------' `----------------------------------' +// */ +// [_LAYERINDEX] = LAYOUT( +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +// ), + +// /* +// * Layer template - LAYOUT_myr +// * +// * ,-------------------------------------------. ,------. ,------. ,-------------------------------------------. +// * | | | | | | | | | | | | | | | | | | +// * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| +// * | | | | | | | | | | | | | | | | | | +// * |--------+------+------+------+------+------| |------| |------| |------+------+------+------+------+--------| +// * | | | | | | | | | | | | | | | | | | +// * |--------+------+------+------+------+------+------+------| |------|------+------+------+------+------+------+--------| +// * | | | | | | | | | | | | | | | | | | +// * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' +// * | | | | | | | | | | | | +// * | | | | | | | | | | | | +// * `----------------------------------' `----------------------------------' +// * +// * ,-----------------------------. ,------. ,---------------------------. ,------. +// * | | | | | | | | | | | | | | +// * `-----------------------------' `------' `---------------------------' '------' +// */ +// [_LAYERINDEX] = LAYOUT_myr( +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +// ), +}; + +/* The default OLED and rotary encoder code can be found at the bottom of qmk_firmware/keyboards/splitkb/elora/rev1/rev1.c + * These default settings can be overriden by your own settings in your keymap.c + * DO NOT edit the rev1.c file; instead override the weakly defined default functions by your own. + */ + +/* DELETE THIS LINE TO UNCOMMENT (1/2) +#ifdef OLED_ENABLE +bool oled_task_user(void) { + // Your code goes here +} +#endif + +#ifdef ENCODER_ENABLE +bool encoder_update_user(uint8_t index, bool clockwise) { + // Your code goes here +} +#endif +DELETE THIS LINE TO UNCOMMENT (2/2) */ diff --git a/keyboards/splitkb/elora/keymaps/default/readme.md b/keyboards/splitkb/elora/keymaps/default/readme.md new file mode 100644 index 00000000000..7e95db3938c --- /dev/null +++ b/keyboards/splitkb/elora/keymaps/default/readme.md @@ -0,0 +1,50 @@ +# Elora's Default Keymap +The default keymap contains 5 layers which allows it to include all keys found on an ANSI layout TKL keyboard plus media keys. +Hardware features of the Elora such as OLEDs, rotary encoders and underglow are also supported. + +The Elora keymap is in essence identical to the [Kyria keymap](https://github.com/qmk/qmk_firmware/blob/master/keyboards/splitkb/kyria/keymaps/default/readme.md), just with an additional number row. A deep dive into the keymap is provided there. + +The five different layers are the following: +1. Base layer (QWERTY, Colemak-DH or Dvorak) +2. Navigation layer +3. Symbols/Numbers layer +4. Function layer +5. Adjust layer + +## Base layer(s) +### Qwerty +![Qwerty](https://i.imgur.com/SZB1Z5gh.jpg) + +### Dvorak +![Dvorak](https://i.imgur.com/RWB5Qhnh.jpg) + +### Colemak-DH +![Colemak](https://i.imgur.com/4DjdGsGh.jpg) + +## Navigation layer +![Navigation](https://i.imgur.com/tDM1MZeh.jpg) + +## Symbols layer +![Symbol](https://i.imgur.com/9LsxnLRh.jpg) + +## Function layer +![Function](https://i.imgur.com/KMCqh7Ch.jpg) + +## Adjust layer +![Adjust](https://i.imgur.com/6WtMo8ih.jpg) + +# Hardware Features + +## Rotary Encoder +The left rotary encoders are programmed to send Left or Right whereas the right encoder sends PgUp or PgDn on every turn. + +## OLEDs +The OLEDs display the current layer at the top of the active layers stack, the Elora logo and lock status (caps lock, num lock, scroll lock). + +## Underglow +The underglow LEDs should default red. + +## Going further… +This default keymap can be used as is, unchanged, as a daily driver for your Elora but you're invited to treat your keymap like a bonsai. At the beginning, it's just like the default keymap but from time to time, you can tweak it a little. Cut a little key here, let another combo grow there. Slowly but surely it will be a unique keymap that will fit you like a glove. + +Check out the #keymap-ideas channel on the official splitkb Discord server for inspiration. \ No newline at end of file diff --git a/keyboards/splitkb/elora/readme.md b/keyboards/splitkb/elora/readme.md new file mode 100644 index 00000000000..2935b7bd7d0 --- /dev/null +++ b/keyboards/splitkb/elora/readme.md @@ -0,0 +1,43 @@ +![Elora](https://i.imgur.com/AUCjyBuh.jpg) + +# Elora +The Elora is a 62-key keyboard, based on the Kyria by splitkb.com. It comes preassembled, is compatible with Vial so you don't need to program or compile your firmware, and accepts Myriad modules so you can add cool features with just a screwdriver. + +Keyboard Maintainer: [splitkb.com](https://github.com/splitkb) +Hardware Availability: [splitkb.com](https://splitkb.com). + +Make example for this keyboard (after setting up your build environment): + + make splitkb/elora/rev1:default + +The keyboard can be flashed by copying the resulting `splitkb_elora_rev1_default.uf2` file onto the `RPI-RP2` flash drive. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader +You can enter the bootloader in 3 ways: + +* **Reset button**: Double-tap the reset button on the side of the PCB. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. +* **Bootloader reset**: As a last resort, hold down the small "Boot" button near the USB connector while plugging in the keyboard. + +# Features +The Elora is an evolved version of the Kyria that comes with a number row, and has an emphasis on ease of use for beginners, as well as being hackable for advanced customers. It comes preassembled: the only tool you need is a screwdriver. + +- A comfortable 62 keys, including a number row. It's perfect for beginners who want to feel what a split keyboard feels like without the layout feeling cramped, and a nice option for people who know they frequently use the number row, like typists, gamers, some software engineers and Excel warriors. +- Powered by an RP2040 controller, it’s quick enough to handle anything a keyboard should be able to do… and much more. +- 16 megabytes of flash memory ensure that it’s ready for just about everything. Putting a sped-up movie on an RGB display you’ve wired up to your prototyping Myriad module? Say no more. +- Supports MX switches with preassembled hot-swap sockets. No soldering iron needed. You can solder them to the alternative set of pads if you'd prefer to, though. +- Supports Choc switches by soldering. This does require assembly with tools like a soldering iron. Hot swap is still possible using Mill-Max sockets, which too require soldering. +- Subtle RGB underglow with 6 LEDs per half to personalise the colour of your keyboard. It can be disabled for those who don't want it. +- Supports the tenting puck, which allows you to mount it to most camera tripods so you can place your keyboard at exactly the angle you want it. +- Supports up to one Myriad module per half, so you can add a myriad of available modules without having to solder. +- Supports up to one 128x64 pixel OLED display per half, which doesn't require soldering. +- There's a TRRS jack for foot pedal or external switch support. You can use one such switch per half by default, but the wiring supports up to three external switches per half. Great for accessibility purposes, or just plain fun if you want to hook up a digital foot pedal to your voice chat software, game or whatever else you can think of. +- If you're into soldering, you can put up to three encoders per half on seven predefined locations: near the top of the thumb cluster, at the innermost thumb cluster button, or each location on the outer columns. If you don't want to solder, you can of course still use a rotary encoder Myriad module. + +# What's Myriad? + +![A collection of Myriad modules](https://i.imgur.com/86u7BLMl.jpg) + +Myriad is a system that allows you to plug in modules to add new functionality to your keyboard, all without having to solder. It's an [open standard](https://myriad.splitkb.com/), meaning that anyone will be able to create their own modules, which you can then plug into your keyboard. It's a very capable standard, so we're very curious to see what other modules you will come up with! diff --git a/keyboards/splitkb/elora/rev1/config.h b/keyboards/splitkb/elora/rev1/config.h new file mode 100644 index 00000000000..7633cf00aff --- /dev/null +++ b/keyboards/splitkb/elora/rev1/config.h @@ -0,0 +1,60 @@ +// Copyright 2024 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// Make it easier to enter the bootloader +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U + +// I2C0, onboard SSD1306 socket and I2C to Myriad module +#define I2C_DRIVER I2CD0 +#define I2C1_SDA_PIN GP0 +#define I2C1_SCL_PIN GP1 +// We need to slow down the I2C clock because the default of 400.000 +// fails to communicate with Zetta ZD24C02A EEPROM on a Myriad card. +#define I2C1_CLOCK_SPEED 100000 + +// SPI1, both for onboard matrix data and SPI to Myriad module +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN GP10 +#define SPI_MOSI_PIN GP11 +#define SPI_MISO_PIN GP12 + +// UART1, communication between the two halves +#define SERIAL_USART_FULL_DUPLEX +#define SERIAL_USART_DRIVER SIOD1 +#define SERIAL_USART_TX_PIN GP20 +#define SERIAL_USART_RX_PIN GP21 + +// Potential onboard speaker, not populated by default +#define AUDIO_PIN GP23 + +// Transmitting pointing device status to the master side +#define SPLIT_POINTING_ENABLE +#define POINTING_DEVICE_COMBINED + +// VBUS detection +#define USB_VBUS_PIN GP25 + +// Define matrix size +#define MATRIX_COLS 8 +#define MATRIX_ROWS 12 + +// Encoders +// 3 onboard, 1 for Myriad +#define NUM_ENCODERS_LEFT 4 +#define NUM_ENCODERS_RIGHT 4 +#define ENCODER_RESOLUTION 2 + +// OLED display +#define OLED_DISPLAY_128X64 +// If someone has only one OLED display +// and that display was on the slave side. +// It wouldn't work at all. This fixes that +// including some code in rev1.c but makes +// it so the timeout's are not synced +// between halves. +#undef SPLIT_OLED_ENABLE +#define OLED_TIMEOUT 0 + diff --git a/keyboards/splitkb/elora/rev1/halconf.h b/keyboards/splitkb/elora/rev1/halconf.h new file mode 100644 index 00000000000..9798aa34f98 --- /dev/null +++ b/keyboards/splitkb/elora/rev1/halconf.h @@ -0,0 +1,13 @@ +// Copyright 2024 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_SIO TRUE +#define HAL_USE_I2C TRUE +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD +#define HAL_USE_ADC TRUE + +#include_next diff --git a/keyboards/splitkb/elora/rev1/keyboard.json b/keyboards/splitkb/elora/rev1/keyboard.json new file mode 100644 index 00000000000..a2d02a9a492 --- /dev/null +++ b/keyboards/splitkb/elora/rev1/keyboard.json @@ -0,0 +1,108 @@ +{ + "keyboard_name": "Elora rev1", + "bootloader": "rp2040", + "features": { + "pointing_device": true, + "rgb_matrix": true, + "rgblight": false, + "encoder": true, + "oled": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "audio": false + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "multisplash": true, + "pixel_flow": true, + "pixel_fractal": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "solid_color": true, + "solid_multisplash": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "driver": "ws2812", + "layout": [ + {"x": 90, "y": 0, "flags": 2}, + {"x": 45, "y": 0, "flags": 2}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 45, "y": 64, "flags": 2}, + {"x": 90, "y": 64, "flags": 2}, + {"x": 134, "y": 0, "flags": 2}, + {"x": 179, "y": 0, "flags": 2}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 179, "y": 64, "flags": 2}, + {"x": 134, "y": 64, "flags": 2} + ], + "max_brightness": 150, + "split_count": [6, 6] + }, + "rgblight": { + "led_count": 12, + "split": true + }, + "split": { + "enabled": true, + "handedness": { + "pin": "GP14" + }, + "serial": { + "driver": "usart" + }, + "transport": { + "sync": { + "matrix_state": true + }, + "watchdog": true, + "watchdog_timeout": 3000 + } + }, + "usb": { + "pid": "0x9D9D" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP15" + } +} diff --git a/keyboards/splitkb/elora/rev1/matrix.c b/keyboards/splitkb/elora/rev1/matrix.c new file mode 100644 index 00000000000..625eafcd85b --- /dev/null +++ b/keyboards/splitkb/elora/rev1/matrix.c @@ -0,0 +1,57 @@ +// Copyright 2024 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "matrix.h" +#include "spi_master.h" + +// The matrix is hooked up to a chain of 74xx165 shift registers. +// Pin F0 acts as Chip Select (active-low) +// The signal goes to a NOT gate, whose output is wired to +// a) the latch pin of the shift registers +// b) the "enable" pin of a tri-state buffer, +// attached between the shift registers and MISO +// F0 has an external pull-up. +// SCK works as usual. +// +// Note that the matrix contains a variety of data. +// In addition to the keys, it also reads the rotary encoders +// and whether the board is the left/right half. + +void matrix_init_custom(void) { + // Note: `spi_init` has already been called + // in `keyboard_pre_init_kb()`, so nothing to do here +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + // Enough to hold the shift registers + uint16_t length = 5; + uint8_t data[length]; + + // Matrix SPI config + // 1) Pin + // 2) Mode: Register shifts on rising clock, and clock idles low + // pol = 0 & pha = 0 => mode 0 + // 3) LSB first: Register outputs H first, and we want H as MSB, + // as this result in a neat A-H order in the layout macro. + // 4) Divisor: 2 is the fastest possible, at Fclk / 2. + // range is 2-128 + spi_start(GP13, false, 0, 128); + spi_receive(data, length); + spi_stop(); + + bool matrix_has_changed = false; + for (uint8_t i = 0; i < length; i++) { + // Bitwise NOT because we use pull-ups, + // and switches short the pin to ground, + // but the matrix uses 1 to indicate a pressed switch + uint8_t word = ~data[i]; + matrix_has_changed |= current_matrix[i] ^ word; + current_matrix[i] = word; + } +#ifdef MYRIAD_ENABLE + bool myriad_hook_matrix(matrix_row_t current_matrix[]); + return matrix_has_changed || myriad_hook_matrix(current_matrix); +#else + return matrix_has_changed; +#endif +} \ No newline at end of file diff --git a/keyboards/splitkb/elora/rev1/mcuconf.h b/keyboards/splitkb/elora/rev1/mcuconf.h new file mode 100644 index 00000000000..58290187cf4 --- /dev/null +++ b/keyboards/splitkb/elora/rev1/mcuconf.h @@ -0,0 +1,18 @@ +// Copyright 2024 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef RP_SIO_USE_UART1 +#define RP_SIO_USE_UART1 TRUE + +#undef RP_I2C_USE_I2C0 +#define RP_I2C_USE_I2C0 TRUE + +#undef RP_SPI_USE_SPI1 +#define RP_SPI_USE_SPI1 TRUE + +#undef RP_ADC_USE_ADC1 +#define RP_ADC_USE_ADC1 TRUE diff --git a/keyboards/splitkb/elora/rev1/myriad.c b/keyboards/splitkb/elora/rev1/myriad.c new file mode 100644 index 00000000000..8bb6054df9d --- /dev/null +++ b/keyboards/splitkb/elora/rev1/myriad.c @@ -0,0 +1,315 @@ +// Copyright 2024 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +#include "myriad.h" + +#include "i2c_master.h" +#include "analog.h" + +typedef struct __attribute__((__packed__)) { + char magic_numbers[3]; + uint8_t version_major; + uint8_t version_minor; + uint8_t version_patch; + uint32_t checksum; + uint16_t payload_length; +} myriad_header_t; + +typedef struct __attribute__((__packed__)) { + uint16_t vendor_id; + uint16_t product_id; + uint8_t revision; +} identity_record_t; + +static bool myriad_reader(uint8_t *data, uint16_t length) { + const uint8_t eeprom_address = 0x50; // 1010 000 - NOT shifted for R/W bit + const uint16_t i2c_timeout = 100; // in milliseconds + + uint8_t num_pages = (length / 256) + 1; + uint8_t last_page_size = length % 256; + + for (int i = 0; i < num_pages; i++) { + uint8_t reg = 0; // We always start on a page boundary, so this is always zero + uint16_t read_length; + if (i == num_pages - 1) { + read_length = last_page_size; + } else { + read_length = 256; + } + i2c_status_t s = i2c_read_register((eeprom_address + i) << 1, reg, &(data[i*256]), read_length, i2c_timeout); + if (s != I2C_STATUS_SUCCESS) { return false; } + } + return true; +} + +static bool verify_header(myriad_header_t *header) { + char magic_numbers[] = {'M', 'Y', 'R'}; + uint8_t version_major = 1; + uint16_t version_minor = 0; + + for (int i = 0; i < sizeof(magic_numbers); i++) { + // Check that the header starts with 'MYR', indicating that this is indeed a Myriad card. + if (header->magic_numbers[i] != magic_numbers[i]) { + return false; + } + } + + if (header->version_major != version_major || header->version_minor > version_minor) { + // We obviously don't support cards with a different major version, because that indicates a breaking change. + // We also don't support cards with HIGHER minor version, + // as we are not guaranteed to be able to properly use all its features. + return false; + } + + if (header->payload_length > (2048 - sizeof(myriad_header_t))) { + // The EEPROM chips are *at most* 16kb / 2kB large, + // and some of that is taken up by the header. + // We obviously can't have a payload which exceeds the EEPROM's size. + return false; + } + + return true; +} + +// Sourced from https://en.wikipedia.org/wiki/Adler-32#Example_implementation +static bool verify_checksum(uint8_t *data, uint16_t length, uint32_t checksum) { + // Skip the header + data += sizeof(myriad_header_t); + length -= sizeof(myriad_header_t); + + const uint32_t MOD_ADLER = 65521; + + uint32_t a = 1, b = 0; + size_t index; + + // Process each byte of the data in order + for (index = 0; index < length; ++index) + { + a = (a + data[index]) % MOD_ADLER; + b = (b + a) % MOD_ADLER; + } + uint32_t calculated = ((b << 16) | a); + + return calculated == checksum; +} + +// Locates a specific entry by type +// Returns the offset of the PAYLOAD. +static int16_t locate_entry(uint8_t entry_type, uint8_t entry_data_length, uint8_t *data, uint16_t minimum, uint16_t maximum) { + if (minimum < sizeof(myriad_header_t)) { + // Records must start *after* the header. + // We silently allow this so the caller can just specify `0` as minimum for the first entry. + minimum = sizeof(myriad_header_t); + } + + uint16_t offset = minimum; + while (offset < maximum) { + if (data[offset] == entry_type) { + // Type matches! + if (data[offset+1] == entry_data_length) { + // We found what we are looking for, so return payload reference. + return offset+2; + } else { + // The entry is the wrong length? + return -2; + } + } else { + // No type match, so skip this one + // We skip the type byte, the length byte, and any potential data (with length stored in the length byte) + offset += 2 + data[offset+1]; + } + } + + // We hit the maximum and didn't find what we are looking for + return -1; +} + +static bool read_card_identity(uint8_t *data, uint16_t length, identity_record_t *record) { + const uint8_t identity_type = 0x01; + const uint8_t entry_data_length = sizeof(identity_record_t); + int16_t result = locate_entry(identity_type, entry_data_length, data, 0, length); + if (result < 0) { return false; } + + for (int i = 0; i < sizeof(identity_record_t); i++) { + ((uint8_t*)record)[i] = data[result + i]; + } + return true; +} + +static myriad_card_t _detect_myriad(void) { + gpio_set_pin_input(MYRIAD_PRESENT); + wait_ms(100); + // The pin has an external pull-up, and a Myriad card shorts it to ground. + #ifndef MYRIAD_OVERRIDE_PRESENCE + if (gpio_read_pin(MYRIAD_PRESENT)) { + return NONE; + } + #endif + + // Attempt to read header + myriad_header_t header; + if (!myriad_reader((uint8_t*)&header, sizeof(header))) { return INVALID; } + if (!verify_header(&header)) { return INVALID; } + + // Now that we have determined that the header is valid + // and we know the payload length, read the entire thing + uint8_t data[2048]; // Guaranteed to be large enough. + uint16_t data_size = sizeof(header)+header.payload_length; + if (!myriad_reader(data, data_size)) { return INVALID; } + if (!verify_checksum(data, data_size, header.checksum)) { return INVALID; } + + identity_record_t identity; + if (!read_card_identity(data, data_size, &identity)) { return INVALID; } + + if (identity.vendor_id == 0x0001 && identity.product_id == 0x0001) { + return SKB_ENCODER; + } else if (identity.vendor_id == 0x0001 && identity.product_id == 0x0002) { + return SKB_JOYSTICK; + } else if (identity.vendor_id == 0x0001 && identity.product_id == 0x0003) { + return SKB_SWITCHES; + } + + return UNKNOWN; +} + +// Determine card presence & identity +// Does NOT initialize the card for use! +myriad_card_t detect_myriad(void) { + static myriad_card_t card = UNINITIALIZED; + + if (card == UNINITIALIZED) { + i2c_init(); + card = _detect_myriad(); + } + + return card; +} + +static void myr_switches_init(void) { + gpio_set_pin_input_high(MYRIAD_GPIO1); // S4 + gpio_set_pin_input_high(MYRIAD_GPIO2); // S2 + gpio_set_pin_input_high(MYRIAD_GPIO3); // S1 + gpio_set_pin_input_high(MYRIAD_GPIO4); // S3 +} + +static void myr_encoder_init(void) { + gpio_set_pin_input_high(MYRIAD_GPIO1); // Press + gpio_set_pin_input_high(MYRIAD_GPIO2); // A + gpio_set_pin_input_high(MYRIAD_GPIO3); // B +} + +static uint16_t myr_joystick_timer; +static void myr_joystick_init(void) { + gpio_set_pin_input_high(MYRIAD_GPIO1); // Press + + myr_joystick_timer = timer_read(); +} + +// Make sure any card present is ready for use +static myriad_card_t myriad_card_init(void) { + static bool initialized = false; + + myriad_card_t card = detect_myriad(); + if (initialized) { + return card; + } + initialized = true; + + switch (card) { + case SKB_SWITCHES: + myr_switches_init(); + break; + case SKB_ENCODER: + myr_encoder_init(); + break; + case SKB_JOYSTICK: + myr_joystick_init(); + break; + default: + break; + } + return card; +} + +bool myriad_hook_matrix(matrix_row_t current_matrix[]) { + myriad_card_t card = myriad_card_init(); + uint8_t word = 0; + + if (card == SKB_SWITCHES) { + word |= ((!gpio_read_pin(MYRIAD_GPIO3)) & 1) << 0; + word |= ((!gpio_read_pin(MYRIAD_GPIO2)) & 1) << 1; + word |= ((!gpio_read_pin(MYRIAD_GPIO4)) & 1) << 2; + word |= ((!gpio_read_pin(MYRIAD_GPIO1)) & 1) << 3; + } else if (card == SKB_ENCODER) { + word |= ((!gpio_read_pin(MYRIAD_GPIO1)) & 1) << 4; + } else if (card == SKB_JOYSTICK) { + word |= ((!gpio_read_pin(MYRIAD_GPIO1)) & 1) << 4; + } else { + return false; + } + + // 5 bytes of on-board keys, so we are the 6th + bool matrix_has_changed = current_matrix[5] ^ word; + current_matrix[5] = word; + + return matrix_has_changed; +} + +static pin_t encoders_pad_a[NUM_ENCODERS_MAX_PER_SIDE]; +static pin_t encoders_pad_b[NUM_ENCODERS_MAX_PER_SIDE]; + +uint8_t myriad_hook_encoder(uint8_t index, bool pad_b) { + if (myriad_card_init() != SKB_ENCODER) { return 0; } + // 3 onboard encoders, so we are number 4 + pin_t pin = pad_b ? encoders_pad_b[index] : encoders_pad_a[index]; + encoders_pad_a[3] = MYRIAD_GPIO2; + encoders_pad_b[3] = MYRIAD_GPIO3; + return gpio_read_pin(pin) ? 1 : 0; +} + +report_mouse_t pointing_device_driver_get_report(report_mouse_t mouse_report) { + if (myriad_card_init() != SKB_JOYSTICK) { return mouse_report; } + + if (timer_elapsed(myr_joystick_timer) < 10) { + wait_ms(2); + return mouse_report; + } + + myr_joystick_timer = timer_read(); + + // `analogReadPin` returns 0..1023 + int32_t y = (analogReadPin(MYRIAD_ADC1) - 512) * -1; // Note: axis is flipped + int32_t x = analogReadPin(MYRIAD_ADC2) - 512; + // Values are now -512..512 + + // Create a dead zone in the middle where the mouse doesn't move + const int16_t dead_zone = 10; + if ((y < 0 && y > -1*dead_zone) || (y > 0 && y < dead_zone)) { + y = 0; + } + if ((x < 0 && x > -1*dead_zone) || (x > 0 && x < dead_zone)) { + x = 0; + } + + // quadratic movement + x = abs(x) * x / 5000; + y = abs(y) * y / 5000; + + // Clamp final value to make sure we don't under/overflow + if (y < -127) { y = -127; } + if (y > 127) { y = 127; } + if (x < -127) { x = -127; } + if (x > 127) { x = 127; } + + mouse_report.x = x; + mouse_report.y = y; + + return mouse_report; +} + +void pointing_device_driver_init(void) { + gpio_set_pin_input(MYRIAD_ADC1); // Y + gpio_set_pin_input(MYRIAD_ADC2); // X +} \ No newline at end of file diff --git a/keyboards/splitkb/elora/rev1/myriad.h b/keyboards/splitkb/elora/rev1/myriad.h new file mode 100644 index 00000000000..03fe2b5e6bb --- /dev/null +++ b/keyboards/splitkb/elora/rev1/myriad.h @@ -0,0 +1,52 @@ +// Copyright 2024 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include +#include +#include "matrix.h" + +typedef enum { UNINITIALIZED, NONE, INVALID, UNKNOWN, SKB_SWITCHES, SKB_ENCODER, SKB_JOYSTICK } myriad_card_t; + +bool myriad_hook_matrix(matrix_row_t current_matrix[]); +uint8_t myriad_hook_encoder(uint8_t index, bool pad_b); +myriad_card_t detect_myriad(void); + +//// Elora-specific pinout + +// Control signals +#define MYRIAD_PRESENT GP3 +#define MYRIAD_MCU_OVERRIDE GP2 + +// General I/O +#define MYRIAD_ADC1 GP26 +#define MYRIAD_ADC2 GP27 +#define MYRIAD_ADC1_CHANNEL 0 +#define MYRIAD_ADC2_CHANNEL 1 +#define MYRIAD_PWM1 GP23 +#define MYRIAD_PWM2 GP24 +#define MYRIAD_GPIO1 GP4 +#define MYRIAD_GPIO2 GP5 +#define MYRIAD_GPIO3 GP6 +#define MYRIAD_GPIO4 GP8 + +// UART +#define MYRIAD_RX GP17 +#define MYRIAD_TX GP16 +#define MYRIAD_CTS GP18 +#define MYRIAD_RTS GP19 + +// SPI +#define MYRIAD_MISO GP12 +#define MYRIAD_MOSI GP11 +#define MYRIAD_SCK GP10 +#define MYRIAD_MODULE_CS GP9 +#define MYRIAD_MATRIX_CS GP13 + +// I2C +#define MYRIAD_SDA GP0 +#define MYRIAD_SCL GP1 + +// RGB +#define MYRIAD_RGB GP15 diff --git a/keyboards/splitkb/elora/rev1/rev1.c b/keyboards/splitkb/elora/rev1/rev1.c new file mode 100644 index 00000000000..6ffc23a4cf8 --- /dev/null +++ b/keyboards/splitkb/elora/rev1/rev1.c @@ -0,0 +1,214 @@ +// Copyright 2024 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "rev1.h" +#include "spi_master.h" +#include "myriad.h" + +bool is_oled_enabled = true; + +//// HW init + +// Make sure all external hardware is +// in a known-good state on powerup +void keyboard_pre_init_kb(void) { + /// SPI Chip Select pins for various hardware + // Matrix CS + gpio_set_pin_output(GP13); + gpio_write_pin_high(GP13); + // Myriad Module CS + gpio_set_pin_output(GP9); + gpio_write_pin_high(GP9); + + gpio_set_pin_output(ELORA_CC1_PIN); + gpio_write_pin_low(ELORA_CC1_PIN); + + gpio_set_pin_output(ELORA_CC2_PIN); + gpio_write_pin_low(ELORA_CC2_PIN); + + // We have to get the SPI interface working quite early, + // So make sure it is available well before we need it + spi_init(); + + keyboard_pre_init_user(); +} + +//// Encoder functionality + +// The encoders are hooked in to the same shift registers as the switch matrix, so we can just piggyback on that. + +// Clone of a variant in quantum/matrix_common.c, but matrix-agnostic +bool mat_is_on(matrix_row_t mat[], uint8_t row, uint8_t col) { + return (mat[row] & ((matrix_row_t)1 << col)); +} + +uint8_t encoder_read_pads_from(uint8_t index, bool pad_b, matrix_row_t mat[]) { + // First two matrix rows: + // + // Pin A B C D E F G H + // Left: + // { __, __, __, __, __, __, A1, B1 }, + // { A3, B3, A2, B2, __, __, __, __ } + // Right: + // { A1, B1, __, __, __, __, __, __ }, + // { __, __, __, __, A2, B2, A3, B3 } + // + // See also rev1.h + + bool pad_value = false; + + if (is_keyboard_left()) { + if (index == 0) { + pad_value = pad_b ? mat_is_on(mat, 0, 7) : mat_is_on(mat, 0, 6); // B1, A1 + } else if (index == 1) { + pad_value = pad_b ? mat_is_on(mat, 1, 3) : mat_is_on(mat, 1, 2); // B2, A2 + } else if (index == 2) { + pad_value = pad_b ? mat_is_on(mat, 1, 1) : mat_is_on(mat, 1, 0); // B3, A3 + } + } else { + if (index == 0) { + pad_value = pad_b ? mat_is_on(mat, 0, 1) : mat_is_on(mat, 0, 0); // B1, A1 + } else if (index == 1) { + pad_value = pad_b ? mat_is_on(mat, 1, 5) : mat_is_on(mat, 1, 4); // B2, A2 + } else if (index == 2) { + pad_value = pad_b ? mat_is_on(mat, 1, 7) : mat_is_on(mat, 1, 6); // B3, A3 + } + } + + return pad_value ? 1 : 0; +} + +void encoder_quadrature_init_pin(uint8_t index, bool pad_b) { + // At this point the first matrix scan hasn't happened yet, + // so we can't use raw_matrix to initialize our encoder state + // as it contains all zeroes - so we have to do our own first scan + // The pins for myriad are initialized in myriad.c + + matrix_row_t mat[MATRIX_ROWS]; + + encoder_read_pads_from(index, pad_b, mat); +} + +extern matrix_row_t raw_matrix[MATRIX_ROWS]; // From quantum/matrix_common.c + +uint8_t encoder_quadrature_read_pin(uint8_t index, bool pad_b) { + // The matrix code already keeps the raw matrix up-to-date, + // so we only have to read the values from it + if(index <= 2) { + return encoder_read_pads_from(index, pad_b, raw_matrix); + } else { + #ifdef MYRIAD_ENABLE + return myriad_hook_encoder(index, pad_b); + #endif + return 0; + } + return 0; +} + +//// Default functionality + +#ifdef OLED_ENABLE +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + if (is_keyboard_left()) { + return OLED_ROTATION_270; + } else { + return OLED_ROTATION_90; + } +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + + if (!is_oled_enabled) { + oled_off(); + return false; + } else { + oled_on(); + } + + if (is_keyboard_master()) { + oled_write_P(PSTR("Elora rev1\n\n"), false); + + // Keyboard Layer Status + // Ideally we'd print the layer name, but no way to know that for sure + // Fallback option: just print the layer number + uint8_t layer = get_highest_layer(layer_state | default_layer_state); + oled_write_P(PSTR("Layer: "), false); + oled_write(get_u8_str(layer, ' '), false); + + // Keyboard LED Status + led_t led_state = host_keyboard_led_state(); + oled_write_P(led_state.num_lock ? PSTR(" NUM") : PSTR(" "), false); + oled_write_P(led_state.caps_lock ? PSTR("CAP") : PSTR(" "), false); + oled_write_P(led_state.scroll_lock ? PSTR("SCR") : PSTR(" "), false); + + // QMK Logo + // clang-format off + static const char PROGMEM qmk_logo[] = { + 0x81,0x82,0x83,0x84,0x0a, + 0xa1,0xa2,0xa3,0xa4,0x85,0x86,0x87,0x88,0x89,0x0a, + 0xc1,0xc2,0xc3,0xc4,0xa5,0xa6,0xa7,0xa8,0xa9,0x0a, + 0x8a,0x8b,0x8c,0x8d,0xc5,0xc6,0xc7,0xc8,0xc9,0x0a, + 0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0x00 + }; + // clang-format on + oled_set_cursor(0, oled_max_lines()-5); + oled_write_P(qmk_logo, false); + } else { + // Elora sigil + // clang-format off + static const char PROGMEM elora_logo[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128,192,224,224,240,248,120, 56, 60,188,158,158,222,206,207,207,207,239,239,239,239,239,239,207,207,207,206,222,158,158,188, 60, 56,120,248,240,224,224,192,128,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,224,248,252,126, 31,143,199,227,243,249,124, 60, 30, 31, 15, 7, 7, 3, 3, 3,131,193,225,241,249,253,255,255,255,255,127, 63, 31, 15, 7, 7, 7,143,223,254,252,252,249,243,227,199,143, 31,126,252,248,224,192, 0, 0, 0, 0, 0, + 0,192,240,254,255, 63, 7,227,248,252,127, 31, 15, 3, 1, 0, 0, 0,128,192,224,240,248,252,254,255,255,255,127, 63, 31, 15, 7, 3, 1,128,192,224,240,248,252,254,255,255,255,255,127, 63, 31, 15, 7, 15, 31,255,252,248,227, 7, 63,255,254,240,192, 0,252,255,255,255, 1,224,255,255,255, 7, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 31, 31, 31, 15, 7, 3, 1, 0, 0, 0,240,248,252,254,255,255,255,255,127, 63, 31, 15, 7, 3, 1,128,192,224,240,248,252,254,255,255,255,255,255,255,224, 1,255,255,255,252, + 63,255,255,255,128, 7,255,255,255,224, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,192,224,240,248,248,248,248,248,248, 0, 3, 3, 3, 3, 3, 3, 1,128,192,224,240,248,252,254,255,255,255,127, 63, 31, 15, 7, 3, 1,224,255,255,255, 7,128,255,255,255, 63, 0, 3, 15,127,255,252,224,199, 31, 63,254,248,240,192,128, 0, 0, 0, 0, 31, 31, 31, 31, 31, 31, 15, 7, 3, 1, 0, 0, 0, 0, 0, 0, 62, 63, 63, 63, 63, 63, 31, 15, 7, 3, 1, 0, 0, 0,128,192,240,248,254, 63, 31,199,224,252,255,127, 15, 3, 0, + 0, 0, 0, 0, 0, 3, 7, 31, 63,126,248,241,227,199,207,159, 62, 60,120,248,240,224,224,192,192,192,192,128,128,128,128,128,128,128,128,128,128,192,192,192,192,224,224,240,248,120, 60, 62,159,207,199,227,241,248,126, 63, 31, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 7, 7, 15, 31, 30, 28, 60, 61,121,121,123,115,243,243,243,247,247,247,247,247,247,243,243,243,115,123,121,121, 61, 60, 28, 30, 31, 15, 7, 7, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + // clang-format on + oled_set_cursor(0, (oled_max_lines()/2)-4); // logo is 8 lines high, so center vertically + oled_write_raw_P(elora_logo, sizeof(elora_logo)); + } + + return false; +} + +void housekeeping_task_kb(void) { + is_oled_enabled = last_input_activity_elapsed() < 60000; +} +#endif + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { + return false; + } + + if (index == 0 || index == 1 || index == 2) { + // Left side + // Arrow keys + if (clockwise) { + tap_code(KC_RIGHT); + } else { + tap_code(KC_LEFT); + } + } else if (index == 4 || index == 5 || index == 6) { + // Right side + // Page up/Page down + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } else if (index == 3 || index == 7) { + // Myriad + // Volume control + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return true; +} +#endif diff --git a/keyboards/splitkb/elora/rev1/rev1.h b/keyboards/splitkb/elora/rev1/rev1.h new file mode 100644 index 00000000000..d4c1ffedb2d --- /dev/null +++ b/keyboards/splitkb/elora/rev1/rev1.h @@ -0,0 +1,14 @@ +// Copyright 2024 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" + +//// Custom pins, might be useful in a keymap +// Wired to input of last shift register, overrides 10k pullup/pulldown +#define ELORA_SELFTEST_PIN GP14 + +// Can be used for USB current detection +#define ELORA_CC1_PIN GP28 +#define ELORA_CC2_PIN GP29 diff --git a/keyboards/splitkb/elora/rev1/rules.mk b/keyboards/splitkb/elora/rev1/rules.mk new file mode 100644 index 00000000000..643fdc9a1be --- /dev/null +++ b/keyboards/splitkb/elora/rev1/rules.mk @@ -0,0 +1,7 @@ +SPI_DRIVER_REQUIRED = yes +CUSTOM_MATRIX = lite + +# Myriad boilerplate +SRC += myriad.c matrix.c +ANALOG_DRIVER_REQUIRED = yes +POINTING_DEVICE_DRIVER = custom \ No newline at end of file From a585bd08a3febcedc4743ac7612f06a59a39b817 Mon Sep 17 00:00:00 2001 From: yiancar Date: Mon, 3 Mar 2025 03:32:25 +0000 Subject: [PATCH 252/365] Keycult Zero (#24927) * Initial Commit for Keycult Zero * Update keyboards/keycult/keycult_zero/keycult_zero.c Co-authored-by: Drashna Jaelre * Update keyboards/keycult/keycult_zero/rules.mk Co-authored-by: Drashna Jaelre --------- Co-authored-by: yiancar Co-authored-by: Drashna Jaelre --- keyboards/keycult/keycult_zero/keyboard.json | 603 ++++++++++++++++++ keyboards/keycult/keycult_zero/keycult_zero.c | 21 + .../keycult_zero/keymaps/default/keymap.c | 32 + keyboards/keycult/keycult_zero/readme.md | 32 + keyboards/keycult/keycult_zero/rules.mk | 2 + 5 files changed, 690 insertions(+) create mode 100755 keyboards/keycult/keycult_zero/keyboard.json create mode 100755 keyboards/keycult/keycult_zero/keycult_zero.c create mode 100644 keyboards/keycult/keycult_zero/keymaps/default/keymap.c create mode 100755 keyboards/keycult/keycult_zero/readme.md create mode 100644 keyboards/keycult/keycult_zero/rules.mk diff --git a/keyboards/keycult/keycult_zero/keyboard.json b/keyboards/keycult/keycult_zero/keyboard.json new file mode 100755 index 00000000000..4da493202f7 --- /dev/null +++ b/keyboards/keycult/keycult_zero/keyboard.json @@ -0,0 +1,603 @@ +{ + "keyboard_name": "Keycult Zero", + "manufacturer": "Yiancar-Designs", + "url": "https://yiancar-designs.com", + "maintainer": "Yiancar-Designs", + "usb": { + "vid": "0x8968", + "pid": "0x6337", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "B6", + "on_state": 0 + }, + "matrix_pins": { + "cols": ["A1", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "B2", "B10", "B11", "B12", "B13", "B14"], + "rows": ["A2", "B9", "B8", "B5", "B4"] + }, + "diode_direction": "COL2ROW", + "processor": "STM32F072", + "bootloader": "stm32-dfu", + "community_layouts": [ + "60_ansi", + "60_ansi_split_bs_rshift", + "60_ansi_tsangan", + "60_ansi_tsangan_split_bs_rshift", + "60_iso", + "60_iso_split_bs_rshift", + "60_iso_tsangan" + ], + "layout_aliases": { + "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + } + } +} diff --git a/keyboards/keycult/keycult_zero/keycult_zero.c b/keyboards/keycult/keycult_zero/keycult_zero.c new file mode 100755 index 00000000000..fdbfa8f2727 --- /dev/null +++ b/keyboards/keycult/keycult_zero/keycult_zero.c @@ -0,0 +1,21 @@ +/* Copyright 2024 Yiancar-Designs + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "quantum.h" + +void led_init_ports(void) { + // Set our LED pins as open drain outputs + gpio_set_pin_output_open_drain(LED_CAPS_LOCK_PIN); +} diff --git a/keyboards/keycult/keycult_zero/keymaps/default/keymap.c b/keyboards/keycult/keycult_zero/keymaps/default/keymap.c new file mode 100644 index 00000000000..998d514e29c --- /dev/null +++ b/keyboards/keycult/keycult_zero/keymaps/default/keymap.c @@ -0,0 +1,32 @@ +/* Copyright 2024 Yiancar-Designs + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT_all( /* Base */ + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL), + +[1] = LAYOUT_all( /* FN */ + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, + KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/keycult/keycult_zero/readme.md b/keyboards/keycult/keycult_zero/readme.md new file mode 100755 index 00000000000..f558808b161 --- /dev/null +++ b/keyboards/keycult/keycult_zero/readme.md @@ -0,0 +1,32 @@ +# Keycult Zero + +This is a standard 60% layout PCB. It supports VIA. + +* Keyboard Maintainer: [Yiancar](http://yiancar-designs.com/) and on [GitHub](https://github.com/yiancar) +* Hardware Supported: A 60% keyboard with STM32F072CB +* Hardware Availability: https://novelkeys.com/ + +## Instructions + +### Build + +Make example for this keyboard (after setting up your build environment): + + make keycult/keycult_zero:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +### Reset + +- Unplug +- Hold Escape +- Plug In +- Unplug +- Release Escape + +### Flash + +- Unplug +- Hold Escape +- Plug In +- Flash using QMK Toolbox or CLI (`make keycult/keycult_zero::flash`) diff --git a/keyboards/keycult/keycult_zero/rules.mk b/keyboards/keycult/keycult_zero/rules.mk new file mode 100644 index 00000000000..0ab54aaaf71 --- /dev/null +++ b/keyboards/keycult/keycult_zero/rules.mk @@ -0,0 +1,2 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF From cc09f171116ba09ef65a82edd96619e21b3420ca Mon Sep 17 00:00:00 2001 From: floookay <33830863+floookay@users.noreply.github.com> Date: Mon, 3 Mar 2025 06:34:16 +0100 Subject: [PATCH 253/365] add keyboard: zwerg (#24918) Co-authored-by: jack Co-authored-by: Joel Challis --- keyboards/zwerg/keyboard.json | 99 ++++++++++++++++++++++++ keyboards/zwerg/keymaps/default/keymap.c | 48 ++++++++++++ keyboards/zwerg/readme.md | 27 +++++++ 3 files changed, 174 insertions(+) create mode 100644 keyboards/zwerg/keyboard.json create mode 100644 keyboards/zwerg/keymaps/default/keymap.c create mode 100644 keyboards/zwerg/readme.md diff --git a/keyboards/zwerg/keyboard.json b/keyboards/zwerg/keyboard.json new file mode 100644 index 00000000000..a039d0fa392 --- /dev/null +++ b/keyboards/zwerg/keyboard.json @@ -0,0 +1,99 @@ +{ + "manufacturer": "floookay", + "keyboard_name": "zwerg", + "maintainer": "floookay", + "bootloader_instructions": "Press the reset button on the Gemini controller or right-side-bottom-right + esc", + "tags": ["ortho", "split", "40%", "OSHW"], + "processor": "RP2040", + "bootloader": "rp2040", + "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP8", "GP7", "GP6", "GP5", "GP4", "GP3"], + "rows": ["GP28", "GP27", "GP26", "GP15", "GP14"] + }, + "split": { + "enabled": true, + "serial": { + "driver": "vendor", + "pin": "GP13" + } + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x7EEE", + "vid": "0xF100" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + + {"matrix": [5, 5], "x": 8, "y": 0}, + {"matrix": [5, 4], "x": 9, "y": 0}, + {"matrix": [5, 3], "x": 10, "y": 0}, + {"matrix": [5, 2], "x": 11, "y": 0}, + {"matrix": [5, 1], "x": 12, "y": 0}, + {"matrix": [5, 0], "x": 13, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + + {"matrix": [6, 5], "x": 8, "y": 1}, + {"matrix": [6, 4], "x": 9, "y": 1}, + {"matrix": [6, 3], "x": 10, "y": 1}, + {"matrix": [6, 2], "x": 11, "y": 1}, + {"matrix": [6, 1], "x": 12, "y": 1}, + {"matrix": [6, 0], "x": 13, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + + {"matrix": [7, 5], "x": 8, "y": 2}, + {"matrix": [7, 4], "x": 9, "y": 2}, + {"matrix": [7, 3], "x": 10, "y": 2}, + {"matrix": [7, 2], "x": 11, "y": 2}, + {"matrix": [7, 1], "x": 12, "y": 2}, + {"matrix": [7, 0], "x": 13, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3}, + + {"matrix": [8, 4], "x": 9, "y": 3}, + {"matrix": [8, 3], "x": 10, "y": 3}, + {"matrix": [8, 2], "x": 11, "y": 3}, + {"matrix": [8, 1], "x": 12, "y": 3}, + {"matrix": [8, 0], "x": 13, "y": 3}, + + {"matrix": [4, 4], "x": 5, "y": 5, "h": 1.5}, + {"matrix": [4, 5], "x": 6, "y": 5, "h": 1.5}, + + {"matrix": [9, 5], "x": 8, "y": 5, "h": 1.5}, + {"matrix": [9, 4], "x": 9, "y": 5, "h": 1.5} + ] + } + } +} diff --git a/keyboards/zwerg/keymaps/default/keymap.c b/keyboards/zwerg/keymaps/default/keymap.c new file mode 100644 index 00000000000..81132bbe968 --- /dev/null +++ b/keyboards/zwerg/keymaps/default/keymap.c @@ -0,0 +1,48 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ + * │Tab│ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │Bsp│ + * ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ + * │Ctl│ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ ' │ + * ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ + * │Sft│ Z │ X │ C │ V │ B │ │ N │ M │ , │ . │ / │Sft│ + * ├───┼───┼───┼───┼───┼───┘ └───┼───┼───┼───┼───┼───┤ + * │Esc│lsu│rcl│Alt│Rai| ┌───┬───┐ ┌───┬───┐ │Low│AGr│Men│rcl│Cnf│ + * └───┴───┴───┴───┴───┘ │Spc│Del│ │Ent│Spc│ └───┴───┴───┴───┴───┘ + * │ │ │ │ │ │ + * └───┴───┘ └───┴───┘ + */ + [0] = LAYOUT( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_ESC, KC_LGUI, KC_RCTL, KC_LALT, MO(2), MO(1), KC_RALT, KC_APP, KC_RCTL, MO(3), + KC_SPC, KC_DEL, KC_ENT, KC_SPC + ), + [1] = LAYOUT( + _______, _______, KC_VOLU, KC_MUTE, KC_VOLD, _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______, _______, + _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______, + _______, _______, _______, KC_MSTP, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______ + ), + [2] = LAYOUT( + KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______ + ), + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______ + ) +}; diff --git a/keyboards/zwerg/readme.md b/keyboards/zwerg/readme.md new file mode 100644 index 00000000000..5fe045bffc1 --- /dev/null +++ b/keyboards/zwerg/readme.md @@ -0,0 +1,27 @@ +# zwerg + +![zwerg](https://i.imgur.com/hkFLvd2.jpeg) + +A 40% ortholinear split keyboard. + +* Keyboard Maintainer: [floookay](https://github.com/floookay) +* Hardware Supported: zwerg pcbs with 0xcb Gemini +* Hardware Availability: + +Make example for this keyboard (after setting up your build environment): + + make zwerg:default + +Flashing example for this keyboard: + + make zwerg:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the Gemini controller +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From b2ee1612fadd7b413122ad2d07af7f9e0907a35e Mon Sep 17 00:00:00 2001 From: Armand du Parc Locmaria Date: Mon, 3 Mar 2025 11:18:33 -0800 Subject: [PATCH 254/365] Fix Lily58 Lite Rev3 reversed columns (#24968) --- keyboards/lily58/lite_rev3/keyboard.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/lily58/lite_rev3/keyboard.json b/keyboards/lily58/lite_rev3/keyboard.json index 2073c0661e5..ddb1f1877e6 100644 --- a/keyboards/lily58/lite_rev3/keyboard.json +++ b/keyboards/lily58/lite_rev3/keyboard.json @@ -18,7 +18,7 @@ } }, "matrix_pins": { - "cols": ["GP8", "GP7", "GP6", "GP5", "GP4", "GP3"], + "cols": ["GP3", "GP4", "GP5", "GP6", "GP7", "GP8"], "rows": ["GP13", "GP12", "GP11", "GP10", "GP9"] }, "features": { From c2979e309f9c4cc758d9f1b1f37a5a9ff33b6426 Mon Sep 17 00:00:00 2001 From: takashicompany Date: Tue, 4 Mar 2025 04:21:47 +0900 Subject: [PATCH 255/365] Add new keyboard "Palmslave" (#24814) Co-authored-by: Duncan Sutherland Co-authored-by: Drashna Jaelre --- keyboards/takashicompany/palmslave/config.h | 6 ++ .../takashicompany/palmslave/keyboard.json | 84 +++++++++++++++++++ .../palmslave/keymaps/default/keymap.c | 70 ++++++++++++++++ keyboards/takashicompany/palmslave/readme.md | 39 +++++++++ 4 files changed, 199 insertions(+) create mode 100644 keyboards/takashicompany/palmslave/config.h create mode 100644 keyboards/takashicompany/palmslave/keyboard.json create mode 100644 keyboards/takashicompany/palmslave/keymaps/default/keymap.c create mode 100644 keyboards/takashicompany/palmslave/readme.md diff --git a/keyboards/takashicompany/palmslave/config.h b/keyboards/takashicompany/palmslave/config.h new file mode 100644 index 00000000000..d9d98bf85f4 --- /dev/null +++ b/keyboards/takashicompany/palmslave/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 takashicompany (@takashicompany) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define EE_HANDS diff --git a/keyboards/takashicompany/palmslave/keyboard.json b/keyboards/takashicompany/palmslave/keyboard.json new file mode 100644 index 00000000000..03d3f3e8499 --- /dev/null +++ b/keyboards/takashicompany/palmslave/keyboard.json @@ -0,0 +1,84 @@ +{ + "manufacturer": "takashicompany", + "keyboard_name": "Palmslave", + "maintainer": "takashicompany", + "build": { + "lto": true + }, + "development_board": "promicro", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["D4", "C6", "D7", "E6", "B4"], + "rows": ["F4", "F5", "F6", "F7"] + }, + "split": { + "enabled": true, + "matrix_pins": { + "right": { + "cols": ["B4", "E6", "D7", "C6", "D4"], + "rows": ["F4", "F5", "F6", "F7"] + } + }, + "serial": { + "pin": "D2" + } + }, + "url": "", + "usb": { + "device_version": "0.0.1", + "pid": "0x0063", + "vid": "0x7463" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.42, "w": 0.84, "h":0.84 }, + {"matrix": [0, 1], "x": 0.84, "y": 0.21, "w": 0.84, "h":0.84 }, + {"matrix": [0, 2], "x": 1.68, "y": 0, "w": 0.84, "h":0.84 }, + {"matrix": [0, 3], "x": 2.52, "y": 0.21, "w": 0.84, "h":0.84 }, + {"matrix": [0, 4], "x": 3.36, "y": 0.42, "w": 0.84, "h":0.84 }, + {"matrix": [4, 0], "x": 6.3, "y": 0.42, "w": 0.84, "h":0.84 }, + {"matrix": [4, 1], "x": 7.14, "y": 0.21, "w": 0.84, "h":0.84 }, + {"matrix": [4, 2], "x": 7.98, "y": 0, "w": 0.84, "h":0.84 }, + {"matrix": [4, 3], "x": 8.82, "y": 0.21, "w": 0.84, "h":0.84 }, + {"matrix": [4, 4], "x": 9.66, "y": 0.42, "w": 0.84, "h":0.84 }, + {"matrix": [1, 0], "x": 0, "y": 1.26, "w": 0.84, "h":0.84 }, + {"matrix": [1, 1], "x": 0.84, "y": 1.05, "w": 0.84, "h":0.84 }, + {"matrix": [1, 2], "x": 1.68, "y": 0.84, "w": 0.84, "h":0.84 }, + {"matrix": [1, 3], "x": 2.52, "y": 1.05, "w": 0.84, "h":0.84 }, + {"matrix": [1, 4], "x": 3.36, "y": 1.26, "w": 0.84, "h":0.84 }, + {"matrix": [5, 0], "x": 6.3, "y": 1.26, "w": 0.84, "h":0.84 }, + {"matrix": [5, 1], "x": 7.14, "y": 1.05, "w": 0.84, "h":0.84 }, + {"matrix": [5, 2], "x": 7.98, "y": 0.84, "w": 0.84, "h":0.84 }, + {"matrix": [5, 3], "x": 8.82, "y": 1.05, "w": 0.84, "h":0.84 }, + {"matrix": [5, 4], "x": 9.66, "y": 1.26, "w": 0.84, "h":0.84 }, + {"matrix": [2, 0], "x": 0, "y": 2.1, "w": 0.84, "h":0.84 }, + {"matrix": [2, 1], "x": 0.84, "y": 1.89, "w": 0.84, "h":0.84 }, + {"matrix": [2, 2], "x": 1.68, "y": 1.68, "w": 0.84, "h":0.84 }, + {"matrix": [2, 3], "x": 2.52, "y": 1.89, "w": 0.84, "h":0.84 }, + {"matrix": [2, 4], "x": 3.36, "y": 2.1, "w": 0.84, "h":0.84 }, + {"matrix": [6, 0], "x": 6.3, "y": 2.1, "w": 0.84, "h":0.84 }, + {"matrix": [6, 1], "x": 7.14, "y": 1.89, "w": 0.84, "h":0.84 }, + {"matrix": [6, 2], "x": 7.98, "y": 1.68, "w": 0.84, "h":0.84 }, + {"matrix": [6, 3], "x": 8.82, "y": 1.89, "w": 0.84, "h":0.84 }, + {"matrix": [6, 4], "x": 9.66, "y": 2.1, "w": 0.84, "h":0.84 }, + {"matrix": [3, 1], "x": 1.68, "y": 3.15, "w": 0.84, "h":0.84 }, + {"matrix": [3, 2], "x": 2.52, "y": 3.15, "w": 0.84, "h":0.84 }, + {"matrix": [3, 3], "x": 3.36, "y": 3.15, "w": 0.84, "h":0.84 }, + {"matrix": [3, 4], "x": 4.2, "y": 3.15, "w": 0.84, "h":0.84 }, + {"matrix": [7, 0], "x": 5.46, "y": 3.15, "w": 0.84, "h":0.84 }, + {"matrix": [7, 1], "x": 6.3, "y": 3.15, "w": 0.84, "h":0.84 }, + {"matrix": [7, 2], "x": 7.14, "y": 3.15, "w": 0.84, "h":0.84 }, + {"matrix": [7, 3], "x": 7.98, "y": 3.15, "w": 0.84, "h":0.84 } + ] + } + } +} diff --git a/keyboards/takashicompany/palmslave/keymaps/default/keymap.c b/keyboards/takashicompany/palmslave/keymaps/default/keymap.c new file mode 100644 index 00000000000..02747c0881a --- /dev/null +++ b/keyboards/takashicompany/palmslave/keymaps/default/keymap.c @@ -0,0 +1,70 @@ +// Copyright 2025 takashicompany (@takashicompany) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + LT(7, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, + LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, + KC_LCTL, KC_LGUI, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(2, KC_SPC), LT(1, KC_LNG1), KC_RGUI, KC_RCTL + ), + + [1] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + LCTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_INT1, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_INT3, + LSFT_T(KC_PLUS), KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, LGUI(KC_INT3), + KC_PLUS, KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3), + KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [3] = LAYOUT( + LT(7, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, + LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, + KC_LCTL, KC_LGUI, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(5, KC_SPC), LT(4, KC_LNG1), KC_RGUI, KC_RCTL + ), + + [4] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_CIRC, KC_AT, KC_SLSH, KC_MINS, KC_UNDS, KC_SCLN, KC_COLN, KC_LBRC, KC_RBRC, KC_INT3, + LT(5, KC_TILD), KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [5] = LAYOUT( + KC_EXLM, KC_DQUO, KC_HASH, KC_DLR, KC_PERC, KC_AMPR, KC_QUOT, KC_LPRN, KC_RPRN, KC_BSLS, + KC_TILD, KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, + KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [6] = LAYOUT( + KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, + KC_LCTL, KC_TRNS, KC_QUES, KC_EXLM, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, + KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_TRNS, KC_NO, KC_LNG1, KC_NO, KC_NO, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [7] = LAYOUT( + KC_NO, KC_TAB, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_NO, KC_NO, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_LSFT, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, MO(8), MO(9), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [8] = LAYOUT( + UG_TOGG, UG_NEXT, UG_HUEU, UG_SATU, UG_VALU, KC_NO, KC_NO, KC_NO, DF(0), DF(3), + RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + RGB_M_K, RGB_M_X, RGB_M_G, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/takashicompany/palmslave/readme.md b/keyboards/takashicompany/palmslave/readme.md new file mode 100644 index 00000000000..ea51a41ef72 --- /dev/null +++ b/keyboards/takashicompany/palmslave/readme.md @@ -0,0 +1,39 @@ +# Palmslave + +![Palmslave](https://i.imgur.com/oDluHBC.jpeg) + +Palmslave is a split keyboard with 0.8u (16mm) key pitch. +The size of a single key is 80% of the size of a key on a conventional keyboard. +Although the key size is more compact than usual, it has the advantage of requiring minimal finger movement. +The number of keys is 19 keys for one hand and 38 keys for two hands. +Keyswitches are compatible with Choc v1 and Choc v2. +The board can be fitted with a key switch socket, allowing the keyswitch to be replaced according to mood or fashion. + +Palmslaveは0.8u(16mm)キーピッチの分割型のキーボードです。 +一つのキーの大きさが従来のキーボードのキーと比較すると80%のサイズとなっています。 +通常よりコンパクトなキーサイズですが、指の動きが最小限で済むという強みがあります。 +キー数は片手で19キー、両手で38キーとなります。 +キースイッチはChoc v1とChoc v2に対応しています。 +基板はキースイッチソケットの取り付けが可能で、気分や流行でキースイッチを付け替えることが可能です。 + +* Keyboard Maintainer: [takashicompany](https://github.com/takashicompany) +* Hardware Supported: Palmslave PCB(s), x2 Pro Micro development board +* Hardware Availability: https://github.com/takashicompany/palmslave + +Make example for this keyboard (after setting up your build environment): + + make takashicompany/palmslave:default + +Flashing example for this keyboard: + + make takashicompany/palmslave:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From f0a5db96c8a128bdf7f8321fdc1e0011160aeb3a Mon Sep 17 00:00:00 2001 From: dnlnm <80830846+dnlnm@users.noreply.github.com> Date: Tue, 4 Mar 2025 03:22:37 +0800 Subject: [PATCH 256/365] Add keyboard Cloak (#24858) Co-authored-by: jack Co-authored-by: Drashna Jaelre --- keyboards/dnlnm/cloak/keyboard.json | 115 ++++++++++++++++++ .../dnlnm/cloak/keymaps/default/keymap.c | 68 +++++++++++ .../dnlnm/cloak/keymaps/default/rules.mk | 1 + keyboards/dnlnm/cloak/readme.md | 25 ++++ 4 files changed, 209 insertions(+) create mode 100644 keyboards/dnlnm/cloak/keyboard.json create mode 100644 keyboards/dnlnm/cloak/keymaps/default/keymap.c create mode 100644 keyboards/dnlnm/cloak/keymaps/default/rules.mk create mode 100644 keyboards/dnlnm/cloak/readme.md diff --git a/keyboards/dnlnm/cloak/keyboard.json b/keyboards/dnlnm/cloak/keyboard.json new file mode 100644 index 00000000000..fb429e789aa --- /dev/null +++ b/keyboards/dnlnm/cloak/keyboard.json @@ -0,0 +1,115 @@ +{ + "manufacturer": "dnlnm", + "keyboard_name": "Cloak", + "maintainer": "dnlnm", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "A9", "pin_b": "A10", "resolution": 2}, + {"pin_a": "B4", "pin_b": "B6", "resolution": 2} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["A8", "B15", "B14", "B13", "B11", "B10", "B2", "B1", "B0", "A7", "A6", "A5", "A4", "B8"], + "rows": ["B3", "B12", "A15", "B7", "B9"] + }, + "processor": "STM32F072", + "rgblight": { + "default": { + "on": false + }, + "driver": "ws2812", + "layers": { + "blink": true, + "enabled": true, + "override_rgb": true + }, + "led_count": 12 + }, + "url": "https://github.com/dnlnm/cloak-xt-stm32", + "usb": { + "device_version": "1.0.0", + "pid": "0xFCD4", + "vid": "0x7E7E" + }, + "ws2812": { + "pin": "B5" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.63, "y": 0}, + {"matrix": [0, 6], "x": 6.63, "y": 0}, + {"matrix": [0, 7], "x": 7.63, "y": 0}, + {"matrix": [0, 8], "x": 8.63, "y": 0}, + {"matrix": [0, 9], "x": 10, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1.25}, + {"matrix": [1, 2], "x": 2.5, "y": 1.25}, + {"matrix": [1, 3], "x": 3.5, "y": 1.25}, + {"matrix": [1, 4], "x": 4.5, "y": 1.25}, + {"matrix": [1, 5], "x": 5.5, "y": 1.25}, + {"matrix": [1, 6], "x": 6.5, "y": 1.25}, + {"matrix": [1, 7], "x": 7.5, "y": 1.25}, + {"matrix": [1, 8], "x": 8.5, "y": 1.25}, + {"matrix": [1, 9], "x": 9.5, "y": 1.25}, + {"matrix": [1, 10], "x": 10.5, "y": 1.25}, + {"matrix": [1, 11], "x": 11.5, "y": 1.25}, + {"matrix": [1, 12], "x": 12.5, "y": 1.25, "w": 1.5}, + {"matrix": [1, 13], "x": 14.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2.25}, + {"matrix": [2, 2], "x": 2.75, "y": 2.25}, + {"matrix": [2, 3], "x": 3.75, "y": 2.25}, + {"matrix": [2, 4], "x": 4.75, "y": 2.25}, + {"matrix": [2, 5], "x": 5.75, "y": 2.25}, + {"matrix": [2, 6], "x": 6.75, "y": 2.25}, + {"matrix": [2, 7], "x": 7.75, "y": 2.25}, + {"matrix": [2, 8], "x": 8.75, "y": 2.25}, + {"matrix": [2, 9], "x": 9.75, "y": 2.25}, + {"matrix": [2, 10], "x": 10.75, "y": 2.25}, + {"matrix": [2, 11], "x": 11.75, "y": 2.25, "w": 2.25}, + {"matrix": [2, 12], "x": 14.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3.25}, + {"matrix": [3, 2], "x": 3.25, "y": 3.25}, + {"matrix": [3, 3], "x": 4.25, "y": 3.25}, + {"matrix": [3, 4], "x": 5.25, "y": 3.25}, + {"matrix": [3, 5], "x": 6.25, "y": 3.25}, + {"matrix": [3, 6], "x": 7.25, "y": 3.25}, + {"matrix": [3, 7], "x": 8.25, "y": 3.25}, + {"matrix": [3, 8], "x": 9.25, "y": 3.25}, + {"matrix": [3, 9], "x": 10.25, "y": 3.25}, + {"matrix": [3, 10], "x": 11.25, "y": 3.25}, + {"matrix": [3, 11], "x": 12.25, "y": 3.25, "w": 1.75}, + {"matrix": [3, 12], "x": 14.25, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25, "w": 1.25}, + {"matrix": [4, 6], "x": 3.5, "y": 4.25, "w": 7}, + {"matrix": [4, 10], "x": 10.5, "y": 4.25, "w": 1.25}, + {"matrix": [4, 11], "x": 11.75, "y": 4.25}, + {"matrix": [4, 12], "x": 12.75, "y": 4.25, "w": 1.25}, + {"matrix": [4, 13], "x": 14.25, "y": 4.25} + ] + } + } +} diff --git a/keyboards/dnlnm/cloak/keymaps/default/keymap.c b/keyboards/dnlnm/cloak/keymaps/default/keymap.c new file mode 100644 index 00000000000..61733d2bbac --- /dev/null +++ b/keyboards/dnlnm/cloak/keymaps/default/keymap.c @@ -0,0 +1,68 @@ +// Copyright (C) 2025 dnlnm +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_MPLY, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC, KC_VOLU, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, KC_VOLD, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_MUTE, + KC_LCTL, KC_LGUI, MO(1), KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_PSCR), + + [1] = LAYOUT( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______), +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = {ENCODER_CCW_CW(MS_WHLU, MS_WHLD), ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [1] = {ENCODER_CCW_CW(UG_HUED, UG_HUEU), ENCODER_CCW_CW(UG_SATD, UG_SATU)}, +}; +#endif + +#ifdef RGBLIGHT_ENABLE + +// Light LEDs 10 & 11 in blue when caps lock is active. +const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {10, 2, HSV_BLUE} // Light 4 LEDs, starting with LED 6 +); +// Light LEDs 0 & 1 in blue when keyboard layer 1 is active +const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 2, HSV_BLUE} +); +// Light LEDs 4 & 5 in blue when keyboard layer 2 is active +const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {4, 2, HSV_BLUE} +); + +// Now define the array of layers. Later layers take precedence +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + my_capslock_layer, + my_layer1_layer, // Overrides caps lock layer + my_layer2_layer // Overrides other layers +); + +void keyboard_post_init_user(void) { + // Enable the LED layers + rgblight_layers = my_rgb_layers; +} + +bool led_update_user(led_t led_state) { + rgblight_set_layer_state(0, led_state.caps_lock); + return true; +} + +layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(1, layer_state_cmp(state, 1)); + rgblight_set_layer_state(2, layer_state_cmp(state, 2)); + return state; +} + +#endif diff --git a/keyboards/dnlnm/cloak/keymaps/default/rules.mk b/keyboards/dnlnm/cloak/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/dnlnm/cloak/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/dnlnm/cloak/readme.md b/keyboards/dnlnm/cloak/readme.md new file mode 100644 index 00000000000..99c50c8d437 --- /dev/null +++ b/keyboards/dnlnm/cloak/readme.md @@ -0,0 +1,25 @@ +# dnlnm/cloak + +![dnlnm/cloak](https://i.imgur.com/eZCUPvK.jpeg) + +* Keyboard Maintainer: [Daniel Naim](https://github.com/dnlnm) +* Hardware Supported: Cloak-XT +* Hardware Availability: https://github.com/dnlnm/cloak-xt-stm32 + +Make example for this keyboard (after setting up your build environment): + + make dnlnm/cloak:default + +Flashing example for this keyboard: + + make dnlnm/cloak:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Hold the boot button and tap the reset button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From fcfe0e8a952382e4fda442321090a07b09b607c0 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 4 Mar 2025 23:40:08 +0000 Subject: [PATCH 257/365] Fix `xelus/valor/rev3` compilation (#24976) --- keyboards/xelus/valor/rev3/{info.json => keyboard.json} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename keyboards/xelus/valor/rev3/{info.json => keyboard.json} (100%) diff --git a/keyboards/xelus/valor/rev3/info.json b/keyboards/xelus/valor/rev3/keyboard.json similarity index 100% rename from keyboards/xelus/valor/rev3/info.json rename to keyboards/xelus/valor/rev3/keyboard.json From 0302171facfa2992bfa9871e23c446d843d6a7bb Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 4 Mar 2025 23:40:28 +0000 Subject: [PATCH 258/365] Remove invalid RGB Matrix effects (#24977) --- keyboards/cipulot/ec_980c/keyboard.json | 3 +-- keyboards/gkeyboard/greatpad/keyboard.json | 1 - keyboards/splitkb/elora/rev1/keyboard.json | 1 - keyboards/splitkb/halcyon/kyria/rev4/keyboard.json | 1 - 4 files changed, 1 insertion(+), 5 deletions(-) diff --git a/keyboards/cipulot/ec_980c/keyboard.json b/keyboards/cipulot/ec_980c/keyboard.json index 35946fa623f..9be58d294ce 100644 --- a/keyboards/cipulot/ec_980c/keyboard.json +++ b/keyboards/cipulot/ec_980c/keyboard.json @@ -30,8 +30,7 @@ "rgb_matrix": { "animations": { "breathing": true, - "cycle_left_right": true, - "solid_color": true + "cycle_left_right": true }, "driver": "ws2812", "layout": [ diff --git a/keyboards/gkeyboard/greatpad/keyboard.json b/keyboards/gkeyboard/greatpad/keyboard.json index 6f55141333c..62edd1aef34 100644 --- a/keyboards/gkeyboard/greatpad/keyboard.json +++ b/keyboards/gkeyboard/greatpad/keyboard.json @@ -62,7 +62,6 @@ "rainbow_moving_chevron": true, "rainbow_pinwheels": true, "raindrops": true, - "solid_color": true, "solid_multisplash": true, "solid_reactive": true, "solid_reactive_cross": true, diff --git a/keyboards/splitkb/elora/rev1/keyboard.json b/keyboards/splitkb/elora/rev1/keyboard.json index a2d02a9a492..7996fdccb97 100644 --- a/keyboards/splitkb/elora/rev1/keyboard.json +++ b/keyboards/splitkb/elora/rev1/keyboard.json @@ -46,7 +46,6 @@ "rainbow_moving_chevron": true, "rainbow_pinwheels": true, "raindrops": true, - "solid_color": true, "solid_multisplash": true, "solid_reactive": true, "solid_reactive_cross": true, diff --git a/keyboards/splitkb/halcyon/kyria/rev4/keyboard.json b/keyboards/splitkb/halcyon/kyria/rev4/keyboard.json index c9e891964b1..aca43a8a163 100755 --- a/keyboards/splitkb/halcyon/kyria/rev4/keyboard.json +++ b/keyboards/splitkb/halcyon/kyria/rev4/keyboard.json @@ -52,7 +52,6 @@ "rainbow_moving_chevron": true, "rainbow_pinwheels": true, "raindrops": true, - "solid_color": true, "solid_multisplash": true, "solid_reactive": true, "solid_reactive_cross": true, From 3c6a69112690d32b83ed75d77896d7baa3924458 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 6 Mar 2025 23:17:21 +0000 Subject: [PATCH 259/365] keychron/c*_pro_v2: Migrate DIP_SWITCH_PINS (#24978) --- keyboards/keychron/c1_pro_v2/config.h | 3 --- keyboards/keychron/c1_pro_v2/info.json | 3 +++ keyboards/keychron/c2_pro_v2/config.h | 3 --- keyboards/keychron/c2_pro_v2/info.json | 3 +++ 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/keyboards/keychron/c1_pro_v2/config.h b/keyboards/keychron/c1_pro_v2/config.h index eb8ee47a96f..71c31218774 100644 --- a/keyboards/keychron/c1_pro_v2/config.h +++ b/keyboards/keychron/c1_pro_v2/config.h @@ -16,9 +16,6 @@ #pragma once -/* DIP switch */ -#define DIP_SWITCH_PINS { D2 } - /* Increase I2C speed to 1000 KHz */ #define I2C1_CLOCK_SPEED 400000 #define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 diff --git a/keyboards/keychron/c1_pro_v2/info.json b/keyboards/keychron/c1_pro_v2/info.json index af4e6017e4a..bec58b2a8d2 100644 --- a/keyboards/keychron/c1_pro_v2/info.json +++ b/keyboards/keychron/c1_pro_v2/info.json @@ -20,6 +20,9 @@ "indicators": { "caps_lock": "C9" }, + "dip_switch": { + "pins": ["D2"] + }, "matrix_pins": { "cols": ["A0", "A1", "A2", "A3", "C0", "C1", "C2", "C3", "A8", "C12", "B9", "C6", "C7", "C4", "C5", "A15", "B10"], "rows": ["B0", "B1", "B8", "B3", "B4", "B5"] diff --git a/keyboards/keychron/c2_pro_v2/config.h b/keyboards/keychron/c2_pro_v2/config.h index cde450aa685..2c1468fa62b 100644 --- a/keyboards/keychron/c2_pro_v2/config.h +++ b/keyboards/keychron/c2_pro_v2/config.h @@ -16,9 +16,6 @@ #pragma once -/* DIP switch */ -#define DIP_SWITCH_PINS { D2 } - /* Indication led */ #define LED_MAC_OS_PIN C10 #define LED_WIN_OS_PIN C11 diff --git a/keyboards/keychron/c2_pro_v2/info.json b/keyboards/keychron/c2_pro_v2/info.json index 06a592a0604..b2101518005 100644 --- a/keyboards/keychron/c2_pro_v2/info.json +++ b/keyboards/keychron/c2_pro_v2/info.json @@ -30,6 +30,9 @@ "caps_lock": "C9", "num_lock": "C8" }, + "dip_switch": { + "pins": ["D2"] + }, "layouts": { "LAYOUT_104_ansi": { "layout": [ From 6e1d3d6d077f50cb61d37f8310162b38b109fa87 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 6 Mar 2025 23:17:51 +0000 Subject: [PATCH 260/365] Add EOL to non-keyboard files (#24990) --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- data/constants/keycodes/extras/keycodes_belgian_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_bepo_0.0.1.hjson | 2 +- .../keycodes/extras/keycodes_brazilian_abnt2_0.0.1.hjson | 2 +- .../keycodes/extras/keycodes_canadian_multilingual_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_colemak_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_croatian_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_czech_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_danish_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_dvorak_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_dvorak_fr_0.0.1.hjson | 2 +- .../keycodes/extras/keycodes_dvorak_programmer_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_estonian_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_eurkey_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_finnish_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_french_0.0.1.hjson | 2 +- .../constants/keycodes/extras/keycodes_french_afnor_0.0.1.hjson | 2 +- .../keycodes/extras/keycodes_french_mac_iso_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_german_0.0.1.hjson | 2 +- .../keycodes/extras/keycodes_german_mac_iso_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_greek_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_hebrew_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_hungarian_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_icelandic_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_irish_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_italian_0.0.1.hjson | 2 +- .../keycodes/extras/keycodes_italian_mac_ansi_0.0.1.hjson | 2 +- .../keycodes/extras/keycodes_italian_mac_iso_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_japanese_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_korean_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_latvian_0.0.1.hjson | 2 +- .../keycodes/extras/keycodes_lithuanian_azerty_0.0.1.hjson | 2 +- .../keycodes/extras/keycodes_lithuanian_qwerty_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_neo2_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_nordic_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_norman_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_norwegian_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_plover_0.0.1.hjson | 2 +- .../keycodes/extras/keycodes_plover_dvorak_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_polish_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_portuguese_0.0.1.hjson | 2 +- .../keycodes/extras/keycodes_portuguese_mac_iso_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_romanian_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_russian_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_serbian_0.0.1.hjson | 2 +- .../keycodes/extras/keycodes_serbian_latin_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_slovak_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_slovenian_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_spanish_0.0.1.hjson | 2 +- .../keycodes/extras/keycodes_spanish_dvorak_0.0.1.hjson | 2 +- .../keycodes/extras/keycodes_spanish_latin_america_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_swedish_0.0.1.hjson | 2 +- .../keycodes/extras/keycodes_swedish_mac_ansi_0.0.1.hjson | 2 +- .../keycodes/extras/keycodes_swedish_mac_iso_0.0.1.hjson | 2 +- .../keycodes/extras/keycodes_swedish_pro_mac_ansi_0.0.1.hjson | 2 +- .../keycodes/extras/keycodes_swedish_pro_mac_iso_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_swiss_de_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_swiss_fr_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_turkish_f_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_turkish_q_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_uk_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_ukrainian_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_us_extended_0.0.1.hjson | 2 +- .../keycodes/extras/keycodes_us_international_0.0.1.hjson | 2 +- .../keycodes/extras/keycodes_us_international_linux_0.0.1.hjson | 2 +- data/constants/keycodes/extras/keycodes_workman_0.0.1.hjson | 2 +- .../keycodes/extras/keycodes_workman_zxcvm_0.0.1.hjson | 2 +- data/constants/keycodes/keycodes_0.0.1.hjson | 2 +- data/constants/keycodes/keycodes_0.0.1_joystick.hjson | 2 +- data/constants/keycodes/keycodes_0.0.1_magic.hjson | 2 +- .../constants/keycodes/keycodes_0.0.1_programmable_button.hjson | 2 +- data/constants/keycodes/keycodes_0.0.1_sequencer.hjson | 2 +- data/constants/keycodes/keycodes_0.0.2_basic.hjson | 2 +- data/constants/keycodes/keycodes_0.0.2_magic.hjson | 2 +- data/constants/keycodes/keycodes_0.0.2_sequencer.hjson | 2 +- docs/configurator_diagram.drawio | 2 +- docs/configurator_diagram.svg | 2 +- docs/public/badge-community-dark.svg | 2 +- docs/public/badge-community-light.svg | 2 +- drivers/painter/gc9xxx/qp_gc9a01_opcodes.h | 2 +- drivers/painter/ld7032/qp_ld7032.h | 2 +- drivers/painter/ld7032/qp_ld7032_opcodes.h | 2 +- drivers/usbpd.h | 2 +- layouts/community/75_ansi/layout.json | 2 +- layouts/community/ortho_1x4/layout.json | 2 +- layouts/community/ortho_4x12/layout.json | 2 +- layouts/default/60_ansi_arrow/layout.json | 2 +- layouts/default/ortho_5x5/readme.md | 2 +- platforms/avr/drivers/i2c_master.c | 2 +- platforms/chibios/boards/BONSAI_C4/configs/board.h | 2 +- platforms/chibios/boards/BONSAI_C4/configs/config.h | 2 +- platforms/chibios/boards/BONSAI_C4/configs/halconf.h | 2 +- platforms/chibios/boards/GENERIC_STM32_F405XG/board/board.mk | 2 +- platforms/chibios/boards/GENERIC_STM32_F407XE/board/board.mk | 2 +- platforms/chibios/boards/GENERIC_STM32_F407XE/configs/board.h | 2 +- platforms/chibios/boards/GENERIC_STM32_G474XE/configs/config.h | 2 +- platforms/chibios/boards/GENERIC_WB32_F3G71XX/configs/chconf.h | 2 +- platforms/chibios/boards/GENERIC_WB32_FQ95XX/configs/chconf.h | 2 +- platforms/chibios/boards/SIPEED_LONGAN_NANO/configs/chconf.h | 2 +- platforms/chibios/bootloaders/stm32duino.c | 2 +- platforms/chibios/converters/promicro_to_bonsai_c4/_pin_defs.h | 2 +- .../chibios/converters/promicro_to_bonsai_c4/post_converter.mk | 2 +- platforms/chibios/drivers/i2c_master.c | 2 +- platforms/chibios/drivers/usbpd_stm32g4.c | 2 +- platforms/chibios/platform.c | 2 +- platforms/test/platform.c | 2 +- quantum/rgb_matrix/animations/rgb_matrix_effects.inc | 2 +- quantum/split_common/split_util.h | 2 +- quantum/via.h | 2 +- quantum/wear_leveling/tests/rules.mk | 2 +- tests/basic/test_one_shot_keys.cpp | 2 +- tests/no_tapping/no_action_tapping/test.mk | 2 +- tests/no_tapping/no_mod_tap_mods/test.mk | 2 +- users/_example/_example.c | 2 +- users/_example/_example.h | 2 +- users/_example/readme.md | 2 +- users/_example/rules.mk | 2 +- users/readme.md | 2 +- util/usb_detach/usb_detach.c | 2 +- 119 files changed, 119 insertions(+), 119 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index a5d185e1dd3..3e32f4d9949 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -38,4 +38,4 @@ body: - type: textarea attributes: label: Additional Context - description: Add any other relevant information about the problem here. \ No newline at end of file + description: Add any other relevant information about the problem here. diff --git a/data/constants/keycodes/extras/keycodes_belgian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_belgian_0.0.1.hjson index d2b8c1d7d9d..11b68d16a05 100644 --- a/data/constants/keycodes/extras/keycodes_belgian_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_belgian_0.0.1.hjson @@ -372,4 +372,4 @@ "label": "~", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_bepo_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_bepo_0.0.1.hjson index 713f3f28295..7a9dea9d138 100644 --- a/data/constants/keycodes/extras/keycodes_bepo_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_bepo_0.0.1.hjson @@ -629,4 +629,4 @@ "label": "(narrow non-breaking space)", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_brazilian_abnt2_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_brazilian_abnt2_0.0.1.hjson index 17006a64df7..e28970ed336 100644 --- a/data/constants/keycodes/extras/keycodes_brazilian_abnt2_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_brazilian_abnt2_0.0.1.hjson @@ -376,4 +376,4 @@ "label": "₢", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_canadian_multilingual_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_canadian_multilingual_0.0.1.hjson index bfe5d5b54c7..a663088e225 100644 --- a/data/constants/keycodes/extras/keycodes_canadian_multilingual_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_canadian_multilingual_0.0.1.hjson @@ -638,4 +638,4 @@ "label": "÷", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_colemak_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_colemak_0.0.1.hjson index 1dc091584be..0bf0f3b2217 100644 --- a/data/constants/keycodes/extras/keycodes_colemak_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_colemak_0.0.1.hjson @@ -299,4 +299,4 @@ "label": "?", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_croatian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_croatian_0.0.1.hjson index 82632aa637b..50464921fa7 100644 --- a/data/constants/keycodes/extras/keycodes_croatian_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_croatian_0.0.1.hjson @@ -400,4 +400,4 @@ "label": "§", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_czech_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_czech_0.0.1.hjson index 9cfb88c489c..8b1572bfcb7 100644 --- a/data/constants/keycodes/extras/keycodes_czech_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_czech_0.0.1.hjson @@ -432,4 +432,4 @@ "label": "*", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_danish_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_danish_0.0.1.hjson index fffcd9f9ad8..0e8f7a75c60 100644 --- a/data/constants/keycodes/extras/keycodes_danish_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_danish_0.0.1.hjson @@ -356,4 +356,4 @@ "label": "µ", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_dvorak_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_dvorak_0.0.1.hjson index 534f99c8e67..485d86aa214 100644 --- a/data/constants/keycodes/extras/keycodes_dvorak_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_dvorak_0.0.1.hjson @@ -299,4 +299,4 @@ "label": ":", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_dvorak_fr_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_dvorak_fr_0.0.1.hjson index 70c0b3c0aa3..69ce14486eb 100644 --- a/data/constants/keycodes/extras/keycodes_dvorak_fr_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_dvorak_fr_0.0.1.hjson @@ -314,4 +314,4 @@ "label": "@", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_dvorak_programmer_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_dvorak_programmer_0.0.1.hjson index 8a70dae7eff..6fa9868e4c3 100644 --- a/data/constants/keycodes/extras/keycodes_dvorak_programmer_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_dvorak_programmer_0.0.1.hjson @@ -299,4 +299,4 @@ "label": "\"", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_estonian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_estonian_0.0.1.hjson index bbf75125816..276d3fe664c 100644 --- a/data/constants/keycodes/extras/keycodes_estonian_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_estonian_0.0.1.hjson @@ -364,4 +364,4 @@ "label": "ž", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_eurkey_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_eurkey_0.0.1.hjson index 9ff217cff26..9b4fa330531 100644 --- a/data/constants/keycodes/extras/keycodes_eurkey_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_eurkey_0.0.1.hjson @@ -593,4 +593,4 @@ "label": "…", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_finnish_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_finnish_0.0.1.hjson index b2841929621..a4d3c99a6f1 100644 --- a/data/constants/keycodes/extras/keycodes_finnish_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_finnish_0.0.1.hjson @@ -356,4 +356,4 @@ "label": "µ", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_french_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_french_0.0.1.hjson index 8ba7b35d2e1..351dfe89d85 100644 --- a/data/constants/keycodes/extras/keycodes_french_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_french_0.0.1.hjson @@ -364,4 +364,4 @@ "label": "¤", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_french_afnor_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_french_afnor_0.0.1.hjson index 90981d085d5..92646c4de8a 100644 --- a/data/constants/keycodes/extras/keycodes_french_afnor_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_french_afnor_0.0.1.hjson @@ -620,4 +620,4 @@ "label": "≠", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_french_mac_iso_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_french_mac_iso_0.0.1.hjson index b698018d5ba..bb924e98525 100644 --- a/data/constants/keycodes/extras/keycodes_french_mac_iso_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_french_mac_iso_0.0.1.hjson @@ -673,4 +673,4 @@ "label": "±", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_german_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_german_0.0.1.hjson index a1cfd449563..015438abb29 100644 --- a/data/constants/keycodes/extras/keycodes_german_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_german_0.0.1.hjson @@ -356,4 +356,4 @@ "label": "µ", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_german_mac_iso_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_german_mac_iso_0.0.1.hjson index 366ed5b9d18..fa3b8d67b51 100644 --- a/data/constants/keycodes/extras/keycodes_german_mac_iso_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_german_mac_iso_0.0.1.hjson @@ -653,4 +653,4 @@ "label": "—", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_greek_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_greek_0.0.1.hjson index 9c7f8796bf2..b61a317b19d 100644 --- a/data/constants/keycodes/extras/keycodes_greek_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_greek_0.0.1.hjson @@ -388,4 +388,4 @@ "label": "©", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_hebrew_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_hebrew_0.0.1.hjson index b519229f35d..aaf0563623b 100644 --- a/data/constants/keycodes/extras/keycodes_hebrew_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_hebrew_0.0.1.hjson @@ -344,4 +344,4 @@ "label": "÷", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_hungarian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_hungarian_0.0.1.hjson index d4fc908dc09..e7ae0d340cd 100644 --- a/data/constants/keycodes/extras/keycodes_hungarian_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_hungarian_0.0.1.hjson @@ -432,4 +432,4 @@ "label": "*", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_icelandic_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_icelandic_0.0.1.hjson index f4d6025a779..59478a1018c 100644 --- a/data/constants/keycodes/extras/keycodes_icelandic_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_icelandic_0.0.1.hjson @@ -352,4 +352,4 @@ "label": "µ", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_irish_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_irish_0.0.1.hjson index 94e553469e9..99487a5b904 100644 --- a/data/constants/keycodes/extras/keycodes_irish_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_irish_0.0.1.hjson @@ -352,4 +352,4 @@ "label": "´ (dead)", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_italian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_italian_0.0.1.hjson index 951c564f62f..8b859d6de89 100644 --- a/data/constants/keycodes/extras/keycodes_italian_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_italian_0.0.1.hjson @@ -361,4 +361,4 @@ "label": "}", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_italian_mac_ansi_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_italian_mac_ansi_0.0.1.hjson index 328755ca677..551f0949740 100644 --- a/data/constants/keycodes/extras/keycodes_italian_mac_ansi_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_italian_mac_ansi_0.0.1.hjson @@ -681,4 +681,4 @@ "label": "—", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_italian_mac_iso_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_italian_mac_iso_0.0.1.hjson index 4beccd804a7..aed90f203d4 100644 --- a/data/constants/keycodes/extras/keycodes_italian_mac_iso_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_italian_mac_iso_0.0.1.hjson @@ -685,4 +685,4 @@ "label": "—", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_japanese_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_japanese_0.0.1.hjson index d95712abd95..779eef8a847 100644 --- a/data/constants/keycodes/extras/keycodes_japanese_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_japanese_0.0.1.hjson @@ -327,4 +327,4 @@ "label": "_", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_korean_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_korean_0.0.1.hjson index 5ee19c9e4e5..8e04d8ed2a9 100644 --- a/data/constants/keycodes/extras/keycodes_korean_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_korean_0.0.1.hjson @@ -307,4 +307,4 @@ "label": "?", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_latvian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_latvian_0.0.1.hjson index ab80f0fdd9c..510a2c83a76 100644 --- a/data/constants/keycodes/extras/keycodes_latvian_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_latvian_0.0.1.hjson @@ -437,4 +437,4 @@ "label": "¨ (dead)", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_lithuanian_azerty_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_lithuanian_azerty_0.0.1.hjson index dfb527878e6..f6140d7f93d 100644 --- a/data/constants/keycodes/extras/keycodes_lithuanian_azerty_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_lithuanian_azerty_0.0.1.hjson @@ -372,4 +372,4 @@ "label": "\\", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_lithuanian_qwerty_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_lithuanian_qwerty_0.0.1.hjson index a4ea30d5928..2ab6f83c94a 100644 --- a/data/constants/keycodes/extras/keycodes_lithuanian_qwerty_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_lithuanian_qwerty_0.0.1.hjson @@ -365,4 +365,4 @@ "label": "+", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_neo2_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_neo2_0.0.1.hjson index 980bddbf7ae..88ede311a6e 100644 --- a/data/constants/keycodes/extras/keycodes_neo2_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_neo2_0.0.1.hjson @@ -214,4 +214,4 @@ "label": "(layer 4)", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_nordic_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_nordic_0.0.1.hjson index fb3d1bc84be..8536a004de1 100644 --- a/data/constants/keycodes/extras/keycodes_nordic_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_nordic_0.0.1.hjson @@ -113,4 +113,4 @@ "key": "NO_MU" } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_norman_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_norman_0.0.1.hjson index 98ea7e6aab1..45cd26ae1cc 100644 --- a/data/constants/keycodes/extras/keycodes_norman_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_norman_0.0.1.hjson @@ -299,4 +299,4 @@ "label": "?", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_norwegian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_norwegian_0.0.1.hjson index 4e8cbb5d0e6..0cc79c56310 100644 --- a/data/constants/keycodes/extras/keycodes_norwegian_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_norwegian_0.0.1.hjson @@ -352,4 +352,4 @@ "label": "µ", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_plover_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_plover_0.0.1.hjson index fb00ef0c62c..78cfe9dd413 100644 --- a/data/constants/keycodes/extras/keycodes_plover_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_plover_0.0.1.hjson @@ -83,4 +83,4 @@ "key": "PV_U" } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_plover_dvorak_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_plover_dvorak_0.0.1.hjson index 9656dd98210..8e1fe29f8b3 100644 --- a/data/constants/keycodes/extras/keycodes_plover_dvorak_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_plover_dvorak_0.0.1.hjson @@ -70,4 +70,4 @@ "key": "PD_U" } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_polish_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_polish_0.0.1.hjson index 609011b1f74..f09f2c9b64f 100644 --- a/data/constants/keycodes/extras/keycodes_polish_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_polish_0.0.1.hjson @@ -352,4 +352,4 @@ "label": "Ń", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_portuguese_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_portuguese_0.0.1.hjson index c8e43065d2c..ec773ddbb5d 100644 --- a/data/constants/keycodes/extras/keycodes_portuguese_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_portuguese_0.0.1.hjson @@ -352,4 +352,4 @@ "label": "€", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_portuguese_mac_iso_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_portuguese_mac_iso_0.0.1.hjson index b1c9aaad989..503a3e92a6c 100644 --- a/data/constants/keycodes/extras/keycodes_portuguese_mac_iso_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_portuguese_mac_iso_0.0.1.hjson @@ -617,4 +617,4 @@ "label": "–", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_romanian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_romanian_0.0.1.hjson index 42b1e89d3b8..f3885231469 100644 --- a/data/constants/keycodes/extras/keycodes_romanian_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_romanian_0.0.1.hjson @@ -441,4 +441,4 @@ "label": "»", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_russian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_russian_0.0.1.hjson index d83fc0f61fa..41904be6349 100644 --- a/data/constants/keycodes/extras/keycodes_russian_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_russian_0.0.1.hjson @@ -288,4 +288,4 @@ "label": "₽", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_serbian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_serbian_0.0.1.hjson index 98957930a0a..3ddd7f15dfb 100644 --- a/data/constants/keycodes/extras/keycodes_serbian_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_serbian_0.0.1.hjson @@ -304,4 +304,4 @@ "label": "€", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_serbian_latin_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_serbian_latin_0.0.1.hjson index ca4746b6467..eec0877aa7a 100644 --- a/data/constants/keycodes/extras/keycodes_serbian_latin_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_serbian_latin_0.0.1.hjson @@ -404,4 +404,4 @@ "label": "§", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_slovak_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_slovak_0.0.1.hjson index 14eb4b783af..dbf39b5f49f 100644 --- a/data/constants/keycodes/extras/keycodes_slovak_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_slovak_0.0.1.hjson @@ -440,4 +440,4 @@ "label": "}", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_slovenian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_slovenian_0.0.1.hjson index fd1a4eb4fc4..d264d3d3928 100644 --- a/data/constants/keycodes/extras/keycodes_slovenian_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_slovenian_0.0.1.hjson @@ -400,4 +400,4 @@ "label": "§", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_spanish_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_spanish_0.0.1.hjson index db3b068e970..9656e356744 100644 --- a/data/constants/keycodes/extras/keycodes_spanish_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_spanish_0.0.1.hjson @@ -356,4 +356,4 @@ "label": "}", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_spanish_dvorak_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_spanish_dvorak_0.0.1.hjson index 39119a6a915..fa0a93ff85c 100644 --- a/data/constants/keycodes/extras/keycodes_spanish_dvorak_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_spanish_dvorak_0.0.1.hjson @@ -356,4 +356,4 @@ "label": "}", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_spanish_latin_america_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_spanish_latin_america_0.0.1.hjson index fb1de29e6ed..51ad69a55a2 100644 --- a/data/constants/keycodes/extras/keycodes_spanish_latin_america_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_spanish_latin_america_0.0.1.hjson @@ -340,4 +340,4 @@ "label": "`", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_swedish_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_swedish_0.0.1.hjson index 6db71ea241c..f538a81bd93 100644 --- a/data/constants/keycodes/extras/keycodes_swedish_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_swedish_0.0.1.hjson @@ -356,4 +356,4 @@ "label": "µ", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_swedish_mac_ansi_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_swedish_mac_ansi_0.0.1.hjson index ab7c3ad8d15..59f0173e899 100644 --- a/data/constants/keycodes/extras/keycodes_swedish_mac_ansi_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_swedish_mac_ansi_0.0.1.hjson @@ -639,4 +639,4 @@ "label": "—", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_swedish_mac_iso_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_swedish_mac_iso_0.0.1.hjson index cafd815776a..cf2c0d9fdfc 100644 --- a/data/constants/keycodes/extras/keycodes_swedish_mac_iso_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_swedish_mac_iso_0.0.1.hjson @@ -637,4 +637,4 @@ "label": "—", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_swedish_pro_mac_ansi_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_swedish_pro_mac_ansi_0.0.1.hjson index c82c79c711c..911cbc2be84 100644 --- a/data/constants/keycodes/extras/keycodes_swedish_pro_mac_ansi_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_swedish_pro_mac_ansi_0.0.1.hjson @@ -639,4 +639,4 @@ "label": "—", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_swedish_pro_mac_iso_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_swedish_pro_mac_iso_0.0.1.hjson index 4555739ccdd..d8e532f792c 100644 --- a/data/constants/keycodes/extras/keycodes_swedish_pro_mac_iso_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_swedish_pro_mac_iso_0.0.1.hjson @@ -637,4 +637,4 @@ "label": "—", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_swiss_de_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_swiss_de_0.0.1.hjson index ae260a5e56c..e4a5f911584 100644 --- a/data/constants/keycodes/extras/keycodes_swiss_de_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_swiss_de_0.0.1.hjson @@ -376,4 +376,4 @@ "label": "\\", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_swiss_fr_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_swiss_fr_0.0.1.hjson index 83fb86e49c1..e518658314d 100644 --- a/data/constants/keycodes/extras/keycodes_swiss_fr_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_swiss_fr_0.0.1.hjson @@ -376,4 +376,4 @@ "label": "\\", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_turkish_f_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_turkish_f_0.0.1.hjson index 2689f10dbec..0f527e04d67 100644 --- a/data/constants/keycodes/extras/keycodes_turkish_f_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_turkish_f_0.0.1.hjson @@ -477,4 +477,4 @@ "label": "º", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_turkish_q_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_turkish_q_0.0.1.hjson index e00cee9ce3e..e736bb52a27 100644 --- a/data/constants/keycodes/extras/keycodes_turkish_q_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_turkish_q_0.0.1.hjson @@ -372,4 +372,4 @@ "label": "` (dead)", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_uk_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_uk_0.0.1.hjson index 006bf5c59e9..aa97e11fa9c 100644 --- a/data/constants/keycodes/extras/keycodes_uk_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_uk_0.0.1.hjson @@ -350,4 +350,4 @@ "label": "Á" } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_ukrainian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_ukrainian_0.0.1.hjson index 2e8629f58bb..3596dc14e08 100644 --- a/data/constants/keycodes/extras/keycodes_ukrainian_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_ukrainian_0.0.1.hjson @@ -292,4 +292,4 @@ "label": "ґ", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_us_extended_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_us_extended_0.0.1.hjson index ecac6ca1615..15b21dd5268 100644 --- a/data/constants/keycodes/extras/keycodes_us_extended_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_us_extended_0.0.1.hjson @@ -585,4 +585,4 @@ "label": "̉ (dead)", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_us_international_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_us_international_0.0.1.hjson index 36a574a4ad6..34328be8b8f 100644 --- a/data/constants/keycodes/extras/keycodes_us_international_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_us_international_0.0.1.hjson @@ -505,4 +505,4 @@ "label": "¢", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_us_international_linux_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_us_international_linux_0.0.1.hjson index d6bdf2e02d1..fcf848dd874 100644 --- a/data/constants/keycodes/extras/keycodes_us_international_linux_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_us_international_linux_0.0.1.hjson @@ -573,4 +573,4 @@ "label": "̉ (dead)", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_workman_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_workman_0.0.1.hjson index 27471a15e4c..14220e560e2 100644 --- a/data/constants/keycodes/extras/keycodes_workman_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_workman_0.0.1.hjson @@ -299,4 +299,4 @@ "label": "?", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/extras/keycodes_workman_zxcvm_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_workman_zxcvm_0.0.1.hjson index 86f6a5bffb6..f05ec1a3ea4 100644 --- a/data/constants/keycodes/extras/keycodes_workman_zxcvm_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_workman_zxcvm_0.0.1.hjson @@ -299,4 +299,4 @@ "label": "?", } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/keycodes_0.0.1.hjson b/data/constants/keycodes/keycodes_0.0.1.hjson index 7ba1ecf2019..c40baf13dcb 100644 --- a/data/constants/keycodes/keycodes_0.0.1.hjson +++ b/data/constants/keycodes/keycodes_0.0.1.hjson @@ -93,4 +93,4 @@ "key": "SAFE_RANGE" } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/keycodes_0.0.1_joystick.hjson b/data/constants/keycodes/keycodes_0.0.1_joystick.hjson index 0bda7c29f3e..b851d72eef9 100644 --- a/data/constants/keycodes/keycodes_0.0.1_joystick.hjson +++ b/data/constants/keycodes/keycodes_0.0.1_joystick.hjson @@ -225,4 +225,4 @@ ] } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/keycodes_0.0.1_magic.hjson b/data/constants/keycodes/keycodes_0.0.1_magic.hjson index 7ee1f2bce9e..0e3e8dc55fb 100644 --- a/data/constants/keycodes/keycodes_0.0.1_magic.hjson +++ b/data/constants/keycodes/keycodes_0.0.1_magic.hjson @@ -246,4 +246,4 @@ ] } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/keycodes_0.0.1_programmable_button.hjson b/data/constants/keycodes/keycodes_0.0.1_programmable_button.hjson index 645bcd6a39e..7d031728a60 100644 --- a/data/constants/keycodes/keycodes_0.0.1_programmable_button.hjson +++ b/data/constants/keycodes/keycodes_0.0.1_programmable_button.hjson @@ -225,4 +225,4 @@ ] } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/keycodes_0.0.1_sequencer.hjson b/data/constants/keycodes/keycodes_0.0.1_sequencer.hjson index 039d09b2fa5..85844ae99c9 100644 --- a/data/constants/keycodes/keycodes_0.0.1_sequencer.hjson +++ b/data/constants/keycodes/keycodes_0.0.1_sequencer.hjson @@ -37,4 +37,4 @@ "key": "SQ_SCLR" } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/keycodes_0.0.2_basic.hjson b/data/constants/keycodes/keycodes_0.0.2_basic.hjson index 2b5df85d999..d9cefe7e936 100644 --- a/data/constants/keycodes/keycodes_0.0.2_basic.hjson +++ b/data/constants/keycodes/keycodes_0.0.2_basic.hjson @@ -17,4 +17,4 @@ ] } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/keycodes_0.0.2_magic.hjson b/data/constants/keycodes/keycodes_0.0.2_magic.hjson index 81758975e38..2fc8ba038df 100644 --- a/data/constants/keycodes/keycodes_0.0.2_magic.hjson +++ b/data/constants/keycodes/keycodes_0.0.2_magic.hjson @@ -248,4 +248,4 @@ ] } } -} \ No newline at end of file +} diff --git a/data/constants/keycodes/keycodes_0.0.2_sequencer.hjson b/data/constants/keycodes/keycodes_0.0.2_sequencer.hjson index eedaed166c6..445a2c9328b 100644 --- a/data/constants/keycodes/keycodes_0.0.2_sequencer.hjson +++ b/data/constants/keycodes/keycodes_0.0.2_sequencer.hjson @@ -66,4 +66,4 @@ ] } } -} \ No newline at end of file +} diff --git a/docs/configurator_diagram.drawio b/docs/configurator_diagram.drawio index 091a3a76b8c..661f884defe 100644 --- a/docs/configurator_diagram.drawio +++ b/docs/configurator_diagram.drawio @@ -1 +1 @@ -5VvbcqM4EP2a1O4+hOLqy2Ni5zKX1CTxzszOU0oG2dZEIBZEYu/XbwuEDQg7csZ2vFlXjQca0RLdR+eohXPiDML5VYLi2Q0LMD2xzWB+4gxPbNvqezb8JywLaTFtr7BMExJI28owIv/gsqG0ZiTAaa0hZ4xyEteNPosi7POaDSUJe643mzBa7zVGU6wYRj6iqvU7CfissPY8c2W/xmQ6K3u2THklRGVjaUhnKGDPFZNzceIMEsZ4cRTOB5iK6JVxKe67XHN1ObAER1znhgfT76Zzxxp3Z49j5+7zjw/z+NSS+XlCNJNPLEfLF2UIcAARkacs4TM2ZRGiFyvrecKyKMCiHxPOVm0+MxaD0QLjT8z5QqYXZZyBacZDKq/iKDgTyYLTiEW4sFwSSqXLAKWz3L9orD64jEXKssTHG57WlQBCyRTzTVGRDsWTV3qQcb3CLMQ8WUCDBFPEyVMdK0hCbrpst8oKHMjEbJEk9+UckTDHcTWm0jQk4RR6pWQM3z4l8QNKuDhkYZxxnKRw/J0ljymHJ2HRg2X35vDPiKPp2kA/4YTj+cbIyKunjmv0zMpHeljSQXH6XJla0jSrzKrStvPIei9Hdgm9HNoZpyTCgyXZmPWYI0qmERz7EDGcgIGiMaa3LCUittULIoQEaOZzo8GYcc7CSoMz6ZKLqXQOJBKLgYXzqSBc4xmPKcy11JgSPsvG0GLCIn6JQkJFiK8xfcLCjbwgJyDM+uJ8wChL8ud0ivSILnjCHnHblQlMyIp9kn/ADkMJCK55G14OL4YXmybrFhhyOzXQtKEGdMVwVeBUzDvHTjmKjdS54jWfojQlfpP3YCR/CRwZXnn6o3ptOJcgK84W8gwma8JVz7lZ0qZVI9Ff401PkzddTdqsJM5rme6lTZtdZQ+3jMCTLXFjlRkqyaZJI8Vzy7uqytl01Gk4chqOisAojnJYLR/7F5BWTpkV0gZUTDjgbnOUxTEorqCosxO7QyGG5+MEjqbiaDBLoPsTGzo2L0mCJ2yuNhri9FHQi21+iehCAfHzjHA8ilEOkWegnTqGm0QVkiDIVwU5950j/3Garw9Kdsjd7YYZlmurkhlUYrDNFoB19qUnltPCCUW40xhFZcBnnIvl65noTChxNCFT4+/w0ZiEZXOwV+9Qk9bmd0SiKYTeNm+F9AM2RKTX3tno4iN6QiM/IbFYHXz7eqHeOJI8AeM2YbTQDL4fiuFnCeIs0RvmNUt54eWqUK1iwOnaZ28Asr7cfC0894E/q2PYehDs7w2CGqtFdbndqklVRaoI1BpN2tEaXVdryql2JGKzTKiEgvdasXHchqNDi01XAz/vpiK0tOHW0YTbYUpC6/1ULj9TuH0XlWZ93riOuhjotsz/rmf09pWkjpKkuvI/4sWYoSRIG+K/ks9PsgV4ucEcBYgjXV2ekCR8hoiq7a+uoeGZX+RN3PQ1BsdiwXB2+wG+h629rFR7SKDaRPSLj4VIm7n2ptsuG2voPKRIu7Zt9N9apHtbiXRr7VirASVHVgtAc4cFoDZNekclypZnWK5p9Tp9y+v1up1y73nRQMbWBWHdz3LP90ASbav14HuW6L4m9spsHotE95Us3d18Kkm2mS5KSZziik76lGXBy+XNLpTTq8O5Y6rKadkts3Rv27JlZ2uFE8VkrWTeX4z+nGS0DLSeWILDTYp3jyJ/Bqsf2xRrFXP4Bb6+3fy2tegdUuc6pqenct29pVFjkfryDulhtzDLWXskCnbarCtd75WadaoUlpqqBelBi0qzWDRINwzZanTkOObmkTVv8Pq1G+CgGMNuRVSl53csonZXV0R7RyWitrobIasPMMoCRGF4WY807b+PnD+OS3idXh347fuHrdrbt8qWu4+5WpzU1RcE81QocLTwHcMPIiMoUsJEPtI8+obPWqRZRlNK7+kLoqskejut3UWCeg1msh3L6PYrn54qsf2WbO3thYOjrpTeTGK1Oea4ikSQ/EaSX7t1qwiZfeC9W6ft9dO71TSn/D3YS3hz7KPSNEct3+/vlDyVciS2/FLOEnwYSWpskXS7ai3YOSjB2WqwcEDEm+9cjEwRuqaGfGTineJdhrOW3c/2AjApnO6/BNxBkpqVXrfz1pWes91Lx73KkPZ+UTkP31qHyiw26zFt2fEacGiWiPtWHXWNXvwuIIwpETNmDbPhuZhhAcvG+RWrJj3Wm2x99Vt+QXLYrS9XXdAVu4YDCCehIpztbHefRVH+a07dX22sc/efoLy+/daU5+pswh+I8vRXQt3joDyZVbeW015ztaxLgHU3/eZbnT3Tn6uuULYGwoF/z+lo7wYdF16AHes00GuuO/V3Qxui2bP0ULP1bqjTYK5yS2Gvm5vu/6sQ1IVzKa67KwTXEJK3GVu6KLWd14H0ZRjB6eovj4rmqz/gci7+BQ== \ No newline at end of file +5VvbcqM4EP2a1O4+hOLqy2Ni5zKX1CTxzszOU0oG2dZEIBZEYu/XbwuEDQg7csZ2vFlXjQca0RLdR+eohXPiDML5VYLi2Q0LMD2xzWB+4gxPbNvqezb8JywLaTFtr7BMExJI28owIv/gsqG0ZiTAaa0hZ4xyEteNPosi7POaDSUJe643mzBa7zVGU6wYRj6iqvU7CfissPY8c2W/xmQ6K3u2THklRGVjaUhnKGDPFZNzceIMEsZ4cRTOB5iK6JVxKe67XHN1ObAER1znhgfT76Zzxxp3Z49j5+7zjw/z+NSS+XlCNJNPLEfLF2UIcAARkacs4TM2ZRGiFyvrecKyKMCiHxPOVm0+MxaD0QLjT8z5QqYXZZyBacZDKq/iKDgTyYLTiEW4sFwSSqXLAKWz3L9orD64jEXKssTHG57WlQBCyRTzTVGRDsWTV3qQcb3CLMQ8WUCDBFPEyVMdK0hCbrpst8oKHMjEbJEk9+UckTDHcTWm0jQk4RR6pWQM3z4l8QNKuDhkYZxxnKRw/J0ljymHJ2HRg2X35vDPiKPp2kA/4YTj+cbIyKunjmv0zMpHeljSQXH6XJla0jSrzKrStvPIei9Hdgm9HNoZpyTCgyXZmPWYI0qmERz7EDGcgIGiMaa3LCUittULIoQEaOZzo8GYcc7CSoMz6ZKLqXQOJBKLgYXzqSBc4xmPKcy11JgSPsvG0GLCIn6JQkJFiK8xfcLCjbwgJyDM+uJ8wChL8ud0ivSILnjCHnHblQlMyIp9kn/ADkMJCK55G14OL4YXmybrFhhyOzXQtKEGdMVwVeBUzDvHTjmKjdS54jWfojQlfpP3YCR/CRwZXnn6o3ptOJcgK84W8gwma8JVz7lZ0qZVI9Ff401PkzddTdqsJM5rme6lTZtdZQ+3jMCTLXFjlRkqyaZJI8Vzy7uqytl01Gk4chqOisAojnJYLR/7F5BWTpkV0gZUTDjgbnOUxTEorqCosxO7QyGG5+MEjqbiaDBLoPsTGzo2L0mCJ2yuNhri9FHQi21+iehCAfHzjHA8ilEOkWegnTqGm0QVkiDIVwU5950j/3Garw9Kdsjd7YYZlmurkhlUYrDNFoB19qUnltPCCUW40xhFZcBnnIvl65noTChxNCFT4+/w0ZiEZXOwV+9Qk9bmd0SiKYTeNm+F9AM2RKTX3tno4iN6QiM/IbFYHXz7eqHeOJI8AeM2YbTQDL4fiuFnCeIs0RvmNUt54eWqUK1iwOnaZ28Asr7cfC0894E/q2PYehDs7w2CGqtFdbndqklVRaoI1BpN2tEaXVdryql2JGKzTKiEgvdasXHchqNDi01XAz/vpiK0tOHW0YTbYUpC6/1ULj9TuH0XlWZ93riOuhjotsz/rmf09pWkjpKkuvI/4sWYoSRIG+K/ks9PsgV4ucEcBYgjXV2ekCR8hoiq7a+uoeGZX+RN3PQ1BsdiwXB2+wG+h629rFR7SKDaRPSLj4VIm7n2ptsuG2voPKRIu7Zt9N9apHtbiXRr7VirASVHVgtAc4cFoDZNekclypZnWK5p9Tp9y+v1up1y73nRQMbWBWHdz3LP90ASbav14HuW6L4m9spsHotE95Us3d18Kkm2mS5KSZziik76lGXBy+XNLpTTq8O5Y6rKadkts3Rv27JlZ2uFE8VkrWTeX4z+nGS0DLSeWILDTYp3jyJ/Bqsf2xRrFXP4Bb6+3fy2tegdUuc6pqenct29pVFjkfryDulhtzDLWXskCnbarCtd75WadaoUlpqqBelBi0qzWDRINwzZanTkOObmkTVv8Pq1G+CgGMNuRVSl53csonZXV0R7RyWitrobIasPMMoCRGF4WY807b+PnD+OS3idXh347fuHrdrbt8qWu4+5WpzU1RcE81QocLTwHcMPIiMoUsJEPtI8+obPWqRZRlNK7+kLoqskejut3UWCeg1msh3L6PYrn54qsf2WbO3thYOjrpTeTGK1Oea4ikSQ/EaSX7t1qwiZfeC9W6ft9dO71TSn/D3YS3hz7KPSNEct3+/vlDyVciS2/FLOEnwYSWpskXS7ai3YOSjB2WqwcEDEm+9cjEwRuqaGfGTineJdhrOW3c/2AjApnO6/BNxBkpqVXrfz1pWes91Lx73KkPZ+UTkP31qHyiw26zFt2fEacGiWiPtWHXWNXvwuIIwpETNmDbPhuZhhAcvG+RWrJj3Wm2x99Vt+QXLYrS9XXdAVu4YDCCehIpztbHefRVH+a07dX22sc/efoLy+/daU5+pswh+I8vRXQt3joDyZVbeW015ztaxLgHU3/eZbnT3Tn6uuULYGwoF/z+lo7wYdF16AHes00GuuO/V3Qxui2bP0ULP1bqjTYK5yS2Gvm5vu/6sQ1IVzKa67KwTXEJK3GVu6KLWd14H0ZRjB6eovj4rmqz/gci7+BQ== diff --git a/docs/configurator_diagram.svg b/docs/configurator_diagram.svg index bcf0bf76d1e..1e540d70a62 100644 --- a/docs/configurator_diagram.svg +++ b/docs/configurator_diagram.svg @@ -1,3 +1,3 @@ -
Clients Supported:
Chrome, Firefox
Desktop Only
Clients Supported:...
https://config.qmk.fm
Single Page Site
JavaScript/VUE
Source: qmk/qmk_configurator
Host: Github Pages
https://config.qmk.fm...
https://keyboards.qmk.fm
Keyboard Metadata
Source: qmk/qmk_firmware
GH Action: Update API Data
Host: DigitalOcean Spaces
https://keyboards.qmk.fm...
QMK API
QMK API
https://api.qmk.fm
RESTful API
Source: qmk/qmk_api
Host: Rancher on DO VM's
https://api.qmk.fm...
Digital Ocean
Spaces
(S3)
Digital Ocean...
https://qmk-api.nyc3.cdn.digitaloceanspaces.com
Space: qmk-api
Host: Digital Ocean
https://qmk-api.nyc3.cdn.digitaloceanspaces.com...
RQ
RQ
Redis / RQ
Job Queue
Source: qmk/qmk_redis
Host: Rancher on DO VM's
Redis / RQ...
qmk_complier
qmk_complier
QMK Compiler
Job Runners
Source: qmk/qmk_compiler
Host: Rancher on DO VM's
QMK Compiler...
Viewer does not support full SVG 1.1
\ No newline at end of file +
Clients Supported:
Chrome, Firefox
Desktop Only
Clients Supported:...
https://config.qmk.fm
Single Page Site
JavaScript/VUE
Source: qmk/qmk_configurator
Host: Github Pages
https://config.qmk.fm...
https://keyboards.qmk.fm
Keyboard Metadata
Source: qmk/qmk_firmware
GH Action: Update API Data
Host: DigitalOcean Spaces
https://keyboards.qmk.fm...
QMK API
QMK API
https://api.qmk.fm
RESTful API
Source: qmk/qmk_api
Host: Rancher on DO VM's
https://api.qmk.fm...
Digital Ocean
Spaces
(S3)
Digital Ocean...
https://qmk-api.nyc3.cdn.digitaloceanspaces.com
Space: qmk-api
Host: Digital Ocean
https://qmk-api.nyc3.cdn.digitaloceanspaces.com...
RQ
RQ
Redis / RQ
Job Queue
Source: qmk/qmk_redis
Host: Rancher on DO VM's
Redis / RQ...
qmk_complier
qmk_complier
QMK Compiler
Job Runners
Source: qmk/qmk_compiler
Host: Rancher on DO VM's
QMK Compiler...
Viewer does not support full SVG 1.1
diff --git a/docs/public/badge-community-dark.svg b/docs/public/badge-community-dark.svg index dba561dda11..5236cf16969 100644 --- a/docs/public/badge-community-dark.svg +++ b/docs/public/badge-community-dark.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/docs/public/badge-community-light.svg b/docs/public/badge-community-light.svg index de4e0cf149d..08c49f05b5d 100644 --- a/docs/public/badge-community-light.svg +++ b/docs/public/badge-community-light.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/drivers/painter/gc9xxx/qp_gc9a01_opcodes.h b/drivers/painter/gc9xxx/qp_gc9a01_opcodes.h index 5853902e683..31de5ee9e33 100644 --- a/drivers/painter/gc9xxx/qp_gc9a01_opcodes.h +++ b/drivers/painter/gc9xxx/qp_gc9a01_opcodes.h @@ -101,4 +101,4 @@ #define GC9A01_GRAM_INTERFACE_RGB 0b00000010 #define GC9A01_RGB_INTERFACE_MODE_1_TRANSFER 0b00000000 -#define GC9A01_RGB_INTERFACE_MODE_3_TRANSFER 0b00000001 \ No newline at end of file +#define GC9A01_RGB_INTERFACE_MODE_3_TRANSFER 0b00000001 diff --git a/drivers/painter/ld7032/qp_ld7032.h b/drivers/painter/ld7032/qp_ld7032.h index 967eb7999cc..9af80dd4688 100644 --- a/drivers/painter/ld7032/qp_ld7032.h +++ b/drivers/painter/ld7032/qp_ld7032.h @@ -63,4 +63,4 @@ painter_device_t qp_ld7032_make_spi_device(uint16_t panel_width, uint16_t panel_ */ painter_device_t qp_ld7032_make_i2c_device(uint16_t panel_width, uint16_t panel_height, uint8_t i2c_address); -#endif // QUANTUM_PAINTER_LD7032_I2C_ENABLE \ No newline at end of file +#endif // QUANTUM_PAINTER_LD7032_I2C_ENABLE diff --git a/drivers/painter/ld7032/qp_ld7032_opcodes.h b/drivers/painter/ld7032/qp_ld7032_opcodes.h index 08ab77d6f86..ed8b397c678 100644 --- a/drivers/painter/ld7032/qp_ld7032_opcodes.h +++ b/drivers/painter/ld7032/qp_ld7032_opcodes.h @@ -42,4 +42,4 @@ typedef enum { LD7032_S_START_STOP = 0xCD, LD7032_S_SELECT = 0xCE, LD7032_TESTCNT1 = 0xF0, //-0xFF -} ld7032_opcodes; \ No newline at end of file +} ld7032_opcodes; diff --git a/drivers/usbpd.h b/drivers/usbpd.h index df4f29bb9d5..e9dca67f668 100644 --- a/drivers/usbpd.h +++ b/drivers/usbpd.h @@ -26,4 +26,4 @@ typedef enum { void usbpd_init(void); // Gets the current state of the USBPD allowance -usbpd_allowance_t usbpd_get_allowance(void); \ No newline at end of file +usbpd_allowance_t usbpd_get_allowance(void); diff --git a/layouts/community/75_ansi/layout.json b/layouts/community/75_ansi/layout.json index 4b7c5a0d883..72be23b4865 100644 --- a/layouts/community/75_ansi/layout.json +++ b/layouts/community/75_ansi/layout.json @@ -3,4 +3,4 @@ [{w:1.5},"","","","","","","","","","","","","",{w:1.5},"",""], [{w:1.75},"","","","","","","","","","","","",{w:2.25},"",""], [{w:2.25},"","","","","","","","","","","",{w:1.75},"","",""], -[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"","","","","","",""] \ No newline at end of file +[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"","","","","","",""] diff --git a/layouts/community/ortho_1x4/layout.json b/layouts/community/ortho_1x4/layout.json index 6103c7e2489..833ff19d4fb 100644 --- a/layouts/community/ortho_1x4/layout.json +++ b/layouts/community/ortho_1x4/layout.json @@ -1 +1 @@ -["","","",""] \ No newline at end of file +["","","",""] diff --git a/layouts/community/ortho_4x12/layout.json b/layouts/community/ortho_4x12/layout.json index 9439b6e0bed..961b0806427 100644 --- a/layouts/community/ortho_4x12/layout.json +++ b/layouts/community/ortho_4x12/layout.json @@ -1,4 +1,4 @@ ["","","","","","","","","","","",""], ["","","","","","","","","","","",""], ["","","","","","","","","","","",""], -["","","","","","","","","","","",""] \ No newline at end of file +["","","","","","","","","","","",""] diff --git a/layouts/default/60_ansi_arrow/layout.json b/layouts/default/60_ansi_arrow/layout.json index 7fc631c3d1d..163107fda42 100644 --- a/layouts/default/60_ansi_arrow/layout.json +++ b/layouts/default/60_ansi_arrow/layout.json @@ -3,4 +3,4 @@ [{w:1.75},"","","","","","","","","","","","",{w:2.25},""], [{w:2.25},"","","","","","","","","","",{w:1.75},"","",""], [{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"","","","","",""] - \ No newline at end of file + diff --git a/layouts/default/ortho_5x5/readme.md b/layouts/default/ortho_5x5/readme.md index 3dd75765d19..2922976d3a5 100644 --- a/layouts/default/ortho_5x5/readme.md +++ b/layouts/default/ortho_5x5/readme.md @@ -1,3 +1,3 @@ # ortho_5x5 - LAYOUT_ortho_5x5 \ No newline at end of file + LAYOUT_ortho_5x5 diff --git a/platforms/avr/drivers/i2c_master.c b/platforms/avr/drivers/i2c_master.c index 64083d862a4..9136f4a7b92 100644 --- a/platforms/avr/drivers/i2c_master.c +++ b/platforms/avr/drivers/i2c_master.c @@ -315,4 +315,4 @@ __attribute__((weak)) i2c_status_t i2c_ping_address(uint8_t address, uint16_t ti i2c_status_t status = i2c_start(address, timeout); i2c_stop(); return status; -} \ No newline at end of file +} diff --git a/platforms/chibios/boards/BONSAI_C4/configs/board.h b/platforms/chibios/boards/BONSAI_C4/configs/board.h index 372b9bb8bc3..81c80b27731 100644 --- a/platforms/chibios/boards/BONSAI_C4/configs/board.h +++ b/platforms/chibios/boards/BONSAI_C4/configs/board.h @@ -17,4 +17,4 @@ #include_next -#undef STM32_HSE_BYPASS \ No newline at end of file +#undef STM32_HSE_BYPASS diff --git a/platforms/chibios/boards/BONSAI_C4/configs/config.h b/platforms/chibios/boards/BONSAI_C4/configs/config.h index e933cd6fd11..e0e95eda257 100644 --- a/platforms/chibios/boards/BONSAI_C4/configs/config.h +++ b/platforms/chibios/boards/BONSAI_C4/configs/config.h @@ -87,4 +87,4 @@ #ifndef USB_VBUS_PIN # define USB_VBUS_PIN PAL_LINE(GPIOA, 9) -#endif \ No newline at end of file +#endif diff --git a/platforms/chibios/boards/BONSAI_C4/configs/halconf.h b/platforms/chibios/boards/BONSAI_C4/configs/halconf.h index 6bab6fbcff8..55bafe5cfa3 100644 --- a/platforms/chibios/boards/BONSAI_C4/configs/halconf.h +++ b/platforms/chibios/boards/BONSAI_C4/configs/halconf.h @@ -46,4 +46,4 @@ # define SPI_USE_WAIT TRUE #endif -#include_next \ No newline at end of file +#include_next diff --git a/platforms/chibios/boards/GENERIC_STM32_F405XG/board/board.mk b/platforms/chibios/boards/GENERIC_STM32_F405XG/board/board.mk index 6c837bb8ee2..00cc9b20b26 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F405XG/board/board.mk +++ b/platforms/chibios/boards/GENERIC_STM32_F405XG/board/board.mk @@ -6,4 +6,4 @@ BOARDINC = $(CHIBIOS)/os/hal/boards/ST_STM32F4_DISCOVERY # Shared variables ALLCSRC += $(BOARDSRC) -ALLINC += $(BOARDINC) \ No newline at end of file +ALLINC += $(BOARDINC) diff --git a/platforms/chibios/boards/GENERIC_STM32_F407XE/board/board.mk b/platforms/chibios/boards/GENERIC_STM32_F407XE/board/board.mk index 6c837bb8ee2..00cc9b20b26 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F407XE/board/board.mk +++ b/platforms/chibios/boards/GENERIC_STM32_F407XE/board/board.mk @@ -6,4 +6,4 @@ BOARDINC = $(CHIBIOS)/os/hal/boards/ST_STM32F4_DISCOVERY # Shared variables ALLCSRC += $(BOARDSRC) -ALLINC += $(BOARDINC) \ No newline at end of file +ALLINC += $(BOARDINC) diff --git a/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/board.h b/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/board.h index a0d53d86e7c..c2f25db810c 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/board.h +++ b/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/board.h @@ -21,4 +21,4 @@ #include_next -#undef STM32_HSE_BYPASS \ No newline at end of file +#undef STM32_HSE_BYPASS diff --git a/platforms/chibios/boards/GENERIC_STM32_G474XE/configs/config.h b/platforms/chibios/boards/GENERIC_STM32_G474XE/configs/config.h index eb74d68e85d..da0a634bb5a 100644 --- a/platforms/chibios/boards/GENERIC_STM32_G474XE/configs/config.h +++ b/platforms/chibios/boards/GENERIC_STM32_G474XE/configs/config.h @@ -27,4 +27,4 @@ #if 0 #define STM32_BOOTLOADER_DUAL_BANK TRUE #define STM32_BOOTLOADER_DUAL_BANK_GPIO B7 -#endif \ No newline at end of file +#endif diff --git a/platforms/chibios/boards/GENERIC_WB32_F3G71XX/configs/chconf.h b/platforms/chibios/boards/GENERIC_WB32_F3G71XX/configs/chconf.h index e4afddb6a51..fa0b6f11d01 100644 --- a/platforms/chibios/boards/GENERIC_WB32_F3G71XX/configs/chconf.h +++ b/platforms/chibios/boards/GENERIC_WB32_F3G71XX/configs/chconf.h @@ -23,4 +23,4 @@ #define CH_CFG_ST_TIMEDELTA 0 -#include_next \ No newline at end of file +#include_next diff --git a/platforms/chibios/boards/GENERIC_WB32_FQ95XX/configs/chconf.h b/platforms/chibios/boards/GENERIC_WB32_FQ95XX/configs/chconf.h index e4afddb6a51..fa0b6f11d01 100644 --- a/platforms/chibios/boards/GENERIC_WB32_FQ95XX/configs/chconf.h +++ b/platforms/chibios/boards/GENERIC_WB32_FQ95XX/configs/chconf.h @@ -23,4 +23,4 @@ #define CH_CFG_ST_TIMEDELTA 0 -#include_next \ No newline at end of file +#include_next diff --git a/platforms/chibios/boards/SIPEED_LONGAN_NANO/configs/chconf.h b/platforms/chibios/boards/SIPEED_LONGAN_NANO/configs/chconf.h index 6e5adb0fe18..ca0348e4e0e 100644 --- a/platforms/chibios/boards/SIPEED_LONGAN_NANO/configs/chconf.h +++ b/platforms/chibios/boards/SIPEED_LONGAN_NANO/configs/chconf.h @@ -20,4 +20,4 @@ struct _reent; #endif -#include_next \ No newline at end of file +#include_next diff --git a/platforms/chibios/bootloaders/stm32duino.c b/platforms/chibios/bootloaders/stm32duino.c index e2db7fa16ca..cc3f6be2dfd 100644 --- a/platforms/chibios/bootloaders/stm32duino.c +++ b/platforms/chibios/bootloaders/stm32duino.c @@ -25,4 +25,4 @@ __attribute__((weak)) void bootloader_jump(void) { __attribute__((weak)) void mcu_reset(void) { BKP->DR10 = RTC_BOOTLOADER_JUST_UPLOADED; NVIC_SystemReset(); -} \ No newline at end of file +} diff --git a/platforms/chibios/converters/promicro_to_bonsai_c4/_pin_defs.h b/platforms/chibios/converters/promicro_to_bonsai_c4/_pin_defs.h index 7e6b8ddaf23..deb0628ef84 100644 --- a/platforms/chibios/converters/promicro_to_bonsai_c4/_pin_defs.h +++ b/platforms/chibios/converters/promicro_to_bonsai_c4/_pin_defs.h @@ -37,4 +37,4 @@ // If this is undesirable, either B0 or B5 can be redefined by // using #undef and #define to change its assignment #define B0 PAL_LINE(GPIOB, 2) -#define D5 PAL_LINE(GPIOB, 2) \ No newline at end of file +#define D5 PAL_LINE(GPIOB, 2) diff --git a/platforms/chibios/converters/promicro_to_bonsai_c4/post_converter.mk b/platforms/chibios/converters/promicro_to_bonsai_c4/post_converter.mk index 5f49b17f8a6..beefb9de23a 100644 --- a/platforms/chibios/converters/promicro_to_bonsai_c4/post_converter.mk +++ b/platforms/chibios/converters/promicro_to_bonsai_c4/post_converter.mk @@ -2,4 +2,4 @@ BACKLIGHT_DRIVER ?= pwm WS2812_DRIVER ?= pwm SERIAL_DRIVER ?= usart FLASH_DRIVER ?= spi -EEPROM_DRIVER ?= spi \ No newline at end of file +EEPROM_DRIVER ?= spi diff --git a/platforms/chibios/drivers/i2c_master.c b/platforms/chibios/drivers/i2c_master.c index 1d7fe276334..20850859b5c 100644 --- a/platforms/chibios/drivers/i2c_master.c +++ b/platforms/chibios/drivers/i2c_master.c @@ -206,4 +206,4 @@ __attribute__((weak)) i2c_status_t i2c_ping_address(uint8_t address, uint16_t ti // This approach may produce false negative results for I2C devices that do not respond to a register 0 read request. uint8_t data = 0; return i2c_read_register(address, 0, &data, sizeof(data), timeout); -} \ No newline at end of file +} diff --git a/platforms/chibios/drivers/usbpd_stm32g4.c b/platforms/chibios/drivers/usbpd_stm32g4.c index 21b8f6db95a..7603b5627b6 100644 --- a/platforms/chibios/drivers/usbpd_stm32g4.c +++ b/platforms/chibios/drivers/usbpd_stm32g4.c @@ -76,4 +76,4 @@ __attribute__((weak)) usbpd_allowance_t usbpd_get_allowance(void) { } return USBPD_500MA; -} \ No newline at end of file +} diff --git a/platforms/chibios/platform.c b/platforms/chibios/platform.c index d4a229f2784..e559f178cd1 100644 --- a/platforms/chibios/platform.c +++ b/platforms/chibios/platform.c @@ -19,4 +19,4 @@ void platform_setup(void) { halInit(); chSysInit(); -} \ No newline at end of file +} diff --git a/platforms/test/platform.c b/platforms/test/platform.c index 8ddceeda8f0..3e35b4fe4c7 100644 --- a/platforms/test/platform.c +++ b/platforms/test/platform.c @@ -18,4 +18,4 @@ void platform_setup(void) { // do nothing -} \ No newline at end of file +} diff --git a/quantum/rgb_matrix/animations/rgb_matrix_effects.inc b/quantum/rgb_matrix/animations/rgb_matrix_effects.inc index a02238a2d1a..e8b7a2bcde2 100644 --- a/quantum/rgb_matrix/animations/rgb_matrix_effects.inc +++ b/quantum/rgb_matrix/animations/rgb_matrix_effects.inc @@ -42,4 +42,4 @@ #include "starlight_anim.h" #include "starlight_dual_sat_anim.h" #include "starlight_dual_hue_anim.h" -#include "riverflow_anim.h" \ No newline at end of file +#include "riverflow_anim.h" diff --git a/quantum/split_common/split_util.h b/quantum/split_common/split_util.h index f83b05b6a63..6f4c4dc6602 100644 --- a/quantum/split_common/split_util.h +++ b/quantum/split_common/split_util.h @@ -15,4 +15,4 @@ bool is_transport_connected(void); void split_watchdog_update(bool done); void split_watchdog_task(void); -bool split_watchdog_check(void); \ No newline at end of file +bool split_watchdog_check(void); diff --git a/quantum/via.h b/quantum/via.h index 01d4c48b374..f9d3b3314c4 100644 --- a/quantum/via.h +++ b/quantum/via.h @@ -202,4 +202,4 @@ void via_qmk_audio_command(uint8_t *data, uint8_t length); void via_qmk_audio_set_value(uint8_t *data); void via_qmk_audio_get_value(uint8_t *data); void via_qmk_audio_save(void); -#endif \ No newline at end of file +#endif diff --git a/quantum/wear_leveling/tests/rules.mk b/quantum/wear_leveling/tests/rules.mk index 4d7a9640496..f5f36e5b6ea 100644 --- a/quantum/wear_leveling/tests/rules.mk +++ b/quantum/wear_leveling/tests/rules.mk @@ -63,4 +63,4 @@ wear_leveling_8byte_SRC := \ $(wear_leveling_common_SRC) \ $(QUANTUM_PATH)/wear_leveling/tests/wear_leveling_8byte.cpp wear_leveling_8byte_INC := \ - $(wear_leveling_common_INC) \ No newline at end of file + $(wear_leveling_common_INC) diff --git a/tests/basic/test_one_shot_keys.cpp b/tests/basic/test_one_shot_keys.cpp index 92db52f811e..4784c866940 100644 --- a/tests/basic/test_one_shot_keys.cpp +++ b/tests/basic/test_one_shot_keys.cpp @@ -686,4 +686,4 @@ TEST_F(OneShot, OSLWithLongModTapKeyAndRegularKey) { regular_key.release(); run_one_scan_loop(); VERIFY_AND_CLEAR(driver); -} \ No newline at end of file +} diff --git a/tests/no_tapping/no_action_tapping/test.mk b/tests/no_tapping/no_action_tapping/test.mk index 29690d1adf7..6ec384609c7 100644 --- a/tests/no_tapping/no_action_tapping/test.mk +++ b/tests/no_tapping/no_action_tapping/test.mk @@ -15,4 +15,4 @@ # -------------------------------------------------------------------------------- # Keep this file, even if it is empty, as a marker that this folder contains tests -# -------------------------------------------------------------------------------- \ No newline at end of file +# -------------------------------------------------------------------------------- diff --git a/tests/no_tapping/no_mod_tap_mods/test.mk b/tests/no_tapping/no_mod_tap_mods/test.mk index 29690d1adf7..6ec384609c7 100644 --- a/tests/no_tapping/no_mod_tap_mods/test.mk +++ b/tests/no_tapping/no_mod_tap_mods/test.mk @@ -15,4 +15,4 @@ # -------------------------------------------------------------------------------- # Keep this file, even if it is empty, as a marker that this folder contains tests -# -------------------------------------------------------------------------------- \ No newline at end of file +# -------------------------------------------------------------------------------- diff --git a/users/_example/_example.c b/users/_example/_example.c index 8e0778b1225..5f9580d8e9f 100644 --- a/users/_example/_example.c +++ b/users/_example/_example.c @@ -2,4 +2,4 @@ void my_custom_function(void) { -} \ No newline at end of file +} diff --git a/users/_example/_example.h b/users/_example/_example.h index f7c79902574..72907d06d70 100644 --- a/users/_example/_example.h +++ b/users/_example/_example.h @@ -5,4 +5,4 @@ void my_custom_function(void); -#endif \ No newline at end of file +#endif diff --git a/users/_example/readme.md b/users/_example/readme.md index fdea33b67a9..d6ead7efd27 100644 --- a/users/_example/readme.md +++ b/users/_example/readme.md @@ -11,4 +11,4 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with this program. If not, see . \ No newline at end of file +along with this program. If not, see . diff --git a/users/_example/rules.mk b/users/_example/rules.mk index 250adc3d0d5..af076dd7fe1 100644 --- a/users/_example/rules.mk +++ b/users/_example/rules.mk @@ -1 +1 @@ -SRC += _example.c \ No newline at end of file +SRC += _example.c diff --git a/users/readme.md b/users/readme.md index d8f14d8beb5..8a490c28cef 100644 --- a/users/readme.md +++ b/users/readme.md @@ -1,3 +1,3 @@ # User space -This is a place for users to put code that they might use between keyboards. If you build the keymap `mine`, `/users/mine/rules.mk` will be included in your build, and `/users/mine/` will be in your path - keep these things in mind when naming your files and referencing them from other places. \ No newline at end of file +This is a place for users to put code that they might use between keyboards. If you build the keymap `mine`, `/users/mine/rules.mk` will be included in your build, and `/users/mine/` will be in your path - keep these things in mind when naming your files and referencing them from other places. diff --git a/util/usb_detach/usb_detach.c b/util/usb_detach/usb_detach.c index 786ab5e674e..8047c37ba3c 100644 --- a/util/usb_detach/usb_detach.c +++ b/util/usb_detach/usb_detach.c @@ -31,4 +31,4 @@ int main(int argc, char**argv) printf ("usage: %s /dev/bus/usb/BUS/DEVICE\n",argv[0]); printf("Release all interfaces of this usb device for usage in virtualisation\n"); } -} \ No newline at end of file +} From a70288bc4a22385325eaaec081bd4139b5b56f90 Mon Sep 17 00:00:00 2001 From: "Christian C. Berclaz" Date: Sun, 9 Mar 2025 08:59:02 +0100 Subject: [PATCH 261/365] New standard layout for Mechlovin' Zed60 (60_tsangan_hhkb) (#24801) * Added a default firmware and layout for the WindStudio Wind X R1 keyboard. * Wind X R1: cleaned-up the folders to make clear that this firmware is for the release 1 of this keyboard. * Delete keyboards/windstudio/wind_x/R1 directory Removing the uppercase R1 folder * feat(mechlovin/zed60): Added the missing standard 60_tsangan_hhkb * style(mechlovin/zed60): Ran qmk format-json -i on keyboard.json --- keyboards/mechlovin/zed60/keyboard.json | 258 ++++++++++++++---------- 1 file changed, 156 insertions(+), 102 deletions(-) diff --git a/keyboards/mechlovin/zed60/keyboard.json b/keyboards/mechlovin/zed60/keyboard.json index 39a8ae7ea78..136170eec6a 100644 --- a/keyboards/mechlovin/zed60/keyboard.json +++ b/keyboards/mechlovin/zed60/keyboard.json @@ -1,13 +1,9 @@ { - "keyboard_name": "Zed60", "manufacturer": "Mechlovin Studio", - "url": "", + "keyboard_name": "Zed60", "maintainer": "Mechlovin' Studio", - "usb": { - "vid": "0x4D4C", - "pid": "0x0602", - "device_version": "0.0.1" - }, + "bootloader": "stm32duino", + "diode_direction": "COL2ROW", "features": { "bootmagic": true, "command": true, @@ -17,41 +13,110 @@ "nkro": false, "rgblight": true }, + "indicators": { + "caps_lock": "A4" + }, "matrix_pins": { "cols": ["A10", "A3", "A9", "A8", "B15", "B14", "B13", "B12", "B5", "B4", "B3", "A15", "B7", "B6"], "rows": ["B10", "B2", "B1", "B0", "A2"] }, - "diode_direction": "COL2ROW", - "indicators": { - "caps_lock": "A4" - }, + "processor": "STM32F103", "rgblight": { - "saturation_steps": 8, - "brightness_steps": 8, - "led_count": 22, - "sleep": true, "animations": { + "alternating": true, "breathing": true, + "christmas": true, + "knight": true, "rainbow_mood": true, "rainbow_swirl": true, - "snake": true, - "knight": true, - "christmas": true, - "static_gradient": true, "rgb_test": true, - "alternating": true - } + "snake": true, + "static_gradient": true + }, + "brightness_steps": 8, + "led_count": 22, + "saturation_steps": 8, + "sleep": true + }, + "url": "", + "usb": { + "device_version": "0.0.1", + "pid": "0x0602", + "vid": "0x4D4C" }, "ws2812": { - "pin": "A7", - "driver": "spi" + "driver": "spi", + "pin": "A7" }, - "processor": "STM32F103", - "bootloader": "stm32duino", "layout_aliases": { "LAYOUT_all": "LAYOUT_60_ansi_split_bs_rshift" }, "layouts": { + "LAYOUT_60_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, "LAYOUT_60_ansi_split_bs_rshift": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, @@ -69,7 +134,6 @@ {"matrix": [0, 12], "x": 12, "y": 0}, {"matrix": [0, 13], "x": 13, "y": 0}, {"matrix": [2, 12], "x": 14, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, {"matrix": [1, 2], "x": 2.5, "y": 1}, @@ -84,7 +148,6 @@ {"matrix": [1, 11], "x": 11.5, "y": 1}, {"matrix": [1, 12], "x": 12.5, "y": 1}, {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, {"matrix": [2, 1], "x": 1.75, "y": 2}, {"matrix": [2, 2], "x": 2.75, "y": 2}, @@ -98,7 +161,6 @@ {"matrix": [2, 10], "x": 10.75, "y": 2}, {"matrix": [2, 11], "x": 11.75, "y": 2}, {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, {"matrix": [3, 2], "x": 2.25, "y": 3}, {"matrix": [3, 3], "x": 3.25, "y": 3}, @@ -112,76 +174,6 @@ {"matrix": [3, 11], "x": 11.25, "y": 3}, {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, {"matrix": [3, 13], "x": 14, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} - ] - }, - "LAYOUT_60_ansi": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, @@ -208,7 +200,6 @@ {"matrix": [0, 11], "x": 11, "y": 0}, {"matrix": [0, 12], "x": 12, "y": 0}, {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, {"matrix": [1, 2], "x": 2.5, "y": 1}, @@ -223,7 +214,6 @@ {"matrix": [1, 11], "x": 11.5, "y": 1}, {"matrix": [1, 12], "x": 12.5, "y": 1}, {"matrix": [1, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, {"matrix": [2, 1], "x": 1.75, "y": 2}, {"matrix": [2, 2], "x": 2.75, "y": 2}, @@ -237,7 +227,6 @@ {"matrix": [2, 10], "x": 10.75, "y": 2}, {"matrix": [2, 11], "x": 11.75, "y": 2}, {"matrix": [2, 13], "x": 12.75, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, {"matrix": [3, 1], "x": 1.25, "y": 3}, {"matrix": [3, 2], "x": 2.25, "y": 3}, @@ -251,7 +240,6 @@ {"matrix": [3, 10], "x": 10.25, "y": 3}, {"matrix": [3, 11], "x": 11.25, "y": 3}, {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, @@ -261,6 +249,72 @@ {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} ] + }, + "LAYOUT_60_tsangan_hhkb": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] } } } From 30daeaf09f33c02979b3a1803dfdbcb4c436b1ed Mon Sep 17 00:00:00 2001 From: Matthijs Muller <38044391+SmollChungus@users.noreply.github.com> Date: Sun, 9 Mar 2025 09:51:29 +0100 Subject: [PATCH 262/365] Add Icebreaker keyboard (#24723) Co-authored-by: jack Co-authored-by: Ryan Co-authored-by: Drashna Jaelre --- keyboards/icebreaker/hotswap/keyboard.json | 240 ++++++++++++++++++ .../hotswap/keymaps/default/keymap.c | 43 ++++ .../hotswap/keymaps/default/rules.mk | 1 + keyboards/icebreaker/readme.md | 26 ++ 4 files changed, 310 insertions(+) create mode 100644 keyboards/icebreaker/hotswap/keyboard.json create mode 100644 keyboards/icebreaker/hotswap/keymaps/default/keymap.c create mode 100644 keyboards/icebreaker/hotswap/keymaps/default/rules.mk create mode 100644 keyboards/icebreaker/readme.md diff --git a/keyboards/icebreaker/hotswap/keyboard.json b/keyboards/icebreaker/hotswap/keyboard.json new file mode 100644 index 00000000000..ab55c5ae5ff --- /dev/null +++ b/keyboards/icebreaker/hotswap/keyboard.json @@ -0,0 +1,240 @@ +{ + "manufacturer": "Serene Studio", + "keyboard_name": "Icebreaker HS", + "maintainer": "Matthijs Muller", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "GP26", "pin_b": "GP27"} + ] + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP24", "GP19", "GP18", "GP17", "GP29", "GP0", "GP12", "GP11", "GP10", "GP7", "GP6", "GP5", "GP4", "GP3", "GP2"], + "rows": ["GP25", "GP22", "GP28", "GP23", "GP1"] + }, + "processor": "RP2040", + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "fractal": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "multisplash": true, + "pixel_flow": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "solid_multisplash": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "default": { + "sat": 100, + "val": 80 + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4}, + {"matrix": [2, 13], "x": 224, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 240, "y": 0, "flags": 4}, + {"matrix": [1, 14], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 72, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 88, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 136, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 152, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 168, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 184, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 200, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 216, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 240, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 204, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 240, "y": 32, "flags": 4}, + {"matrix": [3, 14], "x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 68, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 84, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 100, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 116, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 132, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 148, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 164, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 180, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 196, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 224, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 240, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 24, "y": 64, "flags": 4}, + {"matrix": [4, 6], "x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 160, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 184, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 208, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 4}, + {"matrix": [4, 14], "x": 240, "y": 64, "flags": 4} + ], + "max_brightness": 120 + }, + "url": "", + "usb": { + "device_version": "0.0.1", + "pid": "0x6503", + "vid": "0x5363" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP13" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"label": "encoder", "matrix": [3, 1], "x": 16, "y": 0, "encoder": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4, "w": 1}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4}, + {"matrix": [4, 11], "x": 12, "y": 4}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/icebreaker/hotswap/keymaps/default/keymap.c b/keyboards/icebreaker/hotswap/keymaps/default/keymap.c new file mode 100644 index 00000000000..058210fff4d --- /dev/null +++ b/keyboards/icebreaker/hotswap/keymaps/default/keymap.c @@ -0,0 +1,43 @@ +/* +Copyright 2024 Matthijs Muller + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL, KC_GRV, KC_MUTE, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RM_TOGG, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLU, _______, + _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(RM_SATD, RM_SATU) }, +}; +#endif diff --git a/keyboards/icebreaker/hotswap/keymaps/default/rules.mk b/keyboards/icebreaker/hotswap/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/icebreaker/hotswap/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/icebreaker/readme.md b/keyboards/icebreaker/readme.md new file mode 100644 index 00000000000..439756f1b3c --- /dev/null +++ b/keyboards/icebreaker/readme.md @@ -0,0 +1,26 @@ +# Icebreaker + +![Icebreaker](https://i.imgur.com/vSRfEOD.png) + + + +* Keyboard Maintainer: [Matthijs Muller](https://github.com/SmollChungus) +* Hardware Supported: Icebreaker Hotswap PCB + +Make example for this keyboard (after setting up your build environment): + + make icebreaker:default + +Flashing example for this keyboard: + + make icebreaker:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file From 21c1fd5e5b0cfcb3823843857d47600c39b97f0a Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 9 Mar 2025 23:40:59 +0000 Subject: [PATCH 263/365] Require 'x'/'y' properties for LED/RGB Matrix layout (#24997) --- data/schemas/keyboard.jsonschema | 2 ++ 1 file changed, 2 insertions(+) diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 9b63f62d451..eee2915fcb2 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -554,6 +554,7 @@ "items": { "type": "object", "additionalProperties": false, + "required": ["x", "y"], "properties": { "matrix": { "type": "array", @@ -640,6 +641,7 @@ "items": { "type": "object", "additionalProperties": false, + "required": ["x", "y"], "properties": { "matrix": { "type": "array", From 67934546ea59f9e7782e55985281d07319f21639 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 9 Mar 2025 23:41:24 +0000 Subject: [PATCH 264/365] Only configure `STM32_HSECLK` within `board.h` (#25001) --- .../lilith/config.h => akb/vero/board.h} | 7 +++--- keyboards/akb/vero/config.h | 23 ------------------- .../model_m_4th_gen/overnumpad_1xb/board.h | 8 +++++++ .../model_m_4th_gen/overnumpad_1xb/config.h | 2 -- keyboards/keychron/c1_pro_v2/board.h | 8 +++++++ keyboards/keychron/c1_pro_v2/mcuconf.h | 3 --- keyboards/keychron/c2_pro_v2/board.h | 8 +++++++ keyboards/keychron/c2_pro_v2/mcuconf.h | 3 --- keyboards/keychron/c3_pro/board.h | 8 +++++++ keyboards/keychron/c3_pro/mcuconf.h | 3 --- keyboards/neson_design/810e/board.h | 8 +++++++ keyboards/neson_design/810e/config.h | 21 ----------------- keyboards/nix_studio/lilith/board.h | 8 +++++++ keyboards/teleport/native/board.h | 8 +++++++ keyboards/teleport/native/config.h | 3 --- .../overnumpad_1xb/board.h | 8 +++++++ .../overnumpad_1xb/config.h | 2 -- .../overnumpad_1xb/board.h | 8 +++++++ .../overnumpad_1xb/config.h | 2 -- .../unicomp/pc122/overnumpad_1xb/board.h | 8 +++++++ .../unicomp/pc122/overnumpad_1xb/config.h | 2 -- .../overnumpad_1xb/board.h | 8 +++++++ .../overnumpad_1xb/config.h | 2 -- .../overnumpad_1xb/board.h | 8 +++++++ .../overnumpad_1xb/config.h | 2 -- keyboards/werk_technica/one/board.h | 8 +++++++ keyboards/werk_technica/one/config.h | 7 ------ keyboards/xelus/rs108/board.h | 8 +++++++ keyboards/xelus/rs108/config.h | 3 --- keyboards/xelus/rs60/rev2_0/board.h | 8 +++++++ keyboards/xelus/rs60/rev2_0/config.h | 3 --- keyboards/xelus/valor_frl_tkl/rev2_0/board.h | 8 +++++++ keyboards/xelus/valor_frl_tkl/rev2_0/config.h | 19 --------------- keyboards/xelus/valor_frl_tkl/rev2_1/board.h | 8 +++++++ keyboards/xelus/valor_frl_tkl/rev2_1/config.h | 19 --------------- 35 files changed, 140 insertions(+), 122 deletions(-) rename keyboards/{nix_studio/lilith/config.h => akb/vero/board.h} (55%) delete mode 100644 keyboards/akb/vero/config.h create mode 100644 keyboards/ibm/model_m_4th_gen/overnumpad_1xb/board.h create mode 100644 keyboards/keychron/c1_pro_v2/board.h create mode 100644 keyboards/keychron/c2_pro_v2/board.h create mode 100644 keyboards/keychron/c3_pro/board.h create mode 100644 keyboards/neson_design/810e/board.h delete mode 100644 keyboards/neson_design/810e/config.h create mode 100644 keyboards/nix_studio/lilith/board.h create mode 100644 keyboards/teleport/native/board.h create mode 100644 keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/board.h create mode 100644 keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/board.h create mode 100644 keyboards/unicomp/pc122/overnumpad_1xb/board.h create mode 100644 keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/board.h create mode 100644 keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/board.h create mode 100644 keyboards/werk_technica/one/board.h delete mode 100644 keyboards/werk_technica/one/config.h create mode 100644 keyboards/xelus/rs108/board.h create mode 100644 keyboards/xelus/rs60/rev2_0/board.h create mode 100644 keyboards/xelus/valor_frl_tkl/rev2_0/board.h delete mode 100644 keyboards/xelus/valor_frl_tkl/rev2_0/config.h create mode 100644 keyboards/xelus/valor_frl_tkl/rev2_1/board.h delete mode 100644 keyboards/xelus/valor_frl_tkl/rev2_1/config.h diff --git a/keyboards/nix_studio/lilith/config.h b/keyboards/akb/vero/board.h similarity index 55% rename from keyboards/nix_studio/lilith/config.h rename to keyboards/akb/vero/board.h index 225e6ac51b2..2a370fe2e05 100644 --- a/keyboards/nix_studio/lilith/config.h +++ b/keyboards/akb/vero/board.h @@ -1,7 +1,8 @@ // Copyright 2022 Martin Arnstad (@arnstadm) // SPDX-License-Identifier: GPL-2.0-or-later - #pragma once -/* Set HSE clock since it differs from F411 default */ -#define STM32_HSECLK 16000000 +#include_next + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000U diff --git a/keyboards/akb/vero/config.h b/keyboards/akb/vero/config.h deleted file mode 100644 index bb6d15d92cc..00000000000 --- a/keyboards/akb/vero/config.h +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2022 Martin Arnstad (@arnstadm) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT - -/* Set HSE clock since it differs from F411 default */ -#define STM32_HSECLK 16000000 diff --git a/keyboards/ibm/model_m_4th_gen/overnumpad_1xb/board.h b/keyboards/ibm/model_m_4th_gen/overnumpad_1xb/board.h new file mode 100644 index 00000000000..5b80eb2230b --- /dev/null +++ b/keyboards/ibm/model_m_4th_gen/overnumpad_1xb/board.h @@ -0,0 +1,8 @@ +// Copyright 2020 Purdea Andrei +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000U diff --git a/keyboards/ibm/model_m_4th_gen/overnumpad_1xb/config.h b/keyboards/ibm/model_m_4th_gen/overnumpad_1xb/config.h index 71e60e9cfe6..c10d26b9b26 100644 --- a/keyboards/ibm/model_m_4th_gen/overnumpad_1xb/config.h +++ b/keyboards/ibm/model_m_4th_gen/overnumpad_1xb/config.h @@ -21,8 +21,6 @@ #define SERIAL_NUMBER DEF_SERIAL_NUMBER #endif -#define STM32_HSECLK 16000000 - #define SOLENOID_PIN B5 #define HAPTIC_ENABLE_PIN C13 #define SOLENOID_DEFAULT_DWELL 20 diff --git a/keyboards/keychron/c1_pro_v2/board.h b/keyboards/keychron/c1_pro_v2/board.h new file mode 100644 index 00000000000..e6cf0b2856f --- /dev/null +++ b/keyboards/keychron/c1_pro_v2/board.h @@ -0,0 +1,8 @@ +// Copyright 2025 @ Keychron (https://www.keychron.com) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000U diff --git a/keyboards/keychron/c1_pro_v2/mcuconf.h b/keyboards/keychron/c1_pro_v2/mcuconf.h index ca470fb5b3d..95966a32cea 100644 --- a/keyboards/keychron/c1_pro_v2/mcuconf.h +++ b/keyboards/keychron/c1_pro_v2/mcuconf.h @@ -18,9 +18,6 @@ #include_next -#undef STM32_HSECLK -#define STM32_HSECLK 16000000U - #undef STM32_PLLM_VALUE #define STM32_PLLM_VALUE 8 diff --git a/keyboards/keychron/c2_pro_v2/board.h b/keyboards/keychron/c2_pro_v2/board.h new file mode 100644 index 00000000000..e6cf0b2856f --- /dev/null +++ b/keyboards/keychron/c2_pro_v2/board.h @@ -0,0 +1,8 @@ +// Copyright 2025 @ Keychron (https://www.keychron.com) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000U diff --git a/keyboards/keychron/c2_pro_v2/mcuconf.h b/keyboards/keychron/c2_pro_v2/mcuconf.h index ca470fb5b3d..95966a32cea 100644 --- a/keyboards/keychron/c2_pro_v2/mcuconf.h +++ b/keyboards/keychron/c2_pro_v2/mcuconf.h @@ -18,9 +18,6 @@ #include_next -#undef STM32_HSECLK -#define STM32_HSECLK 16000000U - #undef STM32_PLLM_VALUE #define STM32_PLLM_VALUE 8 diff --git a/keyboards/keychron/c3_pro/board.h b/keyboards/keychron/c3_pro/board.h new file mode 100644 index 00000000000..60d25b93b8d --- /dev/null +++ b/keyboards/keychron/c3_pro/board.h @@ -0,0 +1,8 @@ +// Copyright 2024 @ Keychron (https://www.keychron.com) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000U diff --git a/keyboards/keychron/c3_pro/mcuconf.h b/keyboards/keychron/c3_pro/mcuconf.h index b2b81df8551..ad75926a145 100644 --- a/keyboards/keychron/c3_pro/mcuconf.h +++ b/keyboards/keychron/c3_pro/mcuconf.h @@ -18,9 +18,6 @@ #include_next -#undef STM32_HSECLK -#define STM32_HSECLK 16000000U - #undef STM32_PLLM_VALUE #define STM32_PLLM_VALUE 8 diff --git a/keyboards/neson_design/810e/board.h b/keyboards/neson_design/810e/board.h new file mode 100644 index 00000000000..681350a0ea7 --- /dev/null +++ b/keyboards/neson_design/810e/board.h @@ -0,0 +1,8 @@ +// Copyright 2024 astro +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000U diff --git a/keyboards/neson_design/810e/config.h b/keyboards/neson_design/810e/config.h deleted file mode 100644 index c6409b1ecea..00000000000 --- a/keyboards/neson_design/810e/config.h +++ /dev/null @@ -1,21 +0,0 @@ -/** - * Copyright 2024 astro - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define BOARD_OTG_NOVBUSSENS 1 -#define STM32_HSECLK 16000000U diff --git a/keyboards/nix_studio/lilith/board.h b/keyboards/nix_studio/lilith/board.h new file mode 100644 index 00000000000..2a370fe2e05 --- /dev/null +++ b/keyboards/nix_studio/lilith/board.h @@ -0,0 +1,8 @@ +// Copyright 2022 Martin Arnstad (@arnstadm) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000U diff --git a/keyboards/teleport/native/board.h b/keyboards/teleport/native/board.h new file mode 100644 index 00000000000..41efeb2c1a2 --- /dev/null +++ b/keyboards/teleport/native/board.h @@ -0,0 +1,8 @@ +// Copyright 2022 Moritz Plattner +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000U diff --git a/keyboards/teleport/native/config.h b/keyboards/teleport/native/config.h index 31d0025883c..cd823d725e9 100644 --- a/keyboards/teleport/native/config.h +++ b/keyboards/teleport/native/config.h @@ -67,6 +67,3 @@ along with this program. If not, see . #ifdef ENABLE_RGB_MATRIX_TYPING_HEATMAP #define RGB_MATRIX_TYPING_HEATMAP_SLIM #endif - -/* Set HSE clock since it differs from F411 default */ -#define STM32_HSECLK 16000000 diff --git a/keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/board.h b/keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/board.h new file mode 100644 index 00000000000..5b80eb2230b --- /dev/null +++ b/keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/board.h @@ -0,0 +1,8 @@ +// Copyright 2020 Purdea Andrei +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000U diff --git a/keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/config.h b/keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/config.h index 71e60e9cfe6..c10d26b9b26 100644 --- a/keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/config.h +++ b/keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/config.h @@ -21,8 +21,6 @@ #define SERIAL_NUMBER DEF_SERIAL_NUMBER #endif -#define STM32_HSECLK 16000000 - #define SOLENOID_PIN B5 #define HAPTIC_ENABLE_PIN C13 #define SOLENOID_DEFAULT_DWELL 20 diff --git a/keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/board.h b/keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/board.h new file mode 100644 index 00000000000..5b80eb2230b --- /dev/null +++ b/keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/board.h @@ -0,0 +1,8 @@ +// Copyright 2020 Purdea Andrei +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000U diff --git a/keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/config.h b/keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/config.h index 71e60e9cfe6..c10d26b9b26 100644 --- a/keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/config.h +++ b/keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/config.h @@ -21,8 +21,6 @@ #define SERIAL_NUMBER DEF_SERIAL_NUMBER #endif -#define STM32_HSECLK 16000000 - #define SOLENOID_PIN B5 #define HAPTIC_ENABLE_PIN C13 #define SOLENOID_DEFAULT_DWELL 20 diff --git a/keyboards/unicomp/pc122/overnumpad_1xb/board.h b/keyboards/unicomp/pc122/overnumpad_1xb/board.h new file mode 100644 index 00000000000..5b80eb2230b --- /dev/null +++ b/keyboards/unicomp/pc122/overnumpad_1xb/board.h @@ -0,0 +1,8 @@ +// Copyright 2020 Purdea Andrei +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000U diff --git a/keyboards/unicomp/pc122/overnumpad_1xb/config.h b/keyboards/unicomp/pc122/overnumpad_1xb/config.h index 71e60e9cfe6..c10d26b9b26 100644 --- a/keyboards/unicomp/pc122/overnumpad_1xb/config.h +++ b/keyboards/unicomp/pc122/overnumpad_1xb/config.h @@ -21,8 +21,6 @@ #define SERIAL_NUMBER DEF_SERIAL_NUMBER #endif -#define STM32_HSECLK 16000000 - #define SOLENOID_PIN B5 #define HAPTIC_ENABLE_PIN C13 #define SOLENOID_DEFAULT_DWELL 20 diff --git a/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/board.h b/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/board.h new file mode 100644 index 00000000000..5b80eb2230b --- /dev/null +++ b/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/board.h @@ -0,0 +1,8 @@ +// Copyright 2020 Purdea Andrei +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000U diff --git a/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/config.h b/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/config.h index 71e60e9cfe6..c10d26b9b26 100644 --- a/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/config.h +++ b/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/config.h @@ -21,8 +21,6 @@ #define SERIAL_NUMBER DEF_SERIAL_NUMBER #endif -#define STM32_HSECLK 16000000 - #define SOLENOID_PIN B5 #define HAPTIC_ENABLE_PIN C13 #define SOLENOID_DEFAULT_DWELL 20 diff --git a/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/board.h b/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/board.h new file mode 100644 index 00000000000..5b80eb2230b --- /dev/null +++ b/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/board.h @@ -0,0 +1,8 @@ +// Copyright 2020 Purdea Andrei +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000U diff --git a/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/config.h b/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/config.h index 71e60e9cfe6..c10d26b9b26 100644 --- a/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/config.h +++ b/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/config.h @@ -21,8 +21,6 @@ #define SERIAL_NUMBER DEF_SERIAL_NUMBER #endif -#define STM32_HSECLK 16000000 - #define SOLENOID_PIN B5 #define HAPTIC_ENABLE_PIN C13 #define SOLENOID_DEFAULT_DWELL 20 diff --git a/keyboards/werk_technica/one/board.h b/keyboards/werk_technica/one/board.h new file mode 100644 index 00000000000..3ad450d0234 --- /dev/null +++ b/keyboards/werk_technica/one/board.h @@ -0,0 +1,8 @@ +// Copyright 2022 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000U diff --git a/keyboards/werk_technica/one/config.h b/keyboards/werk_technica/one/config.h deleted file mode 100644 index 765e70851b4..00000000000 --- a/keyboards/werk_technica/one/config.h +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2022 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -/* Set HSE clock since it differs from F411 default */ -#define STM32_HSECLK 16000000 \ No newline at end of file diff --git a/keyboards/xelus/rs108/board.h b/keyboards/xelus/rs108/board.h new file mode 100644 index 00000000000..cce4af40f92 --- /dev/null +++ b/keyboards/xelus/rs108/board.h @@ -0,0 +1,8 @@ +// Copyright 2022 Harrison Chan (Xelus) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000U diff --git a/keyboards/xelus/rs108/config.h b/keyboards/xelus/rs108/config.h index 3d3bc49228f..883ed2b9aaf 100644 --- a/keyboards/xelus/rs108/config.h +++ b/keyboards/xelus/rs108/config.h @@ -28,6 +28,3 @@ // Hardware Defines #define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE - -// HSE CLK -#define STM32_HSECLK 16000000 diff --git a/keyboards/xelus/rs60/rev2_0/board.h b/keyboards/xelus/rs60/rev2_0/board.h new file mode 100644 index 00000000000..cce4af40f92 --- /dev/null +++ b/keyboards/xelus/rs60/rev2_0/board.h @@ -0,0 +1,8 @@ +// Copyright 2022 Harrison Chan (Xelus) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000U diff --git a/keyboards/xelus/rs60/rev2_0/config.h b/keyboards/xelus/rs60/rev2_0/config.h index 3d3bc49228f..883ed2b9aaf 100644 --- a/keyboards/xelus/rs60/rev2_0/config.h +++ b/keyboards/xelus/rs60/rev2_0/config.h @@ -28,6 +28,3 @@ // Hardware Defines #define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE - -// HSE CLK -#define STM32_HSECLK 16000000 diff --git a/keyboards/xelus/valor_frl_tkl/rev2_0/board.h b/keyboards/xelus/valor_frl_tkl/rev2_0/board.h new file mode 100644 index 00000000000..cce4af40f92 --- /dev/null +++ b/keyboards/xelus/valor_frl_tkl/rev2_0/board.h @@ -0,0 +1,8 @@ +// Copyright 2022 Harrison Chan (Xelus) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000U diff --git a/keyboards/xelus/valor_frl_tkl/rev2_0/config.h b/keyboards/xelus/valor_frl_tkl/rev2_0/config.h deleted file mode 100644 index b085b99d884..00000000000 --- a/keyboards/xelus/valor_frl_tkl/rev2_0/config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* Copyright 2022 Harrison Chan (Xelus) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define STM32_HSECLK 16000000 diff --git a/keyboards/xelus/valor_frl_tkl/rev2_1/board.h b/keyboards/xelus/valor_frl_tkl/rev2_1/board.h new file mode 100644 index 00000000000..cce4af40f92 --- /dev/null +++ b/keyboards/xelus/valor_frl_tkl/rev2_1/board.h @@ -0,0 +1,8 @@ +// Copyright 2022 Harrison Chan (Xelus) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000U diff --git a/keyboards/xelus/valor_frl_tkl/rev2_1/config.h b/keyboards/xelus/valor_frl_tkl/rev2_1/config.h deleted file mode 100644 index b085b99d884..00000000000 --- a/keyboards/xelus/valor_frl_tkl/rev2_1/config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* Copyright 2022 Harrison Chan (Xelus) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#define STM32_HSECLK 16000000 From 808c4d4e383a0592e073e75a4b13ba4aa472d365 Mon Sep 17 00:00:00 2001 From: Duncan Sutherland Date: Mon, 10 Mar 2025 07:48:35 +0000 Subject: [PATCH 265/365] add 75_(ansi|iso) Community Layouts to mechlovin/olly/octagon (#22459) * expand mechlovin/olly/octagon * Update info.json * Rename info.json to keyboard.json * correct matrix position for key * remove VIA --- .../mechlovin/olly/octagon/keyboard.json | 751 +++++++++++++++++- .../olly/octagon/keymaps/default/keymap.c | 6 +- .../mechlovin/olly/octagon/matrix_diagram.md | 26 + 3 files changed, 777 insertions(+), 6 deletions(-) create mode 100644 keyboards/mechlovin/olly/octagon/matrix_diagram.md diff --git a/keyboards/mechlovin/olly/octagon/keyboard.json b/keyboards/mechlovin/olly/octagon/keyboard.json index 4bc7d88ed77..9c580a664e6 100644 --- a/keyboards/mechlovin/olly/octagon/keyboard.json +++ b/keyboards/mechlovin/olly/octagon/keyboard.json @@ -170,11 +170,12 @@ "processor": "STM32F103", "bootloader": "stm32duino", "layout_aliases": { - "LAYOUT": "LAYOUT_split_bs", - "LAYOUT_all": "LAYOUT_split_bs" + "LAYOUT": "LAYOUT_all", + "LAYOUT_split_bs": "LAYOUT_all" }, + "community_layouts": ["75_ansi", "75_iso"], "layouts": { - "LAYOUT_split_bs": { + "LAYOUT_all": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -269,6 +270,750 @@ {"matrix": [5, 14], "x": 14, "y": 5}, {"matrix": [5, 15], "x": 15, "y": 5} ] + }, + "LAYOUT_75_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 13], "x": 13, "y": 1, "w": 2}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 3], "x": 3.5, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [2, 5], "x": 5.5, "y": 2}, + {"matrix": [2, 6], "x": 6.5, "y": 2}, + {"matrix": [2, 7], "x": 7.5, "y": 2}, + {"matrix": [2, 8], "x": 8.5, "y": 2}, + {"matrix": [2, 9], "x": 9.5, "y": 2}, + {"matrix": [2, 10], "x": 10.5, "y": 2}, + {"matrix": [2, 11], "x": 11.5, "y": 2}, + {"matrix": [2, 12], "x": 12.5, "y": 2}, + {"matrix": [2, 14], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3}, + {"matrix": [3, 2], "x": 2.75, "y": 3}, + {"matrix": [3, 3], "x": 3.75, "y": 3}, + {"matrix": [3, 4], "x": 4.75, "y": 3}, + {"matrix": [3, 5], "x": 5.75, "y": 3}, + {"matrix": [3, 6], "x": 6.75, "y": 3}, + {"matrix": [3, 7], "x": 7.75, "y": 3}, + {"matrix": [3, 8], "x": 8.75, "y": 3}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3}, + {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5}, + {"matrix": [5, 11], "x": 11, "y": 5}, + {"matrix": [5, 12], "x": 12, "y": 5}, + {"matrix": [5, 13], "x": 13, "y": 5}, + {"matrix": [5, 14], "x": 14, "y": 5}, + {"matrix": [5, 15], "x": 15, "y": 5} + ] + }, + "LAYOUT_75_ansi_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 13], "x": 13, "y": 1}, + {"matrix": [1, 14], "x": 14, "y": 1}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 3], "x": 3.5, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [2, 5], "x": 5.5, "y": 2}, + {"matrix": [2, 6], "x": 6.5, "y": 2}, + {"matrix": [2, 7], "x": 7.5, "y": 2}, + {"matrix": [2, 8], "x": 8.5, "y": 2}, + {"matrix": [2, 9], "x": 9.5, "y": 2}, + {"matrix": [2, 10], "x": 10.5, "y": 2}, + {"matrix": [2, 11], "x": 11.5, "y": 2}, + {"matrix": [2, 12], "x": 12.5, "y": 2}, + {"matrix": [2, 14], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3}, + {"matrix": [3, 2], "x": 2.75, "y": 3}, + {"matrix": [3, 3], "x": 3.75, "y": 3}, + {"matrix": [3, 4], "x": 4.75, "y": 3}, + {"matrix": [3, 5], "x": 5.75, "y": 3}, + {"matrix": [3, 6], "x": 6.75, "y": 3}, + {"matrix": [3, 7], "x": 7.75, "y": 3}, + {"matrix": [3, 8], "x": 8.75, "y": 3}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3}, + {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5}, + {"matrix": [5, 11], "x": 11, "y": 5}, + {"matrix": [5, 12], "x": 12, "y": 5}, + {"matrix": [5, 13], "x": 13, "y": 5}, + {"matrix": [5, 14], "x": 14, "y": 5}, + {"matrix": [5, 15], "x": 15, "y": 5} + ] + }, + "LAYOUT_75_ansi_wkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 13], "x": 13, "y": 1, "w": 2}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 3], "x": 3.5, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [2, 5], "x": 5.5, "y": 2}, + {"matrix": [2, 6], "x": 6.5, "y": 2}, + {"matrix": [2, 7], "x": 7.5, "y": 2}, + {"matrix": [2, 8], "x": 8.5, "y": 2}, + {"matrix": [2, 9], "x": 9.5, "y": 2}, + {"matrix": [2, 10], "x": 10.5, "y": 2}, + {"matrix": [2, 11], "x": 11.5, "y": 2}, + {"matrix": [2, 12], "x": 12.5, "y": 2}, + {"matrix": [2, 14], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3}, + {"matrix": [3, 2], "x": 2.75, "y": 3}, + {"matrix": [3, 3], "x": 3.75, "y": 3}, + {"matrix": [3, 4], "x": 4.75, "y": 3}, + {"matrix": [3, 5], "x": 5.75, "y": 3}, + {"matrix": [3, 6], "x": 6.75, "y": 3}, + {"matrix": [3, 7], "x": 7.75, "y": 3}, + {"matrix": [3, 8], "x": 8.75, "y": 3}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3}, + {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5, "w": 1.5}, + {"matrix": [5, 6], "x": 3, "y": 5, "w": 7}, + {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, + {"matrix": [5, 12], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [5, 13], "x": 13, "y": 5}, + {"matrix": [5, 14], "x": 14, "y": 5}, + {"matrix": [5, 15], "x": 15, "y": 5} + ] + }, + "LAYOUT_75_ansi_wkl_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 13], "x": 13, "y": 1}, + {"matrix": [1, 14], "x": 14, "y": 1}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 3], "x": 3.5, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [2, 5], "x": 5.5, "y": 2}, + {"matrix": [2, 6], "x": 6.5, "y": 2}, + {"matrix": [2, 7], "x": 7.5, "y": 2}, + {"matrix": [2, 8], "x": 8.5, "y": 2}, + {"matrix": [2, 9], "x": 9.5, "y": 2}, + {"matrix": [2, 10], "x": 10.5, "y": 2}, + {"matrix": [2, 11], "x": 11.5, "y": 2}, + {"matrix": [2, 12], "x": 12.5, "y": 2}, + {"matrix": [2, 14], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3}, + {"matrix": [3, 2], "x": 2.75, "y": 3}, + {"matrix": [3, 3], "x": 3.75, "y": 3}, + {"matrix": [3, 4], "x": 4.75, "y": 3}, + {"matrix": [3, 5], "x": 5.75, "y": 3}, + {"matrix": [3, 6], "x": 6.75, "y": 3}, + {"matrix": [3, 7], "x": 7.75, "y": 3}, + {"matrix": [3, 8], "x": 8.75, "y": 3}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3}, + {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5, "w": 1.5}, + {"matrix": [5, 6], "x": 3, "y": 5, "w": 7}, + {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, + {"matrix": [5, 12], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [5, 13], "x": 13, "y": 5}, + {"matrix": [5, 14], "x": 14, "y": 5}, + {"matrix": [5, 15], "x": 15, "y": 5} + ] + }, + "LAYOUT_75_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 13], "x": 13, "y": 1, "w": 2}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 3], "x": 3.5, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [2, 5], "x": 5.5, "y": 2}, + {"matrix": [2, 6], "x": 6.5, "y": 2}, + {"matrix": [2, 7], "x": 7.5, "y": 2}, + {"matrix": [2, 8], "x": 8.5, "y": 2}, + {"matrix": [2, 9], "x": 9.5, "y": 2}, + {"matrix": [2, 10], "x": 10.5, "y": 2}, + {"matrix": [2, 11], "x": 11.5, "y": 2}, + {"matrix": [2, 12], "x": 12.5, "y": 2}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3}, + {"matrix": [3, 2], "x": 2.75, "y": 3}, + {"matrix": [3, 3], "x": 3.75, "y": 3}, + {"matrix": [3, 4], "x": 4.75, "y": 3}, + {"matrix": [3, 5], "x": 5.75, "y": 3}, + {"matrix": [3, 6], "x": 6.75, "y": 3}, + {"matrix": [3, 7], "x": 7.75, "y": 3}, + {"matrix": [3, 8], "x": 8.75, "y": 3}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3}, + {"matrix": [3, 12], "x": 12.75, "y": 3}, + {"matrix": [2, 14], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5}, + {"matrix": [5, 11], "x": 11, "y": 5}, + {"matrix": [5, 12], "x": 12, "y": 5}, + {"matrix": [5, 13], "x": 13, "y": 5}, + {"matrix": [5, 14], "x": 14, "y": 5}, + {"matrix": [5, 15], "x": 15, "y": 5} + ] + }, + "LAYOUT_75_iso_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 13], "x": 13, "y": 1}, + {"matrix": [1, 14], "x": 14, "y": 1}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 3], "x": 3.5, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [2, 5], "x": 5.5, "y": 2}, + {"matrix": [2, 6], "x": 6.5, "y": 2}, + {"matrix": [2, 7], "x": 7.5, "y": 2}, + {"matrix": [2, 8], "x": 8.5, "y": 2}, + {"matrix": [2, 9], "x": 9.5, "y": 2}, + {"matrix": [2, 10], "x": 10.5, "y": 2}, + {"matrix": [2, 11], "x": 11.5, "y": 2}, + {"matrix": [2, 12], "x": 12.5, "y": 2}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3}, + {"matrix": [3, 2], "x": 2.75, "y": 3}, + {"matrix": [3, 3], "x": 3.75, "y": 3}, + {"matrix": [3, 4], "x": 4.75, "y": 3}, + {"matrix": [3, 5], "x": 5.75, "y": 3}, + {"matrix": [3, 6], "x": 6.75, "y": 3}, + {"matrix": [3, 7], "x": 7.75, "y": 3}, + {"matrix": [3, 8], "x": 8.75, "y": 3}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3}, + {"matrix": [3, 12], "x": 12.75, "y": 3}, + {"matrix": [2, 14], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5}, + {"matrix": [5, 11], "x": 11, "y": 5}, + {"matrix": [5, 12], "x": 12, "y": 5}, + {"matrix": [5, 13], "x": 13, "y": 5}, + {"matrix": [5, 14], "x": 14, "y": 5}, + {"matrix": [5, 15], "x": 15, "y": 5} + ] + }, + "LAYOUT_75_iso_wkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 13], "x": 13, "y": 1, "w": 2}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 3], "x": 3.5, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [2, 5], "x": 5.5, "y": 2}, + {"matrix": [2, 6], "x": 6.5, "y": 2}, + {"matrix": [2, 7], "x": 7.5, "y": 2}, + {"matrix": [2, 8], "x": 8.5, "y": 2}, + {"matrix": [2, 9], "x": 9.5, "y": 2}, + {"matrix": [2, 10], "x": 10.5, "y": 2}, + {"matrix": [2, 11], "x": 11.5, "y": 2}, + {"matrix": [2, 12], "x": 12.5, "y": 2}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3}, + {"matrix": [3, 2], "x": 2.75, "y": 3}, + {"matrix": [3, 3], "x": 3.75, "y": 3}, + {"matrix": [3, 4], "x": 4.75, "y": 3}, + {"matrix": [3, 5], "x": 5.75, "y": 3}, + {"matrix": [3, 6], "x": 6.75, "y": 3}, + {"matrix": [3, 7], "x": 7.75, "y": 3}, + {"matrix": [3, 8], "x": 8.75, "y": 3}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3}, + {"matrix": [3, 12], "x": 12.75, "y": 3}, + {"matrix": [2, 14], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5, "w": 1.5}, + {"matrix": [5, 6], "x": 3, "y": 5, "w": 7}, + {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, + {"matrix": [5, 12], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [5, 13], "x": 13, "y": 5}, + {"matrix": [5, 14], "x": 14, "y": 5}, + {"matrix": [5, 15], "x": 15, "y": 5} + ] + }, + "LAYOUT_75_iso_wkl_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 13], "x": 13, "y": 1}, + {"matrix": [1, 14], "x": 14, "y": 1}, + {"matrix": [1, 15], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 3], "x": 3.5, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [2, 5], "x": 5.5, "y": 2}, + {"matrix": [2, 6], "x": 6.5, "y": 2}, + {"matrix": [2, 7], "x": 7.5, "y": 2}, + {"matrix": [2, 8], "x": 8.5, "y": 2}, + {"matrix": [2, 9], "x": 9.5, "y": 2}, + {"matrix": [2, 10], "x": 10.5, "y": 2}, + {"matrix": [2, 11], "x": 11.5, "y": 2}, + {"matrix": [2, 12], "x": 12.5, "y": 2}, + {"matrix": [2, 15], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3}, + {"matrix": [3, 2], "x": 2.75, "y": 3}, + {"matrix": [3, 3], "x": 3.75, "y": 3}, + {"matrix": [3, 4], "x": 4.75, "y": 3}, + {"matrix": [3, 5], "x": 5.75, "y": 3}, + {"matrix": [3, 6], "x": 6.75, "y": 3}, + {"matrix": [3, 7], "x": 7.75, "y": 3}, + {"matrix": [3, 8], "x": 8.75, "y": 3}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3}, + {"matrix": [3, 12], "x": 12.75, "y": 3}, + {"matrix": [2, 14], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, + {"matrix": [3, 15], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5, "w": 1.5}, + {"matrix": [5, 6], "x": 3, "y": 5, "w": 7}, + {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, + {"matrix": [5, 12], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [5, 13], "x": 13, "y": 5}, + {"matrix": [5, 14], "x": 14, "y": 5}, + {"matrix": [5, 15], "x": 15, "y": 5} + ] } } } diff --git a/keyboards/mechlovin/olly/octagon/keymaps/default/keymap.c b/keyboards/mechlovin/olly/octagon/keymaps/default/keymap.c index 353f5f5d6de..19cd554ac3c 100644 --- a/keyboards/mechlovin/olly/octagon/keymaps/default/keymap.c +++ b/keyboards/mechlovin/olly/octagon/keymaps/default/keymap.c @@ -16,12 +16,12 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_split_bs( + [0] = LAYOUT_all( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_PAUS, KC_DEL, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_HOME, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, _______, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ) + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), }; diff --git a/keyboards/mechlovin/olly/octagon/matrix_diagram.md b/keyboards/mechlovin/olly/octagon/matrix_diagram.md new file mode 100644 index 00000000000..426e0691d1e --- /dev/null +++ b/keyboards/mechlovin/olly/octagon/matrix_diagram.md @@ -0,0 +1,26 @@ +# Matrix Diagram for Mechlovin Olly Octagon + +``` +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │0F │ +├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ ┌───────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │1F │ │1D │ 2u Backspace +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ └─┬─────┤ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2E │2F │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐2E │ ISO Enter +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │3F │ │3C │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ +│40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │4E │4F │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ +│50 │51 │52 │56 │5A │5B │5C │5D │5E │5F │ +└────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ +┌────────┐ +│40 │ 2.25u LShift +└────────┘ +┌────┬───┬────┬────────────────────────┬────┬───┬───┬───┬───┬───┐ +│50 │51 │52 │56 │5A │5B │5C │5D │5E │5F │ Alternative +└────┴───┴────┴────────────────────────┴────┴───┴───┴───┴───┴───┘ +┌─────┬─────┬───────────────────────────┬─────┬─────┬───┬───┬───┐ +│50 │51 │56 │5A │5C │5D │5E │5F │ WKL +└─────┴─────┴───────────────────────────┴─────┴─────┴───┴───┴───┘ +``` From 84f9b6dd3e979cefe89271ca1356f9e3d6614998 Mon Sep 17 00:00:00 2001 From: Dasky <32983009+daskygit@users.noreply.github.com> Date: Tue, 11 Mar 2025 09:42:33 +0000 Subject: [PATCH 266/365] Add Mechboards Sofle (#25004) * add sofle * fix readme --- keyboards/mechboards/sofle/pro/config.h | 6 + keyboards/mechboards/sofle/pro/keyboard.json | 203 ++++++++++++++++++ .../sofle/pro/keymaps/default/keymap.c | 47 ++++ .../sofle/pro/keymaps/default/rules.mk | 1 + keyboards/mechboards/sofle/pro/post_rules.mk | 1 + keyboards/mechboards/sofle/pro/pro.c | 15 ++ keyboards/mechboards/sofle/pro/readme.md | 25 +++ 7 files changed, 298 insertions(+) create mode 100644 keyboards/mechboards/sofle/pro/config.h create mode 100644 keyboards/mechboards/sofle/pro/keyboard.json create mode 100644 keyboards/mechboards/sofle/pro/keymaps/default/keymap.c create mode 100644 keyboards/mechboards/sofle/pro/keymaps/default/rules.mk create mode 100644 keyboards/mechboards/sofle/pro/post_rules.mk create mode 100644 keyboards/mechboards/sofle/pro/pro.c create mode 100644 keyboards/mechboards/sofle/pro/readme.md diff --git a/keyboards/mechboards/sofle/pro/config.h b/keyboards/mechboards/sofle/pro/config.h new file mode 100644 index 00000000000..43a4b3eb9fa --- /dev/null +++ b/keyboards/mechboards/sofle/pro/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "keyboards/mechboards/common/rgb_effects.h" diff --git a/keyboards/mechboards/sofle/pro/keyboard.json b/keyboards/mechboards/sofle/pro/keyboard.json new file mode 100644 index 00000000000..dbc339d9a1e --- /dev/null +++ b/keyboards/mechboards/sofle/pro/keyboard.json @@ -0,0 +1,203 @@ +{ + "manufacturer": "Mechboards", + "keyboard_name": "Sofle Pro", + "maintainer": "dasky", + "build": { + "lto": true + }, + "development_board": "promicro", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "F5", "pin_b": "F4"} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "oled": true, + "os_detection": true, + "rgb_matrix": true, + "wpm": true + }, + "matrix_pins": { + "cols": ["F6", "F7", "B1", "B3", "B2", "B6"], + "rows": ["C6", "D7", "E6", "B4", "B5"] + }, + "rgb_matrix": { + "animations": { + "cycle_left_right": true + }, + "default": { + "animation": "cycle_left_right" + }, + "driver": "ws2812", + "layout": [ + {"matrix": [4, 0], "x": 32, "y": 57, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 36, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 24, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 12, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 12, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 24, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 36, "flags": 4}, + {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4}, + {"matrix": [4, 1], "x": 48, "y": 55, "flags": 4}, + {"matrix": [4, 2], "x": 64, "y": 57, "flags": 4}, + {"matrix": [3, 2], "x": 32, "y": 45, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 33, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 21, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 9, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 7, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 19, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 31, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 43, "flags": 4}, + {"matrix": [4, 3], "x": 80, "y": 59, "flags": 4}, + {"matrix": [4, 4], "x": 96, "y": 64, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 45, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 33, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 21, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 9, "flags": 4}, + {"matrix": [0, 5], "x": 80, "y": 10, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 22, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 34, "flags": 4}, + {"matrix": [3, 5], "x": 80, "y": 47, "flags": 4}, + {"x": 84, "y": 45, "flags": 2}, + {"x": 68, "y": 7, "flags": 2}, + {"x": 20, "y": 14, "flags": 2}, + {"x": 28, "y": 49, "flags": 2}, + {"x": 62, "y": 57, "flags": 2}, + {"matrix": [9, 0], "x": 192, "y": 57, "flags": 4}, + {"matrix": [8, 0], "x": 224, "y": 48, "flags": 4}, + {"matrix": [7, 0], "x": 224, "y": 36, "flags": 4}, + {"matrix": [6, 0], "x": 224, "y": 24, "flags": 4}, + {"matrix": [5, 0], "x": 224, "y": 12, "flags": 4}, + {"matrix": [5, 1], "x": 208, "y": 12, "flags": 4}, + {"matrix": [6, 1], "x": 208, "y": 24, "flags": 4}, + {"matrix": [7, 1], "x": 208, "y": 36, "flags": 4}, + {"matrix": [8, 1], "x": 208, "y": 48, "flags": 4}, + {"matrix": [9, 1], "x": 176, "y": 55, "flags": 4}, + {"matrix": [9, 2], "x": 160, "y": 57, "flags": 4}, + {"matrix": [8, 2], "x": 192, "y": 45, "flags": 4}, + {"matrix": [7, 2], "x": 192, "y": 33, "flags": 4}, + {"matrix": [6, 2], "x": 192, "y": 21, "flags": 4}, + {"matrix": [5, 2], "x": 192, "y": 9, "flags": 4}, + {"matrix": [5, 3], "x": 176, "y": 7, "flags": 4}, + {"matrix": [6, 3], "x": 176, "y": 19, "flags": 4}, + {"matrix": [7, 3], "x": 176, "y": 31, "flags": 4}, + {"matrix": [8, 3], "x": 176, "y": 43, "flags": 4}, + {"matrix": [9, 3], "x": 144, "y": 59, "flags": 4}, + {"matrix": [9, 4], "x": 128, "y": 64, "flags": 4}, + {"matrix": [8, 4], "x": 160, "y": 45, "flags": 4}, + {"matrix": [7, 4], "x": 160, "y": 33, "flags": 4}, + {"matrix": [6, 4], "x": 160, "y": 21, "flags": 4}, + {"matrix": [5, 4], "x": 160, "y": 9, "flags": 4}, + {"matrix": [5, 5], "x": 144, "y": 10, "flags": 4}, + {"matrix": [6, 5], "x": 144, "y": 22, "flags": 4}, + {"matrix": [7, 5], "x": 144, "y": 34, "flags": 4}, + {"matrix": [8, 5], "x": 144, "y": 47, "flags": 4} + {"x": 140, "y": 45, "flags": 2}, + {"x": 156, "y": 7, "flags": 2}, + {"x": 204, "y": 14, "flags": 2}, + {"x": 196, "y": 49, "flags": 2}, + {"x": 162, "y": 57, "flags": 2} + ], + "max_brightness": 120, + "split_count": [34, 34] + }, + "rgblight": { + "led_count": 68, + "max_brightness": 120, + "split_count": [34, 34] + }, + "split": { + "enabled": true, + "serial": { + "pin": "D2" + }, + "transport": { + "sync": { + "matrix_state": true, + "oled": true, + "wpm": true + } + } + }, + "url": "mechboards.co.uk", + "usb": { + "device_version": "1.0.0", + "pid": "0x0004", + "vid": "0x7171" + }, + "ws2812": { + "pin": "D3" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.5}, + {"matrix": [0, 1], "x": 1, "y": 0.375}, + {"matrix": [0, 2], "x": 2, "y": 0.125}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0.125}, + {"matrix": [0, 5], "x": 5, "y": 0.25}, + {"matrix": [5, 5], "x": 10.5, "y": 0.25}, + {"matrix": [5, 4], "x": 11.5, "y": 0.125}, + {"matrix": [5, 3], "x": 12.5, "y": 0}, + {"matrix": [5, 2], "x": 13.5, "y": 0.125}, + {"matrix": [5, 1], "x": 14.5, "y": 0.375}, + {"matrix": [5, 0], "x": 15.5, "y": 0.5}, + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.375}, + {"matrix": [1, 2], "x": 2, "y": 1.125}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1.125}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [6, 5], "x": 10.5, "y": 1.25}, + {"matrix": [6, 4], "x": 11.5, "y": 1.125}, + {"matrix": [6, 3], "x": 12.5, "y": 1}, + {"matrix": [6, 2], "x": 13.5, "y": 1.125}, + {"matrix": [6, 1], "x": 14.5, "y": 1.375}, + {"matrix": [6, 0], "x": 15.5, "y": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2.5}, + {"matrix": [2, 1], "x": 1, "y": 2.375}, + {"matrix": [2, 2], "x": 2, "y": 2.125}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2.125}, + {"matrix": [2, 5], "x": 5, "y": 2.25}, + {"matrix": [7, 5], "x": 10.5, "y": 2.25}, + {"matrix": [7, 4], "x": 11.5, "y": 2.125}, + {"matrix": [7, 3], "x": 12.5, "y": 2}, + {"matrix": [7, 2], "x": 13.5, "y": 2.125}, + {"matrix": [7, 1], "x": 14.5, "y": 2.375}, + {"matrix": [7, 0], "x": 15.5, "y": 2.5}, + {"matrix": [3, 0], "x": 0, "y": 3.5}, + {"matrix": [3, 1], "x": 1, "y": 3.375}, + {"matrix": [3, 2], "x": 2, "y": 3.125}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3.125}, + {"matrix": [3, 5], "x": 5, "y": 3.25}, + {"matrix": [4, 5], "x": 6, "y": 2.75}, + {"matrix": [9, 5], "x": 9.5, "y": 2.75}, + {"matrix": [8, 5], "x": 10.5, "y": 3.25}, + {"matrix": [8, 4], "x": 11.5, "y": 3.125}, + {"matrix": [8, 3], "x": 12.5, "y": 3}, + {"matrix": [8, 2], "x": 13.5, "y": 3.125}, + {"matrix": [8, 1], "x": 14.5, "y": 3.375}, + {"matrix": [8, 0], "x": 15.5, "y": 3.5}, + {"matrix": [4, 0], "x": 1.5, "y": 4.375}, + {"matrix": [4, 1], "x": 2.5, "y": 4.125}, + {"matrix": [4, 2], "x": 3.5, "y": 4.15}, + {"matrix": [4, 3], "x": 4.5, "y": 4.25}, + {"matrix": [4, 4], "x": 6, "y": 4.25, "h": 1.5}, + {"matrix": [9, 4], "x": 9.5, "y": 4.25, "h": 1.5}, + {"matrix": [9, 3], "x": 11, "y": 4.25}, + {"matrix": [9, 2], "x": 12, "y": 4.15}, + {"matrix": [9, 1], "x": 13, "y": 4.125}, + {"matrix": [9, 0], "x": 14, "y": 4.375} + ] + } + } +} diff --git a/keyboards/mechboards/sofle/pro/keymaps/default/keymap.c b/keyboards/mechboards/sofle/pro/keymaps/default/keymap.c new file mode 100644 index 00000000000..dac2331fd76 --- /dev/null +++ b/keyboards/mechboards/sofle/pro/keymaps/default/keymap.c @@ -0,0 +1,47 @@ +// Copyright 2025 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +// clang-format off + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_MPLY, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LGUI, KC_LALT, KC_LCTL, MO(1), KC_ENT, KC_SPC, MO(2), KC_RCTL, KC_RALT, KC_RGUI + ), + [1] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F12, + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE, + _______, KC_EQL, KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, KC_LBRC, KC_RBRC, KC_SCLN, KC_COLN, KC_BSLS, _______, + _______, _______, _______, _______, _______, _______, MO(3), _______, _______, _______ + ), + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,_______, + _______, KC_INS, KC_PSCR, KC_APP, XXXXXXX, XXXXXXX, KC_PGUP, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, KC_BSPC, + _______, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_CAPS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL, XXXXXXX, + _______, C(KC_Z), C(KC_X), C(KC_C), C(KC_V), XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, + _______, _______, _______, MO(3), _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT( + XXXXXXX, XXXXXXX, XXXXXXX ,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, XXXXXXX, XXXXXXX, + RM_NEXT, RM_HUED, RM_SATD, RM_VALD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { +[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT)}, +[1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS)}, +[2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS)}, +[3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS)} +}; +#endif +// clang-format on diff --git a/keyboards/mechboards/sofle/pro/keymaps/default/rules.mk b/keyboards/mechboards/sofle/pro/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/mechboards/sofle/pro/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/mechboards/sofle/pro/post_rules.mk b/keyboards/mechboards/sofle/pro/post_rules.mk new file mode 100644 index 00000000000..4bfdc8ca891 --- /dev/null +++ b/keyboards/mechboards/sofle/pro/post_rules.mk @@ -0,0 +1 @@ +include keyboards/mechboards/common/post_rules.mk diff --git a/keyboards/mechboards/sofle/pro/pro.c b/keyboards/mechboards/sofle/pro/pro.c new file mode 100644 index 00000000000..df377eb28af --- /dev/null +++ b/keyboards/mechboards/sofle/pro/pro.c @@ -0,0 +1,15 @@ +// Copyright 2025 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#ifdef OLED_ENABLE +void render_logo(void) { + static const char PROGMEM pro_logo[] = { + 252, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 31, 31, 31, 31, 31, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 0, 0, 0, 240, 248, 24, 24, 24, 24, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 248, 24, 24, 24, 24, 16, 0, 0, 248, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 255, 255, 4, 4, 4, 4, 4, 255, + 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 255, 255, 255, 255, 0, 0, 0, 3, 7, 6, 6, 6, 6, 254, 252, 0, 0, 254, 255, 3, 3, 3, 3, 255, 254, 0, 0, 3, 255, 255, 3, 3, 3, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0, 254, 255, 51, 51, 51, 51, 63, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 255, 255, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 255, 255, 65, 65, 65, 65, 65, 255, 255, 255, 65, 65, 65, 65, 65, 255, 127, 127, 127, 127, 127, 255, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 1, 0, 0, 1, 3, 3, 3, 3, 3, 3, 1, 0, 0, 0, 3, 3, 0, + 0, 0, 0, 0, 0, 0, 1, 3, 3, 3, 0, 0, 1, 3, 3, 3, 3, 3, 3, 1, 0, 0, 224, 240, 48, 176, 176, 112, 240, 48, 176, 176, 112, 240, 112, 176, 176, 112, 240, 224, 0, 0, 63, 127, 255, 255, 255, 240, 240, 240, 240, 240, 255, 255, 255, 255, 255, 255, 255, 240, 240, 240, 240, 240, 255, 255, 255, 255, 255, 255, 255, 240, 240, 240, 240, 240, 255, 255, 255, 240, 240, 240, 240, 240, 255, 240, 240, 240, 240, 240, 255, 240, 240, 240, 240, 240, 255, 255, 255, 127, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 63, 48, 61, 61, 62, 63, 48, 61, 61, 50, 63, 56, 55, 55, 56, 63, 31, 0, 0, + }; + oled_write_raw_P(pro_logo, sizeof(pro_logo)); +} +#endif diff --git a/keyboards/mechboards/sofle/pro/readme.md b/keyboards/mechboards/sofle/pro/readme.md new file mode 100644 index 00000000000..7e1a7727594 --- /dev/null +++ b/keyboards/mechboards/sofle/pro/readme.md @@ -0,0 +1,25 @@ +# Sofle Pro + +A refreshed PCB with per key RGB, battery, power switch support. + +* Keyboard Maintainer: [dasky](https://github.com/daskygit) +* Hardware Supported: Controllers using promicro footprint. +* Hardware Availability: https://mechboards.co.uk + +Make example for this keyboard (after setting up your build environment): + + qmk compile -kb mechboards/sofle/pro -km default + +Flashing example for this keyboard: + + qmk flash -kb mechboards/sofle/pro -km default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top left key or the top right key depending on which side you're connecting to USB. +* **Physical reset button**: Double press the button below the TRRS socket. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 25af20bef42173925b4f6154480ec79c0d03dea0 Mon Sep 17 00:00:00 2001 From: Ivan Gromov <38141348+key10iq@users.noreply.github.com> Date: Thu, 13 Mar 2025 23:20:56 +0400 Subject: [PATCH 267/365] [Keyboard] Add kt60-MU PCB (#24797) * Add kt60-MU * Adding some license headers * Update keyboards/keyten/kt60_mu/keyboard.json Co-authored-by: Sergey Vlasov * Update keyboards/keyten/kt60_mu/keyboard.json Co-authored-by: Sergey Vlasov * Update keyboard.json * Update keyboard.json * Update keyboards/keyten/kt60_mu/keyboard.json Co-authored-by: Duncan Sutherland * Update keyboards/keyten/kt60_mu/keyboard.json Co-authored-by: Sergey Vlasov --------- Co-authored-by: Sergey Vlasov Co-authored-by: Duncan Sutherland --- keyboards/keyten/kt60_mu/chconf.h | 9 + keyboards/keyten/kt60_mu/config.h | 6 + keyboards/keyten/kt60_mu/halconf.h | 8 + keyboards/keyten/kt60_mu/keyboard.json | 300 ++++++++++++++++++ .../keyten/kt60_mu/keymaps/default/keymap.c | 24 ++ keyboards/keyten/kt60_mu/mcuconf.h | 12 + keyboards/keyten/kt60_mu/readme.md | 42 +++ 7 files changed, 401 insertions(+) create mode 100644 keyboards/keyten/kt60_mu/chconf.h create mode 100644 keyboards/keyten/kt60_mu/config.h create mode 100644 keyboards/keyten/kt60_mu/halconf.h create mode 100644 keyboards/keyten/kt60_mu/keyboard.json create mode 100644 keyboards/keyten/kt60_mu/keymaps/default/keymap.c create mode 100644 keyboards/keyten/kt60_mu/mcuconf.h create mode 100644 keyboards/keyten/kt60_mu/readme.md diff --git a/keyboards/keyten/kt60_mu/chconf.h b/keyboards/keyten/kt60_mu/chconf.h new file mode 100644 index 00000000000..2166f7dd9ee --- /dev/null +++ b/keyboards/keyten/kt60_mu/chconf.h @@ -0,0 +1,9 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef CH_CFG_ST_RESOLUTION +#define CH_CFG_ST_RESOLUTION 16 diff --git a/keyboards/keyten/kt60_mu/config.h b/keyboards/keyten/kt60_mu/config.h new file mode 100644 index 00000000000..7547e9ed283 --- /dev/null +++ b/keyboards/keyten/kt60_mu/config.h @@ -0,0 +1,6 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#define BACKLIGHT_PWM_DRIVER PWMD2 +#define BACKLIGHT_PWM_CHANNEL 4 +#define BACKLIGHT_PAL_MODE 2 diff --git a/keyboards/keyten/kt60_mu/halconf.h b/keyboards/keyten/kt60_mu/halconf.h new file mode 100644 index 00000000000..835310a7700 --- /dev/null +++ b/keyboards/keyten/kt60_mu/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/keyten/kt60_mu/keyboard.json b/keyboards/keyten/kt60_mu/keyboard.json new file mode 100644 index 00000000000..dcf5035b8ea --- /dev/null +++ b/keyboards/keyten/kt60_mu/keyboard.json @@ -0,0 +1,300 @@ +{ + "manufacturer": "keyten", + "keyboard_name": "kt60-MU", + "maintainer": "key10iq", + "processor": "STM32F072", + "bootloader": "stm32-dfu", + "usb": { + "vid": "0xEB69", + "pid": "0x6006", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "backlight": true + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "rows": ["B2", "B1", "B7", "B6", "B5"], + "cols": ["A15", "A4", "F1", "A5", "F0", "A6", "C15", "A7", "C14", "B0", "C13", "B10", "B4", "B3"] + }, + "indicators": { + "caps_lock": "A14" + }, + "backlight": { + "pin": "B11", + "levels": 15 + }, + "community_layouts": [ + "60_ansi_wkl_split_bs_rshift", + "60_hhkb", + "60_ansi_tsangan_split_bs_rshift" + ], + "layout_aliases": { + "LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + }, + "layouts": { + "LAYOUT_60_ansi_wkl_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 13], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_hhkb": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 13], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 12.5, "y": 4} + ] + }, + "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 13], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_ansi_tsangan_split_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [2, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + } + } +} diff --git a/keyboards/keyten/kt60_mu/keymaps/default/keymap.c b/keyboards/keyten/kt60_mu/keymaps/default/keymap.c new file mode 100644 index 00000000000..c13c720145f --- /dev/null +++ b/keyboards/keyten/kt60_mu/keymaps/default/keymap.c @@ -0,0 +1,24 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + + [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) + +}; diff --git a/keyboards/keyten/kt60_mu/mcuconf.h b/keyboards/keyten/kt60_mu/mcuconf.h new file mode 100644 index 00000000000..a3ac64bb326 --- /dev/null +++ b/keyboards/keyten/kt60_mu/mcuconf.h @@ -0,0 +1,12 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef STM32_PWM_USE_TIM2 +#define STM32_PWM_USE_TIM2 TRUE + +#undef STM32_ST_USE_TIMER +#define STM32_ST_USE_TIMER 3 diff --git a/keyboards/keyten/kt60_mu/readme.md b/keyboards/keyten/kt60_mu/readme.md new file mode 100644 index 00000000000..937215ad342 --- /dev/null +++ b/keyboards/keyten/kt60_mu/readme.md @@ -0,0 +1,42 @@ +# keyten kt60-MU + +PCB supporting multiple 60% keyboards. +Outline is compatible with: + +* All common O-Ring mount keyboards +* Polaris V2 (In theory. At the time of PCB design, this keyboard is in IC stage) + +Supports two Type-C connector position: + +* Standard left position +* Central position like Aksara 60 + +Supports three JST connector position like the following PCBs or keyboards: + +* hiney h60 +* Singa Unikorn +* Polaris V2 + +![kt60-MU](https://i.imgur.com/72uSWLx.jpg) + +* Keyboard Maintainer: [keyten](https://github.com/key10iq) +* Hardware Supported: keyten kt60-MU +* Hardware Availability: private GB + +Make example for this keyboard (after setting up your build environment): + + make keyten/kt60_mu:default + +Flashing example for this keyboard: + + make keyten/kt60_mu:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* Bootmagic reset: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* Keycode in layout: Press the key mapped to `QK_BOOT` if it is available +* Physical reset button: Hold the button on the back of the PCB From 8ae5d34c0db1cabe2a8de9aa5213a769b1d4ef8d Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 13 Mar 2025 21:00:58 +0000 Subject: [PATCH 268/365] keyten/kt60_mu - Add missing header guard (#25011) --- keyboards/keyten/kt60_mu/config.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/keyboards/keyten/kt60_mu/config.h b/keyboards/keyten/kt60_mu/config.h index 7547e9ed283..aa1736d36bd 100644 --- a/keyboards/keyten/kt60_mu/config.h +++ b/keyboards/keyten/kt60_mu/config.h @@ -1,6 +1,8 @@ // Copyright 2024 QMK // SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + #define BACKLIGHT_PWM_DRIVER PWMD2 #define BACKLIGHT_PWM_CHANNEL 4 #define BACKLIGHT_PAL_MODE 2 From 65aef7be95025a8a26fa8fe0c4af3ce0d36f47f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Cruz?= Date: Thu, 13 Mar 2025 21:04:32 +0000 Subject: [PATCH 269/365] [Keyboard] Add Sofle Choc Prog from keebart (#24974) --- keyboards/keebart/sofle_choc_pro/config.h | 10 + .../keebart/sofle_choc_pro/keyboard.json | 235 ++++++++++++++++++ .../sofle_choc_pro/keymaps/default/keymap.c | 49 ++++ .../sofle_choc_pro/keymaps/default/rules.mk | 1 + keyboards/keebart/sofle_choc_pro/readme.md | 28 +++ 5 files changed, 323 insertions(+) create mode 100644 keyboards/keebart/sofle_choc_pro/config.h create mode 100644 keyboards/keebart/sofle_choc_pro/keyboard.json create mode 100644 keyboards/keebart/sofle_choc_pro/keymaps/default/keymap.c create mode 100644 keyboards/keebart/sofle_choc_pro/keymaps/default/rules.mk create mode 100644 keyboards/keebart/sofle_choc_pro/readme.md diff --git a/keyboards/keebart/sofle_choc_pro/config.h b/keyboards/keebart/sofle_choc_pro/config.h new file mode 100644 index 00000000000..5c9b6ff8f15 --- /dev/null +++ b/keyboards/keebart/sofle_choc_pro/config.h @@ -0,0 +1,10 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define USB_VBUS_PIN GP13 + +/* RP2040- and hardware-specific config */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U +#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 diff --git a/keyboards/keebart/sofle_choc_pro/keyboard.json b/keyboards/keebart/sofle_choc_pro/keyboard.json new file mode 100644 index 00000000000..a1ba222388d --- /dev/null +++ b/keyboards/keebart/sofle_choc_pro/keyboard.json @@ -0,0 +1,235 @@ +{ + "manufacturer": "Keebart", + "keyboard_name": "sofle_choc_pro", + "maintainer": "Keebart", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "GP23", "pin_b": "GP22"} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP27", "GP26", "GP25", "GP24", "GP19", "GP18"], + "rows": ["GP0", "GP1", "GP2", "GP3", "GP4"] + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "multisplash": true, + "pixel_flow": true, + "pixel_fractal": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "solid_multisplash": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "driver": "ws2812", + "layout": [ + {"matrix": [4, 5], "x": 99, "y": 38, "flags": 4}, + {"matrix": [4, 4], "x": 91, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 77, "y": 60, "flags": 4}, + {"matrix": [3, 5], "x": 82, "y": 45, "flags": 4}, + {"matrix": [2, 5], "x": 82, "y": 31, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 17, "flags": 4}, + {"matrix": [0, 5], "x": 82, "y": 3, "flags": 4}, + {"matrix": [0, 4], "x": 66, "y": 2, "flags": 4}, + {"matrix": [1, 4], "x": 66, "y": 16, "flags": 4}, + {"matrix": [2, 4], "x": 66, "y": 29, "flags": 4}, + {"matrix": [3, 4], "x": 66, "y": 43, "flags": 4}, + {"matrix": [4, 2], "x": 58, "y": 59, "flags": 4}, + {"matrix": [4, 1], "x": 41, "y": 59, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 41, "flags": 4}, + {"matrix": [2, 3], "x": 49, "y": 28, "flags": 4}, + {"matrix": [1, 3], "x": 49, "y": 16, "flags": 4}, + {"matrix": [0, 3], "x": 49, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 33, "y": 2, "flags": 4}, + {"matrix": [1, 2], "x": 33, "y": 16, "flags": 4}, + {"matrix": [2, 2], "x": 33, "y": 29, "flags": 4}, + {"matrix": [3, 2], "x": 33, "y": 43, "flags": 4}, + {"matrix": [4, 0], "x": 25, "y": 60, "flags": 4}, + {"matrix": [3, 1], "x": 16, "y": 47, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 33, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 19, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 5, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 5, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 19, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 33, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 47, "flags": 4}, + {"matrix": [9, 5], "x": 125, "y": 38, "flags": 4}, + {"matrix": [9, 4], "x": 134, "y": 64, "flags": 4}, + {"matrix": [9, 3], "x": 147, "y": 60, "flags": 4}, + {"matrix": [8, 5], "x": 142, "y": 45, "flags": 4}, + {"matrix": [7, 5], "x": 142, "y": 31, "flags": 4}, + {"matrix": [6, 5], "x": 142, "y": 17, "flags": 4}, + {"matrix": [5, 5], "x": 142, "y": 3, "flags": 4}, + {"matrix": [5, 4], "x": 158, "y": 2, "flags": 4}, + {"matrix": [6, 4], "x": 158, "y": 16, "flags": 4}, + {"matrix": [7, 4], "x": 158, "y": 29, "flags": 4}, + {"matrix": [8, 4], "x": 158, "y": 43, "flags": 4}, + {"matrix": [9, 2], "x": 166, "y": 59, "flags": 4}, + {"matrix": [9, 1], "x": 183, "y": 59, "flags": 4}, + {"matrix": [8, 3], "x": 175, "y": 41, "flags": 4}, + {"matrix": [7, 3], "x": 175, "y": 28, "flags": 4}, + {"matrix": [6, 3], "x": 175, "y": 16, "flags": 4}, + {"matrix": [5, 3], "x": 175, "y": 0, "flags": 4}, + {"matrix": [5, 2], "x": 191, "y": 2, "flags": 4}, + {"matrix": [6, 2], "x": 191, "y": 16, "flags": 4}, + {"matrix": [7, 2], "x": 191, "y": 29, "flags": 4}, + {"matrix": [8, 2], "x": 191, "y": 43, "flags": 4}, + {"matrix": [9, 0], "x": 199, "y": 60, "flags": 4}, + {"matrix": [8, 1], "x": 208, "y": 47, "flags": 4}, + {"matrix": [7, 1], "x": 208, "y": 33, "flags": 4}, + {"matrix": [6, 1], "x": 208, "y": 19, "flags": 4}, + {"matrix": [5, 1], "x": 208, "y": 5, "flags": 4}, + {"matrix": [5, 0], "x": 224, "y": 5, "flags": 4}, + {"matrix": [6, 0], "x": 224, "y": 19, "flags": 4}, + {"matrix": [7, 0], "x": 224, "y": 33, "flags": 4}, + {"matrix": [8, 0], "x": 224, "y": 47, "flags": 4} + ], + "max_brightness": 50, + "sleep": true, + "split_count": [30, 30] + }, + "split": { + "bootmagic": { + "matrix": [5, 0] + }, + "enabled": true, + "handedness": { + "pin": "GP21" + }, + "serial": { + "driver": "vendor", + "pin": "GP12" + }, + "transport": { + "sync": { + "indicators": true, + "layer_state": true, + "matrix_state": true + } + } + }, + "url": "https://keebart.com/products/sofle", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "suspend_wakeup_delay": 200, + "vid": "0xFEED" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP10" + }, + "layouts": { + "LAYOUT_split_4x6_5": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.375}, + {"matrix": [0, 1], "x": 1, "y": 0.375}, + {"matrix": [0, 2], "x": 2, "y": 0.125}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0.125}, + {"matrix": [0, 5], "x": 5, "y": 0.25}, + {"matrix": [5, 5], "x": 9, "y": 0.25}, + {"matrix": [5, 4], "x": 10, "y": 0.125}, + {"matrix": [5, 3], "x": 11, "y": 0}, + {"matrix": [5, 2], "x": 12, "y": 0.125}, + {"matrix": [5, 1], "x": 13, "y": 0.375}, + {"matrix": [5, 0], "x": 14, "y": 0.375}, + {"matrix": [1, 0], "x": 0, "y": 1.375}, + {"matrix": [1, 1], "x": 1, "y": 1.375}, + {"matrix": [1, 2], "x": 2, "y": 1.125}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1.125}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [6, 5], "x": 9, "y": 1.25}, + {"matrix": [6, 4], "x": 10, "y": 1.125}, + {"matrix": [6, 3], "x": 11, "y": 1}, + {"matrix": [6, 2], "x": 12, "y": 1.125}, + {"matrix": [6, 1], "x": 13, "y": 1.375}, + {"matrix": [6, 0], "x": 14, "y": 1.375}, + {"matrix": [2, 0], "x": 0, "y": 2.375}, + {"matrix": [2, 1], "x": 1, "y": 2.375}, + {"matrix": [2, 2], "x": 2, "y": 2.125}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2.125}, + {"matrix": [2, 5], "x": 5, "y": 2.25}, + {"matrix": [7, 5], "x": 9, "y": 2.25}, + {"matrix": [7, 4], "x": 10, "y": 2.125}, + {"matrix": [7, 3], "x": 11, "y": 2}, + {"matrix": [7, 2], "x": 12, "y": 2.125}, + {"matrix": [7, 1], "x": 13, "y": 2.375}, + {"matrix": [7, 0], "x": 14, "y": 2.375}, + {"matrix": [3, 0], "x": 0, "y": 3.375}, + {"matrix": [3, 1], "x": 1, "y": 3.375}, + {"matrix": [3, 2], "x": 2, "y": 3.125}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3.125}, + {"matrix": [3, 5], "x": 5, "y": 3.25}, + {"matrix": [4, 5], "x": 6, "y": 2.75}, + {"matrix": [9, 5], "x": 8, "y": 2.75}, + {"matrix": [8, 5], "x": 9, "y": 3.25}, + {"matrix": [8, 4], "x": 10, "y": 3.125}, + {"matrix": [8, 3], "x": 11, "y": 3}, + {"matrix": [8, 2], "x": 12, "y": 3.125}, + {"matrix": [8, 1], "x": 13, "y": 3.375}, + {"matrix": [8, 0], "x": 14, "y": 3.375}, + {"matrix": [4, 0], "x": 1.5, "y": 4.375}, + {"matrix": [4, 1], "x": 2.5, "y": 4.25}, + {"matrix": [4, 2], "x": 3.5, "y": 4.25}, + {"matrix": [4, 3], "x": 4.5, "y": 4.375}, + {"matrix": [4, 4], "x": 6, "y": 4.375, "h": 1.5}, + {"matrix": [9, 4], "x": 8, "y": 4.375, "h": 1.5}, + {"matrix": [9, 3], "x": 9.5, "y": 4.375}, + {"matrix": [9, 2], "x": 10.5, "y": 4.25}, + {"matrix": [9, 1], "x": 11.5, "y": 4.25}, + {"matrix": [9, 0], "x": 12.5, "y": 4.375} + ] + } + } +} diff --git a/keyboards/keebart/sofle_choc_pro/keymaps/default/keymap.c b/keyboards/keebart/sofle_choc_pro/keymaps/default/keymap.c new file mode 100644 index 00000000000..c6f33d9c566 --- /dev/null +++ b/keyboards/keebart/sofle_choc_pro/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layers { + BASE, // default layer + MDIA, // media keys +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* + * QWERTY + * ,-----------------------------------------. ,-----------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | CAPS | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | + * |------+------+------+------+------+------| Mute | | Pause |------+------+------+------+------+------| + * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LCTL | LALT | LCMD | LGUI | /Enter / \Space \ | RGUI | DEL | RALT | RCTL | + * | | | | LT1 |/ / \ \ | LT1 | | | | + * `----------------------------------' '------''---------------------------' + */ + +[BASE] = LAYOUT_split_4x6_5( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_MPLY, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LALT, KC_LCMD, LT(MDIA,KC_LGUI), KC_ENT, KC_SPC, LT(MDIA,KC_RGUI), KC_DEL, KC_RALT, KC_RCTL +), +[MDIA] = LAYOUT_split_4x6_5( + KC_MUTE,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + RM_TOGG,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + RM_NEXT,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + RM_HUEU,_______,_______,_______,_______,_______, _______, _______, _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______, _______, _______, _______,_______,_______,_______ +) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, + [MDIA] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) } +}; +#endif diff --git a/keyboards/keebart/sofle_choc_pro/keymaps/default/rules.mk b/keyboards/keebart/sofle_choc_pro/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/keebart/sofle_choc_pro/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keebart/sofle_choc_pro/readme.md b/keyboards/keebart/sofle_choc_pro/readme.md new file mode 100644 index 00000000000..8f0e797be01 --- /dev/null +++ b/keyboards/keebart/sofle_choc_pro/readme.md @@ -0,0 +1,28 @@ +# Sofle Choc Pro + +![sofle_choc_pro](https://i.imgur.com/q9A2HMe.jpeg) + +A complete remake of the Sofle Choc Keyboard by Josef Adamčík. Featuring an onboard RP2040 with 128 MB flash +memory and choc-spaced keys for a more compact keyboard. + +- Keyboard Maintainer: [Keebart](https://github.com/Keebart) +- Hardware Supported: RP2040 +- Hardware Availability: [Keebart Shop](https://keebart.com/products/sofle) + +Make example for this keyboard (after setting up your build environment): + + make keebart/sofle_choc_pro:default + +Flashing example for this keyboard: + + make keebart/sofle_choc_pro:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +- **Bootmagic reset**: Hold down the top left key of the left side of the keyboard while connecting the left side to the computer. Similarly, hold down the top right key of the right side of the keyboard while connecting the right side to the computer. +- **Physical reset button**: Briefly press the button on the back of the PCB +- **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From c6446aeaf9b234a492d3320524df95da69a83255 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 16 Mar 2025 08:44:31 +0000 Subject: [PATCH 270/365] Bump tj-actions/changed-files from 45 to 46 (#25020) --- .github/workflows/format.yml | 2 +- .github/workflows/lint.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index b4e32f981bb..309b9eeda12 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -36,7 +36,7 @@ jobs: - name: Get changed files id: file_changes - uses: tj-actions/changed-files@v45 + uses: tj-actions/changed-files@v46 with: use_rest_api: true diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 829ca6392c5..581fe02156b 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -27,7 +27,7 @@ jobs: - name: Get changed files id: file_changes - uses: tj-actions/changed-files@v45 + uses: tj-actions/changed-files@v46 with: use_rest_api: true From 95223aa8721ee7abdb23550362810a37bd7a8871 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Tue, 18 Mar 2025 06:07:24 +1100 Subject: [PATCH 271/365] Latest batch of license violations as per #24085. (#25023) * Latest batch of license violations as per #24085. * No links. --- docs/license_violations.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/license_violations.md b/docs/license_violations.md index 81a6ba517f7..98cf0e94999 100644 --- a/docs/license_violations.md +++ b/docs/license_violations.md @@ -19,9 +19,13 @@ If you own a board from one of the following vendors already, consider asking th | Vendor | Reason | |------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Ajazz | Selling tri-mode boards based on QMK without sources. | +| Alpaca / Apos | Selling wireless boards with "open" source code, but linking against closed-source wireless libraries. Crippled source code already unknowingly merged to QMK. | +| Attack Shark | Selling tri-mode boards based on QMK without sources. (Clones of Ajazz?) | | BBB Keyboard | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | | Chosfox | Selling L75 wired/wireless boards based on QMK without sources, just `via.json` provided. Raised on discord over multiple weeks without response. | | CIDOO | Selling wired boards based on QMK without sources, just `via.json` provided. | +| ColorReco | Selling tri-mode boards based on QMK without sources. | | Darmoshark | Selling wired boards based on QMK without sources, just `via.json` provided. | | Epomaker | Lots of historical keyboards with `via.json` but no corresponding sources. Wireless code for a small handful provided, pending core cleanup for QMK upstreaming. Most other boards have source nowhere to be seen. | | Ergokbd (IFKB) | At least their crkbd clone ships with QMK+Vial, seemingly refuses to disclose sources despite multiple customers requesting them. | @@ -36,6 +40,7 @@ If you own a board from one of the following vendors already, consider asking th | pressplayid | Selling wired and tri-mode boards based on QMK without sources, just `via.json` provided | | qwertykeys | Selling wired and tri-mode boards based on QMK without sources, just `via.json` provided. | | Redragon | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | +| Riccks | Selling tri-mode boards based on QMK without sources. | | Royal Kludge | PRs for fake boards in order to attain VIA compatibility identified. Lots of other keyboards with `via.json` but no corresponding sources, attempted upstreaming crippled firmware without wireless. Wireless code for some provided, pending core cleanup for QMK upstreaming. PRs including different manufacturer names as well. | | Shenzhen Hangsheng | PR submissions with crippled firmware, debating with maintainers about wireless despite marketing material clearly stating tri-mode. | | Tacworks | Selling tri-mode boards based on QMK, crippled firmware already merged into QMK without wireless without QMK team realising. | From 271efeb8bc99922e6ce1a664f82bc922cd2e8121 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Wed, 19 Mar 2025 02:48:27 +1100 Subject: [PATCH 272/365] Latest batch of license violations. (#25031) --- docs/license_violations.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/license_violations.md b/docs/license_violations.md index 98cf0e94999..cf7850effc1 100644 --- a/docs/license_violations.md +++ b/docs/license_violations.md @@ -50,6 +50,7 @@ If you own a board from one of the following vendors already, consider asking th | Womier | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | | Wuque Studio | Selling wired and tri-mode boards based on QMK without sources, just `via.json` provided. | | XVX | Ambiguity on PRs -- marketing says wireless, PR author said wired-only. Seemingly intentionally deceptive. | +| Yunzii | Selling tri-mode boards based on QMK without sources, just `via.json` provided. | | Zuoya | Selling tri-mode boards based on QMK without sources, just `via.json` provided. | ::: danger Violations From 386a5019a8147136c2732452cd87954378e0ec16 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Wed, 19 Mar 2025 12:45:28 +1100 Subject: [PATCH 273/365] Fixup MSYS + unix-style paths in Community Modules. (#25012) Fixup MSYS + unix-style paths. --- lib/python/qmk/cli/generate/rules_mk.py | 4 ++-- lib/python/qmk/path.py | 24 +++++++++++++++++++++++- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/lib/python/qmk/cli/generate/rules_mk.py b/lib/python/qmk/cli/generate/rules_mk.py index cae9b07c3e8..ef4101d77fb 100755 --- a/lib/python/qmk/cli/generate/rules_mk.py +++ b/lib/python/qmk/cli/generate/rules_mk.py @@ -10,7 +10,7 @@ from qmk.info import info_json, get_modules from qmk.json_schema import json_load from qmk.keyboard import keyboard_completer, keyboard_folder from qmk.commands import dump_lines, parse_configurator_json -from qmk.path import normpath, FileType +from qmk.path import normpath, unix_style_path, FileType from qmk.constants import GPL2_HEADER_SH_LIKE, GENERATED_HEADER_SH_LIKE from qmk.community_modules import find_module_path, load_module_jsons @@ -63,7 +63,7 @@ def generate_modules_rules(keyboard, filename): lines.append('') lines.append('OPT_DEFS += -DCOMMUNITY_MODULES_ENABLE=TRUE') for module in modules: - module_path = find_module_path(module) + module_path = unix_style_path(find_module_path(module)) if not module_path: raise FileNotFoundError(f"Module '{module}' not found.") lines.append('') diff --git a/lib/python/qmk/path.py b/lib/python/qmk/path.py index 61daad585fe..c47ed183621 100644 --- a/lib/python/qmk/path.py +++ b/lib/python/qmk/path.py @@ -3,7 +3,7 @@ import logging import os import argparse -from pathlib import Path +from pathlib import Path, PureWindowsPath, PurePosixPath from qmk.constants import MAX_KEYBOARD_SUBFOLDERS, QMK_FIRMWARE, QMK_USERSPACE, HAS_QMK_USERSPACE from qmk.errors import NoSuchKeyboardError @@ -146,6 +146,28 @@ def normpath(path): return Path(os.environ['ORIG_CWD']) / path +def unix_style_path(path): + """Converts a Windows-style path with drive letter to a Unix path. + + Path().as_posix() normally returns the path with drive letter and forward slashes, so is inappropriate for `Makefile` paths. + + Passes through unadulterated if the path is not a Windows-style path. + + Args: + + path + The path to convert. + + Returns: + The input path converted to Unix format. + """ + if isinstance(path, PureWindowsPath): + p = list(path.parts) + p[0] = f'/{p[0][0].lower()}' # convert from `X:/` to `/x` + path = PurePosixPath(*p) + return path + + class FileType(argparse.FileType): def __init__(self, *args, **kwargs): # Use UTF8 by default for stdin From 46829663aa976fa730c70083114b5d7933fe42b4 Mon Sep 17 00:00:00 2001 From: Wilson Pika Choo Date: Thu, 20 Mar 2025 01:33:53 +0900 Subject: [PATCH 274/365] [Keyboard] Change uzu42 `usb.vid` (#25014) change generic vendor code --- keyboards/uzu42/rev1/keyboard.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/uzu42/rev1/keyboard.json b/keyboards/uzu42/rev1/keyboard.json index f96327daead..6f4f080e679 100644 --- a/keyboards/uzu42/rev1/keyboard.json +++ b/keyboards/uzu42/rev1/keyboard.json @@ -4,7 +4,7 @@ "url": "https://github.com/nrtkbb/Keyboards/tree/master/uzu42", "maintainer": "nrtkbb", "usb": { - "vid": "0xFEED", + "vid": "0x6E74", "pid": "0x3060", "device_version": "0.0.1" }, From 3484f0a0dffd264ae3bef70ce2a8961489c16f50 Mon Sep 17 00:00:00 2001 From: Pascal Getreuer <50221757+getreuer@users.noreply.github.com> Date: Wed, 19 Mar 2025 12:45:56 -0700 Subject: [PATCH 275/365] [Core] get_keycode_string(): function to format keycodes as strings, for more readable debug logging. (#24787) * keycode_string(): Format keycodes as strings. This adds the `keycode_string()` function described in https://getreuer.info/posts/keyboards/keycode-string/index.html as a core feature. * Fix formatting. * keycode_string review revisions. * Rename keycode_string() -> get_keycode_string() for consistency with existing string utils like get_u8_str(). * Revise custom keycode names with separate _user and _kb tables. * Correct indent in builddefs/generic_features.mk. Co-authored-by: Ryan * Add KC_NUHS, KC_NUBS, and KC_CAPS. * Fix linking error with custom names. * Attempt at simplifying interface. * Formatting fix. * Several fixes and revisions. * Don't use PSTR in KEYCODE_STRING_NAME, since this fails to build on AVR. Store custom names in RAM. * Revise the internal table of common keycode names to use its own storage representation, still in PROGMEM, and now more efficiently stored flat in 8 bytes per entry. * Support Swap Hands keycodes and a few other keycodes. * Revert "Formatting fix." This reverts commit 2a2771068c7ee545ffac4103aa07e847a9ec3816. * Revert "Attempt at simplifying interface." This reverts commit 8eaf67de76e75bc92d106a8b0decc893fbc65fa5. * Simplify custom names API by sigprof's suggestion. * Support more keycodes. * Add QK_LOCK keycode. * Add Secure keycodes. * Add Joystick keycodes. * Add Programmable Button keycodes. * Add macro MC_ keycodes. * For remaining keys in known code ranges, stringify them as "QK_+". For instance, "QK_MIDI+7". * Bug fix and a few improvements. * Fix missing right-hand bit when displaying 5-bit mods numerically. * Support KC_HYPR, KC_MEH, HYPR_T(kc), MEH_T(kc). * Exclude one-shot keycodes when NO_ACTION_ONESHOT is defined. --------- Co-authored-by: Ryan --- builddefs/generic_features.mk | 1 + docs/faq_debug.md | 11 + docs/unit_testing.md | 28 + quantum/keycode_string.c | 564 +++++++++++++++++++ quantum/keycode_string.h | 134 +++++ quantum/quantum.h | 1 + tests/keycode_string/config.h | 19 + tests/keycode_string/test.mk | 22 + tests/keycode_string/test_keycode_string.cpp | 153 +++++ 9 files changed, 933 insertions(+) create mode 100644 quantum/keycode_string.c create mode 100644 quantum/keycode_string.h create mode 100644 tests/keycode_string/config.h create mode 100644 tests/keycode_string/test.mk create mode 100644 tests/keycode_string/test_keycode_string.cpp diff --git a/builddefs/generic_features.mk b/builddefs/generic_features.mk index f14f4408770..015a804d91f 100644 --- a/builddefs/generic_features.mk +++ b/builddefs/generic_features.mk @@ -34,6 +34,7 @@ GENERIC_FEATURES = \ DYNAMIC_TAPPING_TERM \ GRAVE_ESC \ HAPTIC \ + KEYCODE_STRING \ KEY_LOCK \ KEY_OVERRIDE \ LAYER_LOCK \ diff --git a/docs/faq_debug.md b/docs/faq_debug.md index 35a4160e276..269049afb88 100644 --- a/docs/faq_debug.md +++ b/docs/faq_debug.md @@ -77,6 +77,17 @@ KL: kc: 172, col: 2, row: 0, pressed: 1, time: 16303, int: 0, count: 0 KL: kc: 172, col: 2, row: 0, pressed: 0, time: 16411, int: 0, count: 0 ``` +### Which keycode is this keypress? + +Keycodes are logged in the example above as numerical codes, which may be difficult to interpret. For more readable logging, add `KEYCODE_STRING_ENABLE = yes` in your `rules.mk` and use `get_keycode_string(kc)`. For example: + +```c +uprintf("kc: %s\n", get_keycode_string(keycode)); +``` + +This logs the keycode as a human-readable string like "`LT(2,KC_D)`" rather than a numerical code like "`0x4207`." See the [Keycode String](unit_testing#keycode-string) section of the Unit Testing page for more information. + + ### How long did it take to scan for a keypress? When testing performance issues, it can be useful to know the frequency at which the switch matrix is being scanned. To enable logging for this scenario, add the following code to your keymaps `config.h` diff --git a/docs/unit_testing.md b/docs/unit_testing.md index 3e4c914bf12..aec4ec8334d 100644 --- a/docs/unit_testing.md +++ b/docs/unit_testing.md @@ -58,6 +58,34 @@ It's not yet possible to do a full integration test, where you would compile the In that model you would emulate the input, and expect a certain output from the emulated keyboard. +# Keycode String {#keycode-string} + +It's much nicer to read keycodes as names like "`LT(2,KC_D)`" than numerical codes like "`0x4207`." To convert keycodes to human-readable strings, add `KEYCODE_STRING_ENABLE = yes` to the `rules.mk` file, then use the `get_keycode_string(kc)` function to convert a given 16-bit keycode to a string. + +```c +const char *key_name = get_keycode_string(keycode); +dprintf("kc: %s\n", key_name); +``` + +The stringified keycode may then be logged to console output with `dprintf()` or elsewhere. + +::: warning +Use the result of `get_keycode_string()` immediately. Subsequent invocations reuse the same static buffer and overwrite the previous contents. +::: + +Many common QMK keycodes are recognized by `get_keycode_string()`, but not all. These include some common basic keycodes, layer switch keycodes, mod-taps, one-shot keycodes, tap dance keycodes, and Unicode keycodes. As a fallback, an unrecognized keycode is written as a hex number. + +Optionally, `KEYCODE_STRING_NAMES_USER` may be defined to add names for additional keycodes. For example, supposing keymap.c defines `MYMACRO1` and `MYMACRO2` as custom keycodes, the following adds their names: + +```c +KEYCODE_STRING_NAMES_USER( + KEYCODE_STRING_NAME(MYMACRO1), + KEYCODE_STRING_NAME(MYMACRO2), +); +``` + +Similarly, `KEYCODE_STRING_NAMES_KB` may be defined to add names at the keyboard level. + # Tracing Variables {#tracing-variables} Sometimes you might wonder why a variable gets changed and where, and this can be quite tricky to track down without having a debugger. It's of course possible to manually add print statements to track it, but you can also enable the variable trace feature. This works for both variables that are changed by the code, and when the variable is changed by some memory corruption. diff --git a/quantum/keycode_string.c b/quantum/keycode_string.c new file mode 100644 index 00000000000..18044f2ef67 --- /dev/null +++ b/quantum/keycode_string.c @@ -0,0 +1,564 @@ +// Copyright 2024-2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "keycode_string.h" + +#include +#include "bitwise.h" +#include "keycode.h" +#include "progmem.h" +#include "quantum_keycodes.h" +#include "util.h" + +typedef int_fast8_t index_t; + +// clang-format off +/** Packs a 7-char keycode name, ignoring the third char, as 3 words. */ +#define KEYCODE_NAME7(c0, c1, unused_c2, c3, c4, c5, c6) \ + ((uint16_t)c0) | (((uint16_t)c1) << 8), \ + ((uint16_t)c3) | (((uint16_t)c4) << 8), \ + ((uint16_t)c5) | (((uint16_t)c6) << 8) + +/** + * @brief Names of some common keycodes. + * + * Each (keycode, name) entry is stored flat in 8 bytes in PROGMEM. Names in + * this table must be at most 7 chars long and have an underscore '_' for the + * third char. This underscore is assumed and not actually stored. + * + * To save memory, feature-specific key entries are ifdef'd to include them only + * when their feature is enabled. + */ +static const uint16_t common_names[] PROGMEM = { + KC_TRNS, KEYCODE_NAME7('K', 'C', '_', 'T', 'R', 'N', 'S'), + KC_ENT , KEYCODE_NAME7('K', 'C', '_', 'E', 'N', 'T', 0 ), + KC_ESC , KEYCODE_NAME7('K', 'C', '_', 'E', 'S', 'C', 0 ), + KC_BSPC, KEYCODE_NAME7('K', 'C', '_', 'B', 'S', 'P', 'C'), + KC_TAB , KEYCODE_NAME7('K', 'C', '_', 'T', 'A', 'B', 0 ), + KC_SPC , KEYCODE_NAME7('K', 'C', '_', 'S', 'P', 'C', 0 ), + KC_MINS, KEYCODE_NAME7('K', 'C', '_', 'M', 'I', 'N', 'S'), + KC_EQL , KEYCODE_NAME7('K', 'C', '_', 'E', 'Q', 'L', 0 ), + KC_LBRC, KEYCODE_NAME7('K', 'C', '_', 'L', 'B', 'R', 'C'), + KC_RBRC, KEYCODE_NAME7('K', 'C', '_', 'R', 'B', 'R', 'C'), + KC_BSLS, KEYCODE_NAME7('K', 'C', '_', 'B', 'S', 'L', 'S'), + KC_NUHS, KEYCODE_NAME7('K', 'C', '_', 'N', 'U', 'H', 'S'), + KC_SCLN, KEYCODE_NAME7('K', 'C', '_', 'S', 'C', 'L', 'N'), + KC_QUOT, KEYCODE_NAME7('K', 'C', '_', 'Q', 'U', 'O', 'T'), + KC_GRV , KEYCODE_NAME7('K', 'C', '_', 'G', 'R', 'V', 0 ), + KC_COMM, KEYCODE_NAME7('K', 'C', '_', 'C', 'O', 'M', 'M'), + KC_DOT , KEYCODE_NAME7('K', 'C', '_', 'D', 'O', 'T', 0 ), + KC_SLSH, KEYCODE_NAME7('K', 'C', '_', 'S', 'L', 'S', 'H'), + KC_CAPS, KEYCODE_NAME7('K', 'C', '_', 'C', 'A', 'P', 'S'), + KC_PSCR, KEYCODE_NAME7('K', 'C', '_', 'P', 'S', 'C', 'R'), + KC_PAUS, KEYCODE_NAME7('K', 'C', '_', 'P', 'A', 'U', 'S'), + KC_INS , KEYCODE_NAME7('K', 'C', '_', 'I', 'N', 'S', 0 ), + KC_HOME, KEYCODE_NAME7('K', 'C', '_', 'H', 'O', 'M', 'E'), + KC_PGUP, KEYCODE_NAME7('K', 'C', '_', 'P', 'G', 'U', 'P'), + KC_DEL , KEYCODE_NAME7('K', 'C', '_', 'D', 'E', 'L', 0 ), + KC_END , KEYCODE_NAME7('K', 'C', '_', 'E', 'N', 'D', 0 ), + KC_PGDN, KEYCODE_NAME7('K', 'C', '_', 'P', 'G', 'D', 'N'), + KC_RGHT, KEYCODE_NAME7('K', 'C', '_', 'R', 'G', 'H', 'T'), + KC_LEFT, KEYCODE_NAME7('K', 'C', '_', 'L', 'E', 'F', 'T'), + KC_DOWN, KEYCODE_NAME7('K', 'C', '_', 'D', 'O', 'W', 'N'), + KC_UP , KEYCODE_NAME7('K', 'C', '_', 'U', 'P', 0 , 0 ), + KC_NUBS, KEYCODE_NAME7('K', 'C', '_', 'N', 'U', 'B', 'S'), + KC_HYPR, KEYCODE_NAME7('K', 'C', '_', 'H', 'Y', 'P', 'R'), + KC_MEH , KEYCODE_NAME7('K', 'C', '_', 'M', 'E', 'H', 0 ), +#ifdef EXTRAKEY_ENABLE + KC_WHOM, KEYCODE_NAME7('K', 'C', '_', 'W', 'H', 'O', 'M'), + KC_WBAK, KEYCODE_NAME7('K', 'C', '_', 'W', 'B', 'A', 'K'), + KC_WFWD, KEYCODE_NAME7('K', 'C', '_', 'W', 'F', 'W', 'D'), + KC_WSTP, KEYCODE_NAME7('K', 'C', '_', 'W', 'S', 'T', 'P'), + KC_WREF, KEYCODE_NAME7('K', 'C', '_', 'W', 'R', 'E', 'F'), + KC_MNXT, KEYCODE_NAME7('K', 'C', '_', 'M', 'N', 'X', 'T'), + KC_MPRV, KEYCODE_NAME7('K', 'C', '_', 'M', 'P', 'R', 'V'), + KC_MPLY, KEYCODE_NAME7('K', 'C', '_', 'M', 'P', 'L', 'Y'), + KC_MUTE, KEYCODE_NAME7('K', 'C', '_', 'M', 'U', 'T', 'E'), + KC_VOLU, KEYCODE_NAME7('K', 'C', '_', 'V', 'O', 'L', 'U'), + KC_VOLD, KEYCODE_NAME7('K', 'C', '_', 'V', 'O', 'L', 'D'), +#endif // EXTRAKEY_ENABLE +#ifdef MOUSEKEY_ENABLE + MS_LEFT, KEYCODE_NAME7('M', 'S', '_', 'L', 'E', 'F', 'T'), + MS_RGHT, KEYCODE_NAME7('M', 'S', '_', 'R', 'G', 'H', 'T'), + MS_UP , KEYCODE_NAME7('M', 'S', '_', 'U', 'P', 0 , 0 ), + MS_DOWN, KEYCODE_NAME7('M', 'S', '_', 'D', 'O', 'W', 'N'), + MS_WHLL, KEYCODE_NAME7('M', 'S', '_', 'W', 'H', 'L', 'L'), + MS_WHLR, KEYCODE_NAME7('M', 'S', '_', 'W', 'H', 'L', 'R'), + MS_WHLU, KEYCODE_NAME7('M', 'S', '_', 'W', 'H', 'L', 'U'), + MS_WHLD, KEYCODE_NAME7('M', 'S', '_', 'W', 'H', 'L', 'D'), +#endif // MOUSEKEY_ENABLE +#ifdef SWAP_HANDS_ENABLE + SH_ON , KEYCODE_NAME7('S', 'H', '_', 'O', 'N', 0 , 0 ), + SH_OFF , KEYCODE_NAME7('S', 'H', '_', 'O', 'F', 'F', 0 ), + SH_MON , KEYCODE_NAME7('S', 'H', '_', 'M', 'O', 'N', 0 ), + SH_MOFF, KEYCODE_NAME7('S', 'H', '_', 'M', 'O', 'F', 'F'), + SH_TOGG, KEYCODE_NAME7('S', 'H', '_', 'T', 'O', 'G', 'G'), + SH_TT , KEYCODE_NAME7('S', 'H', '_', 'T', 'T', 0 , 0 ), +# if !defined(NO_ACTION_ONESHOT) + SH_OS , KEYCODE_NAME7('S', 'H', '_', 'O', 'S', 0 , 0 ), +# endif // !defined(NO_ACTION_ONESHOT) +#endif // SWAP_HANDS_ENABLE +#ifdef LEADER_ENABLE + QK_LEAD, KEYCODE_NAME7('Q', 'K', '_', 'L', 'E', 'A', 'D'), +#endif // LEADER_ENABLE +#ifdef KEY_LOCK_ENABLE + QK_LOCK, KEYCODE_NAME7('Q', 'K', '_', 'L', 'O', 'C', 'K'), +#endif // KEY_LOCK_ENABLE +#ifdef TRI_LAYER_ENABLE + TL_LOWR, KEYCODE_NAME7('T', 'L', '_', 'L', 'O', 'W', 'R'), + TL_UPPR, KEYCODE_NAME7('T', 'L', '_', 'U', 'P', 'P', 'R'), +#endif // TRI_LAYER_ENABLE +#ifdef GRAVE_ESC_ENABLE + QK_GESC, KEYCODE_NAME7('Q', 'K', '_', 'G', 'E', 'S', 'C'), +#endif // GRAVE_ESC_ENABLE +#ifdef CAPS_WORD_ENABLE + CW_TOGG, KEYCODE_NAME7('C', 'W', '_', 'T', 'O', 'G', 'G'), +#endif // CAPS_WORD_ENABLE +#ifdef SECURE_ENABLE + SE_LOCK, KEYCODE_NAME7('S', 'E', '_', 'L', 'O', 'C', 'K'), + SE_UNLK, KEYCODE_NAME7('S', 'E', '_', 'U', 'N', 'L', 'K'), + SE_TOGG, KEYCODE_NAME7('S', 'E', '_', 'T', 'O', 'G', 'G'), + SE_REQ , KEYCODE_NAME7('S', 'E', '_', 'R', 'E', 'Q', 0 ), +#endif // SECURE_ENABLE +#ifdef LAYER_LOCK_ENABLE + QK_LLCK, KEYCODE_NAME7('Q', 'K', '_', 'L', 'L', 'C', 'K'), +#endif // LAYER_LOCK_ENABLE + EE_CLR , KEYCODE_NAME7('E', 'E', '_', 'C', 'L', 'R', 0 ), + QK_BOOT, KEYCODE_NAME7('Q', 'K', '_', 'B', 'O', 'O', 'T'), + DB_TOGG, KEYCODE_NAME7('D', 'B', '_', 'T', 'O', 'G', 'G'), +}; +// clang-format on + +/** Users can override this to define names of additional keycodes. */ +__attribute__((weak)) const keycode_string_name_t* keycode_string_names_data_user = NULL; +__attribute__((weak)) uint16_t keycode_string_names_size_user = 0; +/** Keyboard vendors can override this to define names of additional keycodes. */ +__attribute__((weak)) const keycode_string_name_t* keycode_string_names_data_kb = NULL; +__attribute__((weak)) uint16_t keycode_string_names_size_kb = 0; +/** Names of the 4 mods on each hand. */ +static const char mod_names[] PROGMEM = "CTL\0SFT\0ALT\0GUI"; +/** Internal buffer for holding a stringified keycode. */ +static char buffer[32]; +#define BUFFER_MAX_LEN (sizeof(buffer) - 1) +static index_t buffer_len; + +/** Finds the name of a keycode in `common_names` or returns NULL. */ +static const char* search_common_names(uint16_t keycode) { + static uint8_t buffer[8]; + + for (int_fast16_t offset = 0; offset < ARRAY_SIZE(common_names); offset += 4) { + if (keycode == pgm_read_word(common_names + offset)) { + const uint16_t w0 = pgm_read_word(common_names + offset + 1); + const uint16_t w1 = pgm_read_word(common_names + offset + 2); + const uint16_t w2 = pgm_read_word(common_names + offset + 3); + buffer[0] = (uint8_t)w0; + buffer[1] = (uint8_t)(w0 >> 8); + buffer[2] = '_'; + buffer[3] = (uint8_t)w1; + buffer[4] = (uint8_t)(w1 >> 8); + buffer[5] = (uint8_t)w2; + buffer[6] = (uint8_t)(w2 >> 8); + buffer[7] = 0; + return (const char*)buffer; + } + } + + return NULL; +} + +/** + * @brief Finds the name of a keycode in table or returns NULL. + * + * @param data Pointer to table to be searched. + * @param size Numer of entries in the table. + * @return Name string for the keycode, or NULL if not found. + */ +static const char* search_table(const keycode_string_name_t* data, uint16_t size, uint16_t keycode) { + if (data != NULL) { + for (uint16_t i = 0; i < size; ++i) { + if (data[i].keycode == keycode) { + return data[i].name; + } + } + } + return NULL; +} + +/** Formats `number` in `base`, either 10 or 16. */ +static char* number_string(uint16_t number, int8_t base) { + static char result[7]; + result[sizeof(result) - 1] = '\0'; + index_t i = sizeof(result) - 1; + do { + const uint8_t digit = number % base; + number /= base; + result[--i] = (digit < 10) ? (char)(digit + UINT8_C('0')) : (char)(digit + (UINT8_C('A') - 10)); + } while (number > 0 && i > 0); + + if (base == 16 && i >= 2) { + result[--i] = 'x'; + result[--i] = '0'; + } + return result + i; +} + +/** Appends `str` to `buffer`, truncating if the result would overflow. */ +static void append(const char* str) { + char* dest = buffer + buffer_len; + index_t i; + for (i = 0; buffer_len + i < BUFFER_MAX_LEN && str[i]; ++i) { + dest[i] = str[i]; + } + buffer_len += i; + buffer[buffer_len] = '\0'; +} + +/** Same as append(), but where `str` is a PROGMEM string. */ +static void append_P(const char* str) { + char* dest = buffer + buffer_len; + index_t i; + for (i = 0; buffer_len + i < BUFFER_MAX_LEN; ++i) { + const char c = pgm_read_byte(&str[i]); + if (c == '\0') { + break; + } + dest[i] = c; + } + buffer_len += i; + buffer[buffer_len] = '\0'; +} + +/** Appends a single char to `buffer` if there is space. */ +static void append_char(char c) { + if (buffer_len < BUFFER_MAX_LEN) { + buffer[buffer_len] = c; + buffer[++buffer_len] = '\0'; + } +} + +/** Formats `number` in `base`, either 10 or 16, and appends it to `buffer`. */ +static void append_number(uint16_t number, int8_t base) { + append(number_string(number, base)); +} + +/** Stringifies 5-bit mods and appends it to `buffer`. */ +static void append_5_bit_mods(uint8_t mods) { + const bool is_rhs = mods > 15; + const uint8_t csag = mods & 15; + if (csag != 0 && (csag & (csag - 1)) == 0) { // One mod is set. + append_P(PSTR("MOD_")); + append_char(is_rhs ? 'R' : 'L'); + append_P(&mod_names[4 * biton(csag)]); + } else { // Fallback: write the mod as a hex value. + append_number(mods, 16); + } +} + +/** + * @brief Writes a keycode of the format `name` + "(" + `param` + ")". + * @note `name` is a PROGMEM string, `param` is not. + */ +static void append_unary_keycode(const char* name, const char* param) { + append_P(name); + append_char('('); + append(param); + append_char(')'); +} + +/** + * @brief Writes a keycode of the format `name` + `number`. + * @note `name` is a PROGMEM string. + */ +static void append_numbered_keycode(const char* name, uint16_t number) { + append_P(name); + append_number(number, 10); +} + +/** Stringifies `keycode` and appends it to `buffer`. */ +static void append_keycode(uint16_t keycode) { + // In case there is overlap among tables, search `keycode_string_names_user` + // first so that it takes precedence. + const char* keycode_name = search_table(keycode_string_names_data_user, keycode_string_names_size_user, keycode); + if (keycode_name) { + append(keycode_name); + return; + } + keycode_name = search_table(keycode_string_names_data_kb, keycode_string_names_size_kb, keycode); + if (keycode_name) { + append(keycode_name); + return; + } + keycode_name = search_common_names(keycode); + if (keycode_name) { + append(keycode_name); + return; + } + + if (keycode <= 255) { // Basic keycodes. + switch (keycode) { + // Modifiers KC_LSFT, KC_RCTL, etc. + case MODIFIER_KEYCODE_RANGE: { + const uint8_t i = keycode - KC_LCTL; + const bool is_rhs = i > 3; + append_P(PSTR("KC_")); + append_char(is_rhs ? 'R' : 'L'); + append_P(&mod_names[4 * (i & 3)]); + } + return; + + // Letters A-Z. + case KC_A ... KC_Z: + append_P(PSTR("KC_")); + append_char((char)(keycode + (UINT8_C('A') - KC_A))); + return; + + // Digits 0-9 (NOTE: Unlike the ASCII order, KC_0 comes *after* KC_9.) + case KC_1 ... KC_0: + append_numbered_keycode(PSTR("KC_"), (keycode - (KC_1 - 1)) % 10); + return; + + // Keypad digits. + case KC_KP_1 ... KC_KP_0: + append_numbered_keycode(PSTR("KC_KP_"), (keycode - (KC_KP_1 - 1)) % 10); + return; + + // Function keys. F1-F12 and F13-F24 are coded in separate ranges. + case KC_F1 ... KC_F12: + append_numbered_keycode(PSTR("KC_F"), keycode - (KC_F1 - 1)); + return; + + case KC_F13 ... KC_F24: + append_numbered_keycode(PSTR("KC_F"), keycode - (KC_F13 - 13)); + return; + } + } + + // clang-format off + switch (keycode) { + // A modified keycode, like S(KC_1) for Shift + 1 = !. This implementation + // only covers modified keycodes where one modifier is applied, e.g. a + // Ctrl + Shift + kc or Hyper + kc keycode is not formatted. + case QK_MODS ... QK_MODS_MAX: { + uint8_t mods = QK_MODS_GET_MODS(keycode); + const bool is_rhs = mods > 15; + mods &= 15; + if (mods != 0 && (mods & (mods - 1)) == 0) { // One mod is set. + const char* name = &mod_names[4 * biton(mods)]; + if (is_rhs) { + append_char('R'); + append_P(name); + } else { + append_char(pgm_read_byte(&name[0])); + } + append_char('('); + append_keycode(QK_MODS_GET_BASIC_KEYCODE(keycode)); + append_char(')'); + return; + } + } break; + +#if !defined(NO_ACTION_ONESHOT) + case QK_ONE_SHOT_MOD ... QK_ONE_SHOT_MOD_MAX: // One-shot mod OSM(mod) key. + append_P(PSTR("OSM(")); + append_5_bit_mods(QK_ONE_SHOT_MOD_GET_MODS(keycode)); + append_char(')'); + return; +#endif // !defined(NO_ACTION_ONESHOT) + + // Various layer switch keys. + case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: // Layer-tap LT(layer,kc) key. + append_P(PSTR("LT(")); + append_number(QK_LAYER_TAP_GET_LAYER(keycode), 10); + append_char(','); + append_keycode(QK_LAYER_TAP_GET_TAP_KEYCODE(keycode)); + append_char(')'); + return; + + case QK_LAYER_MOD ... QK_LAYER_MOD_MAX: // LM(layer,mod) key. + append_P(PSTR("LM(")); + append_number(QK_LAYER_MOD_GET_LAYER(keycode), 10); + append_char(','); + append_5_bit_mods(QK_LAYER_MOD_GET_MODS(keycode)); + append_char(')'); + return; + + case QK_TO ... QK_TO_MAX: // TO(layer) key. + append_unary_keycode(PSTR("TO"), number_string(QK_TO_GET_LAYER(keycode), 10)); + return; + + case QK_MOMENTARY ... QK_MOMENTARY_MAX: // MO(layer) key. + append_unary_keycode(PSTR("MO"), number_string(QK_MOMENTARY_GET_LAYER(keycode), 10)); + return; + + case QK_DEF_LAYER ... QK_DEF_LAYER_MAX: // DF(layer) key. + append_unary_keycode(PSTR("DF"), number_string(QK_DEF_LAYER_GET_LAYER(keycode), 10)); + return; + + case QK_TOGGLE_LAYER ... QK_TOGGLE_LAYER_MAX: // TG(layer) key. + append_unary_keycode(PSTR("TG"), number_string(QK_TOGGLE_LAYER_GET_LAYER(keycode), 10)); + return; + +#if !defined(NO_ACTION_ONESHOT) + case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_LAYER_MAX: // OSL(layer) key. + append_unary_keycode(PSTR("OSL"), number_string(QK_ONE_SHOT_LAYER_GET_LAYER(keycode), 10)); + return; +#endif // !defined(NO_ACTION_ONESHOT) + + case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX: // TT(layer) key. + append_unary_keycode(PSTR("TT"), number_string(QK_LAYER_TAP_TOGGLE_GET_LAYER(keycode), 10)); + return; + + case QK_PERSISTENT_DEF_LAYER ... QK_PERSISTENT_DEF_LAYER_MAX: // PDF(layer) key. + append_unary_keycode(PSTR("PDF"), number_string(QK_PERSISTENT_DEF_LAYER_GET_LAYER(keycode), 10)); + return; + + // Mod-tap MT(mod,kc) key. This implementation formats the MT keys where + // one modifier is applied. For MT keys with multiple modifiers, the mod + // arg is written numerically as a hex code. + case QK_MOD_TAP ... QK_MOD_TAP_MAX: { + uint8_t mods = QK_MOD_TAP_GET_MODS(keycode); + const bool is_rhs = mods > 15; + const uint8_t csag = mods & 15; + if (csag != 0 && (csag & (csag - 1)) == 0) { // One mod is set. + append_char(is_rhs ? 'R' : 'L'); + append_P(&mod_names[4 * biton(csag)]); + append_P(PSTR("_T(")); + } else if (mods == MOD_HYPR) { + append_P(PSTR("HYPR_T(")); + } else if (mods == MOD_MEH) { + append_P(PSTR("MEH_T(")); + } else { + append_P(PSTR("MT(")); + append_number(mods, 16); + append_char(','); + } + append_keycode(QK_MOD_TAP_GET_TAP_KEYCODE(keycode)); + append_char(')'); + } return; + + case QK_TAP_DANCE ... QK_TAP_DANCE_MAX: // Tap dance TD(i) key. + append_unary_keycode(PSTR("TD"), number_string(QK_TAP_DANCE_GET_INDEX(keycode), 10)); + return; + +#ifdef UNICODE_ENABLE + case QK_UNICODE ... QK_UNICODE_MAX: // Unicode UC(codepoint) key. + append_unary_keycode(PSTR("UC"), number_string(QK_UNICODE_GET_CODE_POINT(keycode), 16)); + return; +#elif defined(UNICODEMAP_ENABLE) + case QK_UNICODEMAP ... QK_UNICODEMAP_MAX: // Unicode Map UM(i) key. + append_unary_keycode(PSTR("UM"), number_string(QK_UNICODEMAP_GET_INDEX(keycode), 10)); + return; + + case QK_UNICODEMAP_PAIR ... QK_UNICODEMAP_PAIR_MAX: { // UP(i,j) key. + const uint8_t i = QK_UNICODEMAP_PAIR_GET_UNSHIFTED_INDEX(keycode); + const uint8_t j = QK_UNICODEMAP_PAIR_GET_SHIFTED_INDEX(keycode); + append_P(PSTR("UP(")); + append_number(i, 10); + append_char(','); + append_number(j, 10); + append_char(')'); + } return; +#endif +#ifdef MOUSEKEY_ENABLE + case MS_BTN1 ... MS_BTN8: // Mouse button keycode. + append_numbered_keycode(PSTR("MS_BTN"), keycode - (MS_BTN1 - 1)); + return; +#endif // MOUSEKEY_ENABLE +#ifdef SWAP_HANDS_ENABLE + case QK_SWAP_HANDS ... QK_SWAP_HANDS_MAX: // Swap Hands SH_T(kc) key. + if (!IS_SWAP_HANDS_KEYCODE(keycode)) { + append_P(PSTR("SH_T(")); + append_keycode(QK_SWAP_HANDS_GET_TAP_KEYCODE(keycode)); + append_char(')'); + return; + } + break; +#endif // SWAP_HANDS_ENABLE +#ifdef JOYSTICK_ENABLE + case JOYSTICK_KEYCODE_RANGE: // Joystick JS_ key. + append_numbered_keycode(PSTR("JS_"), keycode - JS_0); + return; +#endif // JOYSTICK_ENABLE +#ifdef PROGRAMMABLE_BUTTON_ENABLE + case PROGRAMMABLE_BUTTON_KEYCODE_RANGE: // Programmable button PB_ key. + append_numbered_keycode(PSTR("PB_"), keycode - (PB_1 - 1)); + return; +#endif // PROGRAMMABLE_BUTTON_ENABLE + + case MACRO_KEYCODE_RANGE: // Macro range MC_ keycode. + append_numbered_keycode(PSTR("MC_"), keycode - MC_0); + return; + + case KB_KEYCODE_RANGE: // Keyboard range keycode. + append_numbered_keycode(PSTR("QK_KB_"), keycode - QK_KB_0); + return; + + case USER_KEYCODE_RANGE: // User range keycode. + append_numbered_keycode(PSTR("QK_USER_"), keycode - QK_USER_0); + return; + + // It would take a nontrivial amount of string data to cover some + // feature-specific keycodes, such as those for MIDI and lighting. As a + // fallback while still providing some information, we stringify + // remaining keys in known code ranges as "QK_+". +#ifdef MAGIC_ENABLE + case MAGIC_KEYCODE_RANGE: + append_numbered_keycode(PSTR("QK_MAGIC+"), keycode - QK_MAGIC); + return; +#endif // MAGIC_ENABLE +#ifdef MIDI_ENABLE + case MIDI_KEYCODE_RANGE: + append_numbered_keycode(PSTR("QK_MIDI+"), keycode - QK_MIDI); + return; +#endif // MIDI_ENABLE +#ifdef SEQUENCER_ENABLE + case SEQUENCER_KEYCODE_RANGE: + append_numbered_keycode(PSTR("QK_SEQUENCER+"), keycode - QK_SEQUENCER); + return; +#endif // SEQUENCER_ENABLE +#ifdef AUDIO_ENABLE + case AUDIO_KEYCODE_RANGE: + append_numbered_keycode(PSTR("QK_AUDIO+"), keycode - QK_AUDIO); + return; +#endif // AUDIO_ENABLE +#if defined(BACKLIGHT_ENABLE) || defined(LED_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLED) || defined(RGB_MATRIX_ENABLE) // Lighting-related features. + case QK_LIGHTING ... QK_LIGHTING_MAX: + append_numbered_keycode(PSTR("QK_LIGHTING+"), keycode - QK_LIGHTING); + return; +#endif // defined(BACKLIGHT_ENABLE) || defined(LED_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLED) || defined(RGB_MATRIX_ENABLE) +#ifdef STENO_ENABLE + case STENO_KEYCODE_RANGE: + append_numbered_keycode(PSTR("QK_STENO+"), keycode - QK_STENO); + return; +#endif // AUDIO_ENABLE +#ifdef BLUETOOTH_ENABLE + case CONNECTION_KEYCODE_RANGE: + append_numbered_keycode(PSTR("QK_CONNECTION+"), keycode - QK_CONNECTION); + return; +#endif // BLUETOOTH_ENABLE + case QUANTUM_KEYCODE_RANGE: + append_numbered_keycode(PSTR("QK_QUANTUM+"), keycode - QK_QUANTUM); + return; + } + // clang-format on + + append_number(keycode, 16); // Fallback: write keycode as hex value. +} + +const char* get_keycode_string(uint16_t keycode) { + buffer_len = 0; + buffer[0] = '\0'; + append_keycode(keycode); + return buffer; +} diff --git a/quantum/keycode_string.h b/quantum/keycode_string.h new file mode 100644 index 00000000000..1315613a808 --- /dev/null +++ b/quantum/keycode_string.h @@ -0,0 +1,134 @@ +// Copyright 2024-2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once + +#include + +#if KEYCODE_STRING_ENABLE + +/** + * @brief Formats a QMK keycode as a human-readable string. + * + * Given a keycode, like `KC_A`, this function returns a formatted string, like + * "KC_A". This is useful for debugging and diagnostics so that keys are more + * easily identified than they would be by raw numerical codes. + * + * @note The returned char* string should be used right away. The string memory + * is reused and will be overwritten by the next call to `keycode_string()`. + * + * Many common QMK keycodes are understood by this function, but not all. + * Recognized keycodes include: + * + * - Most basic keycodes, including letters `KC_A` - `KC_Z`, digits `KC_0` - + * `KC_9`, function keys `KC_F1` - `KC_F24`, and modifiers like `KC_LSFT`. + * + * - Modified basic keycodes, like `S(KC_1)` (Shift + 1 = !). + * + * - `MO`, `TO`, `TG`, `OSL`, `LM(layer,mod)`, `LT(layer,kc)` layer switches. + * + * - One-shot mod `OSM(mod)` keycodes. + * + * - Mod-tap `MT(mod, kc)` keycodes. + * + * - Tap dance keycodes `TD(i)`. + * + * - Swap hands keycodes `SH_T(kc)`, `SH_TOGG`, etc. + * + * - Joystick keycodes `JS_n`. + * + * - Programmable button keycodes `PB_n`. + * + * - Unicode `UC(codepoint)` and Unicode Map `UM(i)` and `UP(i,j)` keycodes. + * + * - Keyboard range keycodes `QK_KB_*`. + * + * - User range (SAFE_RANGE) keycodes `QK_USER_*`. + * + * Keycodes involving mods like `OSM`, `LM`, `MT` are fully supported only where + * a single mod is applied. + * + * Unrecognized keycodes are printed numerically as hex values like `0x1ABC`. + * + * Optionally, use `keycode_string_names_user` or `keycode_string_names_kb` to + * define names for additional keycodes or override how any of the above are + * formatted. + * + * @param keycode QMK keycode. + * @return Stringified keycode. + */ +const char* get_keycode_string(uint16_t keycode); + +/** Defines a human-readable name for a keycode. */ +typedef struct { + uint16_t keycode; + const char* name; +} keycode_string_name_t; + +// clang-format off +/** + * @brief Defines names for additional keycodes for `get_keycode_string()`. + * + * Define `KEYCODE_STRING_NAMES_USER` in your keymap.c to add names for + * additional keycodes to `keycode_string()`. This table may also be used to + * override how `keycode_string()` formats a keycode. For example, supposing + * keymap.c defines `MYMACRO1` and `MYMACRO2` as custom keycodes: + * + * KEYCODE_STRING_NAMES_USER( + * KEYCODE_STRING_NAME(MYMACRO1), + * KEYCODE_STRING_NAME(MYMACRO2), + * KEYCODE_STRING_NAME(KC_EXLM), + * ); + * + * The above defines names for `MYMACRO1` and `MYMACRO2`, and overrides + * `KC_EXLM` to format as "KC_EXLM" instead of the default "S(KC_1)". + */ +# define KEYCODE_STRING_NAMES_USER(...) \ + static const keycode_string_name_t keycode_string_names_user[] = {__VA_ARGS__}; \ + uint16_t keycode_string_names_size_user = \ + sizeof(keycode_string_names_user) / sizeof(keycode_string_name_t); \ + const keycode_string_name_t* keycode_string_names_data_user = \ + keycode_string_names_user + +/** Same as above, but defines keycode string names at the keyboard level. */ +# define KEYCODE_STRING_NAMES_KB(...) \ + static const keycode_string_name_t keycode_string_names_kb[] = {__VA_ARGS__}; \ + uint16_t keycode_string_names_size_kb = \ + sizeof(keycode_string_names_kb) / sizeof(keycode_string_name_t); \ + const keycode_string_name_t* keycode_string_names_data_kb = \ + keycode_string_names_kb + +/** Helper to define a keycode_string_name_t. */ +# define KEYCODE_STRING_NAME(kc) \ + { (kc), #kc } +// clang-format on + +extern const keycode_string_name_t* keycode_string_names_data_user; +extern uint16_t keycode_string_names_size_user; +extern const keycode_string_name_t* keycode_string_names_data_kb; +extern uint16_t keycode_string_names_size_kb; + +#else + +// When keycode_string is disabled, fall back to printing keycodes numerically +// as decimal values, using get_u16_str() from quantum.c. +# define get_keycode_string(kc) get_u16_str(kc, ' ') + +const char* get_u16_str(uint16_t curr_num, char curr_pad); + +# define KEYCODE_STRING_NAMES_USER(...) +# define KEYCODE_STRING_NAMES_KB(...) +# define KEYCODE_STRING_NAME(kc) + +#endif // KEYCODE_STRING_ENABLE diff --git a/quantum/quantum.h b/quantum/quantum.h index 59a415ead4e..3a994e9a038 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h @@ -39,6 +39,7 @@ #include "keymap_common.h" #include "quantum_keycodes.h" #include "keycode_config.h" +#include "keycode_string.h" #include "action_layer.h" #include "eeconfig.h" #include "bootloader.h" diff --git a/tests/keycode_string/config.h b/tests/keycode_string/config.h new file mode 100644 index 00000000000..7fc76d7c2e7 --- /dev/null +++ b/tests/keycode_string/config.h @@ -0,0 +1,19 @@ +/* Copyright 2017 Fred Sundvik + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "test_common.h" diff --git a/tests/keycode_string/test.mk b/tests/keycode_string/test.mk new file mode 100644 index 00000000000..aa255a1b6b1 --- /dev/null +++ b/tests/keycode_string/test.mk @@ -0,0 +1,22 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +EXTRAKEY_ENABLE = yes +KEYCODE_STRING_ENABLE = yes +KEY_LOCK_ENABLE = yes +MAGIC_ENABLE = yes +MOUSEKEY_ENABLE = yes +PROGRAMMABLE_BUTTON_ENABLE = yes +SECURE_ENABLE = yes +SWAP_HANDS_ENABLE = yes diff --git a/tests/keycode_string/test_keycode_string.cpp b/tests/keycode_string/test_keycode_string.cpp new file mode 100644 index 00000000000..e1dec70e7a0 --- /dev/null +++ b/tests/keycode_string/test_keycode_string.cpp @@ -0,0 +1,153 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include + +#include "test_common.hpp" + +enum { + MYMACRO1 = SAFE_RANGE, + MYMACRO2, +}; + +// clang-format off +extern "C" { + +KEYCODE_STRING_NAMES_KB( + KEYCODE_STRING_NAME(MYMACRO1), +); + +KEYCODE_STRING_NAMES_USER( + KEYCODE_STRING_NAME(MYMACRO2), + KEYCODE_STRING_NAME(KC_EXLM), +); + +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { + {{9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, + {{9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, + {{9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, + {{9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, +}; + +} // extern "C" +// clang-format on + +class KeycodeStringTest : public TestFixture {}; + +TEST_F(KeycodeStringTest, get_keycode_string) { + struct TestParams { + uint16_t keycode; + std::string expected; + }; + for (const auto [keycode, expected] : std::vector({ + {KC_TRNS, "KC_TRNS"}, + {KC_ESC, "KC_ESC"}, + {KC_A, "KC_A"}, + {KC_Z, "KC_Z"}, + {KC_0, "KC_0"}, + {KC_9, "KC_9"}, + {KC_KP_0, "KC_KP_0"}, + {KC_KP_9, "KC_KP_9"}, + {KC_LBRC, "KC_LBRC"}, + {KC_NUHS, "KC_NUHS"}, + {KC_NUBS, "KC_NUBS"}, + {KC_CAPS, "KC_CAPS"}, + {DB_TOGG, "DB_TOGG"}, + {KC_LCTL, "KC_LCTL"}, + {KC_LSFT, "KC_LSFT"}, + {KC_RALT, "KC_RALT"}, + {KC_RGUI, "KC_RGUI"}, + {KC_UP, "KC_UP"}, + {KC_HYPR, "KC_HYPR"}, + {KC_MEH, "KC_MEH"}, + // F1-F24 keycodes. + {KC_F1, "KC_F1"}, + {KC_F12, "KC_F12"}, + {KC_F13, "KC_F13"}, + {KC_F24, "KC_F24"}, + // Macro keycodes. + {MC_0, "MC_0"}, + {MC_31, "MC_31"}, + // Keyboard range keycodes. + {QK_KB_0, "QK_KB_0"}, + {QK_KB_31, "QK_KB_31"}, + // User range keycodes. + {QK_USER_2, "QK_USER_2"}, + {QK_USER_31, "QK_USER_31"}, + // Modified keycodes. + {KC_COLN, "S(KC_SCLN)"}, + {C(KC_PGUP), "C(KC_PGUP)"}, + {RALT(KC_BSPC), "RALT(KC_BSPC)"}, + // One-shot mods. + {OSM(MOD_LSFT), "OSM(MOD_LSFT)"}, + {OSM(MOD_RGUI), "OSM(MOD_RGUI)"}, + {OSM(MOD_RCTL | MOD_RGUI), "OSM(0x19)"}, + // Layer switch keycodes. + {DF(2), "DF(2)"}, + {PDF(12), "PDF(12)"}, + {MO(3), "MO(3)"}, + {TO(0), "TO(0)"}, + {TT(1), "TT(1)"}, + {TG(3), "TG(3)"}, + {OSL(3), "OSL(3)"}, + {LM(3, MOD_RALT), "LM(3,MOD_RALT)"}, + {LT(15, KC_QUOT), "LT(15,KC_QUOT)"}, + // Tap dance keycodes. + {TD(0), "TD(0)"}, + {TD(31), "TD(31)"}, + // Mod-tap keycodes. + {LSFT_T(KC_ENT), "LSFT_T(KC_ENT)"}, + {RCTL_T(KC_RGHT), "RCTL_T(KC_RGHT)"}, + {HYPR_T(KC_GRV), "HYPR_T(KC_GRV)"}, + {MEH_T(KC_EQL), "MEH_T(KC_EQL)"}, + {RSA_T(KC_LBRC), "MT(0x16,KC_LBRC)"}, + // Extrakey keycodes. + {KC_WBAK, "KC_WBAK"}, + {KC_WFWD, "KC_WFWD"}, + {KC_WREF, "KC_WREF"}, + {KC_VOLU, "KC_VOLU"}, + {KC_VOLD, "KC_VOLD"}, + // Mouse Key keycodes. + {MS_LEFT, "MS_LEFT"}, + {MS_RGHT, "MS_RGHT"}, + {MS_UP, "MS_UP"}, + {MS_WHLU, "MS_WHLU"}, + {MS_WHLD, "MS_WHLD"}, + {MS_BTN1, "MS_BTN1"}, + {MS_BTN8, "MS_BTN8"}, + // Swap Hands keycodes. + {SH_MON, "SH_MON"}, + {SH_TOGG, "SH_TOGG"}, + {SH_T(KC_PSCR), "SH_T(KC_PSCR)"}, + // Secure keycodes. + {SE_LOCK, "SE_LOCK"}, + {SE_UNLK, "SE_UNLK"}, + {SE_TOGG, "SE_TOGG"}, + {SE_REQ, "SE_REQ"}, + // Programmable button keycodes. + {PB_1, "PB_1"}, + {PB_32, "PB_32"}, + // Magic button keycodes. + {QK_MAGIC + 7, "QK_MAGIC+7"}, + // Quantum keycodes. + {QK_LOCK, "QK_LOCK"}, + {QK_QUANTUM + 7, "QK_QUANTUM+7"}, + // Custom keycode names. + {MYMACRO1, "MYMACRO1"}, + {MYMACRO2, "MYMACRO2"}, + {KC_EXLM, "KC_EXLM"}, + })) { + EXPECT_EQ(get_keycode_string(keycode), expected) << "where keycode = 0x" << std::hex << keycode; + } +} From f820a186d489911b7da3907163c319385176f6d9 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 20 Mar 2025 03:04:10 +0000 Subject: [PATCH 276/365] Align to latest CLI dependencies (#24553) * Align to latest CLI dependencies * Update docs --- docs/cli.md | 4 ++-- docs/cli_development.md | 6 +++--- docs/coding_conventions_python.md | 4 ++-- lib/python/qmk/cli/__init__.py | 2 +- requirements.txt | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/cli.md b/docs/cli.md index 7d4c10cedd7..36983d5e008 100644 --- a/docs/cli.md +++ b/docs/cli.md @@ -6,7 +6,7 @@ The QMK CLI (command line interface) makes building and working with QMK keyboar ### Requirements {#requirements} -QMK requires Python 3.7 or greater. We try to keep the number of requirements small but you will also need to install the packages listed in [`requirements.txt`](https://github.com/qmk/qmk_firmware/blob/master/requirements.txt). These are installed automatically when you install the QMK CLI. +QMK requires Python 3.9 or greater. We try to keep the number of requirements small but you will also need to install the packages listed in [`requirements.txt`](https://github.com/qmk/qmk_firmware/blob/master/requirements.txt). These are installed automatically when you install the QMK CLI. ### Install Using Homebrew (macOS, some Linux) {#install-using-homebrew} @@ -20,7 +20,7 @@ qmk setup # This will clone `qmk/qmk_firmware` and optionally set up your build ### Install Using pip {#install-using-easy_install-or-pip} -If your system is not listed above you can install QMK manually. First ensure that you have Python 3.7 (or later) installed and have installed pip. Then install QMK with this command: +If your system is not listed above you can install QMK manually. First ensure that you have Python 3.9 (or later) installed and have installed pip. Then install QMK with this command: ``` python3 -m pip install qmk diff --git a/docs/cli_development.md b/docs/cli_development.md index 2e74220d4be..74ac53d3273 100644 --- a/docs/cli_development.md +++ b/docs/cli_development.md @@ -44,7 +44,7 @@ def hello(cli): First we import the `cli` object from `milc`. This is how we interact with the user and control the script's behavior. We use `@cli.argument()` to define a command line flag, `--name`. This also creates a configuration variable named `hello.name` (and the corresponding `user.name`) which the user can set so they don't have to specify the argument. The `cli.subcommand()` decorator designates this function as a subcommand. The name of the subcommand will be taken from the name of the function. -Once inside our function we find a typical "Hello, World!" program. We use `cli.log` to access the underlying [Logger Object](https://docs.python.org/3.7/library/logging.html#logger-objects), whose behavior is user controllable. We also access the value for name supplied by the user as `cli.config.hello.name`. The value for `cli.config.hello.name` will be determined by looking at the `--name` argument supplied by the user, if not provided it will use the value in the `qmk.ini` config file, and if neither of those is provided it will fall back to the default supplied in the `cli.argument()` decorator. +Once inside our function we find a typical "Hello, World!" program. We use `cli.log` to access the underlying [Logger Object](https://docs.python.org/3.9/library/logging.html#logger-objects), whose behavior is user controllable. We also access the value for name supplied by the user as `cli.config.hello.name`. The value for `cli.config.hello.name` will be determined by looking at the `--name` argument supplied by the user, if not provided it will use the value in the `qmk.ini` config file, and if neither of those is provided it will fall back to the default supplied in the `cli.argument()` decorator. # User Interaction @@ -56,13 +56,13 @@ There are two main methods for outputting text in a subcommand- `cli.log` and `c You can use special tokens to colorize your text, to make it easier to understand the output of your program. See [Colorizing Text](#colorizing-text) below. -Both of these methods support built-in string formatting using python's [printf style string format operations](https://docs.python.org/3.7/library/stdtypes.html#old-string-formatting). You can use tokens such as `%s` and `%d` within your text strings then pass the values as arguments. See our Hello, World program above for an example. +Both of these methods support built-in string formatting using python's [printf style string format operations](https://docs.python.org/3.9/library/stdtypes.html#old-string-formatting). You can use tokens such as `%s` and `%d` within your text strings then pass the values as arguments. See our Hello, World program above for an example. You should never use the format operator (`%`) directly, always pass values as arguments. ### Logging (`cli.log`) -The `cli.log` object gives you access to a [Logger Object](https://docs.python.org/3.7/library/logging.html#logger-objects). We have configured our log output to show the user a nice emoji for each log level (or the log level name if their terminal does not support unicode.) This way the user can tell at a glance which messages are most important when something goes wrong. +The `cli.log` object gives you access to a [Logger Object](https://docs.python.org/3.9/library/logging.html#logger-objects). We have configured our log output to show the user a nice emoji for each log level (or the log level name if their terminal does not support unicode.) This way the user can tell at a glance which messages are most important when something goes wrong. The default log level is `INFO`. If the user runs `qmk -v ` the default log level will be set to `DEBUG`. diff --git a/docs/coding_conventions_python.md b/docs/coding_conventions_python.md index 502ee9102ed..b25466bf826 100644 --- a/docs/coding_conventions_python.md +++ b/docs/coding_conventions_python.md @@ -2,7 +2,7 @@ Most of our style follows PEP8 with some local modifications to make things less nit-picky. -* We target Python 3.7 for compatibility with all supported platforms. +* We target Python 3.9 for compatibility with all supported platforms. * We indent using four (4) spaces (soft tabs) * We encourage liberal use of comments * Think of them as a story describing the feature @@ -317,7 +317,7 @@ At the time of this writing our tests are not very comprehensive. Looking at the ## Integration Tests -Integration tests can be found in `lib/python/qmk/tests/test_cli_commands.py`. This is where CLI commands are actually run and their overall behavior is verified. We use [`subprocess`](https://docs.python.org/3.7/library/subprocess.html#module-subprocess) to launch each CLI command and a combination of checking output and returncode to determine if the right thing happened. +Integration tests can be found in `lib/python/qmk/tests/test_cli_commands.py`. This is where CLI commands are actually run and their overall behavior is verified. We use [`subprocess`](https://docs.python.org/3.9/library/subprocess.html#module-subprocess) to launch each CLI command and a combination of checking output and returncode to determine if the right thing happened. ## Unit Tests diff --git a/lib/python/qmk/cli/__init__.py b/lib/python/qmk/cli/__init__.py index 3f2ba9ce3cc..cb949d9a71d 100644 --- a/lib/python/qmk/cli/__init__.py +++ b/lib/python/qmk/cli/__init__.py @@ -215,7 +215,7 @@ if sys.version_info[0] != 3 or sys.version_info[1] < 9: milc_version = __VERSION__.split('.') -if int(milc_version[0]) < 2 and int(milc_version[1]) < 4: +if int(milc_version[0]) < 2 and int(milc_version[1]) < 9: requirements = Path('requirements.txt').resolve() _eprint(f'Your MILC library is too old! Please upgrade: python3 -m pip install -U -r {str(requirements)}') diff --git a/requirements.txt b/requirements.txt index fbee51ee575..68b05d64e62 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,7 +6,7 @@ dotty-dict hid hjson jsonschema>=4 -milc>=1.4.2 +milc>=1.9.0 pygments pyserial pyusb From e7c5695a0c09d9d673b2185548cae43a38026085 Mon Sep 17 00:00:00 2001 From: Andrew Kannan Date: Thu, 20 Mar 2025 01:06:54 -0400 Subject: [PATCH 277/365] Minor keymap fix on Cerberus HS (#25043) --- .../cannonkeys/cerberus/hotswap/keymaps/default/keymap.c | 4 ++-- .../cannonkeys/cerberus/solderable/keymaps/default/keymap.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/cannonkeys/cerberus/hotswap/keymaps/default/keymap.c b/keyboards/cannonkeys/cerberus/hotswap/keymaps/default/keymap.c index 865dbff4003..779070197a4 100644 --- a/keyboards/cannonkeys/cerberus/hotswap/keymaps/default/keymap.c +++ b/keyboards/cannonkeys/cerberus/hotswap/keymaps/default/keymap.c @@ -12,8 +12,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, MO(1), KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_LGUI, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [_FN1] = LAYOUT_all( diff --git a/keyboards/cannonkeys/cerberus/solderable/keymaps/default/keymap.c b/keyboards/cannonkeys/cerberus/solderable/keymaps/default/keymap.c index 2b87af0e997..782e9a138fd 100644 --- a/keyboards/cannonkeys/cerberus/solderable/keymaps/default/keymap.c +++ b/keyboards/cannonkeys/cerberus/solderable/keymaps/default/keymap.c @@ -11,8 +11,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, MO(1), KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_LGUI, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [_FN1] = LAYOUT_all( From c5232ba6996f89b62a53496e95271cb9052c50ee Mon Sep 17 00:00:00 2001 From: Anthony Abruzzini Date: Thu, 20 Mar 2025 14:35:58 -0700 Subject: [PATCH 278/365] Fix typo in docs: split_keyboard.md SPLIT_USB_DETECT ("theres's -> "there's") (#24984) * Fix typo "theres's" * Update docs/features/split_keyboard.md Co-authored-by: jack --------- Co-authored-by: jack --- docs/features/split_keyboard.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/features/split_keyboard.md b/docs/features/split_keyboard.md index 49582c3946f..fbf5d3d3e2f 100644 --- a/docs/features/split_keyboard.md +++ b/docs/features/split_keyboard.md @@ -444,7 +444,7 @@ This setting implies that `RGBLIGHT_SPLIT` is enabled, and will forcibly enable #define SPLIT_USB_DETECT ``` -Enabling this option changes the startup behavior to listen for an active USB communication to delegate which part is master and which is slave. With this option enabled and theres's USB communication, then that half assumes it is the master, otherwise it assumes it is the slave. +Enabling this option changes the startup behavior to listen for an active USB communication to delegate which part is master and which is slave. With this option enabled and active USB communication, then that half assumes it is the master, otherwise it assumes it is the slave. Without this option, the master is the half that can detect voltage on the physical USB connection (VBUS detection). From 96882c6a67c95bd5d59873d0921f15a3903dd6dc Mon Sep 17 00:00:00 2001 From: Duncan Sutherland Date: Thu, 20 Mar 2025 21:44:19 +0000 Subject: [PATCH 279/365] Correct json for Fullsize JIS Community Layouts (#23660) initial commit --- layouts/default/fullsize_extended_jis/info.json | 7 ++++--- layouts/default/fullsize_jis/info.json | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/layouts/default/fullsize_extended_jis/info.json b/layouts/default/fullsize_extended_jis/info.json index 8267b4c54f2..b410273cd9d 100644 --- a/layouts/default/fullsize_extended_jis/info.json +++ b/layouts/default/fullsize_extended_jis/info.json @@ -48,8 +48,8 @@ {"x": 19.5, "y": 1.25}, {"x": 20.5, "y": 1.25}, {"x": 21.5, "y": 1.25}, - {"x": 0, "y": 2.25, "w": 1.5}, + {"x": 0, "y": 2.25, "w": 1.5}, {"x": 1.5, "y": 2.25}, {"x": 2.5, "y": 2.25}, {"x": 3.5, "y": 2.25}, @@ -62,7 +62,7 @@ {"x": 10.5, "y": 2.25}, {"x": 11.5, "y": 2.25}, {"x": 12.5, "y": 2.25}, - {"x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"x": 15.25, "y": 2.25}, {"x": 16.25, "y": 2.25}, {"x": 17.25, "y": 2.25}, @@ -84,6 +84,7 @@ {"x": 10.75, "y": 3.25}, {"x": 11.75, "y": 3.25}, {"x": 12.75, "y": 3.25}, + {"x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, {"x": 18.5, "y": 3.25}, {"x": 19.5, "y": 3.25}, {"x": 20.5, "y": 3.25}, @@ -106,7 +107,7 @@ {"x": 19.5, "y": 4.25}, {"x": 20.5, "y": 4.25}, {"x": 21.5, "y": 4.25, "h": 2}, - + {"x": 0, "y": 5.25, "w": 1.25}, {"x": 1.25, "y": 5.25, "w": 1.25}, {"x": 2.5, "y": 5.25, "w": 1.25}, diff --git a/layouts/default/fullsize_jis/info.json b/layouts/default/fullsize_jis/info.json index 8acd5f2fe3a..f573125a086 100644 --- a/layouts/default/fullsize_jis/info.json +++ b/layouts/default/fullsize_jis/info.json @@ -44,8 +44,8 @@ {"x": 19.5, "y": 1.25}, {"x": 20.5, "y": 1.25}, {"x": 21.5, "y": 1.25}, - {"x": 0, "y": 2.25, "w": 1.5}, + {"x": 0, "y": 2.25, "w": 1.5}, {"x": 1.5, "y": 2.25}, {"x": 2.5, "y": 2.25}, {"x": 3.5, "y": 2.25}, @@ -58,7 +58,6 @@ {"x": 10.5, "y": 2.25}, {"x": 11.5, "y": 2.25}, {"x": 12.5, "y": 2.25}, - {"x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, {"x": 15.25, "y": 2.25}, {"x": 16.25, "y": 2.25}, {"x": 17.25, "y": 2.25}, @@ -80,6 +79,7 @@ {"x": 10.75, "y": 3.25}, {"x": 11.75, "y": 3.25}, {"x": 12.75, "y": 3.25}, + {"x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, {"x": 18.5, "y": 3.25}, {"x": 19.5, "y": 3.25}, {"x": 20.5, "y": 3.25}, @@ -102,7 +102,7 @@ {"x": 19.5, "y": 4.25}, {"x": 20.5, "y": 4.25}, {"x": 21.5, "y": 4.25, "h": 2}, - + {"x": 0, "y": 5.25, "w": 1.25}, {"x": 1.25, "y": 5.25, "w": 1.25}, {"x": 2.5, "y": 5.25, "w": 1.25}, From 14ef6c9830d232f4d59f2f4067585a5503a3cd3c Mon Sep 17 00:00:00 2001 From: Duncan Sutherland Date: Thu, 20 Mar 2025 21:44:59 +0000 Subject: [PATCH 280/365] Add Community Layout support to daskeyboard4 (#23884) add ansi CL --- .../daskeyboard/daskeyboard4/keyboard.json | 329 ++++++++++++------ 1 file changed, 224 insertions(+), 105 deletions(-) diff --git a/keyboards/handwired/daskeyboard/daskeyboard4/keyboard.json b/keyboards/handwired/daskeyboard/daskeyboard4/keyboard.json index 83085065120..d40ef0210b2 100644 --- a/keyboards/handwired/daskeyboard/daskeyboard4/keyboard.json +++ b/keyboards/handwired/daskeyboard/daskeyboard4/keyboard.json @@ -43,114 +43,233 @@ "tapping": { "toggle": 2 }, + "community_layouts": ["fullsize_ansi", "fullsize_iso"], "layouts": { + "LAYOUT_fullsize_ansi": { + "layout": [ + {"matrix": [5, 16], "x": 0, "y": 0}, + {"matrix": [2, 4], "x": 2, "y": 0}, + {"matrix": [2, 5], "x": 3, "y": 0}, + {"matrix": [3, 5], "x": 4, "y": 0}, + {"matrix": [5, 5], "x": 5, "y": 0}, + {"matrix": [0, 1], "x": 6.5, "y": 0}, + {"matrix": [5, 8], "x": 7.5, "y": 0}, + {"matrix": [3, 3], "x": 8.5, "y": 0}, + {"matrix": [2, 3], "x": 9.5, "y": 0}, + {"matrix": [2, 2], "x": 11, "y": 0}, + {"matrix": [0, 2], "x": 12, "y": 0}, + {"matrix": [5, 2], "x": 13, "y": 0}, + {"matrix": [6, 2], "x": 14, "y": 0}, + {"matrix": [0, 0], "x": 15.25, "y": 0}, + {"matrix": [1, 0], "x": 16.25, "y": 0}, + {"matrix": [1, 1], "x": 17.25, "y": 0}, + + {"matrix": [2, 16], "x": 0, "y": 1.25}, + {"matrix": [0, 16], "x": 1, "y": 1.25}, + {"matrix": [0, 4], "x": 2, "y": 1.25}, + {"matrix": [0, 5], "x": 3, "y": 1.25}, + {"matrix": [0, 6], "x": 4, "y": 1.25}, + {"matrix": [2, 6], "x": 5, "y": 1.25}, + {"matrix": [2, 7], "x": 6, "y": 1.25}, + {"matrix": [0, 7], "x": 7, "y": 1.25}, + {"matrix": [0, 8], "x": 8, "y": 1.25}, + {"matrix": [0, 3], "x": 9, "y": 1.25}, + {"matrix": [0, 9], "x": 10, "y": 1.25}, + {"matrix": [2, 9], "x": 11, "y": 1.25}, + {"matrix": [2, 8], "x": 12, "y": 1.25}, + {"matrix": [3, 2], "w": 2, "x": 13, "y": 1.25}, + {"matrix": [2, 11], "x": 15.25, "y": 1.25}, + {"matrix": [2, 15], "x": 16.25, "y": 1.25}, + {"matrix": [2, 14], "x": 17.25, "y": 1.25}, + {"matrix": [4, 10], "x": 18.5, "y": 1.25}, + {"matrix": [4, 11], "x": 19.5, "y": 1.25}, + {"matrix": [4, 14], "x": 20.5, "y": 1.25}, + {"matrix": [6, 14], "x": 21.5, "y": 1.25}, + + {"matrix": [3, 16], "w": 1.5, "x": 0, "y": 2.25}, + {"matrix": [1, 16], "x": 1.5, "y": 2.25}, + {"matrix": [1, 4], "x": 2.5, "y": 2.25}, + {"matrix": [1, 5], "x": 3.5, "y": 2.25}, + {"matrix": [1, 6], "x": 4.5, "y": 2.25}, + {"matrix": [3, 6], "x": 5.5, "y": 2.25}, + {"matrix": [3, 7], "x": 6.5, "y": 2.25}, + {"matrix": [1, 7], "x": 7.5, "y": 2.25}, + {"matrix": [1, 8], "x": 8.5, "y": 2.25}, + {"matrix": [1, 3], "x": 9.5, "y": 2.25}, + {"matrix": [1, 9], "x": 10.5, "y": 2.25}, + {"matrix": [3, 9], "x": 11.5, "y": 2.25}, + {"matrix": [3, 8], "x": 12.5, "y": 2.25}, + {"matrix": [7, 2], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 10], "x": 15.25, "y": 2.25}, + {"matrix": [0, 15], "x": 16.25, "y": 2.25}, + {"matrix": [0, 14], "x": 17.25, "y": 2.25}, + {"matrix": [1, 10], "x": 18.5, "y": 2.25}, + {"matrix": [1, 11], "x": 19.5, "y": 2.25}, + {"matrix": [1, 14], "x": 20.5, "y": 2.25}, + {"matrix": [1, 15], "x": 21.5, "y": 2.25, "h": 2}, + + {"matrix": [3, 4], "w": 1.75, "x": 0, "y": 3.25}, + {"matrix": [7, 16], "x": 1.75, "y": 3.25}, + {"matrix": [7, 4], "x": 2.75, "y": 3.25}, + {"matrix": [7, 5], "x": 3.75, "y": 3.25}, + {"matrix": [7, 6], "x": 4.75, "y": 3.25}, + {"matrix": [5, 6], "x": 5.75, "y": 3.25}, + {"matrix": [5, 7], "x": 6.75, "y": 3.25}, + {"matrix": [7, 7], "x": 7.75, "y": 3.25}, + {"matrix": [7, 8], "x": 8.75, "y": 3.25}, + {"matrix": [7, 3], "x": 9.75, "y": 3.25}, + {"matrix": [7, 9], "x": 10.75, "y": 3.25}, + {"matrix": [5, 9], "x": 11.75, "y": 3.25}, + {"matrix": [4, 2], "w": 2.25, "x": 12.75, "y": 3.25}, + {"matrix": [3, 10], "x": 18.5, "y": 3.25}, + {"matrix": [3, 11], "x": 19.5, "y": 3.25}, + {"matrix": [3, 14], "x": 20.5, "y": 3.25}, + + {"matrix": [3, 13], "w": 2.25, "x": 0, "y": 4.25}, + {"matrix": [4, 16], "x": 2.25, "y": 4.25}, + {"matrix": [4, 4], "x": 3.25, "y": 4.25}, + {"matrix": [4, 5], "x": 4.25, "y": 4.25}, + {"matrix": [4, 6], "x": 5.25, "y": 4.25}, + {"matrix": [6, 6], "x": 6.25, "y": 4.25}, + {"matrix": [6, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 7], "x": 8.25, "y": 4.25}, + {"matrix": [4, 8], "x": 9.25, "y": 4.25}, + {"matrix": [4, 3], "x": 10.25, "y": 4.25}, + {"matrix": [6, 9], "x": 11.25, "y": 4.25}, + {"matrix": [7, 13], "w": 2.75, "x": 12.25, "y": 4.25}, + {"matrix": [5, 15], "x": 16.25, "y": 4.25}, + {"matrix": [7, 10], "x": 18.5, "y": 4.25}, + {"matrix": [7, 11], "x": 19.5, "y": 4.25}, + {"matrix": [7, 14], "x": 20.5, "y": 4.25}, + {"matrix": [7, 15], "x": 21.5, "y": 4.25, "h": 2}, + + {"matrix": [2, 1], "w": 1.25, "x": 0, "y": 5.25}, + {"matrix": [3, 12], "w": 1.25, "x": 1.25, "y": 5.25}, + {"matrix": [5, 0], "w": 1.25, "x": 2.5, "y": 5.25}, + {"matrix": [5, 10], "w": 6.25, "x": 3.75, "y": 5.25}, + {"matrix": [6, 0], "w": 1.25, "x": 10, "y": 5.25}, + {"matrix": [7, 12], "w": 1.25, "x": 11.25, "y": 5.25}, + {"matrix": [6, 3], "w": 1.25, "x": 12.5, "y": 5.25}, + {"matrix": [4, 1], "w": 1.25, "x": 13.75, "y": 5.25}, + {"matrix": [6, 15], "x": 15.25, "y": 5.25}, + {"matrix": [6, 10], "x": 16.25, "y": 5.25}, + {"matrix": [6, 11], "x": 17.25, "y": 5.25}, + {"matrix": [5, 11], "w": 2, "x": 18.5, "y": 5.25}, + {"matrix": [5, 14], "x": 20.5, "y": 5.25} + ] + }, "LAYOUT_fullsize_iso": { "layout": [ - {"label": "Esc", "matrix": [5, 16], "x": 0, "y": 0}, - {"label": "F1", "matrix": [2, 4], "x": 2, "y": 0}, - {"label": "F2", "matrix": [2, 5], "x": 3, "y": 0}, - {"label": "F3", "matrix": [3, 5], "x": 4, "y": 0}, - {"label": "F4", "matrix": [5, 5], "x": 5, "y": 0}, - {"label": "F5", "matrix": [0, 1], "x": 6.5, "y": 0}, - {"label": "F6", "matrix": [5, 8], "x": 7.5, "y": 0}, - {"label": "F7", "matrix": [3, 3], "x": 8.5, "y": 0}, - {"label": "F8", "matrix": [2, 3], "x": 9.5, "y": 0}, - {"label": "F9", "matrix": [2, 2], "x": 11, "y": 0}, - {"label": "F10", "matrix": [0, 2], "x": 12, "y": 0}, - {"label": "F11", "matrix": [5, 2], "x": 13, "y": 0}, - {"label": "F12", "matrix": [6, 2], "x": 14, "y": 0}, - {"label": "Prt Sc", "matrix": [0, 0], "x": 15.25, "y": 0}, - {"label": "Scr Lk", "matrix": [1, 0], "x": 16.25, "y": 0}, - {"label": "Pause", "matrix": [1, 1], "x": 17.25, "y": 0}, - {"label": "`", "matrix": [2, 16], "x": 0, "y": 1.25}, - {"label": "1", "matrix": [0, 16], "x": 1, "y": 1.25}, - {"label": "2", "matrix": [0, 4], "x": 2, "y": 1.25}, - {"label": "3", "matrix": [0, 5], "x": 3, "y": 1.25}, - {"label": "4", "matrix": [0, 6], "x": 4, "y": 1.25}, - {"label": "5", "matrix": [2, 6], "x": 5, "y": 1.25}, - {"label": "6", "matrix": [2, 7], "x": 6, "y": 1.25}, - {"label": "7", "matrix": [0, 7], "x": 7, "y": 1.25}, - {"label": "8", "matrix": [0, 8], "x": 8, "y": 1.25}, - {"label": "9", "matrix": [0, 3], "x": 9, "y": 1.25}, - {"label": "0", "matrix": [0, 9], "x": 10, "y": 1.25}, - {"label": "-", "matrix": [2, 9], "x": 11, "y": 1.25}, - {"label": "=", "matrix": [2, 8], "x": 12, "y": 1.25}, - {"label": "Backspace", "matrix": [3, 2], "w": 2, "x": 13, "y": 1.25}, - {"label": "Ins", "matrix": [2, 11], "x": 15.25, "y": 1.25}, - {"label": "Home", "matrix": [2, 15], "x": 16.25, "y": 1.25}, - {"label": "Page Up", "matrix": [2, 14], "x": 17.25, "y": 1.25}, - {"label": "Num Lk", "matrix": [4, 10], "x": 18.5, "y": 1.25}, - {"label": "/", "matrix": [4, 11], "x": 19.5, "y": 1.25}, - {"label": "*", "matrix": [4, 14], "x": 20.5, "y": 1.25}, - {"label": "-", "matrix": [6, 14], "x": 21.5, "y": 1.25}, - {"label": "Tab", "matrix": [3, 16], "w": 1.5, "x": 0, "y": 2.25}, - {"label": "Q", "matrix": [1, 16], "x": 1.5, "y": 2.25}, - {"label": "W", "matrix": [1, 4], "x": 2.5, "y": 2.25}, - {"label": "E", "matrix": [1, 5], "x": 3.5, "y": 2.25}, - {"label": "R", "matrix": [1, 6], "x": 4.5, "y": 2.25}, - {"label": "T", "matrix": [3, 6], "x": 5.5, "y": 2.25}, - {"label": "Y", "matrix": [3, 7], "x": 6.5, "y": 2.25}, - {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 2.25}, - {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 2.25}, - {"label": "O", "matrix": [1, 3], "x": 9.5, "y": 2.25}, - {"label": "P", "matrix": [1, 9], "x": 10.5, "y": 2.25}, - {"label": "[", "matrix": [3, 9], "x": 11.5, "y": 2.25}, - {"label": "]", "matrix": [3, 8], "x": 12.5, "y": 2.25}, - {"label": "Del", "matrix": [2, 10], "x": 15.25, "y": 2.25}, - {"label": "End", "matrix": [0, 15], "x": 16.25, "y": 2.25}, - {"label": "Page Down", "matrix": [0, 14], "x": 17.25, "y": 2.25}, - {"label": "7", "matrix": [1, 10], "x": 18.5, "y": 2.25}, - {"label": "8", "matrix": [1, 11], "x": 19.5, "y": 2.25}, - {"label": "9", "matrix": [1, 14], "x": 20.5, "y": 2.25}, - {"label": "+", "h": 2, "matrix": [1, 15], "x": 21.5, "y": 2.25}, - {"label": "Caps Lock", "matrix": [3, 4], "w": 1.75, "x": 0, "y": 3.25}, - {"label": "A", "matrix": [7, 16], "x": 1.75, "y": 3.25}, - {"label": "S", "matrix": [7, 4], "x": 2.75, "y": 3.25}, - {"label": "D", "matrix": [7, 5], "x": 3.75, "y": 3.25}, - {"label": "F", "matrix": [7, 6], "x": 4.75, "y": 3.25}, - {"label": "G", "matrix": [5, 6], "x": 5.75, "y": 3.25}, - {"label": "H", "matrix": [5, 7], "x": 6.75, "y": 3.25}, - {"label": "J", "matrix": [7, 7], "x": 7.75, "y": 3.25}, - {"label": "K", "matrix": [7, 8], "x": 8.75, "y": 3.25}, - {"label": "L", "matrix": [7, 3], "x": 9.75, "y": 3.25}, - {"label": ";", "matrix": [7, 9], "x": 10.75, "y": 3.25}, - {"label": "'", "matrix": [5, 9], "x": 11.75, "y": 3.25}, - {"label": "#", "matrix": [1, 2], "x": 12.75, "y": 3.25}, - {"label": "Return", "h": 2, "matrix": [4, 2], "w": 1.25, "x": 13.75, "y": 2.25}, - {"label": "4", "matrix": [3, 10], "x": 18.5, "y": 3.25}, - {"label": "5", "matrix": [3, 11], "x": 19.5, "y": 3.25}, - {"label": "6", "matrix": [3, 14], "x": 20.5, "y": 3.25}, - {"label": "Shift L", "matrix": [3, 13], "w": 1.25, "x": 0, "y": 4.25}, - {"label": "\\", "matrix": [5, 4], "x": 1.25, "y": 4.25}, - {"label": "Z", "matrix": [4, 16], "x": 2.25, "y": 4.25}, - {"label": "X", "matrix": [4, 4], "x": 3.25, "y": 4.25}, - {"label": "C", "matrix": [4, 5], "x": 4.25, "y": 4.25}, - {"label": "V", "matrix": [4, 6], "x": 5.25, "y": 4.25}, - {"label": "B", "matrix": [6, 6], "x": 6.25, "y": 4.25}, - {"label": "N", "matrix": [6, 7], "x": 7.25, "y": 4.25}, - {"label": "M", "matrix": [4, 7], "x": 8.25, "y": 4.25}, - {"label": ",", "matrix": [4, 8], "x": 9.25, "y": 4.25}, - {"label": ".", "matrix": [4, 3], "x": 10.25, "y": 4.25}, - {"label": "/", "matrix": [6, 9], "x": 11.25, "y": 4.25}, - {"label": "Shift R", "matrix": [7, 13], "w": 2.75, "x": 12.25, "y": 4.25}, - {"label": "Up", "matrix": [5, 15], "x": 16.25, "y": 4.25}, - {"label": "1", "matrix": [7, 10], "x": 18.5, "y": 4.25}, - {"label": "2", "matrix": [7, 11], "x": 19.5, "y": 4.25}, - {"label": "3", "matrix": [7, 14], "x": 20.5, "y": 4.25}, - {"label": "Enter", "h": 2, "matrix": [7, 15], "x": 21.5, "y": 4.25}, - {"label": "Control L", "matrix": [2, 1], "w": 1.25, "x": 0, "y": 5.25}, - {"label": "Super L", "matrix": [3, 12], "w": 1.25, "x": 1.25, "y": 5.25}, - {"label": "Alt L", "matrix": [5, 0], "w": 1.25, "x": 2.5, "y": 5.25}, - {"label": " ", "matrix": [5, 10], "w": 6.25, "x": 3.75, "y": 5.25}, - {"label": "Alt R", "matrix": [6, 0], "w": 1.25, "x": 10, "y": 5.25}, - {"label": "Super R", "matrix": [7, 12], "w": 1.25, "x": 11.25, "y": 5.25}, - {"label": "Menu", "matrix": [6, 3], "w": 1.25, "x": 12.5, "y": 5.25}, - {"label": "Control R", "matrix": [4, 1], "w": 1.25, "x": 13.75, "y": 5.25}, - {"label": "Left", "matrix": [6, 15], "x": 15.25, "y": 5.25}, - {"label": "Down", "matrix": [6, 10], "x": 16.25, "y": 5.25}, - {"label": "Right", "matrix": [6, 11], "x": 17.25, "y": 5.25}, - {"label": "0", "matrix": [5, 11], "w": 2, "x": 18.5, "y": 5.25}, - {"label": "Del", "matrix": [5, 14], "x": 20.5, "y": 5.25} + {"matrix": [5, 16], "x": 0, "y": 0}, + {"matrix": [2, 4], "x": 2, "y": 0}, + {"matrix": [2, 5], "x": 3, "y": 0}, + {"matrix": [3, 5], "x": 4, "y": 0}, + {"matrix": [5, 5], "x": 5, "y": 0}, + {"matrix": [0, 1], "x": 6.5, "y": 0}, + {"matrix": [5, 8], "x": 7.5, "y": 0}, + {"matrix": [3, 3], "x": 8.5, "y": 0}, + {"matrix": [2, 3], "x": 9.5, "y": 0}, + {"matrix": [2, 2], "x": 11, "y": 0}, + {"matrix": [0, 2], "x": 12, "y": 0}, + {"matrix": [5, 2], "x": 13, "y": 0}, + {"matrix": [6, 2], "x": 14, "y": 0}, + {"matrix": [0, 0], "x": 15.25, "y": 0}, + {"matrix": [1, 0], "x": 16.25, "y": 0}, + {"matrix": [1, 1], "x": 17.25, "y": 0}, + + {"matrix": [2, 16], "x": 0, "y": 1.25}, + {"matrix": [0, 16], "x": 1, "y": 1.25}, + {"matrix": [0, 4], "x": 2, "y": 1.25}, + {"matrix": [0, 5], "x": 3, "y": 1.25}, + {"matrix": [0, 6], "x": 4, "y": 1.25}, + {"matrix": [2, 6], "x": 5, "y": 1.25}, + {"matrix": [2, 7], "x": 6, "y": 1.25}, + {"matrix": [0, 7], "x": 7, "y": 1.25}, + {"matrix": [0, 8], "x": 8, "y": 1.25}, + {"matrix": [0, 3], "x": 9, "y": 1.25}, + {"matrix": [0, 9], "x": 10, "y": 1.25}, + {"matrix": [2, 9], "x": 11, "y": 1.25}, + {"matrix": [2, 8], "x": 12, "y": 1.25}, + {"matrix": [3, 2], "w": 2, "x": 13, "y": 1.25}, + {"matrix": [2, 11], "x": 15.25, "y": 1.25}, + {"matrix": [2, 15], "x": 16.25, "y": 1.25}, + {"matrix": [2, 14], "x": 17.25, "y": 1.25}, + {"matrix": [4, 10], "x": 18.5, "y": 1.25}, + {"matrix": [4, 11], "x": 19.5, "y": 1.25}, + {"matrix": [4, 14], "x": 20.5, "y": 1.25}, + {"matrix": [6, 14], "x": 21.5, "y": 1.25}, + + {"matrix": [3, 16], "w": 1.5, "x": 0, "y": 2.25}, + {"matrix": [1, 16], "x": 1.5, "y": 2.25}, + {"matrix": [1, 4], "x": 2.5, "y": 2.25}, + {"matrix": [1, 5], "x": 3.5, "y": 2.25}, + {"matrix": [1, 6], "x": 4.5, "y": 2.25}, + {"matrix": [3, 6], "x": 5.5, "y": 2.25}, + {"matrix": [3, 7], "x": 6.5, "y": 2.25}, + {"matrix": [1, 7], "x": 7.5, "y": 2.25}, + {"matrix": [1, 8], "x": 8.5, "y": 2.25}, + {"matrix": [1, 3], "x": 9.5, "y": 2.25}, + {"matrix": [1, 9], "x": 10.5, "y": 2.25}, + {"matrix": [3, 9], "x": 11.5, "y": 2.25}, + {"matrix": [3, 8], "x": 12.5, "y": 2.25}, + {"matrix": [2, 10], "x": 15.25, "y": 2.25}, + {"matrix": [0, 15], "x": 16.25, "y": 2.25}, + {"matrix": [0, 14], "x": 17.25, "y": 2.25}, + {"matrix": [1, 10], "x": 18.5, "y": 2.25}, + {"matrix": [1, 11], "x": 19.5, "y": 2.25}, + {"matrix": [1, 14], "x": 20.5, "y": 2.25}, + {"matrix": [1, 15], "x": 21.5, "y": 2.25, "h": 2}, + + {"matrix": [3, 4], "w": 1.75, "x": 0, "y": 3.25}, + {"matrix": [7, 16], "x": 1.75, "y": 3.25}, + {"matrix": [7, 4], "x": 2.75, "y": 3.25}, + {"matrix": [7, 5], "x": 3.75, "y": 3.25}, + {"matrix": [7, 6], "x": 4.75, "y": 3.25}, + {"matrix": [5, 6], "x": 5.75, "y": 3.25}, + {"matrix": [5, 7], "x": 6.75, "y": 3.25}, + {"matrix": [7, 7], "x": 7.75, "y": 3.25}, + {"matrix": [7, 8], "x": 8.75, "y": 3.25}, + {"matrix": [7, 3], "x": 9.75, "y": 3.25}, + {"matrix": [7, 9], "x": 10.75, "y": 3.25}, + {"matrix": [5, 9], "x": 11.75, "y": 3.25}, + {"matrix": [1, 2], "x": 12.75, "y": 3.25}, + {"matrix": [4, 2], "w": 1.25, "x": 13.75, "y": 2.25, "h": 2}, + {"matrix": [3, 10], "x": 18.5, "y": 3.25}, + {"matrix": [3, 11], "x": 19.5, "y": 3.25}, + {"matrix": [3, 14], "x": 20.5, "y": 3.25}, + + {"matrix": [3, 13], "w": 1.25, "x": 0, "y": 4.25}, + {"matrix": [5, 4], "x": 1.25, "y": 4.25}, + {"matrix": [4, 16], "x": 2.25, "y": 4.25}, + {"matrix": [4, 4], "x": 3.25, "y": 4.25}, + {"matrix": [4, 5], "x": 4.25, "y": 4.25}, + {"matrix": [4, 6], "x": 5.25, "y": 4.25}, + {"matrix": [6, 6], "x": 6.25, "y": 4.25}, + {"matrix": [6, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 7], "x": 8.25, "y": 4.25}, + {"matrix": [4, 8], "x": 9.25, "y": 4.25}, + {"matrix": [4, 3], "x": 10.25, "y": 4.25}, + {"matrix": [6, 9], "x": 11.25, "y": 4.25}, + {"matrix": [7, 13], "w": 2.75, "x": 12.25, "y": 4.25}, + {"matrix": [5, 15], "x": 16.25, "y": 4.25}, + {"matrix": [7, 10], "x": 18.5, "y": 4.25}, + {"matrix": [7, 11], "x": 19.5, "y": 4.25}, + {"matrix": [7, 14], "x": 20.5, "y": 4.25}, + {"matrix": [7, 15], "x": 21.5, "y": 4.25, "h": 2}, + + {"matrix": [2, 1], "w": 1.25, "x": 0, "y": 5.25}, + {"matrix": [3, 12], "w": 1.25, "x": 1.25, "y": 5.25}, + {"matrix": [5, 0], "w": 1.25, "x": 2.5, "y": 5.25}, + {"matrix": [5, 10], "w": 6.25, "x": 3.75, "y": 5.25}, + {"matrix": [6, 0], "w": 1.25, "x": 10, "y": 5.25}, + {"matrix": [7, 12], "w": 1.25, "x": 11.25, "y": 5.25}, + {"matrix": [6, 3], "w": 1.25, "x": 12.5, "y": 5.25}, + {"matrix": [4, 1], "w": 1.25, "x": 13.75, "y": 5.25}, + {"matrix": [6, 15], "x": 15.25, "y": 5.25}, + {"matrix": [6, 10], "x": 16.25, "y": 5.25}, + {"matrix": [6, 11], "x": 17.25, "y": 5.25}, + {"matrix": [5, 11], "w": 2, "x": 18.5, "y": 5.25}, + {"matrix": [5, 14], "x": 20.5, "y": 5.25} ] } } From ea238d5a8a52564e492355e1ab7258d693c0d0f2 Mon Sep 17 00:00:00 2001 From: Ramon Imbao Date: Fri, 21 Mar 2025 05:53:27 +0800 Subject: [PATCH 281/365] Add the plywrks ply8x hotswap variant. (#23558) * Add hotswap variant * Update RGB matrix * Move files around to target develop * Revert rules.mk for keyboards/jaykeeb/joker/rules.mk * Update keyboards/plywrks/ply8x/hotswap/keyboard.json Co-authored-by: Drashna Jaelre * Apply suggestions from code review Co-authored-by: Duncan Sutherland * Add missing community layouts * Delete keyboards/plywrks/ply8x/rules.mk * Update missing keys in RGB matrix * Add missing key in RGB matrix for hotswap ver * Remove via keymaps * Add keyboard alias for plywrks/ply8x to plywrks/ply8x/solder * Fix typo * Fix another typo --------- Co-authored-by: Drashna Jaelre Co-authored-by: Duncan Sutherland --- data/mappings/keyboard_aliases.hjson | 3 + .../plywrks/ply8x/{ => hotswap}/config.h | 0 .../plywrks/ply8x/{ => hotswap}/halconf.h | 0 keyboards/plywrks/ply8x/hotswap/keyboard.json | 560 ++++++++++++++++++ .../ply8x/hotswap/keymaps/default/keymap.c | 32 + .../plywrks/ply8x/{ => hotswap}/mcuconf.h | 0 keyboards/plywrks/ply8x/solder/config.h | 10 + keyboards/plywrks/ply8x/solder/halconf.h | 8 + .../plywrks/ply8x/{ => solder}/keyboard.json | 494 ++++++++++++++- .../{ => solder}/keymaps/default/keymap.c | 0 keyboards/plywrks/ply8x/solder/mcuconf.h | 9 + 11 files changed, 1107 insertions(+), 9 deletions(-) rename keyboards/plywrks/ply8x/{ => hotswap}/config.h (100%) rename keyboards/plywrks/ply8x/{ => hotswap}/halconf.h (100%) create mode 100644 keyboards/plywrks/ply8x/hotswap/keyboard.json create mode 100644 keyboards/plywrks/ply8x/hotswap/keymaps/default/keymap.c rename keyboards/plywrks/ply8x/{ => hotswap}/mcuconf.h (100%) create mode 100644 keyboards/plywrks/ply8x/solder/config.h create mode 100644 keyboards/plywrks/ply8x/solder/halconf.h rename keyboards/plywrks/ply8x/{ => solder}/keyboard.json (65%) rename keyboards/plywrks/ply8x/{ => solder}/keymaps/default/keymap.c (100%) create mode 100644 keyboards/plywrks/ply8x/solder/mcuconf.h diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index b601a427616..c8d9bff052b 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -581,6 +581,9 @@ "ploopyco/trackball": { "target": "ploopyco/trackball/rev1_005" }, + "plywrks/ply8x": { + "target": "plywrks/ply8x/solder" + }, "polilla": { "target": "polilla/rev1" }, diff --git a/keyboards/plywrks/ply8x/config.h b/keyboards/plywrks/ply8x/hotswap/config.h similarity index 100% rename from keyboards/plywrks/ply8x/config.h rename to keyboards/plywrks/ply8x/hotswap/config.h diff --git a/keyboards/plywrks/ply8x/halconf.h b/keyboards/plywrks/ply8x/hotswap/halconf.h similarity index 100% rename from keyboards/plywrks/ply8x/halconf.h rename to keyboards/plywrks/ply8x/hotswap/halconf.h diff --git a/keyboards/plywrks/ply8x/hotswap/keyboard.json b/keyboards/plywrks/ply8x/hotswap/keyboard.json new file mode 100644 index 00000000000..2dc2ac5c351 --- /dev/null +++ b/keyboards/plywrks/ply8x/hotswap/keyboard.json @@ -0,0 +1,560 @@ +{ + "manufacturer": "plywrks", + "keyboard_name": "ply8x", + "maintainer": "ramonimbao", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "rows": ["B2", "B1", "B0", "A7", "A10", "A2"], + "cols": ["A9", "A8", "B12", "B11", "B10", "A6", "A5", "A4", "A15", "C14", "C13", "B9", "B6", "B7", "B5", "B4", "B3"] + }, + "processor": "STM32F072", + "url": "", + "usb": { + "device_version": "1.0.0", + "vid": "0x706C", + "pid": "0x7915" + }, + "ws2812": { + "pin": "B15", + "driver": "spi" + }, + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_rain": true, + "pixel_flow": true, + "pixel_fractal": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "driver": "ws2812", + "layout": [ + {"flags": 2, "x":224, "y":37}, + {"flags": 2, "x":224, "y":43}, + {"flags": 2, "x":218, "y":43}, + {"flags": 2, "x":218, "y":37}, + + {"flags": 2, "matrix": [0, 0], "x":0, "y": 0}, + {"flags": 2, "matrix": [0, 2], "x":26, "y": 0}, + {"flags": 2, "matrix": [0, 3], "x":38, "y": 0}, + {"flags": 2, "matrix": [0, 4], "x":51, "y": 0}, + {"flags": 2, "matrix": [0, 5], "x":64, "y": 0}, + {"flags": 2, "matrix": [0, 6], "x":83, "y": 0}, + {"flags": 2, "matrix": [0, 7], "x":96, "y": 0}, + {"flags": 2, "matrix": [0, 8], "x":109, "y": 0}, + {"flags": 2, "matrix": [0, 9], "x":122, "y": 0}, + {"flags": 2, "matrix": [0,10], "x":141, "y": 0}, + {"flags": 2, "matrix": [0,11], "x":154, "y": 0}, + {"flags": 2, "matrix": [0,12], "x":166, "y": 0}, + {"flags": 2, "matrix": [0,13], "x":179, "y": 0}, + {"flags": 2, "matrix": [0,14], "x":195, "y": 0}, + {"flags": 2, "matrix": [0,15], "x":208, "y": 0}, + {"flags": 2, "matrix": [0,16], "x":221, "y": 0}, + + {"flags": 2, "matrix": [1, 0], "x":0, "y": 15}, + {"flags": 2, "matrix": [1, 1], "x":13, "y": 15}, + {"flags": 2, "matrix": [1, 2], "x":26, "y": 15}, + {"flags": 2, "matrix": [1, 3], "x":38, "y": 15}, + {"flags": 2, "matrix": [1, 4], "x":51, "y": 15}, + {"flags": 2, "matrix": [1, 5], "x":64, "y": 15}, + {"flags": 2, "matrix": [1, 6], "x":77, "y": 15}, + {"flags": 2, "matrix": [1, 7], "x":90, "y": 15}, + {"flags": 2, "matrix": [1, 8], "x":102, "y": 15}, + {"flags": 2, "matrix": [1, 9], "x":115, "y": 15}, + {"flags": 2, "matrix": [1,10], "x":128, "y": 15}, + {"flags": 2, "matrix": [1,11], "x":141, "y": 15}, + {"flags": 2, "matrix": [1,12], "x":154, "y": 15}, + {"flags": 2, "matrix": [1,13], "x":166, "y": 15}, + {"flags": 2, "matrix": [3,13], "x":179, "y": 15}, + {"flags": 2, "matrix": [1,14], "x":195, "y": 15}, + {"flags": 2, "matrix": [1,15], "x":208, "y": 15}, + {"flags": 2, "matrix": [1,16], "x":221, "y": 15}, + + {"flags": 2, "matrix": [2, 0], "x":3, "y": 27}, + {"flags": 2, "matrix": [2, 1], "x":19, "y": 27}, + {"flags": 2, "matrix": [2, 2], "x":32, "y": 27}, + {"flags": 2, "matrix": [2, 3], "x":45, "y": 27}, + {"flags": 2, "matrix": [2, 4], "x":58, "y": 27}, + {"flags": 2, "matrix": [2, 5], "x":70, "y": 27}, + {"flags": 2, "matrix": [2, 6], "x":83, "y": 27}, + {"flags": 2, "matrix": [2, 7], "x":96, "y": 27}, + {"flags": 2, "matrix": [2, 8], "x":109, "y": 27}, + {"flags": 2, "matrix": [2, 9], "x":122, "y": 27}, + {"flags": 2, "matrix": [2,10], "x":134, "y": 27}, + {"flags": 2, "matrix": [2,11], "x":147, "y": 27}, + {"flags": 2, "matrix": [2,12], "x":160, "y": 27}, + {"flags": 2, "matrix": [2,13], "x":176, "y": 27}, + {"flags": 2, "matrix": [2,14], "x":195, "y": 27}, + {"flags": 2, "matrix": [2,15], "x":208, "y": 27}, + {"flags": 2, "matrix": [2,16], "x":221, "y": 27}, + + {"flags": 2, "matrix": [3, 0], "x":5, "y":40}, + {"flags": 2, "matrix": [3, 1], "x":23, "y": 40}, + {"flags": 2, "matrix": [3, 2], "x":36, "y": 40}, + {"flags": 2, "matrix": [3, 3], "x":49, "y": 40}, + {"flags": 2, "matrix": [3, 4], "x":62, "y": 40}, + {"flags": 2, "matrix": [3, 5], "x":75, "y": 40}, + {"flags": 2, "matrix": [3, 6], "x":88, "y": 40}, + {"flags": 2, "matrix": [3, 7], "x":101, "y": 40}, + {"flags": 2, "matrix": [3, 8], "x":114, "y": 40}, + {"flags": 2, "matrix": [3, 9], "x":127, "y": 40}, + {"flags": 2, "matrix": [3,10], "x":140, "y": 40}, + {"flags": 2, "matrix": [3,11], "x":153, "y": 40}, + {"flags": 2, "matrix": [3,12], "x":166, "y": 40}, + + {"flags": 2, "matrix": [4, 0], "x":8, "y": 52}, + {"flags": 2, "matrix": [4, 2], "x":29, "y": 52}, + {"flags": 2, "matrix": [4, 3], "x":42, "y": 52}, + {"flags": 2, "matrix": [4, 4], "x":54, "y": 52}, + {"flags": 2, "matrix": [4, 5], "x":67, "y": 52}, + {"flags": 2, "matrix": [4, 6], "x":80, "y": 52}, + {"flags": 2, "matrix": [4, 7], "x":93, "y": 52}, + {"flags": 2, "matrix": [4, 8], "x":106, "y": 52}, + {"flags": 2, "matrix": [4, 9], "x":118, "y": 52}, + {"flags": 2, "matrix": [4,10], "x":131, "y": 52}, + {"flags": 2, "matrix": [4,11], "x":144, "y": 52}, + {"flags": 2, "matrix": [4,12], "x":162, "y": 52}, + {"flags": 2, "matrix": [4,13], "x":179, "y": 52}, + {"flags": 2, "matrix": [4,15], "x":208, "y": 52}, + + {"flags": 2, "matrix": [5, 0], "x":2, "y": 64}, + {"flags": 2, "matrix": [5, 1], "x":18, "y": 64}, + {"flags": 2, "matrix": [5, 2], "x":34, "y": 64}, + {"flags": 2, "matrix": [5, 7], "x":82, "y": 64}, + {"flags": 2, "matrix": [5,11], "x":146, "y": 64}, + {"flags": 2, "matrix": [5,12], "x":162, "y": 64}, + {"flags": 2, "matrix": [5,13], "x":178, "y": 64}, + {"flags": 2, "matrix": [5,14], "x":195, "y": 64}, + {"flags": 2, "matrix": [5,15], "x":208, "y": 64}, + {"flags": 2, "matrix": [5,16], "x":221, "y": 64} + ] + }, + "community_layouts": ["tkl_ansi_tsangan", "tkl_ansi_tsangan_split_bs_rshift", "tkl_ansi_wkl", "tkl_ansi_wkl_split_bs_rshift"], + "layouts": { + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0}, + {"matrix": [0, 2], "x":2, "y":0}, + {"matrix": [0, 3], "x":3, "y":0}, + {"matrix": [0, 4], "x":4, "y":0}, + {"matrix": [0, 5], "x":5, "y":0}, + {"matrix": [0, 6], "x":6.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0,10], "x":11, "y":0}, + {"matrix": [0,11], "x":12, "y":0}, + {"matrix": [0,12], "x":13, "y":0}, + {"matrix": [0,13], "x":14, "y":0}, + {"matrix": [0,14], "x":15.25, "y":0}, + {"matrix": [0,15], "x":16.25, "y":0}, + {"matrix": [0,16], "x":17.25, "y":0}, + + {"matrix": [1, 0], "x":0, "y":1.25}, + {"matrix": [1, 1], "x":1, "y":1.25}, + {"matrix": [1, 2], "x":2, "y":1.25}, + {"matrix": [1, 3], "x":3, "y":1.25}, + {"matrix": [1, 4], "x":4, "y":1.25}, + {"matrix": [1, 5], "x":5, "y":1.25}, + {"matrix": [1, 6], "x":6, "y":1.25}, + {"matrix": [1, 7], "x":7, "y":1.25}, + {"matrix": [1, 8], "x":8, "y":1.25}, + {"matrix": [1, 9], "x":9, "y":1.25}, + {"matrix": [1,10], "x":10, "y":1.25}, + {"matrix": [1,11], "x":11, "y":1.25}, + {"matrix": [1,12], "x":12, "y":1.25}, + {"matrix": [1,13], "x":13, "y":1.25, "w":2}, + {"matrix": [1,14], "x":15.25, "y":1.25}, + {"matrix": [1,15], "x":16.25, "y":1.25}, + {"matrix": [1,16], "x":17.25, "y":1.25}, + + {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, + {"matrix": [2, 1], "x":1.5, "y":2.25}, + {"matrix": [2, 2], "x":2.5, "y":2.25}, + {"matrix": [2, 3], "x":3.5, "y":2.25}, + {"matrix": [2, 4], "x":4.5, "y":2.25}, + {"matrix": [2, 5], "x":5.5, "y":2.25}, + {"matrix": [2, 6], "x":6.5, "y":2.25}, + {"matrix": [2, 7], "x":7.5, "y":2.25}, + {"matrix": [2, 8], "x":8.5, "y":2.25}, + {"matrix": [2, 9], "x":9.5, "y":2.25}, + {"matrix": [2,10], "x":10.5, "y":2.25}, + {"matrix": [2,11], "x":11.5, "y":2.25}, + {"matrix": [2,12], "x":12.5, "y":2.25}, + {"matrix": [2,13], "x":13.5, "y":2.25, "w":1.5}, + {"matrix": [2,14], "x":15.25, "y":2.25}, + {"matrix": [2,15], "x":16.25, "y":2.25}, + {"matrix": [2,16], "x":17.25, "y":2.25}, + + {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3.25}, + {"matrix": [3, 2], "x":2.75, "y":3.25}, + {"matrix": [3, 3], "x":3.75, "y":3.25}, + {"matrix": [3, 4], "x":4.75, "y":3.25}, + {"matrix": [3, 5], "x":5.75, "y":3.25}, + {"matrix": [3, 6], "x":6.75, "y":3.25}, + {"matrix": [3, 7], "x":7.75, "y":3.25}, + {"matrix": [3, 8], "x":8.75, "y":3.25}, + {"matrix": [3, 9], "x":9.75, "y":3.25}, + {"matrix": [3,10], "x":10.75, "y":3.25}, + {"matrix": [3,11], "x":11.75, "y":3.25}, + {"matrix": [3,12], "x":12.75, "y":3.25, "w":2.25}, + + {"matrix": [4, 0], "x":0, "y":4.25, "w":2.25}, + {"matrix": [4, 2], "x":2.25, "y":4.25}, + {"matrix": [4, 3], "x":3.25, "y":4.25}, + {"matrix": [4, 4], "x":4.25, "y":4.25}, + {"matrix": [4, 5], "x":5.25, "y":4.25}, + {"matrix": [4, 6], "x":6.25, "y":4.25}, + {"matrix": [4, 7], "x":7.25, "y":4.25}, + {"matrix": [4, 8], "x":8.25, "y":4.25}, + {"matrix": [4, 9], "x":9.25, "y":4.25}, + {"matrix": [4,10], "x":10.25, "y":4.25}, + {"matrix": [4,11], "x":11.25, "y":4.25}, + {"matrix": [4,12], "x":12.25, "y":4.25, "w":2.75}, + {"matrix": [4,15], "x":16.25, "y":4.25}, + + {"matrix": [5, 0], "x":0, "y":5.25, "w":1.5}, + {"matrix": [5, 1], "x":1.5, "y":5.25}, + {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.5}, + {"matrix": [5, 7], "x":4, "y":5.25, "w":7}, + {"matrix": [5,11], "x":11, "y":5.25, "w":1.5}, + {"matrix": [5,12], "x":12.5, "y":5.25}, + {"matrix": [5,13], "x":13.5, "y":5.25, "w":1.5}, + {"matrix": [5,14], "x":15.25, "y":5.25}, + {"matrix": [5,15], "x":16.25, "y":5.25}, + {"matrix": [5,16], "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0}, + {"matrix": [0, 2], "x":2, "y":0}, + {"matrix": [0, 3], "x":3, "y":0}, + {"matrix": [0, 4], "x":4, "y":0}, + {"matrix": [0, 5], "x":5, "y":0}, + {"matrix": [0, 6], "x":6.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0,10], "x":11, "y":0}, + {"matrix": [0,11], "x":12, "y":0}, + {"matrix": [0,12], "x":13, "y":0}, + {"matrix": [0,13], "x":14, "y":0}, + {"matrix": [0,14], "x":15.25, "y":0}, + {"matrix": [0,15], "x":16.25, "y":0}, + {"matrix": [0,16], "x":17.25, "y":0}, + + {"matrix": [1, 0], "x":0, "y":1.25}, + {"matrix": [1, 1], "x":1, "y":1.25}, + {"matrix": [1, 2], "x":2, "y":1.25}, + {"matrix": [1, 3], "x":3, "y":1.25}, + {"matrix": [1, 4], "x":4, "y":1.25}, + {"matrix": [1, 5], "x":5, "y":1.25}, + {"matrix": [1, 6], "x":6, "y":1.25}, + {"matrix": [1, 7], "x":7, "y":1.25}, + {"matrix": [1, 8], "x":8, "y":1.25}, + {"matrix": [1, 9], "x":9, "y":1.25}, + {"matrix": [1,10], "x":10, "y":1.25}, + {"matrix": [1,11], "x":11, "y":1.25}, + {"matrix": [1,12], "x":12, "y":1.25}, + {"matrix": [1,13], "x":13, "y":1.25}, + {"matrix": [3,13], "x":14, "y":1.25}, + {"matrix": [1,14], "x":15.25, "y":1.25}, + {"matrix": [1,15], "x":16.25, "y":1.25}, + {"matrix": [1,16], "x":17.25, "y":1.25}, + + {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, + {"matrix": [2, 1], "x":1.5, "y":2.25}, + {"matrix": [2, 2], "x":2.5, "y":2.25}, + {"matrix": [2, 3], "x":3.5, "y":2.25}, + {"matrix": [2, 4], "x":4.5, "y":2.25}, + {"matrix": [2, 5], "x":5.5, "y":2.25}, + {"matrix": [2, 6], "x":6.5, "y":2.25}, + {"matrix": [2, 7], "x":7.5, "y":2.25}, + {"matrix": [2, 8], "x":8.5, "y":2.25}, + {"matrix": [2, 9], "x":9.5, "y":2.25}, + {"matrix": [2,10], "x":10.5, "y":2.25}, + {"matrix": [2,11], "x":11.5, "y":2.25}, + {"matrix": [2,12], "x":12.5, "y":2.25}, + {"matrix": [2,13], "x":13.5, "y":2.25, "w":1.5}, + {"matrix": [2,14], "x":15.25, "y":2.25}, + {"matrix": [2,15], "x":16.25, "y":2.25}, + {"matrix": [2,16], "x":17.25, "y":2.25}, + + {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3.25}, + {"matrix": [3, 2], "x":2.75, "y":3.25}, + {"matrix": [3, 3], "x":3.75, "y":3.25}, + {"matrix": [3, 4], "x":4.75, "y":3.25}, + {"matrix": [3, 5], "x":5.75, "y":3.25}, + {"matrix": [3, 6], "x":6.75, "y":3.25}, + {"matrix": [3, 7], "x":7.75, "y":3.25}, + {"matrix": [3, 8], "x":8.75, "y":3.25}, + {"matrix": [3, 9], "x":9.75, "y":3.25}, + {"matrix": [3,10], "x":10.75, "y":3.25}, + {"matrix": [3,11], "x":11.75, "y":3.25}, + {"matrix": [3,12], "x":12.75, "y":3.25, "w":2.25}, + + {"matrix": [4, 0], "x":0, "y":4.25, "w":2.25}, + {"matrix": [4, 2], "x":2.25, "y":4.25}, + {"matrix": [4, 3], "x":3.25, "y":4.25}, + {"matrix": [4, 4], "x":4.25, "y":4.25}, + {"matrix": [4, 5], "x":5.25, "y":4.25}, + {"matrix": [4, 6], "x":6.25, "y":4.25}, + {"matrix": [4, 7], "x":7.25, "y":4.25}, + {"matrix": [4, 8], "x":8.25, "y":4.25}, + {"matrix": [4, 9], "x":9.25, "y":4.25}, + {"matrix": [4,10], "x":10.25, "y":4.25}, + {"matrix": [4,11], "x":11.25, "y":4.25}, + {"matrix": [4,12], "x":12.25, "y":4.25, "w":1.75}, + {"matrix": [4,13], "x":14, "y":4.25}, + {"matrix": [4,15], "x":16.25, "y":4.25}, + + {"matrix": [5, 0], "x":0, "y":5.25, "w":1.5}, + {"matrix": [5, 1], "x":1.5, "y":5.25}, + {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.5}, + {"matrix": [5, 7], "x":4, "y":5.25, "w":7}, + {"matrix": [5,11], "x":11, "y":5.25, "w":1.5}, + {"matrix": [5,12], "x":12.5, "y":5.25}, + {"matrix": [5,13], "x":13.5, "y":5.25, "w":1.5}, + {"matrix": [5,14], "x":15.25, "y":5.25}, + {"matrix": [5,15], "x":16.25, "y":5.25}, + {"matrix": [5,16], "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_ansi_wkl": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0}, + {"matrix": [0, 2], "x":2, "y":0}, + {"matrix": [0, 3], "x":3, "y":0}, + {"matrix": [0, 4], "x":4, "y":0}, + {"matrix": [0, 5], "x":5, "y":0}, + {"matrix": [0, 6], "x":6.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0,10], "x":11, "y":0}, + {"matrix": [0,11], "x":12, "y":0}, + {"matrix": [0,12], "x":13, "y":0}, + {"matrix": [0,13], "x":14, "y":0}, + {"matrix": [0,14], "x":15.25, "y":0}, + {"matrix": [0,15], "x":16.25, "y":0}, + {"matrix": [0,16], "x":17.25, "y":0}, + + {"matrix": [1, 0], "x":0, "y":1.25}, + {"matrix": [1, 1], "x":1, "y":1.25}, + {"matrix": [1, 2], "x":2, "y":1.25}, + {"matrix": [1, 3], "x":3, "y":1.25}, + {"matrix": [1, 4], "x":4, "y":1.25}, + {"matrix": [1, 5], "x":5, "y":1.25}, + {"matrix": [1, 6], "x":6, "y":1.25}, + {"matrix": [1, 7], "x":7, "y":1.25}, + {"matrix": [1, 8], "x":8, "y":1.25}, + {"matrix": [1, 9], "x":9, "y":1.25}, + {"matrix": [1,10], "x":10, "y":1.25}, + {"matrix": [1,11], "x":11, "y":1.25}, + {"matrix": [1,12], "x":12, "y":1.25}, + {"matrix": [1,13], "x":13, "y":1.25, "w":2}, + {"matrix": [1,14], "x":15.25, "y":1.25}, + {"matrix": [1,15], "x":16.25, "y":1.25}, + {"matrix": [1,16], "x":17.25, "y":1.25}, + + {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, + {"matrix": [2, 1], "x":1.5, "y":2.25}, + {"matrix": [2, 2], "x":2.5, "y":2.25}, + {"matrix": [2, 3], "x":3.5, "y":2.25}, + {"matrix": [2, 4], "x":4.5, "y":2.25}, + {"matrix": [2, 5], "x":5.5, "y":2.25}, + {"matrix": [2, 6], "x":6.5, "y":2.25}, + {"matrix": [2, 7], "x":7.5, "y":2.25}, + {"matrix": [2, 8], "x":8.5, "y":2.25}, + {"matrix": [2, 9], "x":9.5, "y":2.25}, + {"matrix": [2,10], "x":10.5, "y":2.25}, + {"matrix": [2,11], "x":11.5, "y":2.25}, + {"matrix": [2,12], "x":12.5, "y":2.25}, + {"matrix": [2,13], "x":13.5, "y":2.25, "w":1.5}, + {"matrix": [2,14], "x":15.25, "y":2.25}, + {"matrix": [2,15], "x":16.25, "y":2.25}, + {"matrix": [2,16], "x":17.25, "y":2.25}, + + {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3.25}, + {"matrix": [3, 2], "x":2.75, "y":3.25}, + {"matrix": [3, 3], "x":3.75, "y":3.25}, + {"matrix": [3, 4], "x":4.75, "y":3.25}, + {"matrix": [3, 5], "x":5.75, "y":3.25}, + {"matrix": [3, 6], "x":6.75, "y":3.25}, + {"matrix": [3, 7], "x":7.75, "y":3.25}, + {"matrix": [3, 8], "x":8.75, "y":3.25}, + {"matrix": [3, 9], "x":9.75, "y":3.25}, + {"matrix": [3,10], "x":10.75, "y":3.25}, + {"matrix": [3,11], "x":11.75, "y":3.25}, + {"matrix": [3,12], "x":12.75, "y":3.25, "w":2.25}, + + {"matrix": [4, 0], "x":0, "y":4.25, "w":2.25}, + {"matrix": [4, 2], "x":2.25, "y":4.25}, + {"matrix": [4, 3], "x":3.25, "y":4.25}, + {"matrix": [4, 4], "x":4.25, "y":4.25}, + {"matrix": [4, 5], "x":5.25, "y":4.25}, + {"matrix": [4, 6], "x":6.25, "y":4.25}, + {"matrix": [4, 7], "x":7.25, "y":4.25}, + {"matrix": [4, 8], "x":8.25, "y":4.25}, + {"matrix": [4, 9], "x":9.25, "y":4.25}, + {"matrix": [4,10], "x":10.25, "y":4.25}, + {"matrix": [4,11], "x":11.25, "y":4.25}, + {"matrix": [4,12], "x":12.25, "y":4.25, "w":2.75}, + {"matrix": [4,15], "x":16.25, "y":4.25}, + + {"matrix": [5, 0], "x":0, "y":5.25, "w":1.5}, + {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.5}, + {"matrix": [5, 7], "x":4, "y":5.25, "w":7}, + {"matrix": [5,11], "x":11, "y":5.25, "w":1.5}, + {"matrix": [5,13], "x":13.5, "y":5.25, "w":1.5}, + {"matrix": [5,14], "x":15.25, "y":5.25}, + {"matrix": [5,15], "x":16.25, "y":5.25}, + {"matrix": [5,16], "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_ansi_wkl_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0}, + {"matrix": [0, 2], "x":2, "y":0}, + {"matrix": [0, 3], "x":3, "y":0}, + {"matrix": [0, 4], "x":4, "y":0}, + {"matrix": [0, 5], "x":5, "y":0}, + {"matrix": [0, 6], "x":6.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0,10], "x":11, "y":0}, + {"matrix": [0,11], "x":12, "y":0}, + {"matrix": [0,12], "x":13, "y":0}, + {"matrix": [0,13], "x":14, "y":0}, + {"matrix": [0,14], "x":15.25, "y":0}, + {"matrix": [0,15], "x":16.25, "y":0}, + {"matrix": [0,16], "x":17.25, "y":0}, + + {"matrix": [1, 0], "x":0, "y":1.25}, + {"matrix": [1, 1], "x":1, "y":1.25}, + {"matrix": [1, 2], "x":2, "y":1.25}, + {"matrix": [1, 3], "x":3, "y":1.25}, + {"matrix": [1, 4], "x":4, "y":1.25}, + {"matrix": [1, 5], "x":5, "y":1.25}, + {"matrix": [1, 6], "x":6, "y":1.25}, + {"matrix": [1, 7], "x":7, "y":1.25}, + {"matrix": [1, 8], "x":8, "y":1.25}, + {"matrix": [1, 9], "x":9, "y":1.25}, + {"matrix": [1,10], "x":10, "y":1.25}, + {"matrix": [1,11], "x":11, "y":1.25}, + {"matrix": [1,12], "x":12, "y":1.25}, + {"matrix": [1,13], "x":13, "y":1.25}, + {"matrix": [3,13], "x":14, "y":1.25}, + {"matrix": [1,14], "x":15.25, "y":1.25}, + {"matrix": [1,15], "x":16.25, "y":1.25}, + {"matrix": [1,16], "x":17.25, "y":1.25}, + + {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, + {"matrix": [2, 1], "x":1.5, "y":2.25}, + {"matrix": [2, 2], "x":2.5, "y":2.25}, + {"matrix": [2, 3], "x":3.5, "y":2.25}, + {"matrix": [2, 4], "x":4.5, "y":2.25}, + {"matrix": [2, 5], "x":5.5, "y":2.25}, + {"matrix": [2, 6], "x":6.5, "y":2.25}, + {"matrix": [2, 7], "x":7.5, "y":2.25}, + {"matrix": [2, 8], "x":8.5, "y":2.25}, + {"matrix": [2, 9], "x":9.5, "y":2.25}, + {"matrix": [2,10], "x":10.5, "y":2.25}, + {"matrix": [2,11], "x":11.5, "y":2.25}, + {"matrix": [2,12], "x":12.5, "y":2.25}, + {"matrix": [2,13], "x":13.5, "y":2.25, "w":1.5}, + {"matrix": [2,14], "x":15.25, "y":2.25}, + {"matrix": [2,15], "x":16.25, "y":2.25}, + {"matrix": [2,16], "x":17.25, "y":2.25}, + + {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3.25}, + {"matrix": [3, 2], "x":2.75, "y":3.25}, + {"matrix": [3, 3], "x":3.75, "y":3.25}, + {"matrix": [3, 4], "x":4.75, "y":3.25}, + {"matrix": [3, 5], "x":5.75, "y":3.25}, + {"matrix": [3, 6], "x":6.75, "y":3.25}, + {"matrix": [3, 7], "x":7.75, "y":3.25}, + {"matrix": [3, 8], "x":8.75, "y":3.25}, + {"matrix": [3, 9], "x":9.75, "y":3.25}, + {"matrix": [3,10], "x":10.75, "y":3.25}, + {"matrix": [3,11], "x":11.75, "y":3.25}, + {"matrix": [3,12], "x":12.75, "y":3.25, "w":2.25}, + + {"matrix": [4, 0], "x":0, "y":4.25, "w":2.25}, + {"matrix": [4, 2], "x":2.25, "y":4.25}, + {"matrix": [4, 3], "x":3.25, "y":4.25}, + {"matrix": [4, 4], "x":4.25, "y":4.25}, + {"matrix": [4, 5], "x":5.25, "y":4.25}, + {"matrix": [4, 6], "x":6.25, "y":4.25}, + {"matrix": [4, 7], "x":7.25, "y":4.25}, + {"matrix": [4, 8], "x":8.25, "y":4.25}, + {"matrix": [4, 9], "x":9.25, "y":4.25}, + {"matrix": [4,10], "x":10.25, "y":4.25}, + {"matrix": [4,11], "x":11.25, "y":4.25}, + {"matrix": [4,12], "x":12.25, "y":4.25, "w":1.75}, + {"matrix": [4,13], "x":14, "y":4.25}, + {"matrix": [4,15], "x":16.25, "y":4.25}, + + {"matrix": [5, 0], "x":0, "y":5.25, "w":1.5}, + {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.5}, + {"matrix": [5, 7], "x":4, "y":5.25, "w":7}, + {"matrix": [5,11], "x":11, "y":5.25, "w":1.5}, + {"matrix": [5,13], "x":13.5, "y":5.25, "w":1.5}, + {"matrix": [5,14], "x":15.25, "y":5.25}, + {"matrix": [5,15], "x":16.25, "y":5.25}, + {"matrix": [5,16], "x":17.25, "y":5.25} + ] + } + } +} diff --git a/keyboards/plywrks/ply8x/hotswap/keymaps/default/keymap.c b/keyboards/plywrks/ply8x/hotswap/keymaps/default/keymap.c new file mode 100644 index 00000000000..0da2588ea7a --- /dev/null +++ b/keyboards/plywrks/ply8x/hotswap/keymaps/default/keymap.c @@ -0,0 +1,32 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴───┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ + * │Ctrl│GUI │Alt │ │ Alt│ GUI│Ctrl│ │ ← │ ↓ │ → │ + * └────┴────┴────┴─────────────────────────────┴────┴────┴────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_tkl_ansi_tsangan( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/keyboards/plywrks/ply8x/mcuconf.h b/keyboards/plywrks/ply8x/hotswap/mcuconf.h similarity index 100% rename from keyboards/plywrks/ply8x/mcuconf.h rename to keyboards/plywrks/ply8x/hotswap/mcuconf.h diff --git a/keyboards/plywrks/ply8x/solder/config.h b/keyboards/plywrks/ply8x/solder/config.h new file mode 100644 index 00000000000..3fc4de978d7 --- /dev/null +++ b/keyboards/plywrks/ply8x/solder/config.h @@ -0,0 +1,10 @@ +// Copyright 2023 Ramon Imbao (@ramonimbao) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define WS2812_SPI_DRIVER SPID2 +#define WS2812_SPI_MOSI_PAL_MODE 0 +#define WS2812_SPI_SCK_PIN B13 +#define WS2812_SPI_SCK_PAL_MODE 0 +#define WS2812_EXTERNAL_PULLUP diff --git a/keyboards/plywrks/ply8x/solder/halconf.h b/keyboards/plywrks/ply8x/solder/halconf.h new file mode 100644 index 00000000000..e215e323c5d --- /dev/null +++ b/keyboards/plywrks/ply8x/solder/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2023 Ramon Imbao (@ramonimbao) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_SPI TRUE + +#include_next diff --git a/keyboards/plywrks/ply8x/keyboard.json b/keyboards/plywrks/ply8x/solder/keyboard.json similarity index 65% rename from keyboards/plywrks/ply8x/keyboard.json rename to keyboards/plywrks/ply8x/solder/keyboard.json index 7c0717ade00..8bae31a1f17 100644 --- a/keyboards/plywrks/ply8x/keyboard.json +++ b/keyboards/plywrks/ply8x/solder/keyboard.json @@ -21,8 +21,8 @@ "url": "", "usb": { "device_version": "1.0.0", - "pid": "0x7905", - "vid": "0x706C" + "vid": "0x706C", + "pid": "0x7905" }, "ws2812": { "pin": "B15", @@ -76,12 +76,106 @@ }, "driver": "ws2812", "layout": [ - {"flags": 8, "matrix": [3, 0], "x":2, "y":27}, - {"flags": 8, "matrix": [0,15], "x":211, "y":0}, - {"flags": 2, "x":0, "y":0}, - {"flags": 2, "x":10, "y":0}, - {"flags": 2, "x":20, "y":0}, - {"flags": 2, "x":30, "y":0} + {"flags": 8, "matrix": [3, 0], "x":5, "y":40}, + {"flags": 8, "matrix": [0,15], "x":208, "y":0}, + {"flags": 2, "x":224, "y":37}, + {"flags": 2, "x":224, "y":43}, + {"flags": 2, "x":218, "y":43}, + {"flags": 2, "x":218, "y":37}, + + {"flags": 2, "matrix": [0, 0], "x":0, "y": 0}, + {"flags": 2, "matrix": [0, 2], "x":26, "y": 0}, + {"flags": 2, "matrix": [0, 3], "x":38, "y": 0}, + {"flags": 2, "matrix": [0, 4], "x":51, "y": 0}, + {"flags": 2, "matrix": [0, 5], "x":64, "y": 0}, + {"flags": 2, "matrix": [0, 6], "x":83, "y": 0}, + {"flags": 2, "matrix": [0, 7], "x":96, "y": 0}, + {"flags": 2, "matrix": [0, 8], "x":109, "y": 0}, + {"flags": 2, "matrix": [0, 9], "x":122, "y": 0}, + {"flags": 2, "matrix": [0,10], "x":141, "y": 0}, + {"flags": 2, "matrix": [0,11], "x":154, "y": 0}, + {"flags": 2, "matrix": [0,12], "x":166, "y": 0}, + {"flags": 2, "matrix": [0,13], "x":179, "y": 0}, + {"flags": 2, "matrix": [0,14], "x":195, "y": 0}, + {"flags": 2, "matrix": [0,16], "x":221, "y": 0}, + + {"flags": 2, "matrix": [1, 0], "x":0, "y": 15}, + {"flags": 2, "matrix": [1, 1], "x":13, "y": 15}, + {"flags": 2, "matrix": [1, 2], "x":26, "y": 15}, + {"flags": 2, "matrix": [1, 3], "x":38, "y": 15}, + {"flags": 2, "matrix": [1, 4], "x":51, "y": 15}, + {"flags": 2, "matrix": [1, 5], "x":64, "y": 15}, + {"flags": 2, "matrix": [1, 6], "x":77, "y": 15}, + {"flags": 2, "matrix": [1, 7], "x":90, "y": 15}, + {"flags": 2, "matrix": [1, 8], "x":102, "y": 15}, + {"flags": 2, "matrix": [1, 9], "x":115, "y": 15}, + {"flags": 2, "matrix": [1,10], "x":128, "y": 15}, + {"flags": 2, "matrix": [1,11], "x":141, "y": 15}, + {"flags": 2, "matrix": [1,12], "x":154, "y": 15}, + {"flags": 2, "matrix": [1,13], "x":166, "y": 15}, + {"flags": 2, "matrix": [3,13], "x":179, "y": 15}, + {"flags": 2, "matrix": [1,14], "x":195, "y": 15}, + {"flags": 2, "matrix": [1,15], "x":208, "y": 15}, + {"flags": 2, "matrix": [1,16], "x":221, "y": 15}, + + {"flags": 2, "matrix": [2, 0], "x":3, "y": 27}, + {"flags": 2, "matrix": [2, 1], "x":19, "y": 27}, + {"flags": 2, "matrix": [2, 2], "x":32, "y": 27}, + {"flags": 2, "matrix": [2, 3], "x":45, "y": 27}, + {"flags": 2, "matrix": [2, 4], "x":58, "y": 27}, + {"flags": 2, "matrix": [2, 5], "x":70, "y": 27}, + {"flags": 2, "matrix": [2, 6], "x":83, "y": 27}, + {"flags": 2, "matrix": [2, 7], "x":96, "y": 27}, + {"flags": 2, "matrix": [2, 8], "x":109, "y": 27}, + {"flags": 2, "matrix": [2, 9], "x":122, "y": 27}, + {"flags": 2, "matrix": [2,10], "x":134, "y": 27}, + {"flags": 2, "matrix": [2,11], "x":147, "y": 27}, + {"flags": 2, "matrix": [2,12], "x":160, "y": 27}, + {"flags": 2, "matrix": [2,13], "x":176, "y": 27}, + {"flags": 2, "matrix": [2,14], "x":195, "y": 27}, + {"flags": 2, "matrix": [2,15], "x":208, "y": 27}, + {"flags": 2, "matrix": [2,16], "x":221, "y": 27}, + + {"flags": 2, "matrix": [3, 1], "x":23, "y": 40}, + {"flags": 2, "matrix": [3, 2], "x":36, "y": 40}, + {"flags": 2, "matrix": [3, 3], "x":49, "y": 40}, + {"flags": 2, "matrix": [3, 4], "x":62, "y": 40}, + {"flags": 2, "matrix": [3, 5], "x":75, "y": 40}, + {"flags": 2, "matrix": [3, 6], "x":88, "y": 40}, + {"flags": 2, "matrix": [3, 7], "x":101, "y": 40}, + {"flags": 2, "matrix": [3, 8], "x":114, "y": 40}, + {"flags": 2, "matrix": [3, 9], "x":127, "y": 40}, + {"flags": 2, "matrix": [3,10], "x":140, "y": 40}, + {"flags": 2, "matrix": [3,11], "x":153, "y": 40}, + {"flags": 2, "matrix": [3,12], "x":166, "y": 40}, + + {"flags": 2, "matrix": [4, 0], "x":2, "y": 52}, + {"flags": 2, "matrix": [4, 1], "x":16, "y": 52}, + {"flags": 2, "matrix": [4, 2], "x":29, "y": 52}, + {"flags": 2, "matrix": [4, 3], "x":42, "y": 52}, + {"flags": 2, "matrix": [4, 4], "x":54, "y": 52}, + {"flags": 2, "matrix": [4, 5], "x":67, "y": 52}, + {"flags": 2, "matrix": [4, 6], "x":80, "y": 52}, + {"flags": 2, "matrix": [4, 7], "x":93, "y": 52}, + {"flags": 2, "matrix": [4, 8], "x":106, "y": 52}, + {"flags": 2, "matrix": [4, 9], "x":118, "y": 52}, + {"flags": 2, "matrix": [4,10], "x":131, "y": 52}, + {"flags": 2, "matrix": [4,11], "x":144, "y": 52}, + {"flags": 2, "matrix": [4,12], "x":162, "y": 52}, + {"flags": 2, "matrix": [4,13], "x":179, "y": 52}, + {"flags": 2, "matrix": [4,15], "x":208, "y": 52}, + + {"flags": 2, "matrix": [5, 0], "x":2, "y": 64}, + {"flags": 2, "matrix": [5, 1], "x":18, "y": 64}, + {"flags": 2, "matrix": [5, 2], "x":34, "y": 64}, + {"flags": 2, "matrix": [5, 6], "x":82, "y": 64}, + {"flags": 2, "matrix": [5,10], "x":130, "y": 64}, + {"flags": 2, "matrix": [5,11], "x":146, "y": 64}, + {"flags": 2, "matrix": [5,12], "x":162, "y": 64}, + {"flags": 2, "matrix": [5,13], "x":178, "y": 64}, + {"flags": 2, "matrix": [5,14], "x":195, "y": 64}, + {"flags": 2, "matrix": [5,15], "x":208, "y": 64}, + {"flags": 2, "matrix": [5,16], "x":221, "y": 64} ] }, "layout_aliases": { @@ -92,11 +186,15 @@ "tkl_ansi", "tkl_ansi_split_bs_rshift", "tkl_ansi_tsangan", + "tkl_ansi_wkl", "tkl_ansi_tsangan_split_bs_rshift", + "tkl_ansi_wkl_split_bs_rshift", "tkl_iso", "tkl_iso_split_bs_rshift", "tkl_iso_tsangan", - "tkl_iso_tsangan_split_bs_rshift" + "tkl_iso_wkl", + "tkl_iso_tsangan_split_bs_rshift", + "tkl_iso_wkl_split_bs_rshift" ], "layouts": { "LAYOUT_tkl_ansi": { @@ -388,6 +486,99 @@ {"matrix": [5,16], "x":17.25, "y":5.25} ] }, + "LAYOUT_tkl_ansi_wkl": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0}, + {"matrix": [0, 2], "x":2, "y":0}, + {"matrix": [0, 3], "x":3, "y":0}, + {"matrix": [0, 4], "x":4, "y":0}, + {"matrix": [0, 5], "x":5, "y":0}, + {"matrix": [0, 6], "x":6.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0,10], "x":11, "y":0}, + {"matrix": [0,11], "x":12, "y":0}, + {"matrix": [0,12], "x":13, "y":0}, + {"matrix": [0,13], "x":14, "y":0}, + {"matrix": [0,14], "x":15.25, "y":0}, + {"matrix": [0,15], "x":16.25, "y":0}, + {"matrix": [0,16], "x":17.25, "y":0}, + + {"matrix": [1, 0], "x":0, "y":1.25}, + {"matrix": [1, 1], "x":1, "y":1.25}, + {"matrix": [1, 2], "x":2, "y":1.25}, + {"matrix": [1, 3], "x":3, "y":1.25}, + {"matrix": [1, 4], "x":4, "y":1.25}, + {"matrix": [1, 5], "x":5, "y":1.25}, + {"matrix": [1, 6], "x":6, "y":1.25}, + {"matrix": [1, 7], "x":7, "y":1.25}, + {"matrix": [1, 8], "x":8, "y":1.25}, + {"matrix": [1, 9], "x":9, "y":1.25}, + {"matrix": [1,10], "x":10, "y":1.25}, + {"matrix": [1,11], "x":11, "y":1.25}, + {"matrix": [1,12], "x":12, "y":1.25}, + {"matrix": [1,13], "x":13, "y":1.25, "w":2}, + {"matrix": [1,14], "x":15.25, "y":1.25}, + {"matrix": [1,15], "x":16.25, "y":1.25}, + {"matrix": [1,16], "x":17.25, "y":1.25}, + + {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, + {"matrix": [2, 1], "x":1.5, "y":2.25}, + {"matrix": [2, 2], "x":2.5, "y":2.25}, + {"matrix": [2, 3], "x":3.5, "y":2.25}, + {"matrix": [2, 4], "x":4.5, "y":2.25}, + {"matrix": [2, 5], "x":5.5, "y":2.25}, + {"matrix": [2, 6], "x":6.5, "y":2.25}, + {"matrix": [2, 7], "x":7.5, "y":2.25}, + {"matrix": [2, 8], "x":8.5, "y":2.25}, + {"matrix": [2, 9], "x":9.5, "y":2.25}, + {"matrix": [2,10], "x":10.5, "y":2.25}, + {"matrix": [2,11], "x":11.5, "y":2.25}, + {"matrix": [2,12], "x":12.5, "y":2.25}, + {"matrix": [2,13], "x":13.5, "y":2.25, "w":1.5}, + {"matrix": [2,14], "x":15.25, "y":2.25}, + {"matrix": [2,15], "x":16.25, "y":2.25}, + {"matrix": [2,16], "x":17.25, "y":2.25}, + + {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3.25}, + {"matrix": [3, 2], "x":2.75, "y":3.25}, + {"matrix": [3, 3], "x":3.75, "y":3.25}, + {"matrix": [3, 4], "x":4.75, "y":3.25}, + {"matrix": [3, 5], "x":5.75, "y":3.25}, + {"matrix": [3, 6], "x":6.75, "y":3.25}, + {"matrix": [3, 7], "x":7.75, "y":3.25}, + {"matrix": [3, 8], "x":8.75, "y":3.25}, + {"matrix": [3, 9], "x":9.75, "y":3.25}, + {"matrix": [3,10], "x":10.75, "y":3.25}, + {"matrix": [3,11], "x":11.75, "y":3.25}, + {"matrix": [3,12], "x":12.75, "y":3.25, "w":2.25}, + + {"matrix": [4, 0], "x":0, "y":4.25, "w":2.25}, + {"matrix": [4, 2], "x":2.25, "y":4.25}, + {"matrix": [4, 3], "x":3.25, "y":4.25}, + {"matrix": [4, 4], "x":4.25, "y":4.25}, + {"matrix": [4, 5], "x":5.25, "y":4.25}, + {"matrix": [4, 6], "x":6.25, "y":4.25}, + {"matrix": [4, 7], "x":7.25, "y":4.25}, + {"matrix": [4, 8], "x":8.25, "y":4.25}, + {"matrix": [4, 9], "x":9.25, "y":4.25}, + {"matrix": [4,10], "x":10.25, "y":4.25}, + {"matrix": [4,11], "x":11.25, "y":4.25}, + {"matrix": [4,12], "x":12.25, "y":4.25, "w":2.75}, + {"matrix": [4,15], "x":16.25, "y":4.25}, + + {"matrix": [5, 0], "x":0, "y":5.25, "w":1.5}, + {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.5}, + {"matrix": [5, 6], "x":4, "y":5.25, "w":7}, + {"matrix": [5,11], "x":11, "y":5.25, "w":1.5}, + {"matrix": [5,13], "x":13.5, "y":5.25, "w":1.5}, + {"matrix": [5,14], "x":15.25, "y":5.25}, + {"matrix": [5,15], "x":16.25, "y":5.25}, + {"matrix": [5,16], "x":17.25, "y":5.25} + ] + }, "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": { "layout": [ {"matrix": [0, 0], "x":0, "y":0}, @@ -485,6 +676,101 @@ {"matrix": [5,16], "x":17.25, "y":5.25} ] }, + "LAYOUT_tkl_ansi_wkl_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0}, + {"matrix": [0, 2], "x":2, "y":0}, + {"matrix": [0, 3], "x":3, "y":0}, + {"matrix": [0, 4], "x":4, "y":0}, + {"matrix": [0, 5], "x":5, "y":0}, + {"matrix": [0, 6], "x":6.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0,10], "x":11, "y":0}, + {"matrix": [0,11], "x":12, "y":0}, + {"matrix": [0,12], "x":13, "y":0}, + {"matrix": [0,13], "x":14, "y":0}, + {"matrix": [0,14], "x":15.25, "y":0}, + {"matrix": [0,15], "x":16.25, "y":0}, + {"matrix": [0,16], "x":17.25, "y":0}, + + {"matrix": [1, 0], "x":0, "y":1.25}, + {"matrix": [1, 1], "x":1, "y":1.25}, + {"matrix": [1, 2], "x":2, "y":1.25}, + {"matrix": [1, 3], "x":3, "y":1.25}, + {"matrix": [1, 4], "x":4, "y":1.25}, + {"matrix": [1, 5], "x":5, "y":1.25}, + {"matrix": [1, 6], "x":6, "y":1.25}, + {"matrix": [1, 7], "x":7, "y":1.25}, + {"matrix": [1, 8], "x":8, "y":1.25}, + {"matrix": [1, 9], "x":9, "y":1.25}, + {"matrix": [1,10], "x":10, "y":1.25}, + {"matrix": [1,11], "x":11, "y":1.25}, + {"matrix": [1,12], "x":12, "y":1.25}, + {"matrix": [1,13], "x":13, "y":1.25}, + {"matrix": [3,13], "x":14, "y":1.25}, + {"matrix": [1,14], "x":15.25, "y":1.25}, + {"matrix": [1,15], "x":16.25, "y":1.25}, + {"matrix": [1,16], "x":17.25, "y":1.25}, + + {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, + {"matrix": [2, 1], "x":1.5, "y":2.25}, + {"matrix": [2, 2], "x":2.5, "y":2.25}, + {"matrix": [2, 3], "x":3.5, "y":2.25}, + {"matrix": [2, 4], "x":4.5, "y":2.25}, + {"matrix": [2, 5], "x":5.5, "y":2.25}, + {"matrix": [2, 6], "x":6.5, "y":2.25}, + {"matrix": [2, 7], "x":7.5, "y":2.25}, + {"matrix": [2, 8], "x":8.5, "y":2.25}, + {"matrix": [2, 9], "x":9.5, "y":2.25}, + {"matrix": [2,10], "x":10.5, "y":2.25}, + {"matrix": [2,11], "x":11.5, "y":2.25}, + {"matrix": [2,12], "x":12.5, "y":2.25}, + {"matrix": [2,13], "x":13.5, "y":2.25, "w":1.5}, + {"matrix": [2,14], "x":15.25, "y":2.25}, + {"matrix": [2,15], "x":16.25, "y":2.25}, + {"matrix": [2,16], "x":17.25, "y":2.25}, + + {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3.25}, + {"matrix": [3, 2], "x":2.75, "y":3.25}, + {"matrix": [3, 3], "x":3.75, "y":3.25}, + {"matrix": [3, 4], "x":4.75, "y":3.25}, + {"matrix": [3, 5], "x":5.75, "y":3.25}, + {"matrix": [3, 6], "x":6.75, "y":3.25}, + {"matrix": [3, 7], "x":7.75, "y":3.25}, + {"matrix": [3, 8], "x":8.75, "y":3.25}, + {"matrix": [3, 9], "x":9.75, "y":3.25}, + {"matrix": [3,10], "x":10.75, "y":3.25}, + {"matrix": [3,11], "x":11.75, "y":3.25}, + {"matrix": [3,12], "x":12.75, "y":3.25, "w":2.25}, + + {"matrix": [4, 0], "x":0, "y":4.25, "w":2.25}, + {"matrix": [4, 2], "x":2.25, "y":4.25}, + {"matrix": [4, 3], "x":3.25, "y":4.25}, + {"matrix": [4, 4], "x":4.25, "y":4.25}, + {"matrix": [4, 5], "x":5.25, "y":4.25}, + {"matrix": [4, 6], "x":6.25, "y":4.25}, + {"matrix": [4, 7], "x":7.25, "y":4.25}, + {"matrix": [4, 8], "x":8.25, "y":4.25}, + {"matrix": [4, 9], "x":9.25, "y":4.25}, + {"matrix": [4,10], "x":10.25, "y":4.25}, + {"matrix": [4,11], "x":11.25, "y":4.25}, + {"matrix": [4,12], "x":12.25, "y":4.25, "w":1.75}, + {"matrix": [4,13], "x":14, "y":4.25}, + {"matrix": [4,15], "x":16.25, "y":4.25}, + + {"matrix": [5, 0], "x":0, "y":5.25, "w":1.5}, + {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.5}, + {"matrix": [5, 6], "x":4, "y":5.25, "w":7}, + {"matrix": [5,11], "x":11, "y":5.25, "w":1.5}, + {"matrix": [5,13], "x":13.5, "y":5.25, "w":1.5}, + {"matrix": [5,14], "x":15.25, "y":5.25}, + {"matrix": [5,15], "x":16.25, "y":5.25}, + {"matrix": [5,16], "x":17.25, "y":5.25} + ] + }, "LAYOUT_tkl_iso": { "layout": [ {"matrix": [0, 0], "x":0, "y":0}, @@ -777,6 +1063,100 @@ {"matrix": [5,16], "x":17.25, "y":5.25} ] }, + "LAYOUT_tkl_iso_wkl": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0}, + {"matrix": [0, 2], "x":2, "y":0}, + {"matrix": [0, 3], "x":3, "y":0}, + {"matrix": [0, 4], "x":4, "y":0}, + {"matrix": [0, 5], "x":5, "y":0}, + {"matrix": [0, 6], "x":6.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0,10], "x":11, "y":0}, + {"matrix": [0,11], "x":12, "y":0}, + {"matrix": [0,12], "x":13, "y":0}, + {"matrix": [0,13], "x":14, "y":0}, + {"matrix": [0,14], "x":15.25, "y":0}, + {"matrix": [0,15], "x":16.25, "y":0}, + {"matrix": [0,16], "x":17.25, "y":0}, + + {"matrix": [1, 0], "x":0, "y":1.25}, + {"matrix": [1, 1], "x":1, "y":1.25}, + {"matrix": [1, 2], "x":2, "y":1.25}, + {"matrix": [1, 3], "x":3, "y":1.25}, + {"matrix": [1, 4], "x":4, "y":1.25}, + {"matrix": [1, 5], "x":5, "y":1.25}, + {"matrix": [1, 6], "x":6, "y":1.25}, + {"matrix": [1, 7], "x":7, "y":1.25}, + {"matrix": [1, 8], "x":8, "y":1.25}, + {"matrix": [1, 9], "x":9, "y":1.25}, + {"matrix": [1,10], "x":10, "y":1.25}, + {"matrix": [1,11], "x":11, "y":1.25}, + {"matrix": [1,12], "x":12, "y":1.25}, + {"matrix": [1,13], "x":13, "y":1.25, "w":2}, + {"matrix": [1,14], "x":15.25, "y":1.25}, + {"matrix": [1,15], "x":16.25, "y":1.25}, + {"matrix": [1,16], "x":17.25, "y":1.25}, + + {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, + {"matrix": [2, 1], "x":1.5, "y":2.25}, + {"matrix": [2, 2], "x":2.5, "y":2.25}, + {"matrix": [2, 3], "x":3.5, "y":2.25}, + {"matrix": [2, 4], "x":4.5, "y":2.25}, + {"matrix": [2, 5], "x":5.5, "y":2.25}, + {"matrix": [2, 6], "x":6.5, "y":2.25}, + {"matrix": [2, 7], "x":7.5, "y":2.25}, + {"matrix": [2, 8], "x":8.5, "y":2.25}, + {"matrix": [2, 9], "x":9.5, "y":2.25}, + {"matrix": [2,10], "x":10.5, "y":2.25}, + {"matrix": [2,11], "x":11.5, "y":2.25}, + {"matrix": [2,12], "x":12.5, "y":2.25}, + {"matrix": [2,14], "x":15.25, "y":2.25}, + {"matrix": [2,15], "x":16.25, "y":2.25}, + {"matrix": [2,16], "x":17.25, "y":2.25}, + + {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3.25}, + {"matrix": [3, 2], "x":2.75, "y":3.25}, + {"matrix": [3, 3], "x":3.75, "y":3.25}, + {"matrix": [3, 4], "x":4.75, "y":3.25}, + {"matrix": [3, 5], "x":5.75, "y":3.25}, + {"matrix": [3, 6], "x":6.75, "y":3.25}, + {"matrix": [3, 7], "x":7.75, "y":3.25}, + {"matrix": [3, 8], "x":8.75, "y":3.25}, + {"matrix": [3, 9], "x":9.75, "y":3.25}, + {"matrix": [3,10], "x":10.75, "y":3.25}, + {"matrix": [3,11], "x":11.75, "y":3.25}, + {"matrix": [3,12], "x":12.75, "y":3.25}, + {"matrix": [2,13], "x":13.75, "y":2.25, "w":1.25, "h":2}, + + {"matrix": [4, 0], "x":0, "y":4.25, "w":1.25}, + {"matrix": [4, 1], "x":1.25, "y":4.25}, + {"matrix": [4, 2], "x":2.25, "y":4.25}, + {"matrix": [4, 3], "x":3.25, "y":4.25}, + {"matrix": [4, 4], "x":4.25, "y":4.25}, + {"matrix": [4, 5], "x":5.25, "y":4.25}, + {"matrix": [4, 6], "x":6.25, "y":4.25}, + {"matrix": [4, 7], "x":7.25, "y":4.25}, + {"matrix": [4, 8], "x":8.25, "y":4.25}, + {"matrix": [4, 9], "x":9.25, "y":4.25}, + {"matrix": [4,10], "x":10.25, "y":4.25}, + {"matrix": [4,11], "x":11.25, "y":4.25}, + {"matrix": [4,12], "x":12.25, "y":4.25, "w":2.75}, + {"matrix": [4,15], "x":16.25, "y":4.25}, + + {"matrix": [5, 0], "x":0, "y":5.25, "w":1.5}, + {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.5}, + {"matrix": [5, 6], "x":4, "y":5.25, "w":7}, + {"matrix": [5,11], "x":11, "y":5.25, "w":1.5}, + {"matrix": [5,13], "x":13.5, "y":5.25, "w":1.5}, + {"matrix": [5,14], "x":15.25, "y":5.25}, + {"matrix": [5,15], "x":16.25, "y":5.25}, + {"matrix": [5,16], "x":17.25, "y":5.25} + ] + }, "LAYOUT_tkl_iso_tsangan_split_bs_rshift": { "layout": [ {"matrix": [0, 0], "x":0, "y":0}, @@ -875,6 +1255,102 @@ {"matrix": [5,16], "x":17.25, "y":5.25} ] }, + "LAYOUT_tkl_iso_wkl_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0}, + {"matrix": [0, 2], "x":2, "y":0}, + {"matrix": [0, 3], "x":3, "y":0}, + {"matrix": [0, 4], "x":4, "y":0}, + {"matrix": [0, 5], "x":5, "y":0}, + {"matrix": [0, 6], "x":6.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0,10], "x":11, "y":0}, + {"matrix": [0,11], "x":12, "y":0}, + {"matrix": [0,12], "x":13, "y":0}, + {"matrix": [0,13], "x":14, "y":0}, + {"matrix": [0,14], "x":15.25, "y":0}, + {"matrix": [0,15], "x":16.25, "y":0}, + {"matrix": [0,16], "x":17.25, "y":0}, + + {"matrix": [1, 0], "x":0, "y":1.25}, + {"matrix": [1, 1], "x":1, "y":1.25}, + {"matrix": [1, 2], "x":2, "y":1.25}, + {"matrix": [1, 3], "x":3, "y":1.25}, + {"matrix": [1, 4], "x":4, "y":1.25}, + {"matrix": [1, 5], "x":5, "y":1.25}, + {"matrix": [1, 6], "x":6, "y":1.25}, + {"matrix": [1, 7], "x":7, "y":1.25}, + {"matrix": [1, 8], "x":8, "y":1.25}, + {"matrix": [1, 9], "x":9, "y":1.25}, + {"matrix": [1,10], "x":10, "y":1.25}, + {"matrix": [1,11], "x":11, "y":1.25}, + {"matrix": [1,12], "x":12, "y":1.25}, + {"matrix": [1,13], "x":13, "y":1.25}, + {"matrix": [3,13], "x":14, "y":1.25}, + {"matrix": [1,14], "x":15.25, "y":1.25}, + {"matrix": [1,15], "x":16.25, "y":1.25}, + {"matrix": [1,16], "x":17.25, "y":1.25}, + + {"matrix": [2, 0], "x":0, "y":2.25, "w":1.5}, + {"matrix": [2, 1], "x":1.5, "y":2.25}, + {"matrix": [2, 2], "x":2.5, "y":2.25}, + {"matrix": [2, 3], "x":3.5, "y":2.25}, + {"matrix": [2, 4], "x":4.5, "y":2.25}, + {"matrix": [2, 5], "x":5.5, "y":2.25}, + {"matrix": [2, 6], "x":6.5, "y":2.25}, + {"matrix": [2, 7], "x":7.5, "y":2.25}, + {"matrix": [2, 8], "x":8.5, "y":2.25}, + {"matrix": [2, 9], "x":9.5, "y":2.25}, + {"matrix": [2,10], "x":10.5, "y":2.25}, + {"matrix": [2,11], "x":11.5, "y":2.25}, + {"matrix": [2,12], "x":12.5, "y":2.25}, + {"matrix": [2,14], "x":15.25, "y":2.25}, + {"matrix": [2,15], "x":16.25, "y":2.25}, + {"matrix": [2,16], "x":17.25, "y":2.25}, + + {"matrix": [3, 0], "x":0, "y":3.25, "w":1.75}, + {"matrix": [3, 1], "x":1.75, "y":3.25}, + {"matrix": [3, 2], "x":2.75, "y":3.25}, + {"matrix": [3, 3], "x":3.75, "y":3.25}, + {"matrix": [3, 4], "x":4.75, "y":3.25}, + {"matrix": [3, 5], "x":5.75, "y":3.25}, + {"matrix": [3, 6], "x":6.75, "y":3.25}, + {"matrix": [3, 7], "x":7.75, "y":3.25}, + {"matrix": [3, 8], "x":8.75, "y":3.25}, + {"matrix": [3, 9], "x":9.75, "y":3.25}, + {"matrix": [3,10], "x":10.75, "y":3.25}, + {"matrix": [3,11], "x":11.75, "y":3.25}, + {"matrix": [3,12], "x":12.75, "y":3.25}, + {"matrix": [2,13], "x":13.75, "y":2.25, "w":1.25, "h":2}, + + {"matrix": [4, 0], "x":0, "y":4.25, "w":1.25}, + {"matrix": [4, 1], "x":1.25, "y":4.25}, + {"matrix": [4, 2], "x":2.25, "y":4.25}, + {"matrix": [4, 3], "x":3.25, "y":4.25}, + {"matrix": [4, 4], "x":4.25, "y":4.25}, + {"matrix": [4, 5], "x":5.25, "y":4.25}, + {"matrix": [4, 6], "x":6.25, "y":4.25}, + {"matrix": [4, 7], "x":7.25, "y":4.25}, + {"matrix": [4, 8], "x":8.25, "y":4.25}, + {"matrix": [4, 9], "x":9.25, "y":4.25}, + {"matrix": [4,10], "x":10.25, "y":4.25}, + {"matrix": [4,11], "x":11.25, "y":4.25}, + {"matrix": [4,12], "x":12.25, "y":4.25, "w":1.75}, + {"matrix": [4,13], "x":14, "y":4.25}, + {"matrix": [4,15], "x":16.25, "y":4.25}, + + {"matrix": [5, 0], "x":0, "y":5.25, "w":1.5}, + {"matrix": [5, 2], "x":2.5, "y":5.25, "w":1.5}, + {"matrix": [5, 6], "x":4, "y":5.25, "w":7}, + {"matrix": [5,11], "x":11, "y":5.25, "w":1.5}, + {"matrix": [5,13], "x":13.5, "y":5.25, "w":1.5}, + {"matrix": [5,14], "x":15.25, "y":5.25}, + {"matrix": [5,15], "x":16.25, "y":5.25}, + {"matrix": [5,16], "x":17.25, "y":5.25} + ] + }, "LAYOUT_all": { "layout": [ {"matrix": [0, 0], "x":0, "y":0}, diff --git a/keyboards/plywrks/ply8x/keymaps/default/keymap.c b/keyboards/plywrks/ply8x/solder/keymaps/default/keymap.c similarity index 100% rename from keyboards/plywrks/ply8x/keymaps/default/keymap.c rename to keyboards/plywrks/ply8x/solder/keymaps/default/keymap.c diff --git a/keyboards/plywrks/ply8x/solder/mcuconf.h b/keyboards/plywrks/ply8x/solder/mcuconf.h new file mode 100644 index 00000000000..aceb2e3dfc0 --- /dev/null +++ b/keyboards/plywrks/ply8x/solder/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2023 Ramon Imbao (@ramonimbao) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE From 3a8c76fae59387df3435948a424cdd0fcda7d66f Mon Sep 17 00:00:00 2001 From: mikiya418 <64995478+mikiya418@users.noreply.github.com> Date: Fri, 21 Mar 2025 06:54:54 +0900 Subject: [PATCH 282/365] Develop 5keys (#24555) * [Keyboard]Add 5keys * Add files via upload * Delete 5keys.json * Add files via upload * Delete 5keys_default.hex * Add keyboard 5keys * Add Copylight * Update keyboards/5keys/keyboard.json Co-authored-by: Drashna Jaelre * Update keyboards/5keys/keyboard.json Co-authored-by: Drashna Jaelre * Update readme.md --------- Co-authored-by: Drashna Jaelre --- keyboards/5keys/keyboard.json | 34 ++++++++++++++++++++++++ keyboards/5keys/keymaps/default/keymap.c | 21 +++++++++++++++ keyboards/5keys/readme.md | 27 +++++++++++++++++++ 3 files changed, 82 insertions(+) create mode 100644 keyboards/5keys/keyboard.json create mode 100644 keyboards/5keys/keymaps/default/keymap.c create mode 100644 keyboards/5keys/readme.md diff --git a/keyboards/5keys/keyboard.json b/keyboards/5keys/keyboard.json new file mode 100644 index 00000000000..7a40d1014d6 --- /dev/null +++ b/keyboards/5keys/keyboard.json @@ -0,0 +1,34 @@ +{ + "manufacturer": "mikiya418", + "keyboard_name": "5keys", + "maintainer": "mikiya418", + "development_board": "promicro", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": false + }, + "matrix_pins": { + "direct": [ + ["F4","F5","F6","F7","B1"] + ] + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0001", + "vid": "0x4D4B" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix":[0,0], "x":0, "y":0}, + {"matrix":[0,1], "x":1, "y":0}, + {"matrix":[0,2], "x":2, "y":0}, + {"matrix":[0,3], "x":3, "y":0}, + {"matrix":[0,4], "x":4, "y":0} + ] + } + } +} diff --git a/keyboards/5keys/keymaps/default/keymap.c b/keyboards/5keys/keymaps/default/keymap.c new file mode 100644 index 00000000000..878ae4286b9 --- /dev/null +++ b/keyboards/5keys/keymaps/default/keymap.c @@ -0,0 +1,21 @@ +/* Copylight 2024 mikiya418. + * + * This program is free software: you can redistribute it and/or modify it under the terms + * of the GNU General Public License as published by the Free Software Foundation, + * either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with this + * program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_WBAK, KC_WFWD, LSG_T(KC_S), G(KC_L), MO(1) + ) +}; diff --git a/keyboards/5keys/readme.md b/keyboards/5keys/readme.md new file mode 100644 index 00000000000..e14792d82bb --- /dev/null +++ b/keyboards/5keys/readme.md @@ -0,0 +1,27 @@ +# 5keys + +![5keys](https://imgur.com/yOkI4HT) + +This keyboard is a macro keyboard with five keys. + +* Keyboard Maintainer: [mikiya418](https://github.com/mikiya418) +* Hardware Supported: 5keys PCBs, Pro Micro +* Hardware Availability: [Thingiverse](https://www.thingiverse.com/thing:6834908) + +Make example for this keyboard (after setting up your build environment): + + make 5keys:default + +Flashing example for this keyboard: + + make 5keys:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 7fd12c2b98f00b7e70bfc70a74654a23c2b04d16 Mon Sep 17 00:00:00 2001 From: Akshay Atam Date: Thu, 20 Mar 2025 18:00:01 -0400 Subject: [PATCH 283/365] Ducky one2mini ansi tsangan layout (#24909) * Added ANSI Tsangan keymap for Ducky One2 Mini * Updated keyboard.json to support ANSI Tsangan layout for Ducky One2 Mini --- keyboards/ducky/one2mini/1861st/keyboard.json | 69 ++++++++++++++++++ .../one2mini/keymaps/ansi_tsangan/keymap.c | 70 +++++++++++++++++++ 2 files changed, 139 insertions(+) create mode 100644 keyboards/ducky/one2mini/keymaps/ansi_tsangan/keymap.c diff --git a/keyboards/ducky/one2mini/1861st/keyboard.json b/keyboards/ducky/one2mini/1861st/keyboard.json index a39945d68c2..e1ab2188460 100644 --- a/keyboards/ducky/one2mini/1861st/keyboard.json +++ b/keyboards/ducky/one2mini/1861st/keyboard.json @@ -235,6 +235,75 @@ {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} ] + }, + "LAYOUT_60_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 12], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] } } } diff --git a/keyboards/ducky/one2mini/keymaps/ansi_tsangan/keymap.c b/keyboards/ducky/one2mini/keymaps/ansi_tsangan/keymap.c new file mode 100644 index 00000000000..259df16ab15 --- /dev/null +++ b/keyboards/ducky/one2mini/keymaps/ansi_tsangan/keymap.c @@ -0,0 +1,70 @@ +/* Copyright 2019 /u/KeepItUnder + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +// LAYERS +enum Layer { + _QWERTY = 0, // Standard QWERTY layer + _FUNCTION, // Function key layer + _COLOUR // RGB key layer +}; +#define _QW _QWERTY +#define _FN _FUNCTION +#define _CLR _COLOUR + + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────────┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬──────┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴──────┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬────┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ Fn │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴───┴───┼───┴┬────┬┴────┤ + * │Ctrl│GUI │Alt │ │Alt │GUI │Ctrl │ + * └────┴────┴────┴─────────────────────────────┴────┴────┴─────┘ + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = LAYOUT_60_ansi_tsangan( + // 2 3 4 5 6 7 8 9 10 11 12 13 14 + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + + [_FUNCTION] = LAYOUT_60_ansi_tsangan( + // 2 3 4 5 6 7 8 9 10 11 12 13 14 + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, KC_INS, _______, KC_UP, KC_PAUS, KC_PGUP, KC_HOME, KC_PSCR, _______, + _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_SCRL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_END, KC_ENT, + _______, _______, KC_APP, _______, _______, _______, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, + _______, KC_APP, MO(_CLR), _______, KC_APP, _______, _______ + ), + + [_COLOUR] = LAYOUT_60_ansi_tsangan( + // 2 3 4 5 6 7 8 9 10 11 12 13 14 + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, + _______, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, RM_TOGG, _______, _______, _______ + ), +}; From a958276a764af481f5626cafb2f0c6ec00894ff2 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Thu, 20 Mar 2025 15:12:46 -0700 Subject: [PATCH 284/365] Add Super Alt-Tab macro example as module (#24970) * Add Super Alt-Tab macro example as module * Make module more configurable * remove unneeded comments Co-authored-by: jack * Update modules/qmk/super_alt_tab/super_alt_tab.c Co-authored-by: Nick Brassel --------- Co-authored-by: jack Co-authored-by: Nick Brassel --- modules/qmk/super_alt_tab/qmk_module.json | 10 +++++ modules/qmk/super_alt_tab/super_alt_tab.c | 50 +++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 modules/qmk/super_alt_tab/qmk_module.json create mode 100644 modules/qmk/super_alt_tab/super_alt_tab.c diff --git a/modules/qmk/super_alt_tab/qmk_module.json b/modules/qmk/super_alt_tab/qmk_module.json new file mode 100644 index 00000000000..002f7fb69e3 --- /dev/null +++ b/modules/qmk/super_alt_tab/qmk_module.json @@ -0,0 +1,10 @@ +{ + "module_name": "Super Alt Tab", + "maintainer": "QMK Maintainers", + "keycodes": [ + { + "key": "COMMUNITY_MODULE_SUPER_ALT_TAB", + "aliases": ["CM_S_AT"] + } + ] +} diff --git a/modules/qmk/super_alt_tab/super_alt_tab.c b/modules/qmk/super_alt_tab/super_alt_tab.c new file mode 100644 index 00000000000..dfeb4b57730 --- /dev/null +++ b/modules/qmk/super_alt_tab/super_alt_tab.c @@ -0,0 +1,50 @@ +// Copyright 2025 Christopher Courtney, aka Drashna Jael're (@drashna) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +ASSERT_COMMUNITY_MODULES_MIN_API_VERSION(1, 0, 0); + +static bool is_alt_tab_active = false; +static uint16_t alt_tab_timer = 0; + +#ifndef COMMUNITY_MODULE_SUPER_ALT_TAB_TIMEOUT +# define COMMUNITY_MODULE_SUPER_ALT_TAB_TIMEOUT 1000 +#endif // COMMUNITY_MODULE_SUPER_ALT_TAB_TIMEOUT +#ifndef COMMUNITY_MODULE_SUPER_ALT_TAB_MODIFIER +# define COMMUNITY_MODULE_SUPER_ALT_TAB_MODIFIER MOD_LALT +#endif // COMMUNITY_MODULE_SUPER_ALT_TAB_MODIFIER +#ifndef COMMUNITY_MODULE_SUPER_ALT_TAB_KEY +# define COMMUNITY_MODULE_SUPER_ALT_TAB_KEY KC_TAB +#endif // COMMUNITY_MODULE_SUPER_ALT_TAB_KEY + +bool process_record_super_alt_tab(uint16_t keycode, keyrecord_t *record) { + if (!process_record_super_alt_tab_kb(keycode, record)) { + return false; + } + + switch (keycode) { // This will do most of the grunt work with the keycodes. + case COMMUNITY_MODULE_SUPER_ALT_TAB: + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_mods(COMMUNITY_MODULE_SUPER_ALT_TAB_MODIFIER); + } + alt_tab_timer = timer_read(); + register_code(COMMUNITY_MODULE_SUPER_ALT_TAB_KEY); + } else { + unregister_code(COMMUNITY_MODULE_SUPER_ALT_TAB_KEY); + } + break; + } + return true; +} + +void housekeeping_task_super_alt_tab(void) { + if (is_alt_tab_active) { + if (timer_elapsed(alt_tab_timer) > COMMUNITY_MODULE_SUPER_ALT_TAB_TIMEOUT) { + unregister_mods(COMMUNITY_MODULE_SUPER_ALT_TAB_MODIFIER); + is_alt_tab_active = false; + } + } +} From 9f44488bb172f454b231518ddccc580f05784c24 Mon Sep 17 00:00:00 2001 From: Icy Avocado Date: Thu, 20 Mar 2025 16:21:18 -0600 Subject: [PATCH 285/365] Add directpins 21 keys pico (#24919) * Add directpins 21 keys pico - https://learn.adafruit.com/diy-pico-mechanical-keyboard-with-fritzing-circuitpython/21-key-pico-keyboard * Rename from 21keys to pico_pad * Add pico_pad readme * Update bootloader instruction --------- Co-authored-by: Dai --- keyboards/adafruit/pico_pad/keyboard.json | 53 +++++++++++++++++++ .../pico_pad/keymaps/default/keymap.json | 12 +++++ keyboards/adafruit/pico_pad/readme.md | 25 +++++++++ 3 files changed, 90 insertions(+) create mode 100644 keyboards/adafruit/pico_pad/keyboard.json create mode 100644 keyboards/adafruit/pico_pad/keymaps/default/keymap.json create mode 100644 keyboards/adafruit/pico_pad/readme.md diff --git a/keyboards/adafruit/pico_pad/keyboard.json b/keyboards/adafruit/pico_pad/keyboard.json new file mode 100644 index 00000000000..aacb7a9c00a --- /dev/null +++ b/keyboards/adafruit/pico_pad/keyboard.json @@ -0,0 +1,53 @@ +{ + "manufacturer": "Raspberry Pi", + "keyboard_name": "DirectPins Pico Pad 21 keys RP2040", + "maintainer": "icyavocado", + "bootloader": "rp2040", + "usb": { + "vid": "0x2326", + "pid": "0xFEED", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true + }, + "processor": "RP2040", + "matrix_pins": { + "direct": [ + [ "GP0", "GP1", "GP2", "GP3", "GP4", "GP5", "GP6" ], + [ "GP7", "GP8", "GP9", "GP10", "GP11", "GP12", "GP13"], + [ "GP14", "GP16", "GP17", "GP18", "GP19", "GP20", "GP21"] + ] + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "GP0", "x": 0, "y": 0, "matrix": [0, 0]}, + {"label": "GP1", "x": 0, "y": 1, "matrix": [0, 1]}, + {"label": "GP2", "x": 0, "y": 2, "matrix": [0, 2]}, + {"label": "GP3", "x": 0, "y": 3, "matrix": [0, 3]}, + {"label": "GP4", "x": 0, "y": 4, "matrix": [0, 4]}, + {"label": "GP5", "x": 0, "y": 5, "matrix": [0, 5]}, + {"label": "GP6", "x": 0, "y": 6, "matrix": [0, 6]}, + + {"label": "GP7", "x": 1, "y": 0, "matrix": [1, 0]}, + {"label": "GP8", "x": 1, "y": 1, "matrix": [1, 1]}, + {"label": "GP9", "x": 1, "y": 2, "matrix": [1, 2]}, + {"label": "GP10", "x": 1, "y": 3, "matrix": [1, 3]}, + {"label": "GP11", "x": 1, "y": 4, "matrix": [1, 4]}, + {"label": "GP12", "x": 1, "y": 5, "matrix": [1, 5]}, + {"label": "GP13", "x": 1, "y": 6, "matrix": [1, 6]}, + + {"label": "GP14", "x": 2, "y": 0, "matrix": [2, 0]}, + {"label": "GP16", "x": 2, "y": 1, "matrix": [2, 1]}, + {"label": "GP17", "x": 2, "y": 2, "matrix": [2, 2]}, + {"label": "GP18", "x": 2, "y": 3, "matrix": [2, 3]}, + {"label": "GP19", "x": 2, "y": 4, "matrix": [2, 4]}, + {"label": "GP20", "x": 2, "y": 5, "matrix": [2, 5]}, + {"label": "GP21", "x": 2, "y": 6, "matrix": [2, 6]} + ] + } + } +} diff --git a/keyboards/adafruit/pico_pad/keymaps/default/keymap.json b/keyboards/adafruit/pico_pad/keymaps/default/keymap.json new file mode 100644 index 00000000000..33e2979a09d --- /dev/null +++ b/keyboards/adafruit/pico_pad/keymaps/default/keymap.json @@ -0,0 +1,12 @@ +{ + "keyboard": "adafruit/pico_pad", + "keymap": "default", + "layout": "LAYOUT", + "layers": [ + [ + "KC_A", "KC_B", "KC_C", "KC_D", "KC_E", "KC_F", "KC_G", + "KC_H", "KC_I", "KC_J", "KC_K", "KC_L", "KC_M", "KC_N", + "KC_O", "KC_P", "KC_Q", "KC_R", "KC_S", "KC_T", "KC_U" + ] + ] +} diff --git a/keyboards/adafruit/pico_pad/readme.md b/keyboards/adafruit/pico_pad/readme.md new file mode 100644 index 00000000000..4a834fbf4dd --- /dev/null +++ b/keyboards/adafruit/pico_pad/readme.md @@ -0,0 +1,25 @@ +# PICO PAD + +![PICO PAD](https://imgur.com/Nl4tZPl.jpg) + +A RP2040 powered direct pins QMK keyboard in 3x7 layout. + +A guide can be found here: [Pico Mechanical Keyboard](https://learn.adafruit.com/diy-pico-mechanical-keyboard-with-fritzing-circuitpython/overview) + +* Keyboard Maintainer: [IcyAvocado](https://github.com/icyavocado) +* Hardware Supported: [Pico 1 Microcontrollers - RP2040](https://www.raspberrypi.com/documentation/microcontrollers/pico-series.html#pico-1-family) +* Hardware Availability: [The PiHut](https://thepihut.com/products/raspberry-pi-pico) | [Adafruit Parts](https://learn.adafruit.com/diy-pico-mechanical-keyboard-with-fritzing-circuitpython/overview) + +Make example for this board (after setting up your build environment): + +```sh +qmk compile -kb adafruit/pico_pad -km default +``` + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader: +* **Physical reset button**: Briefly press the reset button on the left of the PCB - some may have pads you must short instead +* **Boot button**: Press and hold the BOOTSEL button on the pico when powered on From 894b9c458d91e0ecb5c482e8071315db8842e2b8 Mon Sep 17 00:00:00 2001 From: Max Rumpf Date: Thu, 20 Mar 2025 23:22:02 +0100 Subject: [PATCH 286/365] Enable mouse key feature and disable leader key on Maxr1998/Phoebe (#24982) * Enable mousekey support on Maxr1998/Phoebe * Add GPLv2 license header --- keyboards/maxr1998/phoebe/keyboard.json | 6 ++-- .../maxr1998/phoebe/keymaps/default/config.h | 15 ++++++++++ .../maxr1998/phoebe/keymaps/default/keymap.c | 28 +++++++++++-------- keyboards/maxr1998/phoebe/phoebe.c | 15 ++++++++++ 4 files changed, 50 insertions(+), 14 deletions(-) diff --git a/keyboards/maxr1998/phoebe/keyboard.json b/keyboards/maxr1998/phoebe/keyboard.json index 86407414fa2..d678e3b74e6 100644 --- a/keyboards/maxr1998/phoebe/keyboard.json +++ b/keyboards/maxr1998/phoebe/keyboard.json @@ -9,10 +9,10 @@ "diode_direction": "COL2ROW", "features": { "bootmagic": true, - "nkro": true, - "rgblight": true, "key_lock": true, - "leader": true + "mousekey": true, + "nkro": true, + "rgblight": true }, "qmk": { "locking": { diff --git a/keyboards/maxr1998/phoebe/keymaps/default/config.h b/keyboards/maxr1998/phoebe/keymaps/default/config.h index 593ac440c14..b8f66764682 100644 --- a/keyboards/maxr1998/phoebe/keymaps/default/config.h +++ b/keyboards/maxr1998/phoebe/keymaps/default/config.h @@ -1,3 +1,18 @@ +/* Copyright 2019 Max Rumpf (@Maxr1998) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ #pragma once #define RSPC_KEYS KC_RSFT, KC_RALT, KC_7 diff --git a/keyboards/maxr1998/phoebe/keymaps/default/keymap.c b/keyboards/maxr1998/phoebe/keymaps/default/keymap.c index 8b4f31644c5..de5fe3a67c5 100644 --- a/keyboards/maxr1998/phoebe/keymaps/default/keymap.c +++ b/keyboards/maxr1998/phoebe/keymaps/default/keymap.c @@ -1,3 +1,18 @@ +/* Copyright 2019 Max Rumpf (@Maxr1998) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ #include QMK_KEYBOARD_H #include "keymap_german.h" @@ -35,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, DE_PLUS, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, SC_RSPC, - KC_LCTL, KC_LGUI, KC_LALT, QK_LEAD, KC_SC, KC_SPC, KC_ALGR, KC_FN, KC_LEFT, KC_DOWN, KC_RGHT + KC_LCTL, KC_LGUI, KC_LALT, KC_BTN1, KC_SC, KC_SPC, KC_ALGR, KC_FN, KC_LEFT, KC_DOWN, KC_RGHT ), /* Special characters @@ -77,7 +92,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, DE_UDIA, KC_F9, DE_ODIA, KC_PSCR, KC_DEL, QK_LOCK, DE_ADIA, DE_SS, _______, _______, G_1, _______, RGB_M_P, RGB_M_SW,RGB_M_SN,_______, _______, _______, _______, _______, _______, _______, _______, _______, UG_HUED, UG_TOGG, UG_HUEU, KC_PGUP, _______, - XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_END + XXXXXXX, _______, XXXXXXX, KC_BTN2, XXXXXXX, _______, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_END ), /* Gaming @@ -128,13 +143,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; } return true; -}; - -void leader_end_user(void) { - if (leader_sequence_two_keys(KC_G, KC_P)) { - SEND_STRING("git push"); - } - if (leader_sequence_three_keys(KC_G, KC_F, KC_P)) { - SEND_STRING("git push --force-with-lease"); - } } diff --git a/keyboards/maxr1998/phoebe/phoebe.c b/keyboards/maxr1998/phoebe/phoebe.c index b05f9b32359..0451f9177e1 100644 --- a/keyboards/maxr1998/phoebe/phoebe.c +++ b/keyboards/maxr1998/phoebe/phoebe.c @@ -1,3 +1,18 @@ +/* Copyright 2019 Max Rumpf (@Maxr1998) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ #include "quantum.h" const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {50, 50, 50}; From f6dbb56a10d1886945f2f79f4cc46b7bb56aeab0 Mon Sep 17 00:00:00 2001 From: uv777bk <147540311+uv777bk@users.noreply.github.com> Date: Thu, 20 Mar 2025 18:22:43 -0400 Subject: [PATCH 287/365] Update Lighting Mode Animations on Monsgeek M5 (#24981) Update keyboard.json --- keyboards/monsgeek/m5/keyboard.json | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/keyboards/monsgeek/m5/keyboard.json b/keyboards/monsgeek/m5/keyboard.json index b9ef0099bc3..3927181e2dc 100644 --- a/keyboards/monsgeek/m5/keyboard.json +++ b/keyboards/monsgeek/m5/keyboard.json @@ -49,7 +49,16 @@ "driver": "snled27351", "max_brightness": 180, "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, "cycle_all": true, "cycle_left_right": true, "cycle_up_down": true, @@ -60,12 +69,29 @@ "cycle_spiral": true, "dual_beacon": true, "rainbow_beacon": true, + "rainbow_pinwheels": true, "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_rain": true, + "pixel_flow": true, + "pixel_fractal": true, "typing_heatmap": true, + "digital_rain": true, "solid_reactive_simple": true, "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, "solid_reactive_cross": true, - "multisplash": true + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true }, "layout":[ { "flags": 4, "matrix": [0, 0], "x": 0, "y": 0 }, From f4dfa218ff924f0e9f964f81706474a765c88cc2 Mon Sep 17 00:00:00 2001 From: plodah <127351418+plodah@users.noreply.github.com> Date: Thu, 20 Mar 2025 22:34:14 +0000 Subject: [PATCH 288/365] fix swapped encoder pins on ploopy thumb rev1_001 (#25044) fix swapped pins on ploopy thumb rev1_001 encoder --- keyboards/ploopyco/trackball_thumb/rev1_001/config.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/ploopyco/trackball_thumb/rev1_001/config.h b/keyboards/ploopyco/trackball_thumb/rev1_001/config.h index 108a104cdc1..fb2f9431cc4 100644 --- a/keyboards/ploopyco/trackball_thumb/rev1_001/config.h +++ b/keyboards/ploopyco/trackball_thumb/rev1_001/config.h @@ -26,5 +26,5 @@ /* PMW33XX Settings */ #define PMW33XX_CS_PIN B0 -#define ENCODER_A_PINS { F0 } -#define ENCODER_B_PINS { F4 } +#define ENCODER_A_PINS { F4 } +#define ENCODER_B_PINS { F0 } From c9d62ddc78e879053241202b288d0129073b07dc Mon Sep 17 00:00:00 2001 From: Stefan Kerkmann Date: Fri, 21 Mar 2025 08:47:22 +0100 Subject: [PATCH 289/365] [Core] use `keycode_string` in unit tests (#25042) * tests: use keycode_string feature With a proper keycode to string implementation in qmk there is no need to use the unit tests only implementation anymore. Signed-off-by: Stefan Kerkmann * tests: remove keycode_util feature This feature is no longer used as we switched the tests to the keycode string implementation. Signed-off-by: Stefan Kerkmann --- builddefs/build_full_test.mk | 2 - lib/python/qmk/cli/__init__.py | 1 - lib/python/qmk/cli/generate/keycodes_tests.py | 39 - tests/basic/test_keycode_util.cpp | 52 -- tests/combo/combo_repress/test_combo.cpp | 2 +- tests/combo/test_combo.cpp | 1 - .../alt_repeat_key/test_alt_repeat_key.cpp | 2 +- tests/test_common/build.mk | 1 + tests/test_common/keyboard_report_util.cpp | 8 +- tests/test_common/keycode_table.cpp | 767 ------------------ tests/test_common/keycode_util.cpp | 130 --- tests/test_common/keycode_util.hpp | 6 - tests/test_common/test_driver.hpp | 8 +- tests/test_common/test_keymap_key.hpp | 6 +- util/regen.sh | 1 - 15 files changed, 17 insertions(+), 1009 deletions(-) delete mode 100644 lib/python/qmk/cli/generate/keycodes_tests.py delete mode 100644 tests/basic/test_keycode_util.cpp delete mode 100644 tests/test_common/keycode_table.cpp delete mode 100644 tests/test_common/keycode_util.cpp delete mode 100644 tests/test_common/keycode_util.hpp diff --git a/builddefs/build_full_test.mk b/builddefs/build_full_test.mk index 5cae327c6c7..82bb9387a6e 100644 --- a/builddefs/build_full_test.mk +++ b/builddefs/build_full_test.mk @@ -25,8 +25,6 @@ $(TEST_OUTPUT)_SRC := \ tests/test_common/test_driver.cpp \ tests/test_common/keyboard_report_util.cpp \ tests/test_common/mouse_report_util.cpp \ - tests/test_common/keycode_util.cpp \ - tests/test_common/keycode_table.cpp \ tests/test_common/test_fixture.cpp \ tests/test_common/test_keymap_key.cpp \ tests/test_common/test_logger.cpp \ diff --git a/lib/python/qmk/cli/__init__.py b/lib/python/qmk/cli/__init__.py index cb949d9a71d..26905ec1348 100644 --- a/lib/python/qmk/cli/__init__.py +++ b/lib/python/qmk/cli/__init__.py @@ -58,7 +58,6 @@ subcommands = [ 'qmk.cli.generate.keyboard_c', 'qmk.cli.generate.keyboard_h', 'qmk.cli.generate.keycodes', - 'qmk.cli.generate.keycodes_tests', 'qmk.cli.generate.keymap_h', 'qmk.cli.generate.make_dependencies', 'qmk.cli.generate.rgb_breathe_table', diff --git a/lib/python/qmk/cli/generate/keycodes_tests.py b/lib/python/qmk/cli/generate/keycodes_tests.py deleted file mode 100644 index 453b4693a79..00000000000 --- a/lib/python/qmk/cli/generate/keycodes_tests.py +++ /dev/null @@ -1,39 +0,0 @@ -"""Used by the make system to generate a keycode lookup table from keycodes_{version}.json -""" -from milc import cli - -from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE -from qmk.commands import dump_lines -from qmk.path import normpath -from qmk.keycodes import load_spec - - -def _generate_defines(lines, keycodes): - lines.append('') - lines.append('std::map KEYCODE_ID_TABLE = {') - for key, value in keycodes["keycodes"].items(): - lines.append(f' {{{value.get("key")}, "{value.get("key")}"}},') - lines.append('};') - - -@cli.argument('-v', '--version', arg_only=True, required=True, help='Version of keycodes to generate.') -@cli.argument('-o', '--output', arg_only=True, type=normpath, help='File to write to') -@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") -@cli.subcommand('Used by the make system to generate a keycode lookup table from keycodes_{version}.json', hidden=True) -def generate_keycodes_tests(cli): - """Generates a keycode to identifier lookup table for unit test output. - """ - - # Build the keycodes.h file. - keycodes_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '// clang-format off'] - keycodes_h_lines.append('extern "C" {\n#include \n}') - keycodes_h_lines.append('#include ') - keycodes_h_lines.append('#include ') - keycodes_h_lines.append('#include ') - - keycodes = load_spec(cli.args.version) - - _generate_defines(keycodes_h_lines, keycodes) - - # Show the results - dump_lines(cli.args.output, keycodes_h_lines, cli.args.quiet) diff --git a/tests/basic/test_keycode_util.cpp b/tests/basic/test_keycode_util.cpp deleted file mode 100644 index 693334676eb..00000000000 --- a/tests/basic/test_keycode_util.cpp +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2022 Stefan Kerkmann -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "test_common.hpp" - -class KeycodeToIdentifierSuite : public ::testing::TestWithParam> {}; - -TEST_P(KeycodeToIdentifierSuite, ConversionTests) { - ASSERT_EQ(get_keycode_identifier_or_default(GetParam().first), GetParam().second); -} - -INSTANTIATE_TEST_CASE_P(ConversionTestsP, KeycodeToIdentifierSuite, - // clang-format off -::testing::Values( - // Goto layer - std::make_pair(TO(0), "TO(0)"), - std::make_pair(TO(0x1F), "TO(31)"), - // Momentary switch layer - std::make_pair(MO(0), "MO(0)"), - std::make_pair(MO(0x1F), "MO(31)"), - // Set default layer - std::make_pair(DF(0), "DF(0)"), - std::make_pair(DF(0x1F), "DF(31)"), - // Toggle layer - std::make_pair(TG(0), "TG(0)"), - std::make_pair(TG(0x1F), "TG(31)"), - // One-shot layer - std::make_pair(OSL(0), "OSL(0)"), - std::make_pair(OSL(0x1F), "OSL(31)"), - // One-shot mod - std::make_pair(OSM(MOD_LSFT), "OSM(MOD_LSFT)"), - std::make_pair(OSM(MOD_LSFT | MOD_LCTL), "OSM(MOD_LCTL | MOD_LSFT)"), - // Layer Mod - std::make_pair(LM(0, MOD_LSFT), "LM(0, MOD_LSFT)"), - std::make_pair(LM(0xF, MOD_LSFT), "LM(15, MOD_LSFT)"), - std::make_pair(LM(0xF, MOD_LSFT | MOD_LCTL), "LM(15, MOD_LCTL | MOD_LSFT)"), - // Layer tap toggle - std::make_pair(TT(0), "TT(0)"), - std::make_pair(TT(0x1F), "TT(31)"), - // Layer tap - std::make_pair(LT(0, KC_A), "LT(0, KC_A)"), - std::make_pair(LT(0xF, KC_SPACE), "LT(15, KC_SPACE)"), - std::make_pair(LT(1, KC_SPC), "LT(1, KC_SPACE)"), - // Mod tap - std::make_pair(MT(MOD_LCTL, KC_A), "MT(MOD_LCTL, KC_A)"), - std::make_pair(MT(MOD_LCTL | MOD_LSFT, KC_A), "MT(MOD_LCTL | MOD_LSFT, KC_A)"), - std::make_pair(ALT_T(KC_TAB), "MT(MOD_LALT, KC_TAB)"), - // Mods - std::make_pair(LCTL(KC_A), "QK_MODS(KC_A, QK_LCTL)"), - std::make_pair(HYPR(KC_SPACE), "QK_MODS(KC_SPACE, QK_LCTL | QK_LSFT | QK_LALT | QK_LGUI)") -)); -// clang-format on diff --git a/tests/combo/combo_repress/test_combo.cpp b/tests/combo/combo_repress/test_combo.cpp index 1488d5c1bdc..b1a2d36cb34 100644 --- a/tests/combo/combo_repress/test_combo.cpp +++ b/tests/combo/combo_repress/test_combo.cpp @@ -2,9 +2,9 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include "keyboard_report_util.hpp" -#include "quantum.h" #include "keycode.h" #include "test_common.h" +#include "test_common.hpp" #include "test_driver.hpp" #include "test_fixture.hpp" #include "test_keymap_key.hpp" diff --git a/tests/combo/test_combo.cpp b/tests/combo/test_combo.cpp index ac852f9d166..d78ec55990b 100644 --- a/tests/combo/test_combo.cpp +++ b/tests/combo/test_combo.cpp @@ -3,7 +3,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include "keyboard_report_util.hpp" -#include "quantum.h" #include "keycode.h" #include "test_common.h" #include "test_driver.hpp" diff --git a/tests/repeat_key/alt_repeat_key/test_alt_repeat_key.cpp b/tests/repeat_key/alt_repeat_key/test_alt_repeat_key.cpp index ae525acb455..e2eed3dbb67 100644 --- a/tests/repeat_key/alt_repeat_key/test_alt_repeat_key.cpp +++ b/tests/repeat_key/alt_repeat_key/test_alt_repeat_key.cpp @@ -210,7 +210,7 @@ TEST_F(AltRepeatKey, GetAltRepeatKeyKeycode) { {MO(1), 0, KC_NO}, // clang-format on })) { - SCOPED_TRACE(std::string("Input keycode: ") + get_keycode_identifier_or_default(params.keycode)); + SCOPED_TRACE(std::string("Input keycode: ") + get_keycode_string(params.keycode)); set_last_keycode(params.keycode); set_last_mods(params.mods); diff --git a/tests/test_common/build.mk b/tests/test_common/build.mk index d7423bc78a9..385da7adf9e 100644 --- a/tests/test_common/build.mk +++ b/tests/test_common/build.mk @@ -14,3 +14,4 @@ # along with this program. If not, see . CUSTOM_MATRIX=yes +KEYCODE_STRING_ENABLE = yes diff --git a/tests/test_common/keyboard_report_util.cpp b/tests/test_common/keyboard_report_util.cpp index 18e0574277d..5e40323669f 100644 --- a/tests/test_common/keyboard_report_util.cpp +++ b/tests/test_common/keyboard_report_util.cpp @@ -19,6 +19,10 @@ #include #include +extern "C" { +#include "keycode_string.h" +} + using namespace testing; extern std::map KEYCODE_ID_TABLE; @@ -72,7 +76,7 @@ std::ostream& operator<<(std::ostream& os, const report_keyboard_t& report) { os << "("; for (auto key = keys.cbegin(); key != keys.cend();) { - os << KEYCODE_ID_TABLE.at(*key); + os << get_keycode_string(*key); key++; if (key != keys.cend()) { os << ", "; @@ -82,7 +86,7 @@ std::ostream& operator<<(std::ostream& os, const report_keyboard_t& report) { os << ") ["; for (auto mod = mods.cbegin(); mod != mods.cend();) { - os << KEYCODE_ID_TABLE.at(*mod); + os << get_keycode_string(*mod); mod++; if (mod != mods.cend()) { os << ", "; diff --git a/tests/test_common/keycode_table.cpp b/tests/test_common/keycode_table.cpp deleted file mode 100644 index 26d0919619f..00000000000 --- a/tests/test_common/keycode_table.cpp +++ /dev/null @@ -1,767 +0,0 @@ -// Copyright 2025 QMK -// SPDX-License-Identifier: GPL-2.0-or-later - -/******************************************************************************* - 88888888888 888 d8b .d888 d8b 888 d8b - 888 888 Y8P d88P" Y8P 888 Y8P - 888 888 888 888 - 888 88888b. 888 .d8888b 888888 888 888 .d88b. 888 .d8888b - 888 888 "88b 888 88K 888 888 888 d8P Y8b 888 88K - 888 888 888 888 "Y8888b. 888 888 888 88888888 888 "Y8888b. - 888 888 888 888 X88 888 888 888 Y8b. 888 X88 - 888 888 888 888 88888P' 888 888 888 "Y8888 888 88888P' - 888 888 - 888 888 - 888 888 - .d88b. .d88b. 88888b. .d88b. 888d888 8888b. 888888 .d88b. .d88888 - d88P"88b d8P Y8b 888 "88b d8P Y8b 888P" "88b 888 d8P Y8b d88" 888 - 888 888 88888888 888 888 88888888 888 .d888888 888 88888888 888 888 - Y88b 888 Y8b. 888 888 Y8b. 888 888 888 Y88b. Y8b. Y88b 888 - "Y88888 "Y8888 888 888 "Y8888 888 "Y888888 "Y888 "Y8888 "Y88888 - 888 - Y8b d88P - "Y88P" -*******************************************************************************/ - -// clang-format off -extern "C" { -#include -} -#include -#include -#include - -std::map KEYCODE_ID_TABLE = { - {KC_NO, "KC_NO"}, - {KC_TRANSPARENT, "KC_TRANSPARENT"}, - {KC_A, "KC_A"}, - {KC_B, "KC_B"}, - {KC_C, "KC_C"}, - {KC_D, "KC_D"}, - {KC_E, "KC_E"}, - {KC_F, "KC_F"}, - {KC_G, "KC_G"}, - {KC_H, "KC_H"}, - {KC_I, "KC_I"}, - {KC_J, "KC_J"}, - {KC_K, "KC_K"}, - {KC_L, "KC_L"}, - {KC_M, "KC_M"}, - {KC_N, "KC_N"}, - {KC_O, "KC_O"}, - {KC_P, "KC_P"}, - {KC_Q, "KC_Q"}, - {KC_R, "KC_R"}, - {KC_S, "KC_S"}, - {KC_T, "KC_T"}, - {KC_U, "KC_U"}, - {KC_V, "KC_V"}, - {KC_W, "KC_W"}, - {KC_X, "KC_X"}, - {KC_Y, "KC_Y"}, - {KC_Z, "KC_Z"}, - {KC_1, "KC_1"}, - {KC_2, "KC_2"}, - {KC_3, "KC_3"}, - {KC_4, "KC_4"}, - {KC_5, "KC_5"}, - {KC_6, "KC_6"}, - {KC_7, "KC_7"}, - {KC_8, "KC_8"}, - {KC_9, "KC_9"}, - {KC_0, "KC_0"}, - {KC_ENTER, "KC_ENTER"}, - {KC_ESCAPE, "KC_ESCAPE"}, - {KC_BACKSPACE, "KC_BACKSPACE"}, - {KC_TAB, "KC_TAB"}, - {KC_SPACE, "KC_SPACE"}, - {KC_MINUS, "KC_MINUS"}, - {KC_EQUAL, "KC_EQUAL"}, - {KC_LEFT_BRACKET, "KC_LEFT_BRACKET"}, - {KC_RIGHT_BRACKET, "KC_RIGHT_BRACKET"}, - {KC_BACKSLASH, "KC_BACKSLASH"}, - {KC_NONUS_HASH, "KC_NONUS_HASH"}, - {KC_SEMICOLON, "KC_SEMICOLON"}, - {KC_QUOTE, "KC_QUOTE"}, - {KC_GRAVE, "KC_GRAVE"}, - {KC_COMMA, "KC_COMMA"}, - {KC_DOT, "KC_DOT"}, - {KC_SLASH, "KC_SLASH"}, - {KC_CAPS_LOCK, "KC_CAPS_LOCK"}, - {KC_F1, "KC_F1"}, - {KC_F2, "KC_F2"}, - {KC_F3, "KC_F3"}, - {KC_F4, "KC_F4"}, - {KC_F5, "KC_F5"}, - {KC_F6, "KC_F6"}, - {KC_F7, "KC_F7"}, - {KC_F8, "KC_F8"}, - {KC_F9, "KC_F9"}, - {KC_F10, "KC_F10"}, - {KC_F11, "KC_F11"}, - {KC_F12, "KC_F12"}, - {KC_PRINT_SCREEN, "KC_PRINT_SCREEN"}, - {KC_SCROLL_LOCK, "KC_SCROLL_LOCK"}, - {KC_PAUSE, "KC_PAUSE"}, - {KC_INSERT, "KC_INSERT"}, - {KC_HOME, "KC_HOME"}, - {KC_PAGE_UP, "KC_PAGE_UP"}, - {KC_DELETE, "KC_DELETE"}, - {KC_END, "KC_END"}, - {KC_PAGE_DOWN, "KC_PAGE_DOWN"}, - {KC_RIGHT, "KC_RIGHT"}, - {KC_LEFT, "KC_LEFT"}, - {KC_DOWN, "KC_DOWN"}, - {KC_UP, "KC_UP"}, - {KC_NUM_LOCK, "KC_NUM_LOCK"}, - {KC_KP_SLASH, "KC_KP_SLASH"}, - {KC_KP_ASTERISK, "KC_KP_ASTERISK"}, - {KC_KP_MINUS, "KC_KP_MINUS"}, - {KC_KP_PLUS, "KC_KP_PLUS"}, - {KC_KP_ENTER, "KC_KP_ENTER"}, - {KC_KP_1, "KC_KP_1"}, - {KC_KP_2, "KC_KP_2"}, - {KC_KP_3, "KC_KP_3"}, - {KC_KP_4, "KC_KP_4"}, - {KC_KP_5, "KC_KP_5"}, - {KC_KP_6, "KC_KP_6"}, - {KC_KP_7, "KC_KP_7"}, - {KC_KP_8, "KC_KP_8"}, - {KC_KP_9, "KC_KP_9"}, - {KC_KP_0, "KC_KP_0"}, - {KC_KP_DOT, "KC_KP_DOT"}, - {KC_NONUS_BACKSLASH, "KC_NONUS_BACKSLASH"}, - {KC_APPLICATION, "KC_APPLICATION"}, - {KC_KB_POWER, "KC_KB_POWER"}, - {KC_KP_EQUAL, "KC_KP_EQUAL"}, - {KC_F13, "KC_F13"}, - {KC_F14, "KC_F14"}, - {KC_F15, "KC_F15"}, - {KC_F16, "KC_F16"}, - {KC_F17, "KC_F17"}, - {KC_F18, "KC_F18"}, - {KC_F19, "KC_F19"}, - {KC_F20, "KC_F20"}, - {KC_F21, "KC_F21"}, - {KC_F22, "KC_F22"}, - {KC_F23, "KC_F23"}, - {KC_F24, "KC_F24"}, - {KC_EXECUTE, "KC_EXECUTE"}, - {KC_HELP, "KC_HELP"}, - {KC_MENU, "KC_MENU"}, - {KC_SELECT, "KC_SELECT"}, - {KC_STOP, "KC_STOP"}, - {KC_AGAIN, "KC_AGAIN"}, - {KC_UNDO, "KC_UNDO"}, - {KC_CUT, "KC_CUT"}, - {KC_COPY, "KC_COPY"}, - {KC_PASTE, "KC_PASTE"}, - {KC_FIND, "KC_FIND"}, - {KC_KB_MUTE, "KC_KB_MUTE"}, - {KC_KB_VOLUME_UP, "KC_KB_VOLUME_UP"}, - {KC_KB_VOLUME_DOWN, "KC_KB_VOLUME_DOWN"}, - {KC_LOCKING_CAPS_LOCK, "KC_LOCKING_CAPS_LOCK"}, - {KC_LOCKING_NUM_LOCK, "KC_LOCKING_NUM_LOCK"}, - {KC_LOCKING_SCROLL_LOCK, "KC_LOCKING_SCROLL_LOCK"}, - {KC_KP_COMMA, "KC_KP_COMMA"}, - {KC_KP_EQUAL_AS400, "KC_KP_EQUAL_AS400"}, - {KC_INTERNATIONAL_1, "KC_INTERNATIONAL_1"}, - {KC_INTERNATIONAL_2, "KC_INTERNATIONAL_2"}, - {KC_INTERNATIONAL_3, "KC_INTERNATIONAL_3"}, - {KC_INTERNATIONAL_4, "KC_INTERNATIONAL_4"}, - {KC_INTERNATIONAL_5, "KC_INTERNATIONAL_5"}, - {KC_INTERNATIONAL_6, "KC_INTERNATIONAL_6"}, - {KC_INTERNATIONAL_7, "KC_INTERNATIONAL_7"}, - {KC_INTERNATIONAL_8, "KC_INTERNATIONAL_8"}, - {KC_INTERNATIONAL_9, "KC_INTERNATIONAL_9"}, - {KC_LANGUAGE_1, "KC_LANGUAGE_1"}, - {KC_LANGUAGE_2, "KC_LANGUAGE_2"}, - {KC_LANGUAGE_3, "KC_LANGUAGE_3"}, - {KC_LANGUAGE_4, "KC_LANGUAGE_4"}, - {KC_LANGUAGE_5, "KC_LANGUAGE_5"}, - {KC_LANGUAGE_6, "KC_LANGUAGE_6"}, - {KC_LANGUAGE_7, "KC_LANGUAGE_7"}, - {KC_LANGUAGE_8, "KC_LANGUAGE_8"}, - {KC_LANGUAGE_9, "KC_LANGUAGE_9"}, - {KC_ALTERNATE_ERASE, "KC_ALTERNATE_ERASE"}, - {KC_SYSTEM_REQUEST, "KC_SYSTEM_REQUEST"}, - {KC_CANCEL, "KC_CANCEL"}, - {KC_CLEAR, "KC_CLEAR"}, - {KC_PRIOR, "KC_PRIOR"}, - {KC_RETURN, "KC_RETURN"}, - {KC_SEPARATOR, "KC_SEPARATOR"}, - {KC_OUT, "KC_OUT"}, - {KC_OPER, "KC_OPER"}, - {KC_CLEAR_AGAIN, "KC_CLEAR_AGAIN"}, - {KC_CRSEL, "KC_CRSEL"}, - {KC_EXSEL, "KC_EXSEL"}, - {KC_SYSTEM_POWER, "KC_SYSTEM_POWER"}, - {KC_SYSTEM_SLEEP, "KC_SYSTEM_SLEEP"}, - {KC_SYSTEM_WAKE, "KC_SYSTEM_WAKE"}, - {KC_AUDIO_MUTE, "KC_AUDIO_MUTE"}, - {KC_AUDIO_VOL_UP, "KC_AUDIO_VOL_UP"}, - {KC_AUDIO_VOL_DOWN, "KC_AUDIO_VOL_DOWN"}, - {KC_MEDIA_NEXT_TRACK, "KC_MEDIA_NEXT_TRACK"}, - {KC_MEDIA_PREV_TRACK, "KC_MEDIA_PREV_TRACK"}, - {KC_MEDIA_STOP, "KC_MEDIA_STOP"}, - {KC_MEDIA_PLAY_PAUSE, "KC_MEDIA_PLAY_PAUSE"}, - {KC_MEDIA_SELECT, "KC_MEDIA_SELECT"}, - {KC_MEDIA_EJECT, "KC_MEDIA_EJECT"}, - {KC_MAIL, "KC_MAIL"}, - {KC_CALCULATOR, "KC_CALCULATOR"}, - {KC_MY_COMPUTER, "KC_MY_COMPUTER"}, - {KC_WWW_SEARCH, "KC_WWW_SEARCH"}, - {KC_WWW_HOME, "KC_WWW_HOME"}, - {KC_WWW_BACK, "KC_WWW_BACK"}, - {KC_WWW_FORWARD, "KC_WWW_FORWARD"}, - {KC_WWW_STOP, "KC_WWW_STOP"}, - {KC_WWW_REFRESH, "KC_WWW_REFRESH"}, - {KC_WWW_FAVORITES, "KC_WWW_FAVORITES"}, - {KC_MEDIA_FAST_FORWARD, "KC_MEDIA_FAST_FORWARD"}, - {KC_MEDIA_REWIND, "KC_MEDIA_REWIND"}, - {KC_BRIGHTNESS_UP, "KC_BRIGHTNESS_UP"}, - {KC_BRIGHTNESS_DOWN, "KC_BRIGHTNESS_DOWN"}, - {KC_CONTROL_PANEL, "KC_CONTROL_PANEL"}, - {KC_ASSISTANT, "KC_ASSISTANT"}, - {KC_MISSION_CONTROL, "KC_MISSION_CONTROL"}, - {KC_LAUNCHPAD, "KC_LAUNCHPAD"}, - {QK_MOUSE_CURSOR_UP, "QK_MOUSE_CURSOR_UP"}, - {QK_MOUSE_CURSOR_DOWN, "QK_MOUSE_CURSOR_DOWN"}, - {QK_MOUSE_CURSOR_LEFT, "QK_MOUSE_CURSOR_LEFT"}, - {QK_MOUSE_CURSOR_RIGHT, "QK_MOUSE_CURSOR_RIGHT"}, - {QK_MOUSE_BUTTON_1, "QK_MOUSE_BUTTON_1"}, - {QK_MOUSE_BUTTON_2, "QK_MOUSE_BUTTON_2"}, - {QK_MOUSE_BUTTON_3, "QK_MOUSE_BUTTON_3"}, - {QK_MOUSE_BUTTON_4, "QK_MOUSE_BUTTON_4"}, - {QK_MOUSE_BUTTON_5, "QK_MOUSE_BUTTON_5"}, - {QK_MOUSE_BUTTON_6, "QK_MOUSE_BUTTON_6"}, - {QK_MOUSE_BUTTON_7, "QK_MOUSE_BUTTON_7"}, - {QK_MOUSE_BUTTON_8, "QK_MOUSE_BUTTON_8"}, - {QK_MOUSE_WHEEL_UP, "QK_MOUSE_WHEEL_UP"}, - {QK_MOUSE_WHEEL_DOWN, "QK_MOUSE_WHEEL_DOWN"}, - {QK_MOUSE_WHEEL_LEFT, "QK_MOUSE_WHEEL_LEFT"}, - {QK_MOUSE_WHEEL_RIGHT, "QK_MOUSE_WHEEL_RIGHT"}, - {QK_MOUSE_ACCELERATION_0, "QK_MOUSE_ACCELERATION_0"}, - {QK_MOUSE_ACCELERATION_1, "QK_MOUSE_ACCELERATION_1"}, - {QK_MOUSE_ACCELERATION_2, "QK_MOUSE_ACCELERATION_2"}, - {KC_LEFT_CTRL, "KC_LEFT_CTRL"}, - {KC_LEFT_SHIFT, "KC_LEFT_SHIFT"}, - {KC_LEFT_ALT, "KC_LEFT_ALT"}, - {KC_LEFT_GUI, "KC_LEFT_GUI"}, - {KC_RIGHT_CTRL, "KC_RIGHT_CTRL"}, - {KC_RIGHT_SHIFT, "KC_RIGHT_SHIFT"}, - {KC_RIGHT_ALT, "KC_RIGHT_ALT"}, - {KC_RIGHT_GUI, "KC_RIGHT_GUI"}, - {QK_SWAP_HANDS_TOGGLE, "QK_SWAP_HANDS_TOGGLE"}, - {QK_SWAP_HANDS_TAP_TOGGLE, "QK_SWAP_HANDS_TAP_TOGGLE"}, - {QK_SWAP_HANDS_MOMENTARY_ON, "QK_SWAP_HANDS_MOMENTARY_ON"}, - {QK_SWAP_HANDS_MOMENTARY_OFF, "QK_SWAP_HANDS_MOMENTARY_OFF"}, - {QK_SWAP_HANDS_OFF, "QK_SWAP_HANDS_OFF"}, - {QK_SWAP_HANDS_ON, "QK_SWAP_HANDS_ON"}, - {QK_SWAP_HANDS_ONE_SHOT, "QK_SWAP_HANDS_ONE_SHOT"}, - {QK_MAGIC_SWAP_CONTROL_CAPS_LOCK, "QK_MAGIC_SWAP_CONTROL_CAPS_LOCK"}, - {QK_MAGIC_UNSWAP_CONTROL_CAPS_LOCK, "QK_MAGIC_UNSWAP_CONTROL_CAPS_LOCK"}, - {QK_MAGIC_TOGGLE_CONTROL_CAPS_LOCK, "QK_MAGIC_TOGGLE_CONTROL_CAPS_LOCK"}, - {QK_MAGIC_CAPS_LOCK_AS_CONTROL_OFF, "QK_MAGIC_CAPS_LOCK_AS_CONTROL_OFF"}, - {QK_MAGIC_CAPS_LOCK_AS_CONTROL_ON, "QK_MAGIC_CAPS_LOCK_AS_CONTROL_ON"}, - {QK_MAGIC_SWAP_LALT_LGUI, "QK_MAGIC_SWAP_LALT_LGUI"}, - {QK_MAGIC_UNSWAP_LALT_LGUI, "QK_MAGIC_UNSWAP_LALT_LGUI"}, - {QK_MAGIC_SWAP_RALT_RGUI, "QK_MAGIC_SWAP_RALT_RGUI"}, - {QK_MAGIC_UNSWAP_RALT_RGUI, "QK_MAGIC_UNSWAP_RALT_RGUI"}, - {QK_MAGIC_GUI_ON, "QK_MAGIC_GUI_ON"}, - {QK_MAGIC_GUI_OFF, "QK_MAGIC_GUI_OFF"}, - {QK_MAGIC_TOGGLE_GUI, "QK_MAGIC_TOGGLE_GUI"}, - {QK_MAGIC_SWAP_GRAVE_ESC, "QK_MAGIC_SWAP_GRAVE_ESC"}, - {QK_MAGIC_UNSWAP_GRAVE_ESC, "QK_MAGIC_UNSWAP_GRAVE_ESC"}, - {QK_MAGIC_SWAP_BACKSLASH_BACKSPACE, "QK_MAGIC_SWAP_BACKSLASH_BACKSPACE"}, - {QK_MAGIC_UNSWAP_BACKSLASH_BACKSPACE, "QK_MAGIC_UNSWAP_BACKSLASH_BACKSPACE"}, - {QK_MAGIC_TOGGLE_BACKSLASH_BACKSPACE, "QK_MAGIC_TOGGLE_BACKSLASH_BACKSPACE"}, - {QK_MAGIC_NKRO_ON, "QK_MAGIC_NKRO_ON"}, - {QK_MAGIC_NKRO_OFF, "QK_MAGIC_NKRO_OFF"}, - {QK_MAGIC_TOGGLE_NKRO, "QK_MAGIC_TOGGLE_NKRO"}, - {QK_MAGIC_SWAP_ALT_GUI, "QK_MAGIC_SWAP_ALT_GUI"}, - {QK_MAGIC_UNSWAP_ALT_GUI, "QK_MAGIC_UNSWAP_ALT_GUI"}, - {QK_MAGIC_TOGGLE_ALT_GUI, "QK_MAGIC_TOGGLE_ALT_GUI"}, - {QK_MAGIC_SWAP_LCTL_LGUI, "QK_MAGIC_SWAP_LCTL_LGUI"}, - {QK_MAGIC_UNSWAP_LCTL_LGUI, "QK_MAGIC_UNSWAP_LCTL_LGUI"}, - {QK_MAGIC_SWAP_RCTL_RGUI, "QK_MAGIC_SWAP_RCTL_RGUI"}, - {QK_MAGIC_UNSWAP_RCTL_RGUI, "QK_MAGIC_UNSWAP_RCTL_RGUI"}, - {QK_MAGIC_SWAP_CTL_GUI, "QK_MAGIC_SWAP_CTL_GUI"}, - {QK_MAGIC_UNSWAP_CTL_GUI, "QK_MAGIC_UNSWAP_CTL_GUI"}, - {QK_MAGIC_TOGGLE_CTL_GUI, "QK_MAGIC_TOGGLE_CTL_GUI"}, - {QK_MAGIC_EE_HANDS_LEFT, "QK_MAGIC_EE_HANDS_LEFT"}, - {QK_MAGIC_EE_HANDS_RIGHT, "QK_MAGIC_EE_HANDS_RIGHT"}, - {QK_MAGIC_SWAP_ESCAPE_CAPS_LOCK, "QK_MAGIC_SWAP_ESCAPE_CAPS_LOCK"}, - {QK_MAGIC_UNSWAP_ESCAPE_CAPS_LOCK, "QK_MAGIC_UNSWAP_ESCAPE_CAPS_LOCK"}, - {QK_MAGIC_TOGGLE_ESCAPE_CAPS_LOCK, "QK_MAGIC_TOGGLE_ESCAPE_CAPS_LOCK"}, - {QK_MIDI_ON, "QK_MIDI_ON"}, - {QK_MIDI_OFF, "QK_MIDI_OFF"}, - {QK_MIDI_TOGGLE, "QK_MIDI_TOGGLE"}, - {QK_MIDI_NOTE_C_0, "QK_MIDI_NOTE_C_0"}, - {QK_MIDI_NOTE_C_SHARP_0, "QK_MIDI_NOTE_C_SHARP_0"}, - {QK_MIDI_NOTE_D_0, "QK_MIDI_NOTE_D_0"}, - {QK_MIDI_NOTE_D_SHARP_0, "QK_MIDI_NOTE_D_SHARP_0"}, - {QK_MIDI_NOTE_E_0, "QK_MIDI_NOTE_E_0"}, - {QK_MIDI_NOTE_F_0, "QK_MIDI_NOTE_F_0"}, - {QK_MIDI_NOTE_F_SHARP_0, "QK_MIDI_NOTE_F_SHARP_0"}, - {QK_MIDI_NOTE_G_0, "QK_MIDI_NOTE_G_0"}, - {QK_MIDI_NOTE_G_SHARP_0, "QK_MIDI_NOTE_G_SHARP_0"}, - {QK_MIDI_NOTE_A_0, "QK_MIDI_NOTE_A_0"}, - {QK_MIDI_NOTE_A_SHARP_0, "QK_MIDI_NOTE_A_SHARP_0"}, - {QK_MIDI_NOTE_B_0, "QK_MIDI_NOTE_B_0"}, - {QK_MIDI_NOTE_C_1, "QK_MIDI_NOTE_C_1"}, - {QK_MIDI_NOTE_C_SHARP_1, "QK_MIDI_NOTE_C_SHARP_1"}, - {QK_MIDI_NOTE_D_1, "QK_MIDI_NOTE_D_1"}, - {QK_MIDI_NOTE_D_SHARP_1, "QK_MIDI_NOTE_D_SHARP_1"}, - {QK_MIDI_NOTE_E_1, "QK_MIDI_NOTE_E_1"}, - {QK_MIDI_NOTE_F_1, "QK_MIDI_NOTE_F_1"}, - {QK_MIDI_NOTE_F_SHARP_1, "QK_MIDI_NOTE_F_SHARP_1"}, - {QK_MIDI_NOTE_G_1, "QK_MIDI_NOTE_G_1"}, - {QK_MIDI_NOTE_G_SHARP_1, "QK_MIDI_NOTE_G_SHARP_1"}, - {QK_MIDI_NOTE_A_1, "QK_MIDI_NOTE_A_1"}, - {QK_MIDI_NOTE_A_SHARP_1, "QK_MIDI_NOTE_A_SHARP_1"}, - {QK_MIDI_NOTE_B_1, "QK_MIDI_NOTE_B_1"}, - {QK_MIDI_NOTE_C_2, "QK_MIDI_NOTE_C_2"}, - {QK_MIDI_NOTE_C_SHARP_2, "QK_MIDI_NOTE_C_SHARP_2"}, - {QK_MIDI_NOTE_D_2, "QK_MIDI_NOTE_D_2"}, - {QK_MIDI_NOTE_D_SHARP_2, "QK_MIDI_NOTE_D_SHARP_2"}, - {QK_MIDI_NOTE_E_2, "QK_MIDI_NOTE_E_2"}, - {QK_MIDI_NOTE_F_2, "QK_MIDI_NOTE_F_2"}, - {QK_MIDI_NOTE_F_SHARP_2, "QK_MIDI_NOTE_F_SHARP_2"}, - {QK_MIDI_NOTE_G_2, "QK_MIDI_NOTE_G_2"}, - {QK_MIDI_NOTE_G_SHARP_2, "QK_MIDI_NOTE_G_SHARP_2"}, - {QK_MIDI_NOTE_A_2, "QK_MIDI_NOTE_A_2"}, - {QK_MIDI_NOTE_A_SHARP_2, "QK_MIDI_NOTE_A_SHARP_2"}, - {QK_MIDI_NOTE_B_2, "QK_MIDI_NOTE_B_2"}, - {QK_MIDI_NOTE_C_3, "QK_MIDI_NOTE_C_3"}, - {QK_MIDI_NOTE_C_SHARP_3, "QK_MIDI_NOTE_C_SHARP_3"}, - {QK_MIDI_NOTE_D_3, "QK_MIDI_NOTE_D_3"}, - {QK_MIDI_NOTE_D_SHARP_3, "QK_MIDI_NOTE_D_SHARP_3"}, - {QK_MIDI_NOTE_E_3, "QK_MIDI_NOTE_E_3"}, - {QK_MIDI_NOTE_F_3, "QK_MIDI_NOTE_F_3"}, - {QK_MIDI_NOTE_F_SHARP_3, "QK_MIDI_NOTE_F_SHARP_3"}, - {QK_MIDI_NOTE_G_3, "QK_MIDI_NOTE_G_3"}, - {QK_MIDI_NOTE_G_SHARP_3, "QK_MIDI_NOTE_G_SHARP_3"}, - {QK_MIDI_NOTE_A_3, "QK_MIDI_NOTE_A_3"}, - {QK_MIDI_NOTE_A_SHARP_3, "QK_MIDI_NOTE_A_SHARP_3"}, - {QK_MIDI_NOTE_B_3, "QK_MIDI_NOTE_B_3"}, - {QK_MIDI_NOTE_C_4, "QK_MIDI_NOTE_C_4"}, - {QK_MIDI_NOTE_C_SHARP_4, "QK_MIDI_NOTE_C_SHARP_4"}, - {QK_MIDI_NOTE_D_4, "QK_MIDI_NOTE_D_4"}, - {QK_MIDI_NOTE_D_SHARP_4, "QK_MIDI_NOTE_D_SHARP_4"}, - {QK_MIDI_NOTE_E_4, "QK_MIDI_NOTE_E_4"}, - {QK_MIDI_NOTE_F_4, "QK_MIDI_NOTE_F_4"}, - {QK_MIDI_NOTE_F_SHARP_4, "QK_MIDI_NOTE_F_SHARP_4"}, - {QK_MIDI_NOTE_G_4, "QK_MIDI_NOTE_G_4"}, - {QK_MIDI_NOTE_G_SHARP_4, "QK_MIDI_NOTE_G_SHARP_4"}, - {QK_MIDI_NOTE_A_4, "QK_MIDI_NOTE_A_4"}, - {QK_MIDI_NOTE_A_SHARP_4, "QK_MIDI_NOTE_A_SHARP_4"}, - {QK_MIDI_NOTE_B_4, "QK_MIDI_NOTE_B_4"}, - {QK_MIDI_NOTE_C_5, "QK_MIDI_NOTE_C_5"}, - {QK_MIDI_NOTE_C_SHARP_5, "QK_MIDI_NOTE_C_SHARP_5"}, - {QK_MIDI_NOTE_D_5, "QK_MIDI_NOTE_D_5"}, - {QK_MIDI_NOTE_D_SHARP_5, "QK_MIDI_NOTE_D_SHARP_5"}, - {QK_MIDI_NOTE_E_5, "QK_MIDI_NOTE_E_5"}, - {QK_MIDI_NOTE_F_5, "QK_MIDI_NOTE_F_5"}, - {QK_MIDI_NOTE_F_SHARP_5, "QK_MIDI_NOTE_F_SHARP_5"}, - {QK_MIDI_NOTE_G_5, "QK_MIDI_NOTE_G_5"}, - {QK_MIDI_NOTE_G_SHARP_5, "QK_MIDI_NOTE_G_SHARP_5"}, - {QK_MIDI_NOTE_A_5, "QK_MIDI_NOTE_A_5"}, - {QK_MIDI_NOTE_A_SHARP_5, "QK_MIDI_NOTE_A_SHARP_5"}, - {QK_MIDI_NOTE_B_5, "QK_MIDI_NOTE_B_5"}, - {QK_MIDI_OCTAVE_N2, "QK_MIDI_OCTAVE_N2"}, - {QK_MIDI_OCTAVE_N1, "QK_MIDI_OCTAVE_N1"}, - {QK_MIDI_OCTAVE_0, "QK_MIDI_OCTAVE_0"}, - {QK_MIDI_OCTAVE_1, "QK_MIDI_OCTAVE_1"}, - {QK_MIDI_OCTAVE_2, "QK_MIDI_OCTAVE_2"}, - {QK_MIDI_OCTAVE_3, "QK_MIDI_OCTAVE_3"}, - {QK_MIDI_OCTAVE_4, "QK_MIDI_OCTAVE_4"}, - {QK_MIDI_OCTAVE_5, "QK_MIDI_OCTAVE_5"}, - {QK_MIDI_OCTAVE_6, "QK_MIDI_OCTAVE_6"}, - {QK_MIDI_OCTAVE_7, "QK_MIDI_OCTAVE_7"}, - {QK_MIDI_OCTAVE_DOWN, "QK_MIDI_OCTAVE_DOWN"}, - {QK_MIDI_OCTAVE_UP, "QK_MIDI_OCTAVE_UP"}, - {QK_MIDI_TRANSPOSE_N6, "QK_MIDI_TRANSPOSE_N6"}, - {QK_MIDI_TRANSPOSE_N5, "QK_MIDI_TRANSPOSE_N5"}, - {QK_MIDI_TRANSPOSE_N4, "QK_MIDI_TRANSPOSE_N4"}, - {QK_MIDI_TRANSPOSE_N3, "QK_MIDI_TRANSPOSE_N3"}, - {QK_MIDI_TRANSPOSE_N2, "QK_MIDI_TRANSPOSE_N2"}, - {QK_MIDI_TRANSPOSE_N1, "QK_MIDI_TRANSPOSE_N1"}, - {QK_MIDI_TRANSPOSE_0, "QK_MIDI_TRANSPOSE_0"}, - {QK_MIDI_TRANSPOSE_1, "QK_MIDI_TRANSPOSE_1"}, - {QK_MIDI_TRANSPOSE_2, "QK_MIDI_TRANSPOSE_2"}, - {QK_MIDI_TRANSPOSE_3, "QK_MIDI_TRANSPOSE_3"}, - {QK_MIDI_TRANSPOSE_4, "QK_MIDI_TRANSPOSE_4"}, - {QK_MIDI_TRANSPOSE_5, "QK_MIDI_TRANSPOSE_5"}, - {QK_MIDI_TRANSPOSE_6, "QK_MIDI_TRANSPOSE_6"}, - {QK_MIDI_TRANSPOSE_DOWN, "QK_MIDI_TRANSPOSE_DOWN"}, - {QK_MIDI_TRANSPOSE_UP, "QK_MIDI_TRANSPOSE_UP"}, - {QK_MIDI_VELOCITY_0, "QK_MIDI_VELOCITY_0"}, - {QK_MIDI_VELOCITY_1, "QK_MIDI_VELOCITY_1"}, - {QK_MIDI_VELOCITY_2, "QK_MIDI_VELOCITY_2"}, - {QK_MIDI_VELOCITY_3, "QK_MIDI_VELOCITY_3"}, - {QK_MIDI_VELOCITY_4, "QK_MIDI_VELOCITY_4"}, - {QK_MIDI_VELOCITY_5, "QK_MIDI_VELOCITY_5"}, - {QK_MIDI_VELOCITY_6, "QK_MIDI_VELOCITY_6"}, - {QK_MIDI_VELOCITY_7, "QK_MIDI_VELOCITY_7"}, - {QK_MIDI_VELOCITY_8, "QK_MIDI_VELOCITY_8"}, - {QK_MIDI_VELOCITY_9, "QK_MIDI_VELOCITY_9"}, - {QK_MIDI_VELOCITY_10, "QK_MIDI_VELOCITY_10"}, - {QK_MIDI_VELOCITY_DOWN, "QK_MIDI_VELOCITY_DOWN"}, - {QK_MIDI_VELOCITY_UP, "QK_MIDI_VELOCITY_UP"}, - {QK_MIDI_CHANNEL_1, "QK_MIDI_CHANNEL_1"}, - {QK_MIDI_CHANNEL_2, "QK_MIDI_CHANNEL_2"}, - {QK_MIDI_CHANNEL_3, "QK_MIDI_CHANNEL_3"}, - {QK_MIDI_CHANNEL_4, "QK_MIDI_CHANNEL_4"}, - {QK_MIDI_CHANNEL_5, "QK_MIDI_CHANNEL_5"}, - {QK_MIDI_CHANNEL_6, "QK_MIDI_CHANNEL_6"}, - {QK_MIDI_CHANNEL_7, "QK_MIDI_CHANNEL_7"}, - {QK_MIDI_CHANNEL_8, "QK_MIDI_CHANNEL_8"}, - {QK_MIDI_CHANNEL_9, "QK_MIDI_CHANNEL_9"}, - {QK_MIDI_CHANNEL_10, "QK_MIDI_CHANNEL_10"}, - {QK_MIDI_CHANNEL_11, "QK_MIDI_CHANNEL_11"}, - {QK_MIDI_CHANNEL_12, "QK_MIDI_CHANNEL_12"}, - {QK_MIDI_CHANNEL_13, "QK_MIDI_CHANNEL_13"}, - {QK_MIDI_CHANNEL_14, "QK_MIDI_CHANNEL_14"}, - {QK_MIDI_CHANNEL_15, "QK_MIDI_CHANNEL_15"}, - {QK_MIDI_CHANNEL_16, "QK_MIDI_CHANNEL_16"}, - {QK_MIDI_CHANNEL_DOWN, "QK_MIDI_CHANNEL_DOWN"}, - {QK_MIDI_CHANNEL_UP, "QK_MIDI_CHANNEL_UP"}, - {QK_MIDI_ALL_NOTES_OFF, "QK_MIDI_ALL_NOTES_OFF"}, - {QK_MIDI_SUSTAIN, "QK_MIDI_SUSTAIN"}, - {QK_MIDI_PORTAMENTO, "QK_MIDI_PORTAMENTO"}, - {QK_MIDI_SOSTENUTO, "QK_MIDI_SOSTENUTO"}, - {QK_MIDI_SOFT, "QK_MIDI_SOFT"}, - {QK_MIDI_LEGATO, "QK_MIDI_LEGATO"}, - {QK_MIDI_MODULATION, "QK_MIDI_MODULATION"}, - {QK_MIDI_MODULATION_SPEED_DOWN, "QK_MIDI_MODULATION_SPEED_DOWN"}, - {QK_MIDI_MODULATION_SPEED_UP, "QK_MIDI_MODULATION_SPEED_UP"}, - {QK_MIDI_PITCH_BEND_DOWN, "QK_MIDI_PITCH_BEND_DOWN"}, - {QK_MIDI_PITCH_BEND_UP, "QK_MIDI_PITCH_BEND_UP"}, - {QK_SEQUENCER_ON, "QK_SEQUENCER_ON"}, - {QK_SEQUENCER_OFF, "QK_SEQUENCER_OFF"}, - {QK_SEQUENCER_TOGGLE, "QK_SEQUENCER_TOGGLE"}, - {QK_SEQUENCER_TEMPO_DOWN, "QK_SEQUENCER_TEMPO_DOWN"}, - {QK_SEQUENCER_TEMPO_UP, "QK_SEQUENCER_TEMPO_UP"}, - {QK_SEQUENCER_RESOLUTION_DOWN, "QK_SEQUENCER_RESOLUTION_DOWN"}, - {QK_SEQUENCER_RESOLUTION_UP, "QK_SEQUENCER_RESOLUTION_UP"}, - {QK_SEQUENCER_STEPS_ALL, "QK_SEQUENCER_STEPS_ALL"}, - {QK_SEQUENCER_STEPS_CLEAR, "QK_SEQUENCER_STEPS_CLEAR"}, - {QK_JOYSTICK_BUTTON_0, "QK_JOYSTICK_BUTTON_0"}, - {QK_JOYSTICK_BUTTON_1, "QK_JOYSTICK_BUTTON_1"}, - {QK_JOYSTICK_BUTTON_2, "QK_JOYSTICK_BUTTON_2"}, - {QK_JOYSTICK_BUTTON_3, "QK_JOYSTICK_BUTTON_3"}, - {QK_JOYSTICK_BUTTON_4, "QK_JOYSTICK_BUTTON_4"}, - {QK_JOYSTICK_BUTTON_5, "QK_JOYSTICK_BUTTON_5"}, - {QK_JOYSTICK_BUTTON_6, "QK_JOYSTICK_BUTTON_6"}, - {QK_JOYSTICK_BUTTON_7, "QK_JOYSTICK_BUTTON_7"}, - {QK_JOYSTICK_BUTTON_8, "QK_JOYSTICK_BUTTON_8"}, - {QK_JOYSTICK_BUTTON_9, "QK_JOYSTICK_BUTTON_9"}, - {QK_JOYSTICK_BUTTON_10, "QK_JOYSTICK_BUTTON_10"}, - {QK_JOYSTICK_BUTTON_11, "QK_JOYSTICK_BUTTON_11"}, - {QK_JOYSTICK_BUTTON_12, "QK_JOYSTICK_BUTTON_12"}, - {QK_JOYSTICK_BUTTON_13, "QK_JOYSTICK_BUTTON_13"}, - {QK_JOYSTICK_BUTTON_14, "QK_JOYSTICK_BUTTON_14"}, - {QK_JOYSTICK_BUTTON_15, "QK_JOYSTICK_BUTTON_15"}, - {QK_JOYSTICK_BUTTON_16, "QK_JOYSTICK_BUTTON_16"}, - {QK_JOYSTICK_BUTTON_17, "QK_JOYSTICK_BUTTON_17"}, - {QK_JOYSTICK_BUTTON_18, "QK_JOYSTICK_BUTTON_18"}, - {QK_JOYSTICK_BUTTON_19, "QK_JOYSTICK_BUTTON_19"}, - {QK_JOYSTICK_BUTTON_20, "QK_JOYSTICK_BUTTON_20"}, - {QK_JOYSTICK_BUTTON_21, "QK_JOYSTICK_BUTTON_21"}, - {QK_JOYSTICK_BUTTON_22, "QK_JOYSTICK_BUTTON_22"}, - {QK_JOYSTICK_BUTTON_23, "QK_JOYSTICK_BUTTON_23"}, - {QK_JOYSTICK_BUTTON_24, "QK_JOYSTICK_BUTTON_24"}, - {QK_JOYSTICK_BUTTON_25, "QK_JOYSTICK_BUTTON_25"}, - {QK_JOYSTICK_BUTTON_26, "QK_JOYSTICK_BUTTON_26"}, - {QK_JOYSTICK_BUTTON_27, "QK_JOYSTICK_BUTTON_27"}, - {QK_JOYSTICK_BUTTON_28, "QK_JOYSTICK_BUTTON_28"}, - {QK_JOYSTICK_BUTTON_29, "QK_JOYSTICK_BUTTON_29"}, - {QK_JOYSTICK_BUTTON_30, "QK_JOYSTICK_BUTTON_30"}, - {QK_JOYSTICK_BUTTON_31, "QK_JOYSTICK_BUTTON_31"}, - {QK_PROGRAMMABLE_BUTTON_1, "QK_PROGRAMMABLE_BUTTON_1"}, - {QK_PROGRAMMABLE_BUTTON_2, "QK_PROGRAMMABLE_BUTTON_2"}, - {QK_PROGRAMMABLE_BUTTON_3, "QK_PROGRAMMABLE_BUTTON_3"}, - {QK_PROGRAMMABLE_BUTTON_4, "QK_PROGRAMMABLE_BUTTON_4"}, - {QK_PROGRAMMABLE_BUTTON_5, "QK_PROGRAMMABLE_BUTTON_5"}, - {QK_PROGRAMMABLE_BUTTON_6, "QK_PROGRAMMABLE_BUTTON_6"}, - {QK_PROGRAMMABLE_BUTTON_7, "QK_PROGRAMMABLE_BUTTON_7"}, - {QK_PROGRAMMABLE_BUTTON_8, "QK_PROGRAMMABLE_BUTTON_8"}, - {QK_PROGRAMMABLE_BUTTON_9, "QK_PROGRAMMABLE_BUTTON_9"}, - {QK_PROGRAMMABLE_BUTTON_10, "QK_PROGRAMMABLE_BUTTON_10"}, - {QK_PROGRAMMABLE_BUTTON_11, "QK_PROGRAMMABLE_BUTTON_11"}, - {QK_PROGRAMMABLE_BUTTON_12, "QK_PROGRAMMABLE_BUTTON_12"}, - {QK_PROGRAMMABLE_BUTTON_13, "QK_PROGRAMMABLE_BUTTON_13"}, - {QK_PROGRAMMABLE_BUTTON_14, "QK_PROGRAMMABLE_BUTTON_14"}, - {QK_PROGRAMMABLE_BUTTON_15, "QK_PROGRAMMABLE_BUTTON_15"}, - {QK_PROGRAMMABLE_BUTTON_16, "QK_PROGRAMMABLE_BUTTON_16"}, - {QK_PROGRAMMABLE_BUTTON_17, "QK_PROGRAMMABLE_BUTTON_17"}, - {QK_PROGRAMMABLE_BUTTON_18, "QK_PROGRAMMABLE_BUTTON_18"}, - {QK_PROGRAMMABLE_BUTTON_19, "QK_PROGRAMMABLE_BUTTON_19"}, - {QK_PROGRAMMABLE_BUTTON_20, "QK_PROGRAMMABLE_BUTTON_20"}, - {QK_PROGRAMMABLE_BUTTON_21, "QK_PROGRAMMABLE_BUTTON_21"}, - {QK_PROGRAMMABLE_BUTTON_22, "QK_PROGRAMMABLE_BUTTON_22"}, - {QK_PROGRAMMABLE_BUTTON_23, "QK_PROGRAMMABLE_BUTTON_23"}, - {QK_PROGRAMMABLE_BUTTON_24, "QK_PROGRAMMABLE_BUTTON_24"}, - {QK_PROGRAMMABLE_BUTTON_25, "QK_PROGRAMMABLE_BUTTON_25"}, - {QK_PROGRAMMABLE_BUTTON_26, "QK_PROGRAMMABLE_BUTTON_26"}, - {QK_PROGRAMMABLE_BUTTON_27, "QK_PROGRAMMABLE_BUTTON_27"}, - {QK_PROGRAMMABLE_BUTTON_28, "QK_PROGRAMMABLE_BUTTON_28"}, - {QK_PROGRAMMABLE_BUTTON_29, "QK_PROGRAMMABLE_BUTTON_29"}, - {QK_PROGRAMMABLE_BUTTON_30, "QK_PROGRAMMABLE_BUTTON_30"}, - {QK_PROGRAMMABLE_BUTTON_31, "QK_PROGRAMMABLE_BUTTON_31"}, - {QK_PROGRAMMABLE_BUTTON_32, "QK_PROGRAMMABLE_BUTTON_32"}, - {QK_AUDIO_ON, "QK_AUDIO_ON"}, - {QK_AUDIO_OFF, "QK_AUDIO_OFF"}, - {QK_AUDIO_TOGGLE, "QK_AUDIO_TOGGLE"}, - {QK_AUDIO_CLICKY_TOGGLE, "QK_AUDIO_CLICKY_TOGGLE"}, - {QK_AUDIO_CLICKY_ON, "QK_AUDIO_CLICKY_ON"}, - {QK_AUDIO_CLICKY_OFF, "QK_AUDIO_CLICKY_OFF"}, - {QK_AUDIO_CLICKY_UP, "QK_AUDIO_CLICKY_UP"}, - {QK_AUDIO_CLICKY_DOWN, "QK_AUDIO_CLICKY_DOWN"}, - {QK_AUDIO_CLICKY_RESET, "QK_AUDIO_CLICKY_RESET"}, - {QK_MUSIC_ON, "QK_MUSIC_ON"}, - {QK_MUSIC_OFF, "QK_MUSIC_OFF"}, - {QK_MUSIC_TOGGLE, "QK_MUSIC_TOGGLE"}, - {QK_MUSIC_MODE_NEXT, "QK_MUSIC_MODE_NEXT"}, - {QK_AUDIO_VOICE_NEXT, "QK_AUDIO_VOICE_NEXT"}, - {QK_AUDIO_VOICE_PREVIOUS, "QK_AUDIO_VOICE_PREVIOUS"}, - {QK_STENO_BOLT, "QK_STENO_BOLT"}, - {QK_STENO_GEMINI, "QK_STENO_GEMINI"}, - {QK_STENO_COMB, "QK_STENO_COMB"}, - {QK_STENO_COMB_MAX, "QK_STENO_COMB_MAX"}, - {QK_MACRO_0, "QK_MACRO_0"}, - {QK_MACRO_1, "QK_MACRO_1"}, - {QK_MACRO_2, "QK_MACRO_2"}, - {QK_MACRO_3, "QK_MACRO_3"}, - {QK_MACRO_4, "QK_MACRO_4"}, - {QK_MACRO_5, "QK_MACRO_5"}, - {QK_MACRO_6, "QK_MACRO_6"}, - {QK_MACRO_7, "QK_MACRO_7"}, - {QK_MACRO_8, "QK_MACRO_8"}, - {QK_MACRO_9, "QK_MACRO_9"}, - {QK_MACRO_10, "QK_MACRO_10"}, - {QK_MACRO_11, "QK_MACRO_11"}, - {QK_MACRO_12, "QK_MACRO_12"}, - {QK_MACRO_13, "QK_MACRO_13"}, - {QK_MACRO_14, "QK_MACRO_14"}, - {QK_MACRO_15, "QK_MACRO_15"}, - {QK_MACRO_16, "QK_MACRO_16"}, - {QK_MACRO_17, "QK_MACRO_17"}, - {QK_MACRO_18, "QK_MACRO_18"}, - {QK_MACRO_19, "QK_MACRO_19"}, - {QK_MACRO_20, "QK_MACRO_20"}, - {QK_MACRO_21, "QK_MACRO_21"}, - {QK_MACRO_22, "QK_MACRO_22"}, - {QK_MACRO_23, "QK_MACRO_23"}, - {QK_MACRO_24, "QK_MACRO_24"}, - {QK_MACRO_25, "QK_MACRO_25"}, - {QK_MACRO_26, "QK_MACRO_26"}, - {QK_MACRO_27, "QK_MACRO_27"}, - {QK_MACRO_28, "QK_MACRO_28"}, - {QK_MACRO_29, "QK_MACRO_29"}, - {QK_MACRO_30, "QK_MACRO_30"}, - {QK_MACRO_31, "QK_MACRO_31"}, - {QK_OUTPUT_AUTO, "QK_OUTPUT_AUTO"}, - {QK_OUTPUT_NEXT, "QK_OUTPUT_NEXT"}, - {QK_OUTPUT_PREV, "QK_OUTPUT_PREV"}, - {QK_OUTPUT_NONE, "QK_OUTPUT_NONE"}, - {QK_OUTPUT_USB, "QK_OUTPUT_USB"}, - {QK_OUTPUT_2P4GHZ, "QK_OUTPUT_2P4GHZ"}, - {QK_OUTPUT_BLUETOOTH, "QK_OUTPUT_BLUETOOTH"}, - {QK_BLUETOOTH_PROFILE_NEXT, "QK_BLUETOOTH_PROFILE_NEXT"}, - {QK_BLUETOOTH_PROFILE_PREV, "QK_BLUETOOTH_PROFILE_PREV"}, - {QK_BLUETOOTH_UNPAIR, "QK_BLUETOOTH_UNPAIR"}, - {QK_BLUETOOTH_PROFILE1, "QK_BLUETOOTH_PROFILE1"}, - {QK_BLUETOOTH_PROFILE2, "QK_BLUETOOTH_PROFILE2"}, - {QK_BLUETOOTH_PROFILE3, "QK_BLUETOOTH_PROFILE3"}, - {QK_BLUETOOTH_PROFILE4, "QK_BLUETOOTH_PROFILE4"}, - {QK_BLUETOOTH_PROFILE5, "QK_BLUETOOTH_PROFILE5"}, - {QK_BACKLIGHT_ON, "QK_BACKLIGHT_ON"}, - {QK_BACKLIGHT_OFF, "QK_BACKLIGHT_OFF"}, - {QK_BACKLIGHT_TOGGLE, "QK_BACKLIGHT_TOGGLE"}, - {QK_BACKLIGHT_DOWN, "QK_BACKLIGHT_DOWN"}, - {QK_BACKLIGHT_UP, "QK_BACKLIGHT_UP"}, - {QK_BACKLIGHT_STEP, "QK_BACKLIGHT_STEP"}, - {QK_BACKLIGHT_TOGGLE_BREATHING, "QK_BACKLIGHT_TOGGLE_BREATHING"}, - {QK_LED_MATRIX_ON, "QK_LED_MATRIX_ON"}, - {QK_LED_MATRIX_OFF, "QK_LED_MATRIX_OFF"}, - {QK_LED_MATRIX_TOGGLE, "QK_LED_MATRIX_TOGGLE"}, - {QK_LED_MATRIX_MODE_NEXT, "QK_LED_MATRIX_MODE_NEXT"}, - {QK_LED_MATRIX_MODE_PREVIOUS, "QK_LED_MATRIX_MODE_PREVIOUS"}, - {QK_LED_MATRIX_BRIGHTNESS_UP, "QK_LED_MATRIX_BRIGHTNESS_UP"}, - {QK_LED_MATRIX_BRIGHTNESS_DOWN, "QK_LED_MATRIX_BRIGHTNESS_DOWN"}, - {QK_LED_MATRIX_SPEED_UP, "QK_LED_MATRIX_SPEED_UP"}, - {QK_LED_MATRIX_SPEED_DOWN, "QK_LED_MATRIX_SPEED_DOWN"}, - {QK_UNDERGLOW_TOGGLE, "QK_UNDERGLOW_TOGGLE"}, - {QK_UNDERGLOW_MODE_NEXT, "QK_UNDERGLOW_MODE_NEXT"}, - {QK_UNDERGLOW_MODE_PREVIOUS, "QK_UNDERGLOW_MODE_PREVIOUS"}, - {QK_UNDERGLOW_HUE_UP, "QK_UNDERGLOW_HUE_UP"}, - {QK_UNDERGLOW_HUE_DOWN, "QK_UNDERGLOW_HUE_DOWN"}, - {QK_UNDERGLOW_SATURATION_UP, "QK_UNDERGLOW_SATURATION_UP"}, - {QK_UNDERGLOW_SATURATION_DOWN, "QK_UNDERGLOW_SATURATION_DOWN"}, - {QK_UNDERGLOW_VALUE_UP, "QK_UNDERGLOW_VALUE_UP"}, - {QK_UNDERGLOW_VALUE_DOWN, "QK_UNDERGLOW_VALUE_DOWN"}, - {QK_UNDERGLOW_SPEED_UP, "QK_UNDERGLOW_SPEED_UP"}, - {QK_UNDERGLOW_SPEED_DOWN, "QK_UNDERGLOW_SPEED_DOWN"}, - {RGB_MODE_PLAIN, "RGB_MODE_PLAIN"}, - {RGB_MODE_BREATHE, "RGB_MODE_BREATHE"}, - {RGB_MODE_RAINBOW, "RGB_MODE_RAINBOW"}, - {RGB_MODE_SWIRL, "RGB_MODE_SWIRL"}, - {RGB_MODE_SNAKE, "RGB_MODE_SNAKE"}, - {RGB_MODE_KNIGHT, "RGB_MODE_KNIGHT"}, - {RGB_MODE_XMAS, "RGB_MODE_XMAS"}, - {RGB_MODE_GRADIENT, "RGB_MODE_GRADIENT"}, - {RGB_MODE_RGBTEST, "RGB_MODE_RGBTEST"}, - {RGB_MODE_TWINKLE, "RGB_MODE_TWINKLE"}, - {QK_RGB_MATRIX_ON, "QK_RGB_MATRIX_ON"}, - {QK_RGB_MATRIX_OFF, "QK_RGB_MATRIX_OFF"}, - {QK_RGB_MATRIX_TOGGLE, "QK_RGB_MATRIX_TOGGLE"}, - {QK_RGB_MATRIX_MODE_NEXT, "QK_RGB_MATRIX_MODE_NEXT"}, - {QK_RGB_MATRIX_MODE_PREVIOUS, "QK_RGB_MATRIX_MODE_PREVIOUS"}, - {QK_RGB_MATRIX_HUE_UP, "QK_RGB_MATRIX_HUE_UP"}, - {QK_RGB_MATRIX_HUE_DOWN, "QK_RGB_MATRIX_HUE_DOWN"}, - {QK_RGB_MATRIX_SATURATION_UP, "QK_RGB_MATRIX_SATURATION_UP"}, - {QK_RGB_MATRIX_SATURATION_DOWN, "QK_RGB_MATRIX_SATURATION_DOWN"}, - {QK_RGB_MATRIX_VALUE_UP, "QK_RGB_MATRIX_VALUE_UP"}, - {QK_RGB_MATRIX_VALUE_DOWN, "QK_RGB_MATRIX_VALUE_DOWN"}, - {QK_RGB_MATRIX_SPEED_UP, "QK_RGB_MATRIX_SPEED_UP"}, - {QK_RGB_MATRIX_SPEED_DOWN, "QK_RGB_MATRIX_SPEED_DOWN"}, - {QK_BOOTLOADER, "QK_BOOTLOADER"}, - {QK_REBOOT, "QK_REBOOT"}, - {QK_DEBUG_TOGGLE, "QK_DEBUG_TOGGLE"}, - {QK_CLEAR_EEPROM, "QK_CLEAR_EEPROM"}, - {QK_MAKE, "QK_MAKE"}, - {QK_AUTO_SHIFT_DOWN, "QK_AUTO_SHIFT_DOWN"}, - {QK_AUTO_SHIFT_UP, "QK_AUTO_SHIFT_UP"}, - {QK_AUTO_SHIFT_REPORT, "QK_AUTO_SHIFT_REPORT"}, - {QK_AUTO_SHIFT_ON, "QK_AUTO_SHIFT_ON"}, - {QK_AUTO_SHIFT_OFF, "QK_AUTO_SHIFT_OFF"}, - {QK_AUTO_SHIFT_TOGGLE, "QK_AUTO_SHIFT_TOGGLE"}, - {QK_GRAVE_ESCAPE, "QK_GRAVE_ESCAPE"}, - {QK_VELOCIKEY_TOGGLE, "QK_VELOCIKEY_TOGGLE"}, - {QK_SPACE_CADET_LEFT_CTRL_PARENTHESIS_OPEN, "QK_SPACE_CADET_LEFT_CTRL_PARENTHESIS_OPEN"}, - {QK_SPACE_CADET_RIGHT_CTRL_PARENTHESIS_CLOSE, "QK_SPACE_CADET_RIGHT_CTRL_PARENTHESIS_CLOSE"}, - {QK_SPACE_CADET_LEFT_SHIFT_PARENTHESIS_OPEN, "QK_SPACE_CADET_LEFT_SHIFT_PARENTHESIS_OPEN"}, - {QK_SPACE_CADET_RIGHT_SHIFT_PARENTHESIS_CLOSE, "QK_SPACE_CADET_RIGHT_SHIFT_PARENTHESIS_CLOSE"}, - {QK_SPACE_CADET_LEFT_ALT_PARENTHESIS_OPEN, "QK_SPACE_CADET_LEFT_ALT_PARENTHESIS_OPEN"}, - {QK_SPACE_CADET_RIGHT_ALT_PARENTHESIS_CLOSE, "QK_SPACE_CADET_RIGHT_ALT_PARENTHESIS_CLOSE"}, - {QK_SPACE_CADET_RIGHT_SHIFT_ENTER, "QK_SPACE_CADET_RIGHT_SHIFT_ENTER"}, - {QK_UNICODE_MODE_NEXT, "QK_UNICODE_MODE_NEXT"}, - {QK_UNICODE_MODE_PREVIOUS, "QK_UNICODE_MODE_PREVIOUS"}, - {QK_UNICODE_MODE_MACOS, "QK_UNICODE_MODE_MACOS"}, - {QK_UNICODE_MODE_LINUX, "QK_UNICODE_MODE_LINUX"}, - {QK_UNICODE_MODE_WINDOWS, "QK_UNICODE_MODE_WINDOWS"}, - {QK_UNICODE_MODE_BSD, "QK_UNICODE_MODE_BSD"}, - {QK_UNICODE_MODE_WINCOMPOSE, "QK_UNICODE_MODE_WINCOMPOSE"}, - {QK_UNICODE_MODE_EMACS, "QK_UNICODE_MODE_EMACS"}, - {QK_HAPTIC_ON, "QK_HAPTIC_ON"}, - {QK_HAPTIC_OFF, "QK_HAPTIC_OFF"}, - {QK_HAPTIC_TOGGLE, "QK_HAPTIC_TOGGLE"}, - {QK_HAPTIC_RESET, "QK_HAPTIC_RESET"}, - {QK_HAPTIC_FEEDBACK_TOGGLE, "QK_HAPTIC_FEEDBACK_TOGGLE"}, - {QK_HAPTIC_BUZZ_TOGGLE, "QK_HAPTIC_BUZZ_TOGGLE"}, - {QK_HAPTIC_MODE_NEXT, "QK_HAPTIC_MODE_NEXT"}, - {QK_HAPTIC_MODE_PREVIOUS, "QK_HAPTIC_MODE_PREVIOUS"}, - {QK_HAPTIC_CONTINUOUS_TOGGLE, "QK_HAPTIC_CONTINUOUS_TOGGLE"}, - {QK_HAPTIC_CONTINUOUS_UP, "QK_HAPTIC_CONTINUOUS_UP"}, - {QK_HAPTIC_CONTINUOUS_DOWN, "QK_HAPTIC_CONTINUOUS_DOWN"}, - {QK_HAPTIC_DWELL_UP, "QK_HAPTIC_DWELL_UP"}, - {QK_HAPTIC_DWELL_DOWN, "QK_HAPTIC_DWELL_DOWN"}, - {QK_COMBO_ON, "QK_COMBO_ON"}, - {QK_COMBO_OFF, "QK_COMBO_OFF"}, - {QK_COMBO_TOGGLE, "QK_COMBO_TOGGLE"}, - {QK_DYNAMIC_MACRO_RECORD_START_1, "QK_DYNAMIC_MACRO_RECORD_START_1"}, - {QK_DYNAMIC_MACRO_RECORD_START_2, "QK_DYNAMIC_MACRO_RECORD_START_2"}, - {QK_DYNAMIC_MACRO_RECORD_STOP, "QK_DYNAMIC_MACRO_RECORD_STOP"}, - {QK_DYNAMIC_MACRO_PLAY_1, "QK_DYNAMIC_MACRO_PLAY_1"}, - {QK_DYNAMIC_MACRO_PLAY_2, "QK_DYNAMIC_MACRO_PLAY_2"}, - {QK_LEADER, "QK_LEADER"}, - {QK_LOCK, "QK_LOCK"}, - {QK_ONE_SHOT_ON, "QK_ONE_SHOT_ON"}, - {QK_ONE_SHOT_OFF, "QK_ONE_SHOT_OFF"}, - {QK_ONE_SHOT_TOGGLE, "QK_ONE_SHOT_TOGGLE"}, - {QK_KEY_OVERRIDE_TOGGLE, "QK_KEY_OVERRIDE_TOGGLE"}, - {QK_KEY_OVERRIDE_ON, "QK_KEY_OVERRIDE_ON"}, - {QK_KEY_OVERRIDE_OFF, "QK_KEY_OVERRIDE_OFF"}, - {QK_SECURE_LOCK, "QK_SECURE_LOCK"}, - {QK_SECURE_UNLOCK, "QK_SECURE_UNLOCK"}, - {QK_SECURE_TOGGLE, "QK_SECURE_TOGGLE"}, - {QK_SECURE_REQUEST, "QK_SECURE_REQUEST"}, - {QK_DYNAMIC_TAPPING_TERM_PRINT, "QK_DYNAMIC_TAPPING_TERM_PRINT"}, - {QK_DYNAMIC_TAPPING_TERM_UP, "QK_DYNAMIC_TAPPING_TERM_UP"}, - {QK_DYNAMIC_TAPPING_TERM_DOWN, "QK_DYNAMIC_TAPPING_TERM_DOWN"}, - {QK_CAPS_WORD_TOGGLE, "QK_CAPS_WORD_TOGGLE"}, - {QK_AUTOCORRECT_ON, "QK_AUTOCORRECT_ON"}, - {QK_AUTOCORRECT_OFF, "QK_AUTOCORRECT_OFF"}, - {QK_AUTOCORRECT_TOGGLE, "QK_AUTOCORRECT_TOGGLE"}, - {QK_TRI_LAYER_LOWER, "QK_TRI_LAYER_LOWER"}, - {QK_TRI_LAYER_UPPER, "QK_TRI_LAYER_UPPER"}, - {QK_REPEAT_KEY, "QK_REPEAT_KEY"}, - {QK_ALT_REPEAT_KEY, "QK_ALT_REPEAT_KEY"}, - {QK_LAYER_LOCK, "QK_LAYER_LOCK"}, - {QK_KB_0, "QK_KB_0"}, - {QK_KB_1, "QK_KB_1"}, - {QK_KB_2, "QK_KB_2"}, - {QK_KB_3, "QK_KB_3"}, - {QK_KB_4, "QK_KB_4"}, - {QK_KB_5, "QK_KB_5"}, - {QK_KB_6, "QK_KB_6"}, - {QK_KB_7, "QK_KB_7"}, - {QK_KB_8, "QK_KB_8"}, - {QK_KB_9, "QK_KB_9"}, - {QK_KB_10, "QK_KB_10"}, - {QK_KB_11, "QK_KB_11"}, - {QK_KB_12, "QK_KB_12"}, - {QK_KB_13, "QK_KB_13"}, - {QK_KB_14, "QK_KB_14"}, - {QK_KB_15, "QK_KB_15"}, - {QK_KB_16, "QK_KB_16"}, - {QK_KB_17, "QK_KB_17"}, - {QK_KB_18, "QK_KB_18"}, - {QK_KB_19, "QK_KB_19"}, - {QK_KB_20, "QK_KB_20"}, - {QK_KB_21, "QK_KB_21"}, - {QK_KB_22, "QK_KB_22"}, - {QK_KB_23, "QK_KB_23"}, - {QK_KB_24, "QK_KB_24"}, - {QK_KB_25, "QK_KB_25"}, - {QK_KB_26, "QK_KB_26"}, - {QK_KB_27, "QK_KB_27"}, - {QK_KB_28, "QK_KB_28"}, - {QK_KB_29, "QK_KB_29"}, - {QK_KB_30, "QK_KB_30"}, - {QK_KB_31, "QK_KB_31"}, - {QK_USER_0, "QK_USER_0"}, - {QK_USER_1, "QK_USER_1"}, - {QK_USER_2, "QK_USER_2"}, - {QK_USER_3, "QK_USER_3"}, - {QK_USER_4, "QK_USER_4"}, - {QK_USER_5, "QK_USER_5"}, - {QK_USER_6, "QK_USER_6"}, - {QK_USER_7, "QK_USER_7"}, - {QK_USER_8, "QK_USER_8"}, - {QK_USER_9, "QK_USER_9"}, - {QK_USER_10, "QK_USER_10"}, - {QK_USER_11, "QK_USER_11"}, - {QK_USER_12, "QK_USER_12"}, - {QK_USER_13, "QK_USER_13"}, - {QK_USER_14, "QK_USER_14"}, - {QK_USER_15, "QK_USER_15"}, - {QK_USER_16, "QK_USER_16"}, - {QK_USER_17, "QK_USER_17"}, - {QK_USER_18, "QK_USER_18"}, - {QK_USER_19, "QK_USER_19"}, - {QK_USER_20, "QK_USER_20"}, - {QK_USER_21, "QK_USER_21"}, - {QK_USER_22, "QK_USER_22"}, - {QK_USER_23, "QK_USER_23"}, - {QK_USER_24, "QK_USER_24"}, - {QK_USER_25, "QK_USER_25"}, - {QK_USER_26, "QK_USER_26"}, - {QK_USER_27, "QK_USER_27"}, - {QK_USER_28, "QK_USER_28"}, - {QK_USER_29, "QK_USER_29"}, - {QK_USER_30, "QK_USER_30"}, - {QK_USER_31, "QK_USER_31"}, -}; diff --git a/tests/test_common/keycode_util.cpp b/tests/test_common/keycode_util.cpp deleted file mode 100644 index 539cab819ac..00000000000 --- a/tests/test_common/keycode_util.cpp +++ /dev/null @@ -1,130 +0,0 @@ -#include "keycode_util.hpp" -#include -extern "C" { -#include "action_code.h" -#include "keycode.h" -#include "quantum_keycodes.h" -#include "util.h" -} -#include -#include -#include - -extern std::map KEYCODE_ID_TABLE; - -std::string get_mods(uint8_t mods) { - std::stringstream s; - if ((mods & MOD_RCTL) == MOD_RCTL) { - s << XSTR(MOD_RCTL) << " | "; - } else if ((mods & MOD_LCTL) == MOD_LCTL) { - s << XSTR(MOD_LCTL) << " | "; - } - - if ((mods & MOD_RSFT) == MOD_RSFT) { - s << XSTR(MOD_RSFT) << " | "; - } else if ((mods & MOD_LSFT) == MOD_LSFT) { - s << XSTR(MOD_LSFT) << " | "; - } - - if ((mods & MOD_RALT) == MOD_RALT) { - s << XSTR(MOD_RALT) << " | "; - } else if ((mods & MOD_LALT) == MOD_LALT) { - s << XSTR(MOD_LALT) << " | "; - } - - if ((mods & MOD_RGUI) == MOD_RGUI) { - s << XSTR(MOD_RGUI) << " | "; - } else if ((mods & MOD_LGUI) == MOD_LGUI) { - s << XSTR(MOD_LGUI) << " | "; - } - - auto _mods = s.str(); - - if (_mods.size()) { - _mods.resize(_mods.size() - 3); - } - - return std::string(_mods); -} - -std::string get_qk_mods(uint16_t keycode) { - std::stringstream s; - if ((keycode & QK_RCTL) == QK_RCTL) { - s << XSTR(QK_RCTL) << " | "; - } else if ((keycode & QK_LCTL) == QK_LCTL) { - s << XSTR(QK_LCTL) << " | "; - } - - if ((keycode & QK_RSFT) == QK_RSFT) { - s << XSTR(QK_RSFT) << " | "; - } else if ((keycode & QK_LSFT) == QK_LSFT) { - s << XSTR(QK_LSFT) << " | "; - } - - if ((keycode & QK_RALT) == QK_RALT) { - s << XSTR(QK_RALT) << " | "; - } else if ((keycode & QK_LALT) == QK_LALT) { - s << XSTR(QK_LALT) << " | "; - } - - if ((keycode & QK_RGUI) == QK_RGUI) { - s << XSTR(QK_RGUI) << " | "; - } else if ((keycode & QK_LGUI) == QK_LGUI) { - s << XSTR(QK_LGUI) << " | "; - } - - auto _mods = s.str(); - - if (_mods.size()) { - _mods.resize(_mods.size() - 3); - } - - return std::string(_mods); -} - -std::string generate_identifier(uint16_t kc) { - std::stringstream s; - if (IS_QK_MOD_TAP(kc)) { - s << "MT(" << get_mods(QK_MOD_TAP_GET_MODS(kc)) << ", " << KEYCODE_ID_TABLE.at(kc & 0xFF) << ")"; - } else if (IS_QK_LAYER_TAP(kc)) { - s << "LT(" << +QK_LAYER_TAP_GET_LAYER(kc) << ", " << KEYCODE_ID_TABLE.at(kc & 0xFF) << ")"; - } else if (IS_QK_TO(kc)) { - s << "TO(" << +QK_TO_GET_LAYER(kc) << ")"; - } else if (IS_QK_MOMENTARY(kc)) { - s << "MO(" << +QK_MOMENTARY_GET_LAYER(kc) << ")"; - } else if (IS_QK_DEF_LAYER(kc)) { - s << "DF(" << +QK_DEF_LAYER_GET_LAYER(kc) << ")"; - } else if (IS_QK_PERSISTENT_DEF_LAYER(kc)) { - s << "PDF(" << +QK_PERSISTENT_DEF_LAYER_GET_LAYER(kc) << ")"; - } else if (IS_QK_TOGGLE_LAYER(kc)) { - s << "TG(" << +QK_TOGGLE_LAYER_GET_LAYER(kc) << ")"; - } else if (IS_QK_LAYER_TAP_TOGGLE(kc)) { - s << "TT(" << +QK_LAYER_TAP_TOGGLE_GET_LAYER(kc) << ")"; - } else if (IS_QK_ONE_SHOT_LAYER(kc)) { - s << "OSL(" << +QK_ONE_SHOT_LAYER_GET_LAYER(kc) << ")"; - } else if (IS_QK_LAYER_MOD(kc)) { - s << "LM(" << +QK_LAYER_MOD_GET_LAYER(kc) << ", " << get_mods(QK_LAYER_MOD_GET_MODS(kc)) << ")"; - } else if (IS_QK_ONE_SHOT_MOD(kc)) { - s << "OSM(" << get_mods(QK_ONE_SHOT_MOD_GET_MODS(kc)) << ")"; - } else if (IS_QK_MODS(kc)) { - s << "QK_MODS(" << KEYCODE_ID_TABLE.at(QK_MODS_GET_BASIC_KEYCODE(kc)) << ", " << get_qk_mods(kc) << ")"; - } else if (IS_QK_TAP_DANCE(kc)) { - s << "TD(" << +(kc & 0xFF) << ")"; - } else { - // Fallback - we didn't found any matching keycode, generate the hex representation. - s << "unknown keycode: 0x" << std::hex << kc << ". Add conversion to " << XSTR(generate_identifier); - } - - return std::string(s.str()); -} - -std::string get_keycode_identifier_or_default(uint16_t keycode) { - auto identifier = KEYCODE_ID_TABLE.find(keycode); - if (identifier != KEYCODE_ID_TABLE.end()) { - return identifier->second; - } - - KEYCODE_ID_TABLE[keycode] = generate_identifier(keycode); - - return KEYCODE_ID_TABLE[keycode]; -} diff --git a/tests/test_common/keycode_util.hpp b/tests/test_common/keycode_util.hpp deleted file mode 100644 index 3143ab364ed..00000000000 --- a/tests/test_common/keycode_util.hpp +++ /dev/null @@ -1,6 +0,0 @@ -#pragma once - -#include -#include - -std::string get_keycode_identifier_or_default(uint16_t keycode); diff --git a/tests/test_common/test_driver.hpp b/tests/test_common/test_driver.hpp index fea8225953a..5c36c80dfcc 100644 --- a/tests/test_common/test_driver.hpp +++ b/tests/test_common/test_driver.hpp @@ -20,7 +20,9 @@ #include #include "host.h" #include "keyboard_report_util.hpp" -#include "keycode_util.hpp" +extern "C" { +#include "keycode_string.h" +} #include "test_logger.hpp" class TestDriver { @@ -146,11 +148,11 @@ class TestDriver { /** @brief Tests whether keycode `actual` is equal to `expected`. */ #define EXPECT_KEYCODE_EQ(actual, expected) EXPECT_THAT((actual), KeycodeEq((expected))) -MATCHER_P(KeycodeEq, expected_keycode, "is equal to " + testing::PrintToString(expected_keycode) + ", keycode " + get_keycode_identifier_or_default(expected_keycode)) { +MATCHER_P(KeycodeEq, expected_keycode, "is equal to " + testing::PrintToString(expected_keycode) + ", keycode " + get_keycode_string(expected_keycode)) { if (arg == expected_keycode) { return true; } - *result_listener << "keycode " << get_keycode_identifier_or_default(arg); + *result_listener << "keycode " << get_keycode_string(arg); return false; } diff --git a/tests/test_common/test_keymap_key.hpp b/tests/test_common/test_keymap_key.hpp index 37b4c827e49..ba2c2912e3e 100644 --- a/tests/test_common/test_keymap_key.hpp +++ b/tests/test_common/test_keymap_key.hpp @@ -18,10 +18,10 @@ #include #include -#include "keycode_util.hpp" extern "C" { #include "keyboard.h" #include "test_matrix.h" +#include "keycode_string.h" } #include @@ -29,11 +29,11 @@ extern "C" { typedef uint8_t layer_t; struct KeymapKey { - KeymapKey(layer_t layer, uint8_t col, uint8_t row, uint16_t keycode) : layer(layer), position({.col = col, .row = row}), code(keycode), report_code(keycode), name(get_keycode_identifier_or_default(keycode)) { + KeymapKey(layer_t layer, uint8_t col, uint8_t row, uint16_t keycode) : layer(layer), position({.col = col, .row = row}), code(keycode), report_code(keycode), name(get_keycode_string(keycode)) { validate(); } - KeymapKey(layer_t layer, uint8_t col, uint8_t row, uint16_t keycode, uint16_t report_code) : layer(layer), position({.col = col, .row = row}), code(keycode), report_code(report_code), name{get_keycode_identifier_or_default(keycode)} { + KeymapKey(layer_t layer, uint8_t col, uint8_t row, uint16_t keycode, uint16_t report_code) : layer(layer), position({.col = col, .row = row}), code(keycode), report_code(report_code), name{get_keycode_string(keycode)} { validate(); } diff --git a/util/regen.sh b/util/regen.sh index ab03018893c..df40444f803 100755 --- a/util/regen.sh +++ b/util/regen.sh @@ -3,7 +3,6 @@ set -e qmk generate-rgb-breathe-table -o quantum/rgblight/rgblight_breathe_table.h qmk generate-keycodes --version latest -o quantum/keycodes.h -qmk generate-keycodes-tests --version latest -o tests/test_common/keycode_table.cpp for lang in $(find data/constants/keycodes/extras/ -type f -exec basename '{}' \; | sed "s/keycodes_\(.*\)_[0-9].*/\1/"); do qmk generate-keycode-extras --version latest --lang $lang -o quantum/keymap_extras/keymap_$lang.h From 2b00b846dce1d1267dfdb2a3c2972a367cc0dd44 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Fri, 21 Mar 2025 23:38:34 +1100 Subject: [PATCH 290/365] Non-volatile memory data repository pattern (#24356) * First batch of eeconfig conversions. * Offset and length for datablocks. * `via`, `dynamic_keymap`. * Fix filename. * Commentary. * wilba leds * satisfaction75 * satisfaction75 * more keyboard whack-a-mole * satisfaction75 * omnikeyish * more whack-a-mole * `generic_features.mk` to automatically pick up nvm repositories * thievery * deferred variable resolve * whitespace * convert api to structs/unions * convert api to structs/unions * convert api to structs/unions * fixups * code-side docs * code size fix * rollback * nvm_xxxxx_erase * Updated location of eeconfig magic numbers so non-EEPROM nvm drivers can use them too. * Fixup build. * Fixup compilation error with encoders. * Build fixes. * Add `via_ci` keymap to onekey to exercise VIA bindings (and thus dynamic keymap et.al.), fixup compilation errors based on preprocessor+sizeof. * Build failure rectification. --- builddefs/common_features.mk | 2 + builddefs/generic_features.mk | 1 + drivers/eeprom/eeprom_transient.h | 2 +- keyboards/akko/5087/5087.c | 2 +- .../lib/satisfaction75/satisfaction_core.c | 105 ++--- .../lib/satisfaction75/satisfaction_core.h | 11 +- .../lib/satisfaction75/satisfaction_encoder.c | 17 +- .../lib/satisfaction75/satisfaction_oled.c | 2 +- keyboards/cannonkeys/satisfaction75/config.h | 5 +- .../cannonkeys/satisfaction75_hs/config.h | 5 + keyboards/cipulot/common/ec_board.c | 4 +- keyboards/cipulot/common/eeprom_tools.h | 26 -- keyboards/cipulot/common/via_ec.c | 7 +- keyboards/cipulot/ec_980c/ec_980c.c | 4 +- keyboards/cipulot/ec_typek/ec_typek.c | 4 +- keyboards/contra/keymaps/default/keymap.c | 4 +- .../dm9records/plaid/keymaps/default/keymap.c | 4 +- .../handwired/onekey/keymaps/via_ci/config.h | 4 + .../handwired/onekey/keymaps/via_ci/keymap.c | 30 ++ .../onekey/keymaps/via_ci/keymap.json | 7 + keyboards/handwired/onekey/teensy_32/rules.mk | 1 + keyboards/handwired/onekey/teensy_lc/rules.mk | 2 +- .../ortho_brass/keymaps/default/keymap.c | 4 +- keyboards/helix/rev2/rev2.c | 2 +- keyboards/helix/rev3_4rows/rev3_4rows.c | 2 +- keyboards/helix/rev3_5rows/rev3_5rows.c | 2 +- .../nyx/rev1/lib/startup_swirl_anim.h | 3 +- keyboards/inland/kb83/kb83.c | 2 +- keyboards/jian/keymaps/advanced/keymap.c | 4 +- keyboards/monsgeek/m1/m1.c | 2 +- keyboards/monsgeek/m3/m3.c | 2 +- keyboards/omnikeyish/dynamic_macro.c | 1 + keyboards/planck/keymaps/default/keymap.c | 4 +- .../planck/rev7/keymaps/default/keymap.c | 4 +- keyboards/rocketboard_16/keycode_lookup.c | 1 + .../splitography/keymaps/default/keymap.c | 4 +- .../keymap.c | 4 +- .../splitography/keymaps/dvorak/keymap.c | 4 +- keyboards/system76/launch_1/launch_1.c | 3 +- keyboards/vitamins_included/rev2/rev2.c | 2 +- keyboards/wilba_tech/wt_main.c | 59 +-- keyboards/wilba_tech/wt_mono_backlight.c | 2 + keyboards/wilba_tech/wt_rgb_backlight.c | 2 + keyboards/xelus/la_plus/rgb_matrix_kb.inc | 2 +- quantum/action_util.c | 2 +- quantum/audio/audio.c | 12 +- quantum/audio/audio.h | 2 +- quantum/backlight/backlight.c | 31 +- quantum/backlight/backlight.h | 8 +- quantum/command.c | 6 +- quantum/dynamic_keymap.c | 203 ++------ quantum/dynamic_keymap.h | 9 +- quantum/eeconfig.c | 432 +++++++++--------- quantum/eeconfig.h | 156 +++---- quantum/haptic.c | 26 +- quantum/haptic.h | 2 +- quantum/keyboard.c | 6 +- quantum/keycode_config.h | 2 +- quantum/led_matrix/led_matrix.c | 4 +- quantum/led_matrix/led_matrix.h | 2 +- quantum/led_matrix/led_matrix_types.h | 2 +- quantum/logging/debug.h | 2 +- quantum/nvm/eeprom/nvm_dynamic_keymap.c | 193 ++++++++ quantum/nvm/eeprom/nvm_eeconfig.c | 292 ++++++++++++ .../nvm/eeprom/nvm_eeprom_eeconfig_internal.h | 59 +++ quantum/nvm/eeprom/nvm_eeprom_via_internal.h | 22 + quantum/nvm/eeprom/nvm_via.c | 77 ++++ quantum/nvm/nvm_dynamic_keymap.h | 27 ++ quantum/nvm/nvm_eeconfig.h | 105 +++++ quantum/nvm/nvm_via.h | 17 + quantum/nvm/readme.md | 30 ++ quantum/nvm/rules.mk | 31 ++ quantum/os_detection.h | 3 + quantum/process_keycode/process_autocorrect.c | 6 +- quantum/process_keycode/process_clicky.c | 6 +- quantum/process_keycode/process_magic.c | 4 +- quantum/process_keycode/process_steno.c | 7 +- quantum/rgb_matrix/rgb_matrix.c | 4 +- quantum/rgb_matrix/rgb_matrix.h | 4 +- quantum/rgb_matrix/rgb_matrix_types.h | 2 +- quantum/rgblight/rgblight.c | 45 +- quantum/rgblight/rgblight.h | 5 +- quantum/unicode/unicode.c | 4 +- quantum/unicode/unicode.h | 2 +- quantum/via.c | 60 +-- quantum/via.h | 25 +- tests/test_common/test_fixture.cpp | 2 +- 87 files changed, 1464 insertions(+), 839 deletions(-) delete mode 100644 keyboards/cipulot/common/eeprom_tools.h create mode 100644 keyboards/handwired/onekey/keymaps/via_ci/config.h create mode 100644 keyboards/handwired/onekey/keymaps/via_ci/keymap.c create mode 100644 keyboards/handwired/onekey/keymaps/via_ci/keymap.json create mode 100644 keyboards/handwired/onekey/teensy_32/rules.mk create mode 100644 quantum/nvm/eeprom/nvm_dynamic_keymap.c create mode 100644 quantum/nvm/eeprom/nvm_eeconfig.c create mode 100644 quantum/nvm/eeprom/nvm_eeprom_eeconfig_internal.h create mode 100644 quantum/nvm/eeprom/nvm_eeprom_via_internal.h create mode 100644 quantum/nvm/eeprom/nvm_via.c create mode 100644 quantum/nvm/nvm_dynamic_keymap.h create mode 100644 quantum/nvm/nvm_eeconfig.h create mode 100644 quantum/nvm/nvm_via.h create mode 100644 quantum/nvm/readme.md create mode 100644 quantum/nvm/rules.mk diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index cbfbbcced56..802e01de430 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -30,6 +30,8 @@ QUANTUM_SRC += \ $(QUANTUM_DIR)/logging/sendchar.c \ $(QUANTUM_DIR)/process_keycode/process_default_layer.c \ +include $(QUANTUM_DIR)/nvm/rules.mk + VPATH += $(QUANTUM_DIR)/logging # Fall back to lib/printf if there is no platform provided print ifeq ("$(wildcard $(PLATFORM_PATH)/$(PLATFORM_KEY)/printf.mk)","") diff --git a/builddefs/generic_features.mk b/builddefs/generic_features.mk index 015a804d91f..d39727f23bf 100644 --- a/builddefs/generic_features.mk +++ b/builddefs/generic_features.mk @@ -61,6 +61,7 @@ define HANDLE_GENERIC_FEATURE SRC += $$(wildcard $$(QUANTUM_DIR)/process_keycode/process_$2.c) SRC += $$(wildcard $$(QUANTUM_DIR)/$2/$2.c) SRC += $$(wildcard $$(QUANTUM_DIR)/$2.c) + SRC += $$(wildcard $$(QUANTUM_DIR)/nvm/$$(NVM_DRIVER_LOWER)/nvm_$2.c) VPATH += $$(wildcard $$(QUANTUM_DIR)/$2/) OPT_DEFS += -D$1_ENABLE endef diff --git a/drivers/eeprom/eeprom_transient.h b/drivers/eeprom/eeprom_transient.h index 687b8619fe5..0483fd58b9c 100644 --- a/drivers/eeprom/eeprom_transient.h +++ b/drivers/eeprom/eeprom_transient.h @@ -20,6 +20,6 @@ The size of the transient EEPROM buffer size. */ #ifndef TRANSIENT_EEPROM_SIZE -# include "eeconfig.h" +# include "nvm_eeprom_eeconfig_internal.h" # define TRANSIENT_EEPROM_SIZE (((EECONFIG_SIZE + 3) / 4) * 4) // based off eeconfig's current usage, aligned to 4-byte sizes, to deal with LTO #endif diff --git a/keyboards/akko/5087/5087.c b/keyboards/akko/5087/5087.c index 996f8c25850..27439c20ef7 100644 --- a/keyboards/akko/5087/5087.c +++ b/keyboards/akko/5087/5087.c @@ -164,7 +164,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t* record) { if (record->event.pressed) { set_single_persistent_default_layer(MAC_B); keymap_config.no_gui = 0; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } return false; case QK_RGB_MATRIX_TOGGLE: diff --git a/keyboards/cannonkeys/lib/satisfaction75/satisfaction_core.c b/keyboards/cannonkeys/lib/satisfaction75/satisfaction_core.c index 6f76582e4b2..a410480d7d9 100644 --- a/keyboards/cannonkeys/lib/satisfaction75/satisfaction_core.c +++ b/keyboards/cannonkeys/lib/satisfaction75/satisfaction_core.c @@ -53,10 +53,26 @@ void board_init(void) { SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP); } +uint32_t read_custom_config(void *data, uint32_t offset, uint32_t length) { +#ifdef VIA_ENABLE + return via_read_custom_config(data, offset, length); +#else + return eeconfig_read_kb_datablock(data, offset, length); +#endif +} + +uint32_t write_custom_config(const void *data, uint32_t offset, uint32_t length) { +#ifdef VIA_ENABLE + return via_update_custom_config(data, offset, length); +#else + return eeconfig_update_kb_datablock(data, offset, length); +#endif +} + void keyboard_post_init_kb(void) { /* This is a workaround to some really weird behavior - Without this code, the OLED will turn on, but not when you initially plug the keyboard in. + Without this code, the OLED will turn on, but not when you initially plug the keyboard in. You have to manually trigger a user reset to get the OLED to initialize properly I'm not sure what the root cause is at this time, but this workaround fixes it. */ @@ -74,11 +90,11 @@ void keyboard_post_init_kb(void) { void custom_set_value(uint8_t *data) { uint8_t *value_id = &(data[0]); uint8_t *value_data = &(data[1]); - + switch ( *value_id ) { case id_oled_default_mode: { - eeprom_update_byte((uint8_t*)EEPROM_DEFAULT_OLED, value_data[0]); + write_custom_config(&value_data[0], EEPROM_DEFAULT_OLED_OFFSET, 1); break; } case id_oled_mode: @@ -92,7 +108,7 @@ void custom_set_value(uint8_t *data) { uint8_t index = value_data[0]; uint8_t enable = value_data[1]; enabled_encoder_modes = (enabled_encoder_modes & ~(1< #include +#include + #include "via.h" // only for EEPROM address #include "satisfaction_keycodes.h" -#define EEPROM_ENABLED_ENCODER_MODES (VIA_EEPROM_CUSTOM_CONFIG_ADDR) -#define EEPROM_DEFAULT_OLED (VIA_EEPROM_CUSTOM_CONFIG_ADDR+1) -#define EEPROM_CUSTOM_ENCODER (VIA_EEPROM_CUSTOM_CONFIG_ADDR+2) +#define EEPROM_ENABLED_ENCODER_MODES_OFFSET 0 +#define EEPROM_DEFAULT_OLED_OFFSET 1 +#define EEPROM_CUSTOM_ENCODER_OFFSET 2 enum s75_keyboard_value_id { id_encoder_modes = 1, @@ -94,3 +96,6 @@ void oled_request_repaint(void); bool oled_task_needs_to_repaint(void); void custom_config_load(void); + +uint32_t read_custom_config(void *data, uint32_t offset, uint32_t length); +uint32_t write_custom_config(const void *data, uint32_t offset, uint32_t length); diff --git a/keyboards/cannonkeys/lib/satisfaction75/satisfaction_encoder.c b/keyboards/cannonkeys/lib/satisfaction75/satisfaction_encoder.c index 7e0b82e9e7a..87ff87ea66d 100644 --- a/keyboards/cannonkeys/lib/satisfaction75/satisfaction_encoder.c +++ b/keyboards/cannonkeys/lib/satisfaction75/satisfaction_encoder.c @@ -215,10 +215,13 @@ uint16_t handle_encoder_press(void){ uint16_t retrieve_custom_encoder_config(uint8_t encoder_idx, uint8_t behavior){ #ifdef DYNAMIC_KEYMAP_ENABLE - void* addr = (void*)(EEPROM_CUSTOM_ENCODER + (encoder_idx * 6) + (behavior * 2)); + uint32_t offset = EEPROM_CUSTOM_ENCODER_OFFSET + (encoder_idx * 6) + (behavior * 2); //big endian - uint16_t keycode = eeprom_read_byte(addr) << 8; - keycode |= eeprom_read_byte(addr + 1); + uint8_t hi, lo; + read_custom_config(&hi, offset+0, 1); + read_custom_config(&lo, offset+1, 1); + uint16_t keycode = hi << 8; + keycode |= lo; return keycode; #else return 0; @@ -227,8 +230,10 @@ uint16_t retrieve_custom_encoder_config(uint8_t encoder_idx, uint8_t behavior){ void set_custom_encoder_config(uint8_t encoder_idx, uint8_t behavior, uint16_t new_code){ #ifdef DYNAMIC_KEYMAP_ENABLE - void* addr = (void*)(EEPROM_CUSTOM_ENCODER + (encoder_idx * 6) + (behavior * 2)); - eeprom_update_byte(addr, (uint8_t)(new_code >> 8)); - eeprom_update_byte(addr + 1, (uint8_t)(new_code & 0xFF)); + uint32_t offset = EEPROM_CUSTOM_ENCODER_OFFSET + (encoder_idx * 6) + (behavior * 2); + uint8_t hi = new_code >> 8; + uint8_t lo = new_code & 0xFF; + write_custom_config(&hi, offset+0, 1); + write_custom_config(&lo, offset+1, 1); #endif } diff --git a/keyboards/cannonkeys/lib/satisfaction75/satisfaction_oled.c b/keyboards/cannonkeys/lib/satisfaction75/satisfaction_oled.c index 0361453c52b..815e84901df 100644 --- a/keyboards/cannonkeys/lib/satisfaction75/satisfaction_oled.c +++ b/keyboards/cannonkeys/lib/satisfaction75/satisfaction_oled.c @@ -8,7 +8,6 @@ #include "matrix.h" #include "led.h" #include "host.h" -#include "oled_driver.h" #include "progmem.h" #include @@ -16,6 +15,7 @@ void draw_default(void); void draw_clock(void); #ifdef OLED_ENABLE +#include "oled_driver.h" oled_rotation_t oled_init_kb(oled_rotation_t rotation) { return OLED_ROTATION_0; } diff --git a/keyboards/cannonkeys/satisfaction75/config.h b/keyboards/cannonkeys/satisfaction75/config.h index 969206b19a3..28bc6b286a6 100644 --- a/keyboards/cannonkeys/satisfaction75/config.h +++ b/keyboards/cannonkeys/satisfaction75/config.h @@ -42,4 +42,7 @@ // 6 for 3x custom encoder settings, left, right, and press (18 bytes) #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 20 - +// And if VIA isn't enabled, fall back to using standard QMK for configuration +#ifndef VIA_ENABLE +#define EECONFIG_KB_DATA_SIZE VIA_EEPROM_CUSTOM_CONFIG_SIZE +#endif diff --git a/keyboards/cannonkeys/satisfaction75_hs/config.h b/keyboards/cannonkeys/satisfaction75_hs/config.h index 658babd3c08..26c3e4080c4 100644 --- a/keyboards/cannonkeys/satisfaction75_hs/config.h +++ b/keyboards/cannonkeys/satisfaction75_hs/config.h @@ -40,5 +40,10 @@ // 6 for 3x custom encoder settings, left, right, and press (18 bytes) #define VIA_EEPROM_CUSTOM_CONFIG_SIZE 20 +// And if VIA isn't enabled, fall back to using standard QMK for configuration +#ifndef VIA_ENABLE +#define EECONFIG_KB_DATA_SIZE VIA_EEPROM_CUSTOM_CONFIG_SIZE +#endif + // VIA lighting is handled by the keyboard-level code #define VIA_CUSTOM_LIGHTING_ENABLE diff --git a/keyboards/cipulot/common/ec_board.c b/keyboards/cipulot/common/ec_board.c index 0ccb9f6d3c3..b15543e49e8 100644 --- a/keyboards/cipulot/common/ec_board.c +++ b/keyboards/cipulot/common/ec_board.c @@ -36,7 +36,7 @@ void eeconfig_init_kb(void) { } } // Write default value to EEPROM now - eeconfig_update_kb_datablock(&eeprom_ec_config); + eeconfig_update_kb_datablock(&eeprom_ec_config, 0, EECONFIG_KB_DATA_SIZE); eeconfig_init_user(); } @@ -44,7 +44,7 @@ void eeconfig_init_kb(void) { // On Keyboard startup void keyboard_post_init_kb(void) { // Read custom menu variables from memory - eeconfig_read_kb_datablock(&eeprom_ec_config); + eeconfig_read_kb_datablock(&eeprom_ec_config, 0, EECONFIG_KB_DATA_SIZE); // Set runtime values to EEPROM values ec_config.actuation_mode = eeprom_ec_config.actuation_mode; diff --git a/keyboards/cipulot/common/eeprom_tools.h b/keyboards/cipulot/common/eeprom_tools.h deleted file mode 100644 index b3c90d87592..00000000000 --- a/keyboards/cipulot/common/eeprom_tools.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright 2023 Cipulot - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#pragma once - -#include "eeprom.h" - -#if (EECONFIG_KB_DATA_SIZE) > 0 -# define EEPROM_KB_PARTIAL_UPDATE(__struct, __field) eeprom_update_block(&(__struct.__field), (void *)((void *)(EECONFIG_KB_DATABLOCK) + offsetof(typeof(__struct), __field)), sizeof(__struct.__field)) -#endif - -#if (EECONFIG_USER_DATA_SIZE) > 0 -# define EEPROM_USER_PARTIAL_UPDATE(__struct, __field) eeprom_update_block(&(__struct.__field), (void *)((void *)(EECONFIG_USER_DATABLOCK) + offsetof(typeof(__struct), __field)), sizeof(__struct.__field)) -#endif diff --git a/keyboards/cipulot/common/via_ec.c b/keyboards/cipulot/common/via_ec.c index ed34a579b22..7be6edd026a 100644 --- a/keyboards/cipulot/common/via_ec.c +++ b/keyboards/cipulot/common/via_ec.c @@ -13,7 +13,6 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#include "eeprom_tools.h" #include "ec_switch_matrix.h" #include "action.h" #include "print.h" @@ -73,7 +72,7 @@ void via_config_set_value(uint8_t *data) { uprintf("# Actuation Mode: Rapid Trigger #\n"); uprintf("#################################\n"); } - EEPROM_KB_PARTIAL_UPDATE(eeprom_ec_config, actuation_mode); + eeconfig_update_kb_datablock_field(eeprom_ec_config, actuation_mode); break; } case id_mode_0_actuation_threshold: { @@ -293,7 +292,7 @@ void ec_save_threshold_data(uint8_t option) { ec_rescale_values(3); ec_rescale_values(4); } - eeconfig_update_kb_datablock(&eeprom_ec_config); + eeconfig_update_kb_datablock(&eeprom_ec_config, 0, EECONFIG_KB_DATA_SIZE); uprintf("####################################\n"); uprintf("# New thresholds applied and saved #\n"); uprintf("####################################\n"); @@ -321,7 +320,7 @@ void ec_save_bottoming_reading(void) { ec_rescale_values(2); ec_rescale_values(3); ec_rescale_values(4); - eeconfig_update_kb_datablock(&eeprom_ec_config); + eeconfig_update_kb_datablock(&eeprom_ec_config, 0, EECONFIG_KB_DATA_SIZE); } // Show the calibration data diff --git a/keyboards/cipulot/ec_980c/ec_980c.c b/keyboards/cipulot/ec_980c/ec_980c.c index eaa636ede6a..7a2062a4e48 100644 --- a/keyboards/cipulot/ec_980c/ec_980c.c +++ b/keyboards/cipulot/ec_980c/ec_980c.c @@ -44,7 +44,7 @@ void eeconfig_init_kb(void) { } } // Write default value to EEPROM now - eeconfig_update_kb_datablock(&eeprom_ec_config); + eeconfig_update_kb_datablock(&eeprom_ec_config, 0, EECONFIG_KB_DATA_SIZE); eeconfig_init_user(); } @@ -52,7 +52,7 @@ void eeconfig_init_kb(void) { // On Keyboard startup void keyboard_post_init_kb(void) { // Read custom menu variables from memory - eeconfig_read_kb_datablock(&eeprom_ec_config); + eeconfig_read_kb_datablock(&eeprom_ec_config, 0, EECONFIG_KB_DATA_SIZE); // Set runtime values to EEPROM values ec_config.actuation_mode = eeprom_ec_config.actuation_mode; diff --git a/keyboards/cipulot/ec_typek/ec_typek.c b/keyboards/cipulot/ec_typek/ec_typek.c index d4241f66f1e..31616afc02b 100644 --- a/keyboards/cipulot/ec_typek/ec_typek.c +++ b/keyboards/cipulot/ec_typek/ec_typek.c @@ -44,7 +44,7 @@ void eeconfig_init_kb(void) { } } // Write default value to EEPROM now - eeconfig_update_kb_datablock(&eeprom_ec_config); + eeconfig_update_kb_datablock(&eeprom_ec_config, 0, EECONFIG_KB_DATA_SIZE); eeconfig_init_user(); } @@ -52,7 +52,7 @@ void eeconfig_init_kb(void) { // On Keyboard startup void keyboard_post_init_kb(void) { // Read custom menu variables from memory - eeconfig_read_kb_datablock(&eeprom_ec_config); + eeconfig_read_kb_datablock(&eeprom_ec_config, 0, EECONFIG_KB_DATA_SIZE); // Set runtime values to EEPROM values ec_config.actuation_mode = eeprom_ec_config.actuation_mode; diff --git a/keyboards/contra/keymaps/default/keymap.c b/keyboards/contra/keymaps/default/keymap.c index 415e22e81a1..645005769a0 100644 --- a/keyboards/contra/keymaps/default/keymap.c +++ b/keyboards/contra/keymaps/default/keymap.c @@ -222,9 +222,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (!eeconfig_is_enabled()) { eeconfig_init(); } - keymap_config.raw = eeconfig_read_keymap(); + eeconfig_read_keymap(&keymap_config); keymap_config.nkro = 1; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } return false; break; diff --git a/keyboards/dm9records/plaid/keymaps/default/keymap.c b/keyboards/dm9records/plaid/keymaps/default/keymap.c index 0d8d24c5755..3ee327f65e1 100644 --- a/keyboards/dm9records/plaid/keymaps/default/keymap.c +++ b/keyboards/dm9records/plaid/keymaps/default/keymap.c @@ -311,9 +311,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (!eeconfig_is_enabled()) { eeconfig_init(); } - keymap_config.raw = eeconfig_read_keymap(); + eeconfig_read_keymap(&keymap_config); keymap_config.nkro = 1; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } return false; break; diff --git a/keyboards/handwired/onekey/keymaps/via_ci/config.h b/keyboards/handwired/onekey/keymaps/via_ci/config.h new file mode 100644 index 00000000000..ec6f1e1ec07 --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/via_ci/config.h @@ -0,0 +1,4 @@ +// Copyright 2025 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once +#define TRANSIENT_EEPROM_SIZE 160 diff --git a/keyboards/handwired/onekey/keymaps/via_ci/keymap.c b/keyboards/handwired/onekey/keymaps/via_ci/keymap.c new file mode 100644 index 00000000000..8261fc63296 --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/via_ci/keymap.c @@ -0,0 +1,30 @@ +// Copyright 2025 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +enum custom_keycodes { + KC_HELLO = SAFE_RANGE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + LAYOUT_ortho_1x1(KC_HELLO) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_HELLO: + if (record->event.pressed) { + send_string_P("Hello world!"); + } + return false; + } + return true; +} + +void keyboard_post_init_user(void) { + // Customise these values to desired behaviour + debug_enable=true; + debug_matrix=true; + //debug_keyboard=true; + //debug_mouse=true; +} diff --git a/keyboards/handwired/onekey/keymaps/via_ci/keymap.json b/keyboards/handwired/onekey/keymaps/via_ci/keymap.json new file mode 100644 index 00000000000..edb78b57428 --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/via_ci/keymap.json @@ -0,0 +1,7 @@ +{ + "config": { + "features": { + "via": true + } + } +} diff --git a/keyboards/handwired/onekey/teensy_32/rules.mk b/keyboards/handwired/onekey/teensy_32/rules.mk new file mode 100644 index 00000000000..d5978ba6f5b --- /dev/null +++ b/keyboards/handwired/onekey/teensy_32/rules.mk @@ -0,0 +1 @@ +EEPROM_DRIVER = transient diff --git a/keyboards/handwired/onekey/teensy_lc/rules.mk b/keyboards/handwired/onekey/teensy_lc/rules.mk index abd2f7fce97..d1a53e95d70 100644 --- a/keyboards/handwired/onekey/teensy_lc/rules.mk +++ b/keyboards/handwired/onekey/teensy_lc/rules.mk @@ -1,2 +1,2 @@ USE_CHIBIOS_CONTRIB = yes - +EEPROM_DRIVER = transient diff --git a/keyboards/handwired/ortho_brass/keymaps/default/keymap.c b/keyboards/handwired/ortho_brass/keymaps/default/keymap.c index fc431672111..47f731c2c9a 100644 --- a/keyboards/handwired/ortho_brass/keymaps/default/keymap.c +++ b/keyboards/handwired/ortho_brass/keymaps/default/keymap.c @@ -182,9 +182,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (!eeconfig_is_enabled()) { eeconfig_init(); } - keymap_config.raw = eeconfig_read_keymap(); + eeconfig_read_keymap(&keymap_config); keymap_config.nkro = 1; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } return false; break; diff --git a/keyboards/helix/rev2/rev2.c b/keyboards/helix/rev2/rev2.c index ded22bbe933..7502ad0552f 100644 --- a/keyboards/helix/rev2/rev2.c +++ b/keyboards/helix/rev2/rev2.c @@ -32,7 +32,7 @@ void set_mac_mode_kb(bool macmode) { * https://github.com/qmk/qmk_firmware/blob/fb4a6ad30ea7a648acd59793ed4a30c3a8d8dc32/quantum/process_keycode/process_magic.c#L80-L81 */ keymap_config.swap_lalt_lgui = keymap_config.swap_ralt_rgui = !macmode; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } void matrix_init_kb(void) { diff --git a/keyboards/helix/rev3_4rows/rev3_4rows.c b/keyboards/helix/rev3_4rows/rev3_4rows.c index ff61027a961..7f655b6852d 100644 --- a/keyboards/helix/rev3_4rows/rev3_4rows.c +++ b/keyboards/helix/rev3_4rows/rev3_4rows.c @@ -27,7 +27,7 @@ void set_mac_mode(bool macmode) { * https://github.com/qmk/qmk_firmware/blob/fb4a6ad30ea7a648acd59793ed4a30c3a8d8dc32/quantum/process_keycode/process_magic.c#L80-L81 */ keymap_config.swap_lalt_lgui = keymap_config.swap_ralt_rgui = !macmode; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } #ifdef DIP_SWITCH_ENABLE diff --git a/keyboards/helix/rev3_5rows/rev3_5rows.c b/keyboards/helix/rev3_5rows/rev3_5rows.c index 28fa314a7ba..af7276a2b52 100644 --- a/keyboards/helix/rev3_5rows/rev3_5rows.c +++ b/keyboards/helix/rev3_5rows/rev3_5rows.c @@ -27,7 +27,7 @@ void set_mac_mode(bool macmode) { * https://github.com/qmk/qmk_firmware/blob/fb4a6ad30ea7a648acd59793ed4a30c3a8d8dc32/quantum/process_keycode/process_magic.c#L80-L81 */ keymap_config.swap_lalt_lgui = keymap_config.swap_ralt_rgui = !macmode; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } #ifdef DIP_SWITCH_ENABLE diff --git a/keyboards/horrortroll/nyx/rev1/lib/startup_swirl_anim.h b/keyboards/horrortroll/nyx/rev1/lib/startup_swirl_anim.h index f26f07fe12f..87e2e813a4b 100644 --- a/keyboards/horrortroll/nyx/rev1/lib/startup_swirl_anim.h +++ b/keyboards/horrortroll/nyx/rev1/lib/startup_swirl_anim.h @@ -18,6 +18,7 @@ #include #include #include +#include "eeconfig.h" #define LED_TRAIL 10 @@ -105,7 +106,7 @@ static void swirl_set_color(hsv_t hsv) { traverse_matrix(); if (!(top <= bottom && left <= right)) { - eeprom_read_block(&rgb_matrix_config, EECONFIG_RGB_MATRIX, sizeof(rgb_matrix_config)); + eeconfig_read_rgb_matrix(&rgb_matrix_config); rgb_matrix_mode_noeeprom(rgb_matrix_config.mode); return; } diff --git a/keyboards/inland/kb83/kb83.c b/keyboards/inland/kb83/kb83.c index 1052131a915..41a3ad8df72 100644 --- a/keyboards/inland/kb83/kb83.c +++ b/keyboards/inland/kb83/kb83.c @@ -317,7 +317,7 @@ bool dip_switch_update_kb(uint8_t index, bool active) { } if(active){ keymap_config.no_gui = 0; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } return true; } diff --git a/keyboards/jian/keymaps/advanced/keymap.c b/keyboards/jian/keymaps/advanced/keymap.c index eaf57cdd78d..e3e58a0e9f2 100644 --- a/keyboards/jian/keymaps/advanced/keymap.c +++ b/keyboards/jian/keymaps/advanced/keymap.c @@ -472,9 +472,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (!eeconfig_is_enabled()) { eeconfig_init(); } - keymap_config.raw = eeconfig_read_keymap(); + eeconfig_read_keymap(&keymap_config); keymap_config.nkro = 1; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } return false; case EXT_PLV: diff --git a/keyboards/monsgeek/m1/m1.c b/keyboards/monsgeek/m1/m1.c index 60479ab8017..2f7365e5622 100644 --- a/keyboards/monsgeek/m1/m1.c +++ b/keyboards/monsgeek/m1/m1.c @@ -190,7 +190,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { set_single_persistent_default_layer(MAC_B); layer_state_set(1<event.pressed) { set_single_persistent_default_layer(MAC_B); keymap_config.no_gui = 0; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } return false; case GU_TOGG: diff --git a/keyboards/omnikeyish/dynamic_macro.c b/keyboards/omnikeyish/dynamic_macro.c index b990a09a133..99b6d173b88 100644 --- a/keyboards/omnikeyish/dynamic_macro.c +++ b/keyboards/omnikeyish/dynamic_macro.c @@ -1,5 +1,6 @@ #include "omnikeyish.h" #include +#include "eeprom.h" dynamic_macro_t dynamic_macros[DYNAMIC_MACRO_COUNT]; diff --git a/keyboards/planck/keymaps/default/keymap.c b/keyboards/planck/keymaps/default/keymap.c index cc8a69cecaa..c08e58653a1 100644 --- a/keyboards/planck/keymaps/default/keymap.c +++ b/keyboards/planck/keymaps/default/keymap.c @@ -215,9 +215,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (!eeconfig_is_enabled()) { eeconfig_init(); } - keymap_config.raw = eeconfig_read_keymap(); + eeconfig_read_keymap(&keymap_config); keymap_config.nkro = 1; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } return false; break; diff --git a/keyboards/planck/rev7/keymaps/default/keymap.c b/keyboards/planck/rev7/keymaps/default/keymap.c index 47ded8aba53..6880e2fa945 100644 --- a/keyboards/planck/rev7/keymaps/default/keymap.c +++ b/keyboards/planck/rev7/keymaps/default/keymap.c @@ -255,9 +255,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (!eeconfig_is_enabled()) { eeconfig_init(); } - keymap_config.raw = eeconfig_read_keymap(); + eeconfig_read_keymap(&keymap_config); keymap_config.nkro = 1; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } return false; break; diff --git a/keyboards/rocketboard_16/keycode_lookup.c b/keyboards/rocketboard_16/keycode_lookup.c index 41fd5c8537d..a29808d04d0 100644 --- a/keyboards/rocketboard_16/keycode_lookup.c +++ b/keyboards/rocketboard_16/keycode_lookup.c @@ -14,6 +14,7 @@ * along with this program. If not, see . */ +#include #include "keycode_lookup.h" #include "quantum_keycodes.h" #include "keymap_us.h" diff --git a/keyboards/splitography/keymaps/default/keymap.c b/keyboards/splitography/keymaps/default/keymap.c index 9c6c7d6b26e..5d26eb96825 100644 --- a/keyboards/splitography/keymaps/default/keymap.c +++ b/keyboards/splitography/keymaps/default/keymap.c @@ -214,9 +214,9 @@ void plover(keyrecord_t *record) { if (!eeconfig_is_enabled()) { eeconfig_init(); } - keymap_config.raw = eeconfig_read_keymap(); + eeconfig_read_keymap(&keymap_config); keymap_config.nkro = 1; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } } diff --git a/keyboards/splitography/keymaps/default_with_ctl_shft_alt_switched/keymap.c b/keyboards/splitography/keymaps/default_with_ctl_shft_alt_switched/keymap.c index 787f448ffbe..a3cb1837589 100644 --- a/keyboards/splitography/keymaps/default_with_ctl_shft_alt_switched/keymap.c +++ b/keyboards/splitography/keymaps/default_with_ctl_shft_alt_switched/keymap.c @@ -214,9 +214,9 @@ void plover(keyrecord_t *record) { if (!eeconfig_is_enabled()) { eeconfig_init(); } - keymap_config.raw = eeconfig_read_keymap(); + eeconfig_read_keymap(&keymap_config); keymap_config.nkro = 1; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } } diff --git a/keyboards/splitography/keymaps/dvorak/keymap.c b/keyboards/splitography/keymaps/dvorak/keymap.c index 992cfd0abb0..0edec7043c8 100644 --- a/keyboards/splitography/keymaps/dvorak/keymap.c +++ b/keyboards/splitography/keymaps/dvorak/keymap.c @@ -214,9 +214,9 @@ void plover(keyrecord_t *record) { if (!eeconfig_is_enabled()) { eeconfig_init(); } - keymap_config.raw = eeconfig_read_keymap(); + eeconfig_read_keymap(&keymap_config); keymap_config.nkro = 1; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } } diff --git a/keyboards/system76/launch_1/launch_1.c b/keyboards/system76/launch_1/launch_1.c index c9af479bf59..c01fb7b01d1 100644 --- a/keyboards/system76/launch_1/launch_1.c +++ b/keyboards/system76/launch_1/launch_1.c @@ -16,6 +16,7 @@ */ #include "quantum.h" +#include "eeprom.h" #include "usb_mux.h" @@ -73,7 +74,7 @@ led_config_t g_led_config = { { } }; #endif // RGB_MATRIX_ENABLE -bool eeprom_is_valid(void) { +bool eeprom_is_valid(void) { return ( eeprom_read_word(((void *)EEPROM_MAGIC_ADDR)) == EEPROM_MAGIC && eeprom_read_byte(((void *)EEPROM_VERSION_ADDR)) == EEPROM_VERSION diff --git a/keyboards/vitamins_included/rev2/rev2.c b/keyboards/vitamins_included/rev2/rev2.c index e445a3da456..28bd73cc75a 100644 --- a/keyboards/vitamins_included/rev2/rev2.c +++ b/keyboards/vitamins_included/rev2/rev2.c @@ -12,7 +12,7 @@ bool is_keyboard_left(void) { gpio_set_pin_input(SPLIT_HAND_PIN); return x; #elif defined(EE_HANDS) - return eeprom_read_byte(EECONFIG_HANDEDNESS); + return eeconfig_read_handedness(); #endif return is_keyboard_master(); diff --git a/keyboards/wilba_tech/wt_main.c b/keyboards/wilba_tech/wt_main.c index 92c43c794da..7e56d98356c 100644 --- a/keyboards/wilba_tech/wt_main.c +++ b/keyboards/wilba_tech/wt_main.c @@ -33,7 +33,7 @@ // Called from via_init() if VIA_ENABLE // Called from matrix_init_kb() if not VIA_ENABLE -void via_init_kb(void) +void wt_main_init(void) { // This checks both an EEPROM reset (from bootmagic lite, keycodes) // and also firmware build date (from via_eeprom_is_valid()) @@ -64,11 +64,9 @@ void via_init_kb(void) void matrix_init_kb(void) { // If VIA is disabled, we still need to load backlight settings. - // Call via_init_kb() the same way as via_init(), with setting - // EEPROM valid afterwards. + // Call via_init_kb() the same way as via_init_kb() does. #ifndef VIA_ENABLE - via_init_kb(); - via_eeprom_set_valid(true); + wt_main_init(); #endif // VIA_ENABLE matrix_init_user(); @@ -109,6 +107,10 @@ void suspend_wakeup_init_kb(void) // Moving this to the bottom of this source file is a workaround // for an intermittent compiler error for Atmel compiler. #ifdef VIA_ENABLE +void via_init_kb(void) { + wt_main_init(); +} + void via_custom_value_command_kb(uint8_t *data, uint8_t length) { uint8_t *command_id = &(data[0]); uint8_t *channel_id = &(data[1]); @@ -159,50 +161,3 @@ void via_set_device_indication(uint8_t value) } #endif // VIA_ENABLE - -// -// In the case of VIA being disabled, we still need to check if -// keyboard level EEPROM memory is valid before loading. -// Thus these are copies of the same functions in VIA, since -// the backlight settings reuse VIA's EEPROM magic/version, -// and the ones in via.c won't be compiled in. -// -// Yes, this is sub-optimal, and is only here for completeness -// (i.e. catering to the 1% of people that want wilba.tech LED bling -// AND want persistent settings BUT DON'T want to use dynamic keymaps/VIA). -// -#ifndef VIA_ENABLE - -bool via_eeprom_is_valid(void) -{ - char *p = QMK_BUILDDATE; // e.g. "2019-11-05-11:29:54" - uint8_t magic0 = ( ( p[2] & 0x0F ) << 4 ) | ( p[3] & 0x0F ); - uint8_t magic1 = ( ( p[5] & 0x0F ) << 4 ) | ( p[6] & 0x0F ); - uint8_t magic2 = ( ( p[8] & 0x0F ) << 4 ) | ( p[9] & 0x0F ); - - return (eeprom_read_byte( (void*)VIA_EEPROM_MAGIC_ADDR+0 ) == magic0 && - eeprom_read_byte( (void*)VIA_EEPROM_MAGIC_ADDR+1 ) == magic1 && - eeprom_read_byte( (void*)VIA_EEPROM_MAGIC_ADDR+2 ) == magic2 ); -} - -void via_eeprom_set_valid(bool valid) -{ - char *p = QMK_BUILDDATE; // e.g. "2019-11-05-11:29:54" - uint8_t magic0 = ( ( p[2] & 0x0F ) << 4 ) | ( p[3] & 0x0F ); - uint8_t magic1 = ( ( p[5] & 0x0F ) << 4 ) | ( p[6] & 0x0F ); - uint8_t magic2 = ( ( p[8] & 0x0F ) << 4 ) | ( p[9] & 0x0F ); - - eeprom_update_byte( (void*)VIA_EEPROM_MAGIC_ADDR+0, valid ? magic0 : 0xFF); - eeprom_update_byte( (void*)VIA_EEPROM_MAGIC_ADDR+1, valid ? magic1 : 0xFF); - eeprom_update_byte( (void*)VIA_EEPROM_MAGIC_ADDR+2, valid ? magic2 : 0xFF); -} - -void via_eeprom_reset(void) -{ - // Set the VIA specific EEPROM state as invalid. - via_eeprom_set_valid(false); - // Set the TMK/QMK EEPROM state as invalid. - eeconfig_disable(); -} - -#endif // VIA_ENABLE diff --git a/keyboards/wilba_tech/wt_mono_backlight.c b/keyboards/wilba_tech/wt_mono_backlight.c index 01fefc8ecc1..8359aab1350 100644 --- a/keyboards/wilba_tech/wt_mono_backlight.c +++ b/keyboards/wilba_tech/wt_mono_backlight.c @@ -25,6 +25,8 @@ #include "progmem.h" #include "eeprom.h" +#include "nvm_eeprom_eeconfig_internal.h" // expose EEPROM addresses, no appetite to move legacy/deprecated code to nvm +#include "nvm_eeprom_via_internal.h" // expose EEPROM addresses, no appetite to move legacy/deprecated code to nvm #include "via.h" // uses EEPROM address, lighting value IDs #define MONO_BACKLIGHT_CONFIG_EEPROM_ADDR (VIA_EEPROM_CUSTOM_CONFIG_ADDR) diff --git a/keyboards/wilba_tech/wt_rgb_backlight.c b/keyboards/wilba_tech/wt_rgb_backlight.c index e52d002060a..744bcb262d3 100644 --- a/keyboards/wilba_tech/wt_rgb_backlight.c +++ b/keyboards/wilba_tech/wt_rgb_backlight.c @@ -66,6 +66,8 @@ #include "quantum/color.h" #include "eeprom.h" +#include "nvm_eeprom_eeconfig_internal.h" // expose EEPROM addresses, no appetite to move legacy/deprecated code to nvm +#include "nvm_eeprom_via_internal.h" // expose EEPROM addresses, no appetite to move legacy/deprecated code to nvm #include "via.h" // uses EEPROM address, lighting value IDs #define RGB_BACKLIGHT_CONFIG_EEPROM_ADDR (VIA_EEPROM_CUSTOM_CONFIG_ADDR) diff --git a/keyboards/xelus/la_plus/rgb_matrix_kb.inc b/keyboards/xelus/la_plus/rgb_matrix_kb.inc index 88dd2ab0a2f..93d52ec9d0c 100644 --- a/keyboards/xelus/la_plus/rgb_matrix_kb.inc +++ b/keyboards/xelus/la_plus/rgb_matrix_kb.inc @@ -31,7 +31,7 @@ static void startup_animation_setleds(effect_params_t* params, bool dots) { } else if (num == 0 || num == 1 || num == 2) { return; } else if (num >= 22) { - eeprom_read_block(&rgb_matrix_config, EECONFIG_RGB_MATRIX, sizeof(rgb_matrix_config)); + eeconfig_read_rgb_matrix(&rgb_matrix_config); rgb_matrix_mode_noeeprom(rgb_matrix_config.mode); return; } diff --git a/quantum/action_util.c b/quantum/action_util.c index c0dc4f38228..9fe17f2124b 100644 --- a/quantum/action_util.c +++ b/quantum/action_util.c @@ -220,7 +220,7 @@ bool is_oneshot_layer_active(void) { void oneshot_set(bool active) { if (keymap_config.oneshot_enable != active) { keymap_config.oneshot_enable = active; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED); dprintf("Oneshot: active: %d\n", active); } diff --git a/quantum/audio/audio.c b/quantum/audio/audio.c index 2cc3c2d6613..4e223f0c9a0 100644 --- a/quantum/audio/audio.c +++ b/quantum/audio/audio.c @@ -149,14 +149,14 @@ void audio_driver_start(void) { } void eeconfig_update_audio_current(void) { - eeconfig_update_audio(audio_config.raw); + eeconfig_update_audio(&audio_config); } void eeconfig_update_audio_default(void) { audio_config.valid = true; audio_config.enable = AUDIO_DEFAULT_ON; audio_config.clicky_enable = AUDIO_DEFAULT_CLICKY_ON; - eeconfig_update_audio(audio_config.raw); + eeconfig_update_audio(&audio_config); } void audio_init(void) { @@ -164,7 +164,7 @@ void audio_init(void) { return; } - audio_config.raw = eeconfig_read_audio(); + eeconfig_read_audio(&audio_config); if (!audio_config.valid) { dprintf("audio_init audio_config.valid = 0. Write default values to EEPROM.\n"); eeconfig_update_audio_default(); @@ -196,7 +196,7 @@ void audio_toggle(void) { stop_all_notes(); } audio_config.enable ^= 1; - eeconfig_update_audio(audio_config.raw); + eeconfig_update_audio(&audio_config); if (audio_config.enable) { audio_on_user(); } else { @@ -206,7 +206,7 @@ void audio_toggle(void) { void audio_on(void) { audio_config.enable = 1; - eeconfig_update_audio(audio_config.raw); + eeconfig_update_audio(&audio_config); audio_on_user(); PLAY_SONG(audio_on_song); } @@ -217,7 +217,7 @@ void audio_off(void) { wait_ms(100); audio_stop_all(); audio_config.enable = 0; - eeconfig_update_audio(audio_config.raw); + eeconfig_update_audio(&audio_config); } bool audio_is_on(void) { diff --git a/quantum/audio/audio.h b/quantum/audio/audio.h index 054331d6f33..93dc6f62b14 100644 --- a/quantum/audio/audio.h +++ b/quantum/audio/audio.h @@ -28,7 +28,7 @@ # include "audio_dac.h" #endif -typedef union { +typedef union audio_config_t { uint8_t raw; struct { bool enable : 1; diff --git a/quantum/backlight/backlight.c b/quantum/backlight/backlight.c index eb64dd71e8c..a7d2a45a515 100644 --- a/quantum/backlight/backlight.c +++ b/quantum/backlight/backlight.c @@ -16,7 +16,6 @@ along with this program. If not, see . */ #include "backlight.h" -#include "eeprom.h" #include "eeconfig.h" #include "debug.h" @@ -55,7 +54,7 @@ static void backlight_check_config(void) { * FIXME: needs doc */ void backlight_init(void) { - backlight_config.raw = eeconfig_read_backlight(); + eeconfig_read_backlight(&backlight_config); if (!backlight_config.valid) { dprintf("backlight_init backlight_config.valid = 0. Write default values to EEPROM.\n"); eeconfig_update_backlight_default(); @@ -74,7 +73,7 @@ void backlight_increase(void) { backlight_config.level++; } backlight_config.enable = 1; - eeconfig_update_backlight(backlight_config.raw); + eeconfig_update_backlight(&backlight_config); dprintf("backlight increase: %u\n", backlight_config.level); backlight_set(backlight_config.level); } @@ -87,7 +86,7 @@ void backlight_decrease(void) { if (backlight_config.level > 0) { backlight_config.level--; backlight_config.enable = !!backlight_config.level; - eeconfig_update_backlight(backlight_config.raw); + eeconfig_update_backlight(&backlight_config); } dprintf("backlight decrease: %u\n", backlight_config.level); backlight_set(backlight_config.level); @@ -116,7 +115,7 @@ void backlight_enable(void) { backlight_config.enable = true; if (backlight_config.raw == 1) // enabled but level == 0 backlight_config.level = 1; - eeconfig_update_backlight(backlight_config.raw); + eeconfig_update_backlight(&backlight_config); dprintf("backlight enable\n"); backlight_set(backlight_config.level); } @@ -129,7 +128,7 @@ void backlight_disable(void) { if (!backlight_config.enable) return; // do nothing if backlight is already off backlight_config.enable = false; - eeconfig_update_backlight(backlight_config.raw); + eeconfig_update_backlight(&backlight_config); dprintf("backlight disable\n"); backlight_set(0); } @@ -152,7 +151,7 @@ void backlight_step(void) { backlight_config.level = 0; } backlight_config.enable = !!backlight_config.level; - eeconfig_update_backlight(backlight_config.raw); + eeconfig_update_backlight(&backlight_config); dprintf("backlight step: %u\n", backlight_config.level); backlight_set(backlight_config.level); } @@ -173,19 +172,11 @@ void backlight_level_noeeprom(uint8_t level) { */ void backlight_level(uint8_t level) { backlight_level_noeeprom(level); - eeconfig_update_backlight(backlight_config.raw); -} - -uint8_t eeconfig_read_backlight(void) { - return eeprom_read_byte(EECONFIG_BACKLIGHT); -} - -void eeconfig_update_backlight(uint8_t val) { - eeprom_update_byte(EECONFIG_BACKLIGHT, val); + eeconfig_update_backlight(&backlight_config); } void eeconfig_update_backlight_current(void) { - eeconfig_update_backlight(backlight_config.raw); + eeconfig_update_backlight(&backlight_config); } void eeconfig_update_backlight_default(void) { @@ -193,7 +184,7 @@ void eeconfig_update_backlight_default(void) { backlight_config.enable = BACKLIGHT_DEFAULT_ON; backlight_config.breathing = BACKLIGHT_DEFAULT_BREATHING; backlight_config.level = BACKLIGHT_DEFAULT_LEVEL; - eeconfig_update_backlight(backlight_config.raw); + eeconfig_update_backlight(&backlight_config); } /** \brief Get backlight level @@ -226,7 +217,7 @@ void backlight_enable_breathing(void) { if (backlight_config.breathing) return; // do nothing if breathing is already on backlight_config.breathing = true; - eeconfig_update_backlight(backlight_config.raw); + eeconfig_update_backlight(&backlight_config); dprintf("backlight breathing enable\n"); breathing_enable(); } @@ -239,7 +230,7 @@ void backlight_disable_breathing(void) { if (!backlight_config.breathing) return; // do nothing if breathing is already off backlight_config.breathing = false; - eeconfig_update_backlight(backlight_config.raw); + eeconfig_update_backlight(&backlight_config); dprintf("backlight breathing disable\n"); breathing_disable(); } diff --git a/quantum/backlight/backlight.h b/quantum/backlight/backlight.h index c34fb5858d1..561c7f8a945 100644 --- a/quantum/backlight/backlight.h +++ b/quantum/backlight/backlight.h @@ -34,7 +34,7 @@ along with this program. If not, see . # define BREATHING_PERIOD 6 #endif -typedef union { +typedef union backlight_config_t { uint8_t raw; struct { bool enable : 1; @@ -58,10 +58,8 @@ void backlight_level_noeeprom(uint8_t level); void backlight_level(uint8_t level); uint8_t get_backlight_level(void); -uint8_t eeconfig_read_backlight(void); -void eeconfig_update_backlight(uint8_t val); -void eeconfig_update_backlight_current(void); -void eeconfig_update_backlight_default(void); +void eeconfig_update_backlight_current(void); +void eeconfig_update_backlight_default(void); // implementation specific void backlight_init_ports(void); diff --git a/quantum/command.c b/quantum/command.c index 024d96917d7..96b637f8425 100644 --- a/quantum/command.c +++ b/quantum/command.c @@ -246,7 +246,7 @@ static void print_eeconfig(void) { xprintf("eeconfig:\ndefault_layer: %u\n", eeconfig_read_default_layer()); debug_config_t dc; - dc.raw = eeconfig_read_debug(); + eeconfig_read_debug(&dc); xprintf(/* clang-format off */ "debug_config.raw: %02X\n" @@ -263,7 +263,7 @@ static void print_eeconfig(void) { ); /* clang-format on */ keymap_config_t kc; - kc.raw = eeconfig_read_keymap(); + eeconfig_read_keymap(&kc); xprintf(/* clang-format off */ "keymap_config.raw: %02X\n" @@ -296,7 +296,7 @@ static void print_eeconfig(void) { # ifdef BACKLIGHT_ENABLE backlight_config_t bc; - bc.raw = eeconfig_read_backlight(); + eeconfig_read_backlight(&bc); xprintf(/* clang-format off */ "backlight_config" diff --git a/quantum/dynamic_keymap.c b/quantum/dynamic_keymap.c index beb7f9d18f2..756b232f59d 100644 --- a/quantum/dynamic_keymap.c +++ b/quantum/dynamic_keymap.c @@ -1,4 +1,5 @@ /* Copyright 2017 Jason Williams (Wilba) + * Copyright 2024-2025 Nick Brassel (@tzarc) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,14 +22,7 @@ #include "progmem.h" #include "send_string.h" #include "keycodes.h" - -#ifdef VIA_ENABLE -# include "via.h" -# define DYNAMIC_KEYMAP_EEPROM_START (VIA_EEPROM_CONFIG_END) -#else -# include "eeconfig.h" -# define DYNAMIC_KEYMAP_EEPROM_START (EECONFIG_SIZE) -#endif +#include "nvm_dynamic_keymap.h" #ifdef ENCODER_ENABLE # include "encoder.h" @@ -36,67 +30,6 @@ # define NUM_ENCODERS 0 #endif -#ifndef DYNAMIC_KEYMAP_LAYER_COUNT -# define DYNAMIC_KEYMAP_LAYER_COUNT 4 -#endif - -#ifndef DYNAMIC_KEYMAP_MACRO_COUNT -# define DYNAMIC_KEYMAP_MACRO_COUNT 16 -#endif - -#ifndef TOTAL_EEPROM_BYTE_COUNT -# error Unknown total EEPROM size. Cannot derive maximum for dynamic keymaps. -#endif - -#ifndef DYNAMIC_KEYMAP_EEPROM_MAX_ADDR -# define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR (TOTAL_EEPROM_BYTE_COUNT - 1) -#endif - -#if DYNAMIC_KEYMAP_EEPROM_MAX_ADDR > (TOTAL_EEPROM_BYTE_COUNT - 1) -# pragma message STR(DYNAMIC_KEYMAP_EEPROM_MAX_ADDR) " > " STR((TOTAL_EEPROM_BYTE_COUNT - 1)) -# error DYNAMIC_KEYMAP_EEPROM_MAX_ADDR is configured to use more space than what is available for the selected EEPROM driver -#endif - -// Due to usage of uint16_t check for max 65535 -#if DYNAMIC_KEYMAP_EEPROM_MAX_ADDR > 65535 -# pragma message STR(DYNAMIC_KEYMAP_EEPROM_MAX_ADDR) " > 65535" -# error DYNAMIC_KEYMAP_EEPROM_MAX_ADDR must be less than 65536 -#endif - -// If DYNAMIC_KEYMAP_EEPROM_ADDR not explicitly defined in config.h, -#ifndef DYNAMIC_KEYMAP_EEPROM_ADDR -# define DYNAMIC_KEYMAP_EEPROM_ADDR DYNAMIC_KEYMAP_EEPROM_START -#endif - -// Dynamic encoders starts after dynamic keymaps -#ifndef DYNAMIC_KEYMAP_ENCODER_EEPROM_ADDR -# define DYNAMIC_KEYMAP_ENCODER_EEPROM_ADDR (DYNAMIC_KEYMAP_EEPROM_ADDR + (DYNAMIC_KEYMAP_LAYER_COUNT * MATRIX_ROWS * MATRIX_COLS * 2)) -#endif - -// Dynamic macro starts after dynamic encoders, but only when using ENCODER_MAP -#ifdef ENCODER_MAP_ENABLE -# ifndef DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR -# define DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR (DYNAMIC_KEYMAP_ENCODER_EEPROM_ADDR + (DYNAMIC_KEYMAP_LAYER_COUNT * NUM_ENCODERS * 2 * 2)) -# endif // DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR -#else // ENCODER_MAP_ENABLE -# ifndef DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR -# define DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR (DYNAMIC_KEYMAP_ENCODER_EEPROM_ADDR) -# endif // DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR -#endif // ENCODER_MAP_ENABLE - -// Sanity check that dynamic keymaps fit in available EEPROM -// If there's not 100 bytes available for macros, then something is wrong. -// The keyboard should override DYNAMIC_KEYMAP_LAYER_COUNT to reduce it, -// or DYNAMIC_KEYMAP_EEPROM_MAX_ADDR to increase it, *only if* the microcontroller has -// more than the default. -_Static_assert((DYNAMIC_KEYMAP_EEPROM_MAX_ADDR) - (DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR) >= 100, "Dynamic keymaps are configured to use more EEPROM than is available."); - -// Dynamic macros are stored after the keymaps and use what is available -// up to and including DYNAMIC_KEYMAP_EEPROM_MAX_ADDR. -#ifndef DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE -# define DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE (DYNAMIC_KEYMAP_EEPROM_MAX_ADDR - DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + 1) -#endif - #ifndef DYNAMIC_KEYMAP_MACRO_DELAY # define DYNAMIC_KEYMAP_MACRO_DELAY TAP_CODE_DELAY #endif @@ -105,52 +38,28 @@ uint8_t dynamic_keymap_get_layer_count(void) { return DYNAMIC_KEYMAP_LAYER_COUNT; } -void *dynamic_keymap_key_to_eeprom_address(uint8_t layer, uint8_t row, uint8_t column) { - // TODO: optimize this with some left shifts - return ((void *)DYNAMIC_KEYMAP_EEPROM_ADDR) + (layer * MATRIX_ROWS * MATRIX_COLS * 2) + (row * MATRIX_COLS * 2) + (column * 2); -} - uint16_t dynamic_keymap_get_keycode(uint8_t layer, uint8_t row, uint8_t column) { - if (layer >= DYNAMIC_KEYMAP_LAYER_COUNT || row >= MATRIX_ROWS || column >= MATRIX_COLS) return KC_NO; - void *address = dynamic_keymap_key_to_eeprom_address(layer, row, column); - // Big endian, so we can read/write EEPROM directly from host if we want - uint16_t keycode = eeprom_read_byte(address) << 8; - keycode |= eeprom_read_byte(address + 1); - return keycode; + return nvm_dynamic_keymap_read_keycode(layer, row, column); } void dynamic_keymap_set_keycode(uint8_t layer, uint8_t row, uint8_t column, uint16_t keycode) { - if (layer >= DYNAMIC_KEYMAP_LAYER_COUNT || row >= MATRIX_ROWS || column >= MATRIX_COLS) return; - void *address = dynamic_keymap_key_to_eeprom_address(layer, row, column); - // Big endian, so we can read/write EEPROM directly from host if we want - eeprom_update_byte(address, (uint8_t)(keycode >> 8)); - eeprom_update_byte(address + 1, (uint8_t)(keycode & 0xFF)); + nvm_dynamic_keymap_update_keycode(layer, row, column, keycode); } #ifdef ENCODER_MAP_ENABLE -void *dynamic_keymap_encoder_to_eeprom_address(uint8_t layer, uint8_t encoder_id) { - return ((void *)DYNAMIC_KEYMAP_ENCODER_EEPROM_ADDR) + (layer * NUM_ENCODERS * 2 * 2) + (encoder_id * 2 * 2); -} - uint16_t dynamic_keymap_get_encoder(uint8_t layer, uint8_t encoder_id, bool clockwise) { - if (layer >= DYNAMIC_KEYMAP_LAYER_COUNT || encoder_id >= NUM_ENCODERS) return KC_NO; - void *address = dynamic_keymap_encoder_to_eeprom_address(layer, encoder_id); - // Big endian, so we can read/write EEPROM directly from host if we want - uint16_t keycode = ((uint16_t)eeprom_read_byte(address + (clockwise ? 0 : 2))) << 8; - keycode |= eeprom_read_byte(address + (clockwise ? 0 : 2) + 1); - return keycode; + return nvm_dynamic_keymap_read_encoder(layer, encoder_id, clockwise); } void dynamic_keymap_set_encoder(uint8_t layer, uint8_t encoder_id, bool clockwise, uint16_t keycode) { - if (layer >= DYNAMIC_KEYMAP_LAYER_COUNT || encoder_id >= NUM_ENCODERS) return; - void *address = dynamic_keymap_encoder_to_eeprom_address(layer, encoder_id); - // Big endian, so we can read/write EEPROM directly from host if we want - eeprom_update_byte(address + (clockwise ? 0 : 2), (uint8_t)(keycode >> 8)); - eeprom_update_byte(address + (clockwise ? 0 : 2) + 1, (uint8_t)(keycode & 0xFF)); + nvm_dynamic_keymap_update_encoder(layer, encoder_id, clockwise, keycode); } #endif // ENCODER_MAP_ENABLE void dynamic_keymap_reset(void) { + // Erase the keymaps, if necessary. + nvm_dynamic_keymap_erase(); + // Reset the keymaps in EEPROM to what is in flash. for (int layer = 0; layer < DYNAMIC_KEYMAP_LAYER_COUNT; layer++) { for (int row = 0; row < MATRIX_ROWS; row++) { @@ -168,31 +77,11 @@ void dynamic_keymap_reset(void) { } void dynamic_keymap_get_buffer(uint16_t offset, uint16_t size, uint8_t *data) { - uint16_t dynamic_keymap_eeprom_size = DYNAMIC_KEYMAP_LAYER_COUNT * MATRIX_ROWS * MATRIX_COLS * 2; - void * source = (void *)(DYNAMIC_KEYMAP_EEPROM_ADDR + offset); - uint8_t *target = data; - for (uint16_t i = 0; i < size; i++) { - if (offset + i < dynamic_keymap_eeprom_size) { - *target = eeprom_read_byte(source); - } else { - *target = 0x00; - } - source++; - target++; - } + nvm_dynamic_keymap_read_buffer(offset, size, data); } void dynamic_keymap_set_buffer(uint16_t offset, uint16_t size, uint8_t *data) { - uint16_t dynamic_keymap_eeprom_size = DYNAMIC_KEYMAP_LAYER_COUNT * MATRIX_ROWS * MATRIX_COLS * 2; - void * target = (void *)(DYNAMIC_KEYMAP_EEPROM_ADDR + offset); - uint8_t *source = data; - for (uint16_t i = 0; i < size; i++) { - if (offset + i < dynamic_keymap_eeprom_size) { - eeprom_update_byte(target, *source); - } - source++; - target++; - } + nvm_dynamic_keymap_update_buffer(offset, size, data); } uint16_t keycode_at_keymap_location(uint8_t layer_num, uint8_t row, uint8_t column) { @@ -216,53 +105,38 @@ uint8_t dynamic_keymap_macro_get_count(void) { } uint16_t dynamic_keymap_macro_get_buffer_size(void) { - return DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE; + return (uint16_t)nvm_dynamic_keymap_macro_size(); } void dynamic_keymap_macro_get_buffer(uint16_t offset, uint16_t size, uint8_t *data) { - void * source = (void *)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + offset); - uint8_t *target = data; - for (uint16_t i = 0; i < size; i++) { - if (offset + i < DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE) { - *target = eeprom_read_byte(source); - } else { - *target = 0x00; - } - source++; - target++; - } + nvm_dynamic_keymap_macro_read_buffer(offset, size, data); } void dynamic_keymap_macro_set_buffer(uint16_t offset, uint16_t size, uint8_t *data) { - void * target = (void *)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + offset); - uint8_t *source = data; - for (uint16_t i = 0; i < size; i++) { - if (offset + i < DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE) { - eeprom_update_byte(target, *source); - } - source++; - target++; - } + nvm_dynamic_keymap_macro_update_buffer(offset, size, data); } -typedef struct send_string_eeprom_state_t { - const uint8_t *ptr; -} send_string_eeprom_state_t; +static uint8_t dynamic_keymap_read_byte(uint32_t offset) { + uint8_t d; + nvm_dynamic_keymap_macro_read_buffer(offset, 1, &d); + return d; +} -char send_string_get_next_eeprom(void *arg) { - send_string_eeprom_state_t *state = (send_string_eeprom_state_t *)arg; - char ret = eeprom_read_byte(state->ptr); - state->ptr++; +typedef struct send_string_nvm_state_t { + uint32_t offset; +} send_string_nvm_state_t; + +char send_string_get_next_nvm(void *arg) { + send_string_nvm_state_t *state = (send_string_nvm_state_t *)arg; + char ret = dynamic_keymap_read_byte(state->offset); + state->offset++; return ret; } void dynamic_keymap_macro_reset(void) { - void *p = (void *)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR); - void *end = (void *)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE); - while (p != end) { - eeprom_update_byte(p, 0); - ++p; - } + // Erase the macros, if necessary. + nvm_dynamic_keymap_macro_erase(); + nvm_dynamic_keymap_macro_reset(); } void dynamic_keymap_macro_send(uint8_t id) { @@ -274,27 +148,26 @@ void dynamic_keymap_macro_send(uint8_t id) { // If it's not zero, then we are in the middle // of buffer writing, possibly an aborted buffer // write. So do nothing. - void *p = (void *)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE - 1); - if (eeprom_read_byte(p) != 0) { + if (dynamic_keymap_read_byte(nvm_dynamic_keymap_macro_size() - 1) != 0) { return; } // Skip N null characters // p will then point to the Nth macro - p = (void *)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR); - void *end = (void *)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE); + uint32_t offset = 0; + uint32_t end = nvm_dynamic_keymap_macro_size(); while (id > 0) { // If we are past the end of the buffer, then there is // no Nth macro in the buffer. - if (p == end) { + if (offset == end) { return; } - if (eeprom_read_byte(p) == 0) { + if (dynamic_keymap_read_byte(offset) == 0) { --id; } - ++p; + ++offset; } - send_string_eeprom_state_t state = {p}; - send_string_with_delay_impl(send_string_get_next_eeprom, &state, DYNAMIC_KEYMAP_MACRO_DELAY); + send_string_nvm_state_t state = {.offset = 0}; + send_string_with_delay_impl(send_string_get_next_nvm, &state, DYNAMIC_KEYMAP_MACRO_DELAY); } diff --git a/quantum/dynamic_keymap.h b/quantum/dynamic_keymap.h index 806342efa3c..f1d8077b127 100644 --- a/quantum/dynamic_keymap.h +++ b/quantum/dynamic_keymap.h @@ -18,8 +18,15 @@ #include #include +#ifndef DYNAMIC_KEYMAP_LAYER_COUNT +# define DYNAMIC_KEYMAP_LAYER_COUNT 4 +#endif + +#ifndef DYNAMIC_KEYMAP_MACRO_COUNT +# define DYNAMIC_KEYMAP_MACRO_COUNT 16 +#endif + uint8_t dynamic_keymap_get_layer_count(void); -void * dynamic_keymap_key_to_eeprom_address(uint8_t layer, uint8_t row, uint8_t column); uint16_t dynamic_keymap_get_keycode(uint8_t layer, uint8_t row, uint8_t column); void dynamic_keymap_set_keycode(uint8_t layer, uint8_t row, uint8_t column, uint16_t keycode); #ifdef ENCODER_MAP_ENABLE diff --git a/quantum/eeconfig.c b/quantum/eeconfig.c index e27f604f124..9aa60fc9685 100644 --- a/quantum/eeconfig.c +++ b/quantum/eeconfig.c @@ -1,355 +1,333 @@ #include #include #include +#include "debug.h" #include "eeprom.h" #include "eeconfig.h" +#include "action_layer.h" +#include "nvm_eeconfig.h" +#include "keycode_config.h" -#if defined(EEPROM_DRIVER) +#ifdef EEPROM_DRIVER # include "eeprom_driver.h" -#endif +#endif // EEPROM_DRIVER -#if defined(HAPTIC_ENABLE) +#ifdef BACKLIGHT_ENABLE +# include "backlight.h" +#endif // BACKLIGHT_ENABLE + +#ifdef AUDIO_ENABLE +# include "audio.h" +#endif // AUDIO_ENABLE + +#ifdef RGBLIGHT_ENABLE +# include "rgblight.h" +#endif // RGBLIGHT_ENABLE + +#ifdef RGB_MATRIX_ENABLE +# include "rgb_matrix_types.h" +#endif // RGB_MATRIX_ENABLE + +#ifdef LED_MATRIX_ENABLE +# include "led_matrix_types.h" +#endif // LED_MATRIX_ENABLE + +#ifdef UNICODE_COMMON_ENABLE +# include "unicode.h" +#endif // UNICODE_COMMON_ENABLE + +#ifdef HAPTIC_ENABLE # include "haptic.h" -#endif +#endif // HAPTIC_ENABLE -#if defined(VIA_ENABLE) +#ifdef VIA_ENABLE bool via_eeprom_is_valid(void); void via_eeprom_set_valid(bool valid); void eeconfig_init_via(void); -#endif +#else +void dynamic_keymap_reset(void); +#endif // VIA_ENABLE -_Static_assert((intptr_t)EECONFIG_HANDEDNESS == 14, "EEPROM handedness offset is incorrect"); - -/** \brief eeconfig enable - * - * FIXME: needs doc - */ __attribute__((weak)) void eeconfig_init_user(void) { #if (EECONFIG_USER_DATA_SIZE) == 0 // Reset user EEPROM value to blank, rather than to a set value eeconfig_update_user(0); -#endif +#endif // (EECONFIG_USER_DATA_SIZE) == 0 } __attribute__((weak)) void eeconfig_init_kb(void) { #if (EECONFIG_KB_DATA_SIZE) == 0 // Reset Keyboard EEPROM value to blank, rather than to a set value eeconfig_update_kb(0); -#endif +#endif // (EECONFIG_KB_DATA_SIZE) == 0 eeconfig_init_user(); } -/* - * FIXME: needs doc - */ void eeconfig_init_quantum(void) { -#if defined(EEPROM_DRIVER) - eeprom_driver_format(false); -#endif + nvm_eeconfig_erase(); + + eeconfig_enable(); + + debug_config_t debug_config = {0}; + eeconfig_update_debug(&debug_config); - eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); - eeprom_update_byte(EECONFIG_DEBUG, 0); default_layer_state = (layer_state_t)1 << 0; eeconfig_update_default_layer(default_layer_state); - // Enable oneshot and autocorrect by default: 0b0001 0100 0000 0000 - eeprom_update_word(EECONFIG_KEYMAP, 0x1400); - eeprom_update_byte(EECONFIG_BACKLIGHT, 0); - eeprom_update_byte(EECONFIG_AUDIO, 0); - eeprom_update_dword(EECONFIG_RGBLIGHT, 0); - eeprom_update_byte(EECONFIG_RGBLIGHT_EXTENDED, 0); - eeprom_update_byte(EECONFIG_UNICODEMODE, 0); - eeprom_update_byte(EECONFIG_STENOMODE, 0); - eeprom_write_qword(EECONFIG_RGB_MATRIX, 0); - eeprom_update_dword(EECONFIG_HAPTIC, 0); -#if defined(HAPTIC_ENABLE) - haptic_reset(); + + keymap_config_t keymap_config = { + .swap_control_capslock = false, + .capslock_to_control = false, + .swap_lalt_lgui = false, + .swap_ralt_rgui = false, + .no_gui = false, + .swap_grave_esc = false, + .swap_backslash_backspace = false, + .nkro = false, + .swap_lctl_lgui = false, + .swap_rctl_rgui = false, + .oneshot_enable = true, // Enable oneshot by default + .swap_escape_capslock = false, + .autocorrect_enable = true, // Enable autocorrect by default + }; + eeconfig_update_keymap(&keymap_config); + +#ifdef BACKLIGHT_ENABLE + backlight_config_t backlight_config = {0}; + eeconfig_update_backlight(&backlight_config); +#endif // BACKLIGHT_ENABLE + +#ifdef AUDIO_ENABLE + audio_config_t audio_config = {0}; + eeconfig_update_audio(&audio_config); +#endif // AUDIO_ENABLE + +#ifdef RGBLIGHT_ENABLE + rgblight_config_t rgblight_config = {0}; + eeconfig_update_rgblight(&rgblight_config); +#endif // RGBLIGHT_ENABLE + +#ifdef UNICODE_COMMON_ENABLE + unicode_config_t unicode_config = {0}; + eeconfig_update_unicode_mode(&unicode_config); +#endif // UNICODE_COMMON_ENABLE + +#ifdef STENO_ENABLE + eeconfig_update_steno_mode(0); +#endif // STENO_ENABLE + +#ifdef RGB_MATRIX_ENABLE + rgb_config_t rgb_matrix_config = {0}; + eeconfig_update_rgb_matrix(&rgb_matrix_config); #endif +#ifdef LED_MATRIX_ENABLE + led_eeconfig_t led_matrix_config = {0}; + eeconfig_update_led_matrix(&led_matrix_config); +#endif // LED_MATRIX_ENABLE + +#ifdef HAPTIC_ENABLE + haptic_config_t haptic_config = {0}; + eeconfig_update_haptic(&haptic_config); + haptic_reset(); +#endif // HAPTIC_ENABLE + #if (EECONFIG_KB_DATA_SIZE) > 0 eeconfig_init_kb_datablock(); -#endif +#endif // (EECONFIG_KB_DATA_SIZE) > 0 #if (EECONFIG_USER_DATA_SIZE) > 0 eeconfig_init_user_datablock(); -#endif +#endif // (EECONFIG_USER_DATA_SIZE) > 0 #if defined(VIA_ENABLE) // Invalidate VIA eeprom config, and then reset. - // Just in case if power is lost mid init, this makes sure that it pets + // Just in case if power is lost mid init, this makes sure that it gets // properly re-initialized. - via_eeprom_set_valid(false); eeconfig_init_via(); +#elif defined(DYNAMIC_KEYMAP_ENABLE) + dynamic_keymap_reset(); #endif eeconfig_init_kb(); } -/** \brief eeconfig initialization - * - * FIXME: needs doc - */ void eeconfig_init(void) { eeconfig_init_quantum(); } -/** \brief eeconfig enable - * - * FIXME: needs doc - */ void eeconfig_enable(void) { - eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); + nvm_eeconfig_enable(); } -/** \brief eeconfig disable - * - * FIXME: needs doc - */ void eeconfig_disable(void) { -#if defined(EEPROM_DRIVER) - eeprom_driver_format(false); -#endif - eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER_OFF); + nvm_eeconfig_disable(); } -/** \brief eeconfig is enabled - * - * FIXME: needs doc - */ bool eeconfig_is_enabled(void) { - bool is_eeprom_enabled = (eeprom_read_word(EECONFIG_MAGIC) == EECONFIG_MAGIC_NUMBER); + bool is_eeprom_enabled = nvm_eeconfig_is_enabled(); #ifdef VIA_ENABLE if (is_eeprom_enabled) { is_eeprom_enabled = via_eeprom_is_valid(); } -#endif +#endif // VIA_ENABLE return is_eeprom_enabled; } -/** \brief eeconfig is disabled - * - * FIXME: needs doc - */ bool eeconfig_is_disabled(void) { - bool is_eeprom_disabled = (eeprom_read_word(EECONFIG_MAGIC) == EECONFIG_MAGIC_NUMBER_OFF); + bool is_eeprom_disabled = nvm_eeconfig_is_disabled(); #ifdef VIA_ENABLE if (!is_eeprom_disabled) { is_eeprom_disabled = !via_eeprom_is_valid(); } -#endif +#endif // VIA_ENABLE return is_eeprom_disabled; } -/** \brief eeconfig read debug - * - * FIXME: needs doc - */ -uint8_t eeconfig_read_debug(void) { - return eeprom_read_byte(EECONFIG_DEBUG); +void eeconfig_read_debug(debug_config_t *debug_config) { + nvm_eeconfig_read_debug(debug_config); } -/** \brief eeconfig update debug - * - * FIXME: needs doc - */ -void eeconfig_update_debug(uint8_t val) { - eeprom_update_byte(EECONFIG_DEBUG, val); +void eeconfig_update_debug(const debug_config_t *debug_config) { + nvm_eeconfig_update_debug(debug_config); } -/** \brief eeconfig read default layer - * - * FIXME: needs doc - */ layer_state_t eeconfig_read_default_layer(void) { - uint8_t val = eeprom_read_byte(EECONFIG_DEFAULT_LAYER); - -#ifdef DEFAULT_LAYER_STATE_IS_VALUE_NOT_BITMASK - // stored as a layer number, so convert back to bitmask - return 1 << val; -#else - // stored as 8-bit-wide bitmask, so read the value directly - handling padding to 16/32 bit layer_state_t - return val; -#endif + return nvm_eeconfig_read_default_layer(); } -/** \brief eeconfig update default layer - * - * FIXME: needs doc - */ void eeconfig_update_default_layer(layer_state_t state) { -#ifdef DEFAULT_LAYER_STATE_IS_VALUE_NOT_BITMASK - // stored as a layer number, so only store the highest layer - uint8_t val = get_highest_layer(state); -#else - // stored as 8-bit-wide bitmask, so write the value directly - handling truncation from 16/32 bit layer_state_t - uint8_t val = state; -#endif - - eeprom_update_byte(EECONFIG_DEFAULT_LAYER, val); + nvm_eeconfig_update_default_layer(state); } -/** \brief eeconfig read keymap - * - * FIXME: needs doc - */ -uint16_t eeconfig_read_keymap(void) { - return eeprom_read_word(EECONFIG_KEYMAP); +void eeconfig_read_keymap(keymap_config_t *keymap_config) { + nvm_eeconfig_read_keymap(keymap_config); } -/** \brief eeconfig update keymap - * - * FIXME: needs doc - */ -void eeconfig_update_keymap(uint16_t val) { - eeprom_update_word(EECONFIG_KEYMAP, val); +void eeconfig_update_keymap(const keymap_config_t *keymap_config) { + nvm_eeconfig_update_keymap(keymap_config); } -/** \brief eeconfig read audio - * - * FIXME: needs doc - */ -uint8_t eeconfig_read_audio(void) { - return eeprom_read_byte(EECONFIG_AUDIO); +#ifdef AUDIO_ENABLE +void eeconfig_read_audio(audio_config_t *audio_config) { + nvm_eeconfig_read_audio(audio_config); } -/** \brief eeconfig update audio - * - * FIXME: needs doc - */ -void eeconfig_update_audio(uint8_t val) { - eeprom_update_byte(EECONFIG_AUDIO, val); +void eeconfig_update_audio(const audio_config_t *audio_config) { + nvm_eeconfig_update_audio(audio_config); } +#endif // AUDIO_ENABLE + +#ifdef UNICODE_COMMON_ENABLE +void eeconfig_read_unicode_mode(unicode_config_t *unicode_config) { + return nvm_eeconfig_read_unicode_mode(unicode_config); +} +void eeconfig_update_unicode_mode(const unicode_config_t *unicode_config) { + nvm_eeconfig_update_unicode_mode(unicode_config); +} +#endif // UNICODE_COMMON_ENABLE + +#ifdef BACKLIGHT_ENABLE +void eeconfig_read_backlight(backlight_config_t *backlight_config) { + nvm_eeconfig_read_backlight(backlight_config); +} +void eeconfig_update_backlight(const backlight_config_t *backlight_config) { + nvm_eeconfig_update_backlight(backlight_config); +} +#endif // BACKLIGHT_ENABLE + +#ifdef STENO_ENABLE +uint8_t eeconfig_read_steno_mode(void) { + return nvm_eeconfig_read_steno_mode(); +} +void eeconfig_update_steno_mode(uint8_t val) { + nvm_eeconfig_update_steno_mode(val); +} +#endif // STENO_ENABLE + +#ifdef RGB_MATRIX_ENABLE +void eeconfig_read_rgb_matrix(rgb_config_t *rgb_matrix_config) { + nvm_eeconfig_read_rgb_matrix(rgb_matrix_config); +} +void eeconfig_update_rgb_matrix(const rgb_config_t *rgb_matrix_config) { + nvm_eeconfig_update_rgb_matrix(rgb_matrix_config); +} +#endif // RGB_MATRIX_ENABLE + +#ifdef LED_MATRIX_ENABLE +void eeconfig_read_led_matrix(led_eeconfig_t *led_matrix_config) { + nvm_eeconfig_read_led_matrix(led_matrix_config); +} +void eeconfig_update_led_matrix(const led_eeconfig_t *led_matrix_config) { + nvm_eeconfig_update_led_matrix(led_matrix_config); +} +#endif // LED_MATRIX_ENABLE + +#ifdef RGBLIGHT_ENABLE +void eeconfig_read_rgblight(rgblight_config_t *rgblight_config) { + nvm_eeconfig_read_rgblight(rgblight_config); +} +void eeconfig_update_rgblight(const rgblight_config_t *rgblight_config) { + nvm_eeconfig_update_rgblight(rgblight_config); +} +#endif // RGBLIGHT_ENABLE #if (EECONFIG_KB_DATA_SIZE) == 0 -/** \brief eeconfig read kb - * - * FIXME: needs doc - */ uint32_t eeconfig_read_kb(void) { - return eeprom_read_dword(EECONFIG_KEYBOARD); + return nvm_eeconfig_read_kb(); } -/** \brief eeconfig update kb - * - * FIXME: needs doc - */ void eeconfig_update_kb(uint32_t val) { - eeprom_update_dword(EECONFIG_KEYBOARD, val); + nvm_eeconfig_update_kb(val); } #endif // (EECONFIG_KB_DATA_SIZE) == 0 #if (EECONFIG_USER_DATA_SIZE) == 0 -/** \brief eeconfig read user - * - * FIXME: needs doc - */ uint32_t eeconfig_read_user(void) { - return eeprom_read_dword(EECONFIG_USER); + return nvm_eeconfig_read_user(); } -/** \brief eeconfig update user - * - * FIXME: needs doc - */ void eeconfig_update_user(uint32_t val) { - eeprom_update_dword(EECONFIG_USER, val); + nvm_eeconfig_update_user(val); } #endif // (EECONFIG_USER_DATA_SIZE) == 0 -/** \brief eeconfig read haptic - * - * FIXME: needs doc - */ -uint32_t eeconfig_read_haptic(void) { - return eeprom_read_dword(EECONFIG_HAPTIC); +#ifdef HAPTIC_ENABLE +void eeconfig_read_haptic(haptic_config_t *haptic_config) { + nvm_eeconfig_read_haptic(haptic_config); } -/** \brief eeconfig update haptic - * - * FIXME: needs doc - */ -void eeconfig_update_haptic(uint32_t val) { - eeprom_update_dword(EECONFIG_HAPTIC, val); +void eeconfig_update_haptic(const haptic_config_t *haptic_config) { + nvm_eeconfig_update_haptic(haptic_config); } +#endif // HAPTIC_ENABLE -/** \brief eeconfig read split handedness - * - * FIXME: needs doc - */ bool eeconfig_read_handedness(void) { - return !!eeprom_read_byte(EECONFIG_HANDEDNESS); + return nvm_eeconfig_read_handedness(); } -/** \brief eeconfig update split handedness - * - * FIXME: needs doc - */ void eeconfig_update_handedness(bool val) { - eeprom_update_byte(EECONFIG_HANDEDNESS, !!val); + nvm_eeconfig_update_handedness(val); } #if (EECONFIG_KB_DATA_SIZE) > 0 -/** \brief eeconfig assert keyboard data block version - * - * FIXME: needs doc - */ bool eeconfig_is_kb_datablock_valid(void) { - return eeprom_read_dword(EECONFIG_KEYBOARD) == (EECONFIG_KB_DATA_VERSION); + return nvm_eeconfig_is_kb_datablock_valid(); } -/** \brief eeconfig read keyboard data block - * - * FIXME: needs doc - */ -void eeconfig_read_kb_datablock(void *data) { - if (eeconfig_is_kb_datablock_valid()) { - eeprom_read_block(data, EECONFIG_KB_DATABLOCK, (EECONFIG_KB_DATA_SIZE)); - } else { - memset(data, 0, (EECONFIG_KB_DATA_SIZE)); - } +uint32_t eeconfig_read_kb_datablock(void *data, uint32_t offset, uint32_t length) { + return nvm_eeconfig_read_kb_datablock(data, offset, length); } -/** \brief eeconfig update keyboard data block - * - * FIXME: needs doc - */ -void eeconfig_update_kb_datablock(const void *data) { - eeprom_update_dword(EECONFIG_KEYBOARD, (EECONFIG_KB_DATA_VERSION)); - eeprom_update_block(data, EECONFIG_KB_DATABLOCK, (EECONFIG_KB_DATA_SIZE)); +uint32_t eeconfig_update_kb_datablock(const void *data, uint32_t offset, uint32_t length) { + return nvm_eeconfig_update_kb_datablock(data, offset, length); } -/** \brief eeconfig init keyboard data block - * - * FIXME: needs doc - */ __attribute__((weak)) void eeconfig_init_kb_datablock(void) { - uint8_t dummy_kb[(EECONFIG_KB_DATA_SIZE)] = {0}; - eeconfig_update_kb_datablock(dummy_kb); + nvm_eeconfig_init_kb_datablock(); } #endif // (EECONFIG_KB_DATA_SIZE) > 0 #if (EECONFIG_USER_DATA_SIZE) > 0 -/** \brief eeconfig assert user data block version - * - * FIXME: needs doc - */ bool eeconfig_is_user_datablock_valid(void) { - return eeprom_read_dword(EECONFIG_USER) == (EECONFIG_USER_DATA_VERSION); + return nvm_eeconfig_is_user_datablock_valid(); } -/** \brief eeconfig read user data block - * - * FIXME: needs doc - */ -void eeconfig_read_user_datablock(void *data) { - if (eeconfig_is_user_datablock_valid()) { - eeprom_read_block(data, EECONFIG_USER_DATABLOCK, (EECONFIG_USER_DATA_SIZE)); - } else { - memset(data, 0, (EECONFIG_USER_DATA_SIZE)); - } +uint32_t eeconfig_read_user_datablock(void *data, uint32_t offset, uint32_t length) { + return nvm_eeconfig_read_user_datablock(data, offset, length); } -/** \brief eeconfig update user data block - * - * FIXME: needs doc - */ -void eeconfig_update_user_datablock(const void *data) { - eeprom_update_dword(EECONFIG_USER, (EECONFIG_USER_DATA_VERSION)); - eeprom_update_block(data, EECONFIG_USER_DATABLOCK, (EECONFIG_USER_DATA_SIZE)); +uint32_t eeconfig_update_user_datablock(const void *data, uint32_t offset, uint32_t length) { + return nvm_eeconfig_update_user_datablock(data, offset, length); } -/** \brief eeconfig init user data block - * - * FIXME: needs doc - */ __attribute__((weak)) void eeconfig_init_user_datablock(void) { - uint8_t dummy_user[(EECONFIG_USER_DATA_SIZE)] = {0}; - eeconfig_update_user_datablock(dummy_user); + nvm_eeconfig_init_user_datablock(); } #endif // (EECONFIG_USER_DATA_SIZE) > 0 diff --git a/quantum/eeconfig.h b/quantum/eeconfig.h index 11cf1ccbca8..4044f1c2947 100644 --- a/quantum/eeconfig.h +++ b/quantum/eeconfig.h @@ -19,59 +19,9 @@ along with this program. If not, see . #include #include -#include // offsetof -#include "eeprom.h" -#include "util.h" +#include // offsetof #include "action_layer.h" // layer_state_t -#ifndef EECONFIG_MAGIC_NUMBER -# define EECONFIG_MAGIC_NUMBER (uint16_t)0xFEE5 // When changing, decrement this value to avoid future re-init issues -#endif -#define EECONFIG_MAGIC_NUMBER_OFF (uint16_t)0xFFFF - -// Dummy struct only used to calculate offsets -typedef struct PACKED { - uint16_t magic; - uint8_t debug; - uint8_t default_layer; - uint16_t keymap; - uint8_t backlight; - uint8_t audio; - uint32_t rgblight; - uint8_t unicode; - uint8_t steno; - uint8_t handedness; - uint32_t keyboard; - uint32_t user; - union { // Mutually exclusive - uint32_t led_matrix; - uint64_t rgb_matrix; - }; - uint32_t haptic; - uint8_t rgblight_ext; -} eeprom_core_t; - -/* EEPROM parameter address */ -#define EECONFIG_MAGIC (uint16_t *)(offsetof(eeprom_core_t, magic)) -#define EECONFIG_DEBUG (uint8_t *)(offsetof(eeprom_core_t, debug)) -#define EECONFIG_DEFAULT_LAYER (uint8_t *)(offsetof(eeprom_core_t, default_layer)) -#define EECONFIG_KEYMAP (uint16_t *)(offsetof(eeprom_core_t, keymap)) -#define EECONFIG_BACKLIGHT (uint8_t *)(offsetof(eeprom_core_t, backlight)) -#define EECONFIG_AUDIO (uint8_t *)(offsetof(eeprom_core_t, audio)) -#define EECONFIG_RGBLIGHT (uint32_t *)(offsetof(eeprom_core_t, rgblight)) -#define EECONFIG_UNICODEMODE (uint8_t *)(offsetof(eeprom_core_t, unicode)) -#define EECONFIG_STENOMODE (uint8_t *)(offsetof(eeprom_core_t, steno)) -#define EECONFIG_HANDEDNESS (uint8_t *)(offsetof(eeprom_core_t, handedness)) -#define EECONFIG_KEYBOARD (uint32_t *)(offsetof(eeprom_core_t, keyboard)) -#define EECONFIG_USER (uint32_t *)(offsetof(eeprom_core_t, user)) -#define EECONFIG_LED_MATRIX (uint32_t *)(offsetof(eeprom_core_t, led_matrix)) -#define EECONFIG_RGB_MATRIX (uint64_t *)(offsetof(eeprom_core_t, rgb_matrix)) -#define EECONFIG_HAPTIC (uint32_t *)(offsetof(eeprom_core_t, haptic)) -#define EECONFIG_RGBLIGHT_EXTENDED (uint8_t *)(offsetof(eeprom_core_t, rgblight_ext)) - -// Size of EEPROM being used for core data storage -#define EECONFIG_BASE_SIZE ((uint8_t)sizeof(eeprom_core_t)) - // Size of EEPROM dedicated to keyboard- and user-specific data #ifndef EECONFIG_KB_DATA_SIZE # define EECONFIG_KB_DATA_SIZE 0 @@ -86,12 +36,6 @@ typedef struct PACKED { # define EECONFIG_USER_DATA_VERSION (EECONFIG_USER_DATA_SIZE) #endif -#define EECONFIG_KB_DATABLOCK ((uint8_t *)(EECONFIG_BASE_SIZE)) -#define EECONFIG_USER_DATABLOCK ((uint8_t *)((EECONFIG_BASE_SIZE) + (EECONFIG_KB_DATA_SIZE))) - -// Size of EEPROM being used, other code can refer to this for available EEPROM -#define EECONFIG_SIZE ((EECONFIG_BASE_SIZE) + (EECONFIG_KB_DATA_SIZE) + (EECONFIG_USER_DATA_SIZE)) - /* debug bit */ #define EECONFIG_DEBUG_ENABLE (1 << 0) #define EECONFIG_DEBUG_MATRIX (1 << 1) @@ -117,22 +61,59 @@ void eeconfig_init_kb(void); void eeconfig_init_user(void); void eeconfig_enable(void); - void eeconfig_disable(void); -uint8_t eeconfig_read_debug(void); -void eeconfig_update_debug(uint8_t val); +typedef union debug_config_t debug_config_t; +void eeconfig_read_debug(debug_config_t *debug_config) __attribute__((nonnull)); +void eeconfig_update_debug(const debug_config_t *debug_config) __attribute__((nonnull)); layer_state_t eeconfig_read_default_layer(void); -void eeconfig_update_default_layer(layer_state_t val); +void eeconfig_update_default_layer(layer_state_t state); -uint16_t eeconfig_read_keymap(void); -void eeconfig_update_keymap(uint16_t val); +typedef union keymap_config_t keymap_config_t; +void eeconfig_read_keymap(keymap_config_t *keymap_config) __attribute__((nonnull)); +void eeconfig_update_keymap(const keymap_config_t *keymap_config) __attribute__((nonnull)); #ifdef AUDIO_ENABLE -uint8_t eeconfig_read_audio(void); -void eeconfig_update_audio(uint8_t val); -#endif +typedef union audio_config_t audio_config_t; +void eeconfig_read_audio(audio_config_t *audio_config) __attribute__((nonnull)); +void eeconfig_update_audio(const audio_config_t *audio_config) __attribute__((nonnull)); +#endif // AUDIO_ENABLE + +#ifdef UNICODE_COMMON_ENABLE +typedef union unicode_config_t unicode_config_t; +void eeconfig_read_unicode_mode(unicode_config_t *unicode_config) __attribute__((nonnull)); +void eeconfig_update_unicode_mode(const unicode_config_t *unicode_config) __attribute__((nonnull)); +#endif // UNICODE_COMMON_ENABLE + +#ifdef BACKLIGHT_ENABLE +typedef union backlight_config_t backlight_config_t; +void eeconfig_read_backlight(backlight_config_t *backlight_config) __attribute__((nonnull)); +void eeconfig_update_backlight(const backlight_config_t *backlight_config) __attribute__((nonnull)); +#endif // BACKLIGHT_ENABLE + +#ifdef STENO_ENABLE +uint8_t eeconfig_read_steno_mode(void); +void eeconfig_update_steno_mode(uint8_t val); +#endif // STENO_ENABLE + +#ifdef RGB_MATRIX_ENABLE +typedef union rgb_config_t rgb_config_t; +void eeconfig_read_rgb_matrix(rgb_config_t *rgb_matrix_config) __attribute__((nonnull)); +void eeconfig_update_rgb_matrix(const rgb_config_t *rgb_matrix_config) __attribute__((nonnull)); +#endif // RGB_MATRIX_ENABLE + +#ifdef LED_MATRIX_ENABLE +typedef union led_eeconfig_t led_eeconfig_t; +void eeconfig_read_led_matrix(led_eeconfig_t *led_matrix_config) __attribute__((nonnull)); +void eeconfig_update_led_matrix(const led_eeconfig_t *led_matrix_config) __attribute__((nonnull)); +#endif // LED_MATRIX_ENABLE + +#ifdef RGBLIGHT_ENABLE +typedef union rgblight_config_t rgblight_config_t; +void eeconfig_read_rgblight(rgblight_config_t *rgblight_config) __attribute__((nonnull)); +void eeconfig_update_rgblight(const rgblight_config_t *rgblight_config) __attribute__((nonnull)); +#endif // RGBLIGHT_ENABLE #if (EECONFIG_KB_DATA_SIZE) == 0 uint32_t eeconfig_read_kb(void); @@ -145,31 +126,36 @@ void eeconfig_update_user(uint32_t val); #endif // (EECONFIG_USER_DATA_SIZE) == 0 #ifdef HAPTIC_ENABLE -uint32_t eeconfig_read_haptic(void); -void eeconfig_update_haptic(uint32_t val); +typedef union haptic_config_t haptic_config_t; +void eeconfig_read_haptic(haptic_config_t *haptic_config) __attribute__((nonnull)); +void eeconfig_update_haptic(const haptic_config_t *haptic_config) __attribute__((nonnull)); #endif bool eeconfig_read_handedness(void); void eeconfig_update_handedness(bool val); #if (EECONFIG_KB_DATA_SIZE) > 0 -bool eeconfig_is_kb_datablock_valid(void); -void eeconfig_read_kb_datablock(void *data); -void eeconfig_update_kb_datablock(const void *data); -void eeconfig_init_kb_datablock(void); +bool eeconfig_is_kb_datablock_valid(void); +uint32_t eeconfig_read_kb_datablock(void *data, uint32_t offset, uint32_t length) __attribute__((nonnull)); +uint32_t eeconfig_update_kb_datablock(const void *data, uint32_t offset, uint32_t length) __attribute__((nonnull)); +void eeconfig_init_kb_datablock(void); +# define eeconfig_read_kb_datablock_field(__object, __field) eeconfig_read_kb_datablock(&(__object.__field), offsetof(typeof(__object), __field), sizeof(__object.__field)) +# define eeconfig_update_kb_datablock_field(__object, __field) eeconfig_update_kb_datablock(&(__object.__field), offsetof(typeof(__object), __field), sizeof(__object.__field)) #endif // (EECONFIG_KB_DATA_SIZE) > 0 #if (EECONFIG_USER_DATA_SIZE) > 0 -bool eeconfig_is_user_datablock_valid(void); -void eeconfig_read_user_datablock(void *data); -void eeconfig_update_user_datablock(const void *data); -void eeconfig_init_user_datablock(void); +bool eeconfig_is_user_datablock_valid(void); +uint32_t eeconfig_read_user_datablock(void *data, uint32_t offset, uint32_t length) __attribute__((nonnull)); +uint32_t eeconfig_update_user_datablock(const void *data, uint32_t offset, uint32_t length) __attribute__((nonnull)); +void eeconfig_init_user_datablock(void); +# define eeconfig_read_user_datablock_field(__object, __field) eeconfig_read_user_datablock(&(__object.__field), offsetof(__object, __field), sizeof(__object.__field)) +# define eeconfig_update_user_datablock_field(__object, __field) eeconfig_update_user_datablock(&(__object.__field), offsetof(__object, __field), sizeof(__object.__field)) #endif // (EECONFIG_USER_DATA_SIZE) > 0 // Any "checked" debounce variant used requires implementation of: // -- bool eeconfig_check_valid_##name(void) // -- void eeconfig_post_flush_##name(void) -#define EECONFIG_DEBOUNCE_HELPER_CHECKED(name, offset, config) \ +#define EECONFIG_DEBOUNCE_HELPER_CHECKED(name, config) \ static uint8_t dirty_##name = false; \ \ bool eeconfig_check_valid_##name(void); \ @@ -178,13 +164,13 @@ void eeconfig_init_user_datablock(void); static inline void eeconfig_init_##name(void) { \ dirty_##name = true; \ if (eeconfig_check_valid_##name()) { \ - eeprom_read_block(&config, offset, sizeof(config)); \ + eeconfig_read_##name(&config); \ dirty_##name = false; \ } \ } \ static inline void eeconfig_flush_##name(bool force) { \ if (force || dirty_##name) { \ - eeprom_update_block(&config, offset, sizeof(config)); \ + eeconfig_update_##name(&config); \ eeconfig_post_flush_##name(); \ dirty_##name = false; \ } \ @@ -206,10 +192,10 @@ void eeconfig_init_user_datablock(void); } \ } -#define EECONFIG_DEBOUNCE_HELPER(name, offset, config) \ - EECONFIG_DEBOUNCE_HELPER_CHECKED(name, offset, config) \ - \ - bool eeconfig_check_valid_##name(void) { \ - return true; \ - } \ +#define EECONFIG_DEBOUNCE_HELPER(name, config) \ + EECONFIG_DEBOUNCE_HELPER_CHECKED(name, config) \ + \ + bool eeconfig_check_valid_##name(void) { \ + return true; \ + } \ void eeconfig_post_flush_##name(void) {} diff --git a/quantum/haptic.c b/quantum/haptic.c index 81bad469b37..8a743480ffb 100644 --- a/quantum/haptic.c +++ b/quantum/haptic.c @@ -67,7 +67,7 @@ void haptic_init(void) { if (!eeconfig_is_enabled()) { eeconfig_init(); } - haptic_config.raw = eeconfig_read_haptic(); + eeconfig_read_haptic(&haptic_config); #ifdef HAPTIC_SOLENOID solenoid_set_dwell(haptic_config.dwell); #endif @@ -122,13 +122,13 @@ void eeconfig_debug_haptic(void) { void haptic_enable(void) { set_haptic_config_enable(true); dprintf("haptic_config.enable = %u\n", haptic_config.enable); - eeconfig_update_haptic(haptic_config.raw); + eeconfig_update_haptic(&haptic_config); } void haptic_disable(void) { set_haptic_config_enable(false); dprintf("haptic_config.enable = %u\n", haptic_config.enable); - eeconfig_update_haptic(haptic_config.raw); + eeconfig_update_haptic(&haptic_config); } void haptic_toggle(void) { @@ -137,14 +137,14 @@ void haptic_toggle(void) { } else { haptic_enable(); } - eeconfig_update_haptic(haptic_config.raw); + eeconfig_update_haptic(&haptic_config); } void haptic_feedback_toggle(void) { haptic_config.feedback++; if (haptic_config.feedback >= HAPTIC_FEEDBACK_MAX) haptic_config.feedback = KEY_PRESS; dprintf("haptic_config.feedback = %u\n", !haptic_config.feedback); - eeconfig_update_haptic(haptic_config.raw); + eeconfig_update_haptic(&haptic_config); } void haptic_buzz_toggle(void) { @@ -225,26 +225,26 @@ void haptic_reset(void) { haptic_config.dwell = 0; haptic_config.buzz = 0; #endif - eeconfig_update_haptic(haptic_config.raw); + eeconfig_update_haptic(&haptic_config); dprintf("haptic_config.feedback = %u\n", haptic_config.feedback); dprintf("haptic_config.mode = %u\n", haptic_config.mode); } void haptic_set_feedback(uint8_t feedback) { haptic_config.feedback = feedback; - eeconfig_update_haptic(haptic_config.raw); + eeconfig_update_haptic(&haptic_config); dprintf("haptic_config.feedback = %u\n", haptic_config.feedback); } void haptic_set_mode(uint8_t mode) { haptic_config.mode = mode; - eeconfig_update_haptic(haptic_config.raw); + eeconfig_update_haptic(&haptic_config); dprintf("haptic_config.mode = %u\n", haptic_config.mode); } void haptic_set_amplitude(uint8_t amp) { haptic_config.amplitude = amp; - eeconfig_update_haptic(haptic_config.raw); + eeconfig_update_haptic(&haptic_config); dprintf("haptic_config.amplitude = %u\n", haptic_config.amplitude); #ifdef HAPTIC_DRV2605L drv2605l_amplitude(amp); @@ -253,13 +253,13 @@ void haptic_set_amplitude(uint8_t amp) { void haptic_set_buzz(uint8_t buzz) { haptic_config.buzz = buzz; - eeconfig_update_haptic(haptic_config.raw); + eeconfig_update_haptic(&haptic_config); dprintf("haptic_config.buzz = %u\n", haptic_config.buzz); } void haptic_set_dwell(uint8_t dwell) { haptic_config.dwell = dwell; - eeconfig_update_haptic(haptic_config.raw); + eeconfig_update_haptic(&haptic_config); dprintf("haptic_config.dwell = %u\n", haptic_config.dwell); } @@ -291,7 +291,7 @@ uint8_t haptic_get_dwell(void) { void haptic_enable_continuous(void) { haptic_config.cont = 1; dprintf("haptic_config.cont = %u\n", haptic_config.cont); - eeconfig_update_haptic(haptic_config.raw); + eeconfig_update_haptic(&haptic_config); #ifdef HAPTIC_DRV2605L drv2605l_rtp_init(); #endif @@ -300,7 +300,7 @@ void haptic_enable_continuous(void) { void haptic_disable_continuous(void) { haptic_config.cont = 0; dprintf("haptic_config.cont = %u\n", haptic_config.cont); - eeconfig_update_haptic(haptic_config.raw); + eeconfig_update_haptic(&haptic_config); #ifdef HAPTIC_DRV2605L drv2605l_write(DRV2605L_REG_MODE, 0x00); #endif diff --git a/quantum/haptic.h b/quantum/haptic.h index b283d5d2687..e27f546d408 100644 --- a/quantum/haptic.h +++ b/quantum/haptic.h @@ -28,7 +28,7 @@ #endif /* EEPROM config settings */ -typedef union { +typedef union haptic_config_t { uint32_t raw; struct { bool enable : 1; diff --git a/quantum/keyboard.c b/quantum/keyboard.c index fccdaf29905..0671b0461f8 100644 --- a/quantum/keyboard.c +++ b/quantum/keyboard.c @@ -432,8 +432,8 @@ void quantum_init(void) { } /* init globals */ - debug_config.raw = eeconfig_read_debug(); - keymap_config.raw = eeconfig_read_keymap(); + eeconfig_read_debug(&debug_config); + eeconfig_read_keymap(&keymap_config); #ifdef BOOTMAGIC_ENABLE bootmagic(); @@ -504,7 +504,7 @@ void keyboard_init(void) { #endif #if defined(NKRO_ENABLE) && defined(FORCE_NKRO) keymap_config.nkro = 1; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); #endif #ifdef DIP_SWITCH_ENABLE dip_switch_init(); diff --git a/quantum/keycode_config.h b/quantum/keycode_config.h index d1352c302ea..529cd0e127a 100644 --- a/quantum/keycode_config.h +++ b/quantum/keycode_config.h @@ -28,7 +28,7 @@ uint16_t keycode_config(uint16_t keycode); uint8_t mod_config(uint8_t mod); /* NOTE: Not portable. Bit field order depends on implementation */ -typedef union { +typedef union keymap_config_t { uint16_t raw; struct { bool swap_control_capslock : 1; diff --git a/quantum/led_matrix/led_matrix.c b/quantum/led_matrix/led_matrix.c index 58263c62e37..2e107a66e96 100644 --- a/quantum/led_matrix/led_matrix.c +++ b/quantum/led_matrix/led_matrix.c @@ -86,9 +86,9 @@ static last_hit_t last_hit_buffer; const uint8_t k_led_matrix_split[2] = LED_MATRIX_SPLIT; #endif -EECONFIG_DEBOUNCE_HELPER(led_matrix, EECONFIG_LED_MATRIX, led_matrix_eeconfig); +EECONFIG_DEBOUNCE_HELPER(led_matrix, led_matrix_eeconfig); -void eeconfig_update_led_matrix(void) { +void eeconfig_force_flush_led_matrix(void) { eeconfig_flush_led_matrix(true); } diff --git a/quantum/led_matrix/led_matrix.h b/quantum/led_matrix/led_matrix.h index a3468a20039..0006d487e9d 100644 --- a/quantum/led_matrix/led_matrix.h +++ b/quantum/led_matrix/led_matrix.h @@ -115,7 +115,7 @@ enum led_matrix_effects { }; void eeconfig_update_led_matrix_default(void); -void eeconfig_update_led_matrix(void); +void eeconfig_force_flush_led_matrix(void); void eeconfig_debug_led_matrix(void); uint8_t led_matrix_map_row_column_to_led_kb(uint8_t row, uint8_t column, uint8_t *led_i); diff --git a/quantum/led_matrix/led_matrix_types.h b/quantum/led_matrix/led_matrix_types.h index 5a516ceb102..810420f46fd 100644 --- a/quantum/led_matrix/led_matrix_types.h +++ b/quantum/led_matrix/led_matrix_types.h @@ -71,7 +71,7 @@ typedef struct PACKED { uint8_t flags[LED_MATRIX_LED_COUNT]; } led_config_t; -typedef union { +typedef union led_eeconfig_t { uint32_t raw; struct PACKED { uint8_t enable : 2; diff --git a/quantum/logging/debug.h b/quantum/logging/debug.h index b0d9b9a10ed..6675680ec7a 100644 --- a/quantum/logging/debug.h +++ b/quantum/logging/debug.h @@ -28,7 +28,7 @@ extern "C" { /* * Debug output control */ -typedef union { +typedef union debug_config_t { struct { bool enable : 1; bool matrix : 1; diff --git a/quantum/nvm/eeprom/nvm_dynamic_keymap.c b/quantum/nvm/eeprom/nvm_dynamic_keymap.c new file mode 100644 index 00000000000..5f514acc1a7 --- /dev/null +++ b/quantum/nvm/eeprom/nvm_dynamic_keymap.c @@ -0,0 +1,193 @@ +// Copyright 2024 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "keycodes.h" +#include "eeprom.h" +#include "dynamic_keymap.h" +#include "nvm_dynamic_keymap.h" +#include "nvm_eeprom_eeconfig_internal.h" +#include "nvm_eeprom_via_internal.h" + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +#ifdef ENCODER_ENABLE +# include "encoder.h" +#endif + +#ifdef VIA_ENABLE +# include "via.h" +# define DYNAMIC_KEYMAP_EEPROM_START (VIA_EEPROM_CONFIG_END) +#else +# define DYNAMIC_KEYMAP_EEPROM_START (EECONFIG_SIZE) +#endif + +#ifndef DYNAMIC_KEYMAP_EEPROM_MAX_ADDR +# define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR (TOTAL_EEPROM_BYTE_COUNT - 1) +#endif + +_Static_assert(DYNAMIC_KEYMAP_EEPROM_MAX_ADDR <= (TOTAL_EEPROM_BYTE_COUNT - 1), "DYNAMIC_KEYMAP_EEPROM_MAX_ADDR is configured to use more space than what is available for the selected EEPROM driver"); + +// Due to usage of uint16_t check for max 65535 +_Static_assert(DYNAMIC_KEYMAP_EEPROM_MAX_ADDR <= 65535, "DYNAMIC_KEYMAP_EEPROM_MAX_ADDR must be less than 65536"); + +// If DYNAMIC_KEYMAP_EEPROM_ADDR not explicitly defined in config.h, +#ifndef DYNAMIC_KEYMAP_EEPROM_ADDR +# define DYNAMIC_KEYMAP_EEPROM_ADDR DYNAMIC_KEYMAP_EEPROM_START +#endif + +// Dynamic encoders starts after dynamic keymaps +#ifndef DYNAMIC_KEYMAP_ENCODER_EEPROM_ADDR +# define DYNAMIC_KEYMAP_ENCODER_EEPROM_ADDR (DYNAMIC_KEYMAP_EEPROM_ADDR + (DYNAMIC_KEYMAP_LAYER_COUNT * MATRIX_ROWS * MATRIX_COLS * 2)) +#endif + +// Dynamic macro starts after dynamic encoders, but only when using ENCODER_MAP +#ifdef ENCODER_MAP_ENABLE +# ifndef DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR +# define DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR (DYNAMIC_KEYMAP_ENCODER_EEPROM_ADDR + (DYNAMIC_KEYMAP_LAYER_COUNT * NUM_ENCODERS * 2 * 2)) +# endif // DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR +#else // ENCODER_MAP_ENABLE +# ifndef DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR +# define DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR (DYNAMIC_KEYMAP_ENCODER_EEPROM_ADDR) +# endif // DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR +#endif // ENCODER_MAP_ENABLE + +// Sanity check that dynamic keymaps fit in available EEPROM +// If there's not 100 bytes available for macros, then something is wrong. +// The keyboard should override DYNAMIC_KEYMAP_LAYER_COUNT to reduce it, +// or DYNAMIC_KEYMAP_EEPROM_MAX_ADDR to increase it, *only if* the microcontroller has +// more than the default. +_Static_assert((DYNAMIC_KEYMAP_EEPROM_MAX_ADDR) - (DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR) >= 100, "Dynamic keymaps are configured to use more EEPROM than is available."); + +#ifndef TOTAL_EEPROM_BYTE_COUNT +# error Unknown total EEPROM size. Cannot derive maximum for dynamic keymaps. +#endif +// Dynamic macros are stored after the keymaps and use what is available +// up to and including DYNAMIC_KEYMAP_EEPROM_MAX_ADDR. +#ifndef DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE +# define DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE (DYNAMIC_KEYMAP_EEPROM_MAX_ADDR - DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + 1) +#endif + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +void nvm_dynamic_keymap_erase(void) { + // No-op, nvm_eeconfig_erase() will have already erased EEPROM if necessary. +} + +void nvm_dynamic_keymap_macro_erase(void) { + // No-op, nvm_eeconfig_erase() will have already erased EEPROM if necessary. +} + +static inline void *dynamic_keymap_key_to_eeprom_address(uint8_t layer, uint8_t row, uint8_t column) { + return ((void *)DYNAMIC_KEYMAP_EEPROM_ADDR) + (layer * MATRIX_ROWS * MATRIX_COLS * 2) + (row * MATRIX_COLS * 2) + (column * 2); +} + +uint16_t nvm_dynamic_keymap_read_keycode(uint8_t layer, uint8_t row, uint8_t column) { + if (layer >= DYNAMIC_KEYMAP_LAYER_COUNT || row >= MATRIX_ROWS || column >= MATRIX_COLS) return KC_NO; + void *address = dynamic_keymap_key_to_eeprom_address(layer, row, column); + // Big endian, so we can read/write EEPROM directly from host if we want + uint16_t keycode = eeprom_read_byte(address) << 8; + keycode |= eeprom_read_byte(address + 1); + return keycode; +} + +void nvm_dynamic_keymap_update_keycode(uint8_t layer, uint8_t row, uint8_t column, uint16_t keycode) { + if (layer >= DYNAMIC_KEYMAP_LAYER_COUNT || row >= MATRIX_ROWS || column >= MATRIX_COLS) return; + void *address = dynamic_keymap_key_to_eeprom_address(layer, row, column); + // Big endian, so we can read/write EEPROM directly from host if we want + eeprom_update_byte(address, (uint8_t)(keycode >> 8)); + eeprom_update_byte(address + 1, (uint8_t)(keycode & 0xFF)); +} + +#ifdef ENCODER_MAP_ENABLE +static void *dynamic_keymap_encoder_to_eeprom_address(uint8_t layer, uint8_t encoder_id) { + return ((void *)DYNAMIC_KEYMAP_ENCODER_EEPROM_ADDR) + (layer * NUM_ENCODERS * 2 * 2) + (encoder_id * 2 * 2); +} + +uint16_t nvm_dynamic_keymap_read_encoder(uint8_t layer, uint8_t encoder_id, bool clockwise) { + if (layer >= DYNAMIC_KEYMAP_LAYER_COUNT || encoder_id >= NUM_ENCODERS) return KC_NO; + void *address = dynamic_keymap_encoder_to_eeprom_address(layer, encoder_id); + // Big endian, so we can read/write EEPROM directly from host if we want + uint16_t keycode = ((uint16_t)eeprom_read_byte(address + (clockwise ? 0 : 2))) << 8; + keycode |= eeprom_read_byte(address + (clockwise ? 0 : 2) + 1); + return keycode; +} + +void nvm_dynamic_keymap_update_encoder(uint8_t layer, uint8_t encoder_id, bool clockwise, uint16_t keycode) { + if (layer >= DYNAMIC_KEYMAP_LAYER_COUNT || encoder_id >= NUM_ENCODERS) return; + void *address = dynamic_keymap_encoder_to_eeprom_address(layer, encoder_id); + // Big endian, so we can read/write EEPROM directly from host if we want + eeprom_update_byte(address + (clockwise ? 0 : 2), (uint8_t)(keycode >> 8)); + eeprom_update_byte(address + (clockwise ? 0 : 2) + 1, (uint8_t)(keycode & 0xFF)); +} +#endif // ENCODER_MAP_ENABLE + +void nvm_dynamic_keymap_read_buffer(uint32_t offset, uint32_t size, uint8_t *data) { + uint32_t dynamic_keymap_eeprom_size = DYNAMIC_KEYMAP_LAYER_COUNT * MATRIX_ROWS * MATRIX_COLS * 2; + void * source = (void *)(uintptr_t)(DYNAMIC_KEYMAP_EEPROM_ADDR + offset); + uint8_t *target = data; + for (uint32_t i = 0; i < size; i++) { + if (offset + i < dynamic_keymap_eeprom_size) { + *target = eeprom_read_byte(source); + } else { + *target = 0x00; + } + source++; + target++; + } +} + +void nvm_dynamic_keymap_update_buffer(uint32_t offset, uint32_t size, uint8_t *data) { + uint32_t dynamic_keymap_eeprom_size = DYNAMIC_KEYMAP_LAYER_COUNT * MATRIX_ROWS * MATRIX_COLS * 2; + void * target = (void *)(uintptr_t)(DYNAMIC_KEYMAP_EEPROM_ADDR + offset); + uint8_t *source = data; + for (uint32_t i = 0; i < size; i++) { + if (offset + i < dynamic_keymap_eeprom_size) { + eeprom_update_byte(target, *source); + } + source++; + target++; + } +} + +uint32_t nvm_dynamic_keymap_macro_size(void) { + return DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE; +} + +void nvm_dynamic_keymap_macro_read_buffer(uint32_t offset, uint32_t size, uint8_t *data) { + void * source = (void *)(uintptr_t)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + offset); + uint8_t *target = data; + for (uint16_t i = 0; i < size; i++) { + if (offset + i < DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE) { + *target = eeprom_read_byte(source); + } else { + *target = 0x00; + } + source++; + target++; + } +} + +void nvm_dynamic_keymap_macro_update_buffer(uint32_t offset, uint32_t size, uint8_t *data) { + void * target = (void *)(uintptr_t)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + offset); + uint8_t *source = data; + for (uint16_t i = 0; i < size; i++) { + if (offset + i < DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE) { + eeprom_update_byte(target, *source); + } + source++; + target++; + } +} + +void nvm_dynamic_keymap_macro_reset(void) { + void * start = (void *)(uintptr_t)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR); + void * end = (void *)(uintptr_t)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE); + long remaining = end - start; + uint8_t dummy[16] = {0}; + for (int i = 0; i < DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE; i += sizeof(dummy)) { + int this_loop = remaining < sizeof(dummy) ? remaining : sizeof(dummy); + eeprom_update_block(dummy, start, this_loop); + start += this_loop; + remaining -= this_loop; + } +} diff --git a/quantum/nvm/eeprom/nvm_eeconfig.c b/quantum/nvm/eeprom/nvm_eeconfig.c new file mode 100644 index 00000000000..d6c388f3bc0 --- /dev/null +++ b/quantum/nvm/eeprom/nvm_eeconfig.c @@ -0,0 +1,292 @@ +// Copyright 2024 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#include +#include "nvm_eeconfig.h" +#include "nvm_eeprom_eeconfig_internal.h" +#include "util.h" +#include "eeconfig.h" +#include "debug.h" +#include "eeprom.h" +#include "keycode_config.h" + +#ifdef EEPROM_DRIVER +# include "eeprom_driver.h" +#endif + +#ifdef AUDIO_ENABLE +# include "audio.h" +#endif + +#ifdef BACKLIGHT_ENABLE +# include "backlight.h" +#endif + +#ifdef RGBLIGHT_ENABLE +# include "rgblight.h" +#endif + +#ifdef RGB_MATRIX_ENABLE +# include "rgb_matrix_types.h" +#endif + +#ifdef LED_MATRIX_ENABLE +# include "led_matrix_types.h" +#endif + +#ifdef UNICODE_COMMON_ENABLE +# include "unicode.h" +#endif + +#ifdef HAPTIC_ENABLE +# include "haptic.h" +#endif + +void nvm_eeconfig_erase(void) { +#ifdef EEPROM_DRIVER + eeprom_driver_format(false); +#endif // EEPROM_DRIVER +} + +bool nvm_eeconfig_is_enabled(void) { + return eeprom_read_word(EECONFIG_MAGIC) == EECONFIG_MAGIC_NUMBER; +} + +bool nvm_eeconfig_is_disabled(void) { + return eeprom_read_word(EECONFIG_MAGIC) == EECONFIG_MAGIC_NUMBER_OFF; +} + +void nvm_eeconfig_enable(void) { + eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); +} + +void nvm_eeconfig_disable(void) { +#if defined(EEPROM_DRIVER) + eeprom_driver_format(false); +#endif + eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER_OFF); +} + +void nvm_eeconfig_read_debug(debug_config_t *debug_config) { + debug_config->raw = eeprom_read_byte(EECONFIG_DEBUG); +} +void nvm_eeconfig_update_debug(const debug_config_t *debug_config) { + eeprom_update_byte(EECONFIG_DEBUG, debug_config->raw); +} + +layer_state_t nvm_eeconfig_read_default_layer(void) { + uint8_t val = eeprom_read_byte(EECONFIG_DEFAULT_LAYER); +#ifdef DEFAULT_LAYER_STATE_IS_VALUE_NOT_BITMASK + // stored as a layer number, so convert back to bitmask + return (layer_state_t)1 << val; +#else + // stored as 8-bit-wide bitmask, so read the value directly - handling padding to 16/32 bit layer_state_t + return (layer_state_t)val; +#endif +} +void nvm_eeconfig_update_default_layer(layer_state_t state) { +#ifdef DEFAULT_LAYER_STATE_IS_VALUE_NOT_BITMASK + // stored as a layer number, so only store the highest layer + uint8_t val = get_highest_layer(state); +#else + // stored as 8-bit-wide bitmask, so write the value directly - handling truncation from 16/32 bit layer_state_t + uint8_t val = (uint8_t)state; +#endif + eeprom_update_byte(EECONFIG_DEFAULT_LAYER, val); +} + +void nvm_eeconfig_read_keymap(keymap_config_t *keymap_config) { + keymap_config->raw = eeprom_read_word(EECONFIG_KEYMAP); +} +void nvm_eeconfig_update_keymap(const keymap_config_t *keymap_config) { + eeprom_update_word(EECONFIG_KEYMAP, keymap_config->raw); +} + +#ifdef AUDIO_ENABLE +void nvm_eeconfig_read_audio(audio_config_t *audio_config) { + audio_config->raw = eeprom_read_byte(EECONFIG_AUDIO); +} +void nvm_eeconfig_update_audio(const audio_config_t *audio_config) { + eeprom_update_byte(EECONFIG_AUDIO, audio_config->raw); +} +#endif // AUDIO_ENABLE + +#ifdef UNICODE_COMMON_ENABLE +void nvm_eeconfig_read_unicode_mode(unicode_config_t *unicode_config) { + unicode_config->raw = eeprom_read_byte(EECONFIG_UNICODEMODE); +} +void nvm_eeconfig_update_unicode_mode(const unicode_config_t *unicode_config) { + eeprom_update_byte(EECONFIG_UNICODEMODE, unicode_config->raw); +} +#endif // UNICODE_COMMON_ENABLE + +#ifdef BACKLIGHT_ENABLE +void nvm_eeconfig_read_backlight(backlight_config_t *backlight_config) { + backlight_config->raw = eeprom_read_byte(EECONFIG_BACKLIGHT); +} +void nvm_eeconfig_update_backlight(const backlight_config_t *backlight_config) { + eeprom_update_byte(EECONFIG_BACKLIGHT, backlight_config->raw); +} +#endif // BACKLIGHT_ENABLE + +#ifdef STENO_ENABLE +uint8_t nvm_eeconfig_read_steno_mode(void) { + return eeprom_read_byte(EECONFIG_STENOMODE); +} +void nvm_eeconfig_update_steno_mode(uint8_t val) { + eeprom_update_byte(EECONFIG_STENOMODE, val); +} +#endif // STENO_ENABLE + +#ifdef RGBLIGHT_ENABLE +#endif // RGBLIGHT_ENABLE + +#ifdef RGB_MATRIX_ENABLE +void nvm_eeconfig_read_rgb_matrix(rgb_config_t *rgb_matrix_config) { + eeprom_read_block(rgb_matrix_config, EECONFIG_RGB_MATRIX, sizeof(rgb_config_t)); +} +void nvm_eeconfig_update_rgb_matrix(const rgb_config_t *rgb_matrix_config) { + eeprom_update_block(rgb_matrix_config, EECONFIG_RGB_MATRIX, sizeof(rgb_config_t)); +} +#endif // RGB_MATRIX_ENABLE + +#ifdef LED_MATRIX_ENABLE +void nvm_eeconfig_read_led_matrix(led_eeconfig_t *led_matrix_config) { + eeprom_read_block(led_matrix_config, EECONFIG_LED_MATRIX, sizeof(led_eeconfig_t)); +} +void nvm_eeconfig_update_led_matrix(const led_eeconfig_t *led_matrix_config) { + eeprom_update_block(led_matrix_config, EECONFIG_LED_MATRIX, sizeof(led_eeconfig_t)); +} +#endif // LED_MATRIX_ENABLE + +#ifdef RGBLIGHT_ENABLE +void nvm_eeconfig_read_rgblight(rgblight_config_t *rgblight_config) { + rgblight_config->raw = eeprom_read_dword(EECONFIG_RGBLIGHT); + rgblight_config->raw |= ((uint64_t)eeprom_read_byte(EECONFIG_RGBLIGHT_EXTENDED) << 32); +} +void nvm_eeconfig_update_rgblight(const rgblight_config_t *rgblight_config) { + eeprom_update_dword(EECONFIG_RGBLIGHT, rgblight_config->raw & 0xFFFFFFFF); + eeprom_update_byte(EECONFIG_RGBLIGHT_EXTENDED, (rgblight_config->raw >> 32) & 0xFF); +} +#endif // RGBLIGHT_ENABLE + +#if (EECONFIG_KB_DATA_SIZE) == 0 +uint32_t nvm_eeconfig_read_kb(void) { + return eeprom_read_dword(EECONFIG_KEYBOARD); +} +void nvm_eeconfig_update_kb(uint32_t val) { + eeprom_update_dword(EECONFIG_KEYBOARD, val); +} +#endif // (EECONFIG_KB_DATA_SIZE) == 0 + +#if (EECONFIG_USER_DATA_SIZE) == 0 +uint32_t nvm_eeconfig_read_user(void) { + return eeprom_read_dword(EECONFIG_USER); +} +void nvm_eeconfig_update_user(uint32_t val) { + eeprom_update_dword(EECONFIG_USER, val); +} +#endif // (EECONFIG_USER_DATA_SIZE) == 0 + +#ifdef HAPTIC_ENABLE +void nvm_eeconfig_read_haptic(haptic_config_t *haptic_config) { + haptic_config->raw = eeprom_read_dword(EECONFIG_HAPTIC); +} +void nvm_eeconfig_update_haptic(const haptic_config_t *haptic_config) { + eeprom_update_dword(EECONFIG_HAPTIC, haptic_config->raw); +} +#endif // HAPTIC_ENABLE + +bool nvm_eeconfig_read_handedness(void) { + return !!eeprom_read_byte(EECONFIG_HANDEDNESS); +} +void nvm_eeconfig_update_handedness(bool val) { + eeprom_update_byte(EECONFIG_HANDEDNESS, !!val); +} + +#if (EECONFIG_KB_DATA_SIZE) > 0 + +bool nvm_eeconfig_is_kb_datablock_valid(void) { + return eeprom_read_dword(EECONFIG_KEYBOARD) == (EECONFIG_KB_DATA_VERSION); +} + +uint32_t nvm_eeconfig_read_kb_datablock(void *data, uint32_t offset, uint32_t length) { + if (eeconfig_is_kb_datablock_valid()) { + void *ee_start = (void *)(uintptr_t)(EECONFIG_KB_DATABLOCK + offset); + void *ee_end = (void *)(uintptr_t)(EECONFIG_KB_DATABLOCK + MIN(EECONFIG_KB_DATA_SIZE, offset + length)); + eeprom_read_block(data, ee_start, ee_end - ee_start); + return ee_end - ee_start; + } else { + memset(data, 0, length); + return length; + } +} + +uint32_t nvm_eeconfig_update_kb_datablock(const void *data, uint32_t offset, uint32_t length) { + eeprom_update_dword(EECONFIG_KEYBOARD, (EECONFIG_KB_DATA_VERSION)); + + void *ee_start = (void *)(uintptr_t)(EECONFIG_KB_DATABLOCK + offset); + void *ee_end = (void *)(uintptr_t)(EECONFIG_KB_DATABLOCK + MIN(EECONFIG_KB_DATA_SIZE, offset + length)); + eeprom_update_block(data, ee_start, ee_end - ee_start); + return ee_end - ee_start; +} + +void nvm_eeconfig_init_kb_datablock(void) { + eeprom_update_dword(EECONFIG_KEYBOARD, (EECONFIG_KB_DATA_VERSION)); + + void * start = (void *)(uintptr_t)(EECONFIG_KB_DATABLOCK); + void * end = (void *)(uintptr_t)(EECONFIG_KB_DATABLOCK + EECONFIG_KB_DATA_SIZE); + long remaining = end - start; + uint8_t dummy[16] = {0}; + for (int i = 0; i < EECONFIG_KB_DATA_SIZE; i += sizeof(dummy)) { + int this_loop = remaining < sizeof(dummy) ? remaining : sizeof(dummy); + eeprom_update_block(dummy, start, this_loop); + start += this_loop; + remaining -= this_loop; + } +} + +#endif // (EECONFIG_KB_DATA_SIZE) > 0 + +#if (EECONFIG_USER_DATA_SIZE) > 0 + +bool nvm_eeconfig_is_user_datablock_valid(void) { + return eeprom_read_dword(EECONFIG_USER) == (EECONFIG_USER_DATA_VERSION); +} + +uint32_t nvm_eeconfig_read_user_datablock(void *data, uint32_t offset, uint32_t length) { + if (eeconfig_is_user_datablock_valid()) { + void *ee_start = (void *)(uintptr_t)(EECONFIG_USER_DATABLOCK + offset); + void *ee_end = (void *)(uintptr_t)(EECONFIG_USER_DATABLOCK + MIN(EECONFIG_USER_DATA_SIZE, offset + length)); + eeprom_read_block(data, ee_start, ee_end - ee_start); + return ee_end - ee_start; + } else { + memset(data, 0, length); + return length; + } +} + +uint32_t nvm_eeconfig_update_user_datablock(const void *data, uint32_t offset, uint32_t length) { + eeprom_update_dword(EECONFIG_USER, (EECONFIG_USER_DATA_VERSION)); + + void *ee_start = (void *)(uintptr_t)(EECONFIG_USER_DATABLOCK + offset); + void *ee_end = (void *)(uintptr_t)(EECONFIG_USER_DATABLOCK + MIN(EECONFIG_USER_DATA_SIZE, offset + length)); + eeprom_update_block(data, ee_start, ee_end - ee_start); + return ee_end - ee_start; +} + +void nvm_eeconfig_init_user_datablock(void) { + eeprom_update_dword(EECONFIG_USER, (EECONFIG_USER_DATA_VERSION)); + + void * start = (void *)(uintptr_t)(EECONFIG_USER_DATABLOCK); + void * end = (void *)(uintptr_t)(EECONFIG_USER_DATABLOCK + EECONFIG_USER_DATA_SIZE); + long remaining = end - start; + uint8_t dummy[16] = {0}; + for (int i = 0; i < EECONFIG_USER_DATA_SIZE; i += sizeof(dummy)) { + int this_loop = remaining < sizeof(dummy) ? remaining : sizeof(dummy); + eeprom_update_block(dummy, start, this_loop); + start += this_loop; + remaining -= this_loop; + } +} + +#endif // (EECONFIG_USER_DATA_SIZE) > 0 diff --git a/quantum/nvm/eeprom/nvm_eeprom_eeconfig_internal.h b/quantum/nvm/eeprom/nvm_eeprom_eeconfig_internal.h new file mode 100644 index 00000000000..6efbf9480b9 --- /dev/null +++ b/quantum/nvm/eeprom/nvm_eeprom_eeconfig_internal.h @@ -0,0 +1,59 @@ +// Copyright 2024 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include +#include // offsetof +#include "eeconfig.h" +#include "util.h" + +// Dummy struct only used to calculate offsets +typedef struct PACKED { + uint16_t magic; + uint8_t debug; + uint8_t default_layer; + uint16_t keymap; + uint8_t backlight; + uint8_t audio; + uint32_t rgblight; + uint8_t unicode; + uint8_t steno; + uint8_t handedness; + uint32_t keyboard; + uint32_t user; + union { // Mutually exclusive + uint32_t led_matrix; + uint64_t rgb_matrix; + }; + uint32_t haptic; + uint8_t rgblight_ext; +} eeprom_core_t; + +/* EEPROM parameter address */ +#define EECONFIG_MAGIC (uint16_t *)(offsetof(eeprom_core_t, magic)) +#define EECONFIG_DEBUG (uint8_t *)(offsetof(eeprom_core_t, debug)) +#define EECONFIG_DEFAULT_LAYER (uint8_t *)(offsetof(eeprom_core_t, default_layer)) +#define EECONFIG_KEYMAP (uint16_t *)(offsetof(eeprom_core_t, keymap)) +#define EECONFIG_BACKLIGHT (uint8_t *)(offsetof(eeprom_core_t, backlight)) +#define EECONFIG_AUDIO (uint8_t *)(offsetof(eeprom_core_t, audio)) +#define EECONFIG_RGBLIGHT (uint32_t *)(offsetof(eeprom_core_t, rgblight)) +#define EECONFIG_UNICODEMODE (uint8_t *)(offsetof(eeprom_core_t, unicode)) +#define EECONFIG_STENOMODE (uint8_t *)(offsetof(eeprom_core_t, steno)) +#define EECONFIG_HANDEDNESS (uint8_t *)(offsetof(eeprom_core_t, handedness)) +#define EECONFIG_KEYBOARD (uint32_t *)(offsetof(eeprom_core_t, keyboard)) +#define EECONFIG_USER (uint32_t *)(offsetof(eeprom_core_t, user)) +#define EECONFIG_LED_MATRIX (uint32_t *)(offsetof(eeprom_core_t, led_matrix)) +#define EECONFIG_RGB_MATRIX (uint64_t *)(offsetof(eeprom_core_t, rgb_matrix)) +#define EECONFIG_HAPTIC (uint32_t *)(offsetof(eeprom_core_t, haptic)) +#define EECONFIG_RGBLIGHT_EXTENDED (uint8_t *)(offsetof(eeprom_core_t, rgblight_ext)) + +// Size of EEPROM being used for core data storage +#define EECONFIG_BASE_SIZE ((uint8_t)sizeof(eeprom_core_t)) + +#define EECONFIG_KB_DATABLOCK ((uint8_t *)(EECONFIG_BASE_SIZE)) +#define EECONFIG_USER_DATABLOCK ((uint8_t *)((EECONFIG_BASE_SIZE) + (EECONFIG_KB_DATA_SIZE))) + +// Size of EEPROM being used, other code can refer to this for available EEPROM +#define EECONFIG_SIZE ((EECONFIG_BASE_SIZE) + (EECONFIG_KB_DATA_SIZE) + (EECONFIG_USER_DATA_SIZE)) + +_Static_assert((intptr_t)EECONFIG_HANDEDNESS == 14, "EEPROM handedness offset is incorrect"); diff --git a/quantum/nvm/eeprom/nvm_eeprom_via_internal.h b/quantum/nvm/eeprom/nvm_eeprom_via_internal.h new file mode 100644 index 00000000000..bf0d38e2ac3 --- /dev/null +++ b/quantum/nvm/eeprom/nvm_eeprom_via_internal.h @@ -0,0 +1,22 @@ +// Copyright 2024 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +// Keyboard level code can change where VIA stores the magic. +// The magic is the build date YYMMDD encoded as BCD in 3 bytes, +// thus installing firmware built on a different date to the one +// already installed can be detected and the EEPROM data is reset. +// The only reason this is important is in case EEPROM usage changes +// and the EEPROM was not explicitly reset by bootmagic lite. +#ifndef VIA_EEPROM_MAGIC_ADDR +# define VIA_EEPROM_MAGIC_ADDR (EECONFIG_SIZE) +#endif + +#define VIA_EEPROM_LAYOUT_OPTIONS_ADDR (VIA_EEPROM_MAGIC_ADDR + 3) + +// The end of the EEPROM memory used by VIA +// By default, dynamic keymaps will start at this if there is no +// custom config +#define VIA_EEPROM_CUSTOM_CONFIG_ADDR (VIA_EEPROM_LAYOUT_OPTIONS_ADDR + VIA_EEPROM_LAYOUT_OPTIONS_SIZE) + +#define VIA_EEPROM_CONFIG_END (VIA_EEPROM_CUSTOM_CONFIG_ADDR + VIA_EEPROM_CUSTOM_CONFIG_SIZE) diff --git a/quantum/nvm/eeprom/nvm_via.c b/quantum/nvm/eeprom/nvm_via.c new file mode 100644 index 00000000000..5372791fb7a --- /dev/null +++ b/quantum/nvm/eeprom/nvm_via.c @@ -0,0 +1,77 @@ +// Copyright 2024 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "eeprom.h" +#include "util.h" +#include "via.h" +#include "nvm_via.h" +#include "nvm_eeprom_eeconfig_internal.h" +#include "nvm_eeprom_via_internal.h" + +void nvm_via_erase(void) { + // No-op, nvm_eeconfig_erase() will have already erased EEPROM if necessary. +} + +void nvm_via_read_magic(uint8_t *magic0, uint8_t *magic1, uint8_t *magic2) { + if (magic0) { + *magic0 = eeprom_read_byte((void *)VIA_EEPROM_MAGIC_ADDR + 0); + } + + if (magic1) { + *magic1 = eeprom_read_byte((void *)VIA_EEPROM_MAGIC_ADDR + 1); + } + + if (magic2) { + *magic2 = eeprom_read_byte((void *)VIA_EEPROM_MAGIC_ADDR + 2); + } +} + +void nvm_via_update_magic(uint8_t magic0, uint8_t magic1, uint8_t magic2) { + eeprom_update_byte((void *)VIA_EEPROM_MAGIC_ADDR + 0, magic0); + eeprom_update_byte((void *)VIA_EEPROM_MAGIC_ADDR + 1, magic1); + eeprom_update_byte((void *)VIA_EEPROM_MAGIC_ADDR + 2, magic2); +} + +uint32_t nvm_via_read_layout_options(void) { + uint32_t value = 0; + // Start at the most significant byte + void *source = (void *)(VIA_EEPROM_LAYOUT_OPTIONS_ADDR); + for (uint8_t i = 0; i < VIA_EEPROM_LAYOUT_OPTIONS_SIZE; i++) { + value = value << 8; + value |= eeprom_read_byte(source); + source++; + } + return value; +} + +void nvm_via_update_layout_options(uint32_t val) { + // Start at the least significant byte + void *target = (void *)(VIA_EEPROM_LAYOUT_OPTIONS_ADDR + VIA_EEPROM_LAYOUT_OPTIONS_SIZE - 1); + for (uint8_t i = 0; i < VIA_EEPROM_LAYOUT_OPTIONS_SIZE; i++) { + eeprom_update_byte(target, val & 0xFF); + val = val >> 8; + target--; + } +} + +uint32_t nvm_via_read_custom_config(void *buf, uint32_t offset, uint32_t length) { +#if VIA_EEPROM_CUSTOM_CONFIG_SIZE > 0 + void *ee_start = (void *)(uintptr_t)(VIA_EEPROM_CUSTOM_CONFIG_ADDR + offset); + void *ee_end = (void *)(uintptr_t)(VIA_EEPROM_CUSTOM_CONFIG_ADDR + MIN(VIA_EEPROM_CUSTOM_CONFIG_SIZE, offset + length)); + eeprom_read_block(buf, ee_start, ee_end - ee_start); + return ee_end - ee_start; +#else + return 0; +#endif +} + +uint32_t nvm_via_update_custom_config(const void *buf, uint32_t offset, uint32_t length) { +#if VIA_EEPROM_CUSTOM_CONFIG_SIZE > 0 + void *ee_start = (void *)(uintptr_t)(VIA_EEPROM_CUSTOM_CONFIG_ADDR + offset); + void *ee_end = (void *)(uintptr_t)(VIA_EEPROM_CUSTOM_CONFIG_ADDR + MIN(VIA_EEPROM_CUSTOM_CONFIG_SIZE, offset + length)); + eeprom_update_block(buf, ee_start, ee_end - ee_start); + return ee_end - ee_start; +#else + return 0; +#endif +} diff --git a/quantum/nvm/nvm_dynamic_keymap.h b/quantum/nvm/nvm_dynamic_keymap.h new file mode 100644 index 00000000000..d6e4aaee51a --- /dev/null +++ b/quantum/nvm/nvm_dynamic_keymap.h @@ -0,0 +1,27 @@ +// Copyright 2024 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include +#include + +void nvm_dynamic_keymap_erase(void); +void nvm_dynamic_keymap_macro_erase(void); + +uint16_t nvm_dynamic_keymap_read_keycode(uint8_t layer, uint8_t row, uint8_t column); +void nvm_dynamic_keymap_update_keycode(uint8_t layer, uint8_t row, uint8_t column, uint16_t keycode); + +#ifdef ENCODER_MAP_ENABLE +uint16_t nvm_dynamic_keymap_read_encoder(uint8_t layer, uint8_t encoder_id, bool clockwise); +void nvm_dynamic_keymap_update_encoder(uint8_t layer, uint8_t encoder_id, bool clockwise, uint16_t keycode); +#endif // ENCODER_MAP_ENABLE + +void nvm_dynamic_keymap_read_buffer(uint32_t offset, uint32_t size, uint8_t *data); +void nvm_dynamic_keymap_update_buffer(uint32_t offset, uint32_t size, uint8_t *data); + +uint32_t nvm_dynamic_keymap_macro_size(void); + +void nvm_dynamic_keymap_macro_read_buffer(uint32_t offset, uint32_t size, uint8_t *data); +void nvm_dynamic_keymap_macro_update_buffer(uint32_t offset, uint32_t size, uint8_t *data); + +void nvm_dynamic_keymap_macro_reset(void); diff --git a/quantum/nvm/nvm_eeconfig.h b/quantum/nvm/nvm_eeconfig.h new file mode 100644 index 00000000000..131f61d5347 --- /dev/null +++ b/quantum/nvm/nvm_eeconfig.h @@ -0,0 +1,105 @@ +// Copyright 2024 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include +#include +#include "action_layer.h" // layer_state_t + +#ifndef EECONFIG_MAGIC_NUMBER +# define EECONFIG_MAGIC_NUMBER (uint16_t)0xFEE3 // When changing, decrement this value to avoid future re-init issues +#endif +#define EECONFIG_MAGIC_NUMBER_OFF (uint16_t)0xFFFF + +void nvm_eeconfig_erase(void); + +bool nvm_eeconfig_is_enabled(void); +bool nvm_eeconfig_is_disabled(void); + +void nvm_eeconfig_enable(void); +void nvm_eeconfig_disable(void); + +typedef union debug_config_t debug_config_t; +void nvm_eeconfig_read_debug(debug_config_t *debug_config); +void nvm_eeconfig_update_debug(const debug_config_t *debug_config); + +layer_state_t nvm_eeconfig_read_default_layer(void); +void nvm_eeconfig_update_default_layer(layer_state_t state); + +typedef union keymap_config_t keymap_config_t; +void nvm_eeconfig_read_keymap(keymap_config_t *keymap_config); +void nvm_eeconfig_update_keymap(const keymap_config_t *keymap_config); + +#ifdef AUDIO_ENABLE +typedef union audio_config_t audio_config_t; +void nvm_eeconfig_read_audio(audio_config_t *audio_config); +void nvm_eeconfig_update_audio(const audio_config_t *audio_config); +#endif // AUDIO_ENABLE + +#ifdef UNICODE_COMMON_ENABLE +typedef union unicode_config_t unicode_config_t; +void nvm_eeconfig_read_unicode_mode(unicode_config_t *unicode_config); +void nvm_eeconfig_update_unicode_mode(const unicode_config_t *unicode_config); +#endif // UNICODE_COMMON_ENABLE + +#ifdef BACKLIGHT_ENABLE +typedef union backlight_config_t backlight_config_t; +void nvm_eeconfig_read_backlight(backlight_config_t *backlight_config); +void nvm_eeconfig_update_backlight(const backlight_config_t *backlight_config); +#endif // BACKLIGHT_ENABLE + +#ifdef STENO_ENABLE +uint8_t nvm_eeconfig_read_steno_mode(void); +void nvm_eeconfig_update_steno_mode(uint8_t val); +#endif // STENO_ENABLE + +#ifdef RGB_MATRIX_ENABLE +typedef union rgb_config_t rgb_config_t; +void nvm_eeconfig_read_rgb_matrix(rgb_config_t *rgb_matrix_config); +void nvm_eeconfig_update_rgb_matrix(const rgb_config_t *rgb_matrix_config); +#endif + +#ifdef LED_MATRIX_ENABLE +typedef union led_eeconfig_t led_eeconfig_t; +void nvm_eeconfig_read_led_matrix(led_eeconfig_t *led_matrix_config); +void nvm_eeconfig_update_led_matrix(const led_eeconfig_t *led_matrix_config); +#endif // LED_MATRIX_ENABLE + +#ifdef RGBLIGHT_ENABLE +typedef union rgblight_config_t rgblight_config_t; +void nvm_eeconfig_read_rgblight(rgblight_config_t *rgblight_config); +void nvm_eeconfig_update_rgblight(const rgblight_config_t *rgblight_config); +#endif // RGBLIGHT_ENABLE + +#if (EECONFIG_KB_DATA_SIZE) == 0 +uint32_t nvm_eeconfig_read_kb(void); +void nvm_eeconfig_update_kb(uint32_t val); +#endif // (EECONFIG_KB_DATA_SIZE) == 0 + +#if (EECONFIG_USER_DATA_SIZE) == 0 +uint32_t nvm_eeconfig_read_user(void); +void nvm_eeconfig_update_user(uint32_t val); +#endif // (EECONFIG_USER_DATA_SIZE) == 0 + +#ifdef HAPTIC_ENABLE +typedef union haptic_config_t haptic_config_t; +void nvm_eeconfig_read_haptic(haptic_config_t *haptic_config); +void nvm_eeconfig_update_haptic(const haptic_config_t *haptic_config); +#endif // HAPTIC_ENABLE + +bool nvm_eeconfig_read_handedness(void); +void nvm_eeconfig_update_handedness(bool val); + +#if (EECONFIG_KB_DATA_SIZE) > 0 +bool nvm_eeconfig_is_kb_datablock_valid(void); +uint32_t nvm_eeconfig_read_kb_datablock(void *data, uint32_t offset, uint32_t length); +uint32_t nvm_eeconfig_update_kb_datablock(const void *data, uint32_t offset, uint32_t length); +void nvm_eeconfig_init_kb_datablock(void); +#endif // (EECONFIG_KB_DATA_SIZE) > 0 + +#if (EECONFIG_USER_DATA_SIZE) > 0 +bool nvm_eeconfig_is_user_datablock_valid(void); +uint32_t nvm_eeconfig_read_user_datablock(void *data, uint32_t offset, uint32_t length); +uint32_t nvm_eeconfig_update_user_datablock(const void *data, uint32_t offset, uint32_t length); +void nvm_eeconfig_init_user_datablock(void); +#endif // (EECONFIG_USER_DATA_SIZE) > 0 diff --git a/quantum/nvm/nvm_via.h b/quantum/nvm/nvm_via.h new file mode 100644 index 00000000000..90c5e674217 --- /dev/null +++ b/quantum/nvm/nvm_via.h @@ -0,0 +1,17 @@ +// Copyright 2024 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include +#include + +void nvm_via_erase(void); + +void nvm_via_read_magic(uint8_t *magic0, uint8_t *magic1, uint8_t *magic2); +void nvm_via_update_magic(uint8_t magic0, uint8_t magic1, uint8_t magic2); + +uint32_t nvm_via_read_layout_options(void); +void nvm_via_update_layout_options(uint32_t val); + +uint32_t nvm_via_read_custom_config(void *buf, uint32_t offset, uint32_t length); +uint32_t nvm_via_update_custom_config(const void *buf, uint32_t offset, uint32_t length); diff --git a/quantum/nvm/readme.md b/quantum/nvm/readme.md new file mode 100644 index 00000000000..0731695e92f --- /dev/null +++ b/quantum/nvm/readme.md @@ -0,0 +1,30 @@ +# Non-volatile Memory - Data Repositories + +This area is intentionally structured in the following way: + +``` +╰- quantum + ╰- nvm + ├- readme.md + ├- rules.mk + | + ├- nvm_eeconfig.h + ├- nvm_<>.h + | + ├- eeprom + | ├- nvm_eeconfig.c + | ├- nvm_<>.c + | ╰- ... + | + ├- <> + | ├- nvm_eeconfig.c + | ├- nvm_<>.c + | ╰- ... + ╰- ... +``` + +At the base `nvm` level, for every QMK core system which requires persistence there must be a corresponding `nvm_<>.h` header file. This provides the data repository API to the "owner" system, and allows the underlying data persistence mechanism to be abstracted away from upper code. Any conversion to/from a `.raw` field should occur inside the `nvm_<>.c` layer, with the API using values, such as structs or unions exposed to the rest of QMK. + +Each `nvm` "provider" is a corresponding child directory consisting of its name, such as `eeprom`, and corresponding `nvm_<>.c` implementation files which provide the concrete implementation of the upper `nvm_<>.h`. + +New systems requiring persistence can add the corresponding `nvm_<>.h` file, and in most circumstances must also implement equivalent `nvm_<>.c` files for every `nvm` provider. If persistence is not possible for that system, a `nvm_<>.c` file with simple stubs which ignore writes and provide sane defaults must be used instead. \ No newline at end of file diff --git a/quantum/nvm/rules.mk b/quantum/nvm/rules.mk new file mode 100644 index 00000000000..c9c1fabfd49 --- /dev/null +++ b/quantum/nvm/rules.mk @@ -0,0 +1,31 @@ +# Copyright 2024 Nick Brassel (@tzarc) +# SPDX-License-Identifier: GPL-2.0-or-later + +VPATH += $(QUANTUM_DIR)/nvm + +VALID_NVM_DRIVERS := eeprom custom none + +NVM_DRIVER ?= eeprom + +ifeq ($(filter $(NVM_DRIVER),$(VALID_NVM_DRIVERS)),) + $(call CATASTROPHIC_ERROR,Invalid NVM_DRIVER,NVM_DRIVER="$(NVM_DRIVER)" is not a valid NVM driver) +else + + # If we don't want one, fake it with transient eeprom. + ifeq ($(NVM_DRIVER),none) + NVM_DRIVER := eeprom + EEPROM_DRIVER := transient + endif + + NVM_DRIVER_UPPER := $(shell echo $(NVM_DRIVER) | tr '[:lower:]' '[:upper:]') + NVM_DRIVER_LOWER := $(shell echo $(NVM_DRIVER) | tr '[:upper:]' '[:lower:]') + + OPT_DEFS += -DNVM_DRIVER_$(NVM_DRIVER_UPPER) -DNVM_DRIVER="$(NVM_DRIVER)" + + ifneq ("$(wildcard $(QUANTUM_DIR)/nvm/$(NVM_DRIVER_LOWER))","") + COMMON_VPATH += $(QUANTUM_DIR)/nvm/$(NVM_DRIVER_LOWER) + endif + + QUANTUM_SRC += nvm_eeconfig.c + +endif diff --git a/quantum/os_detection.h b/quantum/os_detection.h index 98a8e805e4c..e9e7b25f1d2 100644 --- a/quantum/os_detection.h +++ b/quantum/os_detection.h @@ -43,6 +43,9 @@ void slave_update_detected_host_os(os_variant_t os); #endif #ifdef OS_DETECTION_DEBUG_ENABLE +# if defined(DYNAMIC_KEYMAP_ENABLE) || defined(VIA_ENABLE) +# error Cannot enable OS Detection debug mode simultaneously with DYNAMIC_KEYMAP or VIA +# endif void print_stored_setups(void); void store_setups_in_eeprom(void); #endif diff --git a/quantum/process_keycode/process_autocorrect.c b/quantum/process_keycode/process_autocorrect.c index b7f9132acf7..0cde520778c 100644 --- a/quantum/process_keycode/process_autocorrect.c +++ b/quantum/process_keycode/process_autocorrect.c @@ -38,7 +38,7 @@ bool autocorrect_is_enabled(void) { */ void autocorrect_enable(void) { keymap_config.autocorrect_enable = true; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } /** @@ -48,7 +48,7 @@ void autocorrect_enable(void) { void autocorrect_disable(void) { keymap_config.autocorrect_enable = false; typo_buffer_size = 0; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } /** @@ -58,7 +58,7 @@ void autocorrect_disable(void) { void autocorrect_toggle(void) { keymap_config.autocorrect_enable = !keymap_config.autocorrect_enable; typo_buffer_size = 0; - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); } /** diff --git a/quantum/process_keycode/process_clicky.c b/quantum/process_keycode/process_clicky.c index 82000db9b30..f50761268a7 100644 --- a/quantum/process_keycode/process_clicky.c +++ b/quantum/process_keycode/process_clicky.c @@ -66,17 +66,17 @@ void clicky_freq_reset(void) { void clicky_toggle(void) { audio_config.clicky_enable ^= 1; - eeconfig_update_audio(audio_config.raw); + eeconfig_update_audio(&audio_config); } void clicky_on(void) { audio_config.clicky_enable = 1; - eeconfig_update_audio(audio_config.raw); + eeconfig_update_audio(&audio_config); } void clicky_off(void) { audio_config.clicky_enable = 0; - eeconfig_update_audio(audio_config.raw); + eeconfig_update_audio(&audio_config); } bool is_clicky_on(void) { diff --git a/quantum/process_keycode/process_magic.c b/quantum/process_keycode/process_magic.c index 3b35884d68a..d5280105de3 100644 --- a/quantum/process_keycode/process_magic.c +++ b/quantum/process_keycode/process_magic.c @@ -47,7 +47,7 @@ bool process_magic(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { if (IS_MAGIC_KEYCODE(keycode)) { /* keymap config */ - keymap_config.raw = eeconfig_read_keymap(); + eeconfig_read_keymap(&keymap_config); switch (keycode) { case QK_MAGIC_SWAP_CONTROL_CAPS_LOCK: keymap_config.swap_control_capslock = true; @@ -187,7 +187,7 @@ bool process_magic(uint16_t keycode, keyrecord_t *record) { break; } - eeconfig_update_keymap(keymap_config.raw); + eeconfig_update_keymap(&keymap_config); clear_keyboard(); // clear to prevent stuck keys return false; diff --git a/quantum/process_keycode/process_steno.c b/quantum/process_keycode/process_steno.c index c491d6f1d8c..47894613523 100644 --- a/quantum/process_keycode/process_steno.c +++ b/quantum/process_keycode/process_steno.c @@ -20,9 +20,6 @@ #ifdef VIRTSER_ENABLE # include "virtser.h" #endif -#ifdef STENO_ENABLE_ALL -# include "eeprom.h" -#endif // All steno keys that have been pressed to form this chord, // stored in MAX_STROKE_SIZE groups of 8-bit arrays. @@ -128,13 +125,13 @@ static const uint16_t combinedmap_second[] PROGMEM = {STN_S2, STN_KL, STN_WL, ST #ifdef STENO_ENABLE_ALL void steno_init(void) { - mode = eeprom_read_byte(EECONFIG_STENOMODE); + mode = eeconfig_read_steno_mode(); } void steno_set_mode(steno_mode_t new_mode) { steno_clear_chord(); mode = new_mode; - eeprom_update_byte(EECONFIG_STENOMODE, mode); + eeconfig_update_steno_mode(mode); } #endif // STENO_ENABLE_ALL diff --git a/quantum/rgb_matrix/rgb_matrix.c b/quantum/rgb_matrix/rgb_matrix.c index 484d177546a..a18105c9b35 100644 --- a/quantum/rgb_matrix/rgb_matrix.c +++ b/quantum/rgb_matrix/rgb_matrix.c @@ -88,9 +88,9 @@ static last_hit_t last_hit_buffer; const uint8_t k_rgb_matrix_split[2] = RGB_MATRIX_SPLIT; #endif -EECONFIG_DEBOUNCE_HELPER(rgb_matrix, EECONFIG_RGB_MATRIX, rgb_matrix_config); +EECONFIG_DEBOUNCE_HELPER(rgb_matrix, rgb_matrix_config); -void eeconfig_update_rgb_matrix(void) { +void eeconfig_force_flush_rgb_matrix(void) { eeconfig_flush_rgb_matrix(true); } diff --git a/quantum/rgb_matrix/rgb_matrix.h b/quantum/rgb_matrix/rgb_matrix.h index 33f7e06a639..e00e3927c76 100644 --- a/quantum/rgb_matrix/rgb_matrix.h +++ b/quantum/rgb_matrix/rgb_matrix.h @@ -140,7 +140,7 @@ enum rgb_matrix_effects { }; void eeconfig_update_rgb_matrix_default(void); -void eeconfig_update_rgb_matrix(void); +void eeconfig_force_flush_rgb_matrix(void); uint8_t rgb_matrix_map_row_column_to_led_kb(uint8_t row, uint8_t column, uint8_t *led_i); uint8_t rgb_matrix_map_row_column_to_led(uint8_t row, uint8_t column, uint8_t *led_i); @@ -215,7 +215,7 @@ void rgb_matrix_set_flags_noeeprom(led_flags_t flags); void rgb_matrix_update_pwm_buffers(void); #ifndef RGBLIGHT_ENABLE -# define eeconfig_update_rgblight_current eeconfig_update_rgb_matrix +# define eeconfig_update_rgblight_current eeconfig_force_flush_rgb_matrix # define rgblight_reload_from_eeprom rgb_matrix_reload_from_eeprom # define rgblight_toggle rgb_matrix_toggle # define rgblight_toggle_noeeprom rgb_matrix_toggle_noeeprom diff --git a/quantum/rgb_matrix/rgb_matrix_types.h b/quantum/rgb_matrix/rgb_matrix_types.h index 0834a7067c4..62005ebea9f 100644 --- a/quantum/rgb_matrix/rgb_matrix_types.h +++ b/quantum/rgb_matrix/rgb_matrix_types.h @@ -73,7 +73,7 @@ typedef struct PACKED { uint8_t flags[RGB_MATRIX_LED_COUNT]; } led_config_t; -typedef union { +typedef union rgb_config_t { uint64_t raw; struct PACKED { uint8_t enable : 2; diff --git a/quantum/rgblight/rgblight.c b/quantum/rgblight/rgblight.c index ddccc9bae36..83f97c81143 100644 --- a/quantum/rgblight/rgblight.c +++ b/quantum/rgblight/rgblight.c @@ -24,9 +24,7 @@ #include "util.h" #include "led_tables.h" #include -#ifdef EEPROM_ENABLE -# include "eeprom.h" -#endif +#include "eeconfig.h" #ifdef RGBLIGHT_SPLIT /* for split keyboard */ @@ -176,24 +174,9 @@ void rgblight_check_config(void) { } } -uint64_t eeconfig_read_rgblight(void) { -#ifdef EEPROM_ENABLE - return (uint64_t)((eeprom_read_dword(EECONFIG_RGBLIGHT)) | ((uint64_t)eeprom_read_byte(EECONFIG_RGBLIGHT_EXTENDED) << 32)); -#else - return 0; -#endif -} - -void eeconfig_update_rgblight(uint64_t val) { -#ifdef EEPROM_ENABLE - rgblight_check_config(); - eeprom_update_dword(EECONFIG_RGBLIGHT, val & 0xFFFFFFFF); - eeprom_update_byte(EECONFIG_RGBLIGHT_EXTENDED, (val >> 32) & 0xFF); -#endif -} - void eeconfig_update_rgblight_current(void) { - eeconfig_update_rgblight(rgblight_config.raw); + rgblight_check_config(); + eeconfig_update_rgblight(&rgblight_config); } void eeconfig_update_rgblight_default(void) { @@ -205,7 +188,7 @@ void eeconfig_update_rgblight_default(void) { rgblight_config.val = RGBLIGHT_DEFAULT_VAL; rgblight_config.speed = RGBLIGHT_DEFAULT_SPD; RGBLIGHT_SPLIT_SET_CHANGE_MODEHSVS; - eeconfig_update_rgblight(rgblight_config.raw); + eeconfig_update_rgblight(&rgblight_config); } void eeconfig_debug_rgblight(void) { @@ -228,12 +211,12 @@ void rgblight_init(void) { } dprintf("rgblight_init start!\n"); - rgblight_config.raw = eeconfig_read_rgblight(); + eeconfig_read_rgblight(&rgblight_config); RGBLIGHT_SPLIT_SET_CHANGE_MODEHSVS; if (!rgblight_config.mode) { dprintf("rgblight_init rgblight_config.mode = 0. Write default values to EEPROM.\n"); eeconfig_update_rgblight_default(); - rgblight_config.raw = eeconfig_read_rgblight(); + eeconfig_read_rgblight(&rgblight_config); } rgblight_check_config(); @@ -252,7 +235,7 @@ void rgblight_init(void) { void rgblight_reload_from_eeprom(void) { /* Reset back to what we have in eeprom */ - rgblight_config.raw = eeconfig_read_rgblight(); + eeconfig_read_rgblight(&rgblight_config); RGBLIGHT_SPLIT_SET_CHANGE_MODEHSVS; rgblight_check_config(); eeconfig_debug_rgblight(); // display current eeprom values @@ -341,7 +324,7 @@ void rgblight_mode_eeprom_helper(uint8_t mode, bool write_to_eeprom) { } RGBLIGHT_SPLIT_SET_CHANGE_MODE; if (write_to_eeprom) { - eeconfig_update_rgblight(rgblight_config.raw); + eeconfig_update_rgblight(&rgblight_config); dprintf("rgblight mode [EEPROM]: %u\n", rgblight_config.mode); } else { dprintf("rgblight mode [NOEEPROM]: %u\n", rgblight_config.mode); @@ -386,7 +369,7 @@ void rgblight_toggle_noeeprom(void) { void rgblight_enable(void) { rgblight_config.enable = 1; // No need to update EEPROM here. rgblight_mode() will do that, actually - // eeconfig_update_rgblight(rgblight_config.raw); + // eeconfig_update_rgblight(&rgblight_config); dprintf("rgblight enable [EEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable); rgblight_mode(rgblight_config.mode); } @@ -399,7 +382,7 @@ void rgblight_enable_noeeprom(void) { void rgblight_disable(void) { rgblight_config.enable = 0; - eeconfig_update_rgblight(rgblight_config.raw); + eeconfig_update_rgblight(&rgblight_config); dprintf("rgblight disable [EEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable); rgblight_timer_disable(); RGBLIGHT_SPLIT_SET_CHANGE_MODE; @@ -487,7 +470,7 @@ void rgblight_increase_speed_helper(bool write_to_eeprom) { if (rgblight_config.speed < 3) rgblight_config.speed++; // RGBLIGHT_SPLIT_SET_CHANGE_HSVS; // NEED? if (write_to_eeprom) { - eeconfig_update_rgblight(rgblight_config.raw); + eeconfig_update_rgblight(&rgblight_config); } } void rgblight_increase_speed(void) { @@ -501,7 +484,7 @@ void rgblight_decrease_speed_helper(bool write_to_eeprom) { if (rgblight_config.speed > 0) rgblight_config.speed--; // RGBLIGHT_SPLIT_SET_CHANGE_HSVS; // NEED?? if (write_to_eeprom) { - eeconfig_update_rgblight(rgblight_config.raw); + eeconfig_update_rgblight(&rgblight_config); } } void rgblight_decrease_speed(void) { @@ -585,7 +568,7 @@ void rgblight_sethsv_eeprom_helper(uint8_t hue, uint8_t sat, uint8_t val, bool w rgblight_config.sat = sat; rgblight_config.val = val; if (write_to_eeprom) { - eeconfig_update_rgblight(rgblight_config.raw); + eeconfig_update_rgblight(&rgblight_config); dprintf("rgblight set hsv [EEPROM]: %u,%u,%u\n", rgblight_config.hue, rgblight_config.sat, rgblight_config.val); } else { dprintf("rgblight set hsv [NOEEPROM]: %u,%u,%u\n", rgblight_config.hue, rgblight_config.sat, rgblight_config.val); @@ -608,7 +591,7 @@ uint8_t rgblight_get_speed(void) { void rgblight_set_speed_eeprom_helper(uint8_t speed, bool write_to_eeprom) { rgblight_config.speed = speed; if (write_to_eeprom) { - eeconfig_update_rgblight(rgblight_config.raw); + eeconfig_update_rgblight(&rgblight_config); dprintf("rgblight set speed [EEPROM]: %u\n", rgblight_config.speed); } else { dprintf("rgblight set speed [NOEEPROM]: %u\n", rgblight_config.speed); diff --git a/quantum/rgblight/rgblight.h b/quantum/rgblight/rgblight.h index f4b6e621e40..f5fd450d4cf 100644 --- a/quantum/rgblight/rgblight.h +++ b/quantum/rgblight/rgblight.h @@ -168,7 +168,6 @@ enum RGBLIGHT_EFFECT_MODE { #include #include "rgblight_drivers.h" #include "progmem.h" -#include "eeconfig.h" #include "color.h" #ifdef RGBLIGHT_LAYERS @@ -248,7 +247,7 @@ extern const uint16_t RGBLED_RGBTEST_INTERVALS[1] PROGMEM; extern const uint8_t RGBLED_TWINKLE_INTERVALS[3] PROGMEM; extern bool is_rgblight_initialized; -typedef union { +typedef union rgblight_config_t { uint64_t raw; struct { bool enable : 1; @@ -370,8 +369,6 @@ void rgblight_suspend(void); void rgblight_wakeup(void); uint64_t rgblight_read_qword(void); void rgblight_update_qword(uint64_t qword); -uint64_t eeconfig_read_rgblight(void); -void eeconfig_update_rgblight(uint64_t val); void eeconfig_update_rgblight_current(void); void eeconfig_update_rgblight_default(void); void eeconfig_debug_rgblight(void); diff --git a/quantum/unicode/unicode.c b/quantum/unicode/unicode.c index 78a4cad5859..b0729335f07 100644 --- a/quantum/unicode/unicode.c +++ b/quantum/unicode/unicode.c @@ -136,7 +136,7 @@ static void unicode_play_song(uint8_t mode) { #endif void unicode_input_mode_init(void) { - unicode_config.raw = eeprom_read_byte(EECONFIG_UNICODEMODE); + eeconfig_read_unicode_mode(&unicode_config); #if UNICODE_SELECTED_MODES != -1 # if UNICODE_CYCLE_PERSIST // Find input_mode in selected modes @@ -165,7 +165,7 @@ uint8_t get_unicode_input_mode(void) { } static void persist_unicode_input_mode(void) { - eeprom_update_byte(EECONFIG_UNICODEMODE, unicode_config.input_mode); + eeconfig_update_unicode_mode(&unicode_config); } void set_unicode_input_mode(uint8_t mode) { diff --git a/quantum/unicode/unicode.h b/quantum/unicode/unicode.h index 90a54c8b18b..f19d8033354 100644 --- a/quantum/unicode/unicode.h +++ b/quantum/unicode/unicode.h @@ -26,7 +26,7 @@ * \{ */ -typedef union { +typedef union unicode_config_t { uint8_t raw; struct { uint8_t input_mode : 8; diff --git a/quantum/via.c b/quantum/via.c index 643d7aa3c39..c746d9a6082 100644 --- a/quantum/via.c +++ b/quantum/via.c @@ -32,6 +32,7 @@ #include "timer.h" #include "wait.h" #include "version.h" // for QMK_BUILDDATE used in EEPROM magic +#include "nvm_via.h" #if defined(AUDIO_ENABLE) # include "audio.h" @@ -65,20 +66,26 @@ bool via_eeprom_is_valid(void) { uint8_t magic1 = ((p[5] & 0x0F) << 4) | (p[6] & 0x0F); uint8_t magic2 = ((p[8] & 0x0F) << 4) | (p[9] & 0x0F); - return (eeprom_read_byte((void *)VIA_EEPROM_MAGIC_ADDR + 0) == magic0 && eeprom_read_byte((void *)VIA_EEPROM_MAGIC_ADDR + 1) == magic1 && eeprom_read_byte((void *)VIA_EEPROM_MAGIC_ADDR + 2) == magic2); + uint8_t ee_magic0; + uint8_t ee_magic1; + uint8_t ee_magic2; + nvm_via_read_magic(&ee_magic0, &ee_magic1, &ee_magic2); + + return ee_magic0 == magic0 && ee_magic1 == magic1 && ee_magic2 == magic2; } // Sets VIA/keyboard level usage of EEPROM to valid/invalid // Keyboard level code (eg. via_init_kb()) should not call this void via_eeprom_set_valid(bool valid) { - char * p = QMK_BUILDDATE; // e.g. "2019-11-05-11:29:54" - uint8_t magic0 = ((p[2] & 0x0F) << 4) | (p[3] & 0x0F); - uint8_t magic1 = ((p[5] & 0x0F) << 4) | (p[6] & 0x0F); - uint8_t magic2 = ((p[8] & 0x0F) << 4) | (p[9] & 0x0F); - - eeprom_update_byte((void *)VIA_EEPROM_MAGIC_ADDR + 0, valid ? magic0 : 0xFF); - eeprom_update_byte((void *)VIA_EEPROM_MAGIC_ADDR + 1, valid ? magic1 : 0xFF); - eeprom_update_byte((void *)VIA_EEPROM_MAGIC_ADDR + 2, valid ? magic2 : 0xFF); + if (valid) { + char * p = QMK_BUILDDATE; // e.g. "2019-11-05-11:29:54" + uint8_t magic0 = ((p[2] & 0x0F) << 4) | (p[3] & 0x0F); + uint8_t magic1 = ((p[5] & 0x0F) << 4) | (p[6] & 0x0F); + uint8_t magic2 = ((p[8] & 0x0F) << 4) | (p[9] & 0x0F); + nvm_via_update_magic(magic0, magic1, magic2); + } else { + nvm_via_update_magic(0xFF, 0xFF, 0xFF); + } } // Override this at the keyboard code level to check @@ -104,6 +111,8 @@ void via_init(void) { } void eeconfig_init_via(void) { + // Erase any NVM storage if necessary + nvm_via_erase(); // set the magic number to false, in case this gets interrupted via_eeprom_set_valid(false); // This resets the layout options @@ -119,30 +128,25 @@ void eeconfig_init_via(void) { // This is generalized so the layout options EEPROM usage can be // variable, between 1 and 4 bytes. uint32_t via_get_layout_options(void) { - uint32_t value = 0; - // Start at the most significant byte - void *source = (void *)(VIA_EEPROM_LAYOUT_OPTIONS_ADDR); - for (uint8_t i = 0; i < VIA_EEPROM_LAYOUT_OPTIONS_SIZE; i++) { - value = value << 8; - value |= eeprom_read_byte(source); - source++; - } - return value; + return nvm_via_read_layout_options(); } __attribute__((weak)) void via_set_layout_options_kb(uint32_t value) {} void via_set_layout_options(uint32_t value) { via_set_layout_options_kb(value); - // Start at the least significant byte - void *target = (void *)(VIA_EEPROM_LAYOUT_OPTIONS_ADDR + VIA_EEPROM_LAYOUT_OPTIONS_SIZE - 1); - for (uint8_t i = 0; i < VIA_EEPROM_LAYOUT_OPTIONS_SIZE; i++) { - eeprom_update_byte(target, value & 0xFF); - value = value >> 8; - target--; - } + nvm_via_update_layout_options(value); } +#if VIA_EEPROM_CUSTOM_CONFIG_SIZE > 0 +uint32_t via_read_custom_config(void *buf, uint32_t offset, uint32_t length) { + return nvm_via_read_custom_config(buf, offset, length); +} +uint32_t via_update_custom_config(const void *buf, uint32_t offset, uint32_t length) { + return nvm_via_update_custom_config(buf, offset, length); +} +#endif + #if defined(AUDIO_ENABLE) float via_device_indication_song[][2] = SONG(STARTUP_SOUND); #endif // AUDIO_ENABLE @@ -715,7 +719,7 @@ void via_qmk_rgb_matrix_set_value(uint8_t *data) { } void via_qmk_rgb_matrix_save(void) { - eeconfig_update_rgb_matrix(); + eeconfig_force_flush_rgb_matrix(); } #endif // RGB_MATRIX_ENABLE @@ -794,7 +798,7 @@ void via_qmk_led_matrix_set_value(uint8_t *data) { } void via_qmk_led_matrix_save(void) { - eeconfig_update_led_matrix(); + eeconfig_force_flush_led_matrix(); } #endif // LED_MATRIX_ENABLE @@ -861,7 +865,7 @@ void via_qmk_audio_set_value(uint8_t *data) { } void via_qmk_audio_save(void) { - eeconfig_update_audio(audio_config.raw); + eeconfig_update_audio(&audio_config); } #endif // QMK_AUDIO_ENABLE diff --git a/quantum/via.h b/quantum/via.h index f9d3b3314c4..9f0eef10f75 100644 --- a/quantum/via.h +++ b/quantum/via.h @@ -16,21 +16,8 @@ #pragma once -#include "eeconfig.h" // for EECONFIG_SIZE #include "action.h" -// Keyboard level code can change where VIA stores the magic. -// The magic is the build date YYMMDD encoded as BCD in 3 bytes, -// thus installing firmware built on a different date to the one -// already installed can be detected and the EEPROM data is reset. -// The only reason this is important is in case EEPROM usage changes -// and the EEPROM was not explicitly reset by bootmagic lite. -#ifndef VIA_EEPROM_MAGIC_ADDR -# define VIA_EEPROM_MAGIC_ADDR (EECONFIG_SIZE) -#endif - -#define VIA_EEPROM_LAYOUT_OPTIONS_ADDR (VIA_EEPROM_MAGIC_ADDR + 3) - // Changing the layout options size after release will invalidate EEPROM, // but this is something that should be set correctly on initial implementation. // 1 byte is enough for most uses (i.e. 8 binary states, or 6 binary + 1 ternary/quaternary ) @@ -46,17 +33,10 @@ # define VIA_EEPROM_LAYOUT_OPTIONS_DEFAULT 0x00000000 #endif -// The end of the EEPROM memory used by VIA -// By default, dynamic keymaps will start at this if there is no -// custom config -#define VIA_EEPROM_CUSTOM_CONFIG_ADDR (VIA_EEPROM_LAYOUT_OPTIONS_ADDR + VIA_EEPROM_LAYOUT_OPTIONS_SIZE) - #ifndef VIA_EEPROM_CUSTOM_CONFIG_SIZE # define VIA_EEPROM_CUSTOM_CONFIG_SIZE 0 #endif -#define VIA_EEPROM_CONFIG_END (VIA_EEPROM_CUSTOM_CONFIG_ADDR + VIA_EEPROM_CUSTOM_CONFIG_SIZE) - // This is changed only when the command IDs change, // so VIA Configurator can detect compatible firmware. #define VIA_PROTOCOL_VERSION 0x000C @@ -160,6 +140,11 @@ uint32_t via_get_layout_options(void); void via_set_layout_options(uint32_t value); void via_set_layout_options_kb(uint32_t value); +#if VIA_EEPROM_CUSTOM_CONFIG_SIZE > 0 +uint32_t via_read_custom_config(void *buf, uint32_t offset, uint32_t length); +uint32_t via_update_custom_config(const void *buf, uint32_t offset, uint32_t length); +#endif + // Used by VIA to tell a device to flash LEDs (or do something else) when that // device becomes the active device being configured, on startup or switching // between devices. diff --git a/tests/test_common/test_fixture.cpp b/tests/test_common/test_fixture.cpp index 81806b0e6d2..00084721d6c 100644 --- a/tests/test_common/test_fixture.cpp +++ b/tests/test_common/test_fixture.cpp @@ -46,7 +46,7 @@ void TestFixture::SetUpTestCase() { // The following is enough to bootstrap the values set in main eeconfig_init_quantum(); - eeconfig_update_debug(debug_config.raw); + eeconfig_update_debug(&debug_config); TestDriver driver; keyboard_init(); From 6a947fa5345b47f8d41c5ab13c0c6dac79cb3bc9 Mon Sep 17 00:00:00 2001 From: Dasky <32983009+daskygit@users.noreply.github.com> Date: Fri, 21 Mar 2025 18:00:28 +0000 Subject: [PATCH 291/365] Add Mechboards Crkbd (#24993) --- keyboards/mechboards/crkbd/pro/config.h | 6 + keyboards/mechboards/crkbd/pro/keyboard.json | 171 ++++++++++++++++++ .../crkbd/pro/keymaps/default/keymap.c | 47 +++++ .../crkbd/pro/keymaps/default/rules.mk | 1 + keyboards/mechboards/crkbd/pro/post_rules.mk | 1 + keyboards/mechboards/crkbd/pro/pro.c | 15 ++ keyboards/mechboards/crkbd/pro/readme.md | 25 +++ 7 files changed, 266 insertions(+) create mode 100644 keyboards/mechboards/crkbd/pro/config.h create mode 100644 keyboards/mechboards/crkbd/pro/keyboard.json create mode 100644 keyboards/mechboards/crkbd/pro/keymaps/default/keymap.c create mode 100644 keyboards/mechboards/crkbd/pro/keymaps/default/rules.mk create mode 100644 keyboards/mechboards/crkbd/pro/post_rules.mk create mode 100644 keyboards/mechboards/crkbd/pro/pro.c create mode 100644 keyboards/mechboards/crkbd/pro/readme.md diff --git a/keyboards/mechboards/crkbd/pro/config.h b/keyboards/mechboards/crkbd/pro/config.h new file mode 100644 index 00000000000..43a4b3eb9fa --- /dev/null +++ b/keyboards/mechboards/crkbd/pro/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "keyboards/mechboards/common/rgb_effects.h" diff --git a/keyboards/mechboards/crkbd/pro/keyboard.json b/keyboards/mechboards/crkbd/pro/keyboard.json new file mode 100644 index 00000000000..05bca63993c --- /dev/null +++ b/keyboards/mechboards/crkbd/pro/keyboard.json @@ -0,0 +1,171 @@ +{ + "manufacturer": "Mechboards", + "keyboard_name": "CRKBD Pro", + "maintainer": "dasky", + "build": { + "lto": true + }, + "development_board": "promicro", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "B6", "pin_b": "B2"} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "oled": true, + "os_detection": true, + "rgb_matrix": true, + "wpm": true + }, + "matrix_pins": { + "cols": ["F4", "F5", "F6", "F7", "B1", "B3"], + "rows": ["D4", "C6", "D7", "E6"] + }, + "rgb_matrix": { + "animations": { + "cycle_left_right": true + }, + "default": { + "animation": "cycle_left_right" + }, + "driver": "ws2812", + "layout": [ + {"x": 85, "y": 16, "flags": 2}, + {"x": 50, "y": 13, "flags": 2}, + {"x": 16, "y": 20, "flags": 2}, + {"x": 16, "y": 38, "flags": 2}, + {"x": 50, "y": 48, "flags": 2}, + {"x": 85, "y": 52, "flags": 2}, + {"matrix": [3, 5], "x": 95, "y": 63, "flags": 1}, + {"matrix": [2, 5], "x": 85, "y": 39, "flags": 4}, + {"matrix": [1, 5], "x": 85, "y": 21, "flags": 4}, + {"matrix": [0, 5], "x": 85, "y": 4, "flags": 4}, + {"matrix": [0, 4], "x": 68, "y": 2, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 19, "flags": 4}, + {"matrix": [2, 4], "x": 68, "y": 37, "flags": 4}, + {"matrix": [3, 4], "x": 80, "y": 58, "flags": 1}, + {"matrix": [3, 3], "x": 60, "y": 55, "flags": 1}, + {"matrix": [2, 3], "x": 50, "y": 35, "flags": 4}, + {"matrix": [1, 3], "x": 50, "y": 13, "flags": 4}, + {"matrix": [0, 3], "x": 50, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 33, "y": 3, "flags": 4}, + {"matrix": [1, 2], "x": 33, "y": 20, "flags": 4}, + {"matrix": [2, 2], "x": 33, "y": 37, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 42, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 24, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 7, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 7, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 24, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 41, "flags": 1}, + {"x": 139, "y": 16, "flags": 2}, + {"x": 174, "y": 13, "flags": 2}, + {"x": 208, "y": 20, "flags": 2}, + {"x": 208, "y": 38, "flags": 2}, + {"x": 174, "y": 48, "flags": 2}, + {"x": 139, "y": 52, "flags": 2}, + {"matrix": [7, 5], "x": 129, "y": 63, "flags": 1}, + {"matrix": [6, 5], "x": 139, "y": 39, "flags": 4}, + {"matrix": [5, 5], "x": 139, "y": 21, "flags": 4}, + {"matrix": [4, 5], "x": 139, "y": 4, "flags": 4}, + {"matrix": [4, 4], "x": 156, "y": 2, "flags": 4}, + {"matrix": [5, 4], "x": 156, "y": 19, "flags": 4}, + {"matrix": [6, 4], "x": 156, "y": 37, "flags": 4}, + {"matrix": [7, 4], "x": 144, "y": 58, "flags": 1}, + {"matrix": [7, 3], "x": 164, "y": 55, "flags": 1}, + {"matrix": [6, 3], "x": 174, "y": 35, "flags": 4}, + {"matrix": [5, 3], "x": 174, "y": 13, "flags": 4}, + {"matrix": [4, 3], "x": 174, "y": 0, "flags": 4}, + {"matrix": [4, 2], "x": 191, "y": 3, "flags": 4}, + {"matrix": [5, 2], "x": 191, "y": 20, "flags": 4}, + {"matrix": [6, 2], "x": 191, "y": 37, "flags": 4}, + {"matrix": [6, 1], "x": 208, "y": 42, "flags": 4}, + {"matrix": [5, 1], "x": 208, "y": 24, "flags": 4}, + {"matrix": [4, 1], "x": 208, "y": 7, "flags": 4}, + {"matrix": [4, 0], "x": 224, "y": 7, "flags": 1}, + {"matrix": [5, 0], "x": 224, "y": 24, "flags": 1}, + {"matrix": [6, 0], "x": 224, "y": 41, "flags": 1} + ], + "max_brightness": 120, + "split_count": [27, 27] + }, + "rgblight": { + "led_count": 54, + "max_brightness": 120, + "split_count": [27, 27] + }, + "split": { + "enabled": true, + "serial": { + "pin": "D2" + }, + "transport": { + "sync": { + "matrix_state": true, + "oled": true, + "wpm": true + } + } + }, + "url": "mechboards.co.uk", + "usb": { + "device_version": "1.0.0", + "pid": "0x0003", + "vid": "0x7171" + }, + "ws2812": { + "pin": "D3" + }, + "layouts": { + "LAYOUT_split_3x6_3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.25}, + {"matrix": [0, 1], "x": 1, "y": 0.25}, + {"matrix": [0, 2], "x": 2, "y": 0.125}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0.125}, + {"matrix": [0, 5], "x": 5, "y": 0.25}, + {"matrix": [4, 5], "x": 8, "y": 0.25}, + {"matrix": [4, 4], "x": 9, "y": 0.125}, + {"matrix": [4, 3], "x": 10, "y": 0}, + {"matrix": [4, 2], "x": 11, "y": 0.125}, + {"matrix": [4, 1], "x": 12, "y": 0.25}, + {"matrix": [4, 0], "x": 13, "y": 0.25}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.125}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1.125}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [5, 5], "x": 8, "y": 1.25}, + {"matrix": [5, 4], "x": 9, "y": 1.125}, + {"matrix": [5, 3], "x": 10, "y": 1}, + {"matrix": [5, 2], "x": 11, "y": 1.125}, + {"matrix": [5, 1], "x": 12, "y": 1.25}, + {"matrix": [5, 0], "x": 13, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25}, + {"matrix": [2, 1], "x": 1, "y": 2.25}, + {"matrix": [2, 2], "x": 2, "y": 2.125}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2.125}, + {"matrix": [2, 5], "x": 5, "y": 2.25}, + {"matrix": [6, 5], "x": 8, "y": 2.25}, + {"matrix": [6, 4], "x": 9, "y": 2.125}, + {"matrix": [6, 3], "x": 10, "y": 2}, + {"matrix": [6, 2], "x": 11, "y": 2.125}, + {"matrix": [6, 1], "x": 12, "y": 2.25}, + {"matrix": [6, 0], "x": 13, "y": 2.25}, + {"matrix": [3, 3], "x": 3.5, "y": 3.25}, + {"matrix": [3, 4], "x": 4.5, "y": 3.5}, + {"matrix": [3, 5], "x": 5.5, "y": 3.75}, + {"matrix": [7, 5], "x": 7.5, "y": 3.75}, + {"matrix": [7, 4], "x": 8.5, "y": 3.5}, + {"matrix": [7, 3], "x": 9.5, "y": 3.25} + ] + } + } +} diff --git a/keyboards/mechboards/crkbd/pro/keymaps/default/keymap.c b/keyboards/mechboards/crkbd/pro/keymaps/default/keymap.c new file mode 100644 index 00000000000..2e70e3091e6 --- /dev/null +++ b/keyboards/mechboards/crkbd/pro/keymaps/default/keymap.c @@ -0,0 +1,47 @@ +// Copyright 2025 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_3x6_3( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ESC, + KC_LGUI, MO(1), KC_SPC, KC_ENT, MO(2), KC_RALT + +), + + [1] = LAYOUT_split_3x6_3( + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX, + KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_LGUI, _______, KC_SPC, KC_ENT, MO(3), KC_RALT +), + + [2] = LAYOUT_split_3x6_3( + KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, + KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TILD, + KC_LGUI, MO(3), KC_SPC, KC_ENT, _______, KC_RALT +), + + [3] = LAYOUT_split_3x6_3( + QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RM_NEXT, RM_HUED, RM_SATD, RM_VALD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT +) +}; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { +[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT)}, +[1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS)}, +[2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS)}, +[3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS)} +}; +#endif + +// clang-format on diff --git a/keyboards/mechboards/crkbd/pro/keymaps/default/rules.mk b/keyboards/mechboards/crkbd/pro/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/mechboards/crkbd/pro/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/mechboards/crkbd/pro/post_rules.mk b/keyboards/mechboards/crkbd/pro/post_rules.mk new file mode 100644 index 00000000000..4bfdc8ca891 --- /dev/null +++ b/keyboards/mechboards/crkbd/pro/post_rules.mk @@ -0,0 +1 @@ +include keyboards/mechboards/common/post_rules.mk diff --git a/keyboards/mechboards/crkbd/pro/pro.c b/keyboards/mechboards/crkbd/pro/pro.c new file mode 100644 index 00000000000..05c41d3612a --- /dev/null +++ b/keyboards/mechboards/crkbd/pro/pro.c @@ -0,0 +1,15 @@ +// Copyright 2025 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#ifdef OLED_ENABLE +void render_logo(void) { + static const char PROGMEM pro_logo[] = { + 252, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 31, 31, 31, 31, 31, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 0, 0, 0, 248, 248, 24, 24, 24, 24, 24, 24, 0, 0, 248, 248, 24, 24, 24, 24, 248, 240, 0, 0, 248, 248, 0, 0, 0, 128, 248, 248, 0, 0, 248, 248, 24, 24, 24, 24, 248, 240, 0, 0, 248, 248, 24, 24, 24, 24, 248, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 255, 255, 4, 4, 4, 4, 4, 255, + 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 255, 255, 255, 255, 255, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 6, 6, 6, 6, 255, 251, 0, 0, 255, 255, 6, 6, 15, 31, 249, 240, 0, 0, 255, 255, 6, 6, 6, 6, 255, 251, 0, 0, 255, 255, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 255, 255, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 255, 255, 65, 65, 65, 65, 65, 255, 255, 255, 65, 65, 65, 65, 65, 255, 127, 127, 127, 127, 127, 255, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 3, 3, 0, 0, 0, 0, 3, 3, 0, 0, 3, 3, 0, 0, + 0, 0, 3, 3, 0, 0, 3, 3, 3, 3, 3, 3, 3, 1, 0, 0, 3, 3, 3, 3, 3, 3, 227, 241, 48, 176, 176, 112, 240, 48, 176, 176, 112, 240, 112, 176, 176, 112, 240, 224, 0, 0, 63, 127, 255, 255, 255, 240, 240, 240, 240, 240, 255, 255, 255, 255, 255, 255, 255, 240, 240, 240, 240, 240, 255, 255, 255, 255, 255, 255, 255, 240, 240, 240, 240, 240, 255, 255, 255, 240, 240, 240, 240, 240, 255, 240, 240, 240, 240, 240, 255, 240, 240, 240, 240, 240, 255, 255, 255, 127, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 63, 48, 61, 61, 62, 63, 48, 61, 61, 50, 63, 56, 55, 55, 56, 63, 31, 0, 0, + }; + oled_write_raw_P(pro_logo, sizeof(pro_logo)); +} +#endif diff --git a/keyboards/mechboards/crkbd/pro/readme.md b/keyboards/mechboards/crkbd/pro/readme.md new file mode 100644 index 00000000000..52fc199d5c8 --- /dev/null +++ b/keyboards/mechboards/crkbd/pro/readme.md @@ -0,0 +1,25 @@ +# CRKBD Pro + +A refreshed CRKBD (Corne) PCB with RGB, battery, power switch and encoder support. + +* Keyboard Maintainer: [dasky](https://github.com/daskygit) +* Hardware Supported: Controllers using promicro footprint. +* Hardware Availability: https://mechboards.co.uk + +Make example for this keyboard (after setting up your build environment): + + qmk compile -kb mechboards/crkbd/pro -km default + +Flashing example for this keyboard: + + qmk flash -kb mechboards/crkbd/pro -km default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top left key/encoder or the top right key/encoder depending on which side you're connecting to usb. +* **Physical reset button**: Double press the button below the TRRS socket. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 2d37e80ac9c85ccbb16ee580edd335c1e44044a9 Mon Sep 17 00:00:00 2001 From: jack Date: Sat, 22 Mar 2025 09:58:33 -0600 Subject: [PATCH 292/365] Migrate remaining `split.soft_serial_pin` to `split.serial.pin` (#25046) * Migrate keyboards/bastardkb * Migrate keyboards/handwired * Migrate keyboards/helix * Fix duplicate serial key --- keyboards/bastardkb/charybdis/3x5/v1/elitec/keyboard.json | 4 +++- keyboards/bastardkb/charybdis/3x5/v2/elitec/keyboard.json | 4 +++- keyboards/bastardkb/charybdis/3x5/v2/splinky_2/keyboard.json | 4 +++- keyboards/bastardkb/charybdis/3x5/v2/splinky_3/keyboard.json | 4 +++- keyboards/bastardkb/charybdis/3x5/v2/stemcell/keyboard.json | 4 +++- keyboards/bastardkb/charybdis/3x6/v1/elitec/keyboard.json | 4 +++- keyboards/bastardkb/charybdis/3x6/v2/elitec/keyboard.json | 4 +++- keyboards/bastardkb/charybdis/3x6/v2/splinky_2/keyboard.json | 4 +++- keyboards/bastardkb/charybdis/3x6/v2/splinky_3/keyboard.json | 4 +++- keyboards/bastardkb/charybdis/3x6/v2/stemcell/keyboard.json | 4 +++- keyboards/bastardkb/charybdis/4x6/v1/elitec/keyboard.json | 4 +++- keyboards/bastardkb/charybdis/4x6/v2/elitec/keyboard.json | 4 +++- keyboards/bastardkb/charybdis/4x6/v2/splinky_2/keyboard.json | 4 +++- keyboards/bastardkb/charybdis/4x6/v2/splinky_3/keyboard.json | 4 +++- keyboards/bastardkb/charybdis/4x6/v2/stemcell/keyboard.json | 4 +++- keyboards/bastardkb/dilemma/3x5_2/assembled/keyboard.json | 4 +++- keyboards/bastardkb/dilemma/3x5_2/splinky/keyboard.json | 4 +++- keyboards/bastardkb/dilemma/3x5_3/keyboard.json | 4 +++- keyboards/bastardkb/dilemma/4x6_4/keyboard.json | 4 +++- keyboards/bastardkb/scylla/v1/elitec/keyboard.json | 4 +++- keyboards/bastardkb/scylla/v2/elitec/keyboard.json | 4 +++- keyboards/bastardkb/scylla/v2/splinky_2/keyboard.json | 4 +++- keyboards/bastardkb/scylla/v2/splinky_3/keyboard.json | 4 +++- keyboards/bastardkb/scylla/v2/stemcell/keyboard.json | 4 +++- keyboards/bastardkb/skeletyl/v1/elitec/keyboard.json | 4 +++- keyboards/bastardkb/skeletyl/v2/elitec/keyboard.json | 4 +++- keyboards/bastardkb/skeletyl/v2/splinky_2/keyboard.json | 4 +++- keyboards/bastardkb/skeletyl/v2/splinky_3/keyboard.json | 4 +++- keyboards/bastardkb/skeletyl/v2/stemcell/keyboard.json | 4 +++- keyboards/bastardkb/tbkmini/v1/elitec/keyboard.json | 4 +++- keyboards/bastardkb/tbkmini/v2/elitec/keyboard.json | 4 +++- keyboards/bastardkb/tbkmini/v2/splinky_2/keyboard.json | 4 +++- keyboards/bastardkb/tbkmini/v2/splinky_3/keyboard.json | 4 +++- keyboards/bastardkb/tbkmini/v2/stemcell/keyboard.json | 4 +++- keyboards/handwired/dactyl_cc/keyboard.json | 4 +++- keyboards/handwired/dactyl_kinesis/keyboard.json | 4 +++- keyboards/handwired/dactyl_lightcycle/keyboard.json | 4 +++- keyboards/handwired/dactyl_manuform/4x5/keyboard.json | 4 +++- keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json | 4 +++- keyboards/handwired/dactyl_manuform/4x6/keyboard.json | 4 +++- keyboards/handwired/dactyl_manuform/4x6_4_3/keyboard.json | 4 +++- keyboards/handwired/dactyl_manuform/4x6_5/keyboard.json | 4 +++- keyboards/handwired/dactyl_manuform/5x6/keyboard.json | 4 +++- keyboards/handwired/dactyl_manuform/5x6_2_5/keyboard.json | 4 +++- keyboards/handwired/dactyl_manuform/5x6_5/keyboard.json | 4 +++- keyboards/handwired/dactyl_manuform/5x6_6/keyboard.json | 4 +++- keyboards/handwired/dactyl_manuform/5x6_68/keyboard.json | 4 +++- keyboards/handwired/dactyl_manuform/5x7/keyboard.json | 4 +++- .../handwired/dactyl_manuform/6x6/promicro/keyboard.json | 4 +++- keyboards/handwired/dactyl_manuform/6x6_4/keyboard.json | 4 +++- keyboards/handwired/dactyl_manuform/6x7/keyboard.json | 4 +++- keyboards/handwired/dactyl_maximus/keyboard.json | 4 +++- keyboards/handwired/dactyl_minidox/keyboard.json | 4 +++- keyboards/handwired/dactyl_promicro/keyboard.json | 4 +++- keyboards/handwired/dactyl_rah/keyboard.json | 4 +++- keyboards/handwired/dactyl_tracer/keyboard.json | 4 +++- keyboards/handwired/jankrp2040dactyl/keyboard.json | 4 ++-- keyboards/handwired/skakunm_dactyl/keyboard.json | 4 +++- keyboards/handwired/splittest/promicro/keyboard.json | 4 +++- keyboards/handwired/splittest/teensy_2/keyboard.json | 4 +++- keyboards/handwired/symmetric70_proto/promicro/info.json | 4 +++- keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json | 4 +++- .../tractyl_manuform/5x6_right/arduinomicro/keyboard.json | 4 +++- .../tractyl_manuform/5x6_right/elite_c/keyboard.json | 4 +++- .../tractyl_manuform/5x6_right/teensy2pp/keyboard.json | 4 +++- keyboards/helix/pico/info.json | 4 +++- keyboards/helix/rev2/info.json | 4 +++- keyboards/helix/rev3_4rows/keyboard.json | 4 +++- keyboards/helix/rev3_5rows/keyboard.json | 4 +++- 69 files changed, 206 insertions(+), 70 deletions(-) diff --git a/keyboards/bastardkb/charybdis/3x5/v1/elitec/keyboard.json b/keyboards/bastardkb/charybdis/3x5/v1/elitec/keyboard.json index 4a94d023d46..2fd99fb5ab7 100644 --- a/keyboards/bastardkb/charybdis/3x5/v1/elitec/keyboard.json +++ b/keyboards/bastardkb/charybdis/3x5/v1/elitec/keyboard.json @@ -26,7 +26,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "D2", + "serial": { + "pin": "D2" + }, "matrix_pins": { "right": { "cols": ["C7", "B7", "D7", "E6", "B4"], diff --git a/keyboards/bastardkb/charybdis/3x5/v2/elitec/keyboard.json b/keyboards/bastardkb/charybdis/3x5/v2/elitec/keyboard.json index bc95061ced9..51f6cedf511 100644 --- a/keyboards/bastardkb/charybdis/3x5/v2/elitec/keyboard.json +++ b/keyboards/bastardkb/charybdis/3x5/v2/elitec/keyboard.json @@ -26,7 +26,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "D2" + "serial": { + "pin": "D2" + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu" diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/keyboard.json b/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/keyboard.json index cc990d3f210..cf800062b39 100644 --- a/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/keyboard.json +++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/keyboard.json @@ -20,7 +20,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1" + "serial": { + "pin": "GP1" + } }, "ws2812": { "pin": "GP0", diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/keyboard.json b/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/keyboard.json index 6719b211968..d9039f7591f 100644 --- a/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/keyboard.json +++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/keyboard.json @@ -20,7 +20,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1" + "serial": { + "pin": "GP1" + } }, "ws2812": { "pin": "GP0", diff --git a/keyboards/bastardkb/charybdis/3x5/v2/stemcell/keyboard.json b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/keyboard.json index 2de77b07f0c..ca48cc0f3c5 100644 --- a/keyboards/bastardkb/charybdis/3x5/v2/stemcell/keyboard.json +++ b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/keyboard.json @@ -30,7 +30,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "A3" + "serial": { + "pin": "A3" + } }, "development_board": "stemcell" } diff --git a/keyboards/bastardkb/charybdis/3x6/v1/elitec/keyboard.json b/keyboards/bastardkb/charybdis/3x6/v1/elitec/keyboard.json index dcc454366c6..cef4eab72fc 100644 --- a/keyboards/bastardkb/charybdis/3x6/v1/elitec/keyboard.json +++ b/keyboards/bastardkb/charybdis/3x6/v1/elitec/keyboard.json @@ -26,7 +26,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "D2", + "serial": { + "pin": "D2" + }, "matrix_pins": { "right": { "cols": ["F1", "C7", "B7", "D7", "E6", "B4"], diff --git a/keyboards/bastardkb/charybdis/3x6/v2/elitec/keyboard.json b/keyboards/bastardkb/charybdis/3x6/v2/elitec/keyboard.json index ce74b2dc6df..fdfd2c38f91 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/elitec/keyboard.json +++ b/keyboards/bastardkb/charybdis/3x6/v2/elitec/keyboard.json @@ -26,7 +26,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "D2" + "serial": { + "pin": "D2" + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu" diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/keyboard.json b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/keyboard.json index 825508475c9..650bf46481a 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/keyboard.json +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/keyboard.json @@ -20,7 +20,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1" + "serial": { + "pin": "GP1" + } }, "ws2812": { "pin": "GP0", diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/keyboard.json b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/keyboard.json index 4d9cfb616d8..b2a4890f56e 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/keyboard.json +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/keyboard.json @@ -20,7 +20,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1" + "serial": { + "pin": "GP1" + } }, "ws2812": { "pin": "GP0", diff --git a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/keyboard.json b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/keyboard.json index 05d82b2445b..a405395438e 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/keyboard.json +++ b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/keyboard.json @@ -30,7 +30,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "A3" + "serial": { + "pin": "A3" + } }, "development_board": "stemcell" } diff --git a/keyboards/bastardkb/charybdis/4x6/v1/elitec/keyboard.json b/keyboards/bastardkb/charybdis/4x6/v1/elitec/keyboard.json index b90b144c8b8..6b0caff82ec 100644 --- a/keyboards/bastardkb/charybdis/4x6/v1/elitec/keyboard.json +++ b/keyboards/bastardkb/charybdis/4x6/v1/elitec/keyboard.json @@ -26,7 +26,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "D2", + "serial": { + "pin": "D2" + }, "matrix_pins": { "right": { "cols": ["F1", "C7", "B7", "D7", "E6", "B4"], diff --git a/keyboards/bastardkb/charybdis/4x6/v2/elitec/keyboard.json b/keyboards/bastardkb/charybdis/4x6/v2/elitec/keyboard.json index 8ae66d083b4..4163f9d476f 100644 --- a/keyboards/bastardkb/charybdis/4x6/v2/elitec/keyboard.json +++ b/keyboards/bastardkb/charybdis/4x6/v2/elitec/keyboard.json @@ -26,7 +26,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "D2" + "serial": { + "pin": "D2" + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu" diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/keyboard.json b/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/keyboard.json index b0c98389f7f..0da7d0b4420 100644 --- a/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/keyboard.json +++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/keyboard.json @@ -20,7 +20,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1" + "serial": { + "pin": "GP1" + } }, "ws2812": { "pin": "GP0", diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/keyboard.json b/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/keyboard.json index 1e072db85b0..026684eb926 100644 --- a/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/keyboard.json +++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/keyboard.json @@ -20,7 +20,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1" + "serial": { + "pin": "GP1" + } }, "ws2812": { "pin": "GP0", diff --git a/keyboards/bastardkb/charybdis/4x6/v2/stemcell/keyboard.json b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/keyboard.json index ab145e0f95c..ed929f7fb7b 100644 --- a/keyboards/bastardkb/charybdis/4x6/v2/stemcell/keyboard.json +++ b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/keyboard.json @@ -30,7 +30,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "A3" + "serial": { + "pin": "A3" + } }, "development_board": "stemcell" } diff --git a/keyboards/bastardkb/dilemma/3x5_2/assembled/keyboard.json b/keyboards/bastardkb/dilemma/3x5_2/assembled/keyboard.json index ac52a86eb51..366deac293b 100644 --- a/keyboards/bastardkb/dilemma/3x5_2/assembled/keyboard.json +++ b/keyboards/bastardkb/dilemma/3x5_2/assembled/keyboard.json @@ -13,7 +13,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1" + "serial": { + "pin": "GP1" + } }, "processor": "RP2040", "bootloader": "rp2040" diff --git a/keyboards/bastardkb/dilemma/3x5_2/splinky/keyboard.json b/keyboards/bastardkb/dilemma/3x5_2/splinky/keyboard.json index 3c4c559cb6e..e954f4f6573 100644 --- a/keyboards/bastardkb/dilemma/3x5_2/splinky/keyboard.json +++ b/keyboards/bastardkb/dilemma/3x5_2/splinky/keyboard.json @@ -13,7 +13,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1" + "serial": { + "pin": "GP1" + } }, "processor": "RP2040", "bootloader": "rp2040" diff --git a/keyboards/bastardkb/dilemma/3x5_3/keyboard.json b/keyboards/bastardkb/dilemma/3x5_3/keyboard.json index 12e336f023b..3ae31d0b469 100644 --- a/keyboards/bastardkb/dilemma/3x5_3/keyboard.json +++ b/keyboards/bastardkb/dilemma/3x5_3/keyboard.json @@ -14,7 +14,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1", + "serial": { + "pin": "GP1" + }, "bootmagic": { "matrix": [4, 0] }, diff --git a/keyboards/bastardkb/dilemma/4x6_4/keyboard.json b/keyboards/bastardkb/dilemma/4x6_4/keyboard.json index 7e40208a5db..4f0ea648c8f 100644 --- a/keyboards/bastardkb/dilemma/4x6_4/keyboard.json +++ b/keyboards/bastardkb/dilemma/4x6_4/keyboard.json @@ -14,7 +14,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1", + "serial": { + "pin": "GP1" + }, "bootmagic": { "matrix": [5, 0] }, diff --git a/keyboards/bastardkb/scylla/v1/elitec/keyboard.json b/keyboards/bastardkb/scylla/v1/elitec/keyboard.json index 17b6b7fc367..25963f006c8 100644 --- a/keyboards/bastardkb/scylla/v1/elitec/keyboard.json +++ b/keyboards/bastardkb/scylla/v1/elitec/keyboard.json @@ -22,7 +22,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu" diff --git a/keyboards/bastardkb/scylla/v2/elitec/keyboard.json b/keyboards/bastardkb/scylla/v2/elitec/keyboard.json index 7bfb7ff5a4e..316606b17b3 100644 --- a/keyboards/bastardkb/scylla/v2/elitec/keyboard.json +++ b/keyboards/bastardkb/scylla/v2/elitec/keyboard.json @@ -22,7 +22,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "D2" + "serial": { + "pin": "D2" + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu" diff --git a/keyboards/bastardkb/scylla/v2/splinky_2/keyboard.json b/keyboards/bastardkb/scylla/v2/splinky_2/keyboard.json index 2b9022d24ef..2c0beb5c1db 100644 --- a/keyboards/bastardkb/scylla/v2/splinky_2/keyboard.json +++ b/keyboards/bastardkb/scylla/v2/splinky_2/keyboard.json @@ -19,7 +19,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1" + "serial": { + "pin": "GP1" + } }, "ws2812": { "pin": "GP0", diff --git a/keyboards/bastardkb/scylla/v2/splinky_3/keyboard.json b/keyboards/bastardkb/scylla/v2/splinky_3/keyboard.json index cd4da3ac415..ed92be5a458 100644 --- a/keyboards/bastardkb/scylla/v2/splinky_3/keyboard.json +++ b/keyboards/bastardkb/scylla/v2/splinky_3/keyboard.json @@ -19,7 +19,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1" + "serial": { + "pin": "GP1" + } }, "ws2812": { "pin": "GP0", diff --git a/keyboards/bastardkb/scylla/v2/stemcell/keyboard.json b/keyboards/bastardkb/scylla/v2/stemcell/keyboard.json index 06bfeda7d28..80325bfea38 100644 --- a/keyboards/bastardkb/scylla/v2/stemcell/keyboard.json +++ b/keyboards/bastardkb/scylla/v2/stemcell/keyboard.json @@ -26,7 +26,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "A3" + "serial": { + "pin": "A3" + } }, "development_board": "stemcell" } diff --git a/keyboards/bastardkb/skeletyl/v1/elitec/keyboard.json b/keyboards/bastardkb/skeletyl/v1/elitec/keyboard.json index 2910d80b2f5..3bbba6d3106 100644 --- a/keyboards/bastardkb/skeletyl/v1/elitec/keyboard.json +++ b/keyboards/bastardkb/skeletyl/v1/elitec/keyboard.json @@ -22,7 +22,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu" diff --git a/keyboards/bastardkb/skeletyl/v2/elitec/keyboard.json b/keyboards/bastardkb/skeletyl/v2/elitec/keyboard.json index dec2537b65c..43675db36d0 100644 --- a/keyboards/bastardkb/skeletyl/v2/elitec/keyboard.json +++ b/keyboards/bastardkb/skeletyl/v2/elitec/keyboard.json @@ -22,7 +22,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "D2" + "serial": { + "pin": "D2" + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu" diff --git a/keyboards/bastardkb/skeletyl/v2/splinky_2/keyboard.json b/keyboards/bastardkb/skeletyl/v2/splinky_2/keyboard.json index 897f195a315..32030dbd000 100644 --- a/keyboards/bastardkb/skeletyl/v2/splinky_2/keyboard.json +++ b/keyboards/bastardkb/skeletyl/v2/splinky_2/keyboard.json @@ -19,7 +19,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1" + "serial": { + "pin": "GP1" + } }, "ws2812": { "pin": "GP0", diff --git a/keyboards/bastardkb/skeletyl/v2/splinky_3/keyboard.json b/keyboards/bastardkb/skeletyl/v2/splinky_3/keyboard.json index 06a93dfbeb7..51227f50658 100644 --- a/keyboards/bastardkb/skeletyl/v2/splinky_3/keyboard.json +++ b/keyboards/bastardkb/skeletyl/v2/splinky_3/keyboard.json @@ -19,7 +19,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1" + "serial": { + "pin": "GP1" + } }, "ws2812": { "pin": "GP0", diff --git a/keyboards/bastardkb/skeletyl/v2/stemcell/keyboard.json b/keyboards/bastardkb/skeletyl/v2/stemcell/keyboard.json index 6dd86bcc126..2e9745b7f2d 100644 --- a/keyboards/bastardkb/skeletyl/v2/stemcell/keyboard.json +++ b/keyboards/bastardkb/skeletyl/v2/stemcell/keyboard.json @@ -26,7 +26,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "A3" + "serial": { + "pin": "A3" + } }, "development_board": "stemcell" } diff --git a/keyboards/bastardkb/tbkmini/v1/elitec/keyboard.json b/keyboards/bastardkb/tbkmini/v1/elitec/keyboard.json index 59988074baa..5110ea0d747 100644 --- a/keyboards/bastardkb/tbkmini/v1/elitec/keyboard.json +++ b/keyboards/bastardkb/tbkmini/v1/elitec/keyboard.json @@ -22,7 +22,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu" diff --git a/keyboards/bastardkb/tbkmini/v2/elitec/keyboard.json b/keyboards/bastardkb/tbkmini/v2/elitec/keyboard.json index 01679bcff9f..701ec6af281 100644 --- a/keyboards/bastardkb/tbkmini/v2/elitec/keyboard.json +++ b/keyboards/bastardkb/tbkmini/v2/elitec/keyboard.json @@ -22,7 +22,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "D2" + "serial": { + "pin": "D2" + } }, "processor": "atmega32u4", "bootloader": "atmel-dfu" diff --git a/keyboards/bastardkb/tbkmini/v2/splinky_2/keyboard.json b/keyboards/bastardkb/tbkmini/v2/splinky_2/keyboard.json index 2048db62515..15db3db6e87 100644 --- a/keyboards/bastardkb/tbkmini/v2/splinky_2/keyboard.json +++ b/keyboards/bastardkb/tbkmini/v2/splinky_2/keyboard.json @@ -19,7 +19,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1" + "serial": { + "pin": "GP1" + } }, "ws2812": { "pin": "GP0", diff --git a/keyboards/bastardkb/tbkmini/v2/splinky_3/keyboard.json b/keyboards/bastardkb/tbkmini/v2/splinky_3/keyboard.json index 8dd21b75910..3936b9368a1 100644 --- a/keyboards/bastardkb/tbkmini/v2/splinky_3/keyboard.json +++ b/keyboards/bastardkb/tbkmini/v2/splinky_3/keyboard.json @@ -19,7 +19,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "GP1" + "serial": { + "pin": "GP1" + } }, "ws2812": { "pin": "GP0", diff --git a/keyboards/bastardkb/tbkmini/v2/stemcell/keyboard.json b/keyboards/bastardkb/tbkmini/v2/stemcell/keyboard.json index 41abba96cb9..2cbee7fe170 100644 --- a/keyboards/bastardkb/tbkmini/v2/stemcell/keyboard.json +++ b/keyboards/bastardkb/tbkmini/v2/stemcell/keyboard.json @@ -26,7 +26,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "A3" + "serial": { + "pin": "A3" + } }, "development_board": "stemcell" } diff --git a/keyboards/handwired/dactyl_cc/keyboard.json b/keyboards/handwired/dactyl_cc/keyboard.json index e607bfad1a4..f4097b0487b 100644 --- a/keyboards/handwired/dactyl_cc/keyboard.json +++ b/keyboards/handwired/dactyl_cc/keyboard.json @@ -23,7 +23,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "development_board": "promicro", "layouts": { diff --git a/keyboards/handwired/dactyl_kinesis/keyboard.json b/keyboards/handwired/dactyl_kinesis/keyboard.json index ee68a2c515f..26993fc974f 100644 --- a/keyboards/handwired/dactyl_kinesis/keyboard.json +++ b/keyboards/handwired/dactyl_kinesis/keyboard.json @@ -29,7 +29,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "development_board": "promicro", "layouts": { diff --git a/keyboards/handwired/dactyl_lightcycle/keyboard.json b/keyboards/handwired/dactyl_lightcycle/keyboard.json index 1b5f2dd39a3..6e56b18f6f1 100644 --- a/keyboards/handwired/dactyl_lightcycle/keyboard.json +++ b/keyboards/handwired/dactyl_lightcycle/keyboard.json @@ -26,7 +26,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "development_board": "promicro", "community_layouts": ["split_3x6_3", "split_3x5_3"], diff --git a/keyboards/handwired/dactyl_manuform/4x5/keyboard.json b/keyboards/handwired/dactyl_manuform/4x5/keyboard.json index e0a1b531a55..ce4b6c648b2 100644 --- a/keyboards/handwired/dactyl_manuform/4x5/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/4x5/keyboard.json @@ -35,7 +35,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json b/keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json index 7efc4718ad1..134793cac80 100644 --- a/keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json @@ -29,7 +29,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "development_board": "promicro", "layouts": { diff --git a/keyboards/handwired/dactyl_manuform/4x6/keyboard.json b/keyboards/handwired/dactyl_manuform/4x6/keyboard.json index d589c532a86..0d8af5eed1a 100644 --- a/keyboards/handwired/dactyl_manuform/4x6/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/4x6/keyboard.json @@ -35,7 +35,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/handwired/dactyl_manuform/4x6_4_3/keyboard.json b/keyboards/handwired/dactyl_manuform/4x6_4_3/keyboard.json index c0c24a8966d..1846f2a6618 100644 --- a/keyboards/handwired/dactyl_manuform/4x6_4_3/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/4x6_4_3/keyboard.json @@ -32,7 +32,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "development_board": "promicro", "layouts": { diff --git a/keyboards/handwired/dactyl_manuform/4x6_5/keyboard.json b/keyboards/handwired/dactyl_manuform/4x6_5/keyboard.json index 47ad7aa920e..ab916b0353e 100644 --- a/keyboards/handwired/dactyl_manuform/4x6_5/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/4x6_5/keyboard.json @@ -35,7 +35,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/handwired/dactyl_manuform/5x6/keyboard.json b/keyboards/handwired/dactyl_manuform/5x6/keyboard.json index 353b1481266..1bcba1b648c 100644 --- a/keyboards/handwired/dactyl_manuform/5x6/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x6/keyboard.json @@ -35,7 +35,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/handwired/dactyl_manuform/5x6_2_5/keyboard.json b/keyboards/handwired/dactyl_manuform/5x6_2_5/keyboard.json index 620ffdec061..7a0cff5e6cd 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_2_5/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x6_2_5/keyboard.json @@ -29,7 +29,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0", + "serial": { + "pin": "D0" + }, "bootmagic": { "matrix": [6, 5] } diff --git a/keyboards/handwired/dactyl_manuform/5x6_5/keyboard.json b/keyboards/handwired/dactyl_manuform/5x6_5/keyboard.json index fc7676aa4b8..0694447ee98 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_5/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x6_5/keyboard.json @@ -29,7 +29,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0", + "serial": { + "pin": "D0" + }, "bootmagic": { "matrix": [6, 5] } diff --git a/keyboards/handwired/dactyl_manuform/5x6_6/keyboard.json b/keyboards/handwired/dactyl_manuform/5x6_6/keyboard.json index 974f1b8bc39..ae73995d497 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_6/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x6_6/keyboard.json @@ -29,7 +29,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D3" + "serial": { + "pin": "D3" + } }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/handwired/dactyl_manuform/5x6_68/keyboard.json b/keyboards/handwired/dactyl_manuform/5x6_68/keyboard.json index 5b6bdfb86eb..7d51a06c7cc 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_68/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x6_68/keyboard.json @@ -25,7 +25,9 @@ }, "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "matrix_pins": { "cols": ["D4", "C6", "D7", "E6", "B4", "B5"], diff --git a/keyboards/handwired/dactyl_manuform/5x7/keyboard.json b/keyboards/handwired/dactyl_manuform/5x7/keyboard.json index d40a45dfa72..cf5f5790570 100644 --- a/keyboards/handwired/dactyl_manuform/5x7/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x7/keyboard.json @@ -35,7 +35,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/handwired/dactyl_manuform/6x6/promicro/keyboard.json b/keyboards/handwired/dactyl_manuform/6x6/promicro/keyboard.json index 213a3c29f5a..44ae441270e 100644 --- a/keyboards/handwired/dactyl_manuform/6x6/promicro/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/6x6/promicro/keyboard.json @@ -6,7 +6,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "rgblight": { "led_count": 12 diff --git a/keyboards/handwired/dactyl_manuform/6x6_4/keyboard.json b/keyboards/handwired/dactyl_manuform/6x6_4/keyboard.json index 98e96c96399..a011a2cc3b9 100644 --- a/keyboards/handwired/dactyl_manuform/6x6_4/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/6x6_4/keyboard.json @@ -35,7 +35,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/handwired/dactyl_manuform/6x7/keyboard.json b/keyboards/handwired/dactyl_manuform/6x7/keyboard.json index 153b6c75c4f..bb016647da5 100644 --- a/keyboards/handwired/dactyl_manuform/6x7/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/6x7/keyboard.json @@ -32,7 +32,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "rgblight": { "led_count": 12 diff --git a/keyboards/handwired/dactyl_maximus/keyboard.json b/keyboards/handwired/dactyl_maximus/keyboard.json index 081fab571ad..57e91cc3f42 100644 --- a/keyboards/handwired/dactyl_maximus/keyboard.json +++ b/keyboards/handwired/dactyl_maximus/keyboard.json @@ -26,7 +26,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D1" + "serial": { + "pin": "D1" + } }, "development_board": "promicro", "layouts": { diff --git a/keyboards/handwired/dactyl_minidox/keyboard.json b/keyboards/handwired/dactyl_minidox/keyboard.json index 5bd5c5c05a1..b488bac4b09 100644 --- a/keyboards/handwired/dactyl_minidox/keyboard.json +++ b/keyboards/handwired/dactyl_minidox/keyboard.json @@ -67,7 +67,9 @@ "diode_direction": "ROW2COL", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "development_board": "promicro", "community_layouts": ["split_3x5_3"], diff --git a/keyboards/handwired/dactyl_promicro/keyboard.json b/keyboards/handwired/dactyl_promicro/keyboard.json index 824ffe7e7e0..df82505d944 100644 --- a/keyboards/handwired/dactyl_promicro/keyboard.json +++ b/keyboards/handwired/dactyl_promicro/keyboard.json @@ -29,7 +29,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "rgblight": { "led_count": 12 diff --git a/keyboards/handwired/dactyl_rah/keyboard.json b/keyboards/handwired/dactyl_rah/keyboard.json index 3bc5dc08547..903aafc9737 100644 --- a/keyboards/handwired/dactyl_rah/keyboard.json +++ b/keyboards/handwired/dactyl_rah/keyboard.json @@ -29,7 +29,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/handwired/dactyl_tracer/keyboard.json b/keyboards/handwired/dactyl_tracer/keyboard.json index 29e59906668..92a8a2c76b7 100644 --- a/keyboards/handwired/dactyl_tracer/keyboard.json +++ b/keyboards/handwired/dactyl_tracer/keyboard.json @@ -24,7 +24,9 @@ "development_board": "promicro", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "layouts": { "LAYOUT" : { diff --git a/keyboards/handwired/jankrp2040dactyl/keyboard.json b/keyboards/handwired/jankrp2040dactyl/keyboard.json index 0d155a70bd8..485da14b660 100644 --- a/keyboards/handwired/jankrp2040dactyl/keyboard.json +++ b/keyboards/handwired/jankrp2040dactyl/keyboard.json @@ -6,9 +6,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "GP0", "serial": { - "driver": "vendor" + "driver": "vendor", + "pin": "GP0" } }, diff --git a/keyboards/handwired/skakunm_dactyl/keyboard.json b/keyboards/handwired/skakunm_dactyl/keyboard.json index cc6f70b482d..5d87f23f7b2 100644 --- a/keyboards/handwired/skakunm_dactyl/keyboard.json +++ b/keyboards/handwired/skakunm_dactyl/keyboard.json @@ -29,7 +29,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/handwired/splittest/promicro/keyboard.json b/keyboards/handwired/splittest/promicro/keyboard.json index 8aca1c3de75..93f09a47cad 100644 --- a/keyboards/handwired/splittest/promicro/keyboard.json +++ b/keyboards/handwired/splittest/promicro/keyboard.json @@ -8,7 +8,9 @@ "handedness": { "pin": "F6" }, - "soft_serial_pin": "D1" + "serial": { + "pin": "D1" + } }, "ws2812": { "pin": "D3" diff --git a/keyboards/handwired/splittest/teensy_2/keyboard.json b/keyboards/handwired/splittest/teensy_2/keyboard.json index c10b20a1732..78d6c5f9a32 100644 --- a/keyboards/handwired/splittest/teensy_2/keyboard.json +++ b/keyboards/handwired/splittest/teensy_2/keyboard.json @@ -8,7 +8,9 @@ "handedness": { "pin": "F0" }, - "soft_serial_pin": "D1" + "serial": { + "pin": "D1" + } }, "ws2812": { "pin": "D3" diff --git a/keyboards/handwired/symmetric70_proto/promicro/info.json b/keyboards/handwired/symmetric70_proto/promicro/info.json index f143f518eb7..43ecb4c1c02 100644 --- a/keyboards/handwired/symmetric70_proto/promicro/info.json +++ b/keyboards/handwired/symmetric70_proto/promicro/info.json @@ -12,7 +12,9 @@ } }, "split": { - "soft_serial_pin": "D0" + "serial": { + "pin": "D0" + } }, "processor": "atmega32u4", "bootloader": "caterina" diff --git a/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json b/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json index e5730a45869..37633e5a563 100644 --- a/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json +++ b/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json @@ -22,7 +22,9 @@ "handedness": { "pin": "A6" }, - "soft_serial_pin": "D3", + "serial": { + "pin": "D3" + }, "bootmagic": { "matrix": [4, 5] } diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/keyboard.json b/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/keyboard.json index df810f2881e..bd4c41e17b4 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/keyboard.json +++ b/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/keyboard.json @@ -6,7 +6,9 @@ }, "diode_direction": "COL2ROW", "split": { - "soft_serial_pin": "D0", + "serial": { + "pin": "D0" + }, "matrix_pins": { "right": { "cols": ["D6", "D7", "B4", "D3", "C6", "C7"], diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/keyboard.json b/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/keyboard.json index e6c0e42bde9..739aad07ba5 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/keyboard.json +++ b/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/keyboard.json @@ -11,7 +11,9 @@ ] }, "split": { - "soft_serial_pin": "D2" + "serial": { + "pin": "D2" + } }, "ws2812": { "pin": "D3" diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/keyboard.json b/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/keyboard.json index a131ac085bd..5a091996b66 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/keyboard.json +++ b/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/keyboard.json @@ -11,7 +11,9 @@ ] }, "split": { - "soft_serial_pin": "D2" + "serial": { + "pin": "D2" + } }, "ws2812": { "pin": "E7" diff --git a/keyboards/helix/pico/info.json b/keyboards/helix/pico/info.json index d4fabc756e4..7909bb0b30b 100644 --- a/keyboards/helix/pico/info.json +++ b/keyboards/helix/pico/info.json @@ -10,7 +10,9 @@ }, "split": { "enabled": true, - "soft_serial_pin": "D2" + "serial": { + "pin": "D2" + } }, "tapping": { "term": 100 diff --git a/keyboards/helix/rev2/info.json b/keyboards/helix/rev2/info.json index fd829782c02..a8bdb23e411 100644 --- a/keyboards/helix/rev2/info.json +++ b/keyboards/helix/rev2/info.json @@ -15,7 +15,9 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, - "soft_serial_pin": "D2", + "serial": { + "pin": "D2" + }, "transport": { "sync": { "indicators": true, diff --git a/keyboards/helix/rev3_4rows/keyboard.json b/keyboards/helix/rev3_4rows/keyboard.json index 5e9fd2dcd84..537c332d5cd 100644 --- a/keyboards/helix/rev3_4rows/keyboard.json +++ b/keyboards/helix/rev3_4rows/keyboard.json @@ -33,7 +33,9 @@ }, "split": { "enabled": true, - "soft_serial_pin": "D2" + "serial": { + "pin": "D2" + } }, "ws2812": { "pin": "D3" diff --git a/keyboards/helix/rev3_5rows/keyboard.json b/keyboards/helix/rev3_5rows/keyboard.json index b61db7df86e..485cfd924f3 100644 --- a/keyboards/helix/rev3_5rows/keyboard.json +++ b/keyboards/helix/rev3_5rows/keyboard.json @@ -99,7 +99,9 @@ }, "split": { "enabled": true, - "soft_serial_pin": "D2" + "serial": { + "pin": "D2" + } }, "ws2812": { "pin": "D3" From ce2f7d86be171f7273299720ba739b8c85d4c267 Mon Sep 17 00:00:00 2001 From: Grigory Avdyushin Date: Sun, 23 Mar 2025 06:17:05 +0100 Subject: [PATCH 293/365] Franky36 handwired keyboard (#25029) --- keyboards/handwired/franky36/config.h | 21 +++ keyboards/handwired/franky36/franky36.c | 68 ++++++++++ keyboards/handwired/franky36/halconf.h | 21 +++ keyboards/handwired/franky36/keyboard.json | 72 ++++++++++ .../franky36/keymaps/default/keymap.c | 123 ++++++++++++++++++ keyboards/handwired/franky36/mcuconf.h | 24 ++++ keyboards/handwired/franky36/readme.md | 25 ++++ 7 files changed, 354 insertions(+) create mode 100644 keyboards/handwired/franky36/config.h create mode 100644 keyboards/handwired/franky36/franky36.c create mode 100644 keyboards/handwired/franky36/halconf.h create mode 100644 keyboards/handwired/franky36/keyboard.json create mode 100644 keyboards/handwired/franky36/keymaps/default/keymap.c create mode 100644 keyboards/handwired/franky36/mcuconf.h create mode 100644 keyboards/handwired/franky36/readme.md diff --git a/keyboards/handwired/franky36/config.h b/keyboards/handwired/franky36/config.h new file mode 100644 index 00000000000..3749ff5785a --- /dev/null +++ b/keyboards/handwired/franky36/config.h @@ -0,0 +1,21 @@ +/* Copyright 2024-2025 Grigory Avdyushin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define I2C_DRIVER I2CD0 +#define I2C1_SDA_PIN GP0 +#define I2C1_SCL_PIN GP1 diff --git a/keyboards/handwired/franky36/franky36.c b/keyboards/handwired/franky36/franky36.c new file mode 100644 index 00000000000..50e4d38b52d --- /dev/null +++ b/keyboards/handwired/franky36/franky36.c @@ -0,0 +1,68 @@ +/* Copyright 2024-2025 Grigory Avdyushin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +#ifdef OLED_ENABLE + +static void render_logo(void) { + static const char PROGMEM qmk_logo[] = { + 0x80, 0x81, 0x82, 0x83, 0x84, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0x00, 0x0A, 0x0A + }; + + oled_write_P(qmk_logo, false); +} + +static void render_mod_status(uint8_t modifiers) { + oled_write_P(PSTR("MODS:"), false); + oled_write_P(PSTR("S"), (modifiers & MOD_MASK_SHIFT)); + oled_write_P(PSTR("C"), (modifiers & MOD_MASK_CTRL)); + oled_write_P(PSTR("A"), (modifiers & MOD_MASK_ALT)); + oled_write_ln_P(PSTR("G"), (modifiers & MOD_MASK_GUI)); + oled_write_ln_P(PSTR(" "), false); +} + +static void render_layer_state(void) { + oled_write_ln_P(PSTR(" "), false); + oled_write_P("BASE ", layer_state_is(0)); + oled_write_P("LOWER", layer_state_is(1)); + oled_write_P("RAISE", layer_state_is(2)); + oled_write_P("NAV ", layer_state_is(3)); + oled_write_ln_P(PSTR(" "), false); +} + +static void render_capsword_state(bool on) { + oled_write_ln_P("CAPSW", on); +} + +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + return OLED_ROTATION_270; +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + render_logo(); + render_layer_state(); + render_mod_status(get_mods() | get_oneshot_mods()); + render_capsword_state(is_caps_word_on()); + return false; +} + + #endif diff --git a/keyboards/handwired/franky36/halconf.h b/keyboards/handwired/franky36/halconf.h new file mode 100644 index 00000000000..3c594066b6b --- /dev/null +++ b/keyboards/handwired/franky36/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2024-2025 Grigory Avdyushin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/handwired/franky36/keyboard.json b/keyboards/handwired/franky36/keyboard.json new file mode 100644 index 00000000000..038fc1eb67a --- /dev/null +++ b/keyboards/handwired/franky36/keyboard.json @@ -0,0 +1,72 @@ +{ + "manufacturer": "Grigory Avdyushin", + "keyboard_name": "franky36", + "maintainer": "Grigory Avdyushin", + "bootloader": "rp2040", + "caps_word": { + "both_shifts_turns_on": true + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "caps_word": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "oled": true + }, + "matrix_pins": { + "cols": ["GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15", "GP26", "GP27", "GP28"], + "rows": ["GP5", "GP4", "GP3", "GP2"] + }, + "processor": "RP2040", + "url": "https://github.com/avdyushin/franky36", + "usb": { + "device_version": "0.2.0", + "pid": "0x0001", + "vid": "0xFEED" + }, + "community_layouts": ["split_3x5_3"], + "layouts": { + "LAYOUT_split_3x5_3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + {"matrix": [2, 6], "x": 6, "y": 2}, + {"matrix": [2, 7], "x": 7, "y": 2}, + {"matrix": [2, 8], "x": 8, "y": 2}, + {"matrix": [2, 9], "x": 9, "y": 2}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 5], "x": 5, "y": 3}, + {"matrix": [3, 6], "x": 6, "y": 3}, + {"matrix": [3, 7], "x": 7, "y": 3} + ] + } + } +} diff --git a/keyboards/handwired/franky36/keymaps/default/keymap.c b/keyboards/handwired/franky36/keymaps/default/keymap.c new file mode 100644 index 00000000000..1b281124f9b --- /dev/null +++ b/keyboards/handwired/franky36/keymaps/default/keymap.c @@ -0,0 +1,123 @@ +/* Copyright 2024-2025 Grigory Avdyushin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum my_layers { + _BASE = 0, + _LOWER, + _RAISE, + _NAV, +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define NAV MO(_NAV) + +#define OSM_LSFT OSM(MOD_LSFT) // One Shot Right Shift + +#define KC_SFT_Z SFT_T(KC_Z) // Left Shift when held, Z when tapped +#define KC_SFT_SL RSFT_T(KC_SLSH) // Right Shift when held, / when tapped + +#define KC_SFT_BSLS RSFT_T(KC_BSLS) // Right Shift when held, \ when tapped + +#define KC_LWR_SPC LT(_LOWER, KC_SPC) // Lower layer when held, Space when tapped +#define KC_RSE_BSPC LT(_RAISE, KC_BSPC) // Raise layer when held, Backspace when tapped +#define KC_NAV_A LT(_NAV,KC_A) // Navigation layer when held, A when tapped + +#define KC_CMD_TAB CMD_T(KC_TAB) // Left Command when held, Tab when tapped +#define KC_CMD_ENT RCMD_T(KC_ENT) // Right Command when held, Enter when tapped + +#define KC_CTL_ESC CTL_T(KC_ESC) // Left Control when held, Escape when tapped +#define KC_OPT_OSM_SFT ROPT_T(OSM_LSFT) // Right Option when held, One Shot Shift when tapped + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + * │ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │ + * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ + * │ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ;:│ + * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ + * │⇧/Z│ X │ C │ V │ B │ │ N │ M │ ,<│ .>│⇧/?│ + * └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + * ┌───┬───┬───┐ ┌───┬───┬───┐ + * │CTL│CMD│SPC│ │ENT│CMD│OPT│ + * └───┴───┴───┘ └───┴───┴───┘ + */ + [_BASE] = LAYOUT_split_3x5_3( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_NAV_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + KC_SFT_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SFT_SL, + KC_CTL_ESC, KC_CMD_TAB, KC_LWR_SPC, KC_RSE_BSPC, KC_CMD_ENT, KC_ROPT + ), + + /* + * ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + * │ 1!│ 2@│ 3#│ 4$│ 5%│ │ 6^│ 7&│ 8*│ 9(│ 0)│ + * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ + * │ `~│ │ │ │ │ │ ← │ ↓ │ ↑ │ → │ '"│ + * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ + * │ ⇧ │ │ │ │ │ │ -_│ =+│ [{│ ]}│ \|│ + * └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + * ┌───┬───┬───┐ ┌───┬───┬───┐ + * │ │ │ │ │ │ │ │ + * └───┴───┴───┘ └───┴───┴───┘ + */ + [_LOWER] = LAYOUT_split_3x5_3( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_GRV, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_QUOT, + KC_LSFT, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_SFT_BSLS, + _______, _______, _______, _______, _______, _______ + ), + + /* + * ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + * │ F1│ F2│ F3│ F4│ F5│ │ F6│ F7│ F8│ F9│F10│ + * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ + * └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + * ┌───┬───┬───┐ ┌───┬───┬───┐ + * │ │ │ │ │ │ │ │ + * └───┴───┴───┘ └───┴───┴───┘ + */ + [_RAISE] = LAYOUT_split_3x5_3( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______ + ), + + /* + * ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ + * │ │ │ │ │ │ │HOM│ │ │END│ │ + * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ + * │ │ │ │ │ │ │ ← │ ↓ │ ↑ │ → │ │ + * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ + * │ │ │ │ │ │ │PUP│ │ │PDN│ │ + * └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ + * ┌───┬───┬───┐ ┌───┬───┬───┐ + * │ │ │ │ │ │ │ │ + * └───┴───┴───┘ └───┴───┴───┘ + */ + [_NAV] = LAYOUT_split_3x5_3( + _______, _______, _______, _______, _______, KC_HOME, _______, _______, KC_END, _______, + _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, + _______, _______, _______, _______, _______, KC_PGUP, _______, _______, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/handwired/franky36/mcuconf.h b/keyboards/handwired/franky36/mcuconf.h new file mode 100644 index 00000000000..8d471591778 --- /dev/null +++ b/keyboards/handwired/franky36/mcuconf.h @@ -0,0 +1,24 @@ +/* Copyright 2024-2025 Grigory Avdyushin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef RP_I2C_USE_I2C0 +#define RP_I2C_USE_I2C0 TRUE +#undef RP_I2C_USE_I2C1 +#define RP_I2C_USE_I2C1 FALSE diff --git a/keyboards/handwired/franky36/readme.md b/keyboards/handwired/franky36/readme.md new file mode 100644 index 00000000000..62d1bfd5c34 --- /dev/null +++ b/keyboards/handwired/franky36/readme.md @@ -0,0 +1,25 @@ +# franky36 + +Franky36 is 36 key compact handwired split keyboard that uses single RP2040-Zero controller. + +* Keyboard Maintainer: [Grigory Avdyushin](https://github.com/avdyushin) +* Hardware Supported: RP2040-Zero +* Hardware Availability: Handwired [franky36](https://github.com/avdyushin/franky36) + +Make example for this keyboard (after setting up your build environment): + + make franky36:default + +Flashing example for this keyboard: + + make franky36:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Hold down the reset button on the controller and plug in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 86c22a15aba8c7146b7c55ccdaf70b8f965a0caa Mon Sep 17 00:00:00 2001 From: jack Date: Wed, 26 Mar 2025 01:51:56 -0600 Subject: [PATCH 294/365] Fix outdated GPIO control function usage (#25060) --- drivers/painter/ili9xxx/qp_ili9486.c | 16 ++++++++-------- keyboards/zsa/moonlander/matrix.c | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/painter/ili9xxx/qp_ili9486.c b/drivers/painter/ili9xxx/qp_ili9486.c index c4f3c15cecf..48db779c047 100644 --- a/drivers/painter/ili9xxx/qp_ili9486.c +++ b/drivers/painter/ili9xxx/qp_ili9486.c @@ -75,9 +75,9 @@ static void qp_comms_spi_dc_reset_send_command_odd_cs_pulse(painter_device_t dev painter_driver_t * driver = (painter_driver_t *)device; qp_comms_spi_dc_reset_config_t *comms_config = (qp_comms_spi_dc_reset_config_t *)driver->comms_config; - writePinLow(comms_config->spi_config.chip_select_pin); + gpio_write_pin_low(comms_config->spi_config.chip_select_pin); qp_comms_spi_dc_reset_send_command(device, cmd); - writePinHigh(comms_config->spi_config.chip_select_pin); + gpio_write_pin_high(comms_config->spi_config.chip_select_pin); } static uint32_t qp_comms_spi_send_data_odd_cs_pulse(painter_device_t device, const void *data, uint32_t byte_count) { @@ -88,20 +88,20 @@ static uint32_t qp_comms_spi_send_data_odd_cs_pulse(painter_device_t device, con const uint8_t *p = (const uint8_t *)data; uint32_t max_msg_length = 1024; - writePinHigh(comms_config->dc_pin); + gpio_write_pin_high(comms_config->dc_pin); while (bytes_remaining > 0) { uint32_t bytes_this_loop = QP_MIN(bytes_remaining, max_msg_length); bool odd_bytes = bytes_this_loop & 1; // send data - writePinLow(comms_config->spi_config.chip_select_pin); + gpio_write_pin_low(comms_config->spi_config.chip_select_pin); spi_transmit(p, bytes_this_loop); p += bytes_this_loop; // extra CS toggle, for alignment if (odd_bytes) { - writePinHigh(comms_config->spi_config.chip_select_pin); - writePinLow(comms_config->spi_config.chip_select_pin); + gpio_write_pin_high(comms_config->spi_config.chip_select_pin); + gpio_write_pin_low(comms_config->spi_config.chip_select_pin); } bytes_remaining -= bytes_this_loop; @@ -116,9 +116,9 @@ static uint32_t qp_ili9486_send_data_toggling(painter_device_t device, const uin uint32_t ret; for (uint8_t j = 0; j < byte_count; ++j) { - writePinLow(comms_config->spi_config.chip_select_pin); + gpio_write_pin_low(comms_config->spi_config.chip_select_pin); ret = qp_comms_spi_dc_reset_send_data(device, &data[j], 1); - writePinHigh(comms_config->spi_config.chip_select_pin); + gpio_write_pin_high(comms_config->spi_config.chip_select_pin); } return ret; diff --git a/keyboards/zsa/moonlander/matrix.c b/keyboards/zsa/moonlander/matrix.c index 867fa85a669..4e5c120950b 100644 --- a/keyboards/zsa/moonlander/matrix.c +++ b/keyboards/zsa/moonlander/matrix.c @@ -127,7 +127,7 @@ bool matrix_scan_custom(matrix_row_t current_matrix[]) { matrix_io_delay(); } // read col data - data = ((readPin(A0) << 0) | (readPin(A1) << 1) | (readPin(A2) << 2) | (readPin(A3) << 3) | (readPin(A6) << 4) | (readPin(A7) << 5) | (readPin(B0) << 6)); + data = ((gpio_read_pin(A0) << 0) | (gpio_read_pin(A1) << 1) | (gpio_read_pin(A2) << 2) | (gpio_read_pin(A3) << 3) | (gpio_read_pin(A6) << 4) | (gpio_read_pin(A7) << 5) | (gpio_read_pin(B0) << 6)); // unstrobe row switch (row) { case 0: From 1a6a9a7c770b06866199caaa1022d7d01fc98e6b Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Wed, 26 Mar 2025 21:30:45 +1100 Subject: [PATCH 295/365] [Modules] Provide access to current path in `rules.mk`. (#25061) --- lib/python/qmk/cli/generate/rules_mk.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/python/qmk/cli/generate/rules_mk.py b/lib/python/qmk/cli/generate/rules_mk.py index ef4101d77fb..01d71d277fa 100755 --- a/lib/python/qmk/cli/generate/rules_mk.py +++ b/lib/python/qmk/cli/generate/rules_mk.py @@ -72,6 +72,8 @@ def generate_modules_rules(keyboard, filename): lines.append(f'COMMUNITY_MODULE_PATHS += {module_path}') lines.append(f'VPATH += {module_path}') lines.append(f'SRC += $(wildcard {module_path}/{module_path.name}.c)') + lines.append(f'MODULE_NAME_{module_path.name.upper()} := {module_path.name}') + lines.append(f'MODULE_PATH_{module_path.name.upper()} := {module_path}') lines.append(f'-include {module_path}/rules.mk') module_jsons = load_module_jsons(modules) From a3c39bde0edf5c96f339fdfba801b6c249a75abf Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 26 Mar 2025 19:23:28 +0000 Subject: [PATCH 296/365] Create tags when `lib/python` changes (#25064) Create tags when lib/python changes --- .github/workflows/auto_tag.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/auto_tag.yml b/.github/workflows/auto_tag.yml index b4465277b0d..4afca6c66d5 100644 --- a/.github/workflows/auto_tag.yml +++ b/.github/workflows/auto_tag.yml @@ -15,6 +15,7 @@ on: - quantum/**/* - tests/**/* - tmk_core/**/* + - lib/python/**/* - util/**/* - Makefile - '*.mk' From a02ed6a36d677b7c2e45fbc3d63336194cef77bf Mon Sep 17 00:00:00 2001 From: yiancar Date: Thu, 27 Mar 2025 23:25:46 +0000 Subject: [PATCH 297/365] Update keymap for keycult 1800 (#25070) Update keymap Co-authored-by: yiancar --- keyboards/keycult/keycult1800/keyboard.json | 3 ++- keyboards/keycult/keycult1800/keymaps/default/keymap.c | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/keyboards/keycult/keycult1800/keyboard.json b/keyboards/keycult/keycult1800/keyboard.json index a50b77d1042..8ed6e6e2fa9 100644 --- a/keyboards/keycult/keycult1800/keyboard.json +++ b/keyboards/keycult/keycult1800/keyboard.json @@ -96,7 +96,8 @@ { "matrix": [3, 15], "x": 16.5, "y": 3.5 }, { "matrix": [3, 16], "x": 17.5, "y": 3.5 }, { "matrix": [3, 17], "x": 18.5, "y": 3.5 }, - { "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.5 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.5 }, + { "matrix": [4, 1], "x": 1.25, "y": 4.5 }, { "matrix": [4, 2], "x": 2.25, "y": 4.5 }, { "matrix": [4, 3], "x": 3.25, "y": 4.5 }, { "matrix": [4, 4], "x": 4.25, "y": 4.5 }, diff --git a/keyboards/keycult/keycult1800/keymaps/default/keymap.c b/keyboards/keycult/keycult1800/keymaps/default/keymap.c index e596ff2db0e..79570b73a2c 100644 --- a/keyboards/keycult/keycult1800/keymaps/default/keymap.c +++ b/keyboards/keycult/keycult1800/keymaps/default/keymap.c @@ -21,7 +21,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), [1] = LAYOUT( /* FN */ @@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; From 64fe4aff31c11fac3095bcb3b766a786912c5278 Mon Sep 17 00:00:00 2001 From: Erik Peyronson Date: Fri, 28 Mar 2025 07:25:39 +0100 Subject: [PATCH 298/365] Add handwired/erikpeyronson/erkbd (#25030) Co-authored-by: Erik Peyronson Co-authored-by: jack Co-authored-by: Drashna Jaelre --- .../handwired/erikpeyronson/erkbd/config.h | 13 +++ .../handwired/erikpeyronson/erkbd/erkbd.c | 63 +++++++++++ .../erikpeyronson/erkbd/keyboard.json | 107 ++++++++++++++++++ .../erkbd/keymaps/debug/keymap.c | 52 +++++++++ .../erkbd/keymaps/debug/rules.mk | 2 + .../erkbd/keymaps/default/keymap.json | 24 ++++ .../handwired/erikpeyronson/erkbd/readme.md | 28 +++++ 7 files changed, 289 insertions(+) create mode 100644 keyboards/handwired/erikpeyronson/erkbd/config.h create mode 100644 keyboards/handwired/erikpeyronson/erkbd/erkbd.c create mode 100644 keyboards/handwired/erikpeyronson/erkbd/keyboard.json create mode 100644 keyboards/handwired/erikpeyronson/erkbd/keymaps/debug/keymap.c create mode 100644 keyboards/handwired/erikpeyronson/erkbd/keymaps/debug/rules.mk create mode 100644 keyboards/handwired/erikpeyronson/erkbd/keymaps/default/keymap.json create mode 100644 keyboards/handwired/erikpeyronson/erkbd/readme.md diff --git a/keyboards/handwired/erikpeyronson/erkbd/config.h b/keyboards/handwired/erikpeyronson/erkbd/config.h new file mode 100644 index 00000000000..acbafbfaa72 --- /dev/null +++ b/keyboards/handwired/erikpeyronson/erkbd/config.h @@ -0,0 +1,13 @@ +// Copyright 2025 Erik Peyronson @erikpeyronson +// SPDX-License-Identifier: GPL-3.0-or-later + +#pragma once + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U + +#define I2C_DRIVER I2CD1 +#define OLED_IC OLED_IC_SH1106 +#define OLED_COLUMN_OFFSET 2 + +#define OLED_DISPLAY_128X64 diff --git a/keyboards/handwired/erikpeyronson/erkbd/erkbd.c b/keyboards/handwired/erikpeyronson/erkbd/erkbd.c new file mode 100644 index 00000000000..af236df93c0 --- /dev/null +++ b/keyboards/handwired/erikpeyronson/erkbd/erkbd.c @@ -0,0 +1,63 @@ +// Copyright 2025 Erik Peyronson @erikpeyronson +// SPDX-License-Identifier: GPL-3.0-or-later +#include QMK_KEYBOARD_H + +static void oled_render_logo(void) { + // clang-format off + static const char PROGMEM qmk_logo[] = { + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00 + }; + // clang-format on + + oled_write_P(qmk_logo, false); +} + +static void render_layer(void) { + oled_write_P(PSTR("Layer: "), false); + oled_write_ln(get_u8_str(get_highest_layer(layer_state), ' '), false); +} + +static void render_locks(void) { + led_t led_config = host_keyboard_led_state(); + oled_write_P(PSTR("Caps "), led_config.caps_lock); + oled_write_P(PSTR("Scrl "), led_config.scroll_lock); + oled_write_P(PSTR("Num "), led_config.num_lock); +#ifdef CAPS_WORD_ENABLE + oled_write_P(PSTR("Word "), is_caps_word_on()); +#endif + oled_advance_page(true); +} + +static void render_mods(void) { + uint8_t mod_state = get_mods(); + oled_write_P("Ctrl ", mod_state & MOD_MASK_CTRL); + oled_write_P("Shift ", mod_state & MOD_MASK_SHIFT); + oled_write_P("Alt ", mod_state & MOD_MASK_ALT); + oled_write_P("Gui", mod_state & MOD_MASK_GUI); + oled_advance_page(true); +} + +static void render_delimeter(void) { + oled_write_ln_P(PSTR("------------------"), false); +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + if (is_keyboard_left()) { + oled_render_logo(); + } else { + render_delimeter(); + render_locks(); + render_delimeter(); + render_mods(); + render_delimeter(); + render_layer(); + render_delimeter(); + } + + return false; +} diff --git a/keyboards/handwired/erikpeyronson/erkbd/keyboard.json b/keyboards/handwired/erikpeyronson/erkbd/keyboard.json new file mode 100644 index 00000000000..d3ef5147f43 --- /dev/null +++ b/keyboards/handwired/erikpeyronson/erkbd/keyboard.json @@ -0,0 +1,107 @@ +{ + "manufacturer": "Erik Peyronson", + "keyboard_name": "erkbd", + "maintainer": "erikpeyronson", + "bootloader": "rp2040", + "bootloader_instructions": "Double tap the reset button on the controller board if accessable. If not hold down bootmagic key while powering on. Left side: row 0 column 0. (The tab key on regular keyboard). Right side: row 5 column 4 (the Backspace key on regular keyboard)", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "GP7", "pin_b": "GP8"} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "oled": true + }, + "matrix_pins": { + "cols": ["GP8", "GP9", "GP10", "GP11", "GP12", "GP13"], + "rows": ["GP4", "GP5", "GP6", "GP7"] + }, + "processor": "RP2040", + "split": { + "bootmagic": { + "matrix": [4, 5] + }, + "enabled": true, + "encoder": { + "right": { + "rotary": [ + {"pin_a": "GP7", "pin_b": "GP8"} + ] + } + }, + "handedness": { + "pin": "GP1" + }, + "matrix_pins": { + "right": { + "cols": ["GP9", "GP10", "GP11", "GP12", "GP13", "GP14"], + "rows": ["GP28", "GP27", "GP26", "GP15"] + } + }, + "serial": { + "driver": "vendor", + "pin": "GP0" + } + }, + "url": "https://github.com/erikpeyronson/erkbd", + "usb": { + "device_version": "1.0.0", + "pid": "0x1234", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT_split_3x6_5": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.4}, + {"matrix": [0, 1], "x": 1, "y": 0.3}, + {"matrix": [0, 2], "x": 2, "y": 0.1}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0.1}, + {"matrix": [0, 5], "x": 5, "y": 0.2}, + {"matrix": [4, 0], "x": 9, "y": 0.2}, + {"matrix": [4, 1], "x": 10, "y": 0.1}, + {"matrix": [4, 2], "x": 11, "y": 0}, + {"matrix": [4, 3], "x": 12, "y": 0.1}, + {"matrix": [4, 4], "x": 13, "y": 0.3}, + {"matrix": [4, 5], "x": 14, "y": 0.4}, + {"matrix": [1, 0], "x": 0, "y": 1.4}, + {"matrix": [1, 1], "x": 1, "y": 1.3}, + {"matrix": [1, 2], "x": 2, "y": 1.1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1.1}, + {"matrix": [1, 5], "x": 5, "y": 1.2}, + {"matrix": [5, 0], "x": 9, "y": 1.2}, + {"matrix": [5, 1], "x": 10, "y": 1.1}, + {"matrix": [5, 2], "x": 11, "y": 1}, + {"matrix": [5, 3], "x": 12, "y": 1.1}, + {"matrix": [5, 4], "x": 13, "y": 1.3}, + {"matrix": [5, 5], "x": 14, "y": 1.4}, + {"matrix": [2, 0], "x": 0, "y": 2.4}, + {"matrix": [2, 1], "x": 1, "y": 2.3}, + {"matrix": [2, 2], "x": 2, "y": 2.1}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2.1}, + {"matrix": [2, 5], "x": 5, "y": 2.2}, + {"matrix": [6, 0], "x": 9, "y": 2.2}, + {"matrix": [6, 1], "x": 10, "y": 2.1}, + {"matrix": [6, 2], "x": 11, "y": 2}, + {"matrix": [6, 3], "x": 12, "y": 2.1}, + {"matrix": [6, 4], "x": 13, "y": 2.3}, + {"matrix": [6, 5], "x": 14, "y": 2.4}, + {"matrix": [3, 1], "x": 3, "y": 3.4}, + {"matrix": [3, 2], "x": 4, "y": 3.4}, + {"matrix": [3, 3], "x": 5, "y": 3.5}, + {"matrix": [3, 4], "x": 6, "y": 3.7}, + {"matrix": [3, 5], "x": 6, "y": 2.7}, + {"matrix": [7, 0], "x": 8, "y": 2.7}, + {"matrix": [7, 1], "x": 8, "y": 3.7}, + {"matrix": [7, 2], "x": 9, "y": 3.5}, + {"matrix": [7, 3], "x": 10, "y": 3.4}, + {"matrix": [7, 4], "x": 11, "y": 3.4} + ] + } + } +} diff --git a/keyboards/handwired/erikpeyronson/erkbd/keymaps/debug/keymap.c b/keyboards/handwired/erikpeyronson/erkbd/keymaps/debug/keymap.c new file mode 100644 index 00000000000..8884702c814 --- /dev/null +++ b/keyboards/handwired/erikpeyronson/erkbd/keymaps/debug/keymap.c @@ -0,0 +1,52 @@ +// Copyright 2025 Qmk, Erik Peyronson @erikpeyronson +// SPDX-License-Identifier: GPL-3.0-or-later + +// NOTE: This keymap is for debugging purposes to have firmware to test the matrix when building the keyboard. If you intend to build this keyboard +// you should copy this to your fork or userspace repository and create your own. + +#include QMK_KEYBOARD_H + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_3x6_5( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LBRC, KC_RBRC, KC_LGUI, KC_BSPC, KC_SPC, KC_SPC, KC_ENT, KC_RALT, KC_LPRN, KC_RPRN + ) +}; +// clang-format on + +void keyboard_post_init_user(void) { +#ifdef CONSOLE_ENABLE + debug_enable = true; + debug_matrix = true; +#endif +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + // If console is enabled, it will print the matrix position and status of each key pressed +#ifdef CONSOLE_ENABLE + uprintf("KL: kc: 0x%04X, col: %2u, row: %2u, pressed: %u, time: %5u, int: %u, count: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed, record->event.time, record->tap.interrupted, record->tap.count); +#endif + return true; +} + +// This function prints which half the keyboard considers itself to be which is +// useful for verify if the handedness pin and display is correctly set up when building +#ifdef OLED_ENABLE +bool oled_task_user(void) { + if (is_keyboard_left()) { + oled_write_P(PSTR("left"), false); + } else { + oled_write_P(PSTR("right"), false); + } + return false; +} +#endif + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = {ENCODER_CCW_CW(KC_UP, KC_DOWN), ENCODER_CCW_CW(KC_RIGHT, KC_LEFT)} +}; +#endif diff --git a/keyboards/handwired/erikpeyronson/erkbd/keymaps/debug/rules.mk b/keyboards/handwired/erikpeyronson/erkbd/keymaps/debug/rules.mk new file mode 100644 index 00000000000..14094ea22cd --- /dev/null +++ b/keyboards/handwired/erikpeyronson/erkbd/keymaps/debug/rules.mk @@ -0,0 +1,2 @@ +ENCODER_MAP_ENABLE = yes +CONSOLE_ENABLE = yes diff --git a/keyboards/handwired/erikpeyronson/erkbd/keymaps/default/keymap.json b/keyboards/handwired/erikpeyronson/erkbd/keymaps/default/keymap.json new file mode 100644 index 00000000000..0b733d9fb64 --- /dev/null +++ b/keyboards/handwired/erikpeyronson/erkbd/keymaps/default/keymap.json @@ -0,0 +1,24 @@ +{ + "keyboard": "handwired/erikpeyronson/erkbd", + "keymap": "default", + "layout": "LAYOUT_split_3x6_5", + "layers": [ + [ + "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPC", + "KC_LCTL", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", + "KC_LSFT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT", + "KC_LBRC", "KC_RBRC", "KC_LGUI", "KC_BSPC", "KC_SPC", "KC_SPC", "KC_ENT", "KC_RALT", "KC_LPRN", "KC_RPRN" + ] + ], + "config": { + "features": { + "encoder_map": true + } + }, + "encoders": [ + [ + { "ccw": "KC_UP", "cw": "KC_DOWN" }, + { "ccw": "KC_RIGHT", "cw": "KC_LEFT" } + ] + ] +} diff --git a/keyboards/handwired/erikpeyronson/erkbd/readme.md b/keyboards/handwired/erikpeyronson/erkbd/readme.md new file mode 100644 index 00000000000..3f4fe0175e1 --- /dev/null +++ b/keyboards/handwired/erikpeyronson/erkbd/readme.md @@ -0,0 +1,28 @@ +# handwired/erikpeyronson/erkbd + +![Erkbd](https://i.imgur.com/VViiXIN.jpeg) + +3D printed, handwired 44 key split keyboard featuring two encoders, two 1.3" 128x64 oled displays using the waveshare rp2040zero development board. + +* Keyboard Maintainer: [Erik Peyronson](https://github.com/erikpeyronson) +* Hardware Supported: See keyboard repository on [github](https://github.com/erikpeyronson/erkbd) +* Hardware Availability: See keyboard repository on [github](https://github.com/erikpeyronson/erkbd) + +Make example for this keyboard (after setting up your build environment): + + make handwired/erikpeyronson/erkbd:default + +Flashing example for this keyboard: + + Enter bootloader, drag and drop .uft2 file on the removable storage + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: For left half hold down the key at (0,0) in the matrix (correspons with the tab key) and plug in the keyboard. +For left half half the key is (4,5) (corresponds with the backspace key) +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available +Enter the bootloader in 3 ways: From ce9713c47d840380d5647335a9cb819d373139e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=E1=BA=AFn?= <59417802+MaiTheSan@users.noreply.github.com> Date: Fri, 28 Mar 2025 15:27:36 +0700 Subject: [PATCH 299/365] Add support for Starry FRL (#24626) Co-authored-by: jack Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/salane/starryfrl/config.h | 17 +++ keyboards/salane/starryfrl/keyboard.json | 143 ++++++++++++++++++ .../salane/starryfrl/keymaps/default/keymap.c | 46 ++++++ .../salane/starryfrl/keymaps/default/rules.mk | 1 + keyboards/salane/starryfrl/readme.md | 29 ++++ 5 files changed, 236 insertions(+) create mode 100644 keyboards/salane/starryfrl/config.h create mode 100644 keyboards/salane/starryfrl/keyboard.json create mode 100644 keyboards/salane/starryfrl/keymaps/default/keymap.c create mode 100644 keyboards/salane/starryfrl/keymaps/default/rules.mk create mode 100644 keyboards/salane/starryfrl/readme.md diff --git a/keyboards/salane/starryfrl/config.h b/keyboards/salane/starryfrl/config.h new file mode 100644 index 00000000000..cc6fb298f41 --- /dev/null +++ b/keyboards/salane/starryfrl/config.h @@ -0,0 +1,17 @@ +/* +Copyright 2024 Salane +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define RP2040_FLASH_GENERIC_03H diff --git a/keyboards/salane/starryfrl/keyboard.json b/keyboards/salane/starryfrl/keyboard.json new file mode 100644 index 00000000000..43e434cb022 --- /dev/null +++ b/keyboards/salane/starryfrl/keyboard.json @@ -0,0 +1,143 @@ +{ + "keyboard_name": "Starry FRL", + "manufacturer": "Salane", + "url": "", + "maintainer": "Mai The San", + "processor": "RP2040", + "bootloader": "rp2040", + "usb": { + "vid": "0x534C", + "pid": "0x0A01", + "device_version": "0.0.1" + }, + "matrix_pins": { + "rows": ["GP25", "GP0", "GP18", "GP23", "GP24"], + "cols": ["GP27", "GP26", "GP14", "GP13", "GP12", "GP11", "GP10", "GP9", "GP8", "GP7", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP22", "GP21", "GP20"] + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": false, + "rgblight": true, + "encoder": true + }, + "encoder": { + "rotary": [ + {"pin_a": "GP29", "pin_b": "GP28"} + ] + }, + "rgblight": { + "led_count": 2, + "saturation_steps": 8, + "brightness_steps": 8, + "sleep": true, + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "static_gradient": true, + "twinkle": true + } + }, + "ws2812": { + "pin": "GP19", + "driver": "vendor" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "K01", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "K02", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "K03", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "K04", "matrix": [0, 4], "x": 4.25, "y": 0}, + {"label": "K05", "matrix": [0, 5], "x": 5.25, "y": 0}, + {"label": "K06", "matrix": [0, 6], "x": 6.25, "y": 0}, + {"label": "K07", "matrix": [0, 7], "x": 7.25, "y": 0}, + {"label": "K08", "matrix": [0, 8], "x": 8.25, "y": 0}, + {"label": "K09", "matrix": [0, 9], "x": 9.25, "y": 0}, + {"label": "K0A", "matrix": [0, 10], "x": 10.25, "y": 0}, + {"label": "K0B", "matrix": [0, 11], "x": 11.25, "y": 0}, + {"label": "K0C", "matrix": [0, 12], "x": 12.25, "y": 0}, + {"label": "K0D", "matrix": [0, 13], "x": 13.25, "y": 0}, + {"label": "K0E", "matrix": [0, 14], "x": 14.25, "y": 0}, + {"label": "K0F", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "K2F", "matrix": [2, 15], "x": 16.25, "y": 0}, + {"label": "K0G", "matrix": [0, 16], "x": 17.5, "y": 0}, + {"label": "K0H", "matrix": [0, 17], "x": 18.5, "y": 0}, + {"label": "K0I", "matrix": [0, 18], "x": 19.5, "y": 0}, + {"label": "K12", "matrix": [1, 2], "x": 2.25, "y": 1, "w": 1.5}, + {"label": "K13", "matrix": [1, 3], "x": 3.75, "y": 1}, + {"label": "K14", "matrix": [1, 4], "x": 4.75, "y": 1}, + {"label": "K15", "matrix": [1, 5], "x": 5.75, "y": 1}, + {"label": "K16", "matrix": [1, 6], "x": 6.75, "y": 1}, + {"label": "K17", "matrix": [1, 7], "x": 7.75, "y": 1}, + {"label": "K18", "matrix": [1, 8], "x": 8.75, "y": 1}, + {"label": "K19", "matrix": [1, 9], "x": 9.75, "y": 1}, + {"label": "K1A", "matrix": [1, 10], "x": 10.75, "y": 1}, + {"label": "K1B", "matrix": [1, 11], "x": 11.75, "y": 1}, + {"label": "K1C", "matrix": [1, 12], "x": 12.75, "y": 1}, + {"label": "K1D", "matrix": [1, 13], "x": 13.75, "y": 1}, + {"label": "K1E", "matrix": [1, 14], "x": 14.75, "y": 1}, + {"label": "K1F", "matrix": [1, 15], "x": 15.75, "y": 1, "w": 1.5}, + {"label": "K1G", "matrix": [1, 16], "x": 17.5, "y": 1}, + {"label": "K1H", "matrix": [1, 17], "x": 18.5, "y": 1}, + {"label": "K1I", "matrix": [1, 18], "x": 19.5, "y": 1}, + {"label": "K21", "matrix": [2, 1], "x": 0.25, "y": 1.25, "w": 1.5, "h": 1.5}, + {"label": "K22", "matrix": [2, 2], "x": 2.25, "y": 2, "w": 1.75}, + {"label": "K23", "matrix": [2, 3], "x": 4, "y": 2}, + {"label": "K24", "matrix": [2, 4], "x": 5, "y": 2}, + {"label": "K25", "matrix": [2, 5], "x": 6, "y": 2}, + {"label": "K26", "matrix": [2, 6], "x": 7, "y": 2}, + {"label": "K27", "matrix": [2, 7], "x": 8, "y": 2}, + {"label": "K28", "matrix": [2, 8], "x": 9, "y": 2}, + {"label": "K29", "matrix": [2, 9], "x": 10, "y": 2}, + {"label": "K2A", "matrix": [2, 10], "x": 11, "y": 2}, + {"label": "K2B", "matrix": [2, 11], "x": 12, "y": 2}, + {"label": "K2C", "matrix": [2, 12], "x": 13, "y": 2}, + {"label": "K2D", "matrix": [2, 13], "x": 14, "y": 2}, + {"label": "K2E", "matrix": [2, 14], "x": 15, "y": 2, "w": 2.25}, + {"label": "K30", "matrix": [3, 0], "x": 0, "y": 3}, + {"label": "K31", "matrix": [3, 1], "x": 1, "y": 3}, + {"label": "K32", "matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25}, + {"label": "K33", "matrix": [3, 3], "x": 3.5, "y": 3}, + {"label": "K34", "matrix": [3, 4], "x": 4.5, "y": 3}, + {"label": "K35", "matrix": [3, 5], "x": 5.5, "y": 3}, + {"label": "K36", "matrix": [3, 6], "x": 6.5, "y": 3}, + {"label": "K37", "matrix": [3, 7], "x": 7.5, "y": 3}, + {"label": "K38", "matrix": [3, 8], "x": 8.5, "y": 3}, + {"label": "K39", "matrix": [3, 9], "x": 9.5, "y": 3}, + {"label": "K3A", "matrix": [3, 10], "x": 10.5, "y": 3}, + {"label": "K3B", "matrix": [3, 11], "x": 11.5, "y": 3}, + {"label": "K3C", "matrix": [3, 12], "x": 12.5, "y": 3}, + {"label": "K3D", "matrix": [3, 13], "x": 13.5, "y": 3}, + {"label": "K3E", "matrix": [3, 14], "x": 14.5, "y": 3, "w": 1.75}, + {"label": "K3F", "matrix": [3, 15], "x": 16.25, "y": 3}, + {"label": "K3H", "matrix": [3, 17], "x": 18.5, "y": 3}, + {"label": "K40", "matrix": [4, 0], "x": 0, "y": 4}, + {"label": "K41", "matrix": [4, 1], "x": 1, "y": 4}, + {"label": "K42", "matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5}, + {"label": "K43", "matrix": [4, 3], "x": 3.75, "y": 4}, + {"label": "K44", "matrix": [4, 4], "x": 4.75, "y": 4, "w": 1.5}, + {"label": "K47", "matrix": [4, 7], "x": 6.25, "y": 4, "w": 3}, + {"label": "K49", "matrix": [4, 9], "x": 9.25, "y": 4}, + {"label": "K4B", "matrix": [4, 11], "x": 10.25, "y": 4, "w": 2}, + {"label": "K4C", "matrix": [4, 12], "x": 12.25, "y": 4}, + {"label": "K4D", "matrix": [4, 13], "x": 13.25, "y": 4, "w": 1.5}, + {"label": "K4E", "matrix": [4, 14], "x": 14.75, "y": 4}, + {"label": "K4F", "matrix": [4, 15], "x": 15.75, "y": 4, "w": 1.5}, + {"label": "K4G", "matrix": [4, 16], "x": 17.5, "y": 4}, + {"label": "K4H", "matrix": [4, 17], "x": 18.5, "y": 4}, + {"label": "K4I", "matrix": [4, 18], "x": 19.5, "y": 4} + ] + } + } +} diff --git a/keyboards/salane/starryfrl/keymaps/default/keymap.c b/keyboards/salane/starryfrl/keymaps/default/keymap.c new file mode 100644 index 00000000000..5b3235afe53 --- /dev/null +++ b/keyboards/salane/starryfrl/keymaps/default/keymap.c @@ -0,0 +1,46 @@ +/* Copyright 2023 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +enum { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_F1, KC_F2, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_MUTE, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_F3, KC_F4, KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, MO(_FN), KC_UP, + KC_F5, KC_F6, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [_FN] = LAYOUT( + KC_F7, KC_F8, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, UG_PREV, UG_TOGG, UG_NEXT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_F9, KC_F10, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [_BASE] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP) }, + [_FN] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } +}; +#endif // ENCODER_MAP_ENABLE diff --git a/keyboards/salane/starryfrl/keymaps/default/rules.mk b/keyboards/salane/starryfrl/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/salane/starryfrl/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/salane/starryfrl/readme.md b/keyboards/salane/starryfrl/readme.md new file mode 100644 index 00000000000..da2920797db --- /dev/null +++ b/keyboards/salane/starryfrl/readme.md @@ -0,0 +1,29 @@ +# Starry FRL + +![Starry FRL](https://i.imgur.com/eRYlEe7.jpeg) + + This firmware support for both Solder and Hotswap PCB of Starry FRL + + **Firmware files are SPECIFIC to each board. Firmware files from one, will not work on the other.** Please use the `uf2` appropriate for your board. + +* Keyboard Maintainer: [Mai The San](https://github.com/MaiTheSan) +* Hardware Supported: Starry FRL +* Hardware Availability: [Waifu.works Discord](https://discord.gg/waifuworks) + +Make examples for this keyboard (after setting up your build environment): + + make salane/starryfrl:default + +Flashing example for this keyboard: + + make salane/starryfrl:default:flash + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Press the key `BOOT` in the back of PCB and plug in keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file From d4120b1def0734e060a341cbe2789168ab078814 Mon Sep 17 00:00:00 2001 From: Hyphen-ated Date: Fri, 28 Mar 2025 01:27:54 -0700 Subject: [PATCH 300/365] Add "Large Lad" keyboard (#24727) Co-authored-by: jack --- keyboards/large_lad/keyboard.json | 188 +++++++++++++++++++ keyboards/large_lad/keymaps/default/keymap.c | 42 +++++ keyboards/large_lad/keymaps/default/rules.mk | 1 + keyboards/large_lad/readme.md | 23 +++ 4 files changed, 254 insertions(+) create mode 100644 keyboards/large_lad/keyboard.json create mode 100644 keyboards/large_lad/keymaps/default/keymap.c create mode 100644 keyboards/large_lad/keymaps/default/rules.mk create mode 100644 keyboards/large_lad/readme.md diff --git a/keyboards/large_lad/keyboard.json b/keyboards/large_lad/keyboard.json new file mode 100644 index 00000000000..665a2797997 --- /dev/null +++ b/keyboards/large_lad/keyboard.json @@ -0,0 +1,188 @@ +{ + "manufacturer": "DIY (open source)", + "keyboard_name": "Large Lad", + "maintainer": "Hyphen-ated", + "bootmagic": { + "matrix": [11, 12] + }, + "development_board": "blackpill_f411", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "B7", "pin_b": "A0"} + ] + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "encoder": true + }, + "matrix_pins": { + "cols": ["A2", "A1", "C13", "C14", "C15", "A5", "A6", "B0", "B3", "B8", "A15", "A8", "B15"], + "rows": ["B5", "B6", "B4", "B9", "A4", "A3", "A7", "B1", "B10", "B12", "B13", "B14"] + }, + "url": "https://github.com/Hyphen-ated/large-lad-keyboard", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "L1", "matrix": [11, 12], "x": 0, "y": 0}, + {"label": "L2", "matrix": [11, 11], "x": 1, "y": 0}, + {"label": "L3", "matrix": [11, 6], "x": 2, "y": 0}, + {"label": "F13", "matrix": [11, 5], "x": 5.25, "y": 0}, + {"label": "F14", "matrix": [11, 4], "x": 6.25, "y": 0}, + {"label": "F15", "matrix": [11, 3], "x": 7.25, "y": 0}, + {"label": "F16", "matrix": [11, 2], "x": 8.25, "y": 0}, + {"label": "F17", "matrix": [11, 1], "x": 9.75, "y": 0}, + {"label": "F18", "matrix": [11, 0], "x": 10.75, "y": 0}, + {"label": "F19", "matrix": [0, 12], "x": 11.75, "y": 0}, + {"label": "F20", "matrix": [0, 11], "x": 12.75, "y": 0}, + {"label": "F21", "matrix": [0, 10], "x": 14.25, "y": 0}, + {"label": "F22", "matrix": [0, 9], "x": 15.25, "y": 0}, + {"label": "F23", "matrix": [0, 8], "x": 16.25, "y": 0}, + {"label": "F24", "matrix": [0, 7], "x": 17.25, "y": 0}, + {"label": "R1", "matrix": [0, 6], "x": 18.5, "y": 0}, + {"label": "R2", "matrix": [0, 5], "x": 19.5, "y": 0}, + {"label": "R3", "matrix": [0, 4], "x": 20.5, "y": 0}, + {"label": "R4", "matrix": [0, 3], "x": 21.75, "y": 0}, + {"label": "R5", "matrix": [0, 2], "x": 22.75, "y": 0}, + {"label": "R6", "matrix": [0, 1], "x": 23.75, "y": 0}, + {"label": "R7", "matrix": [0, 0], "x": 24.75, "y": 0}, + {"label": "L4", "matrix": [11, 7], "x": 0, "y": 1}, + {"label": "L5", "matrix": [10, 12], "x": 1, "y": 1}, + {"label": "L6", "matrix": [10, 11], "x": 2, "y": 1}, + {"label": "Esc", "matrix": [10, 6], "x": 3.25, "y": 1}, + {"label": "F1", "matrix": [10, 5], "x": 5.25, "y": 1}, + {"label": "F2", "matrix": [10, 4], "x": 6.25, "y": 1}, + {"label": "F3", "matrix": [10, 3], "x": 7.25, "y": 1}, + {"label": "F4", "matrix": [10, 2], "x": 8.25, "y": 1}, + {"label": "F5", "matrix": [10, 1], "x": 9.75, "y": 1}, + {"label": "F6", "matrix": [10, 0], "x": 10.75, "y": 1}, + {"label": "F7", "matrix": [1, 12], "x": 11.75, "y": 1}, + {"label": "F8", "matrix": [1, 11], "x": 12.75, "y": 1}, + {"label": "F9", "matrix": [1, 10], "x": 14.25, "y": 1}, + {"label": "F10", "matrix": [1, 9], "x": 15.25, "y": 1}, + {"label": "F11", "matrix": [1, 8], "x": 16.25, "y": 1}, + {"label": "F12", "matrix": [1, 7], "x": 17.25, "y": 1}, + {"label": "PrtSc", "matrix": [1, 6], "x": 18.5, "y": 1}, + {"label": "Scroll Lock", "matrix": [1, 5], "x": 19.5, "y": 1}, + {"label": "Pause", "matrix": [1, 4], "x": 20.5, "y": 1}, + {"label": "R8", "matrix": [1, 3], "x": 21.75, "y": 1}, + {"label": "R9", "matrix": [1, 2], "x": 22.75, "y": 1}, + {"label": "R10", "matrix": [1, 1], "x": 23.75, "y": 1}, + {"label": "R11", "matrix": [1, 0], "x": 24.75, "y": 1}, + {"label": "L7", "matrix": [11, 8], "x": 0, "y": 2.25}, + {"label": "L8", "matrix": [10, 7], "x": 1, "y": 2.25}, + {"label": "L9", "matrix": [9, 12], "x": 2, "y": 2.25}, + {"label": "~", "matrix": [9, 11], "x": 3.25, "y": 2.5}, + {"label": "!", "matrix": [9, 6], "x": 4.25, "y": 2.5}, + {"label": "@", "matrix": [9, 5], "x": 5.25, "y": 2.5}, + {"label": "#", "matrix": [9, 4], "x": 6.25, "y": 2.5}, + {"label": "$", "matrix": [9, 3], "x": 7.25, "y": 2.5}, + {"label": "%", "matrix": [9, 2], "x": 8.25, "y": 2.5}, + {"label": "^", "matrix": [9, 1], "x": 9.25, "y": 2.5}, + {"label": "&", "matrix": [9, 0], "x": 10.25, "y": 2.5}, + {"label": "*", "matrix": [2, 12], "x": 11.25, "y": 2.5}, + {"label": "(", "matrix": [2, 11], "x": 12.25, "y": 2.5}, + {"label": ")", "matrix": [2, 10], "x": 13.25, "y": 2.5}, + {"label": "_", "matrix": [2, 9], "x": 14.25, "y": 2.5}, + {"label": "+", "matrix": [2, 8], "x": 15.25, "y": 2.5}, + {"label": "Backspace", "matrix": [2, 7], "x": 16.25, "y": 2.5, "w": 2}, + {"label": "Insert", "matrix": [2, 6], "x": 18.5, "y": 2.5}, + {"label": "Home", "matrix": [2, 5], "x": 19.5, "y": 2.5}, + {"label": "PgUp", "matrix": [2, 4], "x": 20.5, "y": 2.5}, + {"label": "Num Lock", "matrix": [2, 3], "x": 21.75, "y": 2.5}, + {"label": "/", "matrix": [2, 2], "x": 22.75, "y": 2.5}, + {"label": "*", "matrix": [2, 1], "x": 23.75, "y": 2.5}, + {"label": "-", "matrix": [2, 0], "x": 24.75, "y": 2.5}, + {"label": "L10", "matrix": [10, 8], "x": 0, "y": 3.25}, + {"label": "L11", "matrix": [9, 7], "x": 1, "y": 3.25}, + {"label": "L12", "matrix": [8, 12], "x": 2, "y": 3.25}, + {"label": "Tab", "matrix": [8, 11], "x": 3.25, "y": 3.5, "w": 1.5}, + {"label": "Q", "matrix": [8, 6], "x": 4.75, "y": 3.5}, + {"label": "W", "matrix": [8, 5], "x": 5.75, "y": 3.5}, + {"label": "E", "matrix": [8, 4], "x": 6.75, "y": 3.5}, + {"label": "R", "matrix": [8, 3], "x": 7.75, "y": 3.5}, + {"label": "T", "matrix": [8, 2], "x": 8.75, "y": 3.5}, + {"label": "Y", "matrix": [8, 1], "x": 9.75, "y": 3.5}, + {"label": "U", "matrix": [8, 0], "x": 10.75, "y": 3.5}, + {"label": "I", "matrix": [3, 12], "x": 11.75, "y": 3.5}, + {"label": "O", "matrix": [3, 11], "x": 12.75, "y": 3.5}, + {"label": "P", "matrix": [3, 10], "x": 13.75, "y": 3.5}, + {"label": "{", "matrix": [3, 9], "x": 14.75, "y": 3.5}, + {"label": "}", "matrix": [3, 8], "x": 15.75, "y": 3.5}, + {"label": "|", "matrix": [3, 7], "x": 16.75, "y": 3.5, "w": 1.5}, + {"label": "Delete", "matrix": [3, 6], "x": 18.5, "y": 3.5}, + {"label": "End", "matrix": [3, 5], "x": 19.5, "y": 3.5}, + {"label": "PgDn", "matrix": [3, 4], "x": 20.5, "y": 3.5}, + {"label": "7", "matrix": [3, 3], "x": 21.75, "y": 3.5}, + {"label": "8", "matrix": [3, 2], "x": 22.75, "y": 3.5}, + {"label": "9", "matrix": [3, 1], "x": 23.75, "y": 3.5}, + {"label": "+", "matrix": [3, 0], "x": 24.75, "y": 3.5, "h": 2}, + {"label": "L13", "matrix": [9, 8], "x": 0, "y": 4.25}, + {"label": "L14", "matrix": [8, 7], "x": 1, "y": 4.25}, + {"label": "L15", "matrix": [7, 12], "x": 2, "y": 4.25}, + {"label": "Caps Lock", "matrix": [7, 6], "x": 3.25, "y": 4.5, "w": 1.75}, + {"label": "A", "matrix": [7, 5], "x": 5, "y": 4.5}, + {"label": "S", "matrix": [7, 4], "x": 6, "y": 4.5}, + {"label": "D", "matrix": [7, 3], "x": 7, "y": 4.5}, + {"label": "F", "matrix": [7, 2], "x": 8, "y": 4.5}, + {"label": "G", "matrix": [7, 1], "x": 9, "y": 4.5}, + {"label": "H", "matrix": [7, 0], "x": 10, "y": 4.5}, + {"label": "J", "matrix": [4, 12], "x": 11, "y": 4.5}, + {"label": "K", "matrix": [4, 11], "x": 12, "y": 4.5}, + {"label": "L", "matrix": [4, 10], "x": 13, "y": 4.5}, + {"label": ":", "matrix": [4, 9], "x": 14, "y": 4.5}, + {"label": "\"", "matrix": [4, 8], "x": 15, "y": 4.5}, + {"label": "Enter", "matrix": [4, 7], "x": 16, "y": 4.5, "w": 2.25}, + {"label": "4", "matrix": [4, 3], "x": 21.75, "y": 4.5}, + {"label": "5", "matrix": [4, 2], "x": 22.75, "y": 4.5}, + {"label": "6", "matrix": [4, 1], "x": 23.75, "y": 4.5}, + {"label": "L16", "matrix": [8, 8], "x": 0, "y": 5.5}, + {"label": "L17", "matrix": [7, 7], "x": 1, "y": 5.5}, + {"label": "L18", "matrix": [6, 12], "x": 2, "y": 5.5}, + {"label": "Shift", "matrix": [7, 11], "x": 3.25, "y": 5.5, "w": 2.25}, + {"label": "Z", "matrix": [6, 5], "x": 5.5, "y": 5.5}, + {"label": "X", "matrix": [6, 3], "x": 6.5, "y": 5.5}, + {"label": "C", "matrix": [6, 2], "x": 7.5, "y": 5.5}, + {"label": "V", "matrix": [6, 1], "x": 8.5, "y": 5.5}, + {"label": "B", "matrix": [6, 0], "x": 9.5, "y": 5.5}, + {"label": "N", "matrix": [5, 12], "x": 10.5, "y": 5.5}, + {"label": "M", "matrix": [5, 11], "x": 11.5, "y": 5.5}, + {"label": "<", "matrix": [5, 10], "x": 12.5, "y": 5.5}, + {"label": ">", "matrix": [5, 9], "x": 13.5, "y": 5.5}, + {"label": "?", "matrix": [5, 8], "x": 14.5, "y": 5.5}, + {"label": "Shift", "matrix": [5, 7], "x": 15.5, "y": 5.5, "w": 2.75}, + {"label": "Up", "matrix": [4, 5], "x": 19.5, "y": 5.5}, + {"label": "1", "matrix": [5, 3], "x": 21.75, "y": 5.5}, + {"label": "2", "matrix": [5, 2], "x": 22.75, "y": 5.5}, + {"label": "3", "matrix": [5, 1], "x": 23.75, "y": 5.5}, + {"label": "Enter", "matrix": [4, 0], "x": 24.75, "y": 5.5, "h": 2}, + {"label": "L19", "matrix": [7, 8], "x": 0, "y": 6.5}, + {"label": "L20", "matrix": [8, 9], "x": 1, "y": 6.5}, + {"label": "L21", "matrix": [7, 9], "x": 2, "y": 6.5}, + {"label": "Ctrl", "matrix": [6, 11], "x": 3.25, "y": 6.5, "w": 1.25}, + {"label": "Win", "matrix": [6, 6], "x": 4.5, "y": 6.5, "w": 1.25}, + {"label": "Alt", "matrix": [6, 4], "x": 5.75, "y": 6.5, "w": 1.25}, + {"label": "Space", "matrix": [6, 10], "x": 7, "y": 6.5, "w": 6.25}, + {"label": "Alt", "matrix": [6, 9], "x": 13.25, "y": 6.5, "w": 1.25}, + {"label": "Win", "matrix": [6, 8], "x": 14.5, "y": 6.5, "w": 1.25}, + {"label": "Menu", "matrix": [6, 7], "x": 15.75, "y": 6.5, "w": 1.25}, + {"label": "Ctrl", "matrix": [5, 6], "x": 17, "y": 6.5, "w": 1.25}, + {"label": "Left", "matrix": [4, 6], "x": 18.5, "y": 6.5}, + {"label": "Down", "matrix": [5, 5], "x": 19.5, "y": 6.5}, + {"label": "Right", "matrix": [4, 4], "x": 20.5, "y": 6.5}, + {"label": "0", "matrix": [5, 4], "x": 21.75, "y": 6.5, "w": 2}, + {"label": ".", "matrix": [5, 0], "x": 23.75, "y": 6.5} + ] + } + } +} diff --git a/keyboards/large_lad/keymaps/default/keymap.c b/keyboards/large_lad/keymaps/default/keymap.c new file mode 100644 index 00000000000..68c368360f9 --- /dev/null +++ b/keyboards/large_lad/keymaps/default/keymap.c @@ -0,0 +1,42 @@ +// Copyright 2024 Hyphen-ated (@Hyphen-ated) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ + * │ │ │ │ │F13│F14│F15│F16│ │F17│F18│F19│F20│ │F21│F22│F23│F24│ │ │ │ │ │ │ │ │ │ + * ├───┼───┼───┤ ┌───┐ ├───┼───┼───┤───┤ ├───┼───┼───┤───┤ ├───┼───┼───┤───┤ ├───┼───┼───┤ ├───┼───┼───┤───┤ + * │ │ │ │ │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ │ │ │ │ │ + * └───┴───┴───┘ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┴───┘ + * ┌───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ + * │ │ │ │ │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ │Num│ / │ * │ - │ + * ├───┼───┼───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤ + * │ │ │ │ │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ │ 7 │ 8 │ 9 │ │ + * ├───┼───┼───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ├───┼───┼───┤ + │ + * │ │ │ │ │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ │ 4 │ 5 │ 6 │ │ + * ├───┼───┼───┤ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ ├───┼───┼───┼───┤ + * │ │ │ │ │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ │ 1 │ 2 │ 3 │ │ + * ├───┼───┼───┤ ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤Ent│ + * │ │ │ │ │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ │ ← │ ↓ │ → │ │ 0 │ . │ │ + * └───┴───┴───┘ └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ + */ + [0] = LAYOUT( + KC_NO,KC_NO,KC_NO, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO,KC_NO,KC_NO, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, KC_NO, KC_NO, KC_NO, KC_NO, + + KC_NO,KC_NO,KC_NO, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_NO,KC_NO,KC_NO, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_NO,KC_NO,KC_NO, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_NO,KC_NO,KC_NO, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_NO,KC_NO,KC_NO, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ) +}; + +// encoder controls volume by default +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } +}; +#endif diff --git a/keyboards/large_lad/keymaps/default/rules.mk b/keyboards/large_lad/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/large_lad/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/large_lad/readme.md b/keyboards/large_lad/readme.md new file mode 100644 index 00000000000..ac9f5a0646e --- /dev/null +++ b/keyboards/large_lad/readme.md @@ -0,0 +1,23 @@ +# large_lad + +![large_lad](https://i.imgur.com/CQWAD2X.jpg) + +Starts with the standard US 104 key layout and adds more keys on top and on the left. Total of 148 keys, one of which is a rotary encoder. Includes two rows of function keys and a 3x7 grid of keys on the left. No LEDs. + +* Keyboard Maintainer: [Hyphen-ated](https://github.com/Hyphen-ated) +* Hardware Supported: Custom open source PCB. +* Hardware Availability: DIY. PCB and plate design files available at https://github.com/Hyphen-ated/large-lad-keyboard + +Make example for this keyboard (after setting up your build environment): + + make large_lad:default + +Flashing example for this keyboard: + + make large_lad:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +To enter the bootloader, there's two buttons to press on the blackpill board. Press and hold BOOT, press and release NRST, then release BOOT. Sometimes this randomly fails and you have to try again. From 6f3b494a4d8a28696743e977f677e6a247dbe392 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 28 Mar 2025 08:56:08 +0000 Subject: [PATCH 301/365] Bump vite from 5.4.12 to 5.4.15 in /builddefs/docsgen (#25065) Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.12 to 5.4.15. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v5.4.15/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v5.4.15/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: direct:development ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- builddefs/docsgen/package.json | 2 +- builddefs/docsgen/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/builddefs/docsgen/package.json b/builddefs/docsgen/package.json index 21f56d7ddfb..a798207d77d 100644 --- a/builddefs/docsgen/package.json +++ b/builddefs/docsgen/package.json @@ -1,7 +1,7 @@ { "license": "GPL-2.0-or-later", "devDependencies": { - "vite": "^5.4.12", + "vite": "^5.4.15", "vitepress": "^1.1.0", "vitepress-plugin-tabs": "^0.5.0", "vue": "^3.4.24" diff --git a/builddefs/docsgen/yarn.lock b/builddefs/docsgen/yarn.lock index 0b36eec07c7..eda99772c4c 100644 --- a/builddefs/docsgen/yarn.lock +++ b/builddefs/docsgen/yarn.lock @@ -766,10 +766,10 @@ tabbable@^6.2.0: resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== -vite@^5.2.9, vite@^5.4.12: - version "5.4.12" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.12.tgz#627d12ff06de3942557dfe8632fd712a12a072c7" - integrity sha512-KwUaKB27TvWwDJr1GjjWthLMATbGEbeWYZIbGZ5qFIsgPP3vWzLu4cVooqhm5/Z2SPDUMjyPVjTztm5tYKwQxA== +vite@^5.2.9, vite@^5.4.15: + version "5.4.15" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.15.tgz#2941547f10ebb4bf9b0fa0da863c06711eb7e5e5" + integrity sha512-6ANcZRivqL/4WtwPGTKNaosuNJr5tWiftOC7liM7G9+rMb8+oeJeyzymDu4rTN93seySBmbjSfsS3Vzr19KNtA== dependencies: esbuild "^0.21.3" postcss "^8.4.43" From 25fb4a498a4b6e8436e528edd502bda46fd2c464 Mon Sep 17 00:00:00 2001 From: Geoffrey Frogeye Date: Fri, 28 Mar 2025 10:19:07 +0100 Subject: [PATCH 302/365] Allow AnnePro2 to reboot (#24886) Without this, the QK_REBOOT key did nothing. --- keyboards/annepro2/annepro2.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/keyboards/annepro2/annepro2.c b/keyboards/annepro2/annepro2.c index f536690de3d..9e72dbf6fb0 100644 --- a/keyboards/annepro2/annepro2.c +++ b/keyboards/annepro2/annepro2.c @@ -48,6 +48,11 @@ ble_capslock_t ble_capslock = {._dummy = {0}, .caps_lock = false}; static uint8_t led_enabled = 1; #endif +void mcu_reset(void) { + __disable_irq(); + NVIC_SystemReset(); +} + void bootloader_jump(void) { // Send msg to shine to boot into IAP ap2_set_IAP(); From 5a6595357d110636dddc9a8f0455f5db55d4e2a7 Mon Sep 17 00:00:00 2001 From: lsh4711 <120231876+lsh4711@users.noreply.github.com> Date: Fri, 28 Mar 2025 19:03:59 +0900 Subject: [PATCH 303/365] Fix path typo related RP2040 (#25069) Fix path typo --- platforms/chibios/vendors/RP/RP2040.mk | 2 +- quantum/bits.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/platforms/chibios/vendors/RP/RP2040.mk b/platforms/chibios/vendors/RP/RP2040.mk index 94f023d72b7..27d1fa4472d 100644 --- a/platforms/chibios/vendors/RP/RP2040.mk +++ b/platforms/chibios/vendors/RP/RP2040.mk @@ -78,7 +78,7 @@ PICOSDKINTRINSICSSRC = $(PICOSDKROOT)/src/rp2_common/pico_divider/divider.S \ $(PICOSDKROOT)/src/rp2_common/pico_int64_ops/pico_int64_ops_aeabi.S PICOSDKINTRINSICSINC = $(PICOSDKROOT)/src/common/pico_base/include \ - $(PICOSDKROOT)/src/rp2_common/pico_platfrom/include \ + $(PICOSDKROOT)/src/rp2_common/pico_platform/include \ $(PICOSDKROOT)/src/rp2_common/hardware_divider/include # integer division intrinsics utilizing the RP2040 hardware divider diff --git a/quantum/bits.h b/quantum/bits.h index 2f3c3437623..41f11e7b9cd 100644 --- a/quantum/bits.h +++ b/quantum/bits.h @@ -4,7 +4,7 @@ #include -/* Remove these once we transitioned to C23 across all platfroms */ +/* Remove these once we transitioned to C23 across all platforms */ #define UINT32_WIDTH 32 #define UINT64_WIDTH 64 From 94a9099c3843a04dc0eb54f8009dff5b4422e430 Mon Sep 17 00:00:00 2001 From: Ben Green Date: Fri, 28 Mar 2025 13:38:24 +0000 Subject: [PATCH 304/365] Update onekey example for nucleo f446re (#25067) * use accessible pins for nucleo f446re onekey example * remove pin collision with matrix in keyboard.json * use accessible pins for LED * remove pin collision with matrix * Update readme.md to reflect pin changes --- keyboards/handwired/onekey/nucleo_f446re/config.h | 2 +- keyboards/handwired/onekey/nucleo_f446re/keyboard.json | 6 +++--- keyboards/handwired/onekey/nucleo_f446re/readme.md | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/keyboards/handwired/onekey/nucleo_f446re/config.h b/keyboards/handwired/onekey/nucleo_f446re/config.h index 4401623e85c..cebb6091170 100644 --- a/keyboards/handwired/onekey/nucleo_f446re/config.h +++ b/keyboards/handwired/onekey/nucleo_f446re/config.h @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#define ADC_PIN A0 +#define ADC_PIN A5 #define SOLENOID_PINS { B12, B13, B14, B15 } #define SOLENOID_PINS_ACTIVE_STATE { high, high, low } diff --git a/keyboards/handwired/onekey/nucleo_f446re/keyboard.json b/keyboards/handwired/onekey/nucleo_f446re/keyboard.json index 26de66e1986..7c51ca053b5 100644 --- a/keyboards/handwired/onekey/nucleo_f446re/keyboard.json +++ b/keyboards/handwired/onekey/nucleo_f446re/keyboard.json @@ -3,17 +3,17 @@ "processor": "STM32F446", "bootloader": "stm32-dfu", "matrix_pins": { - "cols": ["A2"], + "cols": ["A0"], "rows": ["A1"] }, "backlight": { "pin": "B8" }, "ws2812": { - "pin": "A0" + "pin": "A4" }, "apa102": { - "data_pin": "A0", + "data_pin": "A4", "clock_pin": "B13" } } diff --git a/keyboards/handwired/onekey/nucleo_f446re/readme.md b/keyboards/handwired/onekey/nucleo_f446re/readme.md index c7d13cb9738..b0645b65fe2 100644 --- a/keyboards/handwired/onekey/nucleo_f446re/readme.md +++ b/keyboards/handwired/onekey/nucleo_f446re/readme.md @@ -1,5 +1,5 @@ # STM32 Nucleo-L432 onekey -To trigger keypress, short together pins *A1* and *A2*. +To trigger keypress, short together pins *A0* and *A1*. Note that the pin numbering is relative to the MCU, so that A0 and A1 refer to PA0 and PA1 on the MCU (which are also labelled A0 and A1 on the board, but this isn't true for the other PAx pins). You'll also need to connect `VIN`, `GND`, USB `D+` to `PA12`/`D2`, and USB `D-` to `PA11`/`D10`. From d0cfb938ef58d6b8d2089f00f6160d2105791a13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=95=E3=82=A3=E3=83=AB=E3=82=BF=E3=83=BC=E3=83=9A?= =?UTF-8?q?=E3=83=BC=E3=83=91=E3=83=BC?= <76888457+filterpaper@users.noreply.github.com> Date: Sat, 29 Mar 2025 10:47:26 +0800 Subject: [PATCH 305/365] Module documentation typo correction (#25073) --- docs/features/community_modules.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/features/community_modules.md b/docs/features/community_modules.md index 3a1a82e7bc6..a28c5afaeb1 100644 --- a/docs/features/community_modules.md +++ b/docs/features/community_modules.md @@ -40,7 +40,7 @@ cd /path/to/your/external/userspace mkdir -p modules # Replace the following {user} and {repo} with the author's community module repository git submodule add https://github.com/{user}/{repo}.git modules/{user} -git submdule update --init --recursive +git submodule update --init --recursive ``` This will ensure the copy of the module is made in your userspace. From 49d13595f64577bc50c08b460538d35055befdf8 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sun, 30 Mar 2025 00:19:38 +1100 Subject: [PATCH 306/365] Fix lockups on AVR with `qmk/hello_world` module (#25074) Fix lockups on AVR. --- modules/qmk/hello_world/hello_world.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/qmk/hello_world/hello_world.c b/modules/qmk/hello_world/hello_world.c index d9dd3661007..dcabfc60ea2 100644 --- a/modules/qmk/hello_world/hello_world.c +++ b/modules/qmk/hello_world/hello_world.c @@ -7,7 +7,7 @@ ASSERT_COMMUNITY_MODULES_MIN_API_VERSION(1, 0, 0); uint32_t delayed_hello_world(uint32_t trigger_time, void *cb_arg) { - printf("Hello, world! I'm a QMK based keyboard! The keymap array size is %d bytes.\n", (int)hello_world_introspection().total_size); + dprintf("Hello, world! I'm a QMK based keyboard! The keymap array size is %d bytes.\n", (int)hello_world_introspection().total_size); return 0; } From bc42a7ea8980c1d135ac6f2d2ec194e3e7355bfe Mon Sep 17 00:00:00 2001 From: henrikosorensen Date: Sun, 30 Mar 2025 01:17:38 +0100 Subject: [PATCH 307/365] At101ish (#25072) * Dell AT101 replacement pcb support * Update keyboards/at101ish/readme.md Co-Authored-By: fauxpark * remove empty src clause in makefile * feature: Update at101ish to qmk v0.28 * feature: Add osdetecting keymap variant. * refactor: Move at101ish keyboard to handwired folder. * fix: Adjust at101ish readme- * fix: review changes. * chore: Remove unneeded feature. --------- Co-authored-by: fauxpark --- keyboards/handwired/at101ish/keyboard.json | 363 ++++++++++++++++++ .../at101ish/keymaps/default/keymap.c | 27 ++ .../at101ish/keymaps/osdetect/keymap.c | 59 +++ .../at101ish/keymaps/osdetect/rules.mk | 1 + keyboards/handwired/at101ish/readme.md | 25 ++ 5 files changed, 475 insertions(+) create mode 100644 keyboards/handwired/at101ish/keyboard.json create mode 100644 keyboards/handwired/at101ish/keymaps/default/keymap.c create mode 100644 keyboards/handwired/at101ish/keymaps/osdetect/keymap.c create mode 100644 keyboards/handwired/at101ish/keymaps/osdetect/rules.mk create mode 100644 keyboards/handwired/at101ish/readme.md diff --git a/keyboards/handwired/at101ish/keyboard.json b/keyboards/handwired/at101ish/keyboard.json new file mode 100644 index 00000000000..bd629f16058 --- /dev/null +++ b/keyboards/handwired/at101ish/keyboard.json @@ -0,0 +1,363 @@ +{ + "manufacturer": "Henrik O. S\u00f8rensen", + "keyboard_name": "AT101ish", + "maintainer": "qmk", + "bootloader": "halfkay", + "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "command": true, + "console": true, + "extrakey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "D6", + "num_lock": "D4", + "scroll_lock": "E6" + }, + "matrix_pins": { + "cols": ["D7", "B4", "B5", "B6", "F7", "F6", "F5", "F4", "F1", "F0"], + "rows": ["B1", "B0", "B2", "D5", "B3", "C7", "B7", "C6", "D0", "D3", "D1", "D2"] + }, + "processor": "atmega32u4", + "tags": ["at101", "at102", "bigfoot"], + "url": "https://github.com/henrikosorensen/keyboard_pcbs/tree/master/at101_pcb", + "usb": { + "device_version": "1.1.0", + "pid": "0x0101", + "vid": "0xFEED" + }, + "community_layouts": ["fullsize_ansi", "fullsize_iso"], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + {"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0}, + {"label": "F9", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "F10", "matrix": [1, 0], "x": 12, "y": 0}, + {"label": "F11", "matrix": [1, 1], "x": 13, "y": 0}, + {"label": "F12", "matrix": [1, 2], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [1, 3], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [1, 4], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [1, 5], "x": 17.25, "y": 0}, + {"label": "\u00ac", "matrix": [2, 0], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [2, 1], "x": 1, "y": 1.5}, + {"label": "\"", "matrix": [2, 2], "x": 2, "y": 1.5}, + {"label": "\u00a3", "matrix": [2, 3], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [2, 4], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [2, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [2, 6], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [2, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [2, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [2, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [3, 0], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [3, 1], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [3, 2], "x": 12, "y": 1.5}, + {"label": "Backspace", "matrix": [3, 3], "x": 13, "y": 1.5, "w": 2}, + {"label": "Insert", "matrix": [3, 4], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [3, 5], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [3, 6], "x": 17.25, "y": 1.5}, + {"label": "Num Lock", "matrix": [3, 7], "x": 18.5, "y": 1.5}, + {"label": "/", "matrix": [3, 8], "x": 19.5, "y": 1.5}, + {"label": "*", "matrix": [3, 9], "x": 20.5, "y": 1.5}, + {"label": "-", "matrix": [1, 9], "x": 21.5, "y": 1.5}, + {"label": "Tab", "matrix": [4, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [4, 1], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [4, 2], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [4, 3], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [4, 4], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [4, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [4, 6], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [4, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [4, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [4, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [5, 0], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [5, 1], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [5, 2], "x": 12.5, "y": 2.5}, + {"label": "|", "matrix": [5, 3], "x": 13.5, "y": 2.5, "w": 1.5}, + {"label": "Delete", "matrix": [5, 4], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [5, 5], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [5, 6], "x": 17.25, "y": 2.5}, + {"label": "7", "matrix": [5, 7], "x": 18.5, "y": 2.5}, + {"label": "8", "matrix": [5, 8], "x": 19.5, "y": 2.5}, + {"label": "9", "matrix": [5, 9], "x": 20.5, "y": 2.5}, + {"label": "+", "matrix": [1, 8], "x": 21.5, "y": 2.5}, + {"label": "Caps Lock", "matrix": [6, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [6, 1], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [6, 2], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [6, 3], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [6, 4], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [6, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [6, 6], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [6, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [6, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [6, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [7, 0], "x": 10.75, "y": 3.5}, + {"label": "@", "matrix": [7, 1], "x": 11.75, "y": 3.5}, + {"label": "~", "matrix": [7, 2], "x": 12.75, "y": 3.5}, + {"label": "Enter", "matrix": [7, 3], "x": 13.75, "y": 3.5, "w": 1.25}, + {"label": "4", "matrix": [7, 6], "x": 18.5, "y": 3.5}, + {"label": "5", "matrix": [7, 7], "x": 19.5, "y": 3.5}, + {"label": "6", "matrix": [7, 8], "x": 20.5, "y": 3.5}, + {"label": "=", "matrix": [7, 9], "x": 21.5, "y": 3.5}, + {"label": "Shift", "matrix": [8, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"label": "|", "matrix": [8, 1], "x": 1.25, "y": 4.5}, + {"label": "Z", "matrix": [8, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [8, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [8, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [8, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [8, 6], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [8, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [8, 8], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [8, 9], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [9, 0], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [9, 1], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [9, 2], "x": 12.25, "y": 4.5, "w": 1.75}, + {"label": "|", "matrix": [9, 3], "x": 14, "y": 4.5}, + {"label": "\u2191", "matrix": [9, 4], "x": 16.25, "y": 4.5}, + {"label": "1", "matrix": [9, 6], "x": 18.5, "y": 4.5}, + {"label": "2", "matrix": [9, 7], "x": 19.5, "y": 4.5}, + {"label": "3", "matrix": [9, 8], "x": 20.5, "y": 4.5}, + {"label": "Enter", "matrix": [9, 9], "x": 21.5, "y": 4.5, "h": 2}, + {"label": "Ctrl", "matrix": [10, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"label": "Win", "matrix": [10, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"label": "Alt", "matrix": [10, 2], "x": 2.5, "y": 5.5, "w": 1.25}, + {"label": " ", "matrix": [10, 7], "x": 3.75, "y": 5.5, "w": 6.25}, + {"label": "AltGr ", "matrix": [11, 0], "x": 10, "y": 5.5, "w": 1.25}, + {"label": "Win", "matrix": [11, 1], "x": 11.25, "y": 5.5, "w": 1.25}, + {"label": "Menu", "matrix": [11, 2], "x": 12.5, "y": 5.5, "w": 1.25}, + {"label": "Ctrl", "matrix": [11, 3], "x": 13.75, "y": 5.5, "w": 1.25}, + {"label": "\u2190", "matrix": [11, 4], "x": 15.25, "y": 5.5}, + {"label": "\u2193", "matrix": [11, 5], "x": 16.25, "y": 5.5}, + {"label": "\u2192", "matrix": [11, 6], "x": 17.25, "y": 5.5}, + {"label": "0", "matrix": [11, 7], "x": 18.5, "y": 5.5, "w": 2}, + {"label": ".", "matrix": [11, 8], "x": 20.5, "y": 5.5} + ] + }, + "LAYOUT_fullsize_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [0, 2], "x": 3, "y": 0}, + {"matrix": [0, 3], "x": 4, "y": 0}, + {"matrix": [0, 4], "x": 5, "y": 0}, + {"matrix": [0, 5], "x": 6.5, "y": 0}, + {"matrix": [0, 6], "x": 7.5, "y": 0}, + {"matrix": [0, 7], "x": 8.5, "y": 0}, + {"matrix": [0, 8], "x": 9.5, "y": 0}, + {"matrix": [0, 9], "x": 11, "y": 0}, + {"matrix": [1, 0], "x": 12, "y": 0}, + {"matrix": [1, 1], "x": 13, "y": 0}, + {"matrix": [1, 2], "x": 14, "y": 0}, + {"matrix": [1, 3], "x": 15.25, "y": 0}, + {"matrix": [1, 4], "x": 16.25, "y": 0}, + {"matrix": [1, 5], "x": 17.25, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 1.5}, + {"matrix": [2, 1], "x": 1, "y": 1.5}, + {"matrix": [2, 2], "x": 2, "y": 1.5}, + {"matrix": [2, 3], "x": 3, "y": 1.5}, + {"matrix": [2, 4], "x": 4, "y": 1.5}, + {"matrix": [2, 5], "x": 5, "y": 1.5}, + {"matrix": [2, 6], "x": 6, "y": 1.5}, + {"matrix": [2, 7], "x": 7, "y": 1.5}, + {"matrix": [2, 8], "x": 8, "y": 1.5}, + {"matrix": [2, 9], "x": 9, "y": 1.5}, + {"matrix": [3, 0], "x": 10, "y": 1.5}, + {"matrix": [3, 1], "x": 11, "y": 1.5}, + {"matrix": [3, 2], "x": 12, "y": 1.5}, + {"matrix": [3, 3], "x": 13, "y": 1.5, "w": 2}, + {"matrix": [3, 4], "x": 15.25, "y": 1.5}, + {"matrix": [3, 5], "x": 16.25, "y": 1.5}, + {"matrix": [3, 6], "x": 17.25, "y": 1.5}, + {"matrix": [3, 7], "x": 18.5, "y": 1.5}, + {"matrix": [3, 8], "x": 19.5, "y": 1.5}, + {"matrix": [3, 9], "x": 20.5, "y": 1.5}, + {"matrix": [1, 9], "x": 21.5, "y": 1.5}, + {"matrix": [4, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 2.5}, + {"matrix": [4, 2], "x": 2.5, "y": 2.5}, + {"matrix": [4, 3], "x": 3.5, "y": 2.5}, + {"matrix": [4, 4], "x": 4.5, "y": 2.5}, + {"matrix": [4, 5], "x": 5.5, "y": 2.5}, + {"matrix": [4, 6], "x": 6.5, "y": 2.5}, + {"matrix": [4, 7], "x": 7.5, "y": 2.5}, + {"matrix": [4, 8], "x": 8.5, "y": 2.5}, + {"matrix": [4, 9], "x": 9.5, "y": 2.5}, + {"matrix": [5, 0], "x": 10.5, "y": 2.5}, + {"matrix": [5, 1], "x": 11.5, "y": 2.5}, + {"matrix": [5, 2], "x": 12.5, "y": 2.5}, + {"matrix": [5, 3], "x": 13.5, "y": 2.5, "w": 1.5}, + {"matrix": [5, 4], "x": 15.25, "y": 2.5}, + {"matrix": [5, 5], "x": 16.25, "y": 2.5}, + {"matrix": [5, 6], "x": 17.25, "y": 2.5}, + {"matrix": [5, 7], "x": 18.5, "y": 2.5}, + {"matrix": [5, 8], "x": 19.5, "y": 2.5}, + {"matrix": [5, 9], "x": 20.5, "y": 2.5}, + {"matrix": [1, 8], "x": 21.5, "y": 2.5, "h": 2}, + {"matrix": [6, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [6, 1], "x": 1.75, "y": 3.5}, + {"matrix": [6, 2], "x": 2.75, "y": 3.5}, + {"matrix": [6, 3], "x": 3.75, "y": 3.5}, + {"matrix": [6, 4], "x": 4.75, "y": 3.5}, + {"matrix": [6, 5], "x": 5.75, "y": 3.5}, + {"matrix": [6, 6], "x": 6.75, "y": 3.5}, + {"matrix": [6, 7], "x": 7.75, "y": 3.5}, + {"matrix": [6, 8], "x": 8.75, "y": 3.5}, + {"matrix": [6, 9], "x": 9.75, "y": 3.5}, + {"matrix": [7, 0], "x": 10.75, "y": 3.5}, + {"matrix": [7, 1], "x": 11.75, "y": 3.5}, + {"matrix": [7, 3], "x": 12.75, "y": 3.5, "w": 2.25}, + {"matrix": [7, 6], "x": 18.5, "y": 3.5}, + {"matrix": [7, 7], "x": 19.5, "y": 3.5}, + {"matrix": [7, 8], "x": 20.5, "y": 3.5}, + {"matrix": [8, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [8, 2], "x": 2.25, "y": 4.5}, + {"matrix": [8, 3], "x": 3.25, "y": 4.5}, + {"matrix": [8, 4], "x": 4.25, "y": 4.5}, + {"matrix": [8, 5], "x": 5.25, "y": 4.5}, + {"matrix": [8, 6], "x": 6.25, "y": 4.5}, + {"matrix": [8, 7], "x": 7.25, "y": 4.5}, + {"matrix": [8, 8], "x": 8.25, "y": 4.5}, + {"matrix": [8, 9], "x": 9.25, "y": 4.5}, + {"matrix": [9, 0], "x": 10.25, "y": 4.5}, + {"matrix": [9, 1], "x": 11.25, "y": 4.5}, + {"matrix": [9, 2], "x": 12.25, "y": 4.5, "w": 2.75}, + {"matrix": [9, 4], "x": 16.25, "y": 4.5}, + {"matrix": [9, 6], "x": 18.5, "y": 4.5}, + {"matrix": [9, 7], "x": 19.5, "y": 4.5}, + {"matrix": [9, 8], "x": 20.5, "y": 4.5}, + {"matrix": [9, 9], "x": 21.5, "y": 4.5, "h": 2}, + {"matrix": [10, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [10, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"matrix": [10, 2], "x": 2.5, "y": 5.5, "w": 1.25}, + {"matrix": [10, 7], "x": 3.75, "y": 5.5, "w": 6.25}, + {"matrix": [11, 0], "x": 10, "y": 5.5, "w": 1.25}, + {"matrix": [11, 1], "x": 11.25, "y": 5.5, "w": 1.25}, + {"matrix": [11, 2], "x": 12.5, "y": 5.5, "w": 1.25}, + {"matrix": [11, 3], "x": 13.75, "y": 5.5, "w": 1.25}, + {"matrix": [11, 4], "x": 15.25, "y": 5.5}, + {"matrix": [11, 5], "x": 16.25, "y": 5.5}, + {"matrix": [11, 6], "x": 17.25, "y": 5.5}, + {"matrix": [11, 7], "x": 18.5, "y": 5.5, "w": 2}, + {"matrix": [11, 8], "x": 20.5, "y": 5.5} + ] + }, + "LAYOUT_fullsize_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [0, 2], "x": 3, "y": 0}, + {"matrix": [0, 3], "x": 4, "y": 0}, + {"matrix": [0, 4], "x": 5, "y": 0}, + {"matrix": [0, 5], "x": 6.5, "y": 0}, + {"matrix": [0, 6], "x": 7.5, "y": 0}, + {"matrix": [0, 7], "x": 8.5, "y": 0}, + {"matrix": [0, 8], "x": 9.5, "y": 0}, + {"matrix": [0, 9], "x": 11, "y": 0}, + {"matrix": [1, 0], "x": 12, "y": 0}, + {"matrix": [1, 1], "x": 13, "y": 0}, + {"matrix": [1, 2], "x": 14, "y": 0}, + {"matrix": [1, 3], "x": 15.25, "y": 0}, + {"matrix": [1, 4], "x": 16.25, "y": 0}, + {"matrix": [1, 5], "x": 17.25, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 1.5}, + {"matrix": [2, 1], "x": 1, "y": 1.5}, + {"matrix": [2, 2], "x": 2, "y": 1.5}, + {"matrix": [2, 3], "x": 3, "y": 1.5}, + {"matrix": [2, 4], "x": 4, "y": 1.5}, + {"matrix": [2, 5], "x": 5, "y": 1.5}, + {"matrix": [2, 6], "x": 6, "y": 1.5}, + {"matrix": [2, 7], "x": 7, "y": 1.5}, + {"matrix": [2, 8], "x": 8, "y": 1.5}, + {"matrix": [2, 9], "x": 9, "y": 1.5}, + {"matrix": [3, 0], "x": 10, "y": 1.5}, + {"matrix": [3, 1], "x": 11, "y": 1.5}, + {"matrix": [3, 2], "x": 12, "y": 1.5}, + {"matrix": [3, 3], "x": 13, "y": 1.5, "w": 2}, + {"matrix": [3, 4], "x": 15.25, "y": 1.5}, + {"matrix": [3, 5], "x": 16.25, "y": 1.5}, + {"matrix": [3, 6], "x": 17.25, "y": 1.5}, + {"matrix": [3, 7], "x": 18.5, "y": 1.5}, + {"matrix": [3, 8], "x": 19.5, "y": 1.5}, + {"matrix": [3, 9], "x": 20.5, "y": 1.5}, + {"matrix": [1, 9], "x": 21.5, "y": 1.5}, + {"matrix": [4, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 2.5}, + {"matrix": [4, 2], "x": 2.5, "y": 2.5}, + {"matrix": [4, 3], "x": 3.5, "y": 2.5}, + {"matrix": [4, 4], "x": 4.5, "y": 2.5}, + {"matrix": [4, 5], "x": 5.5, "y": 2.5}, + {"matrix": [4, 6], "x": 6.5, "y": 2.5}, + {"matrix": [4, 7], "x": 7.5, "y": 2.5}, + {"matrix": [4, 8], "x": 8.5, "y": 2.5}, + {"matrix": [4, 9], "x": 9.5, "y": 2.5}, + {"matrix": [5, 0], "x": 10.5, "y": 2.5}, + {"matrix": [5, 1], "x": 11.5, "y": 2.5}, + {"matrix": [5, 2], "x": 12.5, "y": 2.5}, + {"matrix": [5, 4], "x": 15.25, "y": 2.5}, + {"matrix": [5, 5], "x": 16.25, "y": 2.5}, + {"matrix": [5, 6], "x": 17.25, "y": 2.5}, + {"matrix": [5, 7], "x": 18.5, "y": 2.5}, + {"matrix": [5, 8], "x": 19.5, "y": 2.5}, + {"matrix": [5, 9], "x": 20.5, "y": 2.5}, + {"matrix": [1, 8], "x": 21.5, "y": 2.5, "h": 2}, + {"matrix": [6, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [6, 1], "x": 1.75, "y": 3.5}, + {"matrix": [6, 2], "x": 2.75, "y": 3.5}, + {"matrix": [6, 3], "x": 3.75, "y": 3.5}, + {"matrix": [6, 4], "x": 4.75, "y": 3.5}, + {"matrix": [6, 5], "x": 5.75, "y": 3.5}, + {"matrix": [6, 6], "x": 6.75, "y": 3.5}, + {"matrix": [6, 7], "x": 7.75, "y": 3.5}, + {"matrix": [6, 8], "x": 8.75, "y": 3.5}, + {"matrix": [6, 9], "x": 9.75, "y": 3.5}, + {"matrix": [7, 0], "x": 10.75, "y": 3.5}, + {"matrix": [7, 1], "x": 11.75, "y": 3.5}, + {"matrix": [7, 2], "x": 12.75, "y": 3.5}, + {"matrix": [7, 3], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + {"matrix": [7, 6], "x": 18.5, "y": 3.5}, + {"matrix": [7, 7], "x": 19.5, "y": 3.5}, + {"matrix": [7, 8], "x": 20.5, "y": 3.5}, + {"matrix": [8, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"matrix": [8, 1], "x": 1.25, "y": 4.5}, + {"matrix": [8, 2], "x": 2.25, "y": 4.5}, + {"matrix": [8, 3], "x": 3.25, "y": 4.5}, + {"matrix": [8, 4], "x": 4.25, "y": 4.5}, + {"matrix": [8, 5], "x": 5.25, "y": 4.5}, + {"matrix": [8, 6], "x": 6.25, "y": 4.5}, + {"matrix": [8, 7], "x": 7.25, "y": 4.5}, + {"matrix": [8, 8], "x": 8.25, "y": 4.5}, + {"matrix": [8, 9], "x": 9.25, "y": 4.5}, + {"matrix": [9, 0], "x": 10.25, "y": 4.5}, + {"matrix": [9, 1], "x": 11.25, "y": 4.5}, + {"matrix": [9, 2], "x": 12.25, "y": 4.5, "w": 2.75}, + {"matrix": [9, 4], "x": 16.25, "y": 4.5}, + {"matrix": [9, 6], "x": 18.5, "y": 4.5}, + {"matrix": [9, 7], "x": 19.5, "y": 4.5}, + {"matrix": [9, 8], "x": 20.5, "y": 4.5}, + {"matrix": [9, 9], "x": 21.5, "y": 4.5, "h": 2}, + {"matrix": [10, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [10, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"matrix": [10, 2], "x": 2.5, "y": 5.5, "w": 1.25}, + {"matrix": [10, 7], "x": 3.75, "y": 5.5, "w": 6.25}, + {"matrix": [11, 0], "x": 10, "y": 5.5, "w": 1.25}, + {"matrix": [11, 1], "x": 11.25, "y": 5.5, "w": 1.25}, + {"matrix": [11, 2], "x": 12.5, "y": 5.5, "w": 1.25}, + {"matrix": [11, 3], "x": 13.75, "y": 5.5, "w": 1.25}, + {"matrix": [11, 4], "x": 15.25, "y": 5.5}, + {"matrix": [11, 5], "x": 16.25, "y": 5.5}, + {"matrix": [11, 6], "x": 17.25, "y": 5.5}, + {"matrix": [11, 7], "x": 18.5, "y": 5.5, "w": 2}, + {"matrix": [11, 8], "x": 20.5, "y": 5.5} + ] + } + } +} diff --git a/keyboards/handwired/at101ish/keymaps/default/keymap.c b/keyboards/handwired/at101ish/keymaps/default/keymap.c new file mode 100644 index 00000000000..2311a244371 --- /dev/null +++ b/keyboards/handwired/at101ish/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2025 Henrik Otte Sørensen (@henrikottesorensen) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PEQL, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_BSLS, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT) +}; diff --git a/keyboards/handwired/at101ish/keymaps/osdetect/keymap.c b/keyboards/handwired/at101ish/keymaps/osdetect/keymap.c new file mode 100644 index 00000000000..89b748a61b7 --- /dev/null +++ b/keyboards/handwired/at101ish/keymaps/osdetect/keymap.c @@ -0,0 +1,59 @@ +/* Copyright 2025 Henrik Otte Sørensen (@henrikottesorensen) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum LAYER { + _PC = 0, + _MAC, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_PC] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PEQL, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_BSLS, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, KC_RGUI, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT), + [_MAC] = LAYOUT_all( + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_WSCH, KC_LPAD, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, + KC_NUBS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PEQL, + KC_LSFT, KC_GRV, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_BSLS, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPACE, KC_RGUI, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT), + [_FN] = LAYOUT_all( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, DF(_PC), _______, _______, _______, _______, KC_MUTE, KC_VOLD, _______, _______, _______, _______, + _______, _______, _______, DB_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, QK_BOOT, _______, DF(_MAC),_______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_APP, KC_MPRV, KC_MSTP, KC_MNXT, _______, _______) +}; + +bool process_detected_host_os_user(os_variant_t detected_os) { + /* If Apple, swap to macOS layer. */ + if (detected_os == OS_MACOS || detected_os == OS_IOS) { + set_single_default_layer(_MAC); + } + else /* Else use PC layer */ { + set_single_default_layer(_PC); + } + + return true; +} diff --git a/keyboards/handwired/at101ish/keymaps/osdetect/rules.mk b/keyboards/handwired/at101ish/keymaps/osdetect/rules.mk new file mode 100644 index 00000000000..64ac3dcb166 --- /dev/null +++ b/keyboards/handwired/at101ish/keymaps/osdetect/rules.mk @@ -0,0 +1 @@ +OS_DETECTION_ENABLE = yes diff --git a/keyboards/handwired/at101ish/readme.md b/keyboards/handwired/at101ish/readme.md new file mode 100644 index 00000000000..2bdfbb9367d --- /dev/null +++ b/keyboards/handwired/at101ish/readme.md @@ -0,0 +1,25 @@ +# AT101(-ish) + +A replacement PCB for Dell AT101 family. (In theory) supports AT101, AT101W, AT102, AT102W, maybe other Bigfoot platform boards. + +Keyboard Maintainer: QMK Community and Henrik O. Sørensen +Hardware Supported: AT101(ish) PCB +Hardware Availability: https://github.com/henrikosorensen/keyboard_pcbs/tree/master/at101_pcb + +Make example for this keyboard (after setting up your build environment): + + make handwired/at101ish:default + +Flashing example for this keyboard: + + make handwired/at101ish:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the programming button on the teensy 2.0 PCB. + From da166d4d8b1eb5cf984a08effdf20faaca2b3234 Mon Sep 17 00:00:00 2001 From: Pascal Getreuer <50221757+getreuer@users.noreply.github.com> Date: Mon, 31 Mar 2025 22:06:42 -0700 Subject: [PATCH 308/365] Add "license" field to Community Module JSON schema. (#25085) Add "license" field to community module schema. --- data/schemas/community_module.jsonschema | 1 + docs/features/community_modules.md | 5 +++++ lib/python/qmk/json_encoders.py | 8 +++++--- modules/qmk/hello_world/qmk_module.json | 1 + modules/qmk/super_alt_tab/qmk_module.json | 1 + 5 files changed, 13 insertions(+), 3 deletions(-) diff --git a/data/schemas/community_module.jsonschema b/data/schemas/community_module.jsonschema index a3474476dff..a237e210ce6 100644 --- a/data/schemas/community_module.jsonschema +++ b/data/schemas/community_module.jsonschema @@ -7,6 +7,7 @@ "properties": { "module_name": {"$ref": "qmk.definitions.v1#/text_identifier"}, "maintainer": {"$ref": "qmk.definitions.v1#/text_identifier"}, + "license": {"type": "string"}, "url": { "type": "string", "format": "uri" diff --git a/docs/features/community_modules.md b/docs/features/community_modules.md index a28c5afaeb1..52526c9fe82 100644 --- a/docs/features/community_modules.md +++ b/docs/features/community_modules.md @@ -72,6 +72,7 @@ A Community Module is denoted by a `qmk_module.json` file such as the following: { "module_name": "Hello World", "maintainer": "QMK Maintainers", + "license": "GPL-2.0-or-later", "features": { "deferred_exec": true }, @@ -86,6 +87,10 @@ A Community Module is denoted by a `qmk_module.json` file such as the following: At minimum, the module must provide the `module_name` and `maintainer` fields. +The `license` field is encouraged to indicate the terms for using and sharing the module. It is recommended to use a [SPDX license identifier](https://spdx.org/licenses/) like "`Apache-2.0`" or "`GPL-2.0-or-later`" if possible. + +The `url` field may specify a URL to more information about the module. + The use of `features` matches the definition normally provided within `keyboard.json` and `info.json`, allowing a module to signal to the build system that it has its own dependencies. In the example above, it enables the _deferred executor_ feature whenever the above module is used in a build. The `keycodes` array allows a module to provide new keycodes (as well as corresponding aliases) to a keymap. diff --git a/lib/python/qmk/json_encoders.py b/lib/python/qmk/json_encoders.py index e83a381d520..e8bcf48996e 100755 --- a/lib/python/qmk/json_encoders.py +++ b/lib/python/qmk/json_encoders.py @@ -250,12 +250,14 @@ class CommunityModuleJSONEncoder(QMKJSONEncoder): return '00module_name' if key == 'maintainer': return '01maintainer' + if key == 'license': + return '02license' if key == 'url': - return '02url' + return '03url' if key == 'features': - return '03features' + return '04features' if key == 'keycodes': - return '04keycodes' + return '05keycodes' elif self.indentation_level == 3: # keycodes if key == 'key': return '00key' diff --git a/modules/qmk/hello_world/qmk_module.json b/modules/qmk/hello_world/qmk_module.json index fd855a6e237..bbd00f3fcc3 100644 --- a/modules/qmk/hello_world/qmk_module.json +++ b/modules/qmk/hello_world/qmk_module.json @@ -1,6 +1,7 @@ { "module_name": "Hello World", "maintainer": "QMK Maintainers", + "license": "GPL-2.0-or-later", "features": { "console": true, "deferred_exec": true diff --git a/modules/qmk/super_alt_tab/qmk_module.json b/modules/qmk/super_alt_tab/qmk_module.json index 002f7fb69e3..142613a23e1 100644 --- a/modules/qmk/super_alt_tab/qmk_module.json +++ b/modules/qmk/super_alt_tab/qmk_module.json @@ -1,6 +1,7 @@ { "module_name": "Super Alt Tab", "maintainer": "QMK Maintainers", + "license": "GPL-2.0-or-later", "keycodes": [ { "key": "COMMUNITY_MODULE_SUPER_ALT_TAB", From 0f1dcc0592cddf5099b04f864fcbf7c73e7a9d80 Mon Sep 17 00:00:00 2001 From: Ivan Gromov <38141348+key10iq@users.noreply.github.com> Date: Thu, 3 Apr 2025 22:51:25 +0400 Subject: [PATCH 309/365] Add kt60HS-T v2 PCB (#25080) * Add kt60HS-Tv2 * Update keyboards/keyten/kt60hs_t/readme.md Co-authored-by: Sergey Vlasov * Update keyboards/keyten/kt60hs_t/v1/readme.md Co-authored-by: Sergey Vlasov * Update keyboards/keyten/kt60hs_t/v2/keyboard.json Co-authored-by: Sergey Vlasov * Update keyboards/keyten/kt60hs_t/v2/readme.md Co-authored-by: Sergey Vlasov * Update keyboards/keyten/kt60hs_t/info.json Co-authored-by: Sergey Vlasov * Change of structure * Moving the keyboard * Update data/mappings/keyboard_aliases.hjson Co-authored-by: Sergey Vlasov * Update keyboards/keyten/kt60hs_t/v1/keyboard.json Co-authored-by: Duncan Sutherland * Update keyboards/keyten/kt60hs_t/v2/keyboard.json Co-authored-by: Duncan Sutherland --------- Co-authored-by: Sergey Vlasov Co-authored-by: Duncan Sutherland --- data/mappings/keyboard_aliases.hjson | 3 + keyboards/keyten/kt60hs_t/info.json | 14 + keyboards/keyten/kt60hs_t/readme.md | 27 +- .../keyten/kt60hs_t/{ => v1}/keyboard.json | 82 ++++- keyboards/keyten/kt60hs_t/v1/readme.md | 29 ++ keyboards/keyten/kt60hs_t/v2/keyboard.json | 282 ++++++++++++++++++ keyboards/keyten/kt60hs_t/v2/readme.md | 29 ++ 7 files changed, 431 insertions(+), 35 deletions(-) create mode 100644 keyboards/keyten/kt60hs_t/info.json rename keyboards/keyten/kt60hs_t/{ => v1}/keyboard.json (75%) create mode 100644 keyboards/keyten/kt60hs_t/v1/readme.md create mode 100644 keyboards/keyten/kt60hs_t/v2/keyboard.json create mode 100644 keyboards/keyten/kt60hs_t/v2/readme.md diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index c8d9bff052b..4d8be703c34 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -347,6 +347,9 @@ "keycapsss/plaid_pad": { "target": "keycapsss/plaid_pad/rev1" }, + "keyten/kt60hs_t": { + "target": "keyten/kt60hs_t/v1" + }, "kira75": { "target": "kira/kira75" }, diff --git a/keyboards/keyten/kt60hs_t/info.json b/keyboards/keyten/kt60hs_t/info.json new file mode 100644 index 00000000000..97b4f7d2224 --- /dev/null +++ b/keyboards/keyten/kt60hs_t/info.json @@ -0,0 +1,14 @@ +{ + "manufacturer": "keyten", + "keyboard_name": "kt60HS-T", + "maintainer": "key10iq", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "usb": { + "vid": "0xEB69" + } +} diff --git a/keyboards/keyten/kt60hs_t/readme.md b/keyboards/keyten/kt60hs_t/readme.md index 75ccbc3b69f..eb02f6bb8f7 100644 --- a/keyboards/keyten/kt60hs_t/readme.md +++ b/keyboards/keyten/kt60hs_t/readme.md @@ -2,30 +2,15 @@ 60% MX Hot-Swap Tsangan PCB -![kt60HS-T image](https://i.imgur.com/Iqrf6tHh.jpg) - -* Keyboard Maintainer: [keyten](https://github.com/key10iq) -* Hardware Supported: keyten kt60HS-T -* Hardware Availability: private GB +![kt60HS-T image](https://i.imgur.com/vM32aoX.jpeg) Supports: 1. Split Backspace 2. Stepped Caps Lock -Make example for this keyboard (after setting up your build environment): +There are two versions of the PCB available. - make keyten/kt60hs_t:default - -Flashing example for this keyboard: - - make keyten/kt60hs_t:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -## Bootloader - -Enter the bootloader in 3 ways: - -* Bootmagic reset: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* Keycode in layout: Press the key mapped to `QK_BOOT` if it is available -* Physical reset button: Hold the button on the back of the PCB +|Version| Features | +|-------|-------------------------------------------| +|v1 |Blue/Purple PCB / ARM STM32F401 controller | +|v2 |Purple PCB / ARM STM32F072 controller | diff --git a/keyboards/keyten/kt60hs_t/keyboard.json b/keyboards/keyten/kt60hs_t/v1/keyboard.json similarity index 75% rename from keyboards/keyten/kt60hs_t/keyboard.json rename to keyboards/keyten/kt60hs_t/v1/keyboard.json index 63a755d6989..b5b90304b25 100644 --- a/keyboards/keyten/kt60hs_t/keyboard.json +++ b/keyboards/keyten/kt60hs_t/v1/keyboard.json @@ -1,17 +1,6 @@ { - "manufacturer": "keyten", - "keyboard_name": "kt60HS-T", - "maintainer": "key10iq", "bootloader": "stm32-dfu", "diode_direction": "COL2ROW", - "features": { - "bootmagic": true, - "command": false, - "console": false, - "extrakey": true, - "mousekey": true, - "nkro": true - }, "matrix_pins": { "cols": ["A3", "A4", "A5", "A6", "A7", "B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15", "A14"], "rows": ["B15", "B14", "B12", "B13", "B0"] @@ -19,8 +8,7 @@ "processor": "STM32F401", "usb": { "device_version": "0.0.1", - "pid": "0x6004", - "vid": "0xEB69" + "pid": "0x6004" }, "community_layouts": [ "60_ansi_wkl_split_bs_rshift", @@ -28,7 +16,8 @@ "60_ansi_tsangan_split_bs_rshift" ], "layout_aliases": { - "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift", + "LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift" }, "layouts": { "LAYOUT_60_ansi_wkl_split_bs_rshift": { @@ -224,6 +213,71 @@ {"matrix": [4, 11], "x": 12.5, "y": 4}, {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] + }, + "LAYOUT_60_ansi_tsangan_split_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [2, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] } } } diff --git a/keyboards/keyten/kt60hs_t/v1/readme.md b/keyboards/keyten/kt60hs_t/v1/readme.md new file mode 100644 index 00000000000..2f31dbf4bf0 --- /dev/null +++ b/keyboards/keyten/kt60hs_t/v1/readme.md @@ -0,0 +1,29 @@ +# keyten kt60HS-T V1 + +60% MX Hot-Swap Tsangan PCB + +![kt60HS-T image](https://i.imgur.com/tOej7ND.jpeg) + +**Note: This firmware only supports the PCB version with STM32F401 controller** + +* Keyboard Maintainer: [keyten](https://github.com/key10iq) +* Hardware Supported: keyten kt60HS-T +* Hardware Availability: private GB + +Make example for this keyboard (after setting up your build environment): + + make keyten/kt60hs_t/v1:default + +Flashing example for this keyboard: + + make keyten/kt60hs_t/v1:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* Bootmagic reset: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* Keycode in layout: Press the key mapped to `QK_BOOT` if it is available +* Physical reset button: Hold the button on the back of the PCB diff --git a/keyboards/keyten/kt60hs_t/v2/keyboard.json b/keyboards/keyten/kt60hs_t/v2/keyboard.json new file mode 100644 index 00000000000..728bd90fe8a --- /dev/null +++ b/keyboards/keyten/kt60hs_t/v2/keyboard.json @@ -0,0 +1,282 @@ +{ + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["A3", "A4", "A5", "A6", "A7", "B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15", "A14"], + "rows": ["B15", "B14", "B12", "B13", "B0"] + }, + "processor": "STM32F072", + "usb": { + "device_version": "2.0.0", + "pid": "0x6007" + }, + "community_layouts": [ + "60_ansi_wkl_split_bs_rshift", + "60_hhkb", + "60_ansi_tsangan_split_bs_rshift" + ], + "layout_aliases": { + "LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + }, + "layouts": { + "LAYOUT_60_ansi_wkl_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 13], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_hhkb": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 13], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 12.5, "y": 4} + ] + }, + "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 13], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_ansi_tsangan_split_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [2, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + } + } +} diff --git a/keyboards/keyten/kt60hs_t/v2/readme.md b/keyboards/keyten/kt60hs_t/v2/readme.md new file mode 100644 index 00000000000..db2b8afccfa --- /dev/null +++ b/keyboards/keyten/kt60hs_t/v2/readme.md @@ -0,0 +1,29 @@ +# keyten kt60HS-T V2 + +60% MX Hot-Swap Tsangan PCB + +![kt60HS-T image](https://i.imgur.com/vM32aoX.jpeg) + +**Note: This firmware only supports the PCB version with STM32F072 controller** + +* Keyboard Maintainer: [keyten](https://github.com/key10iq) +* Hardware Supported: keyten kt60HS-T V2 +* Hardware Availability: private GB + +Make example for this keyboard (after setting up your build environment): + + make keyten/kt60hs_t/v2:default + +Flashing example for this keyboard: + + make keyten/kt60hs_t/v2:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* Bootmagic reset: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* Keycode in layout: Press the key mapped to `QK_BOOT` if it is available +* Physical reset button: Hold the button on the back of the PCB From 625d62efdf3cf6d720b6620d18774d7513d62d22 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sat, 5 Apr 2025 22:21:04 +0100 Subject: [PATCH 310/365] Fix 'qmk lint -kb' argument handling (#25093) --- lib/python/qmk/cli/lint.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/python/qmk/cli/lint.py b/lib/python/qmk/cli/lint.py index c09e377ad67..bcf905f579d 100644 --- a/lib/python/qmk/cli/lint.py +++ b/lib/python/qmk/cli/lint.py @@ -317,10 +317,10 @@ def lint(cli): if isinstance(cli.config.lint.keyboard, str): # if provided via config - string not array keyboard_list = [cli.config.lint.keyboard] - elif is_all_keyboards(cli.args.keyboard[0]): + elif any(is_all_keyboards(kb) for kb in cli.args.keyboard): keyboard_list = list_keyboards() else: - keyboard_list = cli.config.lint.keyboard + keyboard_list = list(set(cli.config.lint.keyboard)) failed = [] From 30c0036db116dabed9d0a93b913918f38c615f13 Mon Sep 17 00:00:00 2001 From: Pham Duc Minh <95753855+Deemen17@users.noreply.github.com> Date: Mon, 7 Apr 2025 00:53:13 +0700 Subject: [PATCH 311/365] Refactor Deemen17 Works DE60 (#25088) --- data/mappings/keyboard_aliases.hjson | 3 +++ keyboards/deemen17/{de60fs => de60/r1}/config.h | 0 .../deemen17/{de60fs => de60/r1}/keyboard.json | 4 ++-- .../r1}/keymaps/default/keymap.c | 0 .../deemen17/{de60fs => de60/r1}/readme.md | 8 ++++---- keyboards/deemen17/de60/readme.md | 17 +++++++++++++++++ 6 files changed, 26 insertions(+), 6 deletions(-) rename keyboards/deemen17/{de60fs => de60/r1}/config.h (100%) rename keyboards/deemen17/{de60fs => de60/r1}/keyboard.json (99%) rename keyboards/deemen17/{de60fs => de60/r1}/keymaps/default/keymap.c (100%) rename keyboards/deemen17/{de60fs => de60/r1}/readme.md (89%) create mode 100644 keyboards/deemen17/de60/readme.md diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index 4d8be703c34..0a640fd3e0a 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -146,6 +146,9 @@ "daisy": { "target": "ktec/daisy" }, + "deemen17/de60": { + "target": "deemen17/de60/r1" + }, "dp3000": { "target": "dp3000/rev1" }, diff --git a/keyboards/deemen17/de60fs/config.h b/keyboards/deemen17/de60/r1/config.h similarity index 100% rename from keyboards/deemen17/de60fs/config.h rename to keyboards/deemen17/de60/r1/config.h diff --git a/keyboards/deemen17/de60fs/keyboard.json b/keyboards/deemen17/de60/r1/keyboard.json similarity index 99% rename from keyboards/deemen17/de60fs/keyboard.json rename to keyboards/deemen17/de60/r1/keyboard.json index 573c012baaf..62de2691ce0 100644 --- a/keyboards/deemen17/de60fs/keyboard.json +++ b/keyboards/deemen17/de60/r1/keyboard.json @@ -1,6 +1,6 @@ { - "manufacturer": "Deemen17", - "keyboard_name": "De60fs", + "manufacturer": "Deemen17 Works", + "keyboard_name": "DE60 R1", "maintainer": "Deemen17", "bootloader": "rp2040", "build": { diff --git a/keyboards/deemen17/de60fs/keymaps/default/keymap.c b/keyboards/deemen17/de60/r1/keymaps/default/keymap.c similarity index 100% rename from keyboards/deemen17/de60fs/keymaps/default/keymap.c rename to keyboards/deemen17/de60/r1/keymaps/default/keymap.c diff --git a/keyboards/deemen17/de60fs/readme.md b/keyboards/deemen17/de60/r1/readme.md similarity index 89% rename from keyboards/deemen17/de60fs/readme.md rename to keyboards/deemen17/de60/r1/readme.md index e5135691a85..e71a2fc4123 100644 --- a/keyboards/deemen17/de60fs/readme.md +++ b/keyboards/deemen17/de60/r1/readme.md @@ -1,6 +1,6 @@ -# De60fs +# DE60 Round 1 -![De60fs](https://i.imgur.com/7hpYaoXh.jpg) +![DE60 R1](https://i.imgur.com/7hpYaoXh.jpg) A GH60 form factor PCB for 60% keyboards. Uses a Left USB Type C connector or 5 JST SH positions for daughter board. @@ -10,11 +10,11 @@ A GH60 form factor PCB for 60% keyboards. Uses a Left USB Type C connector or 5 Make example for this keyboard (after setting up your build environment): - make deemen17/de60fs:default + make deemen17/de60/r1:default Flashing example for this keyboard: - make deemen17/de60fs:default:flash + make deemen17/de60/r1:default:flash See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/deemen17/de60/readme.md b/keyboards/deemen17/de60/readme.md new file mode 100644 index 00000000000..c5ea64a6a60 --- /dev/null +++ b/keyboards/deemen17/de60/readme.md @@ -0,0 +1,17 @@ +# DE60 + +Deemen17 Works's 60% PCB Platform, which works as the base for our 60%-layout PCB designs. + +* Keyboard Maintainer: [Deemen17](https://github.com/Deemen17) +* Hardware Supported: DE60 PCBs +* Hardware Availability: [Deemen17 Facebook Page](https://www.facebook.com/deemen17/), [Deemen17 Works Instagram](https://www.instagram.com/deemen17.works) + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (ESC/Escape) and plug in the keyboard +* **Physical reset button**: Double tap the button RESET on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file From 9e775b8e9d955828407b586f980187461c5bfbd6 Mon Sep 17 00:00:00 2001 From: Dam Vu Duy Date: Mon, 7 Apr 2025 00:56:19 +0700 Subject: [PATCH 312/365] Add Coban Pad 12A (#25039) Co-authored-by: jack --- keyboards/coban/pad12a/config.h | 7 +++ keyboards/coban/pad12a/keyboard.json | 50 +++++++++++++++++++ .../coban/pad12a/keymaps/default/keymap.c | 19 +++++++ .../coban/pad12a/keymaps/default/rules.mk | 1 + keyboards/coban/pad12a/readme.md | 23 +++++++++ 5 files changed, 100 insertions(+) create mode 100644 keyboards/coban/pad12a/config.h create mode 100644 keyboards/coban/pad12a/keyboard.json create mode 100644 keyboards/coban/pad12a/keymaps/default/keymap.c create mode 100644 keyboards/coban/pad12a/keymaps/default/rules.mk create mode 100644 keyboards/coban/pad12a/readme.md diff --git a/keyboards/coban/pad12a/config.h b/keyboards/coban/pad12a/config.h new file mode 100644 index 00000000000..b6b096ad05d --- /dev/null +++ b/keyboards/coban/pad12a/config.h @@ -0,0 +1,7 @@ +// Copyright 2025 RyanDam (https://github.com/RyanDam) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/coban/pad12a/keyboard.json b/keyboards/coban/pad12a/keyboard.json new file mode 100644 index 00000000000..dc027d46f41 --- /dev/null +++ b/keyboards/coban/pad12a/keyboard.json @@ -0,0 +1,50 @@ +{ + "keyboard_name": "Coban Pad 12A", + "name": "Coban Pad 12A", + "url": "https://cobanstationery.com", + "maintainer": "Coban Stationery", + "manufacturer": "Coban Stationery", + "usb": { + "pid": "0xC12A", + "vid": "0xCB3A", + "device_version": "1.0.0" + }, + "matrix_pins": { + "cols": ["GP18", "GP16", "GP11", "GP10"], + "rows": ["GP19", "GP17", "GP12"] + }, + "diode_direction": "ROW2COL", + "encoder": { + "rotary": [ + {"pin_a": "GP20", "pin_b": "GP21"} + ] + }, + "processor": "RP2040", + "bootloader": "rp2040", + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2} + ] + } + } +} diff --git a/keyboards/coban/pad12a/keymaps/default/keymap.c b/keyboards/coban/pad12a/keymaps/default/keymap.c new file mode 100644 index 00000000000..0ef7814f630 --- /dev/null +++ b/keyboards/coban/pad12a/keymaps/default/keymap.c @@ -0,0 +1,19 @@ +// Copyright 2025 RyanDam (https://github.com/RyanDam) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_MPLY, KC_MPRV, KC_MUTE, KC_MNXT, + KC_PGUP, KC_ESC, KC_UP, KC_ENT, + KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT + ), +}; + + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, +}; +#endif diff --git a/keyboards/coban/pad12a/keymaps/default/rules.mk b/keyboards/coban/pad12a/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/coban/pad12a/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/coban/pad12a/readme.md b/keyboards/coban/pad12a/readme.md new file mode 100644 index 00000000000..92b5b4528b9 --- /dev/null +++ b/keyboards/coban/pad12a/readme.md @@ -0,0 +1,23 @@ +# Coban Pad 12A + +![Coban Pad 12A](https://i.imgur.com/PTIaQld.jpeg) +Small ortho keyboard with 11 hotswapable buttons and 1 encoder + +* Keyboard Maintainer: [RyanDam](https://github.com/RyanDam) +* Hardware Supported: Coban Pad 12A + +Make example for this keyboard (after setting up your build environment): + + make coban/pad12a:default + +Flashing example for this keyboard: + + make coban/pad12a:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader: + +* **boot button**: Hold the BOOT button on the back of the PCB while plug in usb cable From a7ac6e4e68ba0b5341d6c8ffff8f8a2a24d22ef7 Mon Sep 17 00:00:00 2001 From: nonameCCC <79012391+nonameCCC@users.noreply.github.com> Date: Mon, 7 Apr 2025 12:03:24 +0800 Subject: [PATCH 313/365] [Keyboard] Add PHDesign PH60/Multi Keyboard PCB (#25086) * Add PH60/Multi Support * Add PCB PIcture for README * Remove MO(_FN2) * README Typo Fix * Layout and README Adjustment * Add README for PHDesign Main Folder * Keymap Improvement * Update README.md --- keyboards/phdesign/ph60/multi/keyboard.json | 298 ++++++++++++++++++ .../ph60/multi/keymaps/default/keymap.c | 28 ++ keyboards/phdesign/ph60/multi/readme.md | 28 ++ keyboards/phdesign/readme.md | 9 + 4 files changed, 363 insertions(+) create mode 100644 keyboards/phdesign/ph60/multi/keyboard.json create mode 100644 keyboards/phdesign/ph60/multi/keymaps/default/keymap.c create mode 100644 keyboards/phdesign/ph60/multi/readme.md create mode 100644 keyboards/phdesign/readme.md diff --git a/keyboards/phdesign/ph60/multi/keyboard.json b/keyboards/phdesign/ph60/multi/keyboard.json new file mode 100644 index 00000000000..7240974f70c --- /dev/null +++ b/keyboards/phdesign/ph60/multi/keyboard.json @@ -0,0 +1,298 @@ +{ + "manufacturer": "phdesign.cc", + "keyboard_name": "ph60_multi", + "maintainer": "phdesign", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9", "GP10", "GP11", "GP12", "GP13"], + "rows": ["GP14", "GP15", "GP18", "GP19", "GP20"] + }, + "processor": "RP2040", + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "url": "phdesign.cc", + "usb": { + "device_version": "2.0.1", + "pid": "0x0002", + "vid": "0x5048" + }, + "community_layouts": ["60_ansi", "60_ansi_tsangan_split_bs_rshift", "60_iso"] + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 13], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 13], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 12], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + } + } +} diff --git a/keyboards/phdesign/ph60/multi/keymaps/default/keymap.c b/keyboards/phdesign/ph60/multi/keymaps/default/keymap.c new file mode 100644 index 00000000000..74d7a97299c --- /dev/null +++ b/keyboards/phdesign/ph60/multi/keymaps/default/keymap.c @@ -0,0 +1,28 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum custom_layers { + _BASE, + _FN1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// Base Layer (61 keys) + [_BASE] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, _______, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL + ), + // Fn1 Layer (Windows Lock Shifting Layer) + [_FN1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, _______, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/phdesign/ph60/multi/readme.md b/keyboards/phdesign/ph60/multi/readme.md new file mode 100644 index 00000000000..320e8ec926f --- /dev/null +++ b/keyboards/phdesign/ph60/multi/readme.md @@ -0,0 +1,28 @@ +# phdesign/ph60/multi + +![PromoImage](https://i.imgur.com/sUwC9mk.jpg) + +A 60% multi-layout supported keyboard PCB with open source keyboard case. + +* Keyboard Maintainer: [Team PHDesign](https://github.com/ph-design) +* Hardware Supported: PH60/Multi PCB +* Hardware Availability: + - Store: https://e.tb.cn/h.6VMjUgWZkUGwq26?tk=oVyAeD6uPS2 + - GitHub Repo: https://github.com/ph-design/PH60/tree/Rev.2/PCB_Rev2/Multi + +Make example for this keyboard (after setting up your build environment): + + make phdesign/ph60/multi:default + +Flashing example for this keyboard: + + make phdesign/ph60/multi:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead diff --git a/keyboards/phdesign/readme.md b/keyboards/phdesign/readme.md new file mode 100644 index 00000000000..4605afc13ff --- /dev/null +++ b/keyboards/phdesign/readme.md @@ -0,0 +1,9 @@ +![PHDesign Logo](https://i.imgur.com/zkiyChR.png) + +PHDesign is a team focused on making variety kinds of tech stuff,including keyboards and keyboard-like controllers. This directory includes QMK config files for our keyboard products. + +* Maintainer: [Team PHDesign](https://github.com/ph-design) +* Supported Hardware: + * [`PH60/Multi`](ph60/multi/): PH60 multi-layout PCB + * [`PH-AC`](phac/): PH-AC rhythm game controller +* Product Availability: [phdesing.cc](https://phdesign.cc/) From f94c8fd7666eef5dea3606f20be90281b91f5178 Mon Sep 17 00:00:00 2001 From: Ivan Gromov <38141348+key10iq@users.noreply.github.com> Date: Mon, 7 Apr 2025 10:29:37 +0400 Subject: [PATCH 314/365] [Keyboard] Add Ortho Slayer (#25099) * Add Ortho Slayer * Update keyboards/keyten/ortho_slayer/keymaps/default/keymap.c Co-authored-by: jack * Update keyboards/keyten/ortho_slayer/readme.md Co-authored-by: jack --------- Co-authored-by: jack --- keyboards/keyten/ortho_slayer/keyboard.json | 117 ++++++++++++++++++ .../ortho_slayer/keymaps/default/keymap.c | 24 ++++ keyboards/keyten/ortho_slayer/readme.md | 27 ++++ 3 files changed, 168 insertions(+) create mode 100644 keyboards/keyten/ortho_slayer/keyboard.json create mode 100644 keyboards/keyten/ortho_slayer/keymaps/default/keymap.c create mode 100644 keyboards/keyten/ortho_slayer/readme.md diff --git a/keyboards/keyten/ortho_slayer/keyboard.json b/keyboards/keyten/ortho_slayer/keyboard.json new file mode 100644 index 00000000000..e0232989371 --- /dev/null +++ b/keyboards/keyten/ortho_slayer/keyboard.json @@ -0,0 +1,117 @@ +{ + "manufacturer": "keyten x La-Versa", + "keyboard_name": "Ortho Slayer", + "maintainer": "key10iq", + "processor": "STM32F072", + "bootloader": "stm32-dfu", + "usb": { + "vid": "0xEB69", + "pid": "0x9001", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "diode_direction": "ROW2COL", + "matrix_pins": { + "rows": ["B6", "B4", "A15", "B0", "B1", "A6", "B15", "B11", "A9", "B13"], + "cols": ["B7", "B14", "B5", "A8", "B3", "A10", "A14", "B12", "A7", "B2", "B10"] + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [1, 0], "x": 1, "y": 0 }, + { "matrix": [0, 1], "x": 2, "y": 0 }, + { "matrix": [1, 1], "x": 3, "y": 0 }, + { "matrix": [0, 2], "x": 4, "y": 0 }, + { "matrix": [1, 2], "x": 5, "y": 0 }, + { "matrix": [0, 3], "x": 6, "y": 0 }, + { "matrix": [1, 3], "x": 7, "y": 0 }, + { "matrix": [0, 4], "x": 8, "y": 0 }, + { "matrix": [1, 4], "x": 9, "y": 0 }, + { "matrix": [0, 5], "x": 10, "y": 0 }, + { "matrix": [1, 5], "x": 11, "y": 0 }, + { "matrix": [0, 6], "x": 12, "y": 0 }, + { "matrix": [1, 6], "x": 13, "y": 0 }, + { "matrix": [0, 7], "x": 14.25, "y": 0 }, + { "matrix": [1, 7], "x": 15.25, "y": 0 }, + { "matrix": [0, 8], "x": 16.25, "y": 0 }, + { "matrix": [1, 8], "x": 17.5, "y": 0 }, + { "matrix": [0, 9], "x": 18.5, "y": 0 }, + { "matrix": [1, 9], "x": 19.5, "y": 0 }, + { "matrix": [0, 10], "x": 20.5, "y": 0 }, + { "matrix": [2, 0], "x": 0, "y": 1 }, + { "matrix": [3, 0], "x": 1, "y": 1 }, + { "matrix": [2, 1], "x": 2, "y": 1 }, + { "matrix": [3, 1], "x": 3, "y": 1 }, + { "matrix": [2, 2], "x": 4, "y": 1 }, + { "matrix": [3, 2], "x": 5, "y": 1 }, + { "matrix": [2, 3], "x": 6, "y": 1 }, + { "matrix": [3, 3], "x": 7, "y": 1 }, + { "matrix": [2, 4], "x": 8, "y": 1 }, + { "matrix": [3, 4], "x": 9, "y": 1 }, + { "matrix": [2, 5], "x": 10, "y": 1 }, + { "matrix": [3, 5], "x": 11, "y": 1 }, + { "matrix": [2, 6], "x": 12, "y": 1 }, + { "matrix": [3, 6], "x": 13, "y": 1 }, + { "matrix": [2, 7], "x": 14.25, "y": 1 }, + { "matrix": [3, 7], "x": 15.25, "y": 1 }, + { "matrix": [2, 8], "x": 16.25, "y": 1 }, + { "matrix": [3, 8], "x": 17.5, "y": 1 }, + { "matrix": [2, 9], "x": 18.5, "y": 1 }, + { "matrix": [3, 9], "x": 19.5, "y": 1 }, + { "h": 2, "matrix": [5, 10], "x": 20.5, "y": 1 }, + { "matrix": [4, 0], "x": 0, "y": 2 }, + { "matrix": [5, 0], "x": 1, "y": 2 }, + { "matrix": [4, 1], "x": 2, "y": 2 }, + { "matrix": [5, 1], "x": 3, "y": 2 }, + { "matrix": [4, 2], "x": 4, "y": 2 }, + { "matrix": [5, 2], "x": 5, "y": 2 }, + { "matrix": [4, 3], "x": 6, "y": 2 }, + { "matrix": [5, 3], "x": 7, "y": 2 }, + { "matrix": [4, 4], "x": 8, "y": 2 }, + { "matrix": [5, 4], "x": 9, "y": 2 }, + { "matrix": [4, 5], "x": 10, "y": 2 }, + { "matrix": [5, 5], "x": 11, "y": 2 }, + { "matrix": [4, 6], "x": 12, "y": 2 }, + { "matrix": [5, 6], "x": 13, "y": 2 }, + { "matrix": [5, 9], "x": 17.5, "y": 2 }, + { "matrix": [4, 9], "x": 18.5, "y": 2 }, + { "matrix": [4, 10], "x": 19.5, "y": 2 }, + { "matrix": [6, 0], "w": 2, "x": 0, "y": 3 }, + { "matrix": [7, 0], "x": 2, "y": 3 }, + { "matrix": [6, 2], "x": 3, "y": 3 }, + { "matrix": [7, 2], "x": 4, "y": 3 }, + { "matrix": [6, 3], "x": 5, "y": 3 }, + { "matrix": [7, 3], "x": 6, "y": 3 }, + { "matrix": [6, 4], "x": 7, "y": 3 }, + { "matrix": [7, 4], "x": 8, "y": 3 }, + { "matrix": [6, 5], "x": 9, "y": 3 }, + { "matrix": [7, 5], "x": 10, "y": 3 }, + { "matrix": [7, 6], "x": 11, "y": 3 }, + { "matrix": [6, 6], "w": 2, "x": 12, "y": 3 }, + { "matrix": [6, 8], "x": 15.25, "y": 3 }, + { "matrix": [7, 8], "x": 17.5, "y": 3 }, + { "matrix": [6, 9], "x": 18.5, "y": 3 }, + { "matrix": [7, 9], "x": 19.5, "y": 3 }, + { "h": 2, "matrix": [9, 10], "x": 20.5, "y": 3 }, + { "matrix": [8, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [9, 0], "x": 1.25, "y": 4 }, + { "matrix": [8, 1], "w": 1.25, "x": 2.25, "y": 4 }, + { "matrix": [8, 4], "w": 7, "x": 3.5, "y": 4 }, + { "matrix": [9, 4], "w": 1.25, "x": 10.5, "y": 4 }, + { "matrix": [8, 6], "x": 11.75, "y": 4 }, + { "matrix": [9, 6], "w": 1.25, "x": 12.75, "y": 4 }, + { "matrix": [8, 7], "x": 14.25, "y": 4 }, + { "matrix": [9, 7], "x": 15.25, "y": 4 }, + { "matrix": [8, 8], "x": 16.25, "y": 4 }, + { "matrix": [9, 8], "w": 2, "x": 17.5, "y": 4 }, + { "matrix": [8, 10], "x": 19.5, "y": 4 } + ] + } + } +} diff --git a/keyboards/keyten/ortho_slayer/keymaps/default/keymap.c b/keyboards/keyten/ortho_slayer/keymaps/default/keymap.c new file mode 100644 index 00000000000..ea471d31efc --- /dev/null +++ b/keyboards/keyten/ortho_slayer/keymaps/default/keymap.c @@ -0,0 +1,24 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + MO(1), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_KP_9, KC_PPLS, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + + [1] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; diff --git a/keyboards/keyten/ortho_slayer/readme.md b/keyboards/keyten/ortho_slayer/readme.md new file mode 100644 index 00000000000..bae4adf3b6c --- /dev/null +++ b/keyboards/keyten/ortho_slayer/readme.md @@ -0,0 +1,27 @@ +# keyten x La-Versa Ortho Slayer + +Ortho Slayer is a full size FRL ortho keyboard inspired by Berserk + +![Ortho Slayer image](https://i.imgur.com/CGYysPM.jpeg) + +* Keyboard Maintainer: [keyten](https://github.com/key10iq) +* Hardware Supported: keyten x La-Versa Ortho Slayer +* Hardware Availability: private GB + +Make example for this keyboard (after setting up your build environment): + + make keyten/ortho_slayer:default + +Flashing example for this keyboard: + + make keyten/ortho_slayer:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* Bootmagic reset: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* Keycode in layout: Press the key mapped to `QK_BOOT` if it is available +* Physical reset button: Hold the button on the back of the PCB From 5f222a3e02ec59620b1df54b07e405201448af06 Mon Sep 17 00:00:00 2001 From: sudo pacman -Syu Date: Tue, 8 Apr 2025 00:03:05 +0700 Subject: [PATCH 315/365] Fix coban pad9a wrong layout in keyboard.json (#25100) --- keyboards/coban/pad9a/keyboard.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/coban/pad9a/keyboard.json b/keyboards/coban/pad9a/keyboard.json index 1b5efb34567..d34f2b000b6 100644 --- a/keyboards/coban/pad9a/keyboard.json +++ b/keyboards/coban/pad9a/keyboard.json @@ -69,7 +69,7 @@ {"label": "key_3", "matrix": [0, 4], "x": 2, "y": 1}, {"label": "key_4", "matrix": [0, 5], "x": 0, "y": 2}, {"label": "key_5", "matrix": [0, 6], "x": 1, "y": 2}, - {"label": "key_6", "matrix": [0, 7], "x": 2, "y": 3} + {"label": "key_6", "matrix": [0, 7], "x": 2, "y": 2} ] } } From 06610c3da6de4208b9c8ab172479bbe0d859b74f Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 8 Apr 2025 01:55:49 +0100 Subject: [PATCH 316/365] Remove `CTPC`/`CONVERT_TO_PROTON_C` options (#25111) --- builddefs/converters.mk | 7 ------- data/mappings/info_rules.hjson | 4 ++-- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/builddefs/converters.mk b/builddefs/converters.mk index b1e5a1bed27..20ecea5cb9d 100644 --- a/builddefs/converters.mk +++ b/builddefs/converters.mk @@ -1,10 +1,3 @@ -# Note for new boards -- CTPC and CONVERT_TO_PROTON_C are deprecated terms -# and should not be replicated for new boards. These will be removed from -# documentation as well as existing keymaps in due course. -ifneq ($(findstring yes, $(CTPC)$(CONVERT_TO_PROTON_C)),) -$(call CATASTROPHIC_ERROR,The `CONVERT_TO_PROTON_C` and `CTPC` options are now deprecated. `CONVERT_TO=proton_c` should be used instead.) -endif - ifneq (,$(filter $(MCU),atmega32u4)) # TODO: opt in rather than assume everything uses a pro micro PIN_COMPATIBLE ?= promicro diff --git a/data/mappings/info_rules.hjson b/data/mappings/info_rules.hjson index 00685b5b5f5..238957f170e 100644 --- a/data/mappings/info_rules.hjson +++ b/data/mappings/info_rules.hjson @@ -53,8 +53,8 @@ "WS2812_DRIVER": {"info_key": "ws2812.driver"}, // Items we want flagged in lint - "CTPC": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"}, - "CONVERT_TO_PROTON_C": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"}, "DEFAULT_FOLDER": {"info_key": "_deprecated.default_folder", "deprecated": true}, + "CTPC": {"info_key": "_invalid.ctpc", "invalid": true, "replace_with": "CONVERT_TO=proton_c"}, + "CONVERT_TO_PROTON_C": {"info_key": "_invalid.ctpc", "invalid": true, "replace_with": "CONVERT_TO=proton_c"}, "VIAL_ENABLE": {"info_key": "_invalid.vial", "invalid": true} } From ca84b570429fdacc3211e85a3d1ee0e213bcd8e4 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 8 Apr 2025 03:31:17 +0100 Subject: [PATCH 317/365] Remove direct docs.qmk.fm links from docs (#25113) --- docs/hand_wire.md | 2 +- docs/license_violations.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/hand_wire.md b/docs/hand_wire.md index 9aeee7512dc..be21cf2cc4f 100644 --- a/docs/hand_wire.md +++ b/docs/hand_wire.md @@ -231,7 +231,7 @@ Once you have confirmed that the keyboard is working, if you have used a seperat If you found this fullfilling you could experiment by adding additional features such as [in switch LEDs](https://geekhack.org/index.php?topic=94258.0), [in switch RGB](https://www.reddit.com/r/MechanicalKeyboards/comments/5s1l5u/photoskeyboard_science_i_made_a_handwired_rgb/), [RGB underglow](https://medium.com/@DavidNZ/hand-wired-custom-keyboard-cdd14429c7b3#.7a1ovebsk) or even an [OLED display!](https://www.reddit.com/r/olkb/comments/5zy7og/adding_ssd1306_oled_display_to_your_build/) -There are a lot of possibilities inside the firmware - explore [docs.qmk.fm](https://docs.qmk.fm) for a full feature list, and dive into the different keyboards to see how people use all of them. You can always stop by [the OLKB subreddit](https://reddit.com/r/olkb) or [QMK Discord](https://discord.gg/qmk) for help! +There are a lot of possibilities inside the firmware - explore [the documentation](/) for a full feature list, and dive into the different keyboards to see how people use all of them. You can always stop by [the OLKB subreddit](https://reddit.com/r/olkb) or [QMK Discord](https://discord.gg/qmk) for help! ## Links to Other Guides diff --git a/docs/license_violations.md b/docs/license_violations.md index cf7850effc1..0bc62102ed3 100644 --- a/docs/license_violations.md +++ b/docs/license_violations.md @@ -85,7 +85,7 @@ Reusing the `VID` and `PID` for multiple boards (such as for two variants, wired If there is sufficient ambiguity about a board, supporting evidence will need to be presented to the QMK team. This may include impartial third parties who can demonstrate a board's existence and can confirm its feature set, such as well-known content producers; popular review sites or notable video creators may be leveraged. If such evidence is unavailable, as a last resort the vendor may be required to ship a fully functional board in full retail packaging to QMK maintainers for verification. Engineering samples will not be accepted, as one-off boards have been deceptively used in the past. -PRs submitted to upstream QMK should not expect an instant merge just because source code has been provided -- code from OEMs has historically been of a quality lower than QMK standards, so as per the [PR checklist](https://docs.qmk.fm/pr_checklist) submitters should make the changes as small as possible and be prepared to change their implementation. +PRs submitted to upstream QMK should not expect an instant merge just because source code has been provided -- code from OEMs has historically been of a quality lower than QMK standards, so as per the [PR checklist](pr_checklist) submitters should make the changes as small as possible and be prepared to change their implementation. ## Detection From 2645751ce1aed528056c9bd6acef8a279b3c4a61 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 8 Apr 2025 03:35:43 +0100 Subject: [PATCH 318/365] Add warning when deprecated 'promicro_rp2040' is used (#25112) --- .../converters/promicro_to_promicro_rp2040/pre_converter.mk | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/platforms/chibios/converters/promicro_to_promicro_rp2040/pre_converter.mk b/platforms/chibios/converters/promicro_to_promicro_rp2040/pre_converter.mk index 303d3135cef..80111d0f781 100644 --- a/platforms/chibios/converters/promicro_to_promicro_rp2040/pre_converter.mk +++ b/platforms/chibios/converters/promicro_to_promicro_rp2040/pre_converter.mk @@ -1,2 +1,8 @@ CONVERTER:=platforms/chibios/converters/promicro_to_sparkfun_pm2040 ACTIVE_CONVERTER:=sparkfun_pm2040 + +$(info @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@) +$(info The 'CONVERT_TO=promicro_rp2040' option is now deprecated.) +$(info Depending on hardware either 'CONVERT_TO=sparkfun_pm2040' or 'CONVERT_TO=rp2040_ce' should be used instead.) +$(info See https://docs.qmk.fm/feature_converters#pro-micro documentation for more information.) +$(info @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@) From 0ec96ddd52cd6f4851beb5f387f3bd67b306f8b8 Mon Sep 17 00:00:00 2001 From: Andrew Kannan Date: Tue, 8 Apr 2025 18:13:16 -0400 Subject: [PATCH 319/365] Add Vida to QMK (#24225) Co-authored-by: jack Co-authored-by: Duncan Sutherland --- keyboards/cannonkeys/vida/config.h | 9 + .../cannonkeys/vida/hotswap/keyboard.json | 272 +++++++ .../vida/hotswap/keymaps/default/keymap.c | 27 + keyboards/cannonkeys/vida/info.json | 28 + keyboards/cannonkeys/vida/readme.md | 31 + keyboards/cannonkeys/vida/solderable/config.h | 7 + .../cannonkeys/vida/solderable/halconf.h | 8 + .../cannonkeys/vida/solderable/keyboard.json | 680 ++++++++++++++++++ .../vida/solderable/keymaps/default/keymap.c | 27 + .../vida/solderable/matrix_diagram.md | 24 + .../cannonkeys/vida/solderable/mcuconf.h | 9 + 11 files changed, 1122 insertions(+) create mode 100644 keyboards/cannonkeys/vida/config.h create mode 100644 keyboards/cannonkeys/vida/hotswap/keyboard.json create mode 100644 keyboards/cannonkeys/vida/hotswap/keymaps/default/keymap.c create mode 100644 keyboards/cannonkeys/vida/info.json create mode 100644 keyboards/cannonkeys/vida/readme.md create mode 100644 keyboards/cannonkeys/vida/solderable/config.h create mode 100644 keyboards/cannonkeys/vida/solderable/halconf.h create mode 100644 keyboards/cannonkeys/vida/solderable/keyboard.json create mode 100644 keyboards/cannonkeys/vida/solderable/keymaps/default/keymap.c create mode 100644 keyboards/cannonkeys/vida/solderable/matrix_diagram.md create mode 100644 keyboards/cannonkeys/vida/solderable/mcuconf.h diff --git a/keyboards/cannonkeys/vida/config.h b/keyboards/cannonkeys/vida/config.h new file mode 100644 index 00000000000..4eec357f201 --- /dev/null +++ b/keyboards/cannonkeys/vida/config.h @@ -0,0 +1,9 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U + +#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 diff --git a/keyboards/cannonkeys/vida/hotswap/keyboard.json b/keyboards/cannonkeys/vida/hotswap/keyboard.json new file mode 100644 index 00000000000..a2278354e57 --- /dev/null +++ b/keyboards/cannonkeys/vida/hotswap/keyboard.json @@ -0,0 +1,272 @@ +{ + "keyboard_name": "Vida HS", + "usb": { + "pid": "0x0035" + }, + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_hhkb"], + "layout_aliases": { + "LAYOUT_60_ansi_split_bs_rshift": "LAYOUT_all" + }, + "layouts": { + "LAYOUT_60_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_hhkb": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4} + ] + }, + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + } + } +} diff --git a/keyboards/cannonkeys/vida/hotswap/keymaps/default/keymap.c b/keyboards/cannonkeys/vida/hotswap/keymaps/default/keymap.c new file mode 100644 index 00000000000..8ff252918f3 --- /dev/null +++ b/keyboards/cannonkeys/vida/hotswap/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +// Copyright 2023 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _FN1 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL + ), + + [_FN1] = LAYOUT_all( + QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, _______, _______, _______, _______, _______, _______, QK_BOOT + ) +}; diff --git a/keyboards/cannonkeys/vida/info.json b/keyboards/cannonkeys/vida/info.json new file mode 100644 index 00000000000..8a5ddfe8bd1 --- /dev/null +++ b/keyboards/cannonkeys/vida/info.json @@ -0,0 +1,28 @@ +{ + "manufacturer": "CannonKeys", + "maintainer": "awkannan", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "GP29", + "on_state": 0 + }, + "matrix_pins": { + "cols": ["GP28", "GP8", "GP14", "GP13", "GP12", "GP11", "GP10", "GP9", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1"], + "rows": ["GP26", "GP27", "GP15", "GP16", "GP17"] + }, + "processor": "RP2040", + "url": "https://cannonkeys.com", + "usb": { + "device_version": "0.0.1", + "vid": "0xCA04" + } +} diff --git a/keyboards/cannonkeys/vida/readme.md b/keyboards/cannonkeys/vida/readme.md new file mode 100644 index 00000000000..2143a7d20ad --- /dev/null +++ b/keyboards/cannonkeys/vida/readme.md @@ -0,0 +1,31 @@ +# Vida Keyboard PCB + +Vida PCB from CannonKeys + +This folder has files for both the wired hotswap and solderable versions of the Vida PCB + +The hotswap version does not have as much layout support as the solderable version (no ISO, no split space) +The hotswap version does not support per key LED backlighting + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: RP2040 +* Hardware Availability: [CannonKeys](https://cannonkeys.com) + + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/vida:hotswap:default + +Flashing example for this keyboard: + + make cannonkeys/vida:hotswap:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Hold the "BOOTMODE" button on the back of the PCB and briefly press the "RESET" button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cannonkeys/vida/solderable/config.h b/keyboards/cannonkeys/vida/solderable/config.h new file mode 100644 index 00000000000..9a8669d7a85 --- /dev/null +++ b/keyboards/cannonkeys/vida/solderable/config.h @@ -0,0 +1,7 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A diff --git a/keyboards/cannonkeys/vida/solderable/halconf.h b/keyboards/cannonkeys/vida/solderable/halconf.h new file mode 100644 index 00000000000..0536c37ff34 --- /dev/null +++ b/keyboards/cannonkeys/vida/solderable/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/cannonkeys/vida/solderable/keyboard.json b/keyboards/cannonkeys/vida/solderable/keyboard.json new file mode 100644 index 00000000000..1b8635b4438 --- /dev/null +++ b/keyboards/cannonkeys/vida/solderable/keyboard.json @@ -0,0 +1,680 @@ +{ + "keyboard_name": "Vida", + "backlight": { + "breathing": true, + "breathing_period": 5, + "levels": 15, + "pin": "GP22" + }, + "features": { + "backlight": true + }, + "usb": { + "pid": "0x0032" + }, + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan"], + "layouts": { + "LAYOUT_60_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_hhkb": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4} + ] + }, + "LAYOUT_60_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 2.25}, + {"matrix": [4, 6], "x": 6, "y": 4, "w": 1.25}, + {"matrix": [4, 9], "x": 7.25, "y": 4, "w": 2.75}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + } + } +} diff --git a/keyboards/cannonkeys/vida/solderable/keymaps/default/keymap.c b/keyboards/cannonkeys/vida/solderable/keymaps/default/keymap.c new file mode 100644 index 00000000000..46d376f42d0 --- /dev/null +++ b/keyboards/cannonkeys/vida/solderable/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +// Copyright 2023 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _FN1 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL + ), + + [_FN1] = LAYOUT_all( + QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_UP, _______, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT + ) +}; diff --git a/keyboards/cannonkeys/vida/solderable/matrix_diagram.md b/keyboards/cannonkeys/vida/solderable/matrix_diagram.md new file mode 100644 index 00000000000..6de584cb4eb --- /dev/null +++ b/keyboards/cannonkeys/vida/solderable/matrix_diagram.md @@ -0,0 +1,24 @@ +# Matrix Diagram for CannonKeys Vida + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2C │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ┌─────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐2D │ ISO Enter +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ │1D │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ └───┴────┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ +│40 │41 │42 │46 │4A │4B │4C │4D │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ +┌────────┐ ┌──────────┐ +│30 │ 2.25u LShift 2.75u RShift │3C │ +└────────┘ └──────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│40 │41 │42 │46 │4B │4C │4D │ Tsangan/WKL/HHKB +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +``` diff --git a/keyboards/cannonkeys/vida/solderable/mcuconf.h b/keyboards/cannonkeys/vida/solderable/mcuconf.h new file mode 100644 index 00000000000..200f75c11b4 --- /dev/null +++ b/keyboards/cannonkeys/vida/solderable/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef RP_PWM_USE_PWM3 +#define RP_PWM_USE_PWM3 TRUE From 575abc48a3064a464caaa6febf0c65215c3eb1d0 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Wed, 9 Apr 2025 10:15:14 +1000 Subject: [PATCH 320/365] More Windows->Unix style path fixes. (#25119) --- lib/python/qmk/build_targets.py | 22 +++++++++---------- .../qmk/cli/generate/make_dependencies.py | 4 ++-- lib/python/qmk/commands.py | 3 ++- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/lib/python/qmk/build_targets.py b/lib/python/qmk/build_targets.py index e2df0294907..df5a5ffb42d 100644 --- a/lib/python/qmk/build_targets.py +++ b/lib/python/qmk/build_targets.py @@ -11,7 +11,7 @@ from qmk.commands import find_make, get_make_parallel_args, parse_configurator_j from qmk.keyboard import keyboard_folder from qmk.info import keymap_json from qmk.keymap import locate_keymap -from qmk.path import is_under_qmk_firmware, is_under_qmk_userspace +from qmk.path import is_under_qmk_firmware, is_under_qmk_userspace, unix_style_path # These must be kept in the order in which they're applied to $(TARGET) in the makefiles in order to ensure consistency. TARGET_FILENAME_MODIFIERS = ['FORCE_LAYOUT', 'CONVERT_TO'] @@ -204,11 +204,11 @@ class KeyboardKeymapBuildTarget(BuildTarget): if is_under_qmk_userspace(keymap_location) and not is_under_qmk_firmware(keymap_location): keymap_directory = keymap_location.parent compile_args.extend([ - f'MAIN_KEYMAP_PATH_1={keymap_directory}', - f'MAIN_KEYMAP_PATH_2={keymap_directory}', - f'MAIN_KEYMAP_PATH_3={keymap_directory}', - f'MAIN_KEYMAP_PATH_4={keymap_directory}', - f'MAIN_KEYMAP_PATH_5={keymap_directory}', + f'MAIN_KEYMAP_PATH_1={unix_style_path(keymap_directory)}', + f'MAIN_KEYMAP_PATH_2={unix_style_path(keymap_directory)}', + f'MAIN_KEYMAP_PATH_3={unix_style_path(keymap_directory)}', + f'MAIN_KEYMAP_PATH_4={unix_style_path(keymap_directory)}', + f'MAIN_KEYMAP_PATH_5={unix_style_path(keymap_directory)}', ]) return compile_args @@ -267,11 +267,11 @@ class JsonKeymapBuildTarget(BuildTarget): generated_files_path = intermediate_output / 'src' keymap_json = generated_files_path / 'keymap.json' compile_args.extend([ - f'MAIN_KEYMAP_PATH_1={intermediate_output}', - f'MAIN_KEYMAP_PATH_2={intermediate_output}', - f'MAIN_KEYMAP_PATH_3={intermediate_output}', - f'MAIN_KEYMAP_PATH_4={intermediate_output}', - f'MAIN_KEYMAP_PATH_5={intermediate_output}', + f'MAIN_KEYMAP_PATH_1={unix_style_path(intermediate_output)}', + f'MAIN_KEYMAP_PATH_2={unix_style_path(intermediate_output)}', + f'MAIN_KEYMAP_PATH_3={unix_style_path(intermediate_output)}', + f'MAIN_KEYMAP_PATH_4={unix_style_path(intermediate_output)}', + f'MAIN_KEYMAP_PATH_5={unix_style_path(intermediate_output)}', f'KEYMAP_JSON={keymap_json}', f'KEYMAP_PATH={generated_files_path}', ]) diff --git a/lib/python/qmk/cli/generate/make_dependencies.py b/lib/python/qmk/cli/generate/make_dependencies.py index 331132a20f5..95481878889 100755 --- a/lib/python/qmk/cli/generate/make_dependencies.py +++ b/lib/python/qmk/cli/generate/make_dependencies.py @@ -8,7 +8,7 @@ from argcomplete.completers import FilesCompleter from qmk.commands import dump_lines from qmk.keyboard import keyboard_completer, keyboard_folder from qmk.keymap import keymap_completer, locate_keymap -from qmk.path import normpath, FileType +from qmk.path import normpath, FileType, unix_style_path @cli.argument('filename', nargs='?', arg_only=True, type=FileType('r'), completer=FilesCompleter('.json'), help='A configurator export JSON.') @@ -53,4 +53,4 @@ def generate_make_dependencies(cli): for file in interesting_files: check_files.append(Path('users') / cli.args.keymap / file) - dump_lines(cli.args.output, [f'generated-files: $(wildcard {found})\n' for found in check_files]) + dump_lines(cli.args.output, [f'generated-files: $(wildcard {unix_style_path(found)})\n' for found in check_files]) diff --git a/lib/python/qmk/commands.py b/lib/python/qmk/commands.py index 0e1876ca7ae..ac1455967d7 100644 --- a/lib/python/qmk/commands.py +++ b/lib/python/qmk/commands.py @@ -12,6 +12,7 @@ from qmk.constants import QMK_USERSPACE, HAS_QMK_USERSPACE from qmk.json_schema import json_load, validate from qmk.keyboard import keyboard_alias_definitions from qmk.util import maybe_exit +from qmk.path import unix_style_path def find_make(): @@ -85,7 +86,7 @@ def build_environment(args): envs = parse_env_vars(args) if HAS_QMK_USERSPACE: - envs['QMK_USERSPACE'] = Path(QMK_USERSPACE).resolve() + envs['QMK_USERSPACE'] = unix_style_path(Path(QMK_USERSPACE).resolve()) return envs From a0f40d9410d1ecac4b498b999ebd04e65ef762f4 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Thu, 10 Apr 2025 00:28:30 +1000 Subject: [PATCH 321/365] Include `math.h` where necessary. (#25122) --- keyboards/rubi/lib/calc.c | 1 + keyboards/terrazzo/terrazzo.c | 1 + 2 files changed, 2 insertions(+) diff --git a/keyboards/rubi/lib/calc.c b/keyboards/rubi/lib/calc.c index 7796a9be451..b289fdb54bf 100644 --- a/keyboards/rubi/lib/calc.c +++ b/keyboards/rubi/lib/calc.c @@ -13,6 +13,7 @@ This is the modified version of [calculator by MWWorks](https://github.com/MWWor Feel free to fix it! I think it needs to detect the precision of the two operands and then figure out what the precision of the result should be */ +#include #include "rubi.h" static uint8_t calc_current_operand = 0; diff --git a/keyboards/terrazzo/terrazzo.c b/keyboards/terrazzo/terrazzo.c index 2a3d2a8cc61..a629e5dceb3 100644 --- a/keyboards/terrazzo/terrazzo.c +++ b/keyboards/terrazzo/terrazzo.c @@ -14,6 +14,7 @@ * along with this program. If not, see . */ +#include #include "terrazzo.h" #ifdef LED_MATRIX_ENABLE From 6b8670fe8fc17115a2d20b4eabb9139cc4cde38e Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Thu, 10 Apr 2025 10:43:25 +1000 Subject: [PATCH 322/365] Cater for use of `__errno_r()` in ChibiOS syscalls.c with newer picolibc revisions (#25121) --- platforms/chibios/errno.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 platforms/chibios/errno.h diff --git a/platforms/chibios/errno.h b/platforms/chibios/errno.h new file mode 100644 index 00000000000..a411ed98212 --- /dev/null +++ b/platforms/chibios/errno.h @@ -0,0 +1,13 @@ +// Copyright 2025 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once +#include_next + +// Newer versions of picolibc don't seem to provide `__errno_r(r)` in the header file, but is used by ChibiOS. +#ifndef __errno_r +# ifdef __REENT_ERRNO +# define __errno_r(r) _REENT_ERRNO(r) +# else +# define __errno_r(r) (errno) +# endif +#endif From f549b30760a69f8279390469df0de2bcab434c57 Mon Sep 17 00:00:00 2001 From: Luis Garcia Date: Fri, 11 Apr 2025 00:26:11 -0500 Subject: [PATCH 323/365] chore: Allow disabling underglow on Work Louder devices (#25123) (#25120) * Allow disabling Underglow on Work Louder devices Allows disabling Underglow on Work Louder devices by using `RGBLIGHT_ENABLE = no` on rules.mk * Update keyboards/work_louder/rgb_functions.c Suggested by @zvecr on review. Co-authored-by: Joel Challis --------- Co-authored-by: Joel Challis --- keyboards/work_louder/rgb_functions.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboards/work_louder/rgb_functions.c b/keyboards/work_louder/rgb_functions.c index 15d0f432a08..b0d89d8511e 100644 --- a/keyboards/work_louder/rgb_functions.c +++ b/keyboards/work_louder/rgb_functions.c @@ -14,10 +14,10 @@ * along with this program. If not, see . */ -#include "rgblight.h" -#include "rgb_matrix.h" - #ifdef RGBLIGHT_ENABLE + +#include "rgblight.h" + #undef WS2812_DI_PIN #define WS2812_DI_PIN RGBLIGHT_DI_PIN From e27dd0f26faa3cbe787e539b2435450fffa3709a Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 11 Apr 2025 13:19:02 +0100 Subject: [PATCH 324/365] Exclude external userspace from lint checking (#24680) --- lib/python/qmk/cli/lint.py | 2 +- lib/python/qmk/keymap.py | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/python/qmk/cli/lint.py b/lib/python/qmk/cli/lint.py index bcf905f579d..bc14b61e8b4 100644 --- a/lib/python/qmk/cli/lint.py +++ b/lib/python/qmk/cli/lint.py @@ -26,7 +26,7 @@ def _list_defaultish_keymaps(kb): defaultish.extend(INVALID_KM_NAMES) keymaps = set() - for x in list_keymaps(kb): + for x in list_keymaps(kb, include_userspace=False): if x in defaultish or x.startswith('default'): keymaps.add(x) diff --git a/lib/python/qmk/keymap.py b/lib/python/qmk/keymap.py index 8e36461722b..b7138aa4a1a 100644 --- a/lib/python/qmk/keymap.py +++ b/lib/python/qmk/keymap.py @@ -399,7 +399,7 @@ def is_keymap_target(keyboard, keymap): return False -def list_keymaps(keyboard, c=True, json=True, additional_files=None, fullpath=False): +def list_keymaps(keyboard, c=True, json=True, additional_files=None, fullpath=False, include_userspace=True): """List the available keymaps for a keyboard. Args: @@ -418,14 +418,19 @@ def list_keymaps(keyboard, c=True, json=True, additional_files=None, fullpath=Fa fullpath When set to True the full path of the keymap relative to the `qmk_firmware` root will be provided. + include_userspace + When set to True, also search userspace for available keymaps + Returns: a sorted list of valid keymap names. """ names = set() + has_userspace = HAS_QMK_USERSPACE and include_userspace + # walk up the directory tree until keyboards_dir # and collect all directories' name with keymap.c file in it - for search_dir in [QMK_FIRMWARE, QMK_USERSPACE] if HAS_QMK_USERSPACE else [QMK_FIRMWARE]: + for search_dir in [QMK_FIRMWARE, QMK_USERSPACE] if has_userspace else [QMK_FIRMWARE]: keyboards_dir = search_dir / Path('keyboards') kb_path = keyboards_dir / keyboard @@ -443,7 +448,7 @@ def list_keymaps(keyboard, c=True, json=True, additional_files=None, fullpath=Fa info = info_json(keyboard) community_parents = list(Path('layouts').glob('*/')) - if HAS_QMK_USERSPACE and (Path(QMK_USERSPACE) / "layouts").exists(): + if has_userspace and (Path(QMK_USERSPACE) / "layouts").exists(): community_parents.append(Path(QMK_USERSPACE) / "layouts") for community_parent in community_parents: From daf696894773d0884bb6d0c542966d6db0f1af4d Mon Sep 17 00:00:00 2001 From: Luis Garcia Date: Fri, 11 Apr 2025 11:26:13 -0500 Subject: [PATCH 325/365] fix: Fix startup sound for Preonic (#25132) (#25133) Add `AUDIO_INIT_DELAY ` to config.h to resolve --- keyboards/preonic/config.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/keyboards/preonic/config.h b/keyboards/preonic/config.h index c47b9e7ed42..67ff77912c4 100644 --- a/keyboards/preonic/config.h +++ b/keyboards/preonic/config.h @@ -20,6 +20,8 @@ along with this program. If not, see . #define AUDIO_VOICES #define AUDIO_PIN C6 +#define AUDIO_INIT_DELAY + /* * Feature disable options * These options are also useful to firmware size reduction. From ba72094b695ad98419ae12c61c8aebb8d55c5a44 Mon Sep 17 00:00:00 2001 From: "Christian C. Berclaz" Date: Sun, 13 Apr 2025 18:11:18 +0200 Subject: [PATCH 326/365] New standard layout for Savage65 (65_ansi_blocker_tsangan_split_bs) (#24690) * Added a default firmware and layout for the WindStudio Wind X R1 keyboard. * Wind X R1: cleaned-up the folders to make clear that this firmware is for the release 1 of this keyboard. * Delete keyboards/windstudio/wind_x/R1 directory Removing the uppercase R1 folder * feat(cannonkeys/savage65): Added layout to keyboard.json - Added the layout LAYOUT_65_ansi_blocker_tsangan_split_bs to the community layouts. --- keyboards/cannonkeys/savage65/keyboard.json | 325 +++++++++++--------- 1 file changed, 188 insertions(+), 137 deletions(-) diff --git a/keyboards/cannonkeys/savage65/keyboard.json b/keyboards/cannonkeys/savage65/keyboard.json index bc9c1d77e50..471b785633b 100644 --- a/keyboards/cannonkeys/savage65/keyboard.json +++ b/keyboards/cannonkeys/savage65/keyboard.json @@ -1,140 +1,62 @@ { - "keyboard_name": "Savage65", "manufacturer": "CannonKeys", - "url": "https://cannonkeys.com", + "keyboard_name": "Savage65", "maintainer": "awkannan", - "usb": { - "vid": "0xCA04", - "pid": "0x5A65", - "device_version": "0.0.1" + "backlight": { + "breathing": true, + "levels": 6, + "pin": "A6" + }, + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "backlight": true, + "bootmagic": true, + "command": true, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true }, "matrix_pins": { "cols": ["A5", "B10", "A3", "A2", "B0", "A9", "C13", "B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15", "A14"], "rows": ["B12", "B11", "B14", "A8", "A1"] }, - "diode_direction": "COL2ROW", - "backlight": { - "pin": "A6", - "levels": 6, - "breathing": true - }, - "rgblight": { - "led_count": 20, - "animations": { - "breathing": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "knight": true, - "christmas": true, - "static_gradient": true, - "rgb_test": true, - "alternating": true, - "twinkle": true - } - }, - "ws2812": { - "pin": "B15", - "driver": "spi" - }, "processor": "STM32F072", - "bootloader": "stm32-dfu", - "features": { - "bootmagic": true, - "mousekey": true, - "extrakey": true, - "console": true, - "command": true, - "nkro": true, - "backlight": true, - "rgblight": true - }, "qmk": { "locking": { "enabled": true, "resync": true } }, - "community_layouts": ["65_ansi_blocker", "65_ansi_blocker_split_bs", "65_ansi_blocker_tsangan", "65_iso_blocker"], - "layouts": { - "LAYOUT_default": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [0, 14], "x": 14, "y": 0}, - {"matrix": [0, 15], "x": 15, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - {"matrix": [1, 15], "x": 15, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 12], "x": 12.75, "y": 2}, - {"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25}, - {"matrix": [2, 15], "x": 15, "y": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, - {"matrix": [3, 1], "x": 1.25, "y": 3}, - {"matrix": [3, 2], "x": 2.25, "y": 3}, - {"matrix": [3, 3], "x": 3.25, "y": 3}, - {"matrix": [3, 4], "x": 4.25, "y": 3}, - {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 6], "x": 6.25, "y": 3}, - {"matrix": [3, 7], "x": 7.25, "y": 3}, - {"matrix": [3, 8], "x": 8.25, "y": 3}, - {"matrix": [3, 9], "x": 9.25, "y": 3}, - {"matrix": [3, 10], "x": 10.25, "y": 3}, - {"matrix": [3, 11], "x": 11.25, "y": 3}, - {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 14, "y": 3}, - {"matrix": [3, 15], "x": 15, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 13, "y": 4}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 15], "x": 15, "y": 4} - ] + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true }, + "led_count": 20 + }, + "url": "https://cannonkeys.com", + "usb": { + "device_version": "0.0.1", + "pid": "0x5A65", + "vid": "0xCA04" + }, + "ws2812": { + "driver": "spi", + "pin": "B15" + }, + "community_layouts": ["65_ansi_blocker", "65_ansi_blocker_split_bs", "65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs", "65_iso_blocker"], + "layouts": { "LAYOUT_65_ansi_blocker": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, @@ -152,7 +74,6 @@ {"matrix": [0, 12], "x": 12, "y": 0}, {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, {"matrix": [0, 15], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, {"matrix": [1, 2], "x": 2.5, "y": 1}, @@ -168,7 +89,6 @@ {"matrix": [1, 12], "x": 12.5, "y": 1}, {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, {"matrix": [1, 15], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, {"matrix": [2, 1], "x": 1.75, "y": 2}, {"matrix": [2, 2], "x": 2.75, "y": 2}, @@ -183,7 +103,6 @@ {"matrix": [2, 11], "x": 11.75, "y": 2}, {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, {"matrix": [2, 15], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, {"matrix": [3, 2], "x": 2.25, "y": 3}, {"matrix": [3, 3], "x": 3.25, "y": 3}, @@ -198,7 +117,6 @@ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, {"matrix": [3, 13], "x": 14, "y": 3}, {"matrix": [3, 15], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, @@ -228,7 +146,6 @@ {"matrix": [0, 13], "x": 13, "y": 0}, {"matrix": [0, 14], "x": 14, "y": 0}, {"matrix": [0, 15], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, {"matrix": [1, 2], "x": 2.5, "y": 1}, @@ -244,7 +161,6 @@ {"matrix": [1, 12], "x": 12.5, "y": 1}, {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, {"matrix": [1, 15], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, {"matrix": [2, 1], "x": 1.75, "y": 2}, {"matrix": [2, 2], "x": 2.75, "y": 2}, @@ -259,7 +175,6 @@ {"matrix": [2, 11], "x": 11.75, "y": 2}, {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, {"matrix": [2, 15], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, {"matrix": [3, 2], "x": 2.25, "y": 3}, {"matrix": [3, 3], "x": 3.25, "y": 3}, @@ -274,7 +189,6 @@ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, {"matrix": [3, 13], "x": 14, "y": 3}, {"matrix": [3, 15], "x": 15, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, @@ -303,7 +217,6 @@ {"matrix": [0, 12], "x": 12, "y": 0}, {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, {"matrix": [0, 15], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, {"matrix": [1, 2], "x": 2.5, "y": 1}, @@ -319,7 +232,6 @@ {"matrix": [1, 12], "x": 12.5, "y": 1}, {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, {"matrix": [1, 15], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, {"matrix": [2, 1], "x": 1.75, "y": 2}, {"matrix": [2, 2], "x": 2.75, "y": 2}, @@ -334,7 +246,6 @@ {"matrix": [2, 11], "x": 11.75, "y": 2}, {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, {"matrix": [2, 15], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, {"matrix": [3, 2], "x": 2.25, "y": 3}, {"matrix": [3, 3], "x": 3.25, "y": 3}, @@ -349,7 +260,77 @@ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, {"matrix": [3, 13], "x": 14, "y": 3}, {"matrix": [3, 15], "x": 15, "y": 3}, - + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 15], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, {"matrix": [4, 1], "x": 1.5, "y": 4}, {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, @@ -377,7 +358,6 @@ {"matrix": [0, 12], "x": 12, "y": 0}, {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, {"matrix": [0, 15], "x": 15, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, {"matrix": [1, 2], "x": 2.5, "y": 1}, @@ -392,7 +372,6 @@ {"matrix": [1, 11], "x": 11.5, "y": 1}, {"matrix": [1, 12], "x": 12.5, "y": 1}, {"matrix": [1, 15], "x": 15, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, {"matrix": [2, 1], "x": 1.75, "y": 2}, {"matrix": [2, 2], "x": 2.75, "y": 2}, @@ -408,7 +387,6 @@ {"matrix": [2, 12], "x": 12.75, "y": 2}, {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, {"matrix": [2, 15], "x": 15, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, {"matrix": [3, 1], "x": 1.25, "y": 3}, {"matrix": [3, 2], "x": 2.25, "y": 3}, @@ -424,7 +402,80 @@ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, {"matrix": [3, 13], "x": 14, "y": 3}, {"matrix": [3, 15], "x": 15, "y": 3}, - + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_default": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25}, + {"matrix": [2, 15], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, From e17878ad1571b21f33901fe555f1ed73e69a685a Mon Sep 17 00:00:00 2001 From: Olivier Mehani Date: Mon, 14 Apr 2025 02:14:34 +1000 Subject: [PATCH 327/365] kradoindustries_promenade: add LAYOUT_1x2u (#25090) --- .../kradoindustries/promenade/keyboard.json | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/keyboards/kradoindustries/promenade/keyboard.json b/keyboards/kradoindustries/promenade/keyboard.json index 028ba1b24df..1de6ef73156 100644 --- a/keyboards/kradoindustries/promenade/keyboard.json +++ b/keyboards/kradoindustries/promenade/keyboard.json @@ -201,6 +201,81 @@ {"matrix": [4, 13], "x":13.5, "y":4, "w":1.5} ] }, + "LAYOUT_1x2u": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0, "w":1.5}, + {"matrix": [0, 1], "x":1.5, "y":0}, + {"matrix": [0, 2], "x":2.5, "y":0}, + {"matrix": [0, 3], "x":3.5, "y":0}, + {"matrix": [0, 4], "x":4.5, "y":0}, + {"matrix": [0, 5], "x":5.5, "y":0}, + {"matrix": [0, 6], "x":6.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0, 10], "x":10.5, "y":0}, + {"matrix": [0, 11], "x":11.5, "y":0}, + {"matrix": [0, 12], "x":12.5, "y":0}, + {"matrix": [0, 13], "x":13.5, "y":0, "w":1.5}, + + {"matrix": [1, 0], "x":0, "y":1, "w":1.5}, + {"matrix": [1, 1], "x":1.5, "y":1}, + {"matrix": [1, 2], "x":2.5, "y":1}, + {"matrix": [1, 3], "x":3.5, "y":1}, + {"matrix": [1, 4], "x":4.5, "y":1}, + {"matrix": [1, 5], "x":5.5, "y":1}, + {"matrix": [1, 6], "x":6.5, "y":1, "h":1.5}, + {"matrix": [1, 7], "x":7.5, "y":1, "h":1.5}, + {"matrix": [1, 8], "x":8.5, "y":1}, + {"matrix": [1, 9], "x":9.5, "y":1}, + {"matrix": [1, 10], "x":10.5, "y":1}, + {"matrix": [1, 11], "x":11.5, "y":1}, + {"matrix": [1, 12], "x":12.5, "y":1}, + {"matrix": [1, 13], "x":13.5, "y":1, "w":1.5}, + + {"matrix": [2, 0], "x":0, "y":2, "w":1.5}, + {"matrix": [2, 1], "x":1.5, "y":2}, + {"matrix": [2, 2], "x":2.5, "y":2}, + {"matrix": [2, 3], "x":3.5, "y":2}, + {"matrix": [2, 4], "x":4.5, "y":2}, + {"matrix": [2, 5], "x":5.5, "y":2}, + {"matrix": [2, 8], "x":8.5, "y":2}, + {"matrix": [2, 9], "x":9.5, "y":2}, + {"matrix": [2, 10], "x":10.5, "y":2}, + {"matrix": [2, 11], "x":11.5, "y":2}, + {"matrix": [2, 12], "x":12.5, "y":2}, + {"matrix": [2, 13], "x":13.5, "y":2, "w":1.5}, + + {"matrix": [3, 0], "x":0, "y":3, "w":1.5}, + {"matrix": [3, 1], "x":1.5, "y":3}, + {"matrix": [3, 2], "x":2.5, "y":3}, + {"matrix": [3, 3], "x":3.5, "y":3}, + {"matrix": [3, 4], "x":4.5, "y":3}, + {"matrix": [3, 5], "x":5.5, "y":3}, + {"matrix": [3, 6], "x":6.5, "y":2.5, "h":1.5}, + {"matrix": [3, 7], "x":7.5, "y":2.5, "h":1.5}, + {"matrix": [3, 8], "x":8.5, "y":3}, + {"matrix": [3, 9], "x":9.5, "y":3}, + {"matrix": [3, 10], "x":10.5, "y":3}, + {"matrix": [3, 11], "x":11.5, "y":3}, + {"matrix": [3, 12], "x":12.5, "y":3}, + {"matrix": [3, 13], "x":13.5, "y":3, "w":1.5}, + + {"matrix": [4, 0], "x":0, "y":4, "w":1.5}, + {"matrix": [4, 1], "x":1.5, "y":4}, + {"matrix": [4, 2], "x":2.5, "y":4}, + {"matrix": [4, 3], "x":3.5, "y":4}, + {"matrix": [4, 4], "x":4.5, "y":4}, + {"matrix": [4, 5], "x":5.5, "y":4}, + {"matrix": [4, 6], "x":6.5, "y":4, "w":2}, + {"matrix": [4, 8], "x":8.5, "y":4}, + {"matrix": [4, 9], "x":9.5, "y":4}, + {"matrix": [4, 10], "x":10.5, "y":4}, + {"matrix": [4, 11], "x":11.5, "y":4}, + {"matrix": [4, 12], "x":12.5, "y":4}, + {"matrix": [4, 13], "x":13.5, "y":4, "w":1.5} + ] + }, "LAYOUT_2x3u": { "layout": [ {"matrix": [0, 0], "x":0, "y":0, "w":1.5}, From d99eb01ee48ad6ade4904a79a5c7a3efe4861eba Mon Sep 17 00:00:00 2001 From: Sylvain Huguet Date: Sun, 13 Apr 2025 18:19:12 +0200 Subject: [PATCH 328/365] Update shuguet/shu89 (#24780) * Update keyboard.json Update mod keys location in RGB layout. * Update keyboard.json * Update keyboards/shuguet/shu89/keyboard.json Co-authored-by: Ryan --------- Co-authored-by: Ryan --- keyboards/shuguet/shu89/keyboard.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/keyboards/shuguet/shu89/keyboard.json b/keyboards/shuguet/shu89/keyboard.json index 072734b5440..c3e0d0e61a4 100644 --- a/keyboards/shuguet/shu89/keyboard.json +++ b/keyboards/shuguet/shu89/keyboard.json @@ -217,34 +217,34 @@ {"matrix": [0, 8], "x": 80, "y": 0, "flags": 4}, {"matrix": [0, 9], "x": 104, "y": 0, "flags": 4}, - {"matrix": [1, 4], "x": 16, "y": 13, "flags": 4}, + {"matrix": [1, 4], "x": 0, "y": 13, "flags": 4}, + {"matrix": [2, 4], "x": 20, "y": 13, "flags": 4}, {"matrix": [1, 5], "x": 32, "y": 13, "flags": 4}, {"matrix": [1, 6], "x": 48, "y": 13, "flags": 4}, {"matrix": [1, 7], "x": 64, "y": 13, "flags": 4}, {"matrix": [1, 8], "x": 80, "y": 13, "flags": 4}, {"matrix": [1, 9], "x": 96, "y": 13, "flags": 4}, - {"matrix": [2, 4], "x": 0, "y": 13, "flags": 4}, - + + {"matrix": [3, 4], "x": 0, "y": 26, "flags": 4}, {"matrix": [2, 5], "x": 20, "y": 26, "flags": 4}, {"matrix": [2, 6], "x": 36, "y": 26, "flags": 4}, {"matrix": [2, 7], "x": 52, "y": 26, "flags": 4}, {"matrix": [2, 8], "x": 68, "y": 26, "flags": 4}, {"matrix": [2, 9], "x": 84, "y": 26, "flags": 4}, - {"matrix": [3, 4], "x": 0, "y": 26, "flags": 4}, + {"matrix": [4, 4], "x": 0, "y": 39, "flags": 5}, {"matrix": [3, 5], "x": 24, "y": 39, "flags": 4}, {"matrix": [3, 6], "x": 40, "y": 39, "flags": 4}, {"matrix": [3, 7], "x": 56, "y": 39, "flags": 4}, {"matrix": [3, 8], "x": 72, "y": 39, "flags": 4}, {"matrix": [3, 9], "x": 88, "y": 39, "flags": 4}, - {"matrix": [4, 4], "x": 0, "y": 39, "flags": 5}, + {"matrix": [5, 4], "x": 0, "y": 51, "flags": 5}, {"matrix": [4, 5], "x": 28, "y": 51, "flags": 4}, {"matrix": [4, 6], "x": 44, "y": 51, "flags": 4}, {"matrix": [4, 7], "x": 60, "y": 51, "flags": 4}, {"matrix": [4, 8], "x": 76, "y": 51, "flags": 4}, {"matrix": [4, 9], "x": 92, "y": 51, "flags": 4}, - {"matrix": [5, 4], "x": 0, "y": 51, "flags": 5}, {"matrix": [5, 5], "x": 0, "y": 64, "flags": 5}, {"matrix": [5, 6], "x": 20, "y": 64, "flags": 5}, @@ -274,6 +274,7 @@ {"matrix": [7, 8], "x": 220, "y": 13, "flags": 4}, {"matrix": [7, 9], "x": 224, "y": 13, "flags": 4}, + {"matrix": [9, 0], "x": 100, "y": 26, "flags": 4}, {"matrix": [8, 0], "x": 116, "y": 26, "flags": 4}, {"matrix": [8, 1], "x": 132, "y": 26, "flags": 4}, {"matrix": [8, 2], "x": 148, "y": 26, "flags": 4}, @@ -284,23 +285,22 @@ {"matrix": [8, 7], "x": 216, "y": 26, "flags": 4}, {"matrix": [8, 8], "x": 220, "y": 26, "flags": 4}, {"matrix": [8, 9], "x": 224, "y": 26, "flags": 4}, - {"matrix": [9, 0], "x": 100, "y": 26, "flags": 4}, - + + {"matrix": [10, 0], "x": 104, "y": 39, "flags": 4}, {"matrix": [9, 1], "x": 120, "y": 39, "flags": 4}, {"matrix": [9, 2], "x": 136, "y": 39, "flags": 4}, {"matrix": [9, 3], "x": 152, "y": 39, "flags": 4}, {"matrix": [9, 4], "x": 168, "y": 39, "flags": 4}, {"matrix": [9, 5], "x": 184, "y": 39, "flags": 4}, {"matrix": [9, 6], "x": 200, "y": 39, "flags": 4}, - {"matrix": [10, 0], "x": 104, "y": 39, "flags": 4}, - + + {"matrix": [11, 0], "x": 108, "y": 51, "flags": 4}, {"matrix": [10, 1], "x": 124, "y": 51, "flags": 4}, {"matrix": [10, 2], "x": 140, "y": 51, "flags": 4}, {"matrix": [10, 3], "x": 156, "y": 51, "flags": 4}, {"matrix": [10, 4], "x": 172, "y": 51, "flags": 4}, {"matrix": [10, 6], "x": 188, "y": 51, "flags": 5}, {"matrix": [10, 8], "x": 216, "y": 51, "flags": 4}, - {"matrix": [11, 0], "x": 108, "y": 51, "flags": 4}, {"matrix": [11, 1], "x": 118, "y": 64, "flags": 4}, {"matrix": [11, 3], "x": 144, "y": 64, "flags": 5}, From 1388daa0cc2f9e3e171de8ed5388ee94c8a9103a Mon Sep 17 00:00:00 2001 From: suikagiken <115451678+suikagiken@users.noreply.github.com> Date: Mon, 14 Apr 2025 01:20:42 +0900 Subject: [PATCH 329/365] [Keyboard] Add suika83opti (#24991) --- .../suikagiken/suika83opti/keyboard.json | 115 ++++++++++++++++++ .../suika83opti/keymaps/default/keymap.json | 24 ++++ keyboards/suikagiken/suika83opti/readme.md | 43 +++++++ 3 files changed, 182 insertions(+) create mode 100644 keyboards/suikagiken/suika83opti/keyboard.json create mode 100644 keyboards/suikagiken/suika83opti/keymaps/default/keymap.json create mode 100644 keyboards/suikagiken/suika83opti/readme.md diff --git a/keyboards/suikagiken/suika83opti/keyboard.json b/keyboards/suikagiken/suika83opti/keyboard.json new file mode 100644 index 00000000000..d9876434fe1 --- /dev/null +++ b/keyboards/suikagiken/suika83opti/keyboard.json @@ -0,0 +1,115 @@ +{ + "manufacturer": "suikagiken", + "keyboard_name": "suika83opti", + "maintainer": "suikagiken", + "processor": "RP2040", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15"], + "rows": ["GP29", "GP28", "GP27", "GP26", "GP25", "GP24"] + }, + "url": "https://github.com/suikagiken/suika83opti", + "usb": { + "device_version": "1.0.0", + "vid": "0x4B48", + "pid": "0x0101" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0,0], "x": 0, "y": 0}, + {"matrix": [0,1], "x": 1.5, "y": 0}, + {"matrix": [0,2], "x": 2.5, "y": 0}, + {"matrix": [0,3], "x": 3.5, "y": 0}, + {"matrix": [0,4], "x": 4.5, "y": 0}, + {"matrix": [0,5], "x": 7, "y": 0}, + {"matrix": [0,6], "x": 8, "y": 0}, + {"matrix": [0,8], "x": 9, "y": 0}, + {"matrix": [0,9], "x": 10, "y": 0}, + {"matrix": [0,10], "x": 12.75, "y": 0}, + {"matrix": [0,11], "x": 13.75, "y": 0}, + {"matrix": [0,12], "x": 14.75, "y": 0}, + {"matrix": [0,13], "x": 15.75, "y": 0}, + {"matrix": [0,15], "x": 17.25, "y": 0}, + {"matrix": [1,0], "x": 0, "y": 1.5}, + {"matrix": [1,1], "x": 1, "y": 1.5}, + {"matrix": [1,2], "x": 2, "y": 1.5}, + {"matrix": [1,3], "x": 3, "y": 1.5}, + {"matrix": [1,4], "x": 4, "y": 1.5}, + {"matrix": [1,5], "x": 5, "y": 1.5}, + {"matrix": [1,6], "x": 6, "y": 1.5}, + {"matrix": [1,7], "x": 8.5, "y": 1.5}, + {"matrix": [1,9], "x": 11.5, "y": 1.5}, + {"matrix": [1,10], "x": 12.5, "y": 1.5}, + {"matrix": [1,11], "x": 13.5, "y": 1.5}, + {"matrix": [1,12], "x": 14.5, "y": 1.5}, + {"matrix": [1,13], "x": 15.5, "y": 1.5}, + {"matrix": [1,15], "x": 17.25, "y": 1.5, "h": 1.5}, + {"matrix": [2,0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2,1], "x": 1.5, "y": 2.5}, + {"matrix": [2,2], "x": 2.5, "y": 2.5}, + {"matrix": [2,3], "x": 3.5, "y": 2.5}, + {"matrix": [2,4], "x": 4.5, "y": 2.5}, + {"matrix": [2,5], "x": 5.5, "y": 2.5}, + {"matrix": [2,7], "x": 8.5, "y": 2.5}, + {"matrix": [2,9], "x": 11, "y": 2.5}, + {"matrix": [2,10], "x": 12, "y": 2.5}, + {"matrix": [2,11], "x": 13, "y": 2.5}, + {"matrix": [2,12], "x": 14, "y": 2.5}, + {"matrix": [2,13], "x": 15, "y": 2.5}, + {"matrix": [2,14], "x": 16, "y": 2.5}, + {"matrix": [3,0], "x": 0.25, "y": 3.5, "w": 1.5}, + {"matrix": [3,1], "x": 1.75, "y": 3.5}, + {"matrix": [3,2], "x": 2.75, "y": 3.5}, + {"matrix": [3,3], "x": 3.75, "y": 3.5}, + {"matrix": [3,4], "x": 4.75, "y": 3.5}, + {"matrix": [3,5], "x": 5.75, "y": 3.5}, + {"matrix": [3,6], "x": 8, "y": 3.5}, + {"matrix": [3,8], "x": 9, "y": 3.5}, + {"matrix": [3,9], "x": 11.25, "y": 3.5}, + {"matrix": [3,10], "x": 12.25, "y": 3.5}, + {"matrix": [3,11], "x": 13.25, "y": 3.5}, + {"matrix": [3,12], "x": 14.25, "y": 3.5}, + {"matrix": [3,13], "x": 15.25, "y": 3.5}, + {"matrix": [3,14], "x": 16.25, "y": 3.5}, + {"matrix": [3,15], "x": 17.25, "y": 3, "h": 1.5}, + {"matrix": [4,0], "x": 0.75, "y": 4.5, "w": 1.5}, + {"matrix": [4,1], "x": 2.25, "y": 4.5}, + {"matrix": [4,2], "x": 3.25, "y": 4.5}, + {"matrix": [4,3], "x": 4.25, "y": 4.5}, + {"matrix": [4,4], "x": 5.25, "y": 4.5}, + {"matrix": [4,5], "x": 6.25, "y": 4.5}, + {"matrix": [4,7], "x": 8.5, "y": 4.5}, + {"matrix": [4,9], "x": 10.75, "y": 4.5}, + {"matrix": [4,10], "x": 11.75, "y": 4.5}, + {"matrix": [4,11], "x": 12.75, "y": 4.5}, + {"matrix": [4,12], "x": 13.75, "y": 4.5}, + {"matrix": [4,13], "x": 14.75, "y": 4.5}, + {"matrix": [4,14], "x": 15.75, "y": 4.5}, + {"matrix": [4,15], "x": 16.75, "y": 4.5}, + {"matrix": [5,0], "x": 1.25, "y": 5.5, "w": 1.5}, + {"matrix": [5,1], "x": 2.75, "y": 5.5}, + {"matrix": [5,2], "x": 3.75, "y": 5.5}, + {"matrix": [5,3], "x": 4.75, "y": 5.5}, + {"matrix": [5,4], "x": 5.75, "y": 5.5, "w": 1.5}, + {"matrix": [5,6], "x": 7.5, "y": 5.5}, + {"matrix": [5,7], "x": 8.5, "y": 5.5}, + {"matrix": [5,8], "x": 9.5, "y": 5.5}, + {"matrix": [5,9], "x": 10.75, "y": 5.5, "w": 1.5}, + {"matrix": [5,10], "x": 12.25, "y": 5.5}, + {"matrix": [5,11], "x": 13.25, "y": 5.5}, + {"matrix": [5,12], "x": 14.25, "y": 5.5}, + {"matrix": [5,13], "x": 15.25, "y": 5.5, "w": 1.5} + ] + } + } +} diff --git a/keyboards/suikagiken/suika83opti/keymaps/default/keymap.json b/keyboards/suikagiken/suika83opti/keymaps/default/keymap.json new file mode 100644 index 00000000000..8434463eb8f --- /dev/null +++ b/keyboards/suikagiken/suika83opti/keymaps/default/keymap.json @@ -0,0 +1,24 @@ +{ + "author": "suikagiken", + "keyboard": "suikagiken/suika83opti", + "keymap": "default", + "layout": "LAYOUT", + "layers": [ + [ + "KC_ESC" , "KC_F1" , "KC_F2" , "KC_F3" , "KC_F4" , "KC_F5" , "KC_F6" , "KC_F7" , "KC_F8" , "KC_F9" , "KC_F10" , "KC_F11" , "KC_F12" , "KC_DEL" , + "KC_GRV" , "KC_1" , "KC_2" , "KC_3" , "KC_4" , "KC_5" , "KC_6" , "KC_PSCR", "KC_7" , "KC_8" , "KC_9" , "KC_0" , "KC_MINS", "KC_BSPC", + "KC_TAB" , "KC_Q" , "KC_W" , "KC_E" , "KC_R" , "KC_T" , "KC_EQL" , "KC_Y" , "KC_U" , "KC_I" , "KC_O" , "KC_P" , "KC_BSLS", + "KC_CAPS", "KC_A" , "KC_S" , "KC_D" , "KC_F" , "KC_G" , "KC_LBRC", "KC_RBRC", "KC_H" , "KC_J" , "KC_K" , "KC_L" , "KC_SCLN", "KC_QUOT", "KC_ENT" , + "KC_LSFT", "KC_Z" , "KC_X" , "KC_C" , "KC_V" , "KC_B" , "KC_UP" , "KC_B" , "KC_N" , "KC_M" , "KC_COMM", "KC_DOT" , "KC_SLSH", "KC_RSFT", + "KC_LCTL", "KC_LWIN", "KC_LOPT", "MO(1)" , "KC_SPC" , "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_SPC" , "MO(1)" , "KC_ROPT", "KC_APP" , "KC_RCTL" + ], + [ + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_PGUP", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_HOME", "KC_PGDN", "KC_END" , "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" + ] + ] +} diff --git a/keyboards/suikagiken/suika83opti/readme.md b/keyboards/suikagiken/suika83opti/readme.md new file mode 100644 index 00000000000..cbd83950873 --- /dev/null +++ b/keyboards/suikagiken/suika83opti/readme.md @@ -0,0 +1,43 @@ +# suika83opti +(English Follows Japanese) + +## 概要 +![suika83opti1](https://imgur.com/eJOI2Ax.jpg) +![suika83opti2](https://imgur.com/kVtW5gt.jpg) + +suika83optiはロースタッガードの一体型エルゴキーボードです。 +ファンクションキーや矢印キーなど、コンパクトキーボードでは省略されがちなキーも備えており、フルキーボードからの移行も容易です。 + +* 制作 : すいか技研 (Website: https://suikagiken.net GitHub: [suikagiken](https://github.com/suikagiken) ) +* 販売 : すいか技研の[booth](https://suikagiken.booth.pm/)にて販売予定です + +## ビルドガイド + +[こちら](https://github.com/suikagiken/suika83opti/blob/main/buildguide_1.0.md)からご覧下さい。 + +--- + +## Overview + +suika83opti is a row-staggered ergonomic keyboard with 85 keys. It has function keys or arrow keys, which are omitted in compact keyboards, making it easy to switch from a conventional full keyboard. + +* Keyboard Maintainer: [suikagiken](https://github.com/suikagiken) +* Hardware Availability: Available at [booth](https://suikagiken.booth.pm/). + +Make example for this keyboard (after setting up your build environment): + + make suikagiken/suika83opti:default + +Flashing example for this keyboard: + + make suikagiken/suika83opti:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From a7bf8e64a584c9a0930f4aa701a09a6e1de7e117 Mon Sep 17 00:00:00 2001 From: Stefan Kerkmann Date: Sun, 13 Apr 2025 18:36:13 +0200 Subject: [PATCH 330/365] [chore]: move and rename mouse/scroll min/max defines (#25141) * protocol: move {XY/HV}_REPORT_{MIN,MAX} into report.h ..to allow easier re-use in other code implementations. * protocol: rename {XY/HV}_REPORT_{MIN/MAX} to MOUSE_REPORT_{XY/HV}_{MIN/MAX} ..to avoid naming collisions. --- drivers/sensors/pimoroni_trackball.c | 12 ++++++------ quantum/pointing_device/pointing_device.c | 16 ++++++++-------- quantum/pointing_device/pointing_device.h | 10 +--------- tmk_core/protocol/report.h | 8 ++++++++ 4 files changed, 23 insertions(+), 23 deletions(-) diff --git a/drivers/sensors/pimoroni_trackball.c b/drivers/sensors/pimoroni_trackball.c index afbe3d5b77f..06e50429537 100644 --- a/drivers/sensors/pimoroni_trackball.c +++ b/drivers/sensors/pimoroni_trackball.c @@ -101,12 +101,12 @@ int16_t pimoroni_trackball_get_offsets(uint8_t negative_dir, uint8_t positive_di } mouse_xy_report_t pimoroni_trackball_adapt_values(xy_clamp_range_t *offset) { - if (*offset > XY_REPORT_MAX) { - *offset -= XY_REPORT_MAX; - return (mouse_xy_report_t)XY_REPORT_MAX; - } else if (*offset < XY_REPORT_MIN) { - *offset += XY_REPORT_MAX; - return (mouse_xy_report_t)XY_REPORT_MIN; + if (*offset > MOUSE_REPORT_XY_MAX) { + *offset -= MOUSE_REPORT_XY_MAX; + return (mouse_xy_report_t)MOUSE_REPORT_XY_MAX; + } else if (*offset < MOUSE_REPORT_XY_MIN) { + *offset += MOUSE_REPORT_XY_MAX; + return (mouse_xy_report_t)MOUSE_REPORT_XY_MIN; } else { mouse_xy_report_t temp_return = *offset; *offset = 0; diff --git a/quantum/pointing_device/pointing_device.c b/quantum/pointing_device/pointing_device.c index cac2875fc8d..e26416f9681 100644 --- a/quantum/pointing_device/pointing_device.c +++ b/quantum/pointing_device/pointing_device.c @@ -404,10 +404,10 @@ void pointing_device_set_cpi_on_side(bool left, uint16_t cpi) { * @return mouse_hv_report_t clamped value */ static inline mouse_hv_report_t pointing_device_hv_clamp(hv_clamp_range_t value) { - if (value < HV_REPORT_MIN) { - return HV_REPORT_MIN; - } else if (value > HV_REPORT_MAX) { - return HV_REPORT_MAX; + if (value < MOUSE_REPORT_HV_MIN) { + return MOUSE_REPORT_HV_MIN; + } else if (value > MOUSE_REPORT_HV_MAX) { + return MOUSE_REPORT_HV_MAX; } else { return value; } @@ -420,10 +420,10 @@ static inline mouse_hv_report_t pointing_device_hv_clamp(hv_clamp_range_t value) * @return mouse_xy_report_t clamped value */ static inline mouse_xy_report_t pointing_device_xy_clamp(xy_clamp_range_t value) { - if (value < XY_REPORT_MIN) { - return XY_REPORT_MIN; - } else if (value > XY_REPORT_MAX) { - return XY_REPORT_MAX; + if (value < MOUSE_REPORT_XY_MIN) { + return MOUSE_REPORT_XY_MIN; + } else if (value > MOUSE_REPORT_XY_MAX) { + return MOUSE_REPORT_XY_MAX; } else { return value; } diff --git a/quantum/pointing_device/pointing_device.h b/quantum/pointing_device/pointing_device.h index 72188c977dd..7bc059e594e 100644 --- a/quantum/pointing_device/pointing_device.h +++ b/quantum/pointing_device/pointing_device.h @@ -92,27 +92,19 @@ typedef enum { } pointing_device_buttons_t; #ifdef MOUSE_EXTENDED_REPORT -# define XY_REPORT_MIN INT16_MIN -# define XY_REPORT_MAX INT16_MAX typedef int32_t xy_clamp_range_t; #else -# define XY_REPORT_MIN INT8_MIN -# define XY_REPORT_MAX INT8_MAX typedef int16_t xy_clamp_range_t; #endif #ifdef WHEEL_EXTENDED_REPORT -# define HV_REPORT_MIN INT16_MIN -# define HV_REPORT_MAX INT16_MAX typedef int32_t hv_clamp_range_t; #else -# define HV_REPORT_MIN INT8_MIN -# define HV_REPORT_MAX INT8_MAX typedef int16_t hv_clamp_range_t; #endif #define CONSTRAIN_HID(amt) ((amt) < INT8_MIN ? INT8_MIN : ((amt) > INT8_MAX ? INT8_MAX : (amt))) -#define CONSTRAIN_HID_XY(amt) ((amt) < XY_REPORT_MIN ? XY_REPORT_MIN : ((amt) > XY_REPORT_MAX ? XY_REPORT_MAX : (amt))) +#define CONSTRAIN_HID_XY(amt) ((amt) < MOUSE_REPORT_XY_MIN ? MOUSE_REPORT_XY_MIN : ((amt) > MOUSE_REPORT_XY_MAX ? MOUSE_REPORT_XY_MAX : (amt))) void pointing_device_init(void); bool pointing_device_task(void); diff --git a/tmk_core/protocol/report.h b/tmk_core/protocol/report.h index d854f51d5c4..9053b0bb3f0 100644 --- a/tmk_core/protocol/report.h +++ b/tmk_core/protocol/report.h @@ -194,14 +194,22 @@ typedef struct { } PACKED report_programmable_button_t; #ifdef MOUSE_EXTENDED_REPORT +# define MOUSE_REPORT_XY_MIN INT16_MIN +# define MOUSE_REPORT_XY_MAX INT16_MAX typedef int16_t mouse_xy_report_t; #else +# define MOUSE_REPORT_XY_MIN INT8_MIN +# define MOUSE_REPORT_XY_MAX INT8_MAX typedef int8_t mouse_xy_report_t; #endif #ifdef WHEEL_EXTENDED_REPORT +# define MOUSE_REPORT_HV_MIN INT16_MIN +# define MOUSE_REPORT_HV_MAX INT16_MAX typedef int16_t mouse_hv_report_t; #else +# define MOUSE_REPORT_HV_MIN INT8_MIN +# define MOUSE_REPORT_HV_MAX INT8_MAX typedef int8_t mouse_hv_report_t; #endif From 8d8dcb089ed36e7e1a61d77e5a4b6b08c8668869 Mon Sep 17 00:00:00 2001 From: Pascal Getreuer <50221757+getreuer@users.noreply.github.com> Date: Mon, 14 Apr 2025 09:46:24 -0700 Subject: [PATCH 331/365] [Core] Flow Tap tap-hold option to disable HRMs during fast typing (#25125) aka Global Quick Tap, Require Prior Idle --- data/mappings/info_config.hjson | 1 + docs/tap_hold.md | 83 +++++ quantum/action.c | 17 + quantum/action.h | 6 + quantum/action_tapping.c | 138 ++++++-- quantum/action_tapping.h | 57 ++++ quantum/process_keycode/process_leader.c | 6 +- .../tap_hold_configurations/flow_tap/config.h | 22 ++ .../tap_hold_configurations/flow_tap/test.mk | 18 + .../flow_tap/test_keymap.c | 23 ++ .../flow_tap/test_tap_hold.cpp | 313 ++++++++++++++++++ 11 files changed, 648 insertions(+), 36 deletions(-) create mode 100644 tests/tap_hold_configurations/flow_tap/config.h create mode 100644 tests/tap_hold_configurations/flow_tap/test.mk create mode 100644 tests/tap_hold_configurations/flow_tap/test_keymap.c create mode 100644 tests/tap_hold_configurations/flow_tap/test_tap_hold.cpp diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson index b643553b526..bab881583a7 100644 --- a/data/mappings/info_config.hjson +++ b/data/mappings/info_config.hjson @@ -201,6 +201,7 @@ // Tapping "CHORDAL_HOLD": {"info_key": "tapping.chordal_hold", "value_type": "flag"}, + "FLOW_TAP_TERM": {"info_key": "tapping.flow_tap_term", "value_type": "int"}, "HOLD_ON_OTHER_KEY_PRESS": {"info_key": "tapping.hold_on_other_key_press", "value_type": "flag"}, "HOLD_ON_OTHER_KEY_PRESS_PER_KEY": {"info_key": "tapping.hold_on_other_key_press_per_key", "value_type": "flag"}, "PERMISSIVE_HOLD": {"info_key": "tapping.permissive_hold", "value_type": "flag"}, diff --git a/docs/tap_hold.md b/docs/tap_hold.md index 254d5de5ec1..f1af753ebad 100644 --- a/docs/tap_hold.md +++ b/docs/tap_hold.md @@ -425,6 +425,89 @@ uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t *record) { If `QUICK_TAP_TERM` is set higher than `TAPPING_TERM`, it will default to `TAPPING_TERM`. ::: +## Flow Tap + +Flow Tap modifies mod-tap `MT` and layer-tap `LT` keys such that when pressed within a short timeout of the preceding key, the tapping behavior is triggered. This is particularly useful for home row mods to avoid accidental mod triggers. It basically disables the hold behavior during fast typing, creating a "flow of taps." This also helps to reduce the input lag of tap-hold keys during fast typing, since the tapped behavior is sent immediately. + +Flow Tap is enabled by defining `FLOW_TAP_TERM` in your `config.h` with the desired timeout in milliseconds. A timeout of 150 ms is recommended as a starting point: + +```c +#define FLOW_TAP_TERM 150 +``` + +By default, Flow Tap is enabled when: + +* The tap-hold key is pressed within `FLOW_TAP_TERM` milliseconds of the previous key press. + +* The tapping keycodes of the previous key and tap-hold key are *both* among `KC_A`–`KC_Z`, `KC_COMM`, `KC_DOT`, `KC_SCLN`, `KC_SLSH` (the main alphas area of a conventional QWERTY layout) or `KC_SPC`. + +As an exception to the above, Flow Tap is temporarily disabled while a tap-hold key is undecided. This is to allow chording multiple mod-tap keys without having to wait out the Flow Tap term. + + +### is_flow_tap_key() + +Optionally, define the `is_flow_tap_key()` callback to specify where Flow Tap is enabled. The callback is called for both the tap-hold key *and* the key press immediately preceding it, and if the callback returns true for both keycodes, Flow Tap is enabled. + +The default implementation of this callback is: + +```.c +bool is_flow_tap_key(uint16_t keycode) { + if ((get_mods() & (MOD_MASK_CG | MOD_BIT_LALT)) != 0) { + return false; // Disable Flow Tap on hotkeys. + } + switch (get_tap_keycode(keycode)) { + case KC_SPC: + case KC_A ... KC_Z: + case KC_DOT: + case KC_COMM: + case KC_SCLN: + case KC_SLSH: + return true; + } + return false; +} +``` + +Copy the above to your `keymap.c` and edit to customize. For instance, remove the `case KC_SPC` line to disable Flow Tap for the Space key. + +### get_flow_tap_term() + +Optionally, for further flexibility, define the `get_flow_tap_term()` callback. Flow Tap acts only when key events are closer together than the time returned by the callback. Return a time of 0 to disable filtering. In this way, Flow Tap may be disabled for certain tap-hold keys, or when following certain previous keys. + +The default implementation of this callback is + +```.c +uint16_t get_flow_tap_term(uint16_t keycode, keyrecord_t* record, + uint16_t prev_keycode) { + if (is_flow_tap_key(keycode) && is_flow_tap_key(prev_keycode)) { + return FLOW_TAP_TERM; + } + return 0; +} +``` + +In this callback, `keycode` and `record` correspond to the current tap-hold key, and `prev_keycode` is the keycode of the previous key. Return the timeout to use. Returning `0` disables Flow Tap. This callback enables setting per-key timeouts. It is also possible to enable or disable Flow Tap for certain tap-hold keys or when following certain previous keys. Example: + +```c +uint16_t get_flow_tap_term(uint16_t keycode, keyrecord_t* record, + uint16_t prev_keycode) { + if (is_flow_tap_key(keycode) && is_flow_tap_key(prev_keycode)) { + switch (keycode) { + case LCTL_T(KC_F): + case RCTL_T(KC_H): + return FLOW_TAP_TERM - 25; // Short timeout on these keys. + + default: + return FLOW_TAP_TERM; // Longer timeout otherwise. + } + } + return 0; // Disable Flow Tap. +} +``` + +::: tip If you define both `is_flow_tap_key()` and `get_flow_tap_term()`, then the latter takes precedence. +::: + ## Chordal Hold Chordal Hold is intended to be used together with either Permissive Hold or Hold diff --git a/quantum/action.c b/quantum/action.c index be85192d25a..eb0dbc70223 100644 --- a/quantum/action.c +++ b/quantum/action.c @@ -1183,6 +1183,23 @@ bool is_tap_action(action_t action) { return false; } +uint16_t get_tap_keycode(uint16_t keycode) { + switch (keycode) { + case QK_MOD_TAP ... QK_MOD_TAP_MAX: + return QK_MOD_TAP_GET_TAP_KEYCODE(keycode); + case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: + return QK_LAYER_TAP_GET_TAP_KEYCODE(keycode); + case QK_SWAP_HANDS ... QK_SWAP_HANDS_MAX: + // IS_SWAP_HANDS_KEYCODE() tests for the special action keycodes + // like SH_TOGG, SH_TT, ..., which overlap the SH_T(kc) range. + if (!IS_SWAP_HANDS_KEYCODE(keycode)) { + return QK_SWAP_HANDS_GET_TAP_KEYCODE(keycode); + } + break; + } + return keycode; +} + /** \brief Debug print (FIXME: Needs better description) * * FIXME: Needs documentation. diff --git a/quantum/action.h b/quantum/action.h index 7596688f31d..7616486c6d8 100644 --- a/quantum/action.h +++ b/quantum/action.h @@ -128,6 +128,12 @@ void layer_switch(uint8_t new_layer); bool is_tap_record(keyrecord_t *record); bool is_tap_action(action_t action); +/** + * Given an MT or LT keycode, returns the tap keycode. Otherwise returns the + * original keycode unchanged. + */ +uint16_t get_tap_keycode(uint16_t keycode); + #ifndef NO_ACTION_TAPPING void process_record_tap_hint(keyrecord_t *record); #endif diff --git a/quantum/action_tapping.c b/quantum/action_tapping.c index e42a98554d3..312c6391696 100644 --- a/quantum/action_tapping.c +++ b/quantum/action_tapping.c @@ -4,6 +4,7 @@ #include "action.h" #include "action_layer.h" #include "action_tapping.h" +#include "action_util.h" #include "keycode.h" #include "timer.h" @@ -49,9 +50,7 @@ __attribute__((weak)) bool get_permissive_hold(uint16_t keycode, keyrecord_t *re } # endif -# if defined(CHORDAL_HOLD) -extern const char chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS] PROGMEM; - +# if defined(CHORDAL_HOLD) || defined(FLOW_TAP_TERM) # define REGISTERED_TAPS_SIZE 8 // Array of tap-hold keys that have been settled as tapped but not yet released. static keypos_t registered_taps[REGISTERED_TAPS_SIZE] = {}; @@ -66,6 +65,14 @@ static void registered_taps_del_index(uint8_t i); /** Logs the registered_taps array for debugging. */ static void debug_registered_taps(void); +static bool is_mt_or_lt(uint16_t keycode) { + return IS_QK_MOD_TAP(keycode) || IS_QK_LAYER_TAP(keycode); +} +# endif // defined(CHORDAL_HOLD) || defined(FLOW_TAP_TERM) + +# if defined(CHORDAL_HOLD) +extern const char chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS] PROGMEM; + /** \brief Finds which queued events should be held according to Chordal Hold. * * In a situation with multiple unsettled tap-hold key presses, scan the queue @@ -82,10 +89,6 @@ static void waiting_buffer_chordal_hold_taps_until(keypos_t key); /** \brief Processes and pops buffered events until the first tap-hold event. */ static void waiting_buffer_process_regular(void); - -static bool is_mt_or_lt(uint16_t keycode) { - return IS_QK_MOD_TAP(keycode) || IS_QK_LAYER_TAP(keycode); -} # endif // CHORDAL_HOLD # ifdef HOLD_ON_OTHER_KEY_PRESS_PER_KEY @@ -98,6 +101,13 @@ __attribute__((weak)) bool get_hold_on_other_key_press(uint16_t keycode, keyreco # include "process_auto_shift.h" # endif +# if defined(FLOW_TAP_TERM) +static uint32_t last_input = 0; +static uint16_t prev_keycode = KC_NO; + +uint16_t get_flow_tap_term(uint16_t keycode, keyrecord_t *record, uint16_t prev_keycode); +# endif // defined(FLOW_TAP_TERM) + static keyrecord_t tapping_key = {}; static keyrecord_t waiting_buffer[WAITING_BUFFER_SIZE] = {}; static uint8_t waiting_buffer_head = 0; @@ -147,6 +157,19 @@ void action_tapping_process(keyrecord_t record) { } } if (IS_EVENT(record.event)) { +# if defined(FLOW_TAP_TERM) + const uint16_t keycode = get_record_keycode(&record, false); + // Track the previous key press. + if (record.event.pressed) { + prev_keycode = keycode; + } + // If there is no unsettled tap-hold key, update last input time. Ignore + // mod keys in this update to allow for chording multiple mods for + // hotkeys like "Ctrl+Shift+arrow". + if (IS_NOEVENT(tapping_key.event) && !IS_MODIFIER_KEYCODE(keycode)) { + last_input = timer_read32(); + } +# endif // defined(FLOW_TAP_TERM) ac_dprintf("\n"); } } @@ -205,7 +228,7 @@ void action_tapping_process(keyrecord_t record) { bool process_tapping(keyrecord_t *keyp) { const keyevent_t event = keyp->event; -# if defined(CHORDAL_HOLD) +# if defined(CHORDAL_HOLD) || defined(FLOW_TAP_TERM) if (!event.pressed) { const int8_t i = registered_tap_find(event.key); if (i != -1) { @@ -217,7 +240,7 @@ bool process_tapping(keyrecord_t *keyp) { debug_registered_taps(); } } -# endif // CHORDAL_HOLD +# endif // defined(CHORDAL_HOLD) || defined(FLOW_TAP_TERM) // state machine is in the "reset" state, no tapping key is to be // processed @@ -227,6 +250,27 @@ bool process_tapping(keyrecord_t *keyp) { } else if (event.pressed && is_tap_record(keyp)) { // the currently pressed key is a tapping key, therefore transition // into the "pressed" tapping key state + +# if defined(FLOW_TAP_TERM) + const uint16_t keycode = get_record_keycode(keyp, false); + if (is_mt_or_lt(keycode)) { + const uint32_t idle_time = timer_elapsed32(last_input); + uint16_t term = get_flow_tap_term(keycode, keyp, prev_keycode); + if (term > 500) { + term = 500; + } + if (idle_time < 500 && idle_time < term) { + debug_event(keyp->event); + ac_dprintf(" within flow tap term (%u < %u) considered a tap\n", (int16_t)idle_time, term); + keyp->tap.count = 1; + registered_taps_add(keyp->event.key); + debug_registered_taps(); + process_record(keyp); + return true; + } + } +# endif // defined(FLOW_TAP_TERM) + ac_dprintf("Tapping: Start(Press tap key).\n"); tapping_key = *keyp; process_record_tap_hint(&tapping_key); @@ -655,28 +699,7 @@ void waiting_buffer_scan_tap(void) { } } -# ifdef CHORDAL_HOLD -__attribute__((weak)) bool get_chordal_hold(uint16_t tap_hold_keycode, keyrecord_t *tap_hold_record, uint16_t other_keycode, keyrecord_t *other_record) { - return get_chordal_hold_default(tap_hold_record, other_record); -} - -bool get_chordal_hold_default(keyrecord_t *tap_hold_record, keyrecord_t *other_record) { - if (tap_hold_record->event.type != KEY_EVENT || other_record->event.type != KEY_EVENT) { - return true; // Return true on combos or other non-key events. - } - - char tap_hold_hand = chordal_hold_handedness(tap_hold_record->event.key); - if (tap_hold_hand == '*') { - return true; - } - char other_hand = chordal_hold_handedness(other_record->event.key); - return other_hand == '*' || tap_hold_hand != other_hand; -} - -__attribute__((weak)) char chordal_hold_handedness(keypos_t key) { - return (char)pgm_read_byte(&chordal_hold_layout[key.row][key.col]); -} - +# if defined(CHORDAL_HOLD) || defined(FLOW_TAP_TERM) static void registered_taps_add(keypos_t key) { if (num_registered_taps >= REGISTERED_TAPS_SIZE) { ac_dprintf("TAPS OVERFLOW: CLEAR ALL STATES\n"); @@ -714,6 +737,30 @@ static void debug_registered_taps(void) { ac_dprintf("}\n"); } +# endif // defined(CHORDAL_HOLD) || defined(FLOW_TAP_TERM) + +# ifdef CHORDAL_HOLD +__attribute__((weak)) bool get_chordal_hold(uint16_t tap_hold_keycode, keyrecord_t *tap_hold_record, uint16_t other_keycode, keyrecord_t *other_record) { + return get_chordal_hold_default(tap_hold_record, other_record); +} + +bool get_chordal_hold_default(keyrecord_t *tap_hold_record, keyrecord_t *other_record) { + if (tap_hold_record->event.type != KEY_EVENT || other_record->event.type != KEY_EVENT) { + return true; // Return true on combos or other non-key events. + } + + char tap_hold_hand = chordal_hold_handedness(tap_hold_record->event.key); + if (tap_hold_hand == '*') { + return true; + } + char other_hand = chordal_hold_handedness(other_record->event.key); + return other_hand == '*' || tap_hold_hand != other_hand; +} + +__attribute__((weak)) char chordal_hold_handedness(keypos_t key) { + return (char)pgm_read_byte(&chordal_hold_layout[key.row][key.col]); +} + static uint8_t waiting_buffer_find_chordal_hold_tap(void) { keyrecord_t *prev = &tapping_key; uint16_t prev_keycode = get_record_keycode(&tapping_key, false); @@ -761,6 +808,35 @@ static void waiting_buffer_process_regular(void) { } # endif // CHORDAL_HOLD +# ifdef FLOW_TAP_TERM +// By default, enable Flow Tap for the keys in the main alphas area and Space. +// This should work reasonably even if the layout is remapped on the host to an +// alt layout or international layout (e.g. Dvorak or AZERTY), where these same +// key positions are mostly used for typing letters. +__attribute__((weak)) bool is_flow_tap_key(uint16_t keycode) { + if ((get_mods() & (MOD_MASK_CG | MOD_BIT_LALT)) != 0) { + return false; // Disable Flow Tap on hotkeys. + } + switch (get_tap_keycode(keycode)) { + case KC_SPC: + case KC_A ... KC_Z: + case KC_DOT: + case KC_COMM: + case KC_SCLN: + case KC_SLSH: + return true; + } + return false; +} + +__attribute__((weak)) uint16_t get_flow_tap_term(uint16_t keycode, keyrecord_t *record, uint16_t prev_keycode) { + if (is_flow_tap_key(keycode) && is_flow_tap_key(prev_keycode)) { + return FLOW_TAP_TERM; + } + return 0; +} +# endif // FLOW_TAP_TERM + /** \brief Logs tapping key if ACTION_DEBUG is enabled. */ static void debug_tapping_key(void) { ac_dprintf("TAPPING_KEY="); diff --git a/quantum/action_tapping.h b/quantum/action_tapping.h index c3c7b999ec9..2af000ad73d 100644 --- a/quantum/action_tapping.h +++ b/quantum/action_tapping.h @@ -111,6 +111,63 @@ char chordal_hold_handedness(keypos_t key); extern const char chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS] PROGMEM; #endif +#ifdef FLOW_TAP_TERM +/** + * Callback to specify the keys where Flow Tap is enabled. + * + * Flow Tap is constrained to certain keys by the following rule: this callback + * is called for both the tap-hold key *and* the key press immediately preceding + * it. If the callback returns true for both keycodes, Flow Tap is enabled. + * + * The default implementation of this callback corresponds to + * + * bool is_flow_tap_key(uint16_t keycode) { + * switch (get_tap_keycode(keycode)) { + * case KC_SPC: + * case KC_A ... KC_Z: + * case KC_DOT: + * case KC_COMM: + * case KC_SCLN: + * case KC_SLSH: + * return true; + * } + * return false; + * } + * + * @param keycode Keycode of the key. + * @return Whether to enable Flow Tap for this key. + */ +bool is_flow_tap_key(uint16_t keycode); + +/** + * Callback to customize Flow Tap filtering. + * + * Flow Tap acts only when key events are closer together than this time. + * + * Return a time of 0 to disable filtering. In this way, Flow Tap may be + * disabled for certain tap-hold keys, or when following certain previous keys. + * + * The default implementation of this callback is + * + * uint16_t get_flow_tap_term(uint16_t keycode, keyrecord_t* record, + * uint16_t prev_keycode) { + * if (is_flow_tap_key(keycode) && is_flow_tap_key(prev_keycode)) { + * return g_flow_tap_term; + * } + * return 0; + * } + * + * NOTE: If both `is_flow_tap_key()` and `get_flow_tap_term()` are defined, then + * `get_flow_tap_term()` takes precedence. + * + * @param keycode Keycode of the tap-hold key. + * @param record keyrecord_t of the tap-hold event. + * @param prev_keycode Keycode of the previously pressed key. + * @return Time in milliseconds. + */ +uint16_t get_flow_tap_term(uint16_t keycode, keyrecord_t *record, uint16_t prev_keycode); +#endif // FLOW_TAP_TERM + #ifdef DYNAMIC_TAPPING_TERM_ENABLE extern uint16_t g_tapping_term; #endif diff --git a/quantum/process_keycode/process_leader.c b/quantum/process_keycode/process_leader.c index ca017a577de..a5466c513ce 100644 --- a/quantum/process_keycode/process_leader.c +++ b/quantum/process_keycode/process_leader.c @@ -22,11 +22,7 @@ bool process_leader(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { if (leader_sequence_active() && !leader_sequence_timed_out()) { #ifndef LEADER_KEY_STRICT_KEY_PROCESSING - if (IS_QK_MOD_TAP(keycode)) { - keycode = QK_MOD_TAP_GET_TAP_KEYCODE(keycode); - } else if (IS_QK_LAYER_TAP(keycode)) { - keycode = QK_LAYER_TAP_GET_TAP_KEYCODE(keycode); - } + keycode = get_tap_keycode(keycode); #endif if (!leader_sequence_add(keycode)) { diff --git a/tests/tap_hold_configurations/flow_tap/config.h b/tests/tap_hold_configurations/flow_tap/config.h new file mode 100644 index 00000000000..a17d4882145 --- /dev/null +++ b/tests/tap_hold_configurations/flow_tap/config.h @@ -0,0 +1,22 @@ +/* Copyright 2022 Vladislav Kucheriavykh + * Copyright 2025 Google LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "test_common.h" + +#define FLOW_TAP_TERM 150 diff --git a/tests/tap_hold_configurations/flow_tap/test.mk b/tests/tap_hold_configurations/flow_tap/test.mk new file mode 100644 index 00000000000..81ba8da66d4 --- /dev/null +++ b/tests/tap_hold_configurations/flow_tap/test.mk @@ -0,0 +1,18 @@ +# Copyright 2022 Vladislav Kucheriavykh +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +COMBO_ENABLE = yes + +INTROSPECTION_KEYMAP_C = test_keymap.c diff --git a/tests/tap_hold_configurations/flow_tap/test_keymap.c b/tests/tap_hold_configurations/flow_tap/test_keymap.c new file mode 100644 index 00000000000..4dfe5e4cb69 --- /dev/null +++ b/tests/tap_hold_configurations/flow_tap/test_keymap.c @@ -0,0 +1,23 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "quantum.h" + +uint16_t const mt_lt_combo[] = {SFT_T(KC_X), LT(1, KC_Y), COMBO_END}; + +// clang-format off +combo_t key_combos[] = { + COMBO(mt_lt_combo, KC_Z), +}; +// clang-format on diff --git a/tests/tap_hold_configurations/flow_tap/test_tap_hold.cpp b/tests/tap_hold_configurations/flow_tap/test_tap_hold.cpp new file mode 100644 index 00000000000..7816fcb6da0 --- /dev/null +++ b/tests/tap_hold_configurations/flow_tap/test_tap_hold.cpp @@ -0,0 +1,313 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "keyboard_report_util.hpp" +#include "keycode.h" +#include "test_common.hpp" +#include "action_tapping.h" +#include "test_fixture.hpp" +#include "test_keymap_key.hpp" + +using testing::_; +using testing::AnyNumber; +using testing::InSequence; + +class FlowTapTest : public TestFixture {}; + +TEST_F(FlowTapTest, short_flow_tap_settled_as_tapped) { + TestDriver driver; + InSequence s; + auto regular_key = KeymapKey(0, 0, 0, KC_A); + auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_B)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_C)); + + set_keymap({regular_key, mod_tap_key1, mod_tap_key2}); + + // Tap regular key. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap key 1 quickly after regular key. The mod-tap should settle + // immediately as tapped, sending `KC_B`. + EXPECT_REPORT(driver, (KC_B)); + mod_tap_key1.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap key 2 quickly. + EXPECT_REPORT(driver, (KC_B, KC_C)); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Hold for longer than the tapping term. + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap keys. + EXPECT_REPORT(driver, (KC_C)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key1.release(); + run_one_scan_loop(); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(FlowTapTest, long_flow_tap_settled_as_held) { + TestDriver driver; + InSequence s; + auto regular_key = KeymapKey(0, 0, 0, KC_A); + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_B)); + + set_keymap({regular_key, mod_tap_key}); + + // Tap regular key. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap key. + EXPECT_NO_REPORT(driver); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Hold for the tapping term. + EXPECT_REPORT(driver, (KC_LSFT)); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(FlowTapTest, holding_multiple_mod_taps) { + TestDriver driver; + InSequence s; + auto regular_key = KeymapKey(0, 0, 0, KC_A); + auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_B)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_C)); + + set_keymap({regular_key, mod_tap_key1, mod_tap_key2}); + + // Tap regular key. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap keys. + EXPECT_NO_REPORT(driver); + mod_tap_key1.press(); + run_one_scan_loop(); + mod_tap_key2.press(); + idle_for(TAPPING_TERM - 5); // Hold almost until tapping term. + VERIFY_AND_CLEAR(driver); + + // Press regular key. + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_REPORT(driver, (KC_LSFT, KC_LCTL)); + EXPECT_REPORT(driver, (KC_LSFT, KC_LCTL, KC_A)); + regular_key.press(); + idle_for(10); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_REPORT(driver, (KC_LSFT, KC_LCTL)); + EXPECT_REPORT(driver, (KC_LCTL)); + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + mod_tap_key1.release(); + run_one_scan_loop(); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(FlowTapTest, layer_tap_key) { + TestDriver driver; + InSequence s; + auto regular_key = KeymapKey(0, 0, 0, KC_A); + auto layer_tap_key = KeymapKey(0, 1, 0, LT(1, KC_B)); + auto regular_key2 = KeymapKey(1, 0, 0, KC_C); + + set_keymap({regular_key, layer_tap_key, regular_key2}); + + // Tap regular key. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key); + VERIFY_AND_CLEAR(driver); + + // Press layer-tap key, quickly after the regular key. + EXPECT_REPORT(driver, (KC_B)); + layer_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Release layer-tap key. + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.release(); + run_one_scan_loop(); + + // Tap regular key. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Press layer-tap key, slowly after the regular key. + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM + 1); + EXPECT_EQ(layer_state, 1 << 1); + VERIFY_AND_CLEAR(driver); + + // Tap regular key2. + EXPECT_REPORT(driver, (KC_C)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key); + VERIFY_AND_CLEAR(driver); + + // Release layer-tap key. + EXPECT_NO_REPORT(driver); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(FlowTapTest, combo_key) { + TestDriver driver; + InSequence s; + auto regular_key = KeymapKey(0, 0, 0, KC_A); + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_X)); + auto layer_tap_key = KeymapKey(0, 2, 0, LT(1, KC_Y)); + + set_keymap({regular_key, mod_tap_key, layer_tap_key}); + + // Tap regular key. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key); + VERIFY_AND_CLEAR(driver); + + // Press combo keys quickly after regular key. + EXPECT_REPORT(driver, (KC_Z)); + EXPECT_EMPTY_REPORT(driver); + tap_combo({mod_tap_key, layer_tap_key}); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap key quickly. + EXPECT_REPORT(driver, (KC_X)); + mod_tap_key.press(); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(FlowTapTest, oneshot_mod_key) { + TestDriver driver; + InSequence s; + auto regular_key = KeymapKey(0, 0, 0, KC_A); + auto osm_key = KeymapKey(0, 1, 0, OSM(MOD_LSFT)); + + set_keymap({regular_key, osm_key}); + + // Tap regular key. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key); + VERIFY_AND_CLEAR(driver); + + // Tap OSM, tap regular key. + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LSFT, KC_A)); + EXPECT_EMPTY_REPORT(driver); + tap_key(osm_key); + tap_key(regular_key); + VERIFY_AND_CLEAR(driver); + + // Nested press of OSM and regular keys. + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LSFT, KC_A)); + EXPECT_EMPTY_REPORT(driver); + osm_key.press(); + run_one_scan_loop(); + tap_key(regular_key); + osm_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(FlowTapTest, quick_tap) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_A)); + + set_keymap({mod_tap_key}); + + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + tap_key(mod_tap_key); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_A)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} From af141d1a5cd4a740e07f8195d9f1ec18e74bfdb7 Mon Sep 17 00:00:00 2001 From: Andrew Kannan Date: Mon, 14 Apr 2025 12:52:51 -0400 Subject: [PATCH 332/365] Add Link keyboard (#25058) Co-authored-by: jack Co-authored-by: Drashna Jaelre --- keyboards/cannonkeys/link/config.h | 27 ++++ keyboards/cannonkeys/link/halconf.h | 7 + keyboards/cannonkeys/link/keyboard.json | 135 ++++++++++++++++++ .../cannonkeys/link/keymaps/default/keymap.c | 31 ++++ keyboards/cannonkeys/link/link.c | 93 ++++++++++++ keyboards/cannonkeys/link/readme.md | 27 ++++ 6 files changed, 320 insertions(+) create mode 100644 keyboards/cannonkeys/link/config.h create mode 100644 keyboards/cannonkeys/link/halconf.h create mode 100644 keyboards/cannonkeys/link/keyboard.json create mode 100644 keyboards/cannonkeys/link/keymaps/default/keymap.c create mode 100644 keyboards/cannonkeys/link/link.c create mode 100644 keyboards/cannonkeys/link/readme.md diff --git a/keyboards/cannonkeys/link/config.h b/keyboards/cannonkeys/link/config.h new file mode 100644 index 00000000000..c244f7a56b5 --- /dev/null +++ b/keyboards/cannonkeys/link/config.h @@ -0,0 +1,27 @@ +/* Copyright 2024 CannonKeys */ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +/* VBUS-routed pin for upstream detection */ +#define USB_VBUS_PIN GP27 + +#define SPLIT_HAND_PIN_LOW_IS_LEFT + +// Configure full duplex split comms over PIO +#define SERIAL_USART_FULL_DUPLEX +#define SERIAL_USART_TX_PIN GP28 +#define SERIAL_USART_RX_PIN GP29 +#define SERIAL_USART_PIN_SWAP + +/* RP2040- and hardware-specific config */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U +#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 + +/* I2C for OLEDs */ +#define I2C_DRIVER I2CD1 +#define I2C1_SDA_PIN GP14 +#define I2C1_SCL_PIN GP15 + +#define OLED_DISPLAY_64X128 diff --git a/keyboards/cannonkeys/link/halconf.h b/keyboards/cannonkeys/link/halconf.h new file mode 100644 index 00000000000..538c60c0b21 --- /dev/null +++ b/keyboards/cannonkeys/link/halconf.h @@ -0,0 +1,7 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_I2C TRUE +#include_next diff --git a/keyboards/cannonkeys/link/keyboard.json b/keyboards/cannonkeys/link/keyboard.json new file mode 100644 index 00000000000..e5692cd4587 --- /dev/null +++ b/keyboards/cannonkeys/link/keyboard.json @@ -0,0 +1,135 @@ +{ + "manufacturer": "CannonKeys", + "keyboard_name": "Link", + "maintainer": "awkannan", + "bootloader": "rp2040", + "bootmagic": { + "matrix": [0, 5] + }, + "build": { + "debounce_type": "asym_eager_defer_pk" + }, + "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 6 + }, + "encoder": { + "rotary": [ + {"pin_a": "GP12", "pin_b": "GP13", "resolution": 2} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "oled": true + }, + "matrix_pins": { + "cols": ["GP17", "GP18", "GP19", "GP20", "GP21", "GP24"], + "rows": ["GP25", "GP26", "GP16", "GP11", "GP10"] + }, + "processor": "RP2040", + "qmk": { + "tap_keycode_delay": 10 + }, + "split": { + "bootmagic": { + "matrix": [5, 5] + }, + "enabled": true, + "handedness": { + "pin": "GP8" + }, + "matrix_pins": { + "right": { + "cols": ["GP16", "GP11", "GP10", "GP3", "GP2", "GP1"], + "rows": ["GP9", "GP0", "GP17", "GP18", "GP19"] + } + }, + "serial": { + "driver": "vendor" + }, + "transport": { + "sync": { + "layer_state": true, + "matrix_state": true, + "oled": true, + "wpm": true + } + } + }, + "url": "https://cannonkeys.com/", + "usb": { + "device_version": "0.0.1", + "pid": "0x0038", + "vid": "0xCA04" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 5], "x": 0, "y": 0}, + {"matrix": [0, 4], "x": 1, "y": 0}, + {"matrix": [0, 3], "x": 2, "y": 0}, + {"matrix": [0, 2], "x": 3, "y": 0}, + {"matrix": [0, 1], "x": 4, "y": 0}, + {"matrix": [0, 0], "x": 5, "y": 0}, + {"matrix": [5, 0], "x": 11, "y": 0}, + {"matrix": [5, 1], "x": 12, "y": 0}, + {"matrix": [5, 2], "x": 13, "y": 0}, + {"matrix": [5, 3], "x": 14, "y": 0}, + {"matrix": [5, 4], "x": 15, "y": 0}, + {"matrix": [5, 5], "x": 16, "y": 0}, + {"matrix": [1, 5], "x": 0, "y": 1}, + {"matrix": [1, 4], "x": 1, "y": 1}, + {"matrix": [1, 3], "x": 2, "y": 1}, + {"matrix": [1, 2], "x": 3, "y": 1}, + {"matrix": [1, 1], "x": 4, "y": 1}, + {"matrix": [1, 0], "x": 5, "y": 1}, + {"matrix": [6, 0], "x": 11, "y": 1}, + {"matrix": [6, 1], "x": 12, "y": 1}, + {"matrix": [6, 2], "x": 13, "y": 1}, + {"matrix": [6, 3], "x": 14, "y": 1}, + {"matrix": [6, 4], "x": 15, "y": 1}, + {"matrix": [6, 5], "x": 16, "y": 1}, + {"matrix": [2, 5], "x": 0, "y": 2}, + {"matrix": [2, 4], "x": 1, "y": 2}, + {"matrix": [2, 3], "x": 2, "y": 2}, + {"matrix": [2, 2], "x": 3, "y": 2}, + {"matrix": [2, 1], "x": 4, "y": 2}, + {"matrix": [2, 0], "x": 5, "y": 2}, + {"matrix": [7, 0], "x": 11, "y": 2}, + {"matrix": [7, 1], "x": 12, "y": 2}, + {"matrix": [7, 2], "x": 13, "y": 2}, + {"matrix": [7, 3], "x": 14, "y": 2}, + {"matrix": [7, 4], "x": 15, "y": 2}, + {"matrix": [7, 5], "x": 16, "y": 2}, + {"matrix": [3, 5], "x": 0, "y": 3}, + {"matrix": [3, 4], "x": 1, "y": 3}, + {"matrix": [3, 3], "x": 2, "y": 3}, + {"matrix": [3, 2], "x": 3, "y": 3}, + {"matrix": [3, 1], "x": 4, "y": 3}, + {"matrix": [3, 0], "x": 5, "y": 3}, + {"matrix": [4, 5], "x": 6, "y": 3}, + {"matrix": [9, 5], "x": 10, "y": 3}, + {"matrix": [8, 0], "x": 11, "y": 3}, + {"matrix": [8, 1], "x": 12, "y": 3}, + {"matrix": [8, 2], "x": 13, "y": 3}, + {"matrix": [8, 3], "x": 14, "y": 3}, + {"matrix": [8, 4], "x": 15, "y": 3}, + {"matrix": [8, 5], "x": 16, "y": 3}, + {"matrix": [4, 4], "x": 2, "y": 4}, + {"matrix": [4, 3], "x": 3, "y": 4}, + {"matrix": [4, 2], "x": 4, "y": 4}, + {"matrix": [4, 1], "x": 5, "y": 4}, + {"matrix": [4, 0], "x": 6, "y": 4, "h": 1.5}, + {"matrix": [9, 0], "x": 10, "y": 4, "h": 1.5}, + {"matrix": [9, 1], "x": 11, "y": 4}, + {"matrix": [9, 2], "x": 12, "y": 4}, + {"matrix": [9, 3], "x": 13, "y": 4}, + {"matrix": [9, 4], "x": 14, "y": 4} + ] + } + } +} diff --git a/keyboards/cannonkeys/link/keymaps/default/keymap.c b/keyboards/cannonkeys/link/keymaps/default/keymap.c new file mode 100644 index 00000000000..eba810d8682 --- /dev/null +++ b/keyboards/cannonkeys/link/keymaps/default/keymap.c @@ -0,0 +1,31 @@ +// Copyright 2025 Andrew Kannan (awkannan) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_MPLY, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LGUI, KC_LALT, KC_LCTL, MO(1), KC_ENT, KC_SPC, MO(2), KC_RCTL, KC_RALT, KC_RGUI +), + +[1] = LAYOUT( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F12, + KC_WREF, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE, + KC_TRNS, KC_EQL, KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_DOT, KC_COLN, KC_BSLS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +), + +[2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_INS, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CAPS, KC_PGUP, KC_MPRV, KC_MNXT, KC_PSCR, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +) +}; diff --git a/keyboards/cannonkeys/link/link.c b/keyboards/cannonkeys/link/link.c new file mode 100644 index 00000000000..2d0d2cb5572 --- /dev/null +++ b/keyboards/cannonkeys/link/link.c @@ -0,0 +1,93 @@ +// Copyright 2025 Andrew Kannan (awkannan) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#ifdef OLED_ENABLE +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + if (is_keyboard_master()) { + return OLED_ROTATION_0; + } else { + return OLED_ROTATION_90; + } + return rotation; +} + +static void render_logo(void) { + static const char PROGMEM qmk_logo[] = { + 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, + 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, + 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0 + }; + oled_write_P(qmk_logo, false); +} + +void print_status_narrow(void) { + oled_write_P(PSTR("\n\n"), false); + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_ln_P(PSTR("Qwrt"), false); + break; + case 1: + oled_write_ln_P(PSTR("Clmk"), false); + break; + default: + oled_write_P(PSTR("Mod\n"), false); + break; + } + oled_write_P(PSTR("\n\n"), false); + oled_write_ln_P(PSTR("LAYER"), false); + switch (get_highest_layer(layer_state)) { + case 0: + case 1: + oled_write_P(PSTR("Base\n"), false); + break; + case 2: + oled_write_P(PSTR("Raise"), false); + break; + case 3: + oled_write_P(PSTR("Lower"), false); + break; + default: + oled_write_ln_P(PSTR("Undef"), false); + } + oled_write_P(PSTR("\n\n"), false); + led_t led_usb_state = host_keyboard_led_state(); + oled_write_ln_P(PSTR("CPSLK"), led_usb_state.caps_lock); +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + if (is_keyboard_master()) { + print_status_narrow(); + } else { + render_logo(); + } + return true; +} + +#endif + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { + return false; + } + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (index == 1) { + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } + return true; +} +#endif diff --git a/keyboards/cannonkeys/link/readme.md b/keyboards/cannonkeys/link/readme.md new file mode 100644 index 00000000000..461be861800 --- /dev/null +++ b/keyboards/cannonkeys/link/readme.md @@ -0,0 +1,27 @@ +# Link + +The Link is a Sofle58 inspired Ergo Split keyboard from CannonKeys. +It uses 1.3" SH1107 screens and ALPS EC11 compatible encoders. + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: RP2040 +* Hardware Availability: [CannonKeys](https://cannonkeys.com) + + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/link:default + +Flashing example for this keyboard: + + make cannonkeys/link:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top-most and outer-most key in the matrix and plug in the keyboard +* **Physical reset button**: Hold the "BOOTMODE" button on the back of the PCB and briefly press the "RESET" button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 32b9d33bbbc1a9de503ef0aa2251089feae048ff Mon Sep 17 00:00:00 2001 From: jack Date: Mon, 14 Apr 2025 10:58:14 -0600 Subject: [PATCH 333/365] Remove Sofle `rgb_default` keymap & tidy readme's (#25010) --- keyboards/sofle/keyhive/config.h | 23 - keyboards/sofle/keyhive/keyboard.json | 1 - keyboards/sofle/keyhive/readme.md | 54 -- keyboards/sofle/keymaps/rgb_default/config.h | 124 ---- keyboards/sofle/keymaps/rgb_default/keymap.c | 559 ------------------- keyboards/sofle/keymaps/rgb_default/rules.mk | 7 - keyboards/sofle/readme.md | 25 +- keyboards/sofle/rev1/readme.md | 27 - 8 files changed, 19 insertions(+), 801 deletions(-) delete mode 100644 keyboards/sofle/keyhive/config.h delete mode 100644 keyboards/sofle/keyhive/readme.md delete mode 100644 keyboards/sofle/keymaps/rgb_default/config.h delete mode 100644 keyboards/sofle/keymaps/rgb_default/keymap.c delete mode 100644 keyboards/sofle/keymaps/rgb_default/rules.mk delete mode 100644 keyboards/sofle/rev1/readme.md diff --git a/keyboards/sofle/keyhive/config.h b/keyboards/sofle/keyhive/config.h deleted file mode 100644 index cda0be789e3..00000000000 --- a/keyboards/sofle/keyhive/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -// OLED settings -#define OLED_TIMEOUT 80000 -#define OLED_BRIGHTNESS 90 diff --git a/keyboards/sofle/keyhive/keyboard.json b/keyboards/sofle/keyhive/keyboard.json index 8c76e875b01..720327b75d7 100644 --- a/keyboards/sofle/keyhive/keyboard.json +++ b/keyboards/sofle/keyhive/keyboard.json @@ -1,5 +1,4 @@ { - "keyboard_name": "Sofle", "manufacturer": "Keyhive", "development_board": "elite_c", "usb": { diff --git a/keyboards/sofle/keyhive/readme.md b/keyboards/sofle/keyhive/readme.md deleted file mode 100644 index 3847dfe6bb1..00000000000 --- a/keyboards/sofle/keyhive/readme.md +++ /dev/null @@ -1,54 +0,0 @@ -# Keyhive Sofle Keyboard - -![SofleKeyboard version 2.1 RGB Keyhive](https://i.imgur.com/WH9OoWuh.jpg) - -Sofle is 6×4+5 keys column-staggered split keyboard. Based on Lily58, Corne and Helix keyboards. - -For details about the keyboard design, refer to Josef's blog: [Sofle Keyboard - a split keyboard based on Lily58 and Crkbd](https://josef-adamcik.cz/electronics/let-me-introduce-you-sofle-keyboard-split-keyboard-based-on-lily58.html) - -Build guide: [Keyhive Sofle RGB build guide](https://github.com/keyhive/build_guides/blob/master/docs/keyboards/sofle-rgb.md) - -* Keyboard Maintainer: [Winder](https://github.com/winder) -* Hardware Supported: Keyhive Sofle RGB, ProMicro / Elite-C -* Hardware Availability: [Keyhive](https://keyhive.xyz/shop/sofle) - -### Acknowledgements - -* Solartempest - the image on this page and most of the code is either copied directly or inspired by their fork. [Solartempest's fork.](https://github.com/solartempest/qmk_firmware/tree/master/keyboards/solartempest/sofle). -* [Keyhive fork](https://github.com/keyhive/qmk_firmware) defined all of the board settings. - -# Supported Keymaps - -The keyhive schematic has been slightly modified compared to the open source sofle and not all keymaps are compatible. - -* **default**: Basic functionality, no rgb, no VIA. -* [keyhive_via](../keymaps/keyhive_via/readme.md) - Includes rgblighting and special support for remapping encoders with VIA. -* **Other**: may work but backwards compatibility is not guaranteed or tested. - -# VIA Support -As of 1.3.1, the VIA tool does not support Keyhive/Sofle V2 out of the box. -See [keyhive_via](../keymaps/keyhive_via/readme.md) for details about configuring and using VIA. - -# Compiling - -Make example for this keyboard (after setting up your build environment): - - make sofle/keyhive:default - -## Flashing - -Flash using the correct command below (or use QMK Toolbox). These commands can be mixed if, for example, you have an Elite C on the left and a pro micro on the right. - -Press reset button on the keyboard when asked. - -Disconnect the first half, connect the second one and repeat the process. - - # for Pro Micro-based builds - make sofle/keyhive:default:avrdude-split-left - make sofle/keyhive:default:avrdude-split-right - - # for Elite C or DFU bootloader builds - make sofle/keyhive:default:dfu-split-left - make sofle/keyhive:default:dfu-split-right - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/sofle/keymaps/rgb_default/config.h b/keyboards/sofle/keymaps/rgb_default/config.h deleted file mode 100644 index 564133ce7a5..00000000000 --- a/keyboards/sofle/keymaps/rgb_default/config.h +++ /dev/null @@ -1,124 +0,0 @@ - /* Copyright 2021 Dane Evans - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . -*/ - #pragma once - - -//#define USE_MATRIX_I2C - -/* Select hand configuration */ - -///https://thomasbaart.nl/2018/12/01/reducing-firmware-size-in-qmk/ - -#define CUSTOM_FONT - -#define CUSTOM_LAYER_READ //if you remove this it causes issues - needs better guarding - - -#define QUICK_TAP_TERM 0 -#ifdef TAPPING_TERM - #undef TAPPING_TERM - #define TAPPING_TERM 200 -#endif -#define ENCODER_DIRECTION_FLIP - - -#define RGBLIGHT_SLEEP -// -#define RGBLIGHT_LAYERS - -/* ws2812 RGB LED */ -#define WS2812_DI_PIN D3 - - -#ifdef RGB_MATRIX_ENABLE -#define RGBLIGHT_LED_COUNT 35 // Number of LEDs -#define RGBLIGHT_LED_COUNT 35 // Number of LEDs -#define RGB_MATRIX_LED_COUNT RGBLIGHT_LED_COUNT -#endif - -#ifdef RGBLIGHT_ENABLE - #undef RGBLIGHT_LED_COUNT - - //#define RGBLIGHT_EFFECT_BREATHING - #define RGBLIGHT_EFFECT_RAINBOW_MOOD - //#define RGBLIGHT_EFFECT_RAINBOW_SWIRL - //#define RGBLIGHT_EFFECT_SNAKE - //#define RGBLIGHT_EFFECT_KNIGHT - //#define RGBLIGHT_EFFECT_CHRISTMAS - //#define RGBLIGHT_EFFECT_STATIC_GRADIENT - //#define RGBLIGHT_EFFECT_RGB_TEST - //#define RGBLIGHT_EFFECT_ALTERNATING - //#define RGBLIGHT_EFFECT_TWINKLE - - #define RGBLIGHT_LED_COUNT 70 - #undef RGBLED_SPLIT - #define RGBLED_SPLIT { 35, 35 } // haven't figured out how to use this yet - - //#define RGBLIGHT_LED_COUNT 30 - #undef RGBLIGHT_LIMIT_VAL - #define RGBLIGHT_LIMIT_VAL 120 - #define RGBLIGHT_HUE_STEP 10 - #define RGBLIGHT_SAT_STEP 17 - #define RGBLIGHT_VAL_STEP 17 -#endif - -#ifdef RGB_MATRIX_ENABLE -# define RGB_MATRIX_KEYPRESSES // reacts to keypresses -// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) -# define RGB_MATRIX_SLEEP // turn off effects when suspended -# define RGB_MATRIX_FRAMEBUFFER_EFFECTS -// # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) -// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) -# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. - -#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_GRADIENT_LEFT_RIGHT - -# define RGB_MATRIX_HUE_STEP 8 -# define RGB_MATRIX_SAT_STEP 8 -# define RGB_MATRIX_VAL_STEP 8 -# define RGB_MATRIX_SPD_STEP 10 - -/* Disable the animations you don't want/need. You will need to disable a good number of these * - * because they take up a lot of space. Disable until you can successfully compile your firmware. */ - // # undef ENABLE_RGB_MATRIX_ALPHAS_MODS - // # undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN - // # undef ENABLE_RGB_MATRIX_BREATHING - // # undef ENABLE_RGB_MATRIX_CYCLE_ALL - // # undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT - // # undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN - // # undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN - // # undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL - // # undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON - // # undef ENABLE_RGB_MATRIX_DUAL_BEACON - // # undef ENABLE_RGB_MATRIX_RAINBOW_BEACON - // # undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS - // # undef ENABLE_RGB_MATRIX_RAINDROPS - // # undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS - // # undef ENABLE_RGB_MATRIX_TYPING_HEATMAP - // # undef ENABLE_RGB_MATRIX_DIGITAL_RAIN - // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE - // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE - // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE - // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE - // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS - // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS - // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS - // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS - // # undef ENABLE_RGB_MATRIX_SPLASH - // # undef ENABLE_RGB_MATRIX_MULTISPLASH - // # undef ENABLE_RGB_MATRIX_SOLID_SPLASH - // # undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -#endif diff --git a/keyboards/sofle/keymaps/rgb_default/keymap.c b/keyboards/sofle/keymaps/rgb_default/keymap.c deleted file mode 100644 index e992cf9adb2..00000000000 --- a/keyboards/sofle/keymaps/rgb_default/keymap.c +++ /dev/null @@ -1,559 +0,0 @@ - - /* Copyright 2021 Dane Evans - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - // SOFLE RGB -#include - -#include QMK_KEYBOARD_H - -#define INDICATOR_BRIGHTNESS 30 - -#define HSV_OVERRIDE_HELP(h, s, v, Override) h, s , Override -#define HSV_OVERRIDE(hsv, Override) HSV_OVERRIDE_HELP(hsv,Override) - -// Light combinations -#define SET_INDICATORS(hsv) \ - {0, 1, HSV_OVERRIDE_HELP(hsv, INDICATOR_BRIGHTNESS)}, \ - {35+0, 1, hsv} -#define SET_UNDERGLOW(hsv) \ - {1, 6, hsv}, \ - {35+1, 6,hsv} -#define SET_NUMPAD(hsv) \ - {35+15, 5, hsv},\ - {35+22, 3, hsv},\ - {35+27, 3, hsv} -#define SET_NUMROW(hsv) \ - {10, 2, hsv}, \ - {20, 2, hsv}, \ - {30, 2, hsv}, \ - {35+ 10, 2, hsv}, \ - {35+ 20, 2, hsv}, \ - {35+ 30, 2, hsv} -#define SET_INNER_COL(hsv) \ - {33, 4, hsv}, \ - {35+ 33, 4, hsv} - -#define SET_OUTER_COL(hsv) \ - {7, 4, hsv}, \ - {35+ 7, 4, hsv} -#define SET_THUMB_CLUSTER(hsv) \ - {25, 2, hsv}, \ - {35+ 25, 2, hsv} -#define SET_LAYER_ID(hsv) \ - {0, 1, HSV_OVERRIDE_HELP(hsv, INDICATOR_BRIGHTNESS)}, \ - {35+0, 1, HSV_OVERRIDE_HELP(hsv, INDICATOR_BRIGHTNESS)}, \ - {1, 6, hsv}, \ - {35+1, 6, hsv}, \ - {7, 4, hsv}, \ - {35+ 7, 4, hsv}, \ - {25, 2, hsv}, \ - {35+ 25, 2, hsv} - - -enum sofle_layers { - _DEFAULTS = 0, - _QWERTY = 0, - _COLEMAK, - _COLEMAKDH, - _LOWER, - _RAISE, - _ADJUST, - _NUMPAD, - _SWITCH -}; - -enum custom_keycodes { - KC_LOWER = SAFE_RANGE, - KC_RAISE, - KC_ADJUST, - KC_D_MUTE -}; - -#define KC_QWERTY PDF(_QWERTY) -#define KC_COLEMAK PDF(_COLEMAK) -#define KC_COLEMAKDH PDF(_COLEMAKDH) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* - * QWERTY - * ,-----------------------------------------. ,-----------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | TAB | Q | W | E | R | T | | Y | U | I | O | P | Bspc | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * |LShift| A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | - * |------+------+------+------+------+------| MUTE | |DISCORD|------+------+------+------+------+------| - * | LCTR | Z | X | C | V | B |-------| |-------| N | M | , | . | / |LShift| - * `-----------------------------------------/ / \ \-----------------------------------------' - * | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE |RAISE | RCTR | RAlt | - * | | | | |/ / \ \ | | | | | - * `----------------------------------' '------''---------------------------' - */ - [_QWERTY] = LAYOUT( - //,------------------------------------------------. ,---------------------------------------------------. - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LT(_SWITCH,KC_6), KC_7, KC_8, KC_9, KC_0, KC_GRV, - //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| - LT(_NUMPAD,KC_TAB),KC_Q,KC_W,KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| - KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| - KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_D_MUTE,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, - //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| - KC_BSPC, KC_LGUI, KC_LOWER, KC_SPC, KC_ENT , KC_SPC, KC_ENT , KC_RAISE, KC_RCTL, KC_RALT - // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/ -), - -/* - * COLEMAK - * ,-----------------------------------------. ,-----------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | TAB | Q | W | F | P | G | | J | L | U | Y | ; | Bspc | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * |LShift| A | R | S | T | D |-------. ,-------| H | N | E | I | O | ' | - * |------+------+------+------+------+------| MUTE | |DISCORD|------+------+------+------+------+------| - * | LCTR | Z | X | C | V | B |-------| |-------| K | M | , | . | / |LShift| - * `-----------------------------------------/ / \ \-----------------------------------------' - * | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE |RAISE | RCTR | RAlt | - * | | | | |/ / \ \ | | | | | - * `----------------------------------' '------''---------------------------' - */ -[_COLEMAK] = LAYOUT( - //,------------------------------------------------. ,---------------------------------------------------. - KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, LT(_SWITCH,KC_6), KC_7, KC_8, KC_9, KC_0, KC_TRNS, - //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| - KC_TRNS, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_TRNS, - //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| - KC_TRNS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_TRNS, - //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| - KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_TRNS, KC_TRNS,KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS, - //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/ -), - -/* - * COLEMAK-DH - * ,-----------------------------------------. ,-----------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | TAB | Q | W | F | P | B | | J | L | U | Y | ; | Bspc | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * |LShift| A | R | S | T | G |-------. ,-------| M | N | E | I | O | ' | - * |------+------+------+------+------+------| MUTE | |DISCORD|------+------+------+------+------+------| - * | LCTR | Z | X | C | D | V |-------| |-------| K | H | , | . | / |LShift| - * `-----------------------------------------/ / \ \-----------------------------------------' - * | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE |RAISE | RCTR | RAlt | - * | | | | |/ / \ \ | | | | | - * `----------------------------------' '------''---------------------------' - */ -[_COLEMAKDH] = LAYOUT( - //,------------------------------------------------. ,---------------------------------------------------. - KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, LT(_SWITCH,KC_6), KC_7, KC_8, KC_9, KC_0, KC_TRNS, - //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| - KC_TRNS, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_TRNS, - //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| - KC_TRNS, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_TRNS, - //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| - KC_TRNS, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_TRNS, KC_TRNS,KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS, - //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/ -), - -/* LOWER - * ,-----------------------------------------. ,-----------------------------------------. - * | trans| F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | trans| ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | | | - * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| - * | trans| = | - | + | { | } |-------| |-------| [ | ] | ; | : | \ | Shift| - * `-----------------------------------------/ / \ \-----------------------------------------' - * | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE |RAISE | RCTR | RAlt | - * | | | | |/ / \ \ | | | | | - * `----------------------------------' '------''---------------------------' - */ -[_LOWER] = LAYOUT( - //,------------------------------------------------. ,---------------------------------------------------. - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| - _______, KC_NO, KC_NO, KC_NO, KC_WH_U, KC_PGUP, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_DEL, - //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| - _______, KC_NO, KC_NO, KC_NO, KC_WH_D, KC_PGDN,_______, _______,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______, - //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/ -), -/* RAISE - * ,----------------------------------------. ,-----------------------------------------. - * | | | | | | | | | | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Esc | Ins | Pscr | Menu | | | | | PWrd | Up | NWrd | DLine| Bspc | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Tab | LAt | LCtl |LShift| | Caps |-------. ,-------| | Left | Down | Rigth| Del | Bspc | - * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| - * |Shift | Undo | Cut | Copy | Paste| |-------| |-------| | LStr | | LEnd | | Shift| - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | - * | | | | |/ / \ \ | | | | | - * `----------------------------------' '------''---------------------------' - */ -[_RAISE] = LAYOUT( - //,------------------------------------------------. ,---------------------------------------------------. - _______, _______ , _______ , _______ , _______ , _______, _______, _______ , _______, _______ , _______ ,_______, - //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| - _______, KC_INS, KC_PSCR, KC_APP, XXXXXXX, XXXXXXX, KC_CIRC, KC_AMPR,KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| - _______, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_CAPS, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV, - //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| - _______,KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, XXXXXXX,_______, _______,KC_UNDS, KC_PLUS,KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD, - //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/ -), -/* ADJUST - * ,-----------------------------------------. ,-----------------------------------------. - * | | | | | | | | | | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | QK_BOOT| | | | | | | | | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * |UG_TOGG|hue^ |sat ^ | bri ^| |COLEMAK|-------. ,-------|desk <| | |desk >| | | - * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| - * | mode | hue dn|sat d|bri dn| |QWERTY|-------| |-------| | PREV | PLAY | NEXT | | | - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | - * | | | | |/ / \ \ | | | | | - * `----------------------------------' '------''---------------------------' - */ - [_ADJUST] = LAYOUT( - //,------------------------------------------------. ,---------------------------------------------------. - EE_CLR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| - QK_BOOT, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| - UG_TOGG, UG_HUEU,UG_SATU, UG_VALU, KC_COLEMAKDH,KC_COLEMAK, C(G(KC_LEFT)),KC_NO,KC_NO,C(G(KC_RGHT)),XXXXXXX, XXXXXXX, - //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| - UG_NEXT, UG_HUED,UG_SATD, UG_VALD, XXXXXXX,KC_QWERTY,XXXXXXX, XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, - //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/ -), -/* NUMPAD - * ,-----------------------------------------. ,-----------------------------------------. - * | trans| | | | | | | |NumLck| | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | ` | | | | | | | ^ | 7 | 8 | 9 | * | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | trans| | | | | |-------. ,-------| - | 4 | 5 | 6 | | | | - * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| - * | trans| | | | | |-------| |-------| + | 1 | 2 | 3 | \ | Shift| - * `-----------------------------------------/ / \ \-----------------------------------------' - * | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE | 0 | . | RAlt | - * | | | | |/ / \ \ | | | | | - * `----------------------------------' '------''---------------------------' - */ -[_NUMPAD] = LAYOUT( - //,------------------------------------------------. ,---------------------------------------------------. - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, KC_NUM, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, - //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CIRC, KC_P7, KC_P8, KC_P9, KC_ASTR, XXXXXXX, - //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_P4, KC_P5, KC_P6, KC_EQL, KC_PIPE, - //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,_______, _______,KC_PLUS, KC_P1, KC_P2, KC_P3, KC_SLSH, _______, - //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| - _______, OSM(MOD_MEH), _______, _______, _______, _______, _______, KC_P0, KC_PDOT, _______ - // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/ -), - -/* SWITCH - * ,-----------------------------------------. ,-----------------------------------------. - * | | | | | | | | | | | | | | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | qwer | cole |col_dh| low | raise| adj | |numpad| | | | |QK_BOOT | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | | | | | |-------. ,-------| | | | | |EE_CLR| - * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| - * | SLEEP| | | | | |-------| |-------| | | | | | | - * `-----------------------------------------/ / \ \-----------------------------------------' - * | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE | 0 | . | RAlt | - * | | | | |/ / \ \ | | | | | - * `----------------------------------' '------''---------------------------' - */ - // layer switcher -[_SWITCH] = LAYOUT( - //,------------------------------------------------. ,---------------------------------------------------. - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, - //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| - TO(0), TO(1), TO(2), TO(3), TO(4), TO(5), TO(6), KC_NO, KC_NO, KC_NO, KC_NO, QK_BOOT, - //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------| - KC_NO, KC_NO, KC_BRIU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, EE_CLR, - //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| - KC_SYSTEM_SLEEP,KC_NO,KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------| - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO - // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/ - - ), -}; - -#ifdef RGBLIGHT_ENABLE -char layer_state_str[70]; -// Now define the array of layers. Later layers take precedence - -// QWERTY, -// Light on inner column and underglow -const rgblight_segment_t PROGMEM layer_qwerty_lights[] = RGBLIGHT_LAYER_SEGMENTS( - SET_LAYER_ID(HSV_RED) - -); -const rgblight_segment_t PROGMEM layer_colemakdh_lights[] = RGBLIGHT_LAYER_SEGMENTS( - SET_LAYER_ID(HSV_PINK) -); - -// _NUM, -// Light on outer column and underglow -const rgblight_segment_t PROGMEM layer_num_lights[] = RGBLIGHT_LAYER_SEGMENTS( - SET_LAYER_ID(HSV_TEAL) - -); -// _SYMBOL, -// Light on inner column and underglow -const rgblight_segment_t PROGMEM layer_symbol_lights[] = RGBLIGHT_LAYER_SEGMENTS( - SET_LAYER_ID(HSV_BLUE) - - ); -// _COMMAND, -// Light on inner column and underglow -const rgblight_segment_t PROGMEM layer_command_lights[] = RGBLIGHT_LAYER_SEGMENTS( - SET_LAYER_ID(HSV_PURPLE) -); - -//_NUMPAD -const rgblight_segment_t PROGMEM layer_numpad_lights[] = RGBLIGHT_LAYER_SEGMENTS( - SET_INDICATORS(HSV_ORANGE), - SET_UNDERGLOW(HSV_ORANGE), - SET_NUMPAD(HSV_BLUE), - {7, 4, HSV_ORANGE}, - {25, 2, HSV_ORANGE}, - {35+6, 4, HSV_ORANGE}, - {35+25, 2, HSV_ORANGE} - ); -// _SWITCHER // light up top row -const rgblight_segment_t PROGMEM layer_switcher_lights[] = RGBLIGHT_LAYER_SEGMENTS( - SET_LAYER_ID(HSV_GREEN), - SET_NUMROW(HSV_GREEN) -); - -const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( - - layer_qwerty_lights, - layer_num_lights,// overrides layer 1 - layer_symbol_lights, - layer_command_lights, - layer_numpad_lights, - layer_switcher_lights, // Overrides other layers - layer_colemakdh_lights -); - -layer_state_t layer_state_set_user(layer_state_t state) { - rgblight_set_layer_state(0, layer_state_cmp(state, _DEFAULTS) && layer_state_cmp(default_layer_state,_QWERTY)); - rgblight_set_layer_state(7, layer_state_cmp(state, _DEFAULTS) && layer_state_cmp(default_layer_state,_COLEMAKDH)); - - - rgblight_set_layer_state(1, layer_state_cmp(state, _LOWER)); - rgblight_set_layer_state(2, layer_state_cmp(state, _RAISE)); - rgblight_set_layer_state(3, layer_state_cmp(state, _ADJUST)); - rgblight_set_layer_state(4, layer_state_cmp(state, _NUMPAD)); - rgblight_set_layer_state(5, layer_state_cmp(state, _SWITCH)); - return state; -} -void keyboard_post_init_user(void) { - // Enable the LED layers - rgblight_layers = my_rgb_layers; - - rgblight_mode(10);// haven't found a way to set this in a more useful way - -} -#endif - -#ifdef OLED_ENABLE - -static void render_logo(void) { - static const char PROGMEM qmk_logo[] = { - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, - 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, - 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00 - }; - - oled_write_P(qmk_logo, false); -} - -static void print_status_narrow(void) { - // Print current mode - oled_write_P(PSTR("\n\n"), false); - oled_write_ln_P(PSTR("Dane\nEvans"), false); - - oled_write_ln_P(PSTR(""), false); - - //snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Undef-%ld", layer_state) - - - switch (get_highest_layer(default_layer_state)) { - case _QWERTY: - oled_write_ln_P(PSTR("Qwrt"), false); - break; - case _COLEMAK: - oled_write_ln_P(PSTR("Clmk"), false); - break; - case _COLEMAKDH: - oled_write_ln_P(PSTR("CmkDH"), false); - break; - - default: - oled_write_ln_P(PSTR("Undef"), false); - } - oled_write_P(PSTR("\n\n"), false); - // Print current layer - oled_write_ln_P(PSTR("LAYER"), false); - switch (get_highest_layer(layer_state)) { - case _COLEMAK: - case _QWERTY: - case _COLEMAKDH: - oled_write_P(PSTR("Base\n"), false); - break; - case _RAISE: - oled_write_P(PSTR("Raise"), false); - break; - case _LOWER: - oled_write_P(PSTR("Lower"), false); - break; - case _ADJUST: - oled_write_P(PSTR("Adj\n"), false); - break; - case _NUMPAD: - oled_write_P(PSTR("Nump\n"), false); - break; - case _SWITCH: - oled_write_P(PSTR("Swit\n"), false); - break; - default: - oled_write_ln_P(PSTR("Undef"), false); - } -} - -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - if (is_keyboard_master()) { - return OLED_ROTATION_270; - } - return rotation; -} - -bool oled_task_user(void) { - if (is_keyboard_master()) { - print_status_narrow(); - } else { - render_logo(); - } - return false; -} - -#endif - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case KC_LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - case KC_RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - case KC_ADJUST: - if (record->event.pressed) { - layer_on(_ADJUST); - } else { - layer_off(_ADJUST); - } - return false; - case KC_D_MUTE: - if (record->event.pressed) { - register_mods(mod_config(MOD_MEH)); - register_code(KC_UP); - } else { - unregister_mods(mod_config(MOD_MEH)); - unregister_code(KC_UP); - } - } - return true; -} - -#ifdef ENCODER_ENABLE - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } else if (index == 1) { - switch (get_highest_layer(layer_state)) { - case _COLEMAK: - case _QWERTY: - case _COLEMAKDH: - if (clockwise) { - tap_code(KC_PGDN); - } else { - tap_code(KC_PGUP); - } - break; - case _RAISE: - case _LOWER: - if (clockwise) { - tap_code(KC_DOWN); - } else { - tap_code(KC_UP); - } - break; - default: - if (clockwise) { - tap_code(KC_WH_D); - } else { - tap_code(KC_WH_U); - } - break; - } - } - return true; -} - -#endif diff --git a/keyboards/sofle/keymaps/rgb_default/rules.mk b/keyboards/sofle/keymaps/rgb_default/rules.mk deleted file mode 100644 index 0d18161a0d7..00000000000 --- a/keyboards/sofle/keymaps/rgb_default/rules.mk +++ /dev/null @@ -1,7 +0,0 @@ -MOUSEKEY_ENABLE = yes -EXTRAKEY_ENABLE = yes -CONSOLE_ENABLE = no -RGBLIGHT_ENABLE = yes -ENCODER_ENABLE = yes -LTO_ENABLE = yes -OLED_ENABLE = yes diff --git a/keyboards/sofle/readme.md b/keyboards/sofle/readme.md index 7e8ef215c23..6af2a93ec5b 100644 --- a/keyboards/sofle/readme.md +++ b/keyboards/sofle/readme.md @@ -4,24 +4,37 @@ Sofle is 6×4+5 keys column-staggered split keyboard. Based on Lily58, Corne and Helix keyboards. -More details about the keyboard on my blog: [Let me introduce you SofleKeyboard - a split keyboard based on Lily58 and Crkbd](https://josef-adamcik.cz/electronics/let-me-introduce-you-sofle-keyboard-split-keyboard-based-on-lily58.html) - -The current (temporary) build guide and a build log is available here: [SofleKeyboard build log/guide](https://josef-adamcik.cz/electronics/soflekeyboard-build-log-and-build-guide.html) +More details about the keyboard and build guides can be found here: [Sofle Keyboard Build Log and Guide](https://josefadamcik.github.io/SofleKeyboard) * Keyboard Maintainer: [Josef Adamcik](https://josef-adamcik.cz) [Twitter:@josefadamcik](https://twitter.com/josefadamcik) * Hardware Supported: SofleKeyboard PCB, ProMicro * Hardware Availability: [PCB & Case Data](https://github.com/josefadamcik/SofleKeyboard) +## Firmware Revisions +- `sofle/rev1` is used for v1, v2, and RGB PCBs (**NOT** RGB PCBs purchased from [Keyhive](https://keyhive.xyz)) +- `sofle/keyhive` is used for PCBs purchased from [Keyhive](https://keyhive.xyz/shop/sofle) +- [`keyboards/sofle_choc`](../sofle_choc/) is used for Choc PCBs + Make example for this keyboard (after setting up your build environment): - make sofle:default + make sofle/rev1:default + make sofle/keyhive:default -Flash the default keymap: +Flashing example for this keyboard: - make sofle:default:avrdude + make sofle/rev1:default:flash + make sofle/keyhive:default:flash Press reset button on he keyboard when asked. Disconnect the first half, connect the second one and repeat the process. See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix +* **Physical reset button**: Briefly press the button near the TRRS connector. Quickly double-tap if you are using Pro Micro. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/sofle/rev1/readme.md b/keyboards/sofle/rev1/readme.md deleted file mode 100644 index 1d229030c4b..00000000000 --- a/keyboards/sofle/rev1/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# Sofle Keyboard - -![SofleKeyboard version 1](https://i.imgur.com/S5GTKth.jpeg) - -Sofle is 6×4+5 keys column-staggered split keyboard. Based on Lily58, Corne and Helix keyboards. - -More details about the keyboard on my blog: [Let me introduce you SofleKeyboard - a split keyboard based on Lily58 and Crkbd](https://josef-adamcik.cz/electronics/let-me-introduce-you-sofle-keyboard-split-keyboard-based-on-lily58.html) - -The current (temporary) build guide and a build log is available here: [SofleKeyboard build log/guide](https://josef-adamcik.cz/electronics/soflekeyboard-build-log-and-build-guide.html) - -* Keyboard Maintainer: [Josef Adamcik](https://josef-adamcik.cz) [Twitter:@josefadamcik](https://twitter.com/josefadamcik) -* Hardware Supported: SofleKeyboard PCB, ProMicro -* Hardware Availability: [PCB & Case Data](https://github.com/josefadamcik/SofleKeyboard) - -Make example for this keyboard (after setting up your build environment): - - make sofle:default - -Flashing example for this keyboard: - - make sofle:default:flash - -Press reset button on he keyboard when asked. - -Disconnect the first half, connect the second one and repeat the process. - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). From 80612c8ec0e87077cdef1afc42c052732bdb2a75 Mon Sep 17 00:00:00 2001 From: Daniel Reisch Date: Mon, 14 Apr 2025 10:27:52 -0700 Subject: [PATCH 334/365] Added Keyboard LumPy27 (#24967) Co-authored-by: jack Co-authored-by: Drashna Jaelre --- keyboards/djreisch/lumpy27/keyboard.json | 55 ++++++++++++++ .../djreisch/lumpy27/keymaps/default/keymap.c | 76 +++++++++++++++++++ keyboards/djreisch/lumpy27/readme.md | 29 +++++++ 3 files changed, 160 insertions(+) create mode 100644 keyboards/djreisch/lumpy27/keyboard.json create mode 100644 keyboards/djreisch/lumpy27/keymaps/default/keymap.c create mode 100644 keyboards/djreisch/lumpy27/readme.md diff --git a/keyboards/djreisch/lumpy27/keyboard.json b/keyboards/djreisch/lumpy27/keyboard.json new file mode 100644 index 00000000000..d6c4b180bd8 --- /dev/null +++ b/keyboards/djreisch/lumpy27/keyboard.json @@ -0,0 +1,55 @@ +{ + "manufacturer": "djreisch", + "keyboard_name": "LumPy27", + "maintainer": "djreisch", + "board": "GENERIC_RP_RP2040", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true + }, + "matrix_pins": { + "cols": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5"], + "rows": ["GP14", "GP15", "GP16", "GP17", "GP18"] + }, + "processor": "RP2040", + "usb": { + "device_version": "1.0.0", + "pid": "0x2326", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 5], "x": 5, "y": 3}, + {"matrix": [4, 3], "x": 3, "y": 4}, + {"matrix": [4, 4], "x": 4, "y": 4}, + {"matrix": [4, 5], "x": 5, "y": 4} + ] + } + } +} diff --git a/keyboards/djreisch/lumpy27/keymaps/default/keymap.c b/keyboards/djreisch/lumpy27/keymaps/default/keymap.c new file mode 100644 index 00000000000..48897c80648 --- /dev/null +++ b/keyboards/djreisch/lumpy27/keymaps/default/keymap.c @@ -0,0 +1,76 @@ +/* Copyright 2024 Daniel Reisch (djreisch) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum custom_keycodes { MACRO_GG = QK_USER }; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + Main + ,-----------------------------------------. + | ESC | 1 | 2 | 3 | 4 | 5 | + |------+------+------+------+------+------| + | Tab | G | Q | W | E | R | + |------+------+------+------+------+------| + | LSHIFT | A | S | D | F | + |------+------+------+------+------+------| + | LCTL | B | Z | X | C | V |-------| + `-----------------------------------------/ / + | LAlt | FN | / Space / + | | |/ / + `---------------------' + */ + [0] = LAYOUT(KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, + KC_TAB, KC_G, KC_Q, KC_W, KC_E, KC_R, + KC_LSFT, KC_A, KC_S, KC_D, KC_F, + KC_LCTL, KC_B, KC_Z, KC_X, KC_C, KC_V, + KC_LALT, MO(1), KC_SPACE), + + /* + Alt + ,-----------------------------------------. + | ESC | 0 | 9 | 8 | 7 | 6 | + |------+------+------+------+------+------| + | F1 | F2 | F3 | F4 | F5 | F6 | + |------+------+------+------+------+------| + | LSHIFT | A | S | Y | H | + |------+------+------+------+------+------| + | LCTL | B | Z | X | C | M |-------| + `-----------------------------------------/ / + | LAlt | FN | / Enter / + | | |/ / + `---------------------' + */ + [1] = LAYOUT(KC_ESC, KC_0, KC_9, KC_8, KC_7, KC_6, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_LSFT, KC_A, KC_S, KC_Y, KC_H, + KC_LCTL, MACRO_GG, KC_Z, KC_X, KC_C, KC_M, + KC_LALT, KC_TRNS, KC_ENTER) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case MACRO_GG: + if (record->event.pressed) { + // when keycode MACRO_GG is pressed, press shift+enter, send string "gg" and press enter + SEND_STRING(SS_DOWN(X_LSFT) SS_DELAY(10) SS_TAP(X_ENTER) SS_UP(X_LSFT) "gg" SS_TAP(X_ENTER)); + } + break; + } + + return true; +} diff --git a/keyboards/djreisch/lumpy27/readme.md b/keyboards/djreisch/lumpy27/readme.md new file mode 100644 index 00000000000..da7d1ca92b2 --- /dev/null +++ b/keyboards/djreisch/lumpy27/readme.md @@ -0,0 +1,29 @@ +# LumPy27 + +The Lightweight User-Modifiable Pi/Python keyboard is a 26-key ergonomic gaming keyboard running on an RP2040. Originally designed to run CircuitPython and KMK, since QMK supports the RP2040 bootloader this is now an additional option for firmware. + +Q: Why is it named the LumPy27 even though it has 26 keys? + +A: When originally designing the PCB and coming up with a name, I miscounted the switches. With the name emblazoned on the silkscreen I figured it sounded better than LumPy26. + +Q: Why are the keys in the wrong place? + +A: For certain games I found it easier instead of remapping them to just change where they are. That's why keys like B and G are not in the right spots. + +* Keyboard Maintainer: [djreisch](https://github.com/djreisch) +* Hardware Availability: [DuckyDebug.org](https://duckydebug.org/products/lumpy27-ergonomic-gaming-keyboard) + +qmk compile example for this keyboard (after setting up your build environment): + + qmk compile -kb djreisch/lumpy27 -km default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Bootloader Reset**: Hold down the bootload button and press the reset button +* **Bootloader Power On**: Hold down the bootloader button and plug in the keyboard + + From e83b709169e7f19cd79f44066ba7faf17ecdd952 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Thu, 17 Apr 2025 12:41:20 +1000 Subject: [PATCH 335/365] [Keyboard] Kobold r1 (#25161) * Kobold r1 * Apply suggestions from code review Co-authored-by: jack * `board_init` => `early_hardware_init_post`. --------- Co-authored-by: jack --- keyboards/tzarc/kobold/config.h | 29 +++++++ keyboards/tzarc/kobold/halconf.h | 8 ++ keyboards/tzarc/kobold/info.json | 82 +++++++++++++++++++ .../tzarc/kobold/keymaps/default/keymap.c | 14 ++++ keyboards/tzarc/kobold/kobold.c | 18 ++++ keyboards/tzarc/kobold/mcuconf.h | 12 +++ keyboards/tzarc/kobold/r1/keyboard.json | 5 ++ keyboards/tzarc/kobold/readme.md | 29 +++++++ 8 files changed, 197 insertions(+) create mode 100644 keyboards/tzarc/kobold/config.h create mode 100644 keyboards/tzarc/kobold/halconf.h create mode 100644 keyboards/tzarc/kobold/info.json create mode 100644 keyboards/tzarc/kobold/keymaps/default/keymap.c create mode 100644 keyboards/tzarc/kobold/kobold.c create mode 100644 keyboards/tzarc/kobold/mcuconf.h create mode 100644 keyboards/tzarc/kobold/r1/keyboard.json create mode 100644 keyboards/tzarc/kobold/readme.md diff --git a/keyboards/tzarc/kobold/config.h b/keyboards/tzarc/kobold/config.h new file mode 100644 index 00000000000..b3991ae0377 --- /dev/null +++ b/keyboards/tzarc/kobold/config.h @@ -0,0 +1,29 @@ +// Copyright 2025 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +// Hardware-specific definitions +#define RGB_ENABLE_PIN C11 + +// WS2812 Configuration +#define WS2812_PWM_DRIVER PWMD17 +#define WS2812_PWM_CHANNEL 1 +#define WS2812_PWM_PAL_MODE 10 +#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1 +#define WS2812_PWM_DMA_CHANNEL 1 +#define WS2812_PWM_DMAMUX_ID STM32_DMAMUX1_TIM17_UP + +// SPI Configuration +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN A5 +#define SPI_SCK_PAL_MODE 5 +#define SPI_MOSI_PIN A7 +#define SPI_MOSI_PAL_MODE 5 +#define SPI_MISO_PIN A6 +#define SPI_MISO_PAL_MODE 5 + +// External NOR Flash config +#define EXTERNAL_FLASH_SPI_MODE 0 +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B10 +#define EXTERNAL_FLASH_SPI_CLOCK_DIVISOR 4 // (160MHz/4) => 40MHz +#define EXTERNAL_FLASH_SIZE (16 * 1024 * 1024) // 128Mb/16MB capacity diff --git a/keyboards/tzarc/kobold/halconf.h b/keyboards/tzarc/kobold/halconf.h new file mode 100644 index 00000000000..2251180c141 --- /dev/null +++ b/keyboards/tzarc/kobold/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2025 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define HAL_USE_PWM TRUE +#define HAL_USE_SPI TRUE + +#include_next diff --git a/keyboards/tzarc/kobold/info.json b/keyboards/tzarc/kobold/info.json new file mode 100644 index 00000000000..bed8e8a23fe --- /dev/null +++ b/keyboards/tzarc/kobold/info.json @@ -0,0 +1,82 @@ +{ + "manufacturer": "Tzarc", + "keyboard_name": "Kobold", + "url": "https://github.com/tzarc/keyboards/tree/main/Kobold", + "maintainer": "tzarc", + "bootloader": "stm32-dfu", + "build": { + "lto": true + }, + "dynamic_keymap": { + "layer_count": 32 + }, + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "backing_size": 32768, + "driver": "spi_flash" + } + }, + "features": { + "bootmagic": true, + "rgb_matrix": true + }, + "matrix_pins": { + "direct": [ + ["B14", "C6", "B9", "B7", "B13", "B15", "C13", "C15", "B12", "B0", "A2", "A0", "B11", "A4", "A3", "A1"] + ] + }, + "processor": "STM32G431", + "rgb_matrix": { + "driver": "ws2812", + "layout": [ + {"x": 0, "y": 0, "flags": 2}, + {"x": 75, "y": 0, "flags": 2}, + {"x": 150, "y": 0, "flags": 2}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 224, "y": 21, "flags": 2}, + {"x": 150, "y": 21, "flags": 2}, + {"x": 75, "y": 21, "flags": 2}, + {"x": 0, "y": 21, "flags": 2}, + {"x": 0, "y": 43, "flags": 2}, + {"x": 75, "y": 43, "flags": 2}, + {"x": 150, "y": 43, "flags": 2}, + {"x": 224, "y": 43, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 150, "y": 64, "flags": 2}, + {"x": 75, "y": 64, "flags": 2}, + {"x": 0, "y": 64, "flags": 2} + ] + }, + "usb": { + "pid": "0x4921", + "vid": "0x1209" + }, + "ws2812": { + "driver": "pwm", + "pin": "B5" + }, + "community_layouts": ["ortho_4x4"], + "layouts": { + "LAYOUT_ortho_4x4": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 0, "y": 1}, + {"matrix": [0, 5], "x": 1, "y": 1}, + {"matrix": [0, 6], "x": 2, "y": 1}, + {"matrix": [0, 7], "x": 3, "y": 1}, + {"matrix": [0, 8], "x": 0, "y": 2}, + {"matrix": [0, 9], "x": 1, "y": 2}, + {"matrix": [0, 10], "x": 2, "y": 2}, + {"matrix": [0, 11], "x": 3, "y": 2}, + {"matrix": [0, 12], "x": 0, "y": 3}, + {"matrix": [0, 13], "x": 1, "y": 3}, + {"matrix": [0, 14], "x": 2, "y": 3}, + {"matrix": [0, 15], "x": 3, "y": 3} + ] + } + } +} diff --git a/keyboards/tzarc/kobold/keymaps/default/keymap.c b/keyboards/tzarc/kobold/keymaps/default/keymap.c new file mode 100644 index 00000000000..d78325c78bb --- /dev/null +++ b/keyboards/tzarc/kobold/keymaps/default/keymap.c @@ -0,0 +1,14 @@ +// Copyright 2025 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_4x4( + KC_A, KC_B, KC_C, KC_D, + KC_E, KC_F, KC_G, KC_H, + KC_I, KC_J, KC_K, KC_L, + KC_M, KC_N, KC_O, KC_P + ), +}; +// clang-format on diff --git a/keyboards/tzarc/kobold/kobold.c b/keyboards/tzarc/kobold/kobold.c new file mode 100644 index 00000000000..0460a4fe856 --- /dev/null +++ b/keyboards/tzarc/kobold/kobold.c @@ -0,0 +1,18 @@ +// Copyright 2025 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +void early_hardware_init_post(void) { + // Disable RGB LEDs + gpio_set_pin_output(RGB_ENABLE_PIN); + gpio_write_pin(RGB_ENABLE_PIN, 1); +} + +void housekeeping_task_kb() { + // Enable RGB LEDs after 200 milliseconds + static bool rgb_enabled = false; + if (!rgb_enabled && timer_read32() > 200) { + gpio_write_pin(RGB_ENABLE_PIN, 0); + rgb_enabled = true; + } +} diff --git a/keyboards/tzarc/kobold/mcuconf.h b/keyboards/tzarc/kobold/mcuconf.h new file mode 100644 index 00000000000..5d7fdbe2322 --- /dev/null +++ b/keyboards/tzarc/kobold/mcuconf.h @@ -0,0 +1,12 @@ +// Copyright 2025 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once +#include_next + +// Used for SK6812 chain +#undef STM32_PWM_USE_TIM17 +#define STM32_PWM_USE_TIM17 TRUE + +// Used for NOR Flash +#undef STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE diff --git a/keyboards/tzarc/kobold/r1/keyboard.json b/keyboards/tzarc/kobold/r1/keyboard.json new file mode 100644 index 00000000000..ad889c23048 --- /dev/null +++ b/keyboards/tzarc/kobold/r1/keyboard.json @@ -0,0 +1,5 @@ +{ + "usb": { + "device_version": "1.0.0" + } +} diff --git a/keyboards/tzarc/kobold/readme.md b/keyboards/tzarc/kobold/readme.md new file mode 100644 index 00000000000..0c73ed49e7d --- /dev/null +++ b/keyboards/tzarc/kobold/readme.md @@ -0,0 +1,29 @@ +# Kobold + +![Kobold](https://i.imgur.com/R8nDodO.jpg) + +4x4 macropad running QMK, in the same form factor as a bm16s. Non-standard Choc key spacing. + +North-facing RGB, SPI NOR Flash, voltage and current measurement, direct pin matrix, reset to bootloader by holding top 4 keys. + +* Keyboard Maintainer: [tzarc](https://github.com/tzarc) +* Hardware Supported: Kobold, r1 +* Hardware Availability: [KiCad files](https://github.com/tzarc/keyboards/tree/main/Kobold) + +Make example for this keyboard (after setting up your build environment): + + make tzarc/kobold/r1:default + +Flashing example for this keyboard: + + make tzarc/kobold/r1:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top left key and plug in the keyboard +* **Physical reset button**: Simultaneously press the top four keys, or press the physical button on the back marked 'D'. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 76413592402ae2ede4d9deef0f7d91bf73026d33 Mon Sep 17 00:00:00 2001 From: ClownFish <177758267+clownfish-og@users.noreply.github.com> Date: Thu, 17 Apr 2025 12:23:16 -0400 Subject: [PATCH 336/365] [Docs] Unify lighting step descriptions (#25167) unify lighting step descriptions and defaults across docs --- docs/features/led_matrix.md | 2 ++ docs/features/rgb_matrix.md | 4 ++++ docs/features/rgblight.md | 6 +++--- docs/reference_info_json.md | 22 +++++++++++----------- 4 files changed, 20 insertions(+), 14 deletions(-) diff --git a/docs/features/led_matrix.md b/docs/features/led_matrix.md index 756cc11e2be..113b13f03b6 100644 --- a/docs/features/led_matrix.md +++ b/docs/features/led_matrix.md @@ -227,6 +227,8 @@ For inspiration and examples, check out the built-in effects under `quantum/led_ #define LED_MATRIX_DEFAULT_MODE LED_MATRIX_SOLID // Sets the default mode, if none has been set #define LED_MATRIX_DEFAULT_VAL LED_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set #define LED_MATRIX_DEFAULT_SPD 127 // Sets the default animation speed, if none has been set +#define LED_MATRIX_VAL_STEP 8 // The value by which to increment the brightness per adjustment action +#define LED_MATRIX_SPD_STEP 16 // The value by which to increment the animation speed per adjustment action #define LED_MATRIX_DEFAULT_FLAGS LED_FLAG_ALL // Sets the default LED flags, if none has been set #define LED_MATRIX_SPLIT { X, Y } // (Optional) For split keyboards, the number of LEDs connected on each half. X = left, Y = Right. // If reactive effects are enabled, you also will want to enable SPLIT_TRANSPORT_MIRROR diff --git a/docs/features/rgb_matrix.md b/docs/features/rgb_matrix.md index 0e53ce9c35a..a22f931f1be 100644 --- a/docs/features/rgb_matrix.md +++ b/docs/features/rgb_matrix.md @@ -378,6 +378,10 @@ These are defined in [`color.h`](https://github.com/qmk/qmk_firmware/blob/master #define RGB_MATRIX_DEFAULT_SAT 255 // Sets the default saturation value, if none has been set #define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set #define RGB_MATRIX_DEFAULT_SPD 127 // Sets the default animation speed, if none has been set +#define RGB_MATRIX_HUE_STEP 8 // The value by which to increment the hue per adjustment action +#define RGB_MATRIX_SAT_STEP 16 // The value by which to increment the saturation per adjustment action +#define RGB_MATRIX_VAL_STEP 16 // The value by which to increment the brightness per adjustment action +#define RGB_MATRIX_SPD_STEP 16 // The value by which to increment the animation speed per adjustment action #define RGB_MATRIX_DEFAULT_FLAGS LED_FLAG_ALL // Sets the default LED flags, if none has been set #define RGB_MATRIX_SPLIT { X, Y } // (Optional) For split keyboards, the number of LEDs connected on each half. X = left, Y = Right. // If reactive effects are enabled, you also will want to enable SPLIT_TRANSPORT_MIRROR diff --git a/docs/features/rgblight.md b/docs/features/rgblight.md index 4322fe796e7..43e3781f8d4 100644 --- a/docs/features/rgblight.md +++ b/docs/features/rgblight.md @@ -97,9 +97,9 @@ Your RGB lighting can be configured by placing these `#define`s in your `config. |Define |Default |Description | |---------------------------|----------------------------|---------------------------------------------------------------------------------------------------------------------------| -|`RGBLIGHT_HUE_STEP` |`8` |The number of steps to cycle through the hue by | -|`RGBLIGHT_SAT_STEP` |`17` |The number of steps to increment the saturation by | -|`RGBLIGHT_VAL_STEP` |`17` |The number of steps to increment the brightness by | +|`RGBLIGHT_HUE_STEP` |`8` |The value by which to increment the hue per adjustment action | +|`RGBLIGHT_SAT_STEP` |`17` |The value by which to increment the saturation per adjustment action | +|`RGBLIGHT_VAL_STEP` |`17` |The value by which to increment the brightness per adjustment action | |`RGBLIGHT_LIMIT_VAL` |`255` |The maximum brightness level | |`RGBLIGHT_SLEEP` |*Not defined* |If defined, the RGB lighting will be switched off when the host goes to sleep | |`RGBLIGHT_SPLIT` |*Not defined* |If defined, synchronization functionality for split keyboards is added | diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index 29b999c32e8..0f8f680b551 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -413,7 +413,7 @@ Configures the [LED Matrix](features/led_matrix) feature. * Default: `16` * `led_process_limit` Number * Limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness). - * Default: `led_count / 5` + * Default: `(led_count + 4) / 5` * `max_brightness` Number * The maximum value which brightness is scaled to, from 0 to 255. * Default: `255` @@ -424,7 +424,7 @@ Configures the [LED Matrix](features/led_matrix) feature. * Turn off the LEDs when the host goes to sleep. * Default: `false` * `speed_steps` Number - * The number of speed adjustment steps. + * The value by which to increment the speed. * Default: `16` * `split_count` Array: Number * For split keyboards, the number of LEDs on each half. @@ -433,7 +433,7 @@ Configures the [LED Matrix](features/led_matrix) feature. * The LED activity timeout in milliseconds. * Default: `0` (no timeout) * `val_steps` Number - * The number of brightness adjustment steps. + * The value by which to increment the brightness. * Default: `8` ## Matrix {#matrix} @@ -549,7 +549,7 @@ Configures the [RGB Lighting](features/rgblight) feature. } ``` * `brightness_steps` Number - * The number of brightness adjustment steps. + * The value by which to increment the brightness. * Default: `17` * `default` * `animation` String @@ -574,7 +574,7 @@ Configures the [RGB Lighting](features/rgblight) feature. * The driver to use. Must be one of `apa102`, `custom`, `ws2812`. * Default: `"ws2812"` * `hue_steps` Number - * The number of hue adjustment steps. + * The value by which to increment the hue. * Default: `8` * `layers` * `blink` Boolean @@ -593,7 +593,7 @@ Configures the [RGB Lighting](features/rgblight) feature. * The maximum value which the HSV "V" component is scaled to, from 0 to 255. * Default: `255` * `saturation_steps` Number - * The number of saturation adjustment steps. + * The value by which to increment the suturation. * Default: `17` * `sleep` Boolean * Turn off the LEDs when the host goes to sleep. @@ -645,7 +645,7 @@ Configures the [RGB Matrix](features/rgb_matrix) feature. * `driver` String Required * The driver to use. Must be one of `aw20216s`, `custom`, `is31fl3218`, `is31fl3236`, `is31fl3729`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`, `snled27351`, `ws2812`. * `hue_steps` Number - * The number of hue adjustment steps. + * The value by which to increment the hue. * Default: `8` * `layout` Array: Object Required * List of LED configuration dictionaries. Each dictionary contains: @@ -664,7 +664,7 @@ Configures the [RGB Matrix](features/rgb_matrix) feature. * Default: `16` * `led_process_limit` Number * Limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness). - * Default: `led_count / 5` + * Default: `(led_count + 4) / 5` * `max_brightness` Number * The maximum value which the HSV "V" component is scaled to, from 0 to 255. * Default: `255` @@ -672,13 +672,13 @@ Configures the [RGB Matrix](features/rgb_matrix) feature. * Animations react to keyup instead of keydown. * Default: `false` * `sat_steps` Number - * The number of saturation adjustment steps. + * The value by which to increment the saturation. * Default: `16` * `sleep` Boolean * Turn off the LEDs when the host goes to sleep. * Default: `false` * `speed_steps` Number - * The number of speed adjustment steps. + * The value by which to increment the speed. * Default: `16` * `split_count` Array: Number * For split keyboards, the number of LEDs on each half. @@ -687,7 +687,7 @@ Configures the [RGB Matrix](features/rgb_matrix) feature. * The LED activity timeout in milliseconds. * Default: `0` (no timeout) * `val_steps` Number - * The number of brightness adjustment steps. + * The value by which to increment the brightness. * Default: `16` ## Secure {#secure} From 576325e2f489b888fda9c74df08534856cfea5c2 Mon Sep 17 00:00:00 2001 From: JamesWilson1996 <47866504+JamesWilson1996@users.noreply.github.com> Date: Thu, 17 Apr 2025 19:50:41 +0100 Subject: [PATCH 337/365] [Keyboard] Add voidhhkb-hotswap (#25007) * Added files for voidhhkb-hotswap * Updated keyboard name to resolve build errors * Implement suggestions from PR. Use 60_hhkb community layout. * Update keyboards/void/voidhhkb_hotswap/readme.md Co-authored-by: Ryan * Apply suggestions from code review Co-authored-by: jack --------- Co-authored-by: Ryan Co-authored-by: jack --- keyboards/void/voidhhkb_hotswap/keyboard.json | 97 +++++++++++++++++++ .../voidhhkb_hotswap/keymaps/default/keymap.c | 21 ++++ keyboards/void/voidhhkb_hotswap/readme.md | 29 ++++++ 3 files changed, 147 insertions(+) create mode 100644 keyboards/void/voidhhkb_hotswap/keyboard.json create mode 100644 keyboards/void/voidhhkb_hotswap/keymaps/default/keymap.c create mode 100644 keyboards/void/voidhhkb_hotswap/readme.md diff --git a/keyboards/void/voidhhkb_hotswap/keyboard.json b/keyboards/void/voidhhkb_hotswap/keyboard.json new file mode 100644 index 00000000000..460454cc5fb --- /dev/null +++ b/keyboards/void/voidhhkb_hotswap/keyboard.json @@ -0,0 +1,97 @@ +{ + "manufacturer": "James Wilson", + "keyboard_name": "voidhhkb_hotswap", + "maintainer": "JamesWilson1996", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["B12", "B13", "A3", "A4", "B14", "B15", "A8", "A5", "A9", "A10", "A6", "A7", "A15", "B3", "B4"], + "rows": ["B11", "B10", "B2", "B1", "B0"] + }, + "processor": "STM32F072", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0002", + "vid": "0x4A57" + }, + "community_layouts": [ "60_hhkb" ], + "layouts": { + "LAYOUT_60_hhkb": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 1.5, "y": 1}, + {"matrix": [1, 3], "x": 2.5, "y": 1}, + {"matrix": [1, 4], "x": 3.5, "y": 1}, + {"matrix": [1, 5], "x": 4.5, "y": 1}, + {"matrix": [1, 6], "x": 5.5, "y": 1}, + {"matrix": [1, 7], "x": 6.5, "y": 1}, + {"matrix": [1, 8], "x": 7.5, "y": 1}, + {"matrix": [1, 9], "x": 8.5, "y": 1}, + {"matrix": [1, 10], "x": 9.5, "y": 1}, + {"matrix": [1, 11], "x": 10.5, "y": 1}, + {"matrix": [1, 12], "x": 11.5, "y": 1}, + {"matrix": [1, 13], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 1.75, "y": 2}, + {"matrix": [2, 3], "x": 2.75, "y": 2}, + {"matrix": [2, 4], "x": 3.75, "y": 2}, + {"matrix": [2, 5], "x": 4.75, "y": 2}, + {"matrix": [2, 6], "x": 5.75, "y": 2}, + {"matrix": [2, 7], "x": 6.75, "y": 2}, + {"matrix": [2, 8], "x": 7.75, "y": 2}, + {"matrix": [2, 9], "x": 8.75, "y": 2}, + {"matrix": [2, 10], "x": 9.75, "y": 2}, + {"matrix": [2, 11], "x": 10.75, "y": 2}, + {"matrix": [2, 12], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 1], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14.0, "y": 3}, + + {"matrix": [4, 2], "x": 1.5, "y": 4}, + {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 6}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 11.5, "y": 4} + ] + } + } +} diff --git a/keyboards/void/voidhhkb_hotswap/keymaps/default/keymap.c b/keyboards/void/voidhhkb_hotswap/keymaps/default/keymap.c new file mode 100644 index 00000000000..3b28a0c1c2e --- /dev/null +++ b/keyboards/void/voidhhkb_hotswap/keymaps/default/keymap.c @@ -0,0 +1,21 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_hhkb( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT + ), + [1] = LAYOUT_60_hhkb( + KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, + KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, KC_NO, KC_CLAG, + KC_NO, KC_VOLU, KC_VOLD, KC_MUTE, KC_EJCT, KC_NO, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_RETN, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_NO, KC_TRNS, + KC_NO, KC_NO, KC_NO, KC_MSTP, KC_NO + ) +}; diff --git a/keyboards/void/voidhhkb_hotswap/readme.md b/keyboards/void/voidhhkb_hotswap/readme.md new file mode 100644 index 00000000000..a9b78eefe7c --- /dev/null +++ b/keyboards/void/voidhhkb_hotswap/readme.md @@ -0,0 +1,29 @@ +# VoidHHKB-Hotswap + +![VoidHHKB-Hotswap)](https://i.imgur.com/dxTs8gB.jpeg) + +VoidHHKB-Hotswap 60% PCB designed for the [HSKB project](https://github.com/Dev01-D/HSKB). + +* Keyboard Maintainer: [James Wilson](https://github.com/JamesWilson1996) +* Hardware Supported: STM32F072CBT6 +* Hardware Availability: [HSKB](https://github.com/Dev01-D/HSKB) + +# Compiling + +Make example for this keyboard (after setting up your build environment): + + make void/voidhhkb_hotswap:default + +Flashing example for this keyboard: + + make void/voidhhkb_hotswap:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +# Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From b43fc33be3df1d8f9b0b13c43dea764adf2d70c5 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 18 Apr 2025 03:59:59 +0100 Subject: [PATCH 338/365] Remove duplication of RGB Matrix defaults (#25146) * Remove duplication of RGB Matrix defaults * Remove more duplication of defaults * fix --- keyboards/adm42/rev4/keyboard.json | 1 - keyboards/ashwing66/keyboard.json | 1 - keyboards/eek/info.json | 1 - keyboards/ein_60/keyboard.json | 1 - keyboards/fs_streampad/keyboard.json | 3 --- keyboards/geekboards/macropad_v2/keyboard.json | 1 - keyboards/handwired/hnah40rgb/keyboard.json | 1 - keyboards/marcopad/keyboard.json | 3 +-- keyboards/mechboards/crkbd/pro/keyboard.json | 3 --- keyboards/mechboards/lily58/pro/keyboard.json | 3 --- keyboards/mechboards/sofle/pro/keyboard.json | 3 --- keyboards/momokai/aurora/keyboard.json | 1 - keyboards/momokai/tap_duo/keyboard.json | 1 - keyboards/momokai/tap_trio/keyboard.json | 1 - keyboards/rot13labs/veilid_sao/keyboard.json | 3 --- keyboards/splitkb/halcyon/kyria/rev4/keyboard.json | 3 --- keyboards/system76/launch_1/keyboard.json | 4 +--- 17 files changed, 2 insertions(+), 32 deletions(-) diff --git a/keyboards/adm42/rev4/keyboard.json b/keyboards/adm42/rev4/keyboard.json index efb0eea029b..827c127b864 100644 --- a/keyboards/adm42/rev4/keyboard.json +++ b/keyboards/adm42/rev4/keyboard.json @@ -82,7 +82,6 @@ {"matrix": [0, 10], "x": 194, "y": 13, "flags": 4}, {"matrix": [0, 11], "x": 210, "y": 11, "flags": 4} ], - "led_flush_limit": 16, "led_process_limit": 21, "max_brightness": 170, "sat_steps": 24, diff --git a/keyboards/ashwing66/keyboard.json b/keyboards/ashwing66/keyboard.json index 27a5799964a..427eebcd96d 100644 --- a/keyboards/ashwing66/keyboard.json +++ b/keyboards/ashwing66/keyboard.json @@ -75,7 +75,6 @@ {"matrix": [0, 14], "x": 206, "y": 1, "flags": 4}, {"matrix": [0, 15], "x": 223, "y": 0, "flags": 4} ], - "led_flush_limit": 16, "led_process_limit": 5, "max_brightness": 125, "sleep": true diff --git a/keyboards/eek/info.json b/keyboards/eek/info.json index 86ff2843470..0e510e282a5 100644 --- a/keyboards/eek/info.json +++ b/keyboards/eek/info.json @@ -13,7 +13,6 @@ "val": 150 }, "driver": "ws2812", - "led_flush_limit": 16, "max_brightness": 200 }, "features": { diff --git a/keyboards/ein_60/keyboard.json b/keyboards/ein_60/keyboard.json index a7902af490e..1c245fa8b4d 100644 --- a/keyboards/ein_60/keyboard.json +++ b/keyboards/ein_60/keyboard.json @@ -13,7 +13,6 @@ "val": 150 }, "driver": "ws2812", - "led_flush_limit": 16, "max_brightness": 200 }, "rgblight": { diff --git a/keyboards/fs_streampad/keyboard.json b/keyboards/fs_streampad/keyboard.json index 5adefff443d..bf4f36a9503 100644 --- a/keyboards/fs_streampad/keyboard.json +++ b/keyboards/fs_streampad/keyboard.json @@ -76,9 +76,6 @@ "pixel_flow": true, "pixel_rain": true }, - "default": { - "animation": "cycle_left_right" - }, "sleep": true, "layout": [ {"matrix": [0, 0], "flags": 4, "x": 0, "y": 0 }, diff --git a/keyboards/geekboards/macropad_v2/keyboard.json b/keyboards/geekboards/macropad_v2/keyboard.json index 54d779570a6..31f21b97bf3 100644 --- a/keyboards/geekboards/macropad_v2/keyboard.json +++ b/keyboards/geekboards/macropad_v2/keyboard.json @@ -47,7 +47,6 @@ }, "default": { "animation": "cycle_up_down", - "sat": 255, "speed": 30, "val": 192 }, diff --git a/keyboards/handwired/hnah40rgb/keyboard.json b/keyboards/handwired/hnah40rgb/keyboard.json index 753b5dd00a6..b5bc58e9105 100644 --- a/keyboards/handwired/hnah40rgb/keyboard.json +++ b/keyboards/handwired/hnah40rgb/keyboard.json @@ -61,7 +61,6 @@ "animation": "cycle_pinwheel" }, "driver": "ws2812", - "led_flush_limit": 16, "max_brightness": 200, "react_on_keyup": true }, diff --git a/keyboards/marcopad/keyboard.json b/keyboards/marcopad/keyboard.json index c0a8ca37c04..50dc3c1ed0b 100644 --- a/keyboards/marcopad/keyboard.json +++ b/keyboards/marcopad/keyboard.json @@ -34,8 +34,7 @@ "animation": "splash", "hue": 132, "sat": 102, - "speed": 80, - "val": 255 + "speed": 80 }, "driver": "ws2812", "layout": [ diff --git a/keyboards/mechboards/crkbd/pro/keyboard.json b/keyboards/mechboards/crkbd/pro/keyboard.json index 05bca63993c..69a04760dee 100644 --- a/keyboards/mechboards/crkbd/pro/keyboard.json +++ b/keyboards/mechboards/crkbd/pro/keyboard.json @@ -30,9 +30,6 @@ "animations": { "cycle_left_right": true }, - "default": { - "animation": "cycle_left_right" - }, "driver": "ws2812", "layout": [ {"x": 85, "y": 16, "flags": 2}, diff --git a/keyboards/mechboards/lily58/pro/keyboard.json b/keyboards/mechboards/lily58/pro/keyboard.json index d655377f195..ca620c67d88 100644 --- a/keyboards/mechboards/lily58/pro/keyboard.json +++ b/keyboards/mechboards/lily58/pro/keyboard.json @@ -30,9 +30,6 @@ "animations": { "cycle_left_right": true }, - "default": { - "animation": "cycle_left_right" - }, "driver": "ws2812", "layout": [ {"matrix": [0, 5], "x": 72, "y": 4, "flags": 4}, diff --git a/keyboards/mechboards/sofle/pro/keyboard.json b/keyboards/mechboards/sofle/pro/keyboard.json index dbc339d9a1e..e1da0386447 100644 --- a/keyboards/mechboards/sofle/pro/keyboard.json +++ b/keyboards/mechboards/sofle/pro/keyboard.json @@ -30,9 +30,6 @@ "animations": { "cycle_left_right": true }, - "default": { - "animation": "cycle_left_right" - }, "driver": "ws2812", "layout": [ {"matrix": [4, 0], "x": 32, "y": 57, "flags": 4}, diff --git a/keyboards/momokai/aurora/keyboard.json b/keyboards/momokai/aurora/keyboard.json index 84ecbdeb4a1..9c5ff2a043b 100644 --- a/keyboards/momokai/aurora/keyboard.json +++ b/keyboards/momokai/aurora/keyboard.json @@ -45,7 +45,6 @@ "rgb_matrix": { "default": { "animation": "solid_color", - "hue": 0, "sat": 0, "val": 200 }, diff --git a/keyboards/momokai/tap_duo/keyboard.json b/keyboards/momokai/tap_duo/keyboard.json index f5351dd031f..ad38187949c 100644 --- a/keyboards/momokai/tap_duo/keyboard.json +++ b/keyboards/momokai/tap_duo/keyboard.json @@ -14,7 +14,6 @@ "rgb_matrix": { "default": { "animation": "solid_color", - "hue": 0, "sat": 0, "val": 200 }, diff --git a/keyboards/momokai/tap_trio/keyboard.json b/keyboards/momokai/tap_trio/keyboard.json index f61de25c10e..23e9867fe70 100644 --- a/keyboards/momokai/tap_trio/keyboard.json +++ b/keyboards/momokai/tap_trio/keyboard.json @@ -14,7 +14,6 @@ "rgb_matrix": { "default": { "animation": "solid_color", - "hue": 0, "sat": 0, "val": 200 }, diff --git a/keyboards/rot13labs/veilid_sao/keyboard.json b/keyboards/rot13labs/veilid_sao/keyboard.json index 751345d2649..0a0d8eecab8 100644 --- a/keyboards/rot13labs/veilid_sao/keyboard.json +++ b/keyboards/rot13labs/veilid_sao/keyboard.json @@ -31,9 +31,6 @@ "cycle_left_right": true }, "driver": "ws2812", - "default": { - "animation": "cycle_left_right" - }, "layout": [ {"flags": 4, "matrix": [0, 0], "x": 0, "y": 0} ], diff --git a/keyboards/splitkb/halcyon/kyria/rev4/keyboard.json b/keyboards/splitkb/halcyon/kyria/rev4/keyboard.json index aca43a8a163..7f699f25840 100755 --- a/keyboards/splitkb/halcyon/kyria/rev4/keyboard.json +++ b/keyboards/splitkb/halcyon/kyria/rev4/keyboard.json @@ -65,9 +65,6 @@ "splash": true, "typing_heatmap": true }, - "default": { - "animation": "cycle_left_right" - }, "driver": "ws2812", "layout": [ {"x": 75, "y": 2, "flags": 2}, diff --git a/keyboards/system76/launch_1/keyboard.json b/keyboards/system76/launch_1/keyboard.json index 929b8c9794d..b5317dd9bc8 100644 --- a/keyboards/system76/launch_1/keyboard.json +++ b/keyboards/system76/launch_1/keyboard.json @@ -44,9 +44,7 @@ }, "default": { "animation": "rainbow_moving_chevron", - "hue": 142, - "sat": 255, - "speed": 127 + "hue": 142 }, "driver": "ws2812", "max_brightness": 176, From 800bc78d26ea02083be86596ab63fe7d4bf17e5c Mon Sep 17 00:00:00 2001 From: lsh4711 <120231876+lsh4711@users.noreply.github.com> Date: Fri, 18 Apr 2025 18:05:25 +0900 Subject: [PATCH 339/365] Fix missing and extra commas in JSON schema (#25057) --- data/schemas/community_module.jsonschema | 4 ++-- data/schemas/keyboard.jsonschema | 6 +++--- data/schemas/user_repo_v0.jsonschema | 4 ++-- data/schemas/user_repo_v1.jsonschema | 2 +- data/schemas/user_repo_v1_1.jsonschema | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/data/schemas/community_module.jsonschema b/data/schemas/community_module.jsonschema index a3474476dff..3cdb6d6a422 100644 --- a/data/schemas/community_module.jsonschema +++ b/data/schemas/community_module.jsonschema @@ -3,7 +3,7 @@ "$id": "qmk.community_module.v1", "title": "Community Module Information", "type": "object", - "required": ["module_name", "maintainer"] + "required": ["module_name", "maintainer"], "properties": { "module_name": {"$ref": "qmk.definitions.v1#/text_identifier"}, "maintainer": {"$ref": "qmk.definitions.v1#/text_identifier"}, @@ -12,6 +12,6 @@ "format": "uri" }, "keycodes": {"$ref": "qmk.definitions.v1#/keycode_decl_array"}, - "features": {"$ref": "qmk.keyboard.v1#/definitions/features_config"}, + "features": {"$ref": "qmk.keyboard.v1#/definitions/features_config"} } } diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 9b63f62d451..92a17e1ef89 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -30,12 +30,12 @@ "properties": { "pins": {"$ref": "qmk.definitions.v1#/mcu_pin_array"} } - } + }, "features_config": { "$ref": "qmk.definitions.v1#/boolean_array", "propertyNames": {"$ref": "qmk.definitions.v1#/snake_case"}, "not": {"required": ["lto"]} - }, + } }, "type": "object", "not": {"required": ["vendorId", "productId"]}, // reject via keys... @@ -354,7 +354,7 @@ "axis_resolution": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "axes": { "type": "object", - "propertyNames": {"enum": ["x", "y", "z", "rx", "ry", "rz"]} + "propertyNames": {"enum": ["x", "y", "z", "rx", "ry", "rz"]}, "additionalProperties": { "oneOf": [ { diff --git a/data/schemas/user_repo_v0.jsonschema b/data/schemas/user_repo_v0.jsonschema index b18ac504284..58d955abe27 100644 --- a/data/schemas/user_repo_v0.jsonschema +++ b/data/schemas/user_repo_v0.jsonschema @@ -8,7 +8,7 @@ ], "properties": { "userspace_version": { - "type": "string", - }, + "type": "string" + } } } diff --git a/data/schemas/user_repo_v1.jsonschema b/data/schemas/user_repo_v1.jsonschema index 69a59bce007..88b50e8a726 100644 --- a/data/schemas/user_repo_v1.jsonschema +++ b/data/schemas/user_repo_v1.jsonschema @@ -9,7 +9,7 @@ {"$ref": "qmk.definitions.v1#/keyboard_keymap_tuple"}, {"$ref": "qmk.definitions.v1#/json_file_path"} ] - }, + } }, "required": [ "userspace_version", diff --git a/data/schemas/user_repo_v1_1.jsonschema b/data/schemas/user_repo_v1_1.jsonschema index 5a7ccce0633..173d8d26d63 100644 --- a/data/schemas/user_repo_v1_1.jsonschema +++ b/data/schemas/user_repo_v1_1.jsonschema @@ -10,7 +10,7 @@ {"$ref": "qmk.definitions.v1#/keyboard_keymap_env"}, {"$ref": "qmk.definitions.v1#/json_file_path"} ] - }, + } }, "required": [ "userspace_version", From 88453acc6aa4c92fdcc90f706987114cc4b9a237 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sat, 19 Apr 2025 19:56:45 +0100 Subject: [PATCH 340/365] Remove duplication of RGBLight defaults (#25169) --- keyboards/anavi/knobs3/keyboard.json | 3 --- keyboards/anavi/macropad10/keyboard.json | 3 --- keyboards/ask55/keyboard.json | 2 -- keyboards/cannonkeys/ripple/keyboard.json | 2 -- keyboards/chickenman/ciel65/keyboard.json | 2 -- keyboards/clueboard/17/keyboard.json | 4 +--- keyboards/clueboard/2x1800/2018/keyboard.json | 1 - keyboards/clueboard/66/rev1/keyboard.json | 4 +--- keyboards/clueboard/66/rev2/keyboard.json | 4 +--- keyboards/clueboard/66/rev3/keyboard.json | 4 +--- keyboards/clueboard/66/rev4/keyboard.json | 4 +--- keyboards/clueboard/66_hotswap/prototype/keyboard.json | 4 +--- keyboards/clueboard/card/keyboard.json | 4 +--- keyboards/ghs/jem/info.json | 2 -- keyboards/hillside/46/0_1/keyboard.json | 1 - keyboards/hillside/48/0_1/keyboard.json | 1 - keyboards/hillside/52/0_1/keyboard.json | 1 - keyboards/jaykeeb/kamigakushi/keyboard.json | 2 -- keyboards/jaykeeb/sriwedari70/keyboard.json | 2 -- keyboards/kbdfans/odinmini/keyboard.json | 1 - keyboards/keycapsss/3w6_2040/keyboard.json | 1 - keyboards/keyspensory/kp60/keyboard.json | 1 - keyboards/kprepublic/jj50/rev2/keyboard.json | 1 - keyboards/lxxt/keyboard.json | 2 -- keyboards/mechwild/bde/info.json | 3 +-- keyboards/mechwild/bde/rev2/keyboard.json | 1 - keyboards/mechwild/sugarglider/info.json | 2 -- keyboards/mk65/keyboard.json | 2 -- keyboards/mlego/m65/rev1/keyboard.json | 1 - keyboards/mlego/m65/rev2/keyboard.json | 1 - keyboards/mlego/m65/rev3/keyboard.json | 1 - keyboards/mlego/m65/rev4/keyboard.json | 1 - keyboards/mwstudio/mw80/keyboard.json | 2 -- keyboards/nightly_boards/octopadplus/keyboard.json | 2 -- keyboards/pauperboards/brick/keyboard.json | 1 - keyboards/plywrks/allaro/keyboard.json | 2 -- keyboards/prototypist/oceanographer/keyboard.json | 2 -- keyboards/rastersoft/minitkl/keyboard.json | 1 - keyboards/reedskeebs/alish40/keyboard.json | 4 +--- keyboards/salicylic_acid3/guide68/keyboard.json | 1 - keyboards/sawnsprojects/eclipse/eclipse60/keyboard.json | 2 -- keyboards/sawnsprojects/eclipse/tinyneko/keyboard.json | 2 -- keyboards/studiokestra/galatea/rev2/keyboard.json | 1 - keyboards/studiokestra/galatea/rev3/keyboard.json | 1 - keyboards/takashicompany/goat51/keyboard.json | 2 -- keyboards/takashicompany/spreadwriter/keyboard.json | 2 -- keyboards/tau4/keyboard.json | 1 - keyboards/tweetydabird/lbs4/keyboard.json | 3 --- keyboards/tweetydabird/lbs6/keyboard.json | 3 --- keyboards/vinhcatba/uncertainty/keyboard.json | 1 - keyboards/work_louder/micro/keyboard.json | 1 - keyboards/work_louder/numpad/keyboard.json | 1 - keyboards/yoichiro/lunakey_pico/keyboard.json | 4 +--- 53 files changed, 10 insertions(+), 97 deletions(-) diff --git a/keyboards/anavi/knobs3/keyboard.json b/keyboards/anavi/knobs3/keyboard.json index 11081ee0863..86aaadf98fb 100644 --- a/keyboards/anavi/knobs3/keyboard.json +++ b/keyboards/anavi/knobs3/keyboard.json @@ -23,9 +23,6 @@ "rgblight": { "led_count": 1, "hue_steps": 10, - "saturation_steps": 17, - "brightness_steps": 17, - "max_brightness": 255, "animations": { "alternating": true, "breathing": true, diff --git a/keyboards/anavi/macropad10/keyboard.json b/keyboards/anavi/macropad10/keyboard.json index a355fdd5492..2e1218d45ff 100644 --- a/keyboards/anavi/macropad10/keyboard.json +++ b/keyboards/anavi/macropad10/keyboard.json @@ -22,9 +22,6 @@ "rgblight": { "led_count": 4, "hue_steps": 10, - "saturation_steps": 17, - "brightness_steps": 17, - "max_brightness": 255, "animations": { "alternating": true, "breathing": true, diff --git a/keyboards/ask55/keyboard.json b/keyboards/ask55/keyboard.json index 66efb1749ae..53451e5329d 100644 --- a/keyboards/ask55/keyboard.json +++ b/keyboards/ask55/keyboard.json @@ -36,9 +36,7 @@ "static_gradient": true }, "brightness_steps": 8, - "hue_steps": 8, "led_count": 8, - "max_brightness": 255, "saturation_steps": 8, "sleep": true }, diff --git a/keyboards/cannonkeys/ripple/keyboard.json b/keyboards/cannonkeys/ripple/keyboard.json index 3dc11719a14..bce98e226c4 100644 --- a/keyboards/cannonkeys/ripple/keyboard.json +++ b/keyboards/cannonkeys/ripple/keyboard.json @@ -36,8 +36,6 @@ "rgblight": { "led_count": 20, "hue_steps": 17, - "saturation_steps": 17, - "brightness_steps": 17, "animations": { "static_gradient": true, "twinkle": true, diff --git a/keyboards/chickenman/ciel65/keyboard.json b/keyboards/chickenman/ciel65/keyboard.json index 8c316759a8c..70527b2aaf6 100644 --- a/keyboards/chickenman/ciel65/keyboard.json +++ b/keyboards/chickenman/ciel65/keyboard.json @@ -26,10 +26,8 @@ }, "rgblight": { "led_count": 14, - "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8, - "max_brightness": 255, "sleep": true, "animations": { "alternating": true, diff --git a/keyboards/clueboard/17/keyboard.json b/keyboards/clueboard/17/keyboard.json index d6aec9cfcc8..dcf273afdac 100644 --- a/keyboards/clueboard/17/keyboard.json +++ b/keyboards/clueboard/17/keyboard.json @@ -32,10 +32,8 @@ "static_gradient": true, "twinkle": true }, - "brightness_steps": 17, "hue_steps": 10, - "led_count": 4, - "saturation_steps": 17 + "led_count": 4 }, "ws2812": { "pin": "F6" diff --git a/keyboards/clueboard/2x1800/2018/keyboard.json b/keyboards/clueboard/2x1800/2018/keyboard.json index 1a926c62b9a..e7b4c95ce32 100644 --- a/keyboards/clueboard/2x1800/2018/keyboard.json +++ b/keyboards/clueboard/2x1800/2018/keyboard.json @@ -44,7 +44,6 @@ "twinkle": true }, "brightness_steps": 8, - "hue_steps": 8, "led_count": 16, "saturation_steps": 8 }, diff --git a/keyboards/clueboard/66/rev1/keyboard.json b/keyboards/clueboard/66/rev1/keyboard.json index ca1e3a6553b..4743a125b93 100644 --- a/keyboards/clueboard/66/rev1/keyboard.json +++ b/keyboards/clueboard/66/rev1/keyboard.json @@ -33,10 +33,8 @@ "static_gradient": true, "twinkle": true }, - "brightness_steps": 17, "hue_steps": 10, - "led_count": 14, - "saturation_steps": 17 + "led_count": 14 }, "ws2812": { "pin": "B2" diff --git a/keyboards/clueboard/66/rev2/keyboard.json b/keyboards/clueboard/66/rev2/keyboard.json index fea4f8d39bc..39ca7c48416 100644 --- a/keyboards/clueboard/66/rev2/keyboard.json +++ b/keyboards/clueboard/66/rev2/keyboard.json @@ -34,10 +34,8 @@ "static_gradient": true, "twinkle": true }, - "brightness_steps": 17, "hue_steps": 32, - "led_count": 14, - "saturation_steps": 17 + "led_count": 14 }, "ws2812": { "pin": "D7" diff --git a/keyboards/clueboard/66/rev3/keyboard.json b/keyboards/clueboard/66/rev3/keyboard.json index 4553979d8a2..7713c734819 100644 --- a/keyboards/clueboard/66/rev3/keyboard.json +++ b/keyboards/clueboard/66/rev3/keyboard.json @@ -34,10 +34,8 @@ "static_gradient": true, "twinkle": true }, - "brightness_steps": 17, "hue_steps": 32, - "led_count": 18, - "saturation_steps": 17 + "led_count": 18 }, "ws2812": { "pin": "D7" diff --git a/keyboards/clueboard/66/rev4/keyboard.json b/keyboards/clueboard/66/rev4/keyboard.json index dbc1b94915d..d834b688f99 100644 --- a/keyboards/clueboard/66/rev4/keyboard.json +++ b/keyboards/clueboard/66/rev4/keyboard.json @@ -32,10 +32,8 @@ "static_gradient": true, "twinkle": true }, - "brightness_steps": 17, "hue_steps": 32, - "led_count": 18, - "saturation_steps": 17 + "led_count": 18 }, "ws2812": { "pin": "D7" diff --git a/keyboards/clueboard/66_hotswap/prototype/keyboard.json b/keyboards/clueboard/66_hotswap/prototype/keyboard.json index 9d0b0dd27c7..1325612ed3c 100644 --- a/keyboards/clueboard/66_hotswap/prototype/keyboard.json +++ b/keyboards/clueboard/66_hotswap/prototype/keyboard.json @@ -39,10 +39,8 @@ "static_gradient": true, "twinkle": true }, - "brightness_steps": 17, "hue_steps": 32, - "led_count": 26, - "saturation_steps": 17 + "led_count": 26 }, "ws2812": { "pin": "D7" diff --git a/keyboards/clueboard/card/keyboard.json b/keyboards/clueboard/card/keyboard.json index 0425819ed7a..3929c073d70 100644 --- a/keyboards/clueboard/card/keyboard.json +++ b/keyboards/clueboard/card/keyboard.json @@ -25,10 +25,8 @@ "rows": ["F0", "F5", "F4", "B4"] }, "rgblight": { - "brightness_steps": 17, "hue_steps": 10, - "led_count": 4, - "saturation_steps": 17 + "led_count": 4 }, "ws2812": { "pin": "E6" diff --git a/keyboards/ghs/jem/info.json b/keyboards/ghs/jem/info.json index b90655647d5..21d9bf0e6ba 100644 --- a/keyboards/ghs/jem/info.json +++ b/keyboards/ghs/jem/info.json @@ -29,8 +29,6 @@ "rgblight": { "led_count": 22, "hue_steps": 10, - "saturation_steps": 17, - "brightness_steps": 17, "animations": { "breathing": true, "rainbow_mood": true, diff --git a/keyboards/hillside/46/0_1/keyboard.json b/keyboards/hillside/46/0_1/keyboard.json index 663eeb25f4e..7d3967c8c36 100644 --- a/keyboards/hillside/46/0_1/keyboard.json +++ b/keyboards/hillside/46/0_1/keyboard.json @@ -40,7 +40,6 @@ "rgblight": { "led_count": 4, "split": true, - "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8, "sleep": true diff --git a/keyboards/hillside/48/0_1/keyboard.json b/keyboards/hillside/48/0_1/keyboard.json index 4dd2e013617..acae16f3470 100644 --- a/keyboards/hillside/48/0_1/keyboard.json +++ b/keyboards/hillside/48/0_1/keyboard.json @@ -40,7 +40,6 @@ "rgblight": { "led_count": 5, "split": true, - "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8, "sleep": true diff --git a/keyboards/hillside/52/0_1/keyboard.json b/keyboards/hillside/52/0_1/keyboard.json index c8db3917d67..469e6c58443 100644 --- a/keyboards/hillside/52/0_1/keyboard.json +++ b/keyboards/hillside/52/0_1/keyboard.json @@ -40,7 +40,6 @@ "rgblight": { "led_count": 5, "split": true, - "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8, "sleep": true diff --git a/keyboards/jaykeeb/kamigakushi/keyboard.json b/keyboards/jaykeeb/kamigakushi/keyboard.json index 7ab02d2c66c..6095d9cd87c 100644 --- a/keyboards/jaykeeb/kamigakushi/keyboard.json +++ b/keyboards/jaykeeb/kamigakushi/keyboard.json @@ -19,10 +19,8 @@ }, "rgblight": { "led_count": 2, - "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8, - "max_brightness": 255, "animations": { "alternating": true, "breathing": true, diff --git a/keyboards/jaykeeb/sriwedari70/keyboard.json b/keyboards/jaykeeb/sriwedari70/keyboard.json index c9569a9724a..20f7e00ba41 100644 --- a/keyboards/jaykeeb/sriwedari70/keyboard.json +++ b/keyboards/jaykeeb/sriwedari70/keyboard.json @@ -30,10 +30,8 @@ }, "rgblight": { "led_count": 8, - "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8, - "max_brightness": 255, "animations": { "alternating": true, "breathing": true, diff --git a/keyboards/kbdfans/odinmini/keyboard.json b/keyboards/kbdfans/odinmini/keyboard.json index a9cb1a798fc..34002e83d86 100644 --- a/keyboards/kbdfans/odinmini/keyboard.json +++ b/keyboards/kbdfans/odinmini/keyboard.json @@ -35,7 +35,6 @@ "twinkle": true }, "brightness_steps": 8, - "hue_steps": 8, "led_count": 4, "max_brightness": 180, "saturation_steps": 8, diff --git a/keyboards/keycapsss/3w6_2040/keyboard.json b/keyboards/keycapsss/3w6_2040/keyboard.json index f29b3753c6b..e481b98894d 100644 --- a/keyboards/keycapsss/3w6_2040/keyboard.json +++ b/keyboards/keycapsss/3w6_2040/keyboard.json @@ -42,7 +42,6 @@ "sat": 232, "speed": 2 }, - "hue_steps": 8, "led_count": 2, "max_brightness": 100, "saturation_steps": 8, diff --git a/keyboards/keyspensory/kp60/keyboard.json b/keyboards/keyspensory/kp60/keyboard.json index 1172e14d455..8672cf10e8e 100644 --- a/keyboards/keyspensory/kp60/keyboard.json +++ b/keyboards/keyspensory/kp60/keyboard.json @@ -26,7 +26,6 @@ }, "rgblight": { "led_count": 8, - "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8, "animations": { diff --git a/keyboards/kprepublic/jj50/rev2/keyboard.json b/keyboards/kprepublic/jj50/rev2/keyboard.json index b739c20713b..c3e0f7a3226 100644 --- a/keyboards/kprepublic/jj50/rev2/keyboard.json +++ b/keyboards/kprepublic/jj50/rev2/keyboard.json @@ -39,7 +39,6 @@ "twinkle": true }, "brightness_steps": 8, - "hue_steps": 8, "led_count": 6, "saturation_steps": 8 }, diff --git a/keyboards/lxxt/keyboard.json b/keyboards/lxxt/keyboard.json index 3a2700883d5..5a028cacd89 100644 --- a/keyboards/lxxt/keyboard.json +++ b/keyboards/lxxt/keyboard.json @@ -26,10 +26,8 @@ }, "rgblight": { "led_count": 16, - "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8, - "max_brightness": 255, "sleep": true, "animations": { "alternating": true, diff --git a/keyboards/mechwild/bde/info.json b/keyboards/mechwild/bde/info.json index 918c792aa70..edecde1ebae 100644 --- a/keyboards/mechwild/bde/info.json +++ b/keyboards/mechwild/bde/info.json @@ -10,8 +10,7 @@ }, "development_board": "promicro", "rgblight": { - "sleep": true, - "max_brightness": 255 + "sleep": true }, "tapping": { "tap_keycode_delay": 10, diff --git a/keyboards/mechwild/bde/rev2/keyboard.json b/keyboards/mechwild/bde/rev2/keyboard.json index 932f99f0e96..b166934e1e0 100644 --- a/keyboards/mechwild/bde/rev2/keyboard.json +++ b/keyboards/mechwild/bde/rev2/keyboard.json @@ -34,7 +34,6 @@ "animations": { "rainbow_swirl": true }, - "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8 }, diff --git a/keyboards/mechwild/sugarglider/info.json b/keyboards/mechwild/sugarglider/info.json index 80004f35d14..0b796f7c21d 100644 --- a/keyboards/mechwild/sugarglider/info.json +++ b/keyboards/mechwild/sugarglider/info.json @@ -18,8 +18,6 @@ }, "rgblight": { "led_count": 10, - "max_brightness": 255, - "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8, "animations": { diff --git a/keyboards/mk65/keyboard.json b/keyboards/mk65/keyboard.json index 9135deaf199..07a78872c4d 100644 --- a/keyboards/mk65/keyboard.json +++ b/keyboards/mk65/keyboard.json @@ -34,10 +34,8 @@ }, "rgblight": { "led_count": 7, - "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8, - "max_brightness": 255, "sleep": true, "animations": { "alternating": true, diff --git a/keyboards/mlego/m65/rev1/keyboard.json b/keyboards/mlego/m65/rev1/keyboard.json index 2f77137eec9..b763c2e2cf3 100644 --- a/keyboards/mlego/m65/rev1/keyboard.json +++ b/keyboards/mlego/m65/rev1/keyboard.json @@ -42,7 +42,6 @@ "static_gradient": true, "twinkle": true }, - "hue_steps": 8, "layers": { "enabled": true }, diff --git a/keyboards/mlego/m65/rev2/keyboard.json b/keyboards/mlego/m65/rev2/keyboard.json index 00147673091..f07f1280a41 100644 --- a/keyboards/mlego/m65/rev2/keyboard.json +++ b/keyboards/mlego/m65/rev2/keyboard.json @@ -41,7 +41,6 @@ "static_gradient": true, "twinkle": true }, - "hue_steps": 8, "layers": { "enabled": true }, diff --git a/keyboards/mlego/m65/rev3/keyboard.json b/keyboards/mlego/m65/rev3/keyboard.json index 4b7980b63bf..168a214a88a 100644 --- a/keyboards/mlego/m65/rev3/keyboard.json +++ b/keyboards/mlego/m65/rev3/keyboard.json @@ -42,7 +42,6 @@ "static_gradient": true, "twinkle": true }, - "hue_steps": 8, "layers": { "enabled": true }, diff --git a/keyboards/mlego/m65/rev4/keyboard.json b/keyboards/mlego/m65/rev4/keyboard.json index ab2a708ba88..a83f363bb1e 100644 --- a/keyboards/mlego/m65/rev4/keyboard.json +++ b/keyboards/mlego/m65/rev4/keyboard.json @@ -44,7 +44,6 @@ "static_gradient": true, "twinkle": true }, - "hue_steps": 8, "layers": { "enabled": true }, diff --git a/keyboards/mwstudio/mw80/keyboard.json b/keyboards/mwstudio/mw80/keyboard.json index 829e97591c6..08591eb7065 100644 --- a/keyboards/mwstudio/mw80/keyboard.json +++ b/keyboards/mwstudio/mw80/keyboard.json @@ -29,8 +29,6 @@ "rgblight": { "led_count": 16, "hue_steps": 10, - "saturation_steps": 17, - "brightness_steps": 17, "animations": { "alternating": true, "breathing": true, diff --git a/keyboards/nightly_boards/octopadplus/keyboard.json b/keyboards/nightly_boards/octopadplus/keyboard.json index ca5a7cdad16..8b94b722a82 100644 --- a/keyboards/nightly_boards/octopadplus/keyboard.json +++ b/keyboards/nightly_boards/octopadplus/keyboard.json @@ -52,9 +52,7 @@ "twinkle": true }, "brightness_steps": 8, - "hue_steps": 8, "led_count": 8, - "max_brightness": 255, "saturation_steps": 8, "sleep": true }, diff --git a/keyboards/pauperboards/brick/keyboard.json b/keyboards/pauperboards/brick/keyboard.json index 8ebe32ded41..d1267f08918 100644 --- a/keyboards/pauperboards/brick/keyboard.json +++ b/keyboards/pauperboards/brick/keyboard.json @@ -35,7 +35,6 @@ }, "rgblight": { "led_count": 8, - "hue_steps": 8, "brightness_steps": 8, "saturation_steps": 8, "animations": { diff --git a/keyboards/plywrks/allaro/keyboard.json b/keyboards/plywrks/allaro/keyboard.json index fecc15f73bc..a9a0a175b60 100644 --- a/keyboards/plywrks/allaro/keyboard.json +++ b/keyboards/plywrks/allaro/keyboard.json @@ -26,8 +26,6 @@ "rgblight": { "led_count": 16, "hue_steps": 10, - "saturation_steps": 17, - "brightness_steps": 17, "animations": { "alternating": true, "breathing": true, diff --git a/keyboards/prototypist/oceanographer/keyboard.json b/keyboards/prototypist/oceanographer/keyboard.json index 8b0209d451f..13bc41355c4 100644 --- a/keyboards/prototypist/oceanographer/keyboard.json +++ b/keyboards/prototypist/oceanographer/keyboard.json @@ -29,8 +29,6 @@ "led_count": 3, "sleep": true, "hue_steps": 10, - "saturation_steps": 17, - "brightness_steps": 17, "max_brightness": 155, "animations": { "alternating": true, diff --git a/keyboards/rastersoft/minitkl/keyboard.json b/keyboards/rastersoft/minitkl/keyboard.json index e8d06919597..6b0869bc633 100644 --- a/keyboards/rastersoft/minitkl/keyboard.json +++ b/keyboards/rastersoft/minitkl/keyboard.json @@ -24,7 +24,6 @@ "rgblight": { "led_count": 3, "pin": "B2", - "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8, "animations": { diff --git a/keyboards/reedskeebs/alish40/keyboard.json b/keyboards/reedskeebs/alish40/keyboard.json index 1a4b9f4afed..564d4eeeda5 100644 --- a/keyboards/reedskeebs/alish40/keyboard.json +++ b/keyboards/reedskeebs/alish40/keyboard.json @@ -34,10 +34,8 @@ "static_gradient": true, "twinkle": true }, - "brightness_steps": 17, "hue_steps": 10, - "led_count": 10, - "saturation_steps": 17 + "led_count": 10 }, "ws2812": { "pin": "F5" diff --git a/keyboards/salicylic_acid3/guide68/keyboard.json b/keyboards/salicylic_acid3/guide68/keyboard.json index 0714262858f..d2c6f10d11c 100644 --- a/keyboards/salicylic_acid3/guide68/keyboard.json +++ b/keyboards/salicylic_acid3/guide68/keyboard.json @@ -39,7 +39,6 @@ "twinkle": true }, "sleep": true, - "max_brightness": 255, "split": true, "split_count": [6, 6] }, diff --git a/keyboards/sawnsprojects/eclipse/eclipse60/keyboard.json b/keyboards/sawnsprojects/eclipse/eclipse60/keyboard.json index 7586ed5a347..e4b63753e2d 100644 --- a/keyboards/sawnsprojects/eclipse/eclipse60/keyboard.json +++ b/keyboards/sawnsprojects/eclipse/eclipse60/keyboard.json @@ -26,10 +26,8 @@ }, "rgblight": { "led_count": 18, - "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8, - "max_brightness": 255, "sleep": true, "animations": { "alternating": true, diff --git a/keyboards/sawnsprojects/eclipse/tinyneko/keyboard.json b/keyboards/sawnsprojects/eclipse/tinyneko/keyboard.json index 80ae2558f2d..6790011807c 100644 --- a/keyboards/sawnsprojects/eclipse/tinyneko/keyboard.json +++ b/keyboards/sawnsprojects/eclipse/tinyneko/keyboard.json @@ -26,10 +26,8 @@ }, "rgblight": { "led_count": 18, - "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8, - "max_brightness": 255, "sleep": true, "animations": { "alternating": true, diff --git a/keyboards/studiokestra/galatea/rev2/keyboard.json b/keyboards/studiokestra/galatea/rev2/keyboard.json index 115b5684cd3..19bb235e33a 100644 --- a/keyboards/studiokestra/galatea/rev2/keyboard.json +++ b/keyboards/studiokestra/galatea/rev2/keyboard.json @@ -40,7 +40,6 @@ }, "rgblight": { "led_count": 24, - "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8, "max_brightness": 200, diff --git a/keyboards/studiokestra/galatea/rev3/keyboard.json b/keyboards/studiokestra/galatea/rev3/keyboard.json index a4b07bb4df6..c077351bb92 100644 --- a/keyboards/studiokestra/galatea/rev3/keyboard.json +++ b/keyboards/studiokestra/galatea/rev3/keyboard.json @@ -36,7 +36,6 @@ }, "rgblight": { "led_count": 24, - "hue_steps": 8, "saturation_steps": 8, "brightness_steps": 8, "max_brightness": 200, diff --git a/keyboards/takashicompany/goat51/keyboard.json b/keyboards/takashicompany/goat51/keyboard.json index c4246857133..8ef4c543436 100644 --- a/keyboards/takashicompany/goat51/keyboard.json +++ b/keyboards/takashicompany/goat51/keyboard.json @@ -32,8 +32,6 @@ "rgblight": { "led_count": 11, "hue_steps": 10, - "saturation_steps": 17, - "brightness_steps": 17, "animations": { "alternating": true, "breathing": true, diff --git a/keyboards/takashicompany/spreadwriter/keyboard.json b/keyboards/takashicompany/spreadwriter/keyboard.json index 2c9fcd1619a..59c78c45323 100644 --- a/keyboards/takashicompany/spreadwriter/keyboard.json +++ b/keyboards/takashicompany/spreadwriter/keyboard.json @@ -31,8 +31,6 @@ "rgblight": { "led_count": 53, "hue_steps": 10, - "saturation_steps": 17, - "brightness_steps": 17, "animations": { "alternating": true, "breathing": true, diff --git a/keyboards/tau4/keyboard.json b/keyboards/tau4/keyboard.json index f5acdbddd33..9a8e280905d 100644 --- a/keyboards/tau4/keyboard.json +++ b/keyboards/tau4/keyboard.json @@ -47,7 +47,6 @@ "twinkle": true }, "brightness_steps": 8, - "hue_steps": 8, "layers": { "blink": false, "enabled": true, diff --git a/keyboards/tweetydabird/lbs4/keyboard.json b/keyboards/tweetydabird/lbs4/keyboard.json index 31765207722..e223289a3c0 100644 --- a/keyboards/tweetydabird/lbs4/keyboard.json +++ b/keyboards/tweetydabird/lbs4/keyboard.json @@ -36,9 +36,6 @@ }, "rgblight": { "led_count": 6, - "hue_steps": 8, - "saturation_steps": 17, - "brightness_steps": 17, "max_brightness": 175, "animations": { "alternating": true, diff --git a/keyboards/tweetydabird/lbs6/keyboard.json b/keyboards/tweetydabird/lbs6/keyboard.json index 1714e9b6c46..57be9289f86 100644 --- a/keyboards/tweetydabird/lbs6/keyboard.json +++ b/keyboards/tweetydabird/lbs6/keyboard.json @@ -39,9 +39,6 @@ }, "rgblight": { "led_count": 8, - "hue_steps": 8, - "saturation_steps": 17, - "brightness_steps": 17, "max_brightness": 200, "animations": { "alternating": true, diff --git a/keyboards/vinhcatba/uncertainty/keyboard.json b/keyboards/vinhcatba/uncertainty/keyboard.json index 5f35a144d83..551e30c823a 100644 --- a/keyboards/vinhcatba/uncertainty/keyboard.json +++ b/keyboards/vinhcatba/uncertainty/keyboard.json @@ -47,7 +47,6 @@ "override_rgb": true }, "led_count": 14, - "max_brightness": 255, "sleep": true }, "url": "", diff --git a/keyboards/work_louder/micro/keyboard.json b/keyboards/work_louder/micro/keyboard.json index 1b57ca82e88..b9ba6227bd7 100644 --- a/keyboards/work_louder/micro/keyboard.json +++ b/keyboards/work_louder/micro/keyboard.json @@ -38,7 +38,6 @@ "hue": 213 }, "brightness_steps": 8, - "hue_steps": 8, "led_count": 8, "max_brightness": 150, "saturation_steps": 8, diff --git a/keyboards/work_louder/numpad/keyboard.json b/keyboards/work_louder/numpad/keyboard.json index bd615c40808..08bf7295dac 100644 --- a/keyboards/work_louder/numpad/keyboard.json +++ b/keyboards/work_louder/numpad/keyboard.json @@ -99,7 +99,6 @@ "hue": 213 }, "brightness_steps": 8, - "hue_steps": 8, "led_count": 8, "max_brightness": 120, "saturation_steps": 8, diff --git a/keyboards/yoichiro/lunakey_pico/keyboard.json b/keyboards/yoichiro/lunakey_pico/keyboard.json index 39070d615a6..a6db26fde0e 100644 --- a/keyboards/yoichiro/lunakey_pico/keyboard.json +++ b/keyboards/yoichiro/lunakey_pico/keyboard.json @@ -41,10 +41,8 @@ "static_gradient": true, "twinkle": true }, - "hue_steps": 8, "saturation_steps": 8, - "brightness_steps": 8, - "max_brightness": 255 + "brightness_steps": 8 }, "split": { "enabled": true, From ea85ace4a90baca401e49f35365a6a8f7d3802c4 Mon Sep 17 00:00:00 2001 From: Pascal Getreuer <50221757+getreuer@users.noreply.github.com> Date: Sat, 19 Apr 2025 11:57:00 -0700 Subject: [PATCH 341/365] Ignore the Layer Lock key in Repeat Key and Caps Word. (#25171) --- quantum/process_keycode/process_caps_word.c | 7 ++- quantum/process_keycode/process_repeat_key.c | 5 +- tests/caps_word/test.mk | 2 + tests/caps_word/test_caps_word.cpp | 52 +++++++++++++++++--- tests/repeat_key/test.mk | 1 + tests/repeat_key/test_repeat_key.cpp | 33 +++++++++++++ 6 files changed, 91 insertions(+), 9 deletions(-) diff --git a/quantum/process_keycode/process_caps_word.c b/quantum/process_keycode/process_caps_word.c index b8fb868c6d3..8ab66cc5213 100644 --- a/quantum/process_keycode/process_caps_word.c +++ b/quantum/process_keycode/process_caps_word.c @@ -160,8 +160,13 @@ bool process_caps_word(uint16_t keycode, keyrecord_t* record) { case QK_TOGGLE_LAYER ... QK_TOGGLE_LAYER_MAX: case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX: case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_LAYER_MAX: +#ifdef TRI_LAYER_ENABLE // Ignore Tri Layer keys. case QK_TRI_LAYER_LOWER ... QK_TRI_LAYER_UPPER: - // Ignore AltGr. +#endif // TRI_LAYER_ENABLE +#ifdef LAYER_LOCK_ENABLE // Ignore Layer Lock key. + case QK_LAYER_LOCK: +#endif // LAYER_LOCK_ENABLE + // Ignore AltGr. case KC_RALT: case OSM(MOD_RALT): return true; diff --git a/quantum/process_keycode/process_repeat_key.c b/quantum/process_keycode/process_repeat_key.c index 73f4ddedcf1..fdeed4f4665 100644 --- a/quantum/process_keycode/process_repeat_key.c +++ b/quantum/process_keycode/process_repeat_key.c @@ -41,7 +41,10 @@ static bool remember_last_key(uint16_t keycode, keyrecord_t* record, uint8_t* re #ifdef TRI_LAYER_ENABLE // Ignore Tri Layer keys. case QK_TRI_LAYER_LOWER: case QK_TRI_LAYER_UPPER: -#endif // TRI_LAYER_ENABLE +#endif // TRI_LAYER_ENABLE +#ifdef LAYER_LOCK_ENABLE // Ignore Layer Lock key. + case QK_LAYER_LOCK: +#endif // LAYER_LOCK_ENABLE return false; // Ignore hold events on tap-hold keys. diff --git a/tests/caps_word/test.mk b/tests/caps_word/test.mk index 2509b018588..6d5664aa054 100644 --- a/tests/caps_word/test.mk +++ b/tests/caps_word/test.mk @@ -15,5 +15,7 @@ CAPS_WORD_ENABLE = yes COMMAND_ENABLE = no +LAYER_LOCK_ENABLE = yes SPACE_CADET_ENABLE = yes +TRI_LAYER_ENABLE = yes diff --git a/tests/caps_word/test_caps_word.cpp b/tests/caps_word/test_caps_word.cpp index 28d86e93243..4b58790915a 100644 --- a/tests/caps_word/test_caps_word.cpp +++ b/tests/caps_word/test_caps_word.cpp @@ -156,21 +156,22 @@ TEST_F(CapsWord, IdleTimeout) { // Turn on Caps Word and tap "A". caps_word_on(); tap_key(key_a); - VERIFY_AND_CLEAR(driver); + EXPECT_EMPTY_REPORT(driver); idle_for(CAPS_WORD_IDLE_TIMEOUT); run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); // Caps Word should be off and mods should be clear. EXPECT_EQ(is_caps_word_on(), false); EXPECT_EQ(get_mods() | get_weak_mods(), 0); - EXPECT_EMPTY_REPORT(driver).Times(AnyNumber()); // Expect unshifted "A". EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); tap_key(key_a); - + run_one_scan_loop(); VERIFY_AND_CLEAR(driver); } @@ -244,6 +245,7 @@ TEST_F(CapsWord, ShiftsAltGrSymbols) { // clang-format off EXPECT_CALL(driver, send_keyboard_mock(AnyOf( KeyboardReport(), + KeyboardReport(KC_LSFT), KeyboardReport(KC_RALT), KeyboardReport(KC_LSFT, KC_RALT)))) .Times(AnyNumber()); @@ -259,6 +261,9 @@ TEST_F(CapsWord, ShiftsAltGrSymbols) { tap_key(key_a); run_one_scan_loop(); key_altgr.release(); + run_one_scan_loop(); + + idle_for(CAPS_WORD_IDLE_TIMEOUT); VERIFY_AND_CLEAR(driver); } @@ -274,6 +279,7 @@ TEST_F(CapsWord, ShiftsModTapAltGrSymbols) { // clang-format off EXPECT_CALL(driver, send_keyboard_mock(AnyOf( KeyboardReport(), + KeyboardReport(KC_LSFT), KeyboardReport(KC_RALT), KeyboardReport(KC_LSFT, KC_RALT)))) .Times(AnyNumber()); @@ -289,8 +295,11 @@ TEST_F(CapsWord, ShiftsModTapAltGrSymbols) { tap_key(key_a); run_one_scan_loop(); key_altgr_t.release(); - + run_one_scan_loop(); EXPECT_TRUE(is_caps_word_on()); + + idle_for(CAPS_WORD_IDLE_TIMEOUT); + VERIFY_AND_CLEAR(driver); } @@ -535,7 +544,11 @@ TEST_P(CapsWordDoubleTapShift, Activation) { // machine at this point. This due to imperfect test isolation which can't // reset the caps word double shift timer on test case setup. idle_for(CAPS_WORD_IDLE_TIMEOUT); + + EXPECT_REPORT(driver, (KC_ESC)); + EXPECT_EMPTY_REPORT(driver); tap_key(esc); + VERIFY_AND_CLEAR(driver); } // Double tap doesn't count if another key is pressed between the taps. @@ -589,6 +602,7 @@ TEST_P(CapsWordDoubleTapShift, SlowTaps) { EXPECT_EQ(is_caps_word_on(), false); // Caps Word is still off. clear_oneshot_mods(); + send_keyboard_report(); VERIFY_AND_CLEAR(driver); } @@ -626,7 +640,7 @@ TEST_F(CapsWord, IgnoresOSLHold) { run_one_scan_loop(); tap_key(key_b); key_osl.release(); - run_one_scan_loop(); + idle_for(CAPS_WORD_IDLE_TIMEOUT + 1); VERIFY_AND_CLEAR(driver); } @@ -645,15 +659,39 @@ TEST_F(CapsWord, IgnoresOSLTap) { KeyboardReport(), KeyboardReport(KC_LSFT)))) .Times(AnyNumber()); + // clang-format on EXPECT_REPORT(driver, (KC_LSFT, KC_B)); caps_word_on(); tap_key(key_osl); tap_key(key_b); - run_one_scan_loop(); + idle_for(CAPS_WORD_IDLE_TIMEOUT); + + VERIFY_AND_CLEAR(driver); +} + +TEST_F(CapsWord, IgnoresLayerLockKey) { + TestDriver driver; + KeymapKey key_llock(0, 1, 0, QK_LAYER_LOCK); + KeymapKey key_b(0, 0, 0, KC_B); + set_keymap({key_llock, key_b}); + + // Allow any number of reports with no keys or only modifiers. + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(), + KeyboardReport(KC_LSFT)))) + .Times(AnyNumber()); + // clang-format on + + EXPECT_REPORT(driver, (KC_LSFT, KC_B)); + caps_word_on(); + + tap_key(key_llock); + tap_key(key_b); + idle_for(CAPS_WORD_IDLE_TIMEOUT); VERIFY_AND_CLEAR(driver); } -// clang-format on } // namespace diff --git a/tests/repeat_key/test.mk b/tests/repeat_key/test.mk index aec8ff3bfb8..186207ffc21 100644 --- a/tests/repeat_key/test.mk +++ b/tests/repeat_key/test.mk @@ -16,3 +16,4 @@ REPEAT_KEY_ENABLE = yes AUTO_SHIFT_ENABLE = yes +LAYER_LOCK_ENABLE = yes diff --git a/tests/repeat_key/test_repeat_key.cpp b/tests/repeat_key/test_repeat_key.cpp index eee44fc1044..ed5d6187617 100644 --- a/tests/repeat_key/test_repeat_key.cpp +++ b/tests/repeat_key/test_repeat_key.cpp @@ -751,4 +751,37 @@ TEST_F(RepeatKey, RepeatKeyInvoke) { testing::Mock::VerifyAndClearExpectations(&driver); } +// Check that mods and Layer Lock are not remembered. +TEST_F(RepeatKey, IgnoredKeys) { + TestDriver driver; + KeymapKey regular_key(0, 0, 0, KC_A); + KeymapKey key_repeat(0, 1, 0, QK_REP); + KeymapKey key_lsft(0, 2, 0, KC_LSFT); + KeymapKey key_lctl(0, 3, 0, KC_LCTL); + KeymapKey key_llck(0, 4, 0, QK_LAYER_LOCK); + set_keymap({regular_key, key_repeat, key_lsft, key_lctl, key_llck}); + + // Allow any number of empty reports. + EXPECT_EMPTY_REPORT(driver).Times(AnyNumber()); + { + InSequence seq; + EXPECT_REPORT(driver, (KC_A)); + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_REPORT(driver, (KC_LCTL)); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_REPORT(driver, (KC_A)); + } + + tap_key(regular_key); // Taps the KC_A key. + + // Tap Shift, Ctrl, and Layer Lock keys, which should not be remembered. + tap_keys(key_lsft, key_lctl, key_llck); + EXPECT_KEYCODE_EQ(get_last_keycode(), KC_A); + + // Tapping the Repeat Key should still reproduce KC_A. + tap_keys(key_repeat, key_repeat); + + testing::Mock::VerifyAndClearExpectations(&driver); +} + } // namespace From 5c39722ab9c9c7b86f34d4ed4ca4620a47dab01b Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sun, 20 Apr 2025 05:20:00 +1000 Subject: [PATCH 342/365] Allow for disabling EEPROM subsystem entirely. (#25173) --- builddefs/common_features.mk | 146 ++++++++++++++++--------------- data/schemas/keyboard.jsonschema | 2 +- quantum/dynamic_keymap.c | 2 - quantum/eeconfig.c | 5 -- quantum/led_matrix/led_matrix.c | 1 - quantum/rgb_matrix/rgb_matrix.c | 1 - quantum/unicode/unicode.c | 1 - quantum/via.c | 1 - 8 files changed, 75 insertions(+), 84 deletions(-) diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index 802e01de430..f30a456fc35 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -171,80 +171,82 @@ endif VALID_EEPROM_DRIVER_TYPES := vendor custom transient i2c spi wear_leveling legacy_stm32_flash EEPROM_DRIVER ?= vendor -ifeq ($(filter $(EEPROM_DRIVER),$(VALID_EEPROM_DRIVER_TYPES)),) +ifneq ($(strip $(EEPROM_DRIVER)),none) + ifeq ($(filter $(EEPROM_DRIVER),$(VALID_EEPROM_DRIVER_TYPES)),) $(call CATASTROPHIC_ERROR,Invalid EEPROM_DRIVER,EEPROM_DRIVER="$(EEPROM_DRIVER)" is not a valid EEPROM driver) -else - OPT_DEFS += -DEEPROM_ENABLE - COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/eeprom - COMMON_VPATH += $(DRIVER_PATH)/eeprom - COMMON_VPATH += $(PLATFORM_COMMON_DIR) - ifeq ($(strip $(EEPROM_DRIVER)), custom) - # Custom EEPROM implementation -- only needs to implement init/erase/read_block/write_block - OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_CUSTOM - SRC += eeprom_driver.c - else ifeq ($(strip $(EEPROM_DRIVER)), wear_leveling) - # Wear-leveling EEPROM implementation - OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING - SRC += eeprom_driver.c eeprom_wear_leveling.c - else ifeq ($(strip $(EEPROM_DRIVER)), i2c) - # External I2C EEPROM implementation - OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_I2C - I2C_DRIVER_REQUIRED = yes - SRC += eeprom_driver.c eeprom_i2c.c - else ifeq ($(strip $(EEPROM_DRIVER)), spi) - # External SPI EEPROM implementation - OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_SPI - SPI_DRIVER_REQUIRED = yes - SRC += eeprom_driver.c eeprom_spi.c - else ifeq ($(strip $(EEPROM_DRIVER)), legacy_stm32_flash) - # STM32 Emulated EEPROM, backed by MCU flash (soon to be deprecated) - OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_LEGACY_EMULATED_FLASH - COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash - COMMON_VPATH += $(DRIVER_PATH)/flash - SRC += eeprom_driver.c eeprom_legacy_emulated_flash.c legacy_flash_ops.c - else ifeq ($(strip $(EEPROM_DRIVER)), transient) - # Transient EEPROM implementation -- no data storage but provides runtime area for it - OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT - SRC += eeprom_driver.c eeprom_transient.c - else ifeq ($(strip $(EEPROM_DRIVER)), vendor) - # Vendor-implemented EEPROM - OPT_DEFS += -DEEPROM_VENDOR - ifeq ($(PLATFORM),AVR) - # Automatically provided by avr-libc, nothing required - else ifeq ($(PLATFORM),CHIBIOS) - ifneq ($(filter %_STM32F072xB %_STM32F042x6, $(MCU_SERIES)_$(MCU_LDSCRIPT)),) - # STM32 Emulated EEPROM, backed by MCU flash (soon to be deprecated) - OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_LEGACY_EMULATED_FLASH - COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash - COMMON_VPATH += $(DRIVER_PATH)/flash - SRC += eeprom_driver.c eeprom_legacy_emulated_flash.c legacy_flash_ops.c - else ifneq ($(filter $(MCU_SERIES),STM32F1xx STM32F3xx STM32F4xx STM32L4xx STM32G4xx WB32F3G71xx WB32FQ95xx AT32F415 GD32VF103),) - # Wear-leveling EEPROM implementation, backed by MCU flash - OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING - SRC += eeprom_driver.c eeprom_wear_leveling.c - WEAR_LEVELING_DRIVER ?= embedded_flash - else ifneq ($(filter $(MCU_SERIES),STM32L0xx STM32L1xx),) - # True EEPROM on STM32L0xx, L1xx - OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_STM32_L0_L1 - SRC += eeprom_driver.c eeprom_stm32_L0_L1.c - else ifneq ($(filter $(MCU_SERIES),RP2040),) - # Wear-leveling EEPROM implementation, backed by RP2040 flash - OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING - SRC += eeprom_driver.c eeprom_wear_leveling.c - WEAR_LEVELING_DRIVER ?= rp2040_flash - else ifneq ($(filter $(MCU_SERIES),KL2x K20x),) - # Teensy EEPROM implementations - OPT_DEFS += -DEEPROM_KINETIS_FLEXRAM - SRC += eeprom_kinetis_flexram.c - else - # Fall back to transient, i.e. non-persistent - OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT - SRC += eeprom_driver.c eeprom_transient.c + else + OPT_DEFS += -DEEPROM_ENABLE + COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/eeprom + COMMON_VPATH += $(DRIVER_PATH)/eeprom + COMMON_VPATH += $(PLATFORM_COMMON_DIR) + ifeq ($(strip $(EEPROM_DRIVER)), custom) + # Custom EEPROM implementation -- only needs to implement init/erase/read_block/write_block + OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_CUSTOM + SRC += eeprom_driver.c + else ifeq ($(strip $(EEPROM_DRIVER)), wear_leveling) + # Wear-leveling EEPROM implementation + OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING + SRC += eeprom_driver.c eeprom_wear_leveling.c + else ifeq ($(strip $(EEPROM_DRIVER)), i2c) + # External I2C EEPROM implementation + OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_I2C + I2C_DRIVER_REQUIRED = yes + SRC += eeprom_driver.c eeprom_i2c.c + else ifeq ($(strip $(EEPROM_DRIVER)), spi) + # External SPI EEPROM implementation + OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_SPI + SPI_DRIVER_REQUIRED = yes + SRC += eeprom_driver.c eeprom_spi.c + else ifeq ($(strip $(EEPROM_DRIVER)), legacy_stm32_flash) + # STM32 Emulated EEPROM, backed by MCU flash (soon to be deprecated) + OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_LEGACY_EMULATED_FLASH + COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash + COMMON_VPATH += $(DRIVER_PATH)/flash + SRC += eeprom_driver.c eeprom_legacy_emulated_flash.c legacy_flash_ops.c + else ifeq ($(strip $(EEPROM_DRIVER)), transient) + # Transient EEPROM implementation -- no data storage but provides runtime area for it + OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT + SRC += eeprom_driver.c eeprom_transient.c + else ifeq ($(strip $(EEPROM_DRIVER)), vendor) + # Vendor-implemented EEPROM + OPT_DEFS += -DEEPROM_VENDOR + ifeq ($(PLATFORM),AVR) + # Automatically provided by avr-libc, nothing required + else ifeq ($(PLATFORM),CHIBIOS) + ifneq ($(filter %_STM32F072xB %_STM32F042x6, $(MCU_SERIES)_$(MCU_LDSCRIPT)),) + # STM32 Emulated EEPROM, backed by MCU flash (soon to be deprecated) + OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_LEGACY_EMULATED_FLASH + COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash + COMMON_VPATH += $(DRIVER_PATH)/flash + SRC += eeprom_driver.c eeprom_legacy_emulated_flash.c legacy_flash_ops.c + else ifneq ($(filter $(MCU_SERIES),STM32F1xx STM32F3xx STM32F4xx STM32L4xx STM32G4xx WB32F3G71xx WB32FQ95xx AT32F415 GD32VF103),) + # Wear-leveling EEPROM implementation, backed by MCU flash + OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING + SRC += eeprom_driver.c eeprom_wear_leveling.c + WEAR_LEVELING_DRIVER ?= embedded_flash + else ifneq ($(filter $(MCU_SERIES),STM32L0xx STM32L1xx),) + # True EEPROM on STM32L0xx, L1xx + OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_STM32_L0_L1 + SRC += eeprom_driver.c eeprom_stm32_L0_L1.c + else ifneq ($(filter $(MCU_SERIES),RP2040),) + # Wear-leveling EEPROM implementation, backed by RP2040 flash + OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING + SRC += eeprom_driver.c eeprom_wear_leveling.c + WEAR_LEVELING_DRIVER ?= rp2040_flash + else ifneq ($(filter $(MCU_SERIES),KL2x K20x),) + # Teensy EEPROM implementations + OPT_DEFS += -DEEPROM_KINETIS_FLEXRAM + SRC += eeprom_kinetis_flexram.c + else + # Fall back to transient, i.e. non-persistent + OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT + SRC += eeprom_driver.c eeprom_transient.c + endif + else ifeq ($(PLATFORM),TEST) + # Test harness "EEPROM" + OPT_DEFS += -DEEPROM_TEST_HARNESS + SRC += eeprom.c endif - else ifeq ($(PLATFORM),TEST) - # Test harness "EEPROM" - OPT_DEFS += -DEEPROM_TEST_HARNESS - SRC += eeprom.c endif endif endif diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 2314c72bdb9..4e8bae1084f 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -319,7 +319,7 @@ "properties": { "driver": { "type": "string", - "enum": ["custom", "embedded_flash", "legacy", "rp2040_flash", "spi_flash"] + "enum": ["none", "custom", "embedded_flash", "legacy", "rp2040_flash", "spi_flash"] }, "backing_size": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "logical_size": {"$ref": "qmk.definitions.v1#/unsigned_int"} diff --git a/quantum/dynamic_keymap.c b/quantum/dynamic_keymap.c index 756b232f59d..59027fb6947 100644 --- a/quantum/dynamic_keymap.c +++ b/quantum/dynamic_keymap.c @@ -18,8 +18,6 @@ #include "dynamic_keymap.h" #include "keymap_introspection.h" #include "action.h" -#include "eeprom.h" -#include "progmem.h" #include "send_string.h" #include "keycodes.h" #include "nvm_dynamic_keymap.h" diff --git a/quantum/eeconfig.c b/quantum/eeconfig.c index 9aa60fc9685..31bc9a60516 100644 --- a/quantum/eeconfig.c +++ b/quantum/eeconfig.c @@ -2,16 +2,11 @@ #include #include #include "debug.h" -#include "eeprom.h" #include "eeconfig.h" #include "action_layer.h" #include "nvm_eeconfig.h" #include "keycode_config.h" -#ifdef EEPROM_DRIVER -# include "eeprom_driver.h" -#endif // EEPROM_DRIVER - #ifdef BACKLIGHT_ENABLE # include "backlight.h" #endif // BACKLIGHT_ENABLE diff --git a/quantum/led_matrix/led_matrix.c b/quantum/led_matrix/led_matrix.c index 2e107a66e96..f9d76e27761 100644 --- a/quantum/led_matrix/led_matrix.c +++ b/quantum/led_matrix/led_matrix.c @@ -19,7 +19,6 @@ #include "led_matrix.h" #include "progmem.h" -#include "eeprom.h" #include "eeconfig.h" #include "keyboard.h" #include "sync_timer.h" diff --git a/quantum/rgb_matrix/rgb_matrix.c b/quantum/rgb_matrix/rgb_matrix.c index a18105c9b35..3fc9085f06c 100644 --- a/quantum/rgb_matrix/rgb_matrix.c +++ b/quantum/rgb_matrix/rgb_matrix.c @@ -18,7 +18,6 @@ #include "rgb_matrix.h" #include "progmem.h" -#include "eeprom.h" #include "eeconfig.h" #include "keyboard.h" #include "sync_timer.h" diff --git a/quantum/unicode/unicode.c b/quantum/unicode/unicode.c index b0729335f07..dff1d43fb41 100644 --- a/quantum/unicode/unicode.c +++ b/quantum/unicode/unicode.c @@ -16,7 +16,6 @@ #include "unicode.h" -#include "eeprom.h" #include "eeconfig.h" #include "action.h" #include "action_util.h" diff --git a/quantum/via.c b/quantum/via.c index c746d9a6082..3682b4ab2b2 100644 --- a/quantum/via.c +++ b/quantum/via.c @@ -26,7 +26,6 @@ #include "raw_hid.h" #include "dynamic_keymap.h" -#include "eeprom.h" #include "eeconfig.h" #include "matrix.h" #include "timer.h" From 7e68cfc6fa4adf4b17e06cd5138cc9c2ad40f3e3 Mon Sep 17 00:00:00 2001 From: Less/Rikki <86894501+lesshonor@users.noreply.github.com> Date: Sat, 19 Apr 2025 16:11:08 -0400 Subject: [PATCH 343/365] [keyboard] ymdk/id75/rp2040 (#25157) Co-authored-by: tao heihei <> --- keyboards/ymdk/id75/f103/keyboard.json | 1 - keyboards/ymdk/id75/info.json | 2 ++ keyboards/ymdk/id75/readme.md | 4 ++++ keyboards/ymdk/id75/rp2040/config.h | 20 ++++++++++++++++++++ keyboards/ymdk/id75/rp2040/keyboard.json | 12 ++++++++++++ 5 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 keyboards/ymdk/id75/rp2040/config.h create mode 100644 keyboards/ymdk/id75/rp2040/keyboard.json diff --git a/keyboards/ymdk/id75/f103/keyboard.json b/keyboards/ymdk/id75/f103/keyboard.json index 5b1974b3f22..07088ee7ccb 100644 --- a/keyboards/ymdk/id75/f103/keyboard.json +++ b/keyboards/ymdk/id75/f103/keyboard.json @@ -1,5 +1,4 @@ { - "manufacturer": "YMDK", "bootloader": "uf2boot", "matrix_pins": { "cols": ["A10", "A9", "A8", "B15", "B14", "B13", "B12", "A5", "A6", "A4", "A3", "A2", "A1", "A0", "A15"], diff --git a/keyboards/ymdk/id75/info.json b/keyboards/ymdk/id75/info.json index bbe4d1c73ee..e409743abbb 100644 --- a/keyboards/ymdk/id75/info.json +++ b/keyboards/ymdk/id75/info.json @@ -1,6 +1,8 @@ { + "manufacturer": "YMDK", "keyboard_name": "Idobao x YMDK ID75", "maintainer": "qmk", + "bootloader_instructions": "Press the button on the back of the PCB twice in quick succession.", "diode_direction": "ROW2COL", "features": { "bootmagic": true, diff --git a/keyboards/ymdk/id75/readme.md b/keyboards/ymdk/id75/readme.md index 4f7e779458b..f94d4c14cf5 100644 --- a/keyboards/ymdk/id75/readme.md +++ b/keyboards/ymdk/id75/readme.md @@ -8,15 +8,18 @@ A 75-key, 5-row ortholinear keyboard with per-key and underglow RGB LEDs. * Hardware Supported: [Idobao x YMDK ID75](https://www.aliexpress.com/item/3256804537842097.html). **This is not the same PCB as `idobao/id75` or `ymdk/ymd75`.** This keyboard has had multiple PCB revisions, some of which may not work with the firmware in this repository. **Check your PCB before flashing.** * `f103`: (Geehy APM32F103CBT6, uf2boot) + * `rp2040`: (RP2040, rp2040) * Hardware Availability: [YMDK](https://ymdkey.com/products/id75-75-keys-ortholinear-layout-qmk-anodized-aluminum-case-plate-hot-swappable-hot-swap-type-c-pcb-mechanical-keyboard-kit), [AliExpress (YMDK Store)](https://www.aliexpress.com/item/2255800125183974.html), [Amazon](https://www.amazon.com/Ortholinear-Anodized-Aluminum-hot-swappable-Mechanical/dp/B07ZQ8CD88) Make example for this keyboard (after setting up your build environment): make ymdk/id75/f103:default + make ymdk/id75/rp2040:default Flashing example for this keyboard: make ymdk/id75/f103:default:flash + make ymdk/id75/rp2040:default:flash See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). @@ -30,3 +33,4 @@ Enter the bootloader in 3 ways: After entering the bootloader through one of the three methods above, the keyboard will appear as a USB mass storage device. If the CLI is unable to find this device, the compiled `.uf2` file can be manually copied to it. The keyboard will reboot on completion with the new firmware loaded. - `f103`: The volume name is `MT.KEY`. +- `rp2040`: The volume name is `RPI-RP2`. diff --git a/keyboards/ymdk/id75/rp2040/config.h b/keyboards/ymdk/id75/rp2040/config.h new file mode 100644 index 00000000000..b7a25de1603 --- /dev/null +++ b/keyboards/ymdk/id75/rp2040/config.h @@ -0,0 +1,20 @@ +/* Copyright 2021 Mike Tsao + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/ymdk/id75/rp2040/keyboard.json b/keyboards/ymdk/id75/rp2040/keyboard.json new file mode 100644 index 00000000000..f153203cd04 --- /dev/null +++ b/keyboards/ymdk/id75/rp2040/keyboard.json @@ -0,0 +1,12 @@ +{ + "bootloader": "rp2040", + "matrix_pins": { + "cols": ["GP26", "GP27", "GP4", "GP5", "GP1", "GP23", "GP22", "GP21", "GP28", "GP3", "GP7", "GP12", "GP13", "GP14", "GP15"], + "rows": ["GP8", "GP6", "GP19", "GP20", "GP18"] + }, + "processor": "RP2040", + "ws2812": { + "driver": "vendor", + "pin": "GP2" + } +} From ce8b8414d96e9d9ecb2e001fc5844a8fa9b7addc Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sat, 19 Apr 2025 22:52:25 +0100 Subject: [PATCH 344/365] Remove `bluefruit_le_read_battery_voltage` function (#25129) --- builddefs/common_features.mk | 1 - drivers/bluetooth/bluefruit_le.cpp | 21 --------------------- drivers/bluetooth/bluefruit_le.h | 4 ---- keyboards/handwired/promethium/config.h | 5 ++--- keyboards/handwired/promethium/promethium.c | 17 ++++++++--------- keyboards/handwired/promethium/rules.mk | 2 +- keyboards/matrix/falcon/config.h | 1 - keyboards/tokyokeyboard/alix40/config.h | 18 ------------------ 8 files changed, 11 insertions(+), 58 deletions(-) delete mode 100644 keyboards/tokyokeyboard/alix40/config.h diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index f30a456fc35..ec856715b08 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -897,7 +897,6 @@ ifeq ($(strip $(BLUETOOTH_ENABLE)), yes) ifeq ($(strip $(BLUETOOTH_DRIVER)), bluefruit_le) SPI_DRIVER_REQUIRED = yes - ANALOG_DRIVER_REQUIRED = yes SRC += $(DRIVER_PATH)/bluetooth/bluetooth.c SRC += $(DRIVER_PATH)/bluetooth/bluefruit_le.cpp endif diff --git a/drivers/bluetooth/bluefruit_le.cpp b/drivers/bluetooth/bluefruit_le.cpp index 218eca21953..5fdd104dcfb 100644 --- a/drivers/bluetooth/bluefruit_le.cpp +++ b/drivers/bluetooth/bluefruit_le.cpp @@ -32,13 +32,8 @@ # define BLUEFRUIT_LE_SCK_DIVISOR 2 // 4MHz SCK/8MHz CPU, calculated for Feather 32U4 BLE #endif -#define SAMPLE_BATTERY #define ConnectionUpdateInterval 1000 /* milliseconds */ -#ifndef BATTERY_LEVEL_PIN -# define BATTERY_LEVEL_PIN B5 -#endif - static struct { bool is_connected; bool initialized; @@ -48,10 +43,6 @@ static struct { #define UsingEvents 2 bool event_flags; -#ifdef SAMPLE_BATTERY - uint16_t last_battery_update; - uint32_t vbat; -#endif uint16_t last_connection_update; } state; @@ -549,14 +540,6 @@ void bluefruit_le_task(void) { set_connected(atoi(resbuf)); } } - -#ifdef SAMPLE_BATTERY - if (timer_elapsed(state.last_battery_update) > BatteryUpdateInterval && resp_buf.empty()) { - state.last_battery_update = timer_read(); - - state.vbat = analogReadPin(BATTERY_LEVEL_PIN); - } -#endif } static bool process_queue_item(struct queue_item *item, uint16_t timeout) { @@ -655,10 +638,6 @@ void bluefruit_le_send_mouse(report_mouse_t *report) { } } -uint32_t bluefruit_le_read_battery_voltage(void) { - return state.vbat; -} - bool bluefruit_le_set_mode_leds(bool on) { if (!state.configured) { return false; diff --git a/drivers/bluetooth/bluefruit_le.h b/drivers/bluetooth/bluefruit_le.h index a3de03c35c3..5efe92b6e0b 100644 --- a/drivers/bluetooth/bluefruit_le.h +++ b/drivers/bluetooth/bluefruit_le.h @@ -45,10 +45,6 @@ extern void bluefruit_le_send_consumer(uint16_t usage); * change. */ extern void bluefruit_le_send_mouse(report_mouse_t *report); -/* Compute battery voltage by reading an analog pin. - * Returns the integer number of millivolts */ -extern uint32_t bluefruit_le_read_battery_voltage(void); - extern bool bluefruit_le_set_mode_leds(bool on); extern bool bluefruit_le_set_power_level(int8_t level); diff --git a/keyboards/handwired/promethium/config.h b/keyboards/handwired/promethium/config.h index 806726b5eba..974a4f951fd 100644 --- a/keyboards/handwired/promethium/config.h +++ b/keyboards/handwired/promethium/config.h @@ -63,9 +63,8 @@ along with this program. If not, see . //#define NO_ACTION_ONESHOT #define PS2_MOUSE_INIT_DELAY 2000 -#define BATTERY_POLL 30000 -#define MAX_VOLTAGE 4.2 -#define MIN_VOLTAGE 3.2 + +#define BATTERY_PIN B5 #ifndef __ASSEMBLER__ // assembler doesn't like enum in .h file enum led_sequence { diff --git a/keyboards/handwired/promethium/promethium.c b/keyboards/handwired/promethium/promethium.c index 63139ac09db..c94a27a4deb 100644 --- a/keyboards/handwired/promethium/promethium.c +++ b/keyboards/handwired/promethium/promethium.c @@ -1,16 +1,15 @@ -#include "promethium.h" -#include "analog.h" +#include "keyboard.h" #include "timer.h" -#include "matrix.h" -#include "bluefruit_le.h" +#include "battery.h" -// cubic fit {3.3, 0}, {3.5, 2.9}, {3.6, 5}, {3.7, 8.6}, {3.8, 36}, {3.9, 62}, {4.0, 73}, {4.05, 83}, {4.1, 89}, {4.15, 94}, {4.2, 100} +#ifndef BATTERY_POLL +# define BATTERY_POLL 30000 +#endif uint8_t battery_level(void) { - float voltage = bluefruit_le_read_battery_voltage() * 2 * 3.3 / 1024; - if (voltage < MIN_VOLTAGE) return 0; - if (voltage > MAX_VOLTAGE) return 255; - return (voltage - MIN_VOLTAGE) / (MAX_VOLTAGE - MIN_VOLTAGE) * 255; + // maintain legacy behaviour and scale 0-100 percent to 0-255 + uint16_t percent = battery_get_percent(); + return (percent * 255) / 100; } __attribute__ ((weak)) diff --git a/keyboards/handwired/promethium/rules.mk b/keyboards/handwired/promethium/rules.mk index 7f208800663..4012f8ca29c 100644 --- a/keyboards/handwired/promethium/rules.mk +++ b/keyboards/handwired/promethium/rules.mk @@ -5,7 +5,7 @@ PS2_DRIVER = interrupt CUSTOM_MATRIX = yes WS2812_DRIVER_REQUIRED = yes -ANALOG_DRIVER_REQUIRED = yes +BATTERY_DRIVER_REQUIRED = yes SRC += rgbsps.c SRC += matrix.c diff --git a/keyboards/matrix/falcon/config.h b/keyboards/matrix/falcon/config.h index 9065dd0770a..66787658fd1 100644 --- a/keyboards/matrix/falcon/config.h +++ b/keyboards/matrix/falcon/config.h @@ -29,4 +29,3 @@ //pin setting #define LED_POWER_PIN D5 #define CHG_EN_PIN E6 -#define BATTERY_LEVEL_PIN F0 diff --git a/keyboards/tokyokeyboard/alix40/config.h b/keyboards/tokyokeyboard/alix40/config.h deleted file mode 100644 index 51d446c6d2a..00000000000 --- a/keyboards/tokyokeyboard/alix40/config.h +++ /dev/null @@ -1,18 +0,0 @@ -/* -Copyright 2021 quadcube -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#pragma once - -/* Bluetooth */ -#define BATTERY_LEVEL_PIN B6 From edf34315affe4427f862ccd70ff2aa9143ee1966 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sat, 19 Apr 2025 23:09:54 +0100 Subject: [PATCH 345/365] Fix 'Would you like to clone the submodules?' prompt under msys (#24958) --- lib/python/qmk/cli/doctor/check.py | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/lib/python/qmk/cli/doctor/check.py b/lib/python/qmk/cli/doctor/check.py index 2804a1d7df1..51b0f0c80a7 100644 --- a/lib/python/qmk/cli/doctor/check.py +++ b/lib/python/qmk/cli/doctor/check.py @@ -54,10 +54,13 @@ def _check_arm_gcc_installation(): """Returns OK if the arm-none-eabi-gcc is fully installed and can produce binaries. """ with TemporaryDirectory() as temp_dir: - temp_file = Path(temp_dir) / 'test.elf' + temp_in = Path(temp_dir) / 'test.c' + temp_out = Path(temp_dir) / 'test.elf' - args = ['arm-none-eabi-gcc', '-mcpu=cortex-m0', '-mthumb', '-mno-thumb-interwork', '--specs=nosys.specs', '--specs=nano.specs', '-x', 'c', '-o', str(temp_file), '-'] - result = cli.run(args, stdin=None, stdout=None, stderr=None, input='#include \nint main() { return __NEWLIB__ * __NEWLIB_MINOR__ * __NEWLIB_PATCHLEVEL__; }') + temp_in.write_text('#include \nint main() { return __NEWLIB__ * __NEWLIB_MINOR__ * __NEWLIB_PATCHLEVEL__; }', encoding='utf-8') + + args = ['arm-none-eabi-gcc', '-mcpu=cortex-m0', '-mthumb', '-mno-thumb-interwork', '--specs=nosys.specs', '--specs=nano.specs', '-x', 'c', '-o', str(temp_out), str(temp_in)] + result = cli.run(args, stdout=None, stderr=None) if result.returncode == 0: cli.log.info('Successfully compiled using arm-none-eabi-gcc') else: @@ -65,8 +68,8 @@ def _check_arm_gcc_installation(): cli.log.error(f'Command: {" ".join(args)}') return CheckStatus.ERROR - args = ['arm-none-eabi-size', str(temp_file)] - result = cli.run(args, stdin=None, stdout=None, stderr=None) + args = ['arm-none-eabi-size', str(temp_out)] + result = cli.run(args, stdout=None, stderr=None) if result.returncode == 0: cli.log.info('Successfully tested arm-none-eabi-binutils using arm-none-eabi-size') else: @@ -91,10 +94,13 @@ def _check_avr_gcc_installation(): """Returns OK if the avr-gcc is fully installed and can produce binaries. """ with TemporaryDirectory() as temp_dir: - temp_file = Path(temp_dir) / 'test.elf' + temp_in = Path(temp_dir) / 'test.c' + temp_out = Path(temp_dir) / 'test.elf' - args = ['avr-gcc', '-mmcu=atmega32u4', '-x', 'c', '-o', str(temp_file), '-'] - result = cli.run(args, stdin=None, stdout=None, stderr=None, input='int main() { return 0; }') + temp_in.write_text('int main() { return 0; }', encoding='utf-8') + + args = ['avr-gcc', '-mmcu=atmega32u4', '-x', 'c', '-o', str(temp_out), str(temp_in)] + result = cli.run(args, stdout=None, stderr=None) if result.returncode == 0: cli.log.info('Successfully compiled using avr-gcc') else: @@ -102,8 +108,8 @@ def _check_avr_gcc_installation(): cli.log.error(f'Command: {" ".join(args)}') return CheckStatus.ERROR - args = ['avr-size', str(temp_file)] - result = cli.run(args, stdin=None, stdout=None, stderr=None) + args = ['avr-size', str(temp_out)] + result = cli.run(args, stdout=None, stderr=None) if result.returncode == 0: cli.log.info('Successfully tested avr-binutils using avr-size') else: From a4aabea5111b126f31420f95c0961f9a2bc26476 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sun, 20 Apr 2025 08:10:33 +1000 Subject: [PATCH 346/365] Fixup eeconfig lighting reset. (#25166) --- quantum/eeconfig.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/quantum/eeconfig.c b/quantum/eeconfig.c index 31bc9a60516..addc07ae535 100644 --- a/quantum/eeconfig.c +++ b/quantum/eeconfig.c @@ -98,8 +98,8 @@ void eeconfig_init_quantum(void) { #endif // AUDIO_ENABLE #ifdef RGBLIGHT_ENABLE - rgblight_config_t rgblight_config = {0}; - eeconfig_update_rgblight(&rgblight_config); + extern void eeconfig_update_rgblight_default(void); + eeconfig_update_rgblight_default(); #endif // RGBLIGHT_ENABLE #ifdef UNICODE_COMMON_ENABLE @@ -112,13 +112,13 @@ void eeconfig_init_quantum(void) { #endif // STENO_ENABLE #ifdef RGB_MATRIX_ENABLE - rgb_config_t rgb_matrix_config = {0}; - eeconfig_update_rgb_matrix(&rgb_matrix_config); + extern void eeconfig_update_rgb_matrix_default(void); + eeconfig_update_rgb_matrix_default(); #endif #ifdef LED_MATRIX_ENABLE - led_eeconfig_t led_matrix_config = {0}; - eeconfig_update_led_matrix(&led_matrix_config); + extern void eeconfig_update_led_matrix_default(void); + eeconfig_update_led_matrix_default(); #endif // LED_MATRIX_ENABLE #ifdef HAPTIC_ENABLE @@ -145,6 +145,15 @@ void eeconfig_init_quantum(void) { #endif eeconfig_init_kb(); + +#ifdef RGB_MATRIX_ENABLE + extern void eeconfig_force_flush_rgb_matrix(void); + eeconfig_force_flush_rgb_matrix(); +#endif // RGB_MATRIX_ENABLE +#ifdef LED_MATRIX_ENABLE + extern void eeconfig_force_flush_led_matrix(void); + eeconfig_force_flush_led_matrix(); +#endif // LED_MATRIX_ENABLE } void eeconfig_init(void) { From a1cb82286102bf4494ba856e2e8a348424929b34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Bl=C3=A1ha?= Date: Sun, 20 Apr 2025 11:41:30 +0200 Subject: [PATCH 347/365] DOCS: `qmk-hid` missing in bootloaders list? (#25177) --- docs/config_options.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/config_options.md b/docs/config_options.md index 90a708dd99c..e75a5b2f7ec 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -401,6 +401,7 @@ This is a [make](https://www.gnu.org/software/make/manual/make.html) file that i * `atmel-dfu` * `lufa-dfu` * `qmk-dfu` + * `qmk-hid` * `halfkay` * `caterina` * `bootloadhid` From 53f1f3b6d70bd457c5c42b799858c775dfcd3cb6 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Tue, 22 Apr 2025 00:02:47 +1000 Subject: [PATCH 348/365] Fix for `.clangd`. (#25180) --- .clangd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.clangd b/.clangd index 6133ae7229d..63dadd7e7c1 100644 --- a/.clangd +++ b/.clangd @@ -1,4 +1,4 @@ CompileFlags: Add: [-Wno-unknown-attributes, -Wno-maybe-uninitialized, -Wno-unknown-warning-option] - Remove: [-W*, -mmcu=*, -mcpu=*, -mfpu=*, -mfloat-abi=*, -mno-unaligned-access, -mno-thumb-interwork, -mcall-prologues] + Remove: [-W*, -mmcu=*, -mcpu=*, -mfpu=*, -mfloat-abi=*, -mno-unaligned-access, -mno-thumb-interwork, -mcall-prologues, -D__has_include*] Compiler: clang From 2c54ff3e63062e432b5f1b6d01789e565e227336 Mon Sep 17 00:00:00 2001 From: Eric Molitor <534583+emolitor@users.noreply.github.com> Date: Mon, 21 Apr 2025 15:05:22 +0100 Subject: [PATCH 349/365] Update develop branch to Pico SDK 1.5.1 (#25178) --- lib/pico-sdk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pico-sdk b/lib/pico-sdk index a3398d8d3a7..d0c5cac430c 160000 --- a/lib/pico-sdk +++ b/lib/pico-sdk @@ -1 +1 @@ -Subproject commit a3398d8d3a772f37fef44a74743a1de69770e9c2 +Subproject commit d0c5cac430cc955b65efa0e899748853d9a80928 From ec324af22eddff1f89f33a30c77a678b111c420c Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 21 Apr 2025 20:07:05 +0100 Subject: [PATCH 350/365] Add lint warning for empty url (#25182) --- lib/python/qmk/cli/lint.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/python/qmk/cli/lint.py b/lib/python/qmk/cli/lint.py index bc14b61e8b4..e2c76e4465f 100644 --- a/lib/python/qmk/cli/lint.py +++ b/lib/python/qmk/cli/lint.py @@ -171,6 +171,14 @@ def _handle_invalid_features(kb, info): return ok +def _handle_invalid_config(kb, info): + """Check for invalid keyboard level config + """ + if info.get('url') == "": + cli.log.warning(f'{kb}: Invalid keyboard level config detected - Optional field "url" should not be empty.') + return True + + def _chibios_conf_includenext_check(target): """Check the ChibiOS conf.h for the correct inclusion of the next conf.h """ @@ -255,6 +263,9 @@ def keyboard_check(kb): # noqa C901 if not _handle_invalid_features(kb, kb_info): ok = False + if not _handle_invalid_config(kb, kb_info): + ok = False + invalid_files = git_get_ignored_files(f'keyboards/{kb}/') for file in invalid_files: if 'keymap' in file: From c7cb7ba9765b35930a26ec247e362615ffd10ed2 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 21 Apr 2025 22:27:56 +0100 Subject: [PATCH 351/365] Implement connection keycode logic (#25176) --- builddefs/common_features.mk | 2 +- builddefs/generic_features.mk | 1 + drivers/bluetooth/outputselect.c | 70 --------- drivers/bluetooth/outputselect.h | 24 ++- quantum/connection/connection.c | 147 ++++++++++++++++++ quantum/connection/connection.h | 110 +++++++++++++ quantum/eeconfig.c | 18 +++ quantum/eeconfig.h | 6 + quantum/keyboard.c | 6 + quantum/nvm/eeprom/nvm_eeconfig.c | 13 ++ .../nvm/eeprom/nvm_eeprom_eeconfig_internal.h | 2 + quantum/nvm/nvm_eeconfig.h | 6 + quantum/process_keycode/process_connection.c | 26 +++- quantum/quantum.c | 4 +- tmk_core/protocol/host.c | 11 +- 15 files changed, 347 insertions(+), 99 deletions(-) delete mode 100644 drivers/bluetooth/outputselect.c create mode 100644 quantum/connection/connection.c create mode 100644 quantum/connection/connection.h diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index ec856715b08..0b9840a14e6 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -892,8 +892,8 @@ ifeq ($(strip $(BLUETOOTH_ENABLE)), yes) OPT_DEFS += -DBLUETOOTH_ENABLE OPT_DEFS += -DBLUETOOTH_$(strip $(shell echo $(BLUETOOTH_DRIVER) | tr '[:lower:]' '[:upper:]')) NO_USB_STARTUP_CHECK := yes + CONNECTION_ENABLE := yes COMMON_VPATH += $(DRIVER_PATH)/bluetooth - SRC += outputselect.c process_connection.c ifeq ($(strip $(BLUETOOTH_DRIVER)), bluefruit_le) SPI_DRIVER_REQUIRED = yes diff --git a/builddefs/generic_features.mk b/builddefs/generic_features.mk index d39727f23bf..c8265144314 100644 --- a/builddefs/generic_features.mk +++ b/builddefs/generic_features.mk @@ -25,6 +25,7 @@ GENERIC_FEATURES = \ CAPS_WORD \ COMBO \ COMMAND \ + CONNECTION \ CRC \ DEFERRED_EXEC \ DIGITIZER \ diff --git a/drivers/bluetooth/outputselect.c b/drivers/bluetooth/outputselect.c deleted file mode 100644 index b986ba274e9..00000000000 --- a/drivers/bluetooth/outputselect.c +++ /dev/null @@ -1,70 +0,0 @@ -/* -Copyright 2017 Priyadi Iman Nurcahyo -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "outputselect.h" -#include "usb_util.h" - -#ifdef BLUETOOTH_BLUEFRUIT_LE -# include "bluefruit_le.h" -#endif - -uint8_t desired_output = OUTPUT_DEFAULT; - -/** \brief Set Output - * - * FIXME: Needs doc - */ -void set_output(uint8_t output) { - set_output_user(output); - desired_output = output; -} - -/** \brief Set Output User - * - * FIXME: Needs doc - */ -__attribute__((weak)) void set_output_user(uint8_t output) {} - -/** \brief Auto Detect Output - * - * FIXME: Needs doc - */ -uint8_t auto_detect_output(void) { - if (usb_connected_state()) { - return OUTPUT_USB; - } - -#ifdef BLUETOOTH_BLUEFRUIT_LE - if (bluefruit_le_is_connected()) { - return OUTPUT_BLUETOOTH; - } -#endif - -#ifdef BLUETOOTH_ENABLE - return OUTPUT_BLUETOOTH; // should check if BT is connected here -#endif - - return OUTPUT_NONE; -} - -/** \brief Where To Send - * - * FIXME: Needs doc - */ -uint8_t where_to_send(void) { - if (desired_output == OUTPUT_AUTO) { - return auto_detect_output(); - } - return desired_output; -} diff --git a/drivers/bluetooth/outputselect.h b/drivers/bluetooth/outputselect.h index c4548e1122a..25f063bbff0 100644 --- a/drivers/bluetooth/outputselect.h +++ b/drivers/bluetooth/outputselect.h @@ -14,21 +14,17 @@ along with this program. If not, see . #pragma once -#include +#include "connection.h" -enum outputs { - OUTPUT_AUTO, +// DEPRECATED - DO NOT USE - OUTPUT_NONE, - OUTPUT_USB, - OUTPUT_BLUETOOTH -}; +#define OUTPUT_AUTO CONNECTION_HOST_AUTO +#define OUTPUT_NONE CONNECTION_HOST_NONE +#define OUTPUT_USB CONNECTION_HOST_USB +#define OUTPUT_BLUETOOTH CONNECTION_HOST_BLUETOOTH -#ifndef OUTPUT_DEFAULT -# define OUTPUT_DEFAULT OUTPUT_AUTO -#endif +#define set_output connection_set_host_noeeprom +#define where_to_send connection_get_host +#define auto_detect_output connection_auto_detect_host -void set_output(uint8_t output); -void set_output_user(uint8_t output); -uint8_t auto_detect_output(void); -uint8_t where_to_send(void); +void set_output_user(uint8_t output); diff --git a/quantum/connection/connection.c b/quantum/connection/connection.c new file mode 100644 index 00000000000..c7f3c4b4246 --- /dev/null +++ b/quantum/connection/connection.c @@ -0,0 +1,147 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#include "connection.h" +#include "eeconfig.h" +#include "usb_util.h" +#include "util.h" + +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef OUTPUT_DEFAULT +# undef CONNECTION_HOST_DEFAULT +# define CONNECTION_HOST_DEFAULT OUTPUT_DEFAULT +#endif + +__attribute__((weak)) void set_output_user(uint8_t output) {} +// ======== + +#ifdef BLUETOOTH_ENABLE +# ifdef BLUETOOTH_BLUEFRUIT_LE +# include "bluefruit_le.h" +# define bluetooth_is_connected() bluefruit_le_is_connected() +# else +// TODO: drivers should check if BT is connected here +# define bluetooth_is_connected() true +# endif +#endif + +#define CONNECTION_HOST_INVALID 0xFF + +#ifndef CONNECTION_HOST_DEFAULT +# define CONNECTION_HOST_DEFAULT CONNECTION_HOST_AUTO +#endif + +static const connection_host_t host_candidates[] = { + CONNECTION_HOST_AUTO, + CONNECTION_HOST_USB, +#ifdef BLUETOOTH_ENABLE + CONNECTION_HOST_BLUETOOTH, +#endif +#if 0 + CONNECTION_HOST_2P4GHZ, +#endif +}; + +#define HOST_CANDIDATES_COUNT ARRAY_SIZE(host_candidates) + +static connection_config_t config = {.desired_host = CONNECTION_HOST_INVALID}; + +void eeconfig_update_connection_default(void) { + config.desired_host = CONNECTION_HOST_DEFAULT; + + eeconfig_update_connection(&config); +} + +void connection_init(void) { + eeconfig_read_connection(&config); + if (config.desired_host == CONNECTION_HOST_INVALID) { + eeconfig_update_connection_default(); + } +} + +__attribute__((weak)) void connection_host_changed_user(connection_host_t host) {} +__attribute__((weak)) void connection_host_changed_kb(connection_host_t host) {} + +static void handle_host_changed(void) { + connection_host_changed_user(config.desired_host); + connection_host_changed_kb(config.desired_host); + + // TODO: Remove deprecated callback + set_output_user(config.desired_host); +} + +void connection_set_host_noeeprom(connection_host_t host) { + if (config.desired_host == host) { + return; + } + + config.desired_host = host; + + handle_host_changed(); +} + +void connection_set_host(connection_host_t host) { + connection_set_host_noeeprom(host); + + eeconfig_update_connection(&config); +} + +void connection_next_host_noeeprom(void) { + uint8_t next = 0; + for (uint8_t i = 0; i < HOST_CANDIDATES_COUNT; i++) { + if (host_candidates[i] == config.desired_host) { + next = i == HOST_CANDIDATES_COUNT - 1 ? 0 : i + 1; + break; + } + } + + connection_set_host_noeeprom(host_candidates[next]); +} + +void connection_next_host(void) { + connection_next_host_noeeprom(); + + eeconfig_update_connection(&config); +} + +void connection_prev_host_noeeprom(void) { + uint8_t next = 0; + for (uint8_t i = 0; i < HOST_CANDIDATES_COUNT; i++) { + if (host_candidates[i] == config.desired_host) { + next = i == 0 ? HOST_CANDIDATES_COUNT - 1 : i - 1; + break; + } + } + + connection_set_host_noeeprom(host_candidates[next]); +} + +void connection_prev_host(void) { + connection_prev_host_noeeprom(); + + eeconfig_update_connection(&config); +} + +connection_host_t connection_get_host_raw(void) { + return config.desired_host; +} + +connection_host_t connection_auto_detect_host(void) { + if (usb_connected_state()) { + return CONNECTION_HOST_USB; + } + +#ifdef BLUETOOTH_ENABLE + if (bluetooth_is_connected()) { + return CONNECTION_HOST_BLUETOOTH; + } +#endif + + return CONNECTION_HOST_NONE; +} + +connection_host_t connection_get_host(void) { + if (config.desired_host == CONNECTION_HOST_AUTO) { + return connection_auto_detect_host(); + } + return config.desired_host; +} diff --git a/quantum/connection/connection.h b/quantum/connection/connection.h new file mode 100644 index 00000000000..e403141faed --- /dev/null +++ b/quantum/connection/connection.h @@ -0,0 +1,110 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include +#include "util.h" + +/** + * \enum connection_host_t + * + * An enumeration of the possible hosts. + */ +typedef enum connection_host_t { + CONNECTION_HOST_AUTO, + + CONNECTION_HOST_NONE, + CONNECTION_HOST_USB, + CONNECTION_HOST_BLUETOOTH, + CONNECTION_HOST_2P4GHZ +} connection_host_t; + +/** + * \union connection_config_t + * + * Configuration structure for the connection subsystem. + */ +typedef union connection_config_t { + uint8_t raw; + connection_host_t desired_host : 8; +} PACKED connection_config_t; + +_Static_assert(sizeof(connection_config_t) == sizeof(uint8_t), "Connection EECONFIG out of spec."); + +/** + * \brief Initialize the subsystem. + * + * This function must be called only once, before any of the below functions can be called. + */ +void connection_init(void); + +/** + * \brief Get currently configured host. Does not resolve 'CONNECTION_HOST_AUTO'. + * + * \return 'connection_host_t' of the configured host. + */ +connection_host_t connection_get_host_raw(void); + +/** + * \brief Get current active host. + * + * \return 'connection_host_t' of the configured host. + */ +connection_host_t connection_auto_detect_host(void); + +/** + * \brief Get currently configured host. Resolves 'CONNECTION_HOST_AUTO' using 'connection_auto_detect_host()'. + * + * \return 'connection_host_t' of the configured host. + */ +connection_host_t connection_get_host(void); + +/** + * \brief Get current host. New state is not written to EEPROM. + * + * \param host The host to configure. + */ +void connection_set_host_noeeprom(connection_host_t host); + +/** + * \brief Get current host. + * + * \param host The host to configure. + */ +void connection_set_host(connection_host_t host); + +/** + * \brief Move to the next potential host. New state is not written to EEPROM. + * + */ +void connection_next_host_noeeprom(void); + +/** + * \brief Move to the next potential host. + * + */ +void connection_next_host(void); + +/** + * \brief Move to the previous potential host. New state is not written to EEPROM. + * + */ +void connection_prev_host_noeeprom(void); + +/** + * \brief Move to the previous potential host. + * + */ +void connection_prev_host(void); + +/** + * \brief user hook called when changing configured host + * + */ +void connection_host_changed_user(connection_host_t host); + +/** + * \brief keyboard hook called when changing configured host + * + */ +void connection_host_changed_kb(connection_host_t host); diff --git a/quantum/eeconfig.c b/quantum/eeconfig.c index addc07ae535..1e8cfd758a5 100644 --- a/quantum/eeconfig.c +++ b/quantum/eeconfig.c @@ -35,6 +35,10 @@ # include "haptic.h" #endif // HAPTIC_ENABLE +#ifdef CONNECTION_ENABLE +# include "connection.h" +#endif // CONNECTION_ENABLE + #ifdef VIA_ENABLE bool via_eeprom_is_valid(void); void via_eeprom_set_valid(bool valid); @@ -127,6 +131,11 @@ void eeconfig_init_quantum(void) { haptic_reset(); #endif // HAPTIC_ENABLE +#ifdef CONNECTION_ENABLE + extern void eeconfig_update_connection_default(void); + eeconfig_update_connection_default(); +#endif // CONNECTION_ENABLE + #if (EECONFIG_KB_DATA_SIZE) > 0 eeconfig_init_kb_datablock(); #endif // (EECONFIG_KB_DATA_SIZE) > 0 @@ -299,6 +308,15 @@ void eeconfig_update_haptic(const haptic_config_t *haptic_config) { } #endif // HAPTIC_ENABLE +#ifdef CONNECTION_ENABLE +void eeconfig_read_connection(connection_config_t *config) { + nvm_eeconfig_read_connection(config); +} +void eeconfig_update_connection(const connection_config_t *config) { + nvm_eeconfig_update_connection(config); +} +#endif // CONNECTION_ENABLE + bool eeconfig_read_handedness(void) { return nvm_eeconfig_read_handedness(); } diff --git a/quantum/eeconfig.h b/quantum/eeconfig.h index 4044f1c2947..d4d8d957bed 100644 --- a/quantum/eeconfig.h +++ b/quantum/eeconfig.h @@ -131,6 +131,12 @@ void eeconfig_read_haptic(haptic_config_t *haptic_confi void eeconfig_update_haptic(const haptic_config_t *haptic_config) __attribute__((nonnull)); #endif +#ifdef CONNECTION_ENABLE +typedef union connection_config_t connection_config_t; +void eeconfig_read_connection(connection_config_t *config); +void eeconfig_update_connection(const connection_config_t *config); +#endif + bool eeconfig_read_handedness(void); void eeconfig_update_handedness(bool val); diff --git a/quantum/keyboard.c b/quantum/keyboard.c index 0671b0461f8..be51190a87d 100644 --- a/quantum/keyboard.c +++ b/quantum/keyboard.c @@ -146,6 +146,9 @@ along with this program. If not, see . #ifdef LAYER_LOCK_ENABLE # include "layer_lock.h" #endif +#ifdef CONNECTION_ENABLE +# include "connection.h" +#endif static uint32_t last_input_modification_time = 0; uint32_t last_input_activity_time(void) { @@ -465,6 +468,9 @@ void keyboard_init(void) { #endif matrix_init(); quantum_init(); +#ifdef CONNECTION_ENABLE + connection_init(); +#endif led_init_ports(); #ifdef BACKLIGHT_ENABLE backlight_init_ports(); diff --git a/quantum/nvm/eeprom/nvm_eeconfig.c b/quantum/nvm/eeprom/nvm_eeconfig.c index d6c388f3bc0..d9495d27534 100644 --- a/quantum/nvm/eeprom/nvm_eeconfig.c +++ b/quantum/nvm/eeprom/nvm_eeconfig.c @@ -41,6 +41,10 @@ # include "haptic.h" #endif +#ifdef CONNECTION_ENABLE +# include "connection.h" +#endif + void nvm_eeconfig_erase(void) { #ifdef EEPROM_DRIVER eeprom_driver_format(false); @@ -196,6 +200,15 @@ void nvm_eeconfig_update_haptic(const haptic_config_t *haptic_config) { } #endif // HAPTIC_ENABLE +#ifdef CONNECTION_ENABLE +void nvm_eeconfig_read_connection(connection_config_t *config) { + config->raw = eeprom_read_byte(EECONFIG_CONNECTION); +} +void nvm_eeconfig_update_connection(const connection_config_t *config) { + eeprom_update_byte(EECONFIG_CONNECTION, config->raw); +} +#endif // CONNECTION_ENABLE + bool nvm_eeconfig_read_handedness(void) { return !!eeprom_read_byte(EECONFIG_HANDEDNESS); } diff --git a/quantum/nvm/eeprom/nvm_eeprom_eeconfig_internal.h b/quantum/nvm/eeprom/nvm_eeprom_eeconfig_internal.h index 6efbf9480b9..41b76f1f650 100644 --- a/quantum/nvm/eeprom/nvm_eeprom_eeconfig_internal.h +++ b/quantum/nvm/eeprom/nvm_eeprom_eeconfig_internal.h @@ -27,6 +27,7 @@ typedef struct PACKED { }; uint32_t haptic; uint8_t rgblight_ext; + uint8_t connection; } eeprom_core_t; /* EEPROM parameter address */ @@ -46,6 +47,7 @@ typedef struct PACKED { #define EECONFIG_RGB_MATRIX (uint64_t *)(offsetof(eeprom_core_t, rgb_matrix)) #define EECONFIG_HAPTIC (uint32_t *)(offsetof(eeprom_core_t, haptic)) #define EECONFIG_RGBLIGHT_EXTENDED (uint8_t *)(offsetof(eeprom_core_t, rgblight_ext)) +#define EECONFIG_CONNECTION (uint8_t *)(offsetof(eeprom_core_t, connection)) // Size of EEPROM being used for core data storage #define EECONFIG_BASE_SIZE ((uint8_t)sizeof(eeprom_core_t)) diff --git a/quantum/nvm/nvm_eeconfig.h b/quantum/nvm/nvm_eeconfig.h index 131f61d5347..40827361ca0 100644 --- a/quantum/nvm/nvm_eeconfig.h +++ b/quantum/nvm/nvm_eeconfig.h @@ -87,6 +87,12 @@ void nvm_eeconfig_read_haptic(haptic_config_t *haptic_c void nvm_eeconfig_update_haptic(const haptic_config_t *haptic_config); #endif // HAPTIC_ENABLE +#ifdef CONNECTION_ENABLE +typedef union connection_config_t connection_config_t; +void nvm_eeconfig_read_connection(connection_config_t *config); +void nvm_eeconfig_update_connection(const connection_config_t *config); +#endif // CONNECTION_ENABLE + bool nvm_eeconfig_read_handedness(void); void nvm_eeconfig_update_handedness(bool val); diff --git a/quantum/process_keycode/process_connection.c b/quantum/process_keycode/process_connection.c index b0e230d680a..501529ede7e 100644 --- a/quantum/process_keycode/process_connection.c +++ b/quantum/process_keycode/process_connection.c @@ -1,24 +1,34 @@ // Copyright 2024 Nick Brassel (@tzarc) // SPDX-License-Identifier: GPL-2.0-or-later -#include "outputselect.h" +#include "connection.h" #include "process_connection.h" bool process_connection(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { switch (keycode) { case QK_OUTPUT_NEXT: - set_output(OUTPUT_AUTO); // This should cycle through the outputs going forward. Ensure `docs/keycodes.md`, `docs/features/bluetooth.md` are updated when it does. + connection_next_host(); return false; - case QK_OUTPUT_USB: - set_output(OUTPUT_USB); - return false; - case QK_OUTPUT_BLUETOOTH: - set_output(OUTPUT_BLUETOOTH); + case QK_OUTPUT_PREV: + connection_prev_host(); return false; - case QK_OUTPUT_PREV: + case QK_OUTPUT_AUTO: + connection_set_host(CONNECTION_HOST_AUTO); + return false; case QK_OUTPUT_NONE: + connection_set_host(CONNECTION_HOST_NONE); + return false; + case QK_OUTPUT_USB: + connection_set_host(CONNECTION_HOST_USB); + return false; + case QK_OUTPUT_BLUETOOTH: + connection_set_host(CONNECTION_HOST_BLUETOOTH); + return false; case QK_OUTPUT_2P4GHZ: + connection_set_host(CONNECTION_HOST_2P4GHZ); + return false; + case QK_BLUETOOTH_PROFILE_NEXT: case QK_BLUETOOTH_PROFILE_PREV: case QK_BLUETOOTH_UNPAIR: diff --git a/quantum/quantum.c b/quantum/quantum.c index adb14d64b61..0bb6ee0a914 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -20,7 +20,7 @@ # include "process_backlight.h" #endif -#ifdef BLUETOOTH_ENABLE +#ifdef CONNECTION_ENABLE # include "process_connection.h" #endif @@ -436,7 +436,7 @@ bool process_record_quantum(keyrecord_t *record) { #ifdef LAYER_LOCK_ENABLE process_layer_lock(keycode, record) && #endif -#ifdef BLUETOOTH_ENABLE +#ifdef CONNECTION_ENABLE process_connection(keycode, record) && #endif true)) { diff --git a/tmk_core/protocol/host.c b/tmk_core/protocol/host.c index df805c827c2..453952049fe 100644 --- a/tmk_core/protocol/host.c +++ b/tmk_core/protocol/host.c @@ -31,8 +31,11 @@ along with this program. If not, see . #endif #ifdef BLUETOOTH_ENABLE +# ifndef CONNECTION_ENABLE +# error CONNECTION_ENABLE required and not enabled +# endif +# include "connection.h" # include "bluetooth.h" -# include "outputselect.h" #endif #ifdef NKRO_ENABLE @@ -74,7 +77,7 @@ led_t host_keyboard_led_state(void) { /* send report */ void host_keyboard_send(report_keyboard_t *report) { #ifdef BLUETOOTH_ENABLE - if (where_to_send() == OUTPUT_BLUETOOTH) { + if (connection_get_host() == CONNECTION_HOST_BLUETOOTH) { bluetooth_send_keyboard(report); return; } @@ -111,7 +114,7 @@ void host_nkro_send(report_nkro_t *report) { void host_mouse_send(report_mouse_t *report) { #ifdef BLUETOOTH_ENABLE - if (where_to_send() == OUTPUT_BLUETOOTH) { + if (connection_get_host() == CONNECTION_HOST_BLUETOOTH) { bluetooth_send_mouse(report); return; } @@ -147,7 +150,7 @@ void host_consumer_send(uint16_t usage) { last_consumer_usage = usage; #ifdef BLUETOOTH_ENABLE - if (where_to_send() == OUTPUT_BLUETOOTH) { + if (connection_get_host() == CONNECTION_HOST_BLUETOOTH) { bluetooth_send_consumer(usage); return; } From ebfa3cdd5c38d023ed4525e25004155aad7ad3e0 Mon Sep 17 00:00:00 2001 From: CJ Pais Date: Mon, 21 Apr 2025 16:56:10 -0700 Subject: [PATCH 352/365] Add handwired/footy (#25151) Co-authored-by: jack --- keyboards/handwired/footy/config.h | 5 +++ keyboards/handwired/footy/keyboard.json | 35 ++++++++++++++++ .../footy/keymaps/default/keymap.json | 10 +++++ .../handwired/footy/keymaps/handy/keymap.json | 15 +++++++ .../footy/keymaps/superwhisper/keymap.json | 15 +++++++ keyboards/handwired/footy/readme.md | 42 +++++++++++++++++++ 6 files changed, 122 insertions(+) create mode 100644 keyboards/handwired/footy/config.h create mode 100644 keyboards/handwired/footy/keyboard.json create mode 100644 keyboards/handwired/footy/keymaps/default/keymap.json create mode 100644 keyboards/handwired/footy/keymaps/handy/keymap.json create mode 100644 keyboards/handwired/footy/keymaps/superwhisper/keymap.json create mode 100644 keyboards/handwired/footy/readme.md diff --git a/keyboards/handwired/footy/config.h b/keyboards/handwired/footy/config.h new file mode 100644 index 00000000000..5a081f79d69 --- /dev/null +++ b/keyboards/handwired/footy/config.h @@ -0,0 +1,5 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/handwired/footy/keyboard.json b/keyboards/handwired/footy/keyboard.json new file mode 100644 index 00000000000..eef8c250386 --- /dev/null +++ b/keyboards/handwired/footy/keyboard.json @@ -0,0 +1,35 @@ +{ + "manufacturer": "CJ Pais", + "keyboard_name": "Footy", + "maintainer": "cjpais", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true + }, + "bootmagic": { + "matrix": [0, 1] + }, + "matrix_pins": { + "cols": ["GP11", "GP10", "GP15"], + "rows": ["GP14"] + }, + "processor": "RP2040", + "url": "https://workshop.cjpais.com/projects/footy", + "usb": { + "device_version": "1.0.0", + "pid": "0x0001", + "vid": "0x636A" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0} + ] + } + } +} diff --git a/keyboards/handwired/footy/keymaps/default/keymap.json b/keyboards/handwired/footy/keymaps/default/keymap.json new file mode 100644 index 00000000000..99804041d85 --- /dev/null +++ b/keyboards/handwired/footy/keymaps/default/keymap.json @@ -0,0 +1,10 @@ +{ + "keyboard": "handwired/footy", + "keymap": "default", + "layout": "LAYOUT", + "layers": [ + [ + "KC_A", "KC_B", "KC_C" + ] + ] +} diff --git a/keyboards/handwired/footy/keymaps/handy/keymap.json b/keyboards/handwired/footy/keymaps/handy/keymap.json new file mode 100644 index 00000000000..e2a2db6d10b --- /dev/null +++ b/keyboards/handwired/footy/keymaps/handy/keymap.json @@ -0,0 +1,15 @@ +{ + "keyboard": "handwired/footy", + "keymap": "handy", + "layout": "LAYOUT", + "layers": [ + [ + "KC_NO", "MT(MOD_RCTL | MOD_RGUI, KC_NO)", "KC_NO" + ] + ], + "config": { + "tapping": { + "term": 50 + } + } +} diff --git a/keyboards/handwired/footy/keymaps/superwhisper/keymap.json b/keyboards/handwired/footy/keymaps/superwhisper/keymap.json new file mode 100644 index 00000000000..0cfa41f502e --- /dev/null +++ b/keyboards/handwired/footy/keymaps/superwhisper/keymap.json @@ -0,0 +1,15 @@ +{ + "keyboard": "handwired/footy", + "keymap": "superwhisper", + "layout": "LAYOUT", + "layers": [ + [ + "KC_NO", "LOPT(KC_SPACE)", "KC_NO" + ] + ], + "config": { + "tapping": { + "term": 50 + } + } +} diff --git a/keyboards/handwired/footy/readme.md b/keyboards/handwired/footy/readme.md new file mode 100644 index 00000000000..6d02fad95cc --- /dev/null +++ b/keyboards/handwired/footy/readme.md @@ -0,0 +1,42 @@ +# Footy + +![Footy Foot Pedal](https://i.imgur.com/ZdvlgRB.jpeg) + +*Footy is a foot pedal intended to be used with a speech to text application like 'handy' or superwhisper. Initially developed as an assistive technology device for those with limited typing abilities.* + +* Keyboard Maintainer: [CJ Pais](https://github.com/cjpais) +* Hardware Supported: [Keebio Stampy](https://keeb.io/products/stampy-rp2040-usb-c-controller-board-for-handwiring) +* Hardware Availability: [3D printed case](https://makerworld.com/en/models/1185240-footy) + +Make example for this keyboard (after setting up your build environment): + + make handwired/footy:default + +Flashing example for this keyboard (enter the bootloader first): + + make handwired/footy:default:flash + +or drag and drop .uf2 file on the removable storage + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader: + +* **Physical reset button**: Briefly double press the button on the back of the PCB + +## Keymaps + +Right now there are two primary keymaps, one for 'handy' and one for 'superwhisper'. + +Handy's default keymap is for the center switch to be RCTRL + RGUI. + +Superwhisper's default keymap is for the center switch to be LOPT + SPACE. + +You can build either of these firmware images by running the following commands: + +``` +make handwired/footy:handy +make handwired/footy:superwhisper +``` \ No newline at end of file From 9f04023d35c8ab6c4970afab391f77bb7b3ac63c Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Tue, 22 Apr 2025 14:14:28 +1000 Subject: [PATCH 353/365] Decrease firmware size for `anavi/macropad8`. (#25185) Preparation for bootstrapper. --- keyboards/anavi/macropad8/keyboard.json | 1 - 1 file changed, 1 deletion(-) diff --git a/keyboards/anavi/macropad8/keyboard.json b/keyboards/anavi/macropad8/keyboard.json index d70d3fa0475..50381ce8a87 100644 --- a/keyboards/anavi/macropad8/keyboard.json +++ b/keyboards/anavi/macropad8/keyboard.json @@ -23,7 +23,6 @@ "rainbow_swirl": true, "snake": true, "knight": true, - "christmas": true, "static_gradient": true, "rgb_test": true, "alternating": true, From b5f8f4d6a201e6a67d1ee483fe6d3327d98cb052 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 22 Apr 2025 05:31:42 +0100 Subject: [PATCH 354/365] Align ChibiOS `USB_WAIT_FOR_ENUMERATION` implementation (#25184) --- tmk_core/protocol/chibios/chibios.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/tmk_core/protocol/chibios/chibios.c b/tmk_core/protocol/chibios/chibios.c index cf948154f9b..d752f3746b0 100644 --- a/tmk_core/protocol/chibios/chibios.c +++ b/tmk_core/protocol/chibios/chibios.c @@ -134,8 +134,6 @@ void protocol_setup(void) { // chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO, Thread1, NULL); } -static host_driver_t *driver = NULL; - void protocol_pre_init(void) { /* Init USB */ usb_event_queue_init(); @@ -146,18 +144,11 @@ void protocol_pre_init(void) { #endif /* Wait until USB is active */ - while (true) { -#if defined(USB_WAIT_FOR_ENUMERATION) - if (USB_DRIVER.state == USB_ACTIVE) { - driver = &chibios_driver; - break; - } -#else - driver = &chibios_driver; - break; -#endif +#ifdef USB_WAIT_FOR_ENUMERATION + while (USB_DRIVER.state != USB_ACTIVE) { wait_ms(50); } +#endif /* Do need to wait here! * Otherwise the next print might start a transfer on console EP @@ -170,7 +161,7 @@ void protocol_pre_init(void) { } void protocol_post_init(void) { - host_set_driver(driver); + host_set_driver(&chibios_driver); } void protocol_pre_task(void) { From 73e2ef486ab7acf3763695cb3a3cf691451cdff3 Mon Sep 17 00:00:00 2001 From: Pascal Getreuer <50221757+getreuer@users.noreply.github.com> Date: Tue, 22 Apr 2025 00:59:49 -0700 Subject: [PATCH 355/365] [Bug][Core] Fix for Flow Tap: fix handling of distinct taps and timer updates. (#25175) * Flow Tap bug fix. As reported by @amarz45 and @mwpardue, there is a bug where if two tap-hold keys are pressed in distinct taps back to back, then Flow Tap is not applied on the second tap-hold key, but it should be. In a related bug reported by @NikGovorov, if a tap-hold key is held followed by a tap of a tap-hold key, then Flow Tap updates its timer on the release of the held tap-hold key, but it should be ignored. The problem common to both these bugs is that I incorrectly assumed `tapping_key` is cleared to noevent once it is released, when actually `tapping_key` is still maintained for `TAPPING_TERM` ms after release (for Quick Tap). This commit fixes that. Thanks to @amarz45, @mwpardue, and @NikGovorov for reporting! Details: * Logic for converting the current tap-hold event to a tap is extracted to `flow_tap_key_if_within_term()`, which is now invoked also in the post-release "interfered with other tap key" case. This fixes the distinct taps bug. * The Flow Tap timer is now updated at the beginning of each call to `process_record()`, provided that there is no unsettled tap-hold key at that time and that the record is not for a mod or layer switch key. By moving this update logic to `process_record()`, it is conceptually simpler and more robust. * Unit tests extended to cover the reported scenarios. * Fix formatting. * Revision to fix @NikGovorov's scenario. The issue is that when another key is pressed while a layer-tap hasn't been settled yet, the `prev_keycode` remembers the keycode from before the layer switched. This can then enable Flow Tap for the following key when it shouldn't, or vice versa. Thanks to @NikGovorov for reporting! This commit revises Flow Tap in the following ways: * The previous key and timer are both updated from `process_record()`. This is slightly later in the sequence of processing than before, and by this point, a just-settled layer-tap should have taken effect so that the keycode from the correct layer is remembered. * The Flow Tap previous key and timer are updated now also on key release events, except for releases of modifiers and held layer switches. * The Flow Tap previous key and timer are now updated together, for simplicity. This makes the logic easier to think about. * A few additional unit tests, including @NikGovorov's scenario as "layer_tap_ignored_with_disabled_key_complex." --- quantum/action.c | 3 + quantum/action_tapping.c | 105 ++++-- quantum/action_tapping.h | 3 + .../tap_hold_configurations/flow_tap/config.h | 1 + .../flow_tap/test_tap_hold.cpp | 331 +++++++++++++++++- 5 files changed, 410 insertions(+), 33 deletions(-) diff --git a/quantum/action.c b/quantum/action.c index eb0dbc70223..dd82c9ec99f 100644 --- a/quantum/action.c +++ b/quantum/action.c @@ -281,6 +281,9 @@ void process_record(keyrecord_t *record) { if (IS_NOEVENT(record->event)) { return; } +#ifdef FLOW_TAP_TERM + flow_tap_update_last_event(record); +#endif // FLOW_TAP_TERM if (!process_record_quantum(record)) { #ifndef NO_ACTION_ONESHOT diff --git a/quantum/action_tapping.c b/quantum/action_tapping.c index 312c6391696..3e391d15266 100644 --- a/quantum/action_tapping.c +++ b/quantum/action_tapping.c @@ -6,6 +6,7 @@ #include "action_tapping.h" #include "action_util.h" #include "keycode.h" +#include "quantum_keycodes.h" #include "timer.h" #ifndef NO_ACTION_TAPPING @@ -102,10 +103,10 @@ __attribute__((weak)) bool get_hold_on_other_key_press(uint16_t keycode, keyreco # endif # if defined(FLOW_TAP_TERM) -static uint32_t last_input = 0; -static uint16_t prev_keycode = KC_NO; +static uint32_t flow_tap_prev_time = 0; +static uint16_t flow_tap_prev_keycode = KC_NO; -uint16_t get_flow_tap_term(uint16_t keycode, keyrecord_t *record, uint16_t prev_keycode); +static bool flow_tap_key_if_within_term(keyrecord_t *record); # endif // defined(FLOW_TAP_TERM) static keyrecord_t tapping_key = {}; @@ -157,19 +158,6 @@ void action_tapping_process(keyrecord_t record) { } } if (IS_EVENT(record.event)) { -# if defined(FLOW_TAP_TERM) - const uint16_t keycode = get_record_keycode(&record, false); - // Track the previous key press. - if (record.event.pressed) { - prev_keycode = keycode; - } - // If there is no unsettled tap-hold key, update last input time. Ignore - // mod keys in this update to allow for chording multiple mods for - // hotkeys like "Ctrl+Shift+arrow". - if (IS_NOEVENT(tapping_key.event) && !IS_MODIFIER_KEYCODE(keycode)) { - last_input = timer_read32(); - } -# endif // defined(FLOW_TAP_TERM) ac_dprintf("\n"); } } @@ -252,22 +240,8 @@ bool process_tapping(keyrecord_t *keyp) { // into the "pressed" tapping key state # if defined(FLOW_TAP_TERM) - const uint16_t keycode = get_record_keycode(keyp, false); - if (is_mt_or_lt(keycode)) { - const uint32_t idle_time = timer_elapsed32(last_input); - uint16_t term = get_flow_tap_term(keycode, keyp, prev_keycode); - if (term > 500) { - term = 500; - } - if (idle_time < 500 && idle_time < term) { - debug_event(keyp->event); - ac_dprintf(" within flow tap term (%u < %u) considered a tap\n", (int16_t)idle_time, term); - keyp->tap.count = 1; - registered_taps_add(keyp->event.key); - debug_registered_taps(); - process_record(keyp); - return true; - } + if (flow_tap_key_if_within_term(keyp)) { + return true; } # endif // defined(FLOW_TAP_TERM) @@ -582,6 +556,13 @@ bool process_tapping(keyrecord_t *keyp) { return true; } else if (is_tap_record(keyp)) { // Sequential tap can be interfered with other tap key. +# if defined(FLOW_TAP_TERM) + if (flow_tap_key_if_within_term(keyp)) { + tapping_key = (keyrecord_t){0}; + debug_tapping_key(); + return true; + } +# endif // defined(FLOW_TAP_TERM) ac_dprintf("Tapping: Start with interfering other tap.\n"); tapping_key = *keyp; waiting_buffer_scan_tap(); @@ -809,6 +790,66 @@ static void waiting_buffer_process_regular(void) { # endif // CHORDAL_HOLD # ifdef FLOW_TAP_TERM +void flow_tap_update_last_event(keyrecord_t *record) { + // Don't update while a tap-hold key is unsettled. + if (waiting_buffer_tail != waiting_buffer_head || (tapping_key.event.pressed && tapping_key.tap.count == 0)) { + return; + } + const uint16_t keycode = get_record_keycode(record, false); + // Ignore releases of modifiers and held layer switches. + if (!record->event.pressed) { + switch (keycode) { + case MODIFIER_KEYCODE_RANGE: + case QK_MOMENTARY ... QK_MOMENTARY_MAX: + case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX: +# ifndef NO_ACTION_ONESHOT // Ignore one-shot keys. + case QK_ONE_SHOT_MOD ... QK_ONE_SHOT_MOD_MAX: + case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_LAYER_MAX: +# endif // NO_ACTION_ONESHOT +# ifdef TRI_LAYER_ENABLE // Ignore Tri Layer keys. + case QK_TRI_LAYER_LOWER: + case QK_TRI_LAYER_UPPER: +# endif // TRI_LAYER_ENABLE + return; + case QK_MODS ... QK_MODS_MAX: + if (QK_MODS_GET_BASIC_KEYCODE(keycode) == KC_NO) { + return; + } + break; + case QK_MOD_TAP ... QK_MOD_TAP_MAX: + case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: + if (record->tap.count == 0) { + return; + } + break; + } + } + + flow_tap_prev_keycode = keycode; + flow_tap_prev_time = timer_read32(); +} + +static bool flow_tap_key_if_within_term(keyrecord_t *record) { + const uint16_t keycode = get_record_keycode(record, false); + if (is_mt_or_lt(keycode)) { + const uint32_t idle_time = timer_elapsed32(flow_tap_prev_time); + uint16_t term = get_flow_tap_term(keycode, record, flow_tap_prev_keycode); + if (term > 500) { + term = 500; + } + if (idle_time < 500 && idle_time < term) { + debug_event(record->event); + ac_dprintf(" within flow tap term (%u < %u) considered a tap\n", (int16_t)idle_time, term); + record->tap.count = 1; + registered_taps_add(record->event.key); + debug_registered_taps(); + process_record(record); + return true; + } + } + return false; +} + // By default, enable Flow Tap for the keys in the main alphas area and Space. // This should work reasonably even if the layout is remapped on the host to an // alt layout or international layout (e.g. Dvorak or AZERTY), where these same diff --git a/quantum/action_tapping.h b/quantum/action_tapping.h index 2af000ad73d..0cf4aa12003 100644 --- a/quantum/action_tapping.h +++ b/quantum/action_tapping.h @@ -166,6 +166,9 @@ bool is_flow_tap_key(uint16_t keycode); * @return Time in milliseconds. */ uint16_t get_flow_tap_term(uint16_t keycode, keyrecord_t *record, uint16_t prev_keycode); + +/** Updates the Flow Tap last key and timer. */ +void flow_tap_update_last_event(keyrecord_t *record); #endif // FLOW_TAP_TERM #ifdef DYNAMIC_TAPPING_TERM_ENABLE diff --git a/tests/tap_hold_configurations/flow_tap/config.h b/tests/tap_hold_configurations/flow_tap/config.h index a17d4882145..d6f385d8d4b 100644 --- a/tests/tap_hold_configurations/flow_tap/config.h +++ b/tests/tap_hold_configurations/flow_tap/config.h @@ -20,3 +20,4 @@ #include "test_common.h" #define FLOW_TAP_TERM 150 +#define PERMISSIVE_HOLD diff --git a/tests/tap_hold_configurations/flow_tap/test_tap_hold.cpp b/tests/tap_hold_configurations/flow_tap/test_tap_hold.cpp index 7816fcb6da0..a4233f0d573 100644 --- a/tests/tap_hold_configurations/flow_tap/test_tap_hold.cpp +++ b/tests/tap_hold_configurations/flow_tap/test_tap_hold.cpp @@ -25,7 +25,169 @@ using testing::InSequence; class FlowTapTest : public TestFixture {}; -TEST_F(FlowTapTest, short_flow_tap_settled_as_tapped) { +// Test an input of quick distinct taps. All should be settled as tapped. +TEST_F(FlowTapTest, distinct_taps) { + TestDriver driver; + InSequence s; + auto regular_key = KeymapKey(0, 0, 0, KC_A); + auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_B)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_C)); + auto mod_tap_key3 = KeymapKey(0, 3, 0, ALT_T(KC_D)); + + set_keymap({regular_key, mod_tap_key1, mod_tap_key2, mod_tap_key3}); + + // Tap regular key. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key, FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Tap mod-tap 1. + EXPECT_REPORT(driver, (KC_B)); + mod_tap_key1.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + idle_for(FLOW_TAP_TERM + 1); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Tap mod-tap 2. + EXPECT_REPORT(driver, (KC_C)); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + idle_for(FLOW_TAP_TERM + 1); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Tap mod-tap 3. + EXPECT_REPORT(driver, (KC_D)); + mod_tap_key3.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + idle_for(FLOW_TAP_TERM + 1); + mod_tap_key3.release(); + idle_for(FLOW_TAP_TERM + 1); // Pause between taps. + VERIFY_AND_CLEAR(driver); + + // Tap mod-tap 1. + EXPECT_NO_REPORT(driver); + mod_tap_key1.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_B)); + EXPECT_EMPTY_REPORT(driver); + idle_for(FLOW_TAP_TERM + 1); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Tap mod-tap 2. + EXPECT_REPORT(driver, (KC_C)); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + idle_for(FLOW_TAP_TERM + 1); + mod_tap_key2.release(); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); +} + +// By default, Flow Tap is disabled when mods other than Shift and AltGr are on. +TEST_F(FlowTapTest, hotkey_taps) { + TestDriver driver; + InSequence s; + auto ctrl_key = KeymapKey(0, 0, 0, KC_LCTL); + auto shft_key = KeymapKey(0, 1, 0, KC_LSFT); + auto alt_key = KeymapKey(0, 2, 0, KC_LALT); + auto gui_key = KeymapKey(0, 3, 0, KC_LGUI); + auto regular_key = KeymapKey(0, 4, 0, KC_A); + auto mod_tap_key = KeymapKey(0, 5, 0, RCTL_T(KC_B)); + + set_keymap({ctrl_key, shft_key, alt_key, gui_key, regular_key, mod_tap_key}); + + for (KeymapKey* mod_key : {&ctrl_key, &alt_key, &gui_key}) { + // Hold mod key. + EXPECT_REPORT(driver, (mod_key->code)); + mod_key->press(); + run_one_scan_loop(); + + // Tap regular key. + EXPECT_REPORT(driver, (mod_key->code, KC_A)); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (mod_key->code)); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap, where Flow Tap is disabled due to the held mod. + EXPECT_REPORT(driver, (mod_key->code, KC_RCTL)); + mod_tap_key.press(); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap. + EXPECT_REPORT(driver, (mod_key->code)); + mod_tap_key.release(); + run_one_scan_loop(); + + // Release mod key. + EXPECT_EMPTY_REPORT(driver); + mod_key->release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + } + + // Hold Shift key. + EXPECT_REPORT(driver, (KC_LSFT)); + shft_key.press(); + run_one_scan_loop(); + + // Tap regular key. + EXPECT_REPORT(driver, (KC_LSFT, KC_A)); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT)); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap, where Flow Tap applies to settle as tapped. + EXPECT_REPORT(driver, (KC_LSFT, KC_B)); + mod_tap_key.press(); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.release(); + run_one_scan_loop(); + + // Release Shift key. + EXPECT_EMPTY_REPORT(driver); + shft_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +// Test input with two mod-taps in a rolled press quickly after a regular key. +TEST_F(FlowTapTest, rolled_press) { TestDriver driver; InSequence s; auto regular_key = KeymapKey(0, 0, 0, KC_A); @@ -152,6 +314,53 @@ TEST_F(FlowTapTest, holding_multiple_mod_taps) { VERIFY_AND_CLEAR(driver); } +TEST_F(FlowTapTest, holding_mod_tap_with_regular_mod) { + TestDriver driver; + InSequence s; + auto regular_key = KeymapKey(0, 0, 0, KC_A); + auto mod_key = KeymapKey(0, 1, 0, KC_LSFT); + auto mod_tap_key = KeymapKey(0, 2, 0, CTL_T(KC_C)); + + set_keymap({regular_key, mod_key, mod_tap_key}); + + // Tap regular key. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Press mod and mod-tap keys. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_key.press(); + run_one_scan_loop(); + mod_tap_key.press(); + idle_for(TAPPING_TERM - 5); // Hold almost until tapping term. + VERIFY_AND_CLEAR(driver); + + // Press regular key. + EXPECT_REPORT(driver, (KC_LSFT, KC_LCTL)); + EXPECT_REPORT(driver, (KC_LSFT, KC_LCTL, KC_A)); + regular_key.press(); + idle_for(10); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_REPORT(driver, (KC_LSFT, KC_LCTL)); + EXPECT_REPORT(driver, (KC_LCTL)); + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + mod_key.release(); + run_one_scan_loop(); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + TEST_F(FlowTapTest, layer_tap_key) { TestDriver driver; InSequence s; @@ -216,6 +425,125 @@ TEST_F(FlowTapTest, layer_tap_key) { VERIFY_AND_CLEAR(driver); } +TEST_F(FlowTapTest, layer_tap_ignored_with_disabled_key) { + TestDriver driver; + InSequence s; + auto no_key = KeymapKey(0, 0, 0, KC_NO); + auto regular_key = KeymapKey(1, 0, 0, KC_ESC); + auto layer_tap_key = KeymapKey(0, 1, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 2, 0, CTL_T(KC_B)); + + set_keymap({no_key, regular_key, layer_tap_key, mod_tap_key}); + + EXPECT_REPORT(driver, (KC_ESC)); + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.press(); + idle_for(TAPPING_TERM + 1); + tap_key(regular_key); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(FlowTapTest, layer_tap_ignored_with_disabled_key_complex) { + TestDriver driver; + InSequence s; + auto regular_key1 = KeymapKey(0, 0, 0, KC_Q); + auto layer_tap_key = KeymapKey(0, 1, 0, LT(1, KC_SPC)); + auto mod_tap_key1 = KeymapKey(0, 2, 0, CTL_T(KC_T)); + // Place RALT_T(KC_I), where Flow Tap is enabled, in the same position on + // layer 0 as KC_RGHT, where Flow Tap is disabled. This tests that Flow Tap + // tracks the keycode from the correct layer. + auto mod_tap_key2 = KeymapKey(0, 3, 0, RALT_T(KC_I)); + auto regular_key2 = KeymapKey(1, 3, 0, KC_RGHT); + + set_keymap({regular_key1, layer_tap_key, mod_tap_key1, mod_tap_key2, regular_key2}); + + // Tap regular key 1. + EXPECT_REPORT(driver, (KC_Q)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key1); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Hold layer-tap key. + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + run_one_scan_loop(); + // idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Tap regular key 2. + EXPECT_REPORT(driver, (KC_RGHT)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key2); + VERIFY_AND_CLEAR(driver); + + // Release layer-tap key. + EXPECT_NO_REPORT(driver); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Quickly hold mod-tap key 1. + EXPECT_NO_REPORT(driver); + mod_tap_key1.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LCTL)); + EXPECT_REPORT(driver, (KC_LCTL, KC_Q)); + EXPECT_REPORT(driver, (KC_LCTL)); + tap_key(regular_key1); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(FlowTapTest, layer_tap_ignored_with_enabled_key) { + TestDriver driver; + InSequence s; + auto no_key = KeymapKey(0, 0, 0, KC_NO); + auto regular_key = KeymapKey(1, 0, 0, KC_C); + auto layer_tap_key = KeymapKey(0, 1, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 2, 0, CTL_T(KC_B)); + + set_keymap({no_key, regular_key, layer_tap_key, mod_tap_key}); + + EXPECT_REPORT(driver, (KC_C)); + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.press(); + idle_for(TAPPING_TERM + 1); + tap_key(regular_key); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_B)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + idle_for(TAPPING_TERM + 1); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + TEST_F(FlowTapTest, combo_key) { TestDriver driver; InSequence s; @@ -275,6 +603,7 @@ TEST_F(FlowTapTest, oneshot_mod_key) { // Nested press of OSM and regular keys. EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); EXPECT_REPORT(driver, (KC_LSFT, KC_A)); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); EXPECT_EMPTY_REPORT(driver); osm_key.press(); run_one_scan_loop(); From 960c4969a539fbbc1880d3fad1c1af83827d535a Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 22 Apr 2025 17:59:00 +0100 Subject: [PATCH 356/365] Remove empty `url` fields (#25181) --- keyboards/0_sixty/info.json | 1 - keyboards/0xc7/61key/keyboard.json | 1 - keyboards/0xcb/tutelpad/keyboard.json | 1 - keyboards/1k/keyboard.json | 1 - keyboards/1upkeyboards/1up60hse/keyboard.json | 1 - keyboards/1upkeyboards/1up60rgb/keyboard.json | 1 - keyboards/1upkeyboards/super16/keyboard.json | 1 - keyboards/1upkeyboards/super16v2/keyboard.json | 1 - keyboards/1upkeyboards/sweet16/info.json | 1 - keyboards/1upkeyboards/sweet16/v1/keyboard.json | 1 - keyboards/2key2crawl/keyboard.json | 1 - keyboards/30wer/keyboard.json | 1 - keyboards/40percentclub/25/keyboard.json | 1 - keyboards/40percentclub/4pack/keyboard.json | 1 - keyboards/40percentclub/4x4/keyboard.json | 1 - keyboards/40percentclub/5x5/keyboard.json | 1 - keyboards/40percentclub/6lit/keyboard.json | 1 - keyboards/40percentclub/foobar/keyboard.json | 1 - keyboards/40percentclub/gherkin/info.json | 1 - keyboards/40percentclub/half_n_half/keyboard.json | 1 - keyboards/40percentclub/i75/info.json | 1 - keyboards/40percentclub/luddite/keyboard.json | 1 - keyboards/40percentclub/mf68/keyboard.json | 1 - keyboards/40percentclub/nano/keyboard.json | 1 - keyboards/40percentclub/nori/keyboard.json | 1 - keyboards/40percentclub/polyandry/info.json | 1 - keyboards/40percentclub/tomato/keyboard.json | 1 - keyboards/40percentclub/ut47/keyboard.json | 1 - keyboards/45_ats/keyboard.json | 1 - keyboards/4pplet/aekiso60/info.json | 1 - keyboards/4pplet/perk60_iso/rev_a/keyboard.json | 1 - keyboards/4pplet/waffling80/info.json | 1 - keyboards/5keys/keyboard.json | 1 - keyboards/7c8/framework/keyboard.json | 1 - keyboards/9key/keyboard.json | 1 - keyboards/abatskeyboardclub/nayeon/keyboard.json | 1 - keyboards/acheron/apollo/87h/info.json | 1 - keyboards/acheron/apollo/87htsc/keyboard.json | 1 - keyboards/acheron/apollo/88htsc/keyboard.json | 1 - keyboards/acheron/athena/info.json | 1 - keyboards/acheron/austin/keyboard.json | 1 - keyboards/acheron/lasgweloth/keyboard.json | 1 - keyboards/acheron/themis/info.json | 1 - keyboards/ada/ada1800mini/keyboard.json | 1 - keyboards/ada/infinity81/keyboard.json | 1 - keyboards/adkb96/rev1/keyboard.json | 1 - keyboards/aeboards/aegis/keyboard.json | 1 - keyboards/aeboards/constellation/rev1/keyboard.json | 1 - keyboards/aeboards/constellation/rev2/keyboard.json | 1 - keyboards/aeboards/constellation/rev3/keyboard.json | 1 - keyboards/aeboards/ext65/info.json | 1 - keyboards/aeboards/ext65/rev1/keyboard.json | 1 - keyboards/aeboards/ext65/rev2/keyboard.json | 1 - keyboards/aeboards/ext65/rev3/keyboard.json | 1 - keyboards/aeboards/satellite/rev1/keyboard.json | 1 - keyboards/ah/haven80/info.json | 1 - keyboards/ai/keyboard.json | 1 - keyboards/ai03/andromeda/keyboard.json | 1 - keyboards/ai03/equinox/info.json | 1 - keyboards/ai03/orbit_x/keyboard.json | 1 - keyboards/al1/keyboard.json | 1 - keyboards/alf/x11/keyboard.json | 1 - keyboards/alf/x2/keyboard.json | 1 - keyboards/alhenkb/macropad5x4/keyboard.json | 1 - keyboards/alpine65/keyboard.json | 1 - keyboards/alps64/keyboard.json | 1 - keyboards/amjkeyboard/amj40/keyboard.json | 1 - keyboards/amjkeyboard/amj60/keyboard.json | 1 - keyboards/amjkeyboard/amj66/keyboard.json | 1 - keyboards/amjkeyboard/amj84/keyboard.json | 1 - keyboards/amjkeyboard/amj96/keyboard.json | 1 - keyboards/amjkeyboard/amjpad/keyboard.json | 1 - keyboards/anavi/macropad8/keyboard.json | 1 - keyboards/aplyard/aplx6/info.json | 1 - keyboards/arabica37/rev1/keyboard.json | 1 - keyboards/archetype/minervalx/keyboard.json | 1 - keyboards/ares/keyboard.json | 1 - keyboards/artemis/paragon/info.json | 1 - keyboards/at_at/660m/keyboard.json | 1 - keyboards/atreus/info.json | 1 - keyboards/atreus62/keyboard.json | 1 - keyboards/aves65/keyboard.json | 1 - keyboards/axolstudio/helpo/keyboard.json | 1 - keyboards/baguette/keyboard.json | 1 - keyboards/bahm/aster_ergo/keyboard.json | 1 - keyboards/balloondogcaps/tr90/keyboard.json | 1 - keyboards/balloondogcaps/tr90pm/keyboard.json | 1 - keyboards/bantam44/keyboard.json | 1 - keyboards/beatervan/keyboard.json | 1 - keyboards/beekeeb/piantor_pro/keyboard.json | 1 - keyboards/bestway/keyboard.json | 1 - keyboards/bfake/keyboard.json | 1 - keyboards/biacco42/ergo42/rev1/keyboard.json | 1 - keyboards/biacco42/meishi/keyboard.json | 1 - keyboards/biacco42/meishi2/keyboard.json | 1 - keyboards/bioi/f60/keyboard.json | 1 - keyboards/bioi/g60ble/keyboard.json | 1 - keyboards/bioi/morgan65/keyboard.json | 1 - keyboards/bioi/s65/keyboard.json | 1 - keyboards/blank/blank01/keyboard.json | 1 - keyboards/blaster75/keyboard.json | 1 - keyboards/blockboy/ac980mini/keyboard.json | 1 - keyboards/blockey/keyboard.json | 1 - keyboards/boardwalk/keyboard.json | 1 - keyboards/bobpad/keyboard.json | 1 - keyboards/bolsa/bolsalice/keyboard.json | 1 - keyboards/bolsa/damapad/keyboard.json | 1 - keyboards/boston_meetup/2019/keyboard.json | 1 - keyboards/botanicalkeyboards/fm2u/keyboard.json | 1 - keyboards/box75/keyboard.json | 1 - keyboards/bpiphany/four_banger/keyboard.json | 1 - keyboards/bpiphany/frosty_flake/info.json | 1 - keyboards/bpiphany/ghost_squid/keyboard.json | 1 - keyboards/bpiphany/hid_liber/keyboard.json | 1 - keyboards/bpiphany/kitten_paw/keyboard.json | 1 - keyboards/bpiphany/pegasushoof/info.json | 1 - keyboards/bpiphany/tiger_lily/keyboard.json | 1 - keyboards/bt66tech/bt66tech60/keyboard.json | 1 - keyboards/bubble75/hotswap/keyboard.json | 1 - keyboards/budgy/keyboard.json | 1 - keyboards/buildakb/mw60/keyboard.json | 1 - keyboards/caffeinated/serpent65/keyboard.json | 1 - keyboards/canary/canary60rgb/v1/keyboard.json | 1 - keyboards/cannonkeys/adelie/keyboard.json | 1 - keyboards/cannonkeys/nearfield/keyboard.json | 1 - keyboards/cannonkeys/ortho48/keyboard.json | 1 - keyboards/cannonkeys/ortho60/keyboard.json | 1 - keyboards/cannonkeys/ortho75/keyboard.json | 1 - keyboards/cannonkeys/practice60/keyboard.json | 1 - keyboards/cannonkeys/vector/keyboard.json | 1 - keyboards/capsunlocked/cu24/keyboard.json | 1 - keyboards/capsunlocked/cu65/keyboard.json | 1 - keyboards/capsunlocked/cu75/keyboard.json | 1 - keyboards/centromere/keyboard.json | 1 - keyboards/checkerboards/axon40/keyboard.json | 1 - keyboards/checkerboards/candybar_ortho/keyboard.json | 1 - keyboards/checkerboards/g_idb60/keyboard.json | 1 - keyboards/checkerboards/nop60/keyboard.json | 1 - keyboards/checkerboards/plexus75/keyboard.json | 1 - keyboards/checkerboards/quark/keyboard.json | 1 - keyboards/checkerboards/ud40_ortho_alt/keyboard.json | 1 - keyboards/chickenman/ciel/keyboard.json | 1 - keyboards/chickenman/ciel65/keyboard.json | 1 - keyboards/cipulot/kallos/keyboard.json | 1 - keyboards/ck60i/keyboard.json | 1 - keyboards/ckeys/nakey/keyboard.json | 1 - keyboards/ckeys/obelus/keyboard.json | 1 - keyboards/clawsome/bookerboard/keyboard.json | 1 - keyboards/clawsome/sidekick/keyboard.json | 1 - keyboards/clueboard/17/keyboard.json | 1 - keyboards/clueboard/california/keyboard.json | 1 - keyboards/cmm_studio/fuji65/keyboard.json | 1 - keyboards/cmm_studio/saka68/hotswap/keyboard.json | 1 - keyboards/cmm_studio/saka68/solder/keyboard.json | 1 - keyboards/coarse/ixora/keyboard.json | 1 - keyboards/coarse/vinta/keyboard.json | 1 - keyboards/concreteflowers/cor/keyboard.json | 1 - keyboards/concreteflowers/cor_tkl/keyboard.json | 1 - keyboards/contra/keyboard.json | 1 - keyboards/converter/adb_usb/info.json | 1 - keyboards/converter/ibm_terminal/keyboard.json | 1 - keyboards/converter/m0110_usb/keyboard.json | 1 - keyboards/converter/numeric_keypad_iie/keyboard.json | 1 - keyboards/converter/palm_usb/stowaway/keyboard.json | 1 - keyboards/converter/siemens_tastatur/keyboard.json | 1 - keyboards/converter/sun_usb/info.json | 1 - keyboards/converter/usb_usb/info.json | 1 - keyboards/converter/xt_usb/keyboard.json | 1 - keyboards/crawlpad/keyboard.json | 1 - keyboards/crazy_keyboard_68/keyboard.json | 1 - keyboards/creatkeebs/glacier/keyboard.json | 1 - keyboards/crimsonkeyboards/resume1800/keyboard.json | 1 - keyboards/crowboard/keyboard.json | 1 - keyboards/cutie_club/borsdorf/keyboard.json | 1 - keyboards/cutie_club/fidelity/keyboard.json | 1 - keyboards/cutie_club/giant_macro_pad/keyboard.json | 1 - keyboards/cutie_club/keebcats/denis/keyboard.json | 1 - keyboards/cutie_club/keebcats/dougal/keyboard.json | 1 - keyboards/cutie_club/novus/keyboard.json | 1 - keyboards/cutie_club/wraith/keyboard.json | 1 - keyboards/cx60/keyboard.json | 1 - keyboards/cxt_studio/12e3/keyboard.json | 1 - keyboards/cxt_studio/12e4/keyboard.json | 1 - keyboards/dailycraft/bat43/info.json | 1 - keyboards/dailycraft/claw44/rev1/keyboard.json | 1 - keyboards/dailycraft/owl8/keyboard.json | 1 - keyboards/dailycraft/sandbox/rev1/keyboard.json | 1 - keyboards/dailycraft/sandbox/rev2/keyboard.json | 1 - keyboards/dailycraft/stickey4/keyboard.json | 1 - keyboards/dailycraft/wings42/rev1/keyboard.json | 1 - keyboards/dailycraft/wings42/rev1_extkeys/keyboard.json | 1 - keyboards/dailycraft/wings42/rev2/keyboard.json | 1 - keyboards/daji/seis_cinco/keyboard.json | 1 - keyboards/dark/magnum_ergo_1/keyboard.json | 1 - keyboards/darkproject/kd83a_bfg_edition/keyboard.json | 1 - keyboards/darkproject/kd87a_bfg_edition/keyboard.json | 1 - keyboards/darmoshark/k3/keyboard.json | 1 - keyboards/dasky/reverb/keyboard.json | 1 - keyboards/dc01/arrow/keyboard.json | 1 - keyboards/dc01/left/keyboard.json | 1 - keyboards/dc01/numpad/keyboard.json | 1 - keyboards/dc01/right/keyboard.json | 1 - keyboards/delikeeb/flatbread60/keyboard.json | 1 - keyboards/delikeeb/vaguettelite/keyboard.json | 1 - keyboards/delikeeb/vanana/info.json | 1 - keyboards/delikeeb/waaffle/rev3/info.json | 1 - keyboards/deltapad/keyboard.json | 1 - keyboards/demiurge/keyboard.json | 1 - keyboards/deng/djam/keyboard.json | 1 - keyboards/deng/thirty/keyboard.json | 1 - keyboards/densus/alveus/mx/keyboard.json | 1 - keyboards/dichotomy/keyboard.json | 1 - keyboards/dk60/keyboard.json | 1 - keyboards/dm9records/ergoinu/keyboard.json | 1 - keyboards/do60/keyboard.json | 1 - keyboards/doio/kb09/keyboard.json | 1 - keyboards/doio/kb12/keyboard.json | 1 - keyboards/doio/kb19/keyboard.json | 1 - keyboards/doio/kb30/keyboard.json | 1 - keyboards/doio/kb3x/keyboard.json | 1 - keyboards/donutcables/budget96/keyboard.json | 1 - keyboards/donutcables/scrabblepad/keyboard.json | 1 - keyboards/doppelganger/keyboard.json | 1 - keyboards/doro67/multi/keyboard.json | 1 - keyboards/doro67/rgb/keyboard.json | 1 - keyboards/dp60/keyboard.json | 1 - keyboards/draculad/keyboard.json | 1 - keyboards/dtisaac/cg108/keyboard.json | 1 - keyboards/dtisaac/dosa40rgb/keyboard.json | 1 - keyboards/dtisaac/dtisaac01/keyboard.json | 1 - keyboards/duck/jetfire/keyboard.json | 1 - keyboards/duck/lightsaver/keyboard.json | 1 - keyboards/duck/octagon/v1/keyboard.json | 1 - keyboards/duck/octagon/v2/keyboard.json | 1 - keyboards/duck/orion/v3/keyboard.json | 1 - keyboards/duck/tcv3/keyboard.json | 1 - keyboards/dumbo/keyboard.json | 1 - keyboards/dz60/keyboard.json | 1 - keyboards/dztech/bocc/keyboard.json | 1 - keyboards/dztech/duo_s/keyboard.json | 1 - keyboards/dztech/dz60rgb/info.json | 1 - keyboards/dztech/dz60rgb_ansi/info.json | 1 - keyboards/dztech/dz60rgb_wkl/info.json | 1 - keyboards/dztech/dz64rgb/keyboard.json | 1 - keyboards/dztech/dz65rgb/info.json | 1 - keyboards/dztech/dz96/keyboard.json | 1 - keyboards/dztech/endless80/keyboard.json | 1 - keyboards/e88/keyboard.json | 1 - keyboards/eason/aeroboard/keyboard.json | 1 - keyboards/eason/capsule65/keyboard.json | 1 - keyboards/eason/meow65/keyboard.json | 1 - keyboards/eason/void65h/keyboard.json | 1 - keyboards/eco/info.json | 1 - keyboards/edc40/keyboard.json | 1 - keyboards/edi/standaside/keyboard.json | 1 - keyboards/efreet/keyboard.json | 1 - keyboards/ein_60/keyboard.json | 1 - keyboards/emi20/keyboard.json | 1 - keyboards/emptystring/nqg/keyboard.json | 1 - keyboards/eniigmakeyboards/ek60/keyboard.json | 1 - keyboards/eniigmakeyboards/ek65/keyboard.json | 1 - keyboards/eniigmakeyboards/ek87/keyboard.json | 1 - keyboards/epomaker/tide65/keyboard.json | 1 - keyboards/era/divine/keyboard.json | 1 - keyboards/era/era65/keyboard.json | 1 - keyboards/era/linx3/fave65s/keyboard.json | 1 - keyboards/era/linx3/n86/keyboard.json | 1 - keyboards/era/linx3/n87/keyboard.json | 1 - keyboards/era/linx3/n8x/keyboard.json | 1 - keyboards/era/sirind/brick65s/keyboard.json | 1 - keyboards/era/sirind/chickpad/keyboard.json | 1 - keyboards/era/sirind/klein_hs/keyboard.json | 1 - keyboards/era/sirind/klein_sd/keyboard.json | 1 - keyboards/era/sirind/tomak/keyboard.json | 1 - keyboards/era/sirind/tomak79h/keyboard.json | 1 - keyboards/era/sirind/tomak79s/keyboard.json | 1 - keyboards/esca/getawayvan/keyboard.json | 1 - keyboards/esca/getawayvan_f042/keyboard.json | 1 - keyboards/eve/meteor/keyboard.json | 1 - keyboards/evil80/keyboard.json | 1 - keyboards/evolv/keyboard.json | 1 - keyboards/evyd13/atom47/rev2/keyboard.json | 1 - keyboards/evyd13/atom47/rev3/keyboard.json | 1 - keyboards/evyd13/atom47/rev4/keyboard.json | 1 - keyboards/evyd13/atom47/rev5/keyboard.json | 1 - keyboards/evyd13/eon65/keyboard.json | 1 - keyboards/evyd13/eon75/keyboard.json | 1 - keyboards/evyd13/eon87/keyboard.json | 1 - keyboards/evyd13/eon95/keyboard.json | 1 - keyboards/evyd13/fin_pad/keyboard.json | 1 - keyboards/evyd13/minitomic/keyboard.json | 1 - keyboards/evyd13/nt650/keyboard.json | 1 - keyboards/evyd13/nt660/keyboard.json | 1 - keyboards/evyd13/nt980/keyboard.json | 1 - keyboards/evyd13/omrontkl/keyboard.json | 1 - keyboards/evyd13/plain60/keyboard.json | 1 - keyboards/evyd13/ta65/keyboard.json | 1 - keyboards/evyd13/wonderland/keyboard.json | 1 - keyboards/exclusive/e65/keyboard.json | 1 - keyboards/exclusive/e6_rgb/keyboard.json | 1 - keyboards/exclusive/e6v2/le/keyboard.json | 1 - keyboards/exclusive/e6v2/oe/keyboard.json | 1 - keyboards/exclusive/e7v1/keyboard.json | 1 - keyboards/exclusive/e85/hotswap/keyboard.json | 1 - keyboards/exclusive/e85/soldered/keyboard.json | 1 - keyboards/exent/keyboard.json | 1 - keyboards/eyeohdesigns/babyv/keyboard.json | 1 - keyboards/eyeohdesigns/theboulevard/keyboard.json | 1 - keyboards/facew/keyboard.json | 1 - keyboards/falsonix/fx19/keyboard.json | 1 - keyboards/fatotesa/keyboard.json | 1 - keyboards/fc660c/keyboard.json | 1 - keyboards/fc980c/keyboard.json | 1 - keyboards/flehrad/numbrero/keyboard.json | 1 - keyboards/flehrad/snagpad/keyboard.json | 1 - keyboards/flehrad/tradestation/keyboard.json | 1 - keyboards/fluorite/keyboard.json | 1 - keyboards/flx/virgo/keyboard.json | 1 - keyboards/foostan/cornelius/keyboard.json | 1 - keyboards/fortitude60/rev1/keyboard.json | 1 - keyboards/foxlab/key65/hotswap/keyboard.json | 1 - keyboards/foxlab/key65/universal/keyboard.json | 1 - keyboards/foxlab/leaf60/hotswap/keyboard.json | 1 - keyboards/foxlab/leaf60/universal/keyboard.json | 1 - keyboards/foxlab/time80/keyboard.json | 1 - keyboards/foxlab/time_re/hotswap/keyboard.json | 1 - keyboards/foxlab/time_re/universal/keyboard.json | 1 - keyboards/ft/mars65/keyboard.json | 1 - keyboards/ft/mars80/keyboard.json | 1 - keyboards/funky40/keyboard.json | 1 - keyboards/gami_studio/lex60/keyboard.json | 1 - keyboards/gboards/butterstick/keyboard.json | 1 - keyboards/gboards/gergoplex/keyboard.json | 1 - keyboards/geekboards/tester/keyboard.json | 1 - keyboards/ggkeyboards/genesis/hotswap/keyboard.json | 1 - keyboards/ggkeyboards/genesis/solder/keyboard.json | 1 - keyboards/gh60/revc/keyboard.json | 1 - keyboards/gh60/satan/keyboard.json | 1 - keyboards/gh60/v1p3/keyboard.json | 1 - keyboards/gh80_3000/keyboard.json | 1 - keyboards/ghs/jem/info.json | 1 - keyboards/ghs/xls/keyboard.json | 1 - keyboards/gkeyboard/gkb_m16/keyboard.json | 1 - keyboards/gl516/xr63gl/keyboard.json | 1 - keyboards/glenpickle/chimera_ergo/keyboard.json | 1 - keyboards/glenpickle/chimera_ls/keyboard.json | 1 - keyboards/gon/nerd60/keyboard.json | 1 - keyboards/gon/nerdtkl/keyboard.json | 1 - keyboards/gopolar/gg86/keyboard.json | 1 - keyboards/gray_studio/cod67/keyboard.json | 1 - keyboards/gray_studio/hb85/keyboard.json | 1 - keyboards/gray_studio/space65/keyboard.json | 1 - keyboards/gray_studio/think65/hotswap/keyboard.json | 1 - keyboards/gray_studio/think65/solder/keyboard.json | 1 - keyboards/grid600/press/keyboard.json | 1 - keyboards/gvalchca/ga150/keyboard.json | 1 - keyboards/h0oni/deskpad/keyboard.json | 1 - keyboards/h0oni/hotduck/keyboard.json | 1 - keyboards/hadron/info.json | 1 - keyboards/halokeys/elemental75/keyboard.json | 1 - keyboards/handwired/108key_trackpoint/keyboard.json | 1 - keyboards/handwired/2x5keypad/keyboard.json | 1 - keyboards/handwired/3dfoxc/keyboard.json | 1 - keyboards/handwired/3dortho14u/rev1/keyboard.json | 1 - keyboards/handwired/3dortho14u/rev2/keyboard.json | 1 - keyboards/handwired/3dp660/keyboard.json | 1 - keyboards/handwired/3dp660_oled/keyboard.json | 1 - keyboards/handwired/412_64/keyboard.json | 1 - keyboards/handwired/42/keyboard.json | 1 - keyboards/handwired/6macro/keyboard.json | 1 - keyboards/handwired/aek64/keyboard.json | 1 - keyboards/handwired/alcor_dactyl/keyboard.json | 1 - keyboards/handwired/aplx2/keyboard.json | 1 - keyboards/handwired/arrow_pad/keyboard.json | 1 - keyboards/handwired/atreus50/keyboard.json | 1 - keyboards/handwired/bdn9_ble/keyboard.json | 1 - keyboards/handwired/bigmac/keyboard.json | 1 - keyboards/handwired/boss566y/redragon_vara/keyboard.json | 1 - keyboards/handwired/brain/keyboard.json | 1 - keyboards/handwired/cans12er/keyboard.json | 1 - keyboards/handwired/chiron/keyboard.json | 1 - keyboards/handwired/ck4x4/keyboard.json | 1 - keyboards/handwired/cmd60/keyboard.json | 1 - keyboards/handwired/colorlice/keyboard.json | 1 - keyboards/handwired/croxsplit44/keyboard.json | 1 - keyboards/handwired/curiosity/keyboard.json | 1 - keyboards/handwired/d48/keyboard.json | 1 - keyboards/handwired/dactyl/keyboard.json | 1 - keyboards/handwired/dactyl_kinesis/keyboard.json | 1 - keyboards/handwired/dactyl_left/keyboard.json | 1 - keyboards/handwired/dactyl_manuform/4x5/keyboard.json | 1 - keyboards/handwired/dactyl_manuform/4x6/keyboard.json | 1 - keyboards/handwired/dactyl_manuform/4x6_5/keyboard.json | 1 - keyboards/handwired/dactyl_manuform/5x6/keyboard.json | 1 - keyboards/handwired/dactyl_manuform/5x6_2_5/keyboard.json | 1 - keyboards/handwired/dactyl_manuform/5x6_5/keyboard.json | 1 - keyboards/handwired/dactyl_manuform/5x6_68/keyboard.json | 1 - keyboards/handwired/dactyl_manuform/5x7/keyboard.json | 1 - keyboards/handwired/dactyl_manuform/5x8/keyboard.json | 1 - keyboards/handwired/dactyl_manuform/6x6/info.json | 1 - keyboards/handwired/dactyl_manuform/6x6_4/keyboard.json | 1 - keyboards/handwired/dactyl_manuform/6x7/keyboard.json | 1 - keyboards/handwired/dactyl_maximus/keyboard.json | 1 - keyboards/handwired/dactyl_promicro/keyboard.json | 1 - keyboards/handwired/daishi/keyboard.json | 1 - keyboards/handwired/datahand/keyboard.json | 1 - keyboards/handwired/ddg_56/keyboard.json | 1 - keyboards/handwired/eagleii/keyboard.json | 1 - keyboards/handwired/elrgo_s/keyboard.json | 1 - keyboards/handwired/ergocheap/keyboard.json | 1 - keyboards/handwired/fc200rt_qmk/keyboard.json | 1 - keyboards/handwired/fivethirteen/keyboard.json | 1 - keyboards/handwired/gamenum/keyboard.json | 1 - keyboards/handwired/hacked_motospeed/keyboard.json | 1 - keyboards/handwired/hexon38/keyboard.json | 1 - keyboards/handwired/hnah108/keyboard.json | 1 - keyboards/handwired/hnah40rgb/keyboard.json | 1 - keyboards/handwired/hwpm87/keyboard.json | 1 - keyboards/handwired/iso85k/keyboard.json | 1 - keyboards/handwired/itstleo9/info.json | 1 - keyboards/handwired/jankrp2040dactyl/keyboard.json | 1 - keyboards/handwired/jn68m/keyboard.json | 1 - keyboards/handwired/jot50/keyboard.json | 1 - keyboards/handwired/jotpad16/keyboard.json | 1 - keyboards/handwired/jtallbean/split_65/keyboard.json | 1 - keyboards/handwired/k8split/keyboard.json | 1 - keyboards/handwired/k_numpad17/keyboard.json | 1 - keyboards/handwired/kbod/keyboard.json | 1 - keyboards/handwired/ks63/keyboard.json | 1 - keyboards/handwired/lemonpad/keyboard.json | 1 - keyboards/handwired/macroboard/info.json | 1 - keyboards/handwired/magicforce61/keyboard.json | 1 - keyboards/handwired/magicforce68/keyboard.json | 1 - keyboards/handwired/marek128b/ergosplit44/keyboard.json | 1 - keyboards/handwired/mechboards_micropad/keyboard.json | 1 - keyboards/handwired/minorca/keyboard.json | 1 - keyboards/handwired/ms_sculpt_mobile/info.json | 1 - keyboards/handwired/myskeeb/keyboard.json | 1 - keyboards/handwired/nicekey/keyboard.json | 1 - keyboards/handwired/nortontechpad/keyboard.json | 1 - keyboards/handwired/not_so_minidox/keyboard.json | 1 - keyboards/handwired/novem/keyboard.json | 1 - keyboards/handwired/nozbe_macro/keyboard.json | 1 - keyboards/handwired/numpad20/keyboard.json | 1 - keyboards/handwired/obuwunkunubi/spaget/keyboard.json | 1 - keyboards/handwired/onekey/info.json | 1 - keyboards/handwired/ortho5x13/keyboard.json | 1 - keyboards/handwired/ortho5x14/keyboard.json | 1 - keyboards/handwired/ortho_brass/keyboard.json | 1 - keyboards/handwired/osborne1/keyboard.json | 1 - keyboards/handwired/p65rgb/keyboard.json | 1 - keyboards/handwired/pilcrow/keyboard.json | 1 - keyboards/handwired/postageboard/info.json | 1 - keyboards/handwired/promethium/keyboard.json | 1 - keyboards/handwired/protype/keyboard.json | 1 - keyboards/handwired/pteron/keyboard.json | 1 - keyboards/handwired/pteron38/keyboard.json | 1 - keyboards/handwired/pteron44/keyboard.json | 1 - keyboards/handwired/qc60/proto/keyboard.json | 1 - keyboards/handwired/rd_61_qmk/keyboard.json | 1 - keyboards/handwired/retro_refit/keyboard.json | 1 - keyboards/handwired/riblee_f401/keyboard.json | 1 - keyboards/handwired/riblee_f411/keyboard.json | 1 - keyboards/handwired/riblee_split/keyboard.json | 1 - keyboards/handwired/rs60/keyboard.json | 1 - keyboards/handwired/sejin_eat1010r2/keyboard.json | 1 - keyboards/handwired/sick68/keyboard.json | 1 - keyboards/handwired/skakunm_dactyl/keyboard.json | 1 - keyboards/handwired/slash/keyboard.json | 1 - keyboards/handwired/snatchpad/keyboard.json | 1 - keyboards/handwired/sono1/info.json | 1 - keyboards/handwired/space_oddity/keyboard.json | 1 - keyboards/handwired/splittest/info.json | 1 - keyboards/handwired/steamvan/rev1/keyboard.json | 1 - keyboards/handwired/stef9998/split_5x7/rev1/keyboard.json | 1 - keyboards/handwired/sticc14/keyboard.json | 1 - keyboards/handwired/swiftrax/cowfish/keyboard.json | 1 - keyboards/handwired/symmetric70_proto/info.json | 1 - keyboards/handwired/symmetry60/keyboard.json | 1 - keyboards/handwired/t111/keyboard.json | 1 - keyboards/handwired/terminus_mini/keyboard.json | 1 - keyboards/handwired/tkk/keyboard.json | 1 - keyboards/handwired/trackpoint/keyboard.json | 1 - keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json | 1 - keyboards/handwired/tractyl_manuform/5x6_right/info.json | 1 - keyboards/handwired/traveller/keyboard.json | 1 - keyboards/handwired/twig/twig50/keyboard.json | 1 - keyboards/handwired/unicomp_mini_m/keyboard.json | 1 - keyboards/handwired/uthol/info.json | 1 - keyboards/handwired/woodpad/keyboard.json | 1 - keyboards/handwired/wulkan/keyboard.json | 1 - keyboards/handwired/wwa/helios/keyboard.json | 1 - keyboards/handwired/wwa/kepler/keyboard.json | 1 - keyboards/handwired/wwa/mercury/keyboard.json | 1 - keyboards/handwired/wwa/soyuz/keyboard.json | 1 - keyboards/handwired/wwa/soyuzxl/keyboard.json | 1 - keyboards/handwired/xealous/rev1/keyboard.json | 1 - keyboards/handwired/z150/keyboard.json | 1 - keyboards/handwired/ziyoulang_k3_mod/keyboard.json | 3 +-- keyboards/hardlineworks/otd_plus/keyboard.json | 1 - keyboards/heliar/wm1_hotswap/keyboard.json | 1 - keyboards/helix/rev3_4rows/keyboard.json | 1 - keyboards/helix/rev3_5rows/keyboard.json | 1 - keyboards/herevoland/buff75/keyboard.json | 1 - keyboards/hfdkb/ac001/keyboard.json | 1 - keyboards/hhkb/ansi/info.json | 1 - keyboards/hhkb/jp/keyboard.json | 1 - keyboards/hhkb/yang/keyboard.json | 1 - keyboards/hhkb_lite_2/keyboard.json | 1 - keyboards/hineybush/h08_ocelot/keyboard.json | 1 - keyboards/hineybush/h10/keyboard.json | 1 - keyboards/hineybush/h101/keyboard.json | 1 - keyboards/hineybush/h60/keyboard.json | 1 - keyboards/hineybush/h65/keyboard.json | 1 - keyboards/hineybush/h65_hotswap/keyboard.json | 1 - keyboards/hineybush/h660s/keyboard.json | 1 - keyboards/hineybush/h75_singa/keyboard.json | 1 - keyboards/hineybush/h87_g2/keyboard.json | 1 - keyboards/hineybush/h87a/keyboard.json | 1 - keyboards/hineybush/h88/keyboard.json | 1 - keyboards/hineybush/h88_g2/keyboard.json | 1 - keyboards/hineybush/hbcp/keyboard.json | 1 - keyboards/hineybush/hineyg80/keyboard.json | 1 - keyboards/hineybush/ibis/keyboard.json | 1 - keyboards/hineybush/physix/keyboard.json | 1 - keyboards/hineybush/sm68/keyboard.json | 1 - keyboards/hnahkb/freyr/keyboard.json | 1 - keyboards/hnahkb/stella/keyboard.json | 1 - keyboards/holyswitch/lightweight65/keyboard.json | 1 - keyboards/holyswitch/southpaw75/keyboard.json | 1 - keyboards/horrortroll/chinese_pcb/black_e65/keyboard.json | 1 - keyboards/horrortroll/chinese_pcb/devil68_pro/keyboard.json | 1 - keyboards/horrortroll/handwired_k552/keyboard.json | 1 - keyboards/horrortroll/lemon40/keyboard.json | 1 - keyboards/hp69/keyboard.json | 1 - keyboards/hs60/v1/info.json | 1 - keyboards/hs60/v2/ansi/keyboard.json | 1 - keyboards/hs60/v2/hhkb/keyboard.json | 1 - keyboards/hs60/v2/iso/keyboard.json | 1 - keyboards/hubble/keyboard.json | 1 - keyboards/icebreaker/hotswap/keyboard.json | 1 - keyboards/idobao/id75/v1/keyboard.json | 1 - keyboards/idobao/id75/v2/keyboard.json | 1 - keyboards/idobao/id80/v2/info.json | 1 - keyboards/igloo/keyboard.json | 1 - keyboards/illuminati/is0/keyboard.json | 1 - keyboards/illusion/rosa/keyboard.json | 1 - keyboards/ilumkb/primus75/keyboard.json | 1 - keyboards/ilumkb/simpler61/keyboard.json | 1 - keyboards/ilumkb/simpler64/keyboard.json | 1 - keyboards/ilumkb/volcano660/keyboard.json | 1 - keyboards/inett_studio/sqx/hotswap/keyboard.json | 1 - keyboards/inett_studio/sqx/universal/keyboard.json | 1 - keyboards/inland/mk47/keyboard.json | 1 - keyboards/input_club/k_type/keyboard.json | 1 - keyboards/irene/keyboard.json | 1 - keyboards/iriskeyboards/keyboard.json | 1 - keyboards/iron180/keyboard.json | 1 - keyboards/j80/keyboard.json | 1 - keyboards/jae/j01/keyboard.json | 1 - keyboards/jagdpietr/drakon/keyboard.json | 1 - keyboards/jaykeeb/aumz_work/info.json | 1 - keyboards/jaykeeb/jk60/keyboard.json | 1 - keyboards/jaykeeb/jk60rgb/keyboard.json | 1 - keyboards/jaykeeb/jk65/keyboard.json | 1 - keyboards/jaykeeb/joker/keyboard.json | 1 - keyboards/jaykeeb/kamigakushi/keyboard.json | 1 - keyboards/jaykeeb/orba/keyboard.json | 1 - keyboards/jaykeeb/sebelas/keyboard.json | 1 - keyboards/jaykeeb/skyline/keyboard.json | 1 - keyboards/jaykeeb/tokki/keyboard.json | 1 - keyboards/jc65/v32a/keyboard.json | 1 - keyboards/jc65/v32u4/keyboard.json | 1 - keyboards/jd40/keyboard.json | 1 - keyboards/jd45/keyboard.json | 1 - keyboards/jels/boaty/keyboard.json | 1 - keyboards/jels/jels60/info.json | 1 - keyboards/jels/jels88/keyboard.json | 1 - keyboards/jolofsor/denial75/keyboard.json | 1 - keyboards/jukaie/jk01/keyboard.json | 1 - keyboards/kabedon/kabedon78s/keyboard.json | 1 - keyboards/kabedon/kabedon98e/keyboard.json | 1 - keyboards/kagizaraya/chidori/keyboard.json | 1 - keyboards/kagizaraya/halberd/keyboard.json | 1 - keyboards/kagizaraya/miniaxe/keyboard.json | 1 - keyboards/kagizaraya/scythe/keyboard.json | 1 - keyboards/kakunpc/business_card/alpha/keyboard.json | 1 - keyboards/kakunpc/business_card/beta/keyboard.json | 1 - keyboards/kb_elmo/67mk_e/keyboard.json | 1 - keyboards/kb_elmo/isolation/keyboard.json | 1 - keyboards/kb_elmo/qez/keyboard.json | 1 - keyboards/kb_elmo/vertex/keyboard.json | 1 - keyboards/kbdfans/bella/rgb/keyboard.json | 1 - keyboards/kbdfans/bella/rgb_iso/keyboard.json | 1 - keyboards/kbdfans/bella/soldered/keyboard.json | 1 - keyboards/kbdfans/boop65/rgb/keyboard.json | 1 - keyboards/kbdfans/bounce/75/soldered/keyboard.json | 1 - keyboards/kbdfans/jm60/keyboard.json | 1 - keyboards/kbdfans/kbd4x/keyboard.json | 1 - keyboards/kbdfans/kbd66/keyboard.json | 1 - keyboards/kbdfans/kbd67/hotswap/keyboard.json | 1 - keyboards/kbdfans/kbd67/mkii_soldered/keyboard.json | 1 - keyboards/kbdfans/kbd67/mkiirgb/info.json | 1 - keyboards/kbdfans/kbd67/mkiirgb_iso/keyboard.json | 1 - keyboards/kbdfans/kbd67/rev1/keyboard.json | 1 - keyboards/kbdfans/kbd67/rev2/keyboard.json | 1 - keyboards/kbdfans/kbd6x/keyboard.json | 1 - keyboards/kbdfans/kbd75/rev1/keyboard.json | 1 - keyboards/kbdfans/kbd75/rev2/keyboard.json | 1 - keyboards/kbdfans/kbd75rgb/keyboard.json | 1 - keyboards/kbdfans/kbd8x/keyboard.json | 1 - keyboards/kbdfans/kbdmini/keyboard.json | 1 - keyboards/kbdfans/maja/keyboard.json | 1 - keyboards/kbdfans/maja_soldered/keyboard.json | 1 - keyboards/kbdfans/niu_mini/keyboard.json | 1 - keyboards/kbdfans/odin/rgb/keyboard.json | 1 - keyboards/kbdfans/odin/soldered/keyboard.json | 1 - keyboards/kbdfans/odin/v2/keyboard.json | 1 - keyboards/kbdfans/phaseone/keyboard.json | 1 - keyboards/kbdfans/tiger80/keyboard.json | 1 - keyboards/kc60/keyboard.json | 1 - keyboards/kc60se/keyboard.json | 1 - keyboards/keebformom/keyboard.json | 1 - keyboards/keebio/dilly/keyboard.json | 1 - keyboards/keebmonkey/kbmg68/keyboard.json | 1 - keyboards/keebsforall/freebird60/keyboard.json | 1 - keyboards/keebsforall/freebird75/keyboard.json | 1 - keyboards/keebwerk/mega/ansi/keyboard.json | 1 - keyboards/keebwerk/nano_slider/keyboard.json | 1 - keyboards/keebzdotnet/fme/keyboard.json | 1 - keyboards/kelwin/utopia88/keyboard.json | 1 - keyboards/keybage/radpad/keyboard.json | 1 - keyboards/keybee/keybee65/keyboard.json | 1 - keyboards/keyboardio/atreus/keyboard.json | 1 - keyboards/keyhive/honeycomb/keyboard.json | 1 - keyboards/keyhive/lattice60/keyboard.json | 1 - keyboards/keyhive/navi10/info.json | 1 - keyboards/keyhive/southpole/keyboard.json | 1 - keyboards/keyhive/ut472/keyboard.json | 1 - keyboards/keyprez/bison/keyboard.json | 1 - keyboards/keyprez/corgi/keyboard.json | 1 - keyboards/keyprez/rhino/keyboard.json | 1 - keyboards/keyprez/unicorn/keyboard.json | 1 - keyboards/keysofkings/twokey/keyboard.json | 1 - keyboards/keyten/aperture/keyboard.json | 1 - keyboards/keyten/kt3700/keyboard.json | 1 - keyboards/keyten/kt60_m/keyboard.json | 1 - keyboards/kezewa/enter67/keyboard.json | 1 - keyboards/kezewa/enter80/keyboard.json | 1 - keyboards/kibou/fukuro/keyboard.json | 1 - keyboards/kikkou/keyboard.json | 1 - keyboards/kinesis/info.json | 1 - keyboards/kineticlabs/emu/hotswap/keyboard.json | 1 - keyboards/kineticlabs/emu/soldered/keyboard.json | 1 - keyboards/kingly_keys/ave/ortho/keyboard.json | 1 - keyboards/kingly_keys/ave/staggered/keyboard.json | 1 - keyboards/kingly_keys/little_foot/keyboard.json | 1 - keyboards/kingly_keys/romac/keyboard.json | 1 - keyboards/kingly_keys/romac_plus/keyboard.json | 1 - keyboards/kingly_keys/smd_milk/keyboard.json | 1 - keyboards/kira/kira75/keyboard.json | 1 - keyboards/kira/kira80/keyboard.json | 1 - keyboards/kk/65/keyboard.json | 1 - keyboards/knobgoblin/keyboard.json | 1 - keyboards/kona_classic/keyboard.json | 1 - keyboards/kopibeng/xt60/keyboard.json | 1 - keyboards/kopibeng/xt60_singa/keyboard.json | 1 - keyboards/kopibeng/xt65/keyboard.json | 1 - keyboards/kopibeng/xt8x/keyboard.json | 1 - keyboards/kprepublic/bm16a/v1/keyboard.json | 1 - keyboards/kprepublic/bm16a/v2/keyboard.json | 1 - keyboards/kprepublic/bm16s/keyboard.json | 1 - keyboards/kprepublic/bm40hsrgb/rev1/keyboard.json | 1 - keyboards/kprepublic/bm40hsrgb/rev2/keyboard.json | 1 - keyboards/kprepublic/bm43a/keyboard.json | 1 - keyboards/kprepublic/bm43hsrgb/keyboard.json | 1 - keyboards/kprepublic/bm60hsrgb/rev1/keyboard.json | 1 - keyboards/kprepublic/bm60hsrgb/rev2/keyboard.json | 1 - keyboards/kprepublic/bm60hsrgb_ec/rev1/keyboard.json | 1 - keyboards/kprepublic/bm60hsrgb_ec/rev2/keyboard.json | 1 - keyboards/kprepublic/bm60hsrgb_iso/rev1/keyboard.json | 1 - keyboards/kprepublic/bm60hsrgb_iso/rev2/keyboard.json | 1 - keyboards/kprepublic/bm60hsrgb_poker/rev1/keyboard.json | 1 - keyboards/kprepublic/bm60hsrgb_poker/rev2/keyboard.json | 1 - keyboards/kprepublic/bm65hsrgb/rev1/keyboard.json | 1 - keyboards/kprepublic/bm65hsrgb_iso/rev1/keyboard.json | 1 - keyboards/kprepublic/bm68hsrgb/rev1/keyboard.json | 1 - keyboards/kprepublic/bm68hsrgb/rev2/keyboard.json | 1 - keyboards/kprepublic/bm80hsrgb/keyboard.json | 1 - keyboards/kprepublic/bm80v2/keyboard.json | 1 - keyboards/kprepublic/bm80v2_iso/keyboard.json | 1 - keyboards/kprepublic/bm980hsrgb/keyboard.json | 1 - keyboards/kprepublic/cospad/keyboard.json | 1 - keyboards/kprepublic/cstc40/info.json | 1 - keyboards/kprepublic/jj40/rev1/keyboard.json | 1 - keyboards/kprepublic/jj4x4/keyboard.json | 1 - keyboards/kprepublic/jj50/rev1/keyboard.json | 1 - keyboards/kprepublic/jj50/rev2/keyboard.json | 1 - keyboards/ktec/daisy/keyboard.json | 1 - keyboards/ktec/staryu/keyboard.json | 1 - keyboards/kumaokobo/kudox_game/info.json | 1 - keyboards/kuro/kuro65/keyboard.json | 1 - keyboards/kv/revt/keyboard.json | 1 - keyboards/kwstudio/pisces/keyboard.json | 1 - keyboards/kwstudio/scorpio/keyboard.json | 1 - keyboards/kwstudio/scorpio_rev2/keyboard.json | 1 - keyboards/labbe/labbeminiv1/keyboard.json | 1 - keyboards/labyrinth75/keyboard.json | 1 - keyboards/laneware/lpad/keyboard.json | 1 - keyboards/laneware/lw67/keyboard.json | 1 - keyboards/laneware/lw75/keyboard.json | 1 - keyboards/laneware/macro1/keyboard.json | 1 - keyboards/laser_ninja/pumpkinpad/keyboard.json | 1 - keyboards/latincompass/latin17rgb/keyboard.json | 1 - keyboards/latincompass/latin47ble/keyboard.json | 1 - keyboards/latincompass/latin60rgb/keyboard.json | 1 - keyboards/latincompass/latin64ble/keyboard.json | 1 - keyboards/latincompass/latin6rgb/keyboard.json | 1 - keyboards/leafcutterlabs/bigknob/keyboard.json | 1 - keyboards/leeku/finger65/keyboard.json | 1 - keyboards/lets_split/info.json | 1 - keyboards/lfkeyboards/lfk78/revb/keyboard.json | 1 - keyboards/lfkeyboards/lfk78/revc/keyboard.json | 1 - keyboards/lfkeyboards/lfk78/revj/keyboard.json | 1 - keyboards/lfkeyboards/lfk87/info.json | 1 - keyboards/lfkeyboards/lfkpad/keyboard.json | 1 - keyboards/lfkeyboards/mini1800/info.json | 1 - keyboards/lfkeyboards/smk65/info.json | 1 - keyboards/lily58/lite_rev3/keyboard.json | 1 - keyboards/lily58/r2g/keyboard.json | 1 - keyboards/lily58/rev1/keyboard.json | 1 - keyboards/linworks/fave104/keyboard.json | 1 - keyboards/linworks/fave60/keyboard.json | 1 - keyboards/linworks/fave60a/keyboard.json | 1 - keyboards/linworks/fave65h/keyboard.json | 1 - keyboards/linworks/fave84h/keyboard.json | 1 - keyboards/linworks/fave87h/keyboard.json | 1 - keyboards/linworks/favepada/keyboard.json | 1 - keyboards/littlealby/mute/keyboard.json | 1 - keyboards/lm_keyboard/lm60n/keyboard.json | 1 - keyboards/lxxt/keyboard.json | 1 - keyboards/lyso1/lefishe/keyboard.json | 1 - keyboards/lz/erghost/keyboard.json | 1 - keyboards/m10a/keyboard.json | 1 - keyboards/magic_force/mf34/keyboard.json | 1 - keyboards/makrosu/keyboard.json | 1 - keyboards/malevolti/lyra/rev1/keyboard.json | 1 - keyboards/malevolti/superlyra/rev1/keyboard.json | 1 - keyboards/maple_computing/6ball/keyboard.json | 1 - keyboards/maple_computing/c39/keyboard.json | 1 - keyboards/maple_computing/ivy/rev1/keyboard.json | 1 - keyboards/maple_computing/jnao/keyboard.json | 1 - keyboards/maple_computing/launchpad/rev1/keyboard.json | 1 - keyboards/maple_computing/lets_split_eh/keyboard.json | 1 - keyboards/maple_computing/minidox/rev1/keyboard.json | 1 - keyboards/maple_computing/the_ruler/keyboard.json | 1 - keyboards/mariorion_v25/prod/keyboard.json | 1 - keyboards/mariorion_v25/proto/keyboard.json | 1 - keyboards/matrix/abelx/keyboard.json | 1 - keyboards/matrix/cain_re/keyboard.json | 1 - keyboards/matrix/falcon/keyboard.json | 1 - keyboards/matrix/m12og/rev1/keyboard.json | 1 - keyboards/matrix/m12og/rev2/keyboard.json | 1 - keyboards/matrix/m20add/keyboard.json | 1 - keyboards/matrix/me/keyboard.json | 1 - keyboards/matrix/noah/keyboard.json | 1 - keyboards/maxipad/info.json | 1 - keyboards/mazestudio/jocker/keyboard.json | 1 - keyboards/mb44/keyboard.json | 1 - keyboards/mechanickeys/miniashen40/keyboard.json | 1 - keyboards/mechanickeys/undead60m/keyboard.json | 1 - keyboards/mechbrewery/mb65h/keyboard.json | 1 - keyboards/mechbrewery/mb65s/keyboard.json | 1 - keyboards/mechkeys/acr60/keyboard.json | 1 - keyboards/mechkeys/alu84/keyboard.json | 1 - keyboards/mechkeys/espectro/keyboard.json | 1 - keyboards/mechkeys/mechmini/v1/keyboard.json | 1 - keyboards/mechkeys/mk60/keyboard.json | 1 - keyboards/mechlovin/adelais/info.json | 1 - keyboards/mechlovin/delphine/info.json | 1 - keyboards/mechlovin/foundation/keyboard.json | 1 - keyboards/mechlovin/hannah60rgb/rev1/keyboard.json | 1 - keyboards/mechlovin/hannah60rgb/rev2/keyboard.json | 1 - keyboards/mechlovin/hannah65/rev1/haus/keyboard.json | 1 - keyboards/mechlovin/hannah910/rev1/keyboard.json | 1 - keyboards/mechlovin/hannah910/rev2/keyboard.json | 1 - keyboards/mechlovin/hannah910/rev3/keyboard.json | 1 - keyboards/mechlovin/hex4b/info.json | 1 - keyboards/mechlovin/hex6c/keyboard.json | 1 - keyboards/mechlovin/infinity87/rev1/rogue87/keyboard.json | 1 - keyboards/mechlovin/infinity87/rev1/rouge87/keyboard.json | 1 - keyboards/mechlovin/infinity87/rev1/standard/keyboard.json | 1 - keyboards/mechlovin/infinity87/rev2/keyboard.json | 1 - keyboards/mechlovin/infinity87/rgb_rev1/keyboard.json | 1 - keyboards/mechlovin/infinity875/keyboard.json | 1 - keyboards/mechlovin/infinity88/keyboard.json | 1 - keyboards/mechlovin/infinityce/keyboard.json | 1 - keyboards/mechlovin/jay60/keyboard.json | 1 - keyboards/mechlovin/kanu/keyboard.json | 1 - keyboards/mechlovin/kay60/keyboard.json | 1 - keyboards/mechlovin/kay65/keyboard.json | 1 - keyboards/mechlovin/mechlovin9/info.json | 1 - keyboards/mechlovin/olly/bb/keyboard.json | 1 - keyboards/mechlovin/olly/jf/info.json | 1 - keyboards/mechlovin/olly/octagon/keyboard.json | 1 - keyboards/mechlovin/olly/orion/keyboard.json | 1 - keyboards/mechlovin/pisces/keyboard.json | 1 - keyboards/mechlovin/serratus/keyboard.json | 1 - keyboards/mechlovin/th1800/keyboard.json | 1 - keyboards/mechlovin/zed1800/info.json | 1 - keyboards/mechlovin/zed60/keyboard.json | 1 - keyboards/mechlovin/zed65/mono_led/keyboard.json | 1 - keyboards/mechlovin/zed65/no_backlight/cor65/keyboard.json | 1 - keyboards/mechlovin/zed65/no_backlight/retro66/keyboard.json | 1 - .../mechlovin/zed65/no_backlight/wearhaus66/keyboard.json | 1 - keyboards/meetlab/kafka60/keyboard.json | 1 - keyboards/meetlab/kafka68/keyboard.json | 1 - keyboards/meetlab/kafkasplit/keyboard.json | 1 - keyboards/meetlab/kalice/keyboard.json | 1 - keyboards/meetlab/rena/keyboard.json | 1 - keyboards/mehkee96/keyboard.json | 1 - keyboards/melgeek/mach80/info.json | 1 - keyboards/melgeek/mj61/info.json | 1 - keyboards/melgeek/mj63/info.json | 1 - keyboards/melgeek/mj64/info.json | 1 - keyboards/melgeek/mj65/rev3/keyboard.json | 1 - keyboards/melgeek/mj6xy/info.json | 1 - keyboards/melgeek/mojo68/rev1/keyboard.json | 1 - keyboards/melgeek/mojo75/rev1/keyboard.json | 1 - keyboards/melgeek/tegic/rev1/keyboard.json | 1 - keyboards/melgeek/z70ultra/rev1/keyboard.json | 1 - keyboards/meme/keyboard.json | 1 - keyboards/merge/iso_macro/keyboard.json | 1 - keyboards/mexsistor/ludmila/keyboard.json | 1 - keyboards/miller/gm862/keyboard.json | 1 - keyboards/millet/doksin/keyboard.json | 1 - keyboards/mincedshon/ecila/keyboard.json | 1 - keyboards/minimacro5/keyboard.json | 1 - keyboards/mint60/keyboard.json | 1 - keyboards/misterknife/knife66/keyboard.json | 1 - keyboards/misterknife/knife66_iso/keyboard.json | 1 - keyboards/mitosis/keyboard.json | 1 - keyboards/miuni32/keyboard.json | 1 - keyboards/mk65/keyboard.json | 1 - keyboards/mmkzoo65/keyboard.json | 1 - keyboards/mode/m256ws/keyboard.json | 1 - keyboards/mode/m60h/keyboard.json | 1 - keyboards/mode/m60h_f/keyboard.json | 1 - keyboards/mode/m60s/keyboard.json | 1 - keyboards/mode/m65ha_alpha/keyboard.json | 1 - keyboards/mode/m65hi_alpha/keyboard.json | 1 - keyboards/mode/m65s/keyboard.json | 1 - keyboards/mode/m75h/keyboard.json | 1 - keyboards/mode/m75s/keyboard.json | 1 - keyboards/mode/m80v1/m80h/keyboard.json | 1 - keyboards/mode/m80v1/m80s/keyboard.json | 1 - keyboards/mokey/ginkgo65/keyboard.json | 1 - keyboards/mokey/ginkgo65hot/keyboard.json | 1 - keyboards/mokey/ibis80/keyboard.json | 1 - keyboards/mokey/luckycat70/keyboard.json | 1 - keyboards/mokey/mokey12x2/keyboard.json | 1 - keyboards/mokey/mokey63/keyboard.json | 1 - keyboards/mokey/mokey64/keyboard.json | 1 - keyboards/mokey/xox70/keyboard.json | 1 - keyboards/mokey/xox70hot/keyboard.json | 1 - keyboards/moky/moky67/keyboard.json | 1 - keyboards/moky/moky88/keyboard.json | 1 - keyboards/momoka_ergo/keyboard.json | 1 - keyboards/momokai/aurora/keyboard.json | 1 - keyboards/momokai/tap_duo/keyboard.json | 1 - keyboards/momokai/tap_trio/keyboard.json | 1 - keyboards/monarch/keyboard.json | 1 - keyboards/monoflex60/keyboard.json | 1 - keyboards/mothwing/keyboard.json | 1 - keyboards/mountainblocks/mb17/keyboard.json | 1 - keyboards/mountainmechdesigns/teton_78/keyboard.json | 1 - keyboards/ms_sculpt/keyboard.json | 1 - keyboards/mss_studio/m63_rgb/keyboard.json | 1 - keyboards/mss_studio/m64_rgb/keyboard.json | 1 - keyboards/mt/blocked65/keyboard.json | 1 - keyboards/mt/mt40/keyboard.json | 1 - keyboards/mt/mt64rgb/keyboard.json | 1 - keyboards/mt/mt84/keyboard.json | 1 - keyboards/mt/split75/keyboard.json | 1 - keyboards/murcielago/rev1/keyboard.json | 1 - keyboards/mwstudio/mmk_3/keyboard.json | 1 - keyboards/mwstudio/mw65_black/keyboard.json | 1 - keyboards/mwstudio/mw65_rgb/keyboard.json | 1 - keyboards/mwstudio/mw660/keyboard.json | 1 - keyboards/mwstudio/mw75/keyboard.json | 1 - keyboards/mwstudio/mw75r2/keyboard.json | 1 - keyboards/mwstudio/mw80/keyboard.json | 1 - keyboards/mykeyclub/jris65/hotswap/keyboard.json | 1 - keyboards/nacly/splitreus62/keyboard.json | 1 - keyboards/nacly/ua62/keyboard.json | 1 - keyboards/navi60/keyboard.json | 1 - keyboards/ncc1701kb/keyboard.json | 1 - keyboards/nek_type_a/keyboard.json | 1 - keyboards/nemui/keyboard.json | 1 - keyboards/neokeys/g67/element_hs/keyboard.json | 1 - keyboards/neokeys/g67/hotswap/keyboard.json | 1 - keyboards/neokeys/g67/soldered/keyboard.json | 1 - keyboards/neson_design/700e/keyboard.json | 1 - keyboards/neson_design/810e/keyboard.json | 1 - keyboards/neson_design/n6/keyboard.json | 1 - keyboards/neson_design/nico/keyboard.json | 1 - keyboards/newgame40/keyboard.json | 1 - keyboards/nibell/micropad4x4/keyboard.json | 1 - keyboards/nibiria/stream15/keyboard.json | 1 - keyboards/nightly_boards/adellein/keyboard.json | 1 - keyboards/nightly_boards/alter/rev1/keyboard.json | 1 - keyboards/nightly_boards/alter_lite/keyboard.json | 1 - keyboards/nightly_boards/conde60/keyboard.json | 1 - keyboards/nightly_boards/n2/keyboard.json | 1 - keyboards/nightly_boards/n40_o/keyboard.json | 1 - keyboards/nightly_boards/n60_s/keyboard.json | 1 - keyboards/nightly_boards/n87/keyboard.json | 1 - keyboards/nightly_boards/n9/keyboard.json | 1 - keyboards/nightly_boards/octopad/keyboard.json | 1 - keyboards/nightly_boards/octopadplus/keyboard.json | 1 - keyboards/nightly_boards/paraluman/keyboard.json | 1 - keyboards/ning/tiny_board/tb16_rgb/keyboard.json | 1 - keyboards/nix_studio/n60_a/keyboard.json | 1 - keyboards/nix_studio/oxalys80/keyboard.json | 1 - keyboards/novelkeys/nk65/info.json | 1 - keyboards/novelkeys/novelpad/keyboard.json | 1 - keyboards/noxary/220/keyboard.json | 1 - keyboards/noxary/260/keyboard.json | 1 - keyboards/noxary/268_2/keyboard.json | 1 - keyboards/noxary/268_2_rgb/keyboard.json | 1 - keyboards/noxary/280/keyboard.json | 1 - keyboards/noxary/378/keyboard.json | 1 - keyboards/noxary/valhalla/keyboard.json | 1 - keyboards/noxary/valhalla_v2/keyboard.json | 1 - keyboards/noxary/x268/keyboard.json | 1 - keyboards/numatreus/keyboard.json | 1 - keyboards/obosob/arch_36/keyboard.json | 1 - keyboards/ocean/gin_v2/keyboard.json | 1 - keyboards/ocean/slamz/keyboard.json | 1 - keyboards/ocean/stealth/keyboard.json | 1 - keyboards/ocean/wang_ergo/keyboard.json | 1 - keyboards/ocean/wang_v2/keyboard.json | 1 - keyboards/odelia/keyboard.json | 1 - keyboards/ogre/ergo_single/keyboard.json | 1 - keyboards/ogre/ergo_split/keyboard.json | 1 - keyboards/ok60/keyboard.json | 1 - keyboards/omkbd/ergodash/mini/keyboard.json | 1 - keyboards/omkbd/ergodash/rev1/keyboard.json | 1 - keyboards/omkbd/runner3680/3x6/keyboard.json | 1 - keyboards/omkbd/runner3680/3x7/keyboard.json | 1 - keyboards/omkbd/runner3680/3x8/keyboard.json | 1 - keyboards/omkbd/runner3680/4x6/keyboard.json | 1 - keyboards/omkbd/runner3680/4x7/keyboard.json | 1 - keyboards/omkbd/runner3680/4x8/keyboard.json | 1 - keyboards/omkbd/runner3680/5x6/keyboard.json | 1 - keyboards/omkbd/runner3680/5x6_5x8/keyboard.json | 1 - keyboards/omkbd/runner3680/5x7/keyboard.json | 1 - keyboards/omkbd/runner3680/5x8/keyboard.json | 1 - keyboards/orange75/keyboard.json | 1 - keyboards/org60/keyboard.json | 1 - keyboards/owlab/jelly_evolv/info.json | 1 - keyboards/owlab/spring/keyboard.json | 1 - keyboards/owlab/suit80/ansi/keyboard.json | 1 - keyboards/owlab/suit80/iso/keyboard.json | 1 - keyboards/p3d/eu_isolation/keyboard.json | 1 - keyboards/p3d/q4z/keyboard.json | 1 - keyboards/p3d/spacey/keyboard.json | 1 - keyboards/p3d/synapse/keyboard.json | 1 - keyboards/pabile/p20/info.json | 1 - keyboards/panc40/keyboard.json | 1 - keyboards/panc60/keyboard.json | 1 - keyboards/papercranekeyboards/gerald65/keyboard.json | 1 - keyboards/pdxkbc/keyboard.json | 1 - keyboards/pearlboards/atlas/keyboard.json | 1 - keyboards/pearlboards/pandora/keyboard.json | 1 - keyboards/pearlboards/pearl/keyboard.json | 1 - keyboards/pearlboards/zeus/keyboard.json | 1 - keyboards/pearlboards/zeuspad/keyboard.json | 1 - keyboards/pegasus/keyboard.json | 1 - keyboards/percent/booster/keyboard.json | 1 - keyboards/percent/canoe/keyboard.json | 1 - keyboards/percent/canoe_gen2/keyboard.json | 1 - keyboards/percent/skog/keyboard.json | 1 - keyboards/percent/skog_lite/keyboard.json | 1 - keyboards/phase_studio/titan65/hotswap/keyboard.json | 1 - keyboards/phase_studio/titan65/soldered/keyboard.json | 1 - keyboards/phdesign/phac/keyboard.json | 1 - keyboards/phentech/rpk_001/keyboard.json | 1 - keyboards/pimentoso/paddino02/rev1/keyboard.json | 1 - keyboards/pimentoso/paddino02/rev2/left/keyboard.json | 1 - keyboards/pimentoso/paddino02/rev2/right/keyboard.json | 1 - keyboards/pinky/3/keyboard.json | 1 - keyboards/pinky/4/keyboard.json | 1 - keyboards/pixelspace/capsule65i/keyboard.json | 1 - keyboards/pixelspace/shadow80/keyboard.json | 1 - keyboards/pkb65/keyboard.json | 1 - keyboards/playkbtw/ca66/keyboard.json | 1 - keyboards/playkbtw/helen80/keyboard.json | 1 - keyboards/playkbtw/pk60/keyboard.json | 1 - keyboards/playkbtw/pk64rgb/keyboard.json | 1 - keyboards/plume/plume65/keyboard.json | 1 - keyboards/plut0nium/0x3e/keyboard.json | 1 - keyboards/plywrks/ahgase/keyboard.json | 1 - keyboards/plywrks/allaro/keyboard.json | 1 - keyboards/plywrks/ji_eun/keyboard.json | 1 - keyboards/plywrks/lune/keyboard.json | 1 - keyboards/plywrks/ply8x/hotswap/keyboard.json | 1 - keyboards/plywrks/ply8x/solder/keyboard.json | 1 - keyboards/poker87c/keyboard.json | 1 - keyboards/poker87d/keyboard.json | 1 - keyboards/polilla/rev1/keyboard.json | 1 - keyboards/polycarbdiet/s20/keyboard.json | 1 - keyboards/primekb/prime_r/keyboard.json | 1 - keyboards/printedpad/keyboard.json | 1 - keyboards/program_yoink/ortho/keyboard.json | 1 - keyboards/program_yoink/staggered/keyboard.json | 1 - keyboards/projectcain/relic/keyboard.json | 1 - keyboards/projectcain/vault45/keyboard.json | 1 - keyboards/projectd/65/projectd_65_ansi/keyboard.json | 1 - keyboards/projectd/75/ansi/keyboard.json | 1 - keyboards/projectd/75/iso/keyboard.json | 1 - keyboards/projectkb/signature87/keyboard.json | 1 - keyboards/prototypist/oceanographer/keyboard.json | 1 - keyboards/prototypist/pt60/keyboard.json | 1 - keyboards/prototypist/pt80/keyboard.json | 1 - keyboards/pteron36/keyboard.json | 1 - keyboards/pteropus/keyboard.json | 1 - keyboards/puck/keyboard.json | 1 - keyboards/punk75/keyboard.json | 1 - keyboards/purin/keyboard.json | 1 - keyboards/qck75/v1/keyboard.json | 1 - keyboards/qpockets/eggman/keyboard.json | 1 - keyboards/qpockets/space_space/rev1/keyboard.json | 1 - keyboards/qpockets/space_space/rev2/keyboard.json | 1 - keyboards/qpockets/wanten/keyboard.json | 1 - keyboards/quad_h/lb75/keyboard.json | 1 - keyboards/quadrum/delta/keyboard.json | 1 - keyboards/quantrik/kyuu/keyboard.json | 1 - keyboards/qwertlekeys/calice/keyboard.json | 1 - keyboards/qwertykeys/qk65/hotswap/keyboard.json | 1 - keyboards/qwertykeys/qk65/solder/keyboard.json | 1 - keyboards/qwertyydox/rev1/keyboard.json | 1 - keyboards/rabbit/rabbit68/keyboard.json | 1 - keyboards/rainkeebs/rainkeeb/keyboard.json | 1 - keyboards/ramlord/witf/keyboard.json | 1 - keyboards/rart/rart45/keyboard.json | 1 - keyboards/rart/rart4x4/keyboard.json | 1 - keyboards/rart/rart60/keyboard.json | 1 - keyboards/rart/rart67/keyboard.json | 1 - keyboards/rart/rart67m/keyboard.json | 1 - keyboards/rart/rart75/keyboard.json | 1 - keyboards/rart/rart75hs/keyboard.json | 1 - keyboards/rart/rart75m/keyboard.json | 1 - keyboards/rart/rart80/keyboard.json | 1 - keyboards/rart/rartand/keyboard.json | 1 - keyboards/rart/rartlice/keyboard.json | 1 - keyboards/rart/rartlite/keyboard.json | 1 - keyboards/rart/rartpad/keyboard.json | 1 - keyboards/rate/pistachio/info.json | 1 - keyboards/rate/pistachio_mp/keyboard.json | 1 - keyboards/rationalist/ratio65_hotswap/rev_a/keyboard.json | 1 - keyboards/rationalist/ratio65_solder/rev_a/keyboard.json | 1 - keyboards/rect44/keyboard.json | 1 - keyboards/redox/rev1/info.json | 1 - keyboards/redox/wireless/keyboard.json | 1 - keyboards/redox_media/keyboard.json | 1 - keyboards/redscarf_i/keyboard.json | 1 - keyboards/redscarf_iiplus/verb/keyboard.json | 1 - keyboards/redscarf_iiplus/verc/keyboard.json | 1 - keyboards/redscarf_iiplus/verd/keyboard.json | 1 - keyboards/relapsekb/or87/keyboard.json | 1 - keyboards/retro_75/keyboard.json | 1 - keyboards/reversestudio/decadepad/keyboard.json | 1 - keyboards/reviung/reviung33/keyboard.json | 1 - keyboards/reviung/reviung34/keyboard.json | 1 - keyboards/reviung/reviung39/keyboard.json | 1 - keyboards/reviung/reviung41/keyboard.json | 1 - keyboards/reviung/reviung5/keyboard.json | 1 - keyboards/reviung/reviung53/keyboard.json | 1 - keyboards/reviung/reviung61/keyboard.json | 1 - keyboards/rgbkb/sol/rev1/keyboard.json | 1 - keyboards/rgbkb/sol/rev2/keyboard.json | 1 - keyboards/rgbkb/sol3/rev1/keyboard.json | 1 - keyboards/rgbkb/zen/rev1/keyboard.json | 1 - keyboards/rgbkb/zen/rev2/keyboard.json | 1 - keyboards/rmi_kb/aelith/keyboard.json | 1 - keyboards/rmi_kb/chevron/keyboard.json | 1 - keyboards/rmi_kb/equator/keyboard.json | 1 - keyboards/rmi_kb/herringbone/pro/keyboard.json | 1 - keyboards/rmi_kb/herringbone/v1/keyboard.json | 1 - keyboards/rmi_kb/mona/v1/keyboard.json | 1 - keyboards/rmi_kb/mona/v1_1/keyboard.json | 1 - keyboards/rmi_kb/mona/v32a/keyboard.json | 1 - keyboards/rmi_kb/squishy65/keyboard.json | 1 - keyboards/rmi_kb/squishyfrl/keyboard.json | 1 - keyboards/rmi_kb/squishytkl/keyboard.json | 1 - keyboards/rmi_kb/tkl_ff/info.json | 1 - keyboards/rmi_kb/wete/v1/keyboard.json | 1 - keyboards/rmi_kb/wete/v2/keyboard.json | 1 - keyboards/rmkeebs/rm_fullsize/keyboard.json | 1 - keyboards/rocketboard_16/keyboard.json | 1 - keyboards/rominronin/katana60/rev1/keyboard.json | 1 - keyboards/rot13labs/rotc0n/keyboard.json | 1 - keyboards/rpiguy9907/southpaw66/keyboard.json | 1 - keyboards/ryanbaekr/rb1/keyboard.json | 1 - keyboards/ryanbaekr/rb18/keyboard.json | 1 - keyboards/ryanbaekr/rb69/keyboard.json | 1 - keyboards/ryanbaekr/rb86/keyboard.json | 1 - keyboards/ryanbaekr/rb87/keyboard.json | 1 - keyboards/ryanskidmore/rskeys100/keyboard.json | 1 - keyboards/sakura_workshop/fuji75/info.json | 1 - keyboards/salane/ncr80alpsskfl/keyboard.json | 1 - keyboards/salane/starryfrl/keyboard.json | 1 - keyboards/salicylic_acid3/guide68/keyboard.json | 1 - keyboards/sam/s80/keyboard.json | 1 - keyboards/sam/sg81m/keyboard.json | 1 - keyboards/sanctified/dystopia/keyboard.json | 1 - keyboards/sandwich/keeb68/keyboard.json | 1 - keyboards/satt/comet46/keyboard.json | 1 - keyboards/satt/vision/keyboard.json | 1 - keyboards/sauce/mild/keyboard.json | 1 - keyboards/sawnsprojects/amber80/solder/keyboard.json | 1 - keyboards/sawnsprojects/bunnygirl65/keyboard.json | 1 - keyboards/sawnsprojects/eclipse/eclipse60/keyboard.json | 1 - keyboards/sawnsprojects/eclipse/tinyneko/keyboard.json | 1 - keyboards/sawnsprojects/krush/krush65/hotswap/keyboard.json | 1 - keyboards/sawnsprojects/krush/krush65/solder/keyboard.json | 1 - keyboards/sawnsprojects/okayu/info.json | 1 - keyboards/sawnsprojects/plaque80/keyboard.json | 1 - keyboards/sawnsprojects/re65/keyboard.json | 1 - keyboards/sawnsprojects/satxri6key/keyboard.json | 1 - keyboards/sawnsprojects/vcl65/solder/keyboard.json | 1 - keyboards/sck/gtm/keyboard.json | 1 - keyboards/sck/neiso/keyboard.json | 1 - keyboards/sck/osa/keyboard.json | 1 - keyboards/sentraq/s60_x/info.json | 1 - keyboards/sentraq/s65_plus/keyboard.json | 1 - keyboards/sentraq/s65_x/keyboard.json | 1 - keyboards/shambles/keyboard.json | 1 - keyboards/shandoncodes/mino_plus/hotswap/keyboard.json | 1 - keyboards/shandoncodes/mino_plus/soldered/keyboard.json | 1 - keyboards/shandoncodes/riot_pad/keyboard.json | 1 - keyboards/sharkoon/skiller_sgk50_s2/keyboard.json | 1 - keyboards/sharkoon/skiller_sgk50_s3/keyboard.json | 1 - keyboards/sharkoon/skiller_sgk50_s4/keyboard.json | 1 - keyboards/shorty/keyboard.json | 1 - keyboards/shostudio/arc/keyboard.json | 1 - keyboards/sidderskb/majbritt/rev1/keyboard.json | 1 - keyboards/sirius/uni660/rev1/keyboard.json | 1 - keyboards/sirius/uni660/rev2/ansi/keyboard.json | 1 - keyboards/sirius/uni660/rev2/iso/keyboard.json | 1 - keyboards/sixkeyboard/keyboard.json | 1 - keyboards/skeletn87/hotswap/keyboard.json | 1 - keyboards/skeletn87/soldered/keyboard.json | 1 - keyboards/skippys_custom_pcs/roopad/keyboard.json | 1 - keyboards/smallkeyboard/keyboard.json | 1 - keyboards/smithrune/iron160/iron160_h/keyboard.json | 1 - keyboards/smithrune/iron160/iron160_s/keyboard.json | 1 - keyboards/smithrune/iron165r2/info.json | 1 - keyboards/smithrune/iron180/keyboard.json | 1 - keyboards/smithrune/iron180v2/v2h/keyboard.json | 1 - keyboards/smithrune/iron180v2/v2s/keyboard.json | 1 - keyboards/smithrune/magnus/m75h/keyboard.json | 1 - keyboards/smithrune/magnus/m75s/keyboard.json | 1 - keyboards/smk60/keyboard.json | 1 - keyboards/snampad/keyboard.json | 1 - keyboards/snes_macropad/keyboard.json | 1 - keyboards/soda/cherish/keyboard.json | 1 - keyboards/soy20/keyboard.json | 1 - keyboards/spaceholdings/nebula12/keyboard.json | 1 - keyboards/spaceholdings/nebula12b/keyboard.json | 1 - keyboards/spaceholdings/nebula68/keyboard.json | 1 - keyboards/spaceholdings/nebula68b/info.json | 1 - keyboards/spaceman/2_milk/keyboard.json | 1 - keyboards/spaceman/pancake/rev1/info.json | 1 - keyboards/spaceman/pancake/rev2/keyboard.json | 1 - keyboards/spaceman/yun65/keyboard.json | 1 - keyboards/specskeys/keyboard.json | 1 - keyboards/spiderisland/split78/keyboard.json | 1 - keyboards/split67/keyboard.json | 1 - keyboards/splitish/keyboard.json | 1 - keyboards/stello65/beta/keyboard.json | 1 - keyboards/stello65/hs_rev1/keyboard.json | 1 - keyboards/stello65/sl_rev1/keyboard.json | 1 - keyboards/stratos/keyboard.json | 1 - keyboards/studiokestra/frl84/keyboard.json | 1 - keyboards/studiokestra/galatea/rev1/keyboard.json | 1 - keyboards/studiokestra/galatea/rev2/keyboard.json | 1 - keyboards/studiokestra/galatea/rev3/keyboard.json | 1 - keyboards/suavity/ehan/keyboard.json | 1 - keyboards/subatomic/keyboard.json | 1 - keyboards/superuser/ext/keyboard.json | 1 - keyboards/superuser/frl/keyboard.json | 1 - keyboards/superuser/tkl/keyboard.json | 1 - keyboards/swiss/keyboard.json | 1 - keyboards/switchplate/southpaw_fullsize/keyboard.json | 1 - keyboards/switchplate/switchplate910/keyboard.json | 1 - keyboards/sx60/keyboard.json | 1 - keyboards/synthandkeys/bento_box/keyboard.json | 1 - keyboards/synthandkeys/the_debit_card/keyboard.json | 1 - keyboards/tada68/keyboard.json | 1 - keyboards/takashicompany/baumkuchen/keyboard.json | 1 - keyboards/takashicompany/center_enter/keyboard.json | 1 - keyboards/takashicompany/ejectix/keyboard.json | 1 - keyboards/takashicompany/ergomirage/keyboard.json | 1 - keyboards/takashicompany/jourkey/keyboard.json | 1 - keyboards/takashicompany/klec_01/keyboard.json | 1 - keyboards/takashicompany/klec_02/keyboard.json | 1 - keyboards/takashicompany/minidivide/keyboard.json | 1 - keyboards/takashicompany/minidivide_max/keyboard.json | 1 - keyboards/takashicompany/palmslave/keyboard.json | 1 - keyboards/takashicompany/tightwriter/keyboard.json | 1 - keyboards/takashiski/otaku_split/rev0/keyboard.json | 1 - keyboards/taleguers/taleguers75/keyboard.json | 1 - keyboards/tanuki/keyboard.json | 1 - keyboards/technika/keyboard.json | 1 - keyboards/telophase/keyboard.json | 1 - keyboards/terrazzo/keyboard.json | 1 - keyboards/tetris/keyboard.json | 1 - keyboards/tg4x/keyboard.json | 1 - keyboards/tg67/keyboard.json | 1 - keyboards/tgr/910/keyboard.json | 1 - keyboards/tgr/910ce/keyboard.json | 1 - keyboards/tgr/alice/keyboard.json | 1 - keyboards/tgr/jane/v2/keyboard.json | 1 - keyboards/tgr/jane/v2ce/keyboard.json | 1 - keyboards/tgr/tris/keyboard.json | 1 - keyboards/the_royal/liminal/keyboard.json | 1 - keyboards/thevankeyboards/bananasplit/keyboard.json | 1 - keyboards/thevankeyboards/caravan/keyboard.json | 1 - keyboards/thevankeyboards/jetvan/keyboard.json | 1 - keyboards/thevankeyboards/minivan/keyboard.json | 1 - keyboards/thevankeyboards/roadkit/keyboard.json | 1 - keyboards/tkc/california/keyboard.json | 1 - keyboards/tkc/candybar/lefty/keyboard.json | 1 - keyboards/tkc/candybar/lefty_r3/keyboard.json | 1 - keyboards/tkc/candybar/righty/keyboard.json | 1 - keyboards/tkc/candybar/righty_r3/keyboard.json | 1 - keyboards/tkc/godspeed75/keyboard.json | 1 - keyboards/tkc/m0lly/keyboard.json | 1 - keyboards/tkc/osav2/keyboard.json | 1 - keyboards/tkc/portico/keyboard.json | 1 - keyboards/tkc/portico68v2/keyboard.json | 1 - keyboards/tkc/portico75/keyboard.json | 1 - keyboards/tkc/tkc1800/keyboard.json | 1 - keyboards/tkc/tkl_ab87/keyboard.json | 1 - keyboards/tmo50/keyboard.json | 1 - keyboards/toad/keyboard.json | 1 - keyboards/toffee_studio/blueberry/keyboard.json | 1 - keyboards/tominabox1/bigboy/keyboard.json | 1 - keyboards/tominabox1/le_chiffre/info.json | 1 - keyboards/tominabox1/littlefoot_lx/rev1/keyboard.json | 1 - keyboards/tominabox1/littlefoot_lx/rev2/keyboard.json | 1 - keyboards/tominabox1/qaz/keyboard.json | 1 - keyboards/tominabox1/underscore33/rev1/keyboard.json | 1 - keyboards/tominabox1/underscore33/rev2/keyboard.json | 1 - keyboards/touchpad/keyboard.json | 1 - keyboards/tr60w/keyboard.json | 1 - keyboards/trainpad/keyboard.json | 1 - keyboards/treasure/type9/keyboard.json | 1 - keyboards/treasure/type9s3/keyboard.json | 1 - keyboards/trnthsn/e8ghty/info.json | 1 - keyboards/trnthsn/e8ghtyneo/info.json | 1 - keyboards/trnthsn/s6xty/keyboard.json | 1 - keyboards/trnthsn/s6xty5neor2/info.json | 1 - keyboards/ubest/vn/keyboard.json | 1 - keyboards/uk78/keyboard.json | 1 - keyboards/unikeyboard/diverge3/keyboard.json | 1 - keyboards/unikeyboard/divergetm2/keyboard.json | 1 - keyboards/unikeyboard/felix/keyboard.json | 1 - keyboards/unikorn/keyboard.json | 1 - keyboards/uranuma/keyboard.json | 1 - keyboards/utd80/keyboard.json | 1 - keyboards/v60_type_r/keyboard.json | 1 - keyboards/vertex/angle65/keyboard.json | 1 - keyboards/vertex/arc60/keyboard.json | 1 - keyboards/vertex/arc60h/keyboard.json | 1 - keyboards/vertex/cycle8/keyboard.json | 1 - keyboards/viktus/omnikey_bh/keyboard.json | 1 - keyboards/viktus/smolka/keyboard.json | 1 - keyboards/viktus/sp_mini/keyboard.json | 1 - keyboards/viktus/vkr94/keyboard.json | 1 - keyboards/viktus/z150_bh/keyboard.json | 1 - keyboards/vinhcatba/uncertainty/keyboard.json | 1 - keyboards/vitamins_included/info.json | 1 - keyboards/void/voidhhkb_hotswap/keyboard.json | 1 - keyboards/waterfowl/keyboard.json | 1 - keyboards/wavtype/foundation/keyboard.json | 1 - keyboards/wavtype/p01_ultra/keyboard.json | 1 - keyboards/weirdo/geminate60/keyboard.json | 1 - keyboards/weirdo/kelowna/rgb64/keyboard.json | 1 - keyboards/weirdo/ls_60/keyboard.json | 1 - keyboards/weirdo/naiping/np64/keyboard.json | 1 - keyboards/weirdo/naiping/nphhkb/keyboard.json | 1 - keyboards/weirdo/naiping/npminila/keyboard.json | 1 - keyboards/weirdo/tiger910/keyboard.json | 1 - keyboards/wekey/polaris/keyboard.json | 1 - keyboards/wekey/we27/keyboard.json | 1 - keyboards/westfoxtrot/aanzee/keyboard.json | 1 - keyboards/westfoxtrot/cyclops/keyboard.json | 1 - keyboards/westfoxtrot/prophet/keyboard.json | 1 - keyboards/windstudio/wind_x/r1/keyboard.json | 1 - keyboards/winkeyless/b87/keyboard.json | 1 - keyboards/winkeyless/bface/keyboard.json | 1 - keyboards/winkeyless/bmini/keyboard.json | 1 - keyboards/winry/winry25tc/keyboard.json | 1 - keyboards/winry/winry315/keyboard.json | 1 - keyboards/wolf/kuku65/keyboard.json | 1 - keyboards/wolf/m60_b/keyboard.json | 1 - keyboards/wolf/m6_c/keyboard.json | 1 - keyboards/wolf/neely65/keyboard.json | 1 - keyboards/wolf/ryujin/keyboard.json | 1 - keyboards/wolf/sabre/keyboard.json | 1 - keyboards/wolf/silhouette/keyboard.json | 1 - keyboards/wolf/twilight/keyboard.json | 1 - keyboards/wolf/ziggurat/keyboard.json | 1 - keyboards/wolfmarkclub/wm1/keyboard.json | 1 - keyboards/woodkeys/bigseries/1key/keyboard.json | 1 - keyboards/woodkeys/bigseries/2key/keyboard.json | 1 - keyboards/woodkeys/bigseries/3key/keyboard.json | 1 - keyboards/woodkeys/bigseries/4key/keyboard.json | 1 - keyboards/woodkeys/meira/info.json | 1 - keyboards/woodkeys/scarletbandana/keyboard.json | 1 - keyboards/wsk/alpha9/keyboard.json | 1 - keyboards/wsk/g4m3ralpha/keyboard.json | 1 - keyboards/x16/keyboard.json | 1 - keyboards/xbows/knight/keyboard.json | 1 - keyboards/xbows/knight_plus/keyboard.json | 1 - keyboards/xbows/nature/keyboard.json | 1 - keyboards/xbows/numpad/keyboard.json | 1 - keyboards/xbows/ranger/keyboard.json | 1 - keyboards/xbows/woody/keyboard.json | 1 - keyboards/xelus/dawn60/info.json | 1 - keyboards/xelus/dharma/keyboard.json | 1 - keyboards/xelus/la_plus/keyboard.json | 1 - keyboards/xelus/ninjin/keyboard.json | 1 - keyboards/xelus/pachi/mini_32u4/keyboard.json | 1 - keyboards/xelus/pachi/rev1/keyboard.json | 1 - keyboards/xelus/pachi/rgb/rev1/keyboard.json | 1 - keyboards/xelus/pachi/rgb/rev2/keyboard.json | 1 - keyboards/xelus/rs108/keyboard.json | 1 - keyboards/xelus/rs60/info.json | 1 - keyboards/xelus/snap96/keyboard.json | 1 - keyboards/xelus/trinityxttkl/keyboard.json | 1 - keyboards/xelus/valor/rev1/keyboard.json | 1 - keyboards/xelus/valor/rev2/keyboard.json | 1 - keyboards/xelus/valor/rev3/keyboard.json | 1 - keyboards/xelus/valor_frl_tkl/info.json | 1 - keyboards/xelus/xs108/keyboard.json | 1 - keyboards/xelus/xs60/hotswap/keyboard.json | 1 - keyboards/xelus/xs60/soldered/keyboard.json | 1 - keyboards/xiaomi/mk02/keyboard.json | 1 - keyboards/xiudi/xd68/keyboard.json | 1 - keyboards/xiudi/xd75/keyboard.json | 1 - keyboards/xiudi/xd84/keyboard.json | 1 - keyboards/xiudi/xd84pro/keyboard.json | 1 - keyboards/xiudi/xd96/keyboard.json | 1 - keyboards/xmmx/keyboard.json | 1 - keyboards/xw60/keyboard.json | 1 - keyboards/yampad/keyboard.json | 1 - keyboards/ydkb/chili/keyboard.json | 1 - keyboards/ydkb/just60/keyboard.json | 1 - keyboards/ydkb/yd68/keyboard.json | 1 - keyboards/ydkb/ydpm40/keyboard.json | 1 - keyboards/ymdk/bface/keyboard.json | 1 - keyboards/ymdk/melody96/hotswap/keyboard.json | 1 - keyboards/ymdk/melody96/soldered/keyboard.json | 1 - keyboards/ymdk/sp64/keyboard.json | 1 - keyboards/ymdk/yd60mq/info.json | 1 - keyboards/ymdk/ym68/keyboard.json | 1 - keyboards/ymdk/ymd21/v2/keyboard.json | 1 - keyboards/ymdk/ymd40/air40/keyboard.json | 1 - keyboards/ymdk/ymd40/v2/keyboard.json | 1 - keyboards/ymdk/ymd75/rev1/keyboard.json | 1 - keyboards/ymdk/ymd75/rev2/keyboard.json | 1 - keyboards/ymdk/ymd75/rev3/keyboard.json | 1 - keyboards/ymdk/ymd75/rev4/iso/keyboard.json | 1 - keyboards/ymdk/ymd96/keyboard.json | 1 - keyboards/yncognito/batpad/keyboard.json | 1 - keyboards/yoichiro/lunakey_macro/keyboard.json | 1 - keyboards/yoichiro/lunakey_mini/keyboard.json | 1 - keyboards/yushakobo/ergo68/keyboard.json | 1 - keyboards/yushakobo/navpad/10_helix_r/keyboard.json | 1 - keyboards/yushakobo/quick7/keyboard.json | 1 - keyboards/ziggurat/keyboard.json | 1 - keyboards/zlant/keyboard.json | 1 - keyboards/zvecr/split_blackpill/keyboard.json | 1 - keyboards/zvecr/zv48/info.json | 1 - keyboards/zwag/zwag75/keyboard.json | 1 - 1389 files changed, 1 insertion(+), 1390 deletions(-) diff --git a/keyboards/0_sixty/info.json b/keyboards/0_sixty/info.json index ce76f808b2f..ebe4d396257 100644 --- a/keyboards/0_sixty/info.json +++ b/keyboards/0_sixty/info.json @@ -1,6 +1,5 @@ { "manufacturer": "ven0mtr0n", - "url": "", "maintainer": "vinamarora8", "usb": { "vid": "0x7654", diff --git a/keyboards/0xc7/61key/keyboard.json b/keyboards/0xc7/61key/keyboard.json index ab5127db38a..6b1e2e809e9 100644 --- a/keyboards/0xc7/61key/keyboard.json +++ b/keyboards/0xc7/61key/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "61Key", "manufacturer": "0xC7", - "url": "", "maintainer": "RealEmanGaming", "usb": { "vid": "0xE117", diff --git a/keyboards/0xcb/tutelpad/keyboard.json b/keyboards/0xcb/tutelpad/keyboard.json index 2885377262a..2367e6ce2e9 100644 --- a/keyboards/0xcb/tutelpad/keyboard.json +++ b/keyboards/0xcb/tutelpad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "TutelPad", "manufacturer": "ItsFiremanSam", - "url": "", "maintainer": "ItsFiremanSam", "usb": { "vid": "0xCB00", diff --git a/keyboards/1k/keyboard.json b/keyboards/1k/keyboard.json index 440856d0bd4..269f11782a7 100644 --- a/keyboards/1k/keyboard.json +++ b/keyboards/1k/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "1K", "manufacturer": "MakotoKurauchi", - "url": "", "maintainer": "MakotoKurauchi", "usb": { "vid": "0x0009", diff --git a/keyboards/1upkeyboards/1up60hse/keyboard.json b/keyboards/1upkeyboards/1up60hse/keyboard.json index 990b51c1f84..9f1d0c0ff4d 100644 --- a/keyboards/1upkeyboards/1up60hse/keyboard.json +++ b/keyboards/1upkeyboards/1up60hse/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "1up60hse", "manufacturer": "1upkeyboards", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x6F75", diff --git a/keyboards/1upkeyboards/1up60rgb/keyboard.json b/keyboards/1upkeyboards/1up60rgb/keyboard.json index f4ba1112511..5b0d9ef5d4c 100644 --- a/keyboards/1upkeyboards/1up60rgb/keyboard.json +++ b/keyboards/1upkeyboards/1up60rgb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "1UP RGB Underglow PCB", "manufacturer": "1upkeyboards", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x6F75", diff --git a/keyboards/1upkeyboards/super16/keyboard.json b/keyboards/1upkeyboards/super16/keyboard.json index 9da4168d471..f43d5d70371 100644 --- a/keyboards/1upkeyboards/super16/keyboard.json +++ b/keyboards/1upkeyboards/super16/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "super16", "manufacturer": "1upkeyboards", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x6F75", diff --git a/keyboards/1upkeyboards/super16v2/keyboard.json b/keyboards/1upkeyboards/super16v2/keyboard.json index 652b03006e1..2e423d7d5a2 100644 --- a/keyboards/1upkeyboards/super16v2/keyboard.json +++ b/keyboards/1upkeyboards/super16v2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "super16v2", "manufacturer": "1upkeyboards", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x6F75", diff --git a/keyboards/1upkeyboards/sweet16/info.json b/keyboards/1upkeyboards/sweet16/info.json index 5fb70bb8e9c..65ce40a6583 100644 --- a/keyboards/1upkeyboards/sweet16/info.json +++ b/keyboards/1upkeyboards/sweet16/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Sweet16", "manufacturer": "1up Keyboards", - "url": "", "maintainer": "skullydazed", "features": { "bootmagic": false, diff --git a/keyboards/1upkeyboards/sweet16/v1/keyboard.json b/keyboards/1upkeyboards/sweet16/v1/keyboard.json index 3ac73ce8eb0..161ca659507 100644 --- a/keyboards/1upkeyboards/sweet16/v1/keyboard.json +++ b/keyboards/1upkeyboards/sweet16/v1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Sweet16", "manufacturer": "1up Keyboards", - "url": "", "maintainer": "skullydazed", "usb": { "vid": "0x6F75", diff --git a/keyboards/2key2crawl/keyboard.json b/keyboards/2key2crawl/keyboard.json index fec55c811a6..252f619e34e 100644 --- a/keyboards/2key2crawl/keyboard.json +++ b/keyboards/2key2crawl/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "2Key2Crawl", "manufacturer": "WoodKeys.click", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/30wer/keyboard.json b/keyboards/30wer/keyboard.json index 606c13f7aad..7c0326125c5 100644 --- a/keyboards/30wer/keyboard.json +++ b/keyboards/30wer/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "30wer", "manufacturer": "8o7wer", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x1234", diff --git a/keyboards/40percentclub/25/keyboard.json b/keyboards/40percentclub/25/keyboard.json index e23d0578c3f..ceaff11454f 100644 --- a/keyboards/40percentclub/25/keyboard.json +++ b/keyboards/40percentclub/25/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "The 5x5 Keyboard", "manufacturer": "di0ib", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4025", diff --git a/keyboards/40percentclub/4pack/keyboard.json b/keyboards/40percentclub/4pack/keyboard.json index a114e97dbbd..6be4ab5e8a7 100644 --- a/keyboards/40percentclub/4pack/keyboard.json +++ b/keyboards/40percentclub/4pack/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "4pack", "manufacturer": "40percentclub", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4025", diff --git a/keyboards/40percentclub/4x4/keyboard.json b/keyboards/40percentclub/4x4/keyboard.json index 735a3865da3..cd5e0f4c0c7 100644 --- a/keyboards/40percentclub/4x4/keyboard.json +++ b/keyboards/40percentclub/4x4/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "The 4x4 Keyboard", "manufacturer": "di0ib", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4025", diff --git a/keyboards/40percentclub/5x5/keyboard.json b/keyboards/40percentclub/5x5/keyboard.json index 039d9fe47b1..1a766444893 100644 --- a/keyboards/40percentclub/5x5/keyboard.json +++ b/keyboards/40percentclub/5x5/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "The 5x5 Keyboard", "manufacturer": "di0ib", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4025", diff --git a/keyboards/40percentclub/6lit/keyboard.json b/keyboards/40percentclub/6lit/keyboard.json index 52a8914d7d7..96644a7a444 100644 --- a/keyboards/40percentclub/6lit/keyboard.json +++ b/keyboards/40percentclub/6lit/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "The 6lit Macropad", "manufacturer": "di0ib", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4025", diff --git a/keyboards/40percentclub/foobar/keyboard.json b/keyboards/40percentclub/foobar/keyboard.json index ec568b23827..c0a77c4e9aa 100644 --- a/keyboards/40percentclub/foobar/keyboard.json +++ b/keyboards/40percentclub/foobar/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "The foobar Keyboard", "manufacturer": "di0ib", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4025", diff --git a/keyboards/40percentclub/gherkin/info.json b/keyboards/40percentclub/gherkin/info.json index 0c9f609cdcc..644001bc05a 100644 --- a/keyboards/40percentclub/gherkin/info.json +++ b/keyboards/40percentclub/gherkin/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Gherkin", "manufacturer": "40 Percent Club", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4025", diff --git a/keyboards/40percentclub/half_n_half/keyboard.json b/keyboards/40percentclub/half_n_half/keyboard.json index 4f18d235b22..21ca55f1620 100644 --- a/keyboards/40percentclub/half_n_half/keyboard.json +++ b/keyboards/40percentclub/half_n_half/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "half_n_half", "manufacturer": "di0ib", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4025", diff --git a/keyboards/40percentclub/i75/info.json b/keyboards/40percentclub/i75/info.json index a7124adec22..197667cba5a 100644 --- a/keyboards/40percentclub/i75/info.json +++ b/keyboards/40percentclub/i75/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "i75", "manufacturer": "di0ib", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4025", diff --git a/keyboards/40percentclub/luddite/keyboard.json b/keyboards/40percentclub/luddite/keyboard.json index a9f79d73695..774aed72dbe 100644 --- a/keyboards/40percentclub/luddite/keyboard.json +++ b/keyboards/40percentclub/luddite/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Luddite", "manufacturer": "di0ib", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4025", diff --git a/keyboards/40percentclub/mf68/keyboard.json b/keyboards/40percentclub/mf68/keyboard.json index 45585d5e479..161c4345af9 100644 --- a/keyboards/40percentclub/mf68/keyboard.json +++ b/keyboards/40percentclub/mf68/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "MF68", "manufacturer": "di0ib", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4025", diff --git a/keyboards/40percentclub/nano/keyboard.json b/keyboards/40percentclub/nano/keyboard.json index 547aed16f9f..39aa46098ff 100644 --- a/keyboards/40percentclub/nano/keyboard.json +++ b/keyboards/40percentclub/nano/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Nano", "manufacturer": "di0ib", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4025", diff --git a/keyboards/40percentclub/nori/keyboard.json b/keyboards/40percentclub/nori/keyboard.json index 968e74e19e1..feb66f95019 100644 --- a/keyboards/40percentclub/nori/keyboard.json +++ b/keyboards/40percentclub/nori/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "The nori Keyboard", "manufacturer": "di0ib", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4025", diff --git a/keyboards/40percentclub/polyandry/info.json b/keyboards/40percentclub/polyandry/info.json index 49b8bedbe32..25e560f780f 100644 --- a/keyboards/40percentclub/polyandry/info.json +++ b/keyboards/40percentclub/polyandry/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Polypad", "manufacturer": "di0ib", - "url": "", "maintainer": "QMK", "features": { "bootmagic": true, diff --git a/keyboards/40percentclub/tomato/keyboard.json b/keyboards/40percentclub/tomato/keyboard.json index c0b526cbc6b..ecc7b195705 100644 --- a/keyboards/40percentclub/tomato/keyboard.json +++ b/keyboards/40percentclub/tomato/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Tomato", "manufacturer": "40 Percent Club", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4025", diff --git a/keyboards/40percentclub/ut47/keyboard.json b/keyboards/40percentclub/ut47/keyboard.json index 62e4a940a18..00c8edef69d 100644 --- a/keyboards/40percentclub/ut47/keyboard.json +++ b/keyboards/40percentclub/ut47/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "ut47", "manufacturer": "40percent.club", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4025", diff --git a/keyboards/45_ats/keyboard.json b/keyboards/45_ats/keyboard.json index 5e5465f2643..17ef0369995 100644 --- a/keyboards/45_ats/keyboard.json +++ b/keyboards/45_ats/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "45ATS", "manufacturer": "Abec13", - "url": "", "maintainer": "The-Royal", "usb": { "vid": "0xAB13", diff --git a/keyboards/4pplet/aekiso60/info.json b/keyboards/4pplet/aekiso60/info.json index 80d5ab233d0..50dd5e55df7 100644 --- a/keyboards/4pplet/aekiso60/info.json +++ b/keyboards/4pplet/aekiso60/info.json @@ -1,6 +1,5 @@ { "manufacturer": "4pplet", - "url": "", "maintainer": "4pplet", "usb": { "vid": "0x4444" diff --git a/keyboards/4pplet/perk60_iso/rev_a/keyboard.json b/keyboards/4pplet/perk60_iso/rev_a/keyboard.json index 56e7a25de4b..50babdab711 100644 --- a/keyboards/4pplet/perk60_iso/rev_a/keyboard.json +++ b/keyboards/4pplet/perk60_iso/rev_a/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Perk60 ISO Rev A", "manufacturer": "4pplet", - "url": "", "maintainer": "4pplet", "usb": { "vid": "0x4444", diff --git a/keyboards/4pplet/waffling80/info.json b/keyboards/4pplet/waffling80/info.json index 72fcd4615b0..c003b16fed2 100644 --- a/keyboards/4pplet/waffling80/info.json +++ b/keyboards/4pplet/waffling80/info.json @@ -1,6 +1,5 @@ { "manufacturer": "4pplet", - "url": "", "maintainer": "4pplet", "usb": { "vid": "0x4444" diff --git a/keyboards/5keys/keyboard.json b/keyboards/5keys/keyboard.json index 7a40d1014d6..7282db2922d 100644 --- a/keyboards/5keys/keyboard.json +++ b/keyboards/5keys/keyboard.json @@ -14,7 +14,6 @@ ["F4","F5","F6","F7","B1"] ] }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/7c8/framework/keyboard.json b/keyboards/7c8/framework/keyboard.json index 33f9cfc591f..a6ebdfbfc61 100644 --- a/keyboards/7c8/framework/keyboard.json +++ b/keyboards/7c8/framework/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Framework", "manufacturer": "7c8", - "url": "", "maintainer": "stevennguyen", "usb": { "vid": "0x77C8", diff --git a/keyboards/9key/keyboard.json b/keyboards/9key/keyboard.json index c1e95e3f081..f63fdf3607d 100644 --- a/keyboards/9key/keyboard.json +++ b/keyboards/9key/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "9Key", "manufacturer": "Bishop Keyboards", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/abatskeyboardclub/nayeon/keyboard.json b/keyboards/abatskeyboardclub/nayeon/keyboard.json index a3fac207f40..4949b170729 100644 --- a/keyboards/abatskeyboardclub/nayeon/keyboard.json +++ b/keyboards/abatskeyboardclub/nayeon/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Nayeon", "manufacturer": "Abats Keyboard Club", - "url": "", "maintainer": "ramonimbao", "layout_aliases": { "LAYOUT_ansi": "LAYOUT_tkl_f13_ansi_tsangan", diff --git a/keyboards/acheron/apollo/87h/info.json b/keyboards/acheron/apollo/87h/info.json index ac47f594b58..41606da15f8 100644 --- a/keyboards/acheron/apollo/87h/info.json +++ b/keyboards/acheron/apollo/87h/info.json @@ -1,6 +1,5 @@ { "manufacturer": "AcheronProject", - "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x4150" diff --git a/keyboards/acheron/apollo/87htsc/keyboard.json b/keyboards/acheron/apollo/87htsc/keyboard.json index 55229706b1d..e40f18da924 100644 --- a/keyboards/acheron/apollo/87htsc/keyboard.json +++ b/keyboards/acheron/apollo/87htsc/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Apollo87H-T-SC", "manufacturer": "AcheronProject", - "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x4150", diff --git a/keyboards/acheron/apollo/88htsc/keyboard.json b/keyboards/acheron/apollo/88htsc/keyboard.json index 9b9482874f6..02831f8c626 100644 --- a/keyboards/acheron/apollo/88htsc/keyboard.json +++ b/keyboards/acheron/apollo/88htsc/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Apollo88H-T-SC", "manufacturer": "AcheronProject", - "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x4150", diff --git a/keyboards/acheron/athena/info.json b/keyboards/acheron/athena/info.json index 4f9d3b61e61..e10cb288f04 100644 --- a/keyboards/acheron/athena/info.json +++ b/keyboards/acheron/athena/info.json @@ -1,6 +1,5 @@ { "manufacturer": "AcheronProject", - "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0xAC11" diff --git a/keyboards/acheron/austin/keyboard.json b/keyboards/acheron/austin/keyboard.json index a3df5dd75d3..140e398ccec 100755 --- a/keyboards/acheron/austin/keyboard.json +++ b/keyboards/acheron/austin/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Austin", "manufacturer": "DriftMechanics", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xAC11", diff --git a/keyboards/acheron/lasgweloth/keyboard.json b/keyboards/acheron/lasgweloth/keyboard.json index 35d30e89b26..85769d0732a 100644 --- a/keyboards/acheron/lasgweloth/keyboard.json +++ b/keyboards/acheron/lasgweloth/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Lasgweloth", "manufacturer": "AcheronProject", - "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x4150", diff --git a/keyboards/acheron/themis/info.json b/keyboards/acheron/themis/info.json index 4f9d3b61e61..e10cb288f04 100644 --- a/keyboards/acheron/themis/info.json +++ b/keyboards/acheron/themis/info.json @@ -1,6 +1,5 @@ { "manufacturer": "AcheronProject", - "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0xAC11" diff --git a/keyboards/ada/ada1800mini/keyboard.json b/keyboards/ada/ada1800mini/keyboard.json index 80e8ee64aa5..37c0be1582a 100644 --- a/keyboards/ada/ada1800mini/keyboard.json +++ b/keyboards/ada/ada1800mini/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "ada1800mini", "manufacturer": "Ada", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xADA0", diff --git a/keyboards/ada/infinity81/keyboard.json b/keyboards/ada/infinity81/keyboard.json index 40c5bd2f180..f1f928697bf 100644 --- a/keyboards/ada/infinity81/keyboard.json +++ b/keyboards/ada/infinity81/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "infinity81", "manufacturer": "Ada", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xADA0", diff --git a/keyboards/adkb96/rev1/keyboard.json b/keyboards/adkb96/rev1/keyboard.json index 7cf92f15163..5def3c9da3e 100644 --- a/keyboards/adkb96/rev1/keyboard.json +++ b/keyboards/adkb96/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "ADKB96", "manufacturer": "Bit Trade One", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x00A5", diff --git a/keyboards/aeboards/aegis/keyboard.json b/keyboards/aeboards/aegis/keyboard.json index 26f5f2a0c1c..63705b70434 100644 --- a/keyboards/aeboards/aegis/keyboard.json +++ b/keyboards/aeboards/aegis/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Aegis", "manufacturer": "AEboards", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4145", diff --git a/keyboards/aeboards/constellation/rev1/keyboard.json b/keyboards/aeboards/constellation/rev1/keyboard.json index 5a43568d57c..4c21a8f3b97 100644 --- a/keyboards/aeboards/constellation/rev1/keyboard.json +++ b/keyboards/aeboards/constellation/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Constellation Rev1", "manufacturer": "AEBoards", - "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x4145", diff --git a/keyboards/aeboards/constellation/rev2/keyboard.json b/keyboards/aeboards/constellation/rev2/keyboard.json index f296b523e0b..e4add7a63a0 100644 --- a/keyboards/aeboards/constellation/rev2/keyboard.json +++ b/keyboards/aeboards/constellation/rev2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Constellation Rev2", "manufacturer": "AEBoards", - "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x4145", diff --git a/keyboards/aeboards/constellation/rev3/keyboard.json b/keyboards/aeboards/constellation/rev3/keyboard.json index ab39641b74b..306561409c8 100644 --- a/keyboards/aeboards/constellation/rev3/keyboard.json +++ b/keyboards/aeboards/constellation/rev3/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Constellation Rev3", "manufacturer": "AEBoards", - "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x4145", diff --git a/keyboards/aeboards/ext65/info.json b/keyboards/aeboards/ext65/info.json index 3f4b0bbc00c..e4c57bd1440 100644 --- a/keyboards/aeboards/ext65/info.json +++ b/keyboards/aeboards/ext65/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Ext65", "manufacturer": "AEBoards", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4145" diff --git a/keyboards/aeboards/ext65/rev1/keyboard.json b/keyboards/aeboards/ext65/rev1/keyboard.json index 1d105505e53..80370f60452 100644 --- a/keyboards/aeboards/ext65/rev1/keyboard.json +++ b/keyboards/aeboards/ext65/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Ext65 Rev1", "manufacturer": "AEBoards", - "url": "", "maintainer": "qmk", "usb": { "pid": "0xAE65", diff --git a/keyboards/aeboards/ext65/rev2/keyboard.json b/keyboards/aeboards/ext65/rev2/keyboard.json index ab7cceeefb3..ca2777d36c5 100644 --- a/keyboards/aeboards/ext65/rev2/keyboard.json +++ b/keyboards/aeboards/ext65/rev2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Ext65 Rev2", "manufacturer": "AEBoards", - "url": "", "maintainer": "qmk", "usb": { "pid": "0xA652", diff --git a/keyboards/aeboards/ext65/rev3/keyboard.json b/keyboards/aeboards/ext65/rev3/keyboard.json index 8c8051fc444..867e46e5199 100644 --- a/keyboards/aeboards/ext65/rev3/keyboard.json +++ b/keyboards/aeboards/ext65/rev3/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Ext65 Rev3", "manufacturer": "AEBoards", - "url": "", "maintainer": "qmk", "usb": { "pid": "0xA653", diff --git a/keyboards/aeboards/satellite/rev1/keyboard.json b/keyboards/aeboards/satellite/rev1/keyboard.json index 8b90704efa4..f9355171fbd 100644 --- a/keyboards/aeboards/satellite/rev1/keyboard.json +++ b/keyboards/aeboards/satellite/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Satellite Rev1", "manufacturer": "AEBoards", - "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x4145", diff --git a/keyboards/ah/haven80/info.json b/keyboards/ah/haven80/info.json index bd878151549..1a8c33890a5 100644 --- a/keyboards/ah/haven80/info.json +++ b/keyboards/ah/haven80/info.json @@ -1,6 +1,5 @@ { "manufacturer": "Atelier_Haven", - "url": "", "maintainer": "Freather", "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/ai/keyboard.json b/keyboards/ai/keyboard.json index 8f4039b4d2e..d25459b507f 100644 --- a/keyboards/ai/keyboard.json +++ b/keyboards/ai/keyboard.json @@ -17,7 +17,6 @@ "rows": ["D0", "D4", "C6", "D7", "D1"] }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/ai03/andromeda/keyboard.json b/keyboards/ai03/andromeda/keyboard.json index d085b91ad17..0ad082436ac 100644 --- a/keyboards/ai03/andromeda/keyboard.json +++ b/keyboards/ai03/andromeda/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Andromeda", "manufacturer": "ai03 Design Studio", - "url": "", "maintainer": "ai03", "usb": { "vid": "0xA103", diff --git a/keyboards/ai03/equinox/info.json b/keyboards/ai03/equinox/info.json index 7c2cc465005..a6c424e1873 100644 --- a/keyboards/ai03/equinox/info.json +++ b/keyboards/ai03/equinox/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Equinox", "manufacturer": "ai03 Design Studio", - "url": "", "maintainer": "ai03", "usb": { "vid": "0xA103", diff --git a/keyboards/ai03/orbit_x/keyboard.json b/keyboards/ai03/orbit_x/keyboard.json index d039969b37c..859ff47085c 100644 --- a/keyboards/ai03/orbit_x/keyboard.json +++ b/keyboards/ai03/orbit_x/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "OrbitX", "manufacturer": "ai03 Design Studio", - "url": "", "maintainer": "ai03", "usb": { "vid": "0xA103", diff --git a/keyboards/al1/keyboard.json b/keyboards/al1/keyboard.json index 7e6440560ff..aed02e8adea 100644 --- a/keyboards/al1/keyboard.json +++ b/keyboards/al1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "AL1", "manufacturer": "Alsoran", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x544C", diff --git a/keyboards/alf/x11/keyboard.json b/keyboards/alf/x11/keyboard.json index c571705dc10..03960934353 100644 --- a/keyboards/alf/x11/keyboard.json +++ b/keyboards/alf/x11/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "X1.1", "manufacturer": "ALF", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4146", diff --git a/keyboards/alf/x2/keyboard.json b/keyboards/alf/x2/keyboard.json index 9dd011c7f1c..ec3eae179a8 100644 --- a/keyboards/alf/x2/keyboard.json +++ b/keyboards/alf/x2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "X2", "manufacturer": "ALF", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/alhenkb/macropad5x4/keyboard.json b/keyboards/alhenkb/macropad5x4/keyboard.json index 1fb472255d3..7415068b2c2 100644 --- a/keyboards/alhenkb/macropad5x4/keyboard.json +++ b/keyboards/alhenkb/macropad5x4/keyboard.json @@ -16,7 +16,6 @@ "rows": ["F5", "F7", "B3", "B6", "B5"], "cols": ["F4", "F6", "B1", "B2"] }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/alpine65/keyboard.json b/keyboards/alpine65/keyboard.json index 36bba880a8f..ae372d2a085 100644 --- a/keyboards/alpine65/keyboard.json +++ b/keyboards/alpine65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Alpine65", "manufacturer": "Bitmap Designs", - "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x6680", diff --git a/keyboards/alps64/keyboard.json b/keyboards/alps64/keyboard.json index a6a60478f81..d8f5fb22b54 100644 --- a/keyboards/alps64/keyboard.json +++ b/keyboards/alps64/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Alps64", "manufacturer": "Hasu", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x6873", diff --git a/keyboards/amjkeyboard/amj40/keyboard.json b/keyboards/amjkeyboard/amj40/keyboard.json index de536cb55e4..c3bbe720397 100644 --- a/keyboards/amjkeyboard/amj40/keyboard.json +++ b/keyboards/amjkeyboard/amj40/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "AMJ40", "manufacturer": "Han Chen", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x00D8", diff --git a/keyboards/amjkeyboard/amj60/keyboard.json b/keyboards/amjkeyboard/amj60/keyboard.json index a2cfd1b6e12..f16d178b06c 100644 --- a/keyboards/amjkeyboard/amj60/keyboard.json +++ b/keyboards/amjkeyboard/amj60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "AMJ60", "manufacturer": "Han Chen", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x00D8", diff --git a/keyboards/amjkeyboard/amj66/keyboard.json b/keyboards/amjkeyboard/amj66/keyboard.json index 72646e4fc71..f674452f32b 100644 --- a/keyboards/amjkeyboard/amj66/keyboard.json +++ b/keyboards/amjkeyboard/amj66/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "AMJ66", "manufacturer": "AMJKeyboard", - "url": "", "maintainer": "FSund, qmk", "usb": { "vid": "0x00D8", diff --git a/keyboards/amjkeyboard/amj84/keyboard.json b/keyboards/amjkeyboard/amj84/keyboard.json index b544ffc8b3c..d5f1f11a4db 100644 --- a/keyboards/amjkeyboard/amj84/keyboard.json +++ b/keyboards/amjkeyboard/amj84/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "AMJ84", "manufacturer": "Han Chen", - "url": "", "maintainer": "peepeetee", "usb": { "vid": "0x00D8", diff --git a/keyboards/amjkeyboard/amj96/keyboard.json b/keyboards/amjkeyboard/amj96/keyboard.json index 23a131c6150..ea02e6170ca 100644 --- a/keyboards/amjkeyboard/amj96/keyboard.json +++ b/keyboards/amjkeyboard/amj96/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "AMJ96", "manufacturer": "Han Chen", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x00D8", diff --git a/keyboards/amjkeyboard/amjpad/keyboard.json b/keyboards/amjkeyboard/amjpad/keyboard.json index e331f3af191..3fa60ed3d7a 100644 --- a/keyboards/amjkeyboard/amjpad/keyboard.json +++ b/keyboards/amjkeyboard/amjpad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "PAD", "manufacturer": "AMJ", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x00D8", diff --git a/keyboards/anavi/macropad8/keyboard.json b/keyboards/anavi/macropad8/keyboard.json index 50381ce8a87..27d34c18f38 100644 --- a/keyboards/anavi/macropad8/keyboard.json +++ b/keyboards/anavi/macropad8/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Macro Pad 8", "manufacturer": "ANAVI", - "url": "", "maintainer": "leon-anavi", "usb": { "vid": "0xCEEB", diff --git a/keyboards/aplyard/aplx6/info.json b/keyboards/aplyard/aplx6/info.json index 9f86182a336..a0624a7d498 100644 --- a/keyboards/aplyard/aplx6/info.json +++ b/keyboards/aplyard/aplx6/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Aplx6", "manufacturer": "Aplyard", - "url": "", "maintainer": "Aplyard", "usb": { "vid": "0xE0E0" diff --git a/keyboards/arabica37/rev1/keyboard.json b/keyboards/arabica37/rev1/keyboard.json index 63c4fe2940e..d1db9a276c5 100644 --- a/keyboards/arabica37/rev1/keyboard.json +++ b/keyboards/arabica37/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Arabica3/7", "manufacturer": "CalciumNitride", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/archetype/minervalx/keyboard.json b/keyboards/archetype/minervalx/keyboard.json index 0d01ccf485b..3523e95afbc 100644 --- a/keyboards/archetype/minervalx/keyboard.json +++ b/keyboards/archetype/minervalx/keyboard.json @@ -18,7 +18,6 @@ "rows": ["GP11", "GP12", "GP13", "GP14", "GP15"] }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0100", diff --git a/keyboards/ares/keyboard.json b/keyboards/ares/keyboard.json index f1e650397eb..b6e5544511f 100644 --- a/keyboards/ares/keyboard.json +++ b/keyboards/ares/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Ares", "manufacturer": "LSJ", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x20A0", diff --git a/keyboards/artemis/paragon/info.json b/keyboards/artemis/paragon/info.json index 63fefe8c55c..93c547faa9f 100644 --- a/keyboards/artemis/paragon/info.json +++ b/keyboards/artemis/paragon/info.json @@ -17,7 +17,6 @@ "lto": true }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x3449", diff --git a/keyboards/at_at/660m/keyboard.json b/keyboards/at_at/660m/keyboard.json index a9c5af73f85..f42c0b7cbb6 100644 --- a/keyboards/at_at/660m/keyboard.json +++ b/keyboards/at_at/660m/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "660M", "manufacturer": "AT-AT", - "url": "", "maintainer": "adrientetar", "usb": { "vid": "0xA22A", diff --git a/keyboards/atreus/info.json b/keyboards/atreus/info.json index 1a33591ab56..cf53b506a0d 100644 --- a/keyboards/atreus/info.json +++ b/keyboards/atreus/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Atreus", "manufacturer": "Technomancy", - "url": "", "maintainer": "qmk", "features": { "bootmagic": false, diff --git a/keyboards/atreus62/keyboard.json b/keyboards/atreus62/keyboard.json index c24c02e71e6..5fb786fa988 100644 --- a/keyboards/atreus62/keyboard.json +++ b/keyboards/atreus62/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Atreus62", "manufacturer": "Profet", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x5072", diff --git a/keyboards/aves65/keyboard.json b/keyboards/aves65/keyboard.json index 3ad686f83a1..9d8a70b78c9 100644 --- a/keyboards/aves65/keyboard.json +++ b/keyboards/aves65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Aves65", "manufacturer": "I/O Keyboards", - "url": "", "maintainer": "Hund", "usb": { "vid": "0x9991", diff --git a/keyboards/axolstudio/helpo/keyboard.json b/keyboards/axolstudio/helpo/keyboard.json index c90c967788e..4af362c596d 100644 --- a/keyboards/axolstudio/helpo/keyboard.json +++ b/keyboards/axolstudio/helpo/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Helpo", "manufacturer": "Axolstudio", - "url": "", "maintainer": "kb-elmo", "usb": { "vid": "0x525C", diff --git a/keyboards/baguette/keyboard.json b/keyboards/baguette/keyboard.json index 001757f8618..1d86c43ad94 100644 --- a/keyboards/baguette/keyboard.json +++ b/keyboards/baguette/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Baguette", "manufacturer": "Yiancar", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/bahm/aster_ergo/keyboard.json b/keyboards/bahm/aster_ergo/keyboard.json index 5545e024098..963764d4971 100644 --- a/keyboards/bahm/aster_ergo/keyboard.json +++ b/keyboards/bahm/aster_ergo/keyboard.json @@ -17,7 +17,6 @@ "cols": ["A10", "A9", "A8", "B15", "B14", "B13", "B12", "B1", "B0", "A7", "A6", "B4", "B3", "A15", "A5", "A2", "A1"], "rows": ["B7", "B6", "B5", "B11", "B10", "A4"] }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x8701", diff --git a/keyboards/balloondogcaps/tr90/keyboard.json b/keyboards/balloondogcaps/tr90/keyboard.json index 42071ba3f00..957953fd69a 100644 --- a/keyboards/balloondogcaps/tr90/keyboard.json +++ b/keyboards/balloondogcaps/tr90/keyboard.json @@ -17,7 +17,6 @@ "rows": ["F0", "F1", "F4"] }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/balloondogcaps/tr90pm/keyboard.json b/keyboards/balloondogcaps/tr90pm/keyboard.json index c5badb7836e..e095c1eda1b 100644 --- a/keyboards/balloondogcaps/tr90pm/keyboard.json +++ b/keyboards/balloondogcaps/tr90pm/keyboard.json @@ -17,7 +17,6 @@ "rows": ["C6", "D7", "E6"] }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0002", diff --git a/keyboards/bantam44/keyboard.json b/keyboards/bantam44/keyboard.json index ac534af6a99..d5deffa01b8 100644 --- a/keyboards/bantam44/keyboard.json +++ b/keyboards/bantam44/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Bantam44", "manufacturer": "Bantam Keyboards", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/beatervan/keyboard.json b/keyboards/beatervan/keyboard.json index 27d0f3e5352..5bc27c82655 100644 --- a/keyboards/beatervan/keyboard.json +++ b/keyboards/beatervan/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "beatervan", "manufacturer": "OJ", - "url": "", "maintainer": "OJ", "usb": { "vid": "0x6F7A", diff --git a/keyboards/beekeeb/piantor_pro/keyboard.json b/keyboards/beekeeb/piantor_pro/keyboard.json index ad4890ae684..e7605acd1ad 100644 --- a/keyboards/beekeeb/piantor_pro/keyboard.json +++ b/keyboards/beekeeb/piantor_pro/keyboard.json @@ -17,7 +17,6 @@ "rows": ["GP7", "GP8", "GP9", "GP10"] }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0002", diff --git a/keyboards/bestway/keyboard.json b/keyboards/bestway/keyboard.json index 66856115f8b..2f4541b2687 100644 --- a/keyboards/bestway/keyboard.json +++ b/keyboards/bestway/keyboard.json @@ -35,7 +35,6 @@ "led_count": 3, "saturation_steps": 8 }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0xBB05", diff --git a/keyboards/bfake/keyboard.json b/keyboards/bfake/keyboard.json index 4774e282d7a..8892d811124 100644 --- a/keyboards/bfake/keyboard.json +++ b/keyboards/bfake/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "B.fake", "manufacturer": "NotWinkeyless", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x20A0", diff --git a/keyboards/biacco42/ergo42/rev1/keyboard.json b/keyboards/biacco42/ergo42/rev1/keyboard.json index c75e9d1c511..4639bf9639f 100644 --- a/keyboards/biacco42/ergo42/rev1/keyboard.json +++ b/keyboards/biacco42/ergo42/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Ergo42", "manufacturer": "Biacco42", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xBC42", diff --git a/keyboards/biacco42/meishi/keyboard.json b/keyboards/biacco42/meishi/keyboard.json index b7d751d83e0..99f7c5debbe 100644 --- a/keyboards/biacco42/meishi/keyboard.json +++ b/keyboards/biacco42/meishi/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Meishi", "manufacturer": "Biacco42", - "url": "", "maintainer": "Biacco42", "usb": { "vid": "0xBC42", diff --git a/keyboards/biacco42/meishi2/keyboard.json b/keyboards/biacco42/meishi2/keyboard.json index 2f553681bc7..137c429ff16 100644 --- a/keyboards/biacco42/meishi2/keyboard.json +++ b/keyboards/biacco42/meishi2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "meishi2", "manufacturer": "Biacco42", - "url": "", "maintainer": "biacco42", "usb": { "vid": "0xBC42", diff --git a/keyboards/bioi/f60/keyboard.json b/keyboards/bioi/f60/keyboard.json index 8974a68e027..67fa1c1c9a2 100644 --- a/keyboards/bioi/f60/keyboard.json +++ b/keyboards/bioi/f60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BIOI F60", "manufacturer": "Basic IO Instruments", - "url": "", "maintainer": "kb-elmo", "usb": { "vid": "0x8101", diff --git a/keyboards/bioi/g60ble/keyboard.json b/keyboards/bioi/g60ble/keyboard.json index 8b24556b37f..ad1aed6048b 100644 --- a/keyboards/bioi/g60ble/keyboard.json +++ b/keyboards/bioi/g60ble/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BIOI G60 BLE", "manufacturer": "Basic IO Instruments", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x6583", diff --git a/keyboards/bioi/morgan65/keyboard.json b/keyboards/bioi/morgan65/keyboard.json index 5606233f2ad..0182392706f 100644 --- a/keyboards/bioi/morgan65/keyboard.json +++ b/keyboards/bioi/morgan65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Morgan65", "manufacturer": "Basic IO Instruments", - "url": "", "maintainer": "scottywei", "usb": { "vid": "0x8101", diff --git a/keyboards/bioi/s65/keyboard.json b/keyboards/bioi/s65/keyboard.json index 56d53b54cf5..73baaf98c4c 100644 --- a/keyboards/bioi/s65/keyboard.json +++ b/keyboards/bioi/s65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BIOI S65", "manufacturer": "Basic IO Instruments", - "url": "", "maintainer": "scottywei", "usb": { "vid": "0x8101", diff --git a/keyboards/blank/blank01/keyboard.json b/keyboards/blank/blank01/keyboard.json index 672a292def3..5e29f192f2b 100644 --- a/keyboards/blank/blank01/keyboard.json +++ b/keyboards/blank/blank01/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BLANK.01", "manufacturer": "BLANK", - "url": "", "maintainer": "gkeyboard", "usb": { "vid": "0x424C", diff --git a/keyboards/blaster75/keyboard.json b/keyboards/blaster75/keyboard.json index 81cc789da6a..93288150ba0 100644 --- a/keyboards/blaster75/keyboard.json +++ b/keyboards/blaster75/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Blaster 75", "manufacturer": "Altain", - "url": "", "maintainer": "Altain", "usb": { "vid": "0xA122", diff --git a/keyboards/blockboy/ac980mini/keyboard.json b/keyboards/blockboy/ac980mini/keyboard.json index ad844102dc6..8675daad8d6 100644 --- a/keyboards/blockboy/ac980mini/keyboard.json +++ b/keyboards/blockboy/ac980mini/keyboard.json @@ -21,7 +21,6 @@ "rows": ["D0", "D1", "D2", "D3", "D5"] }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x6060", diff --git a/keyboards/blockey/keyboard.json b/keyboards/blockey/keyboard.json index 9710606a522..e9c5ceafa14 100644 --- a/keyboards/blockey/keyboard.json +++ b/keyboards/blockey/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BlocKey", "manufacturer": "Eucalyn", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/boardwalk/keyboard.json b/keyboards/boardwalk/keyboard.json index 6fb7673ec8a..d0cb4b1383b 100644 --- a/keyboards/boardwalk/keyboard.json +++ b/keyboards/boardwalk/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Boardwalk", "manufacturer": "shensmobile", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xCDCD", diff --git a/keyboards/bobpad/keyboard.json b/keyboards/bobpad/keyboard.json index feddbbf222f..d96c875011e 100644 --- a/keyboards/bobpad/keyboard.json +++ b/keyboards/bobpad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "bobPad", "manufacturer": "Desiboards", - "url": "", "maintainer": "Ananya Kirti", "usb": { "vid": "0x416B", diff --git a/keyboards/bolsa/bolsalice/keyboard.json b/keyboards/bolsa/bolsalice/keyboard.json index 8ada9b55461..377da8a1d2f 100644 --- a/keyboards/bolsa/bolsalice/keyboard.json +++ b/keyboards/bolsa/bolsalice/keyboard.json @@ -42,7 +42,6 @@ "diode_direction": "COL2ROW", "processor": "atmega32u4", "bootloader": "atmel-dfu", - "url": "", "maintainer": "qmk", "community_layouts": ["alice", "alice_split_bs"], "layouts": { diff --git a/keyboards/bolsa/damapad/keyboard.json b/keyboards/bolsa/damapad/keyboard.json index 5a47d123229..a5d95add816 100644 --- a/keyboards/bolsa/damapad/keyboard.json +++ b/keyboards/bolsa/damapad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Damapad", "manufacturer": "Bolsa Keyboard Supply", - "url": "", "maintainer": "matthewdias", "usb": { "vid": "0x6D64", diff --git a/keyboards/boston_meetup/2019/keyboard.json b/keyboards/boston_meetup/2019/keyboard.json index 40a390b0a8c..4f07e0c631c 100644 --- a/keyboards/boston_meetup/2019/keyboard.json +++ b/keyboards/boston_meetup/2019/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Boston Meetup Board", "manufacturer": "ishtob", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFB30", diff --git a/keyboards/botanicalkeyboards/fm2u/keyboard.json b/keyboards/botanicalkeyboards/fm2u/keyboard.json index 907d5d46b87..8c2714ade32 100644 --- a/keyboards/botanicalkeyboards/fm2u/keyboard.json +++ b/keyboards/botanicalkeyboards/fm2u/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "FM2U", "manufacturer": "Botanical Keyboards", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x6969", diff --git a/keyboards/box75/keyboard.json b/keyboards/box75/keyboard.json index 89afff17161..9c5c245f20e 100644 --- a/keyboards/box75/keyboard.json +++ b/keyboards/box75/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BOX75", "manufacturer": "Lin Design", - "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x7668", diff --git a/keyboards/bpiphany/four_banger/keyboard.json b/keyboards/bpiphany/four_banger/keyboard.json index a368fbfe61b..d74864d18f6 100644 --- a/keyboards/bpiphany/four_banger/keyboard.json +++ b/keyboards/bpiphany/four_banger/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Four Banger", "manufacturer": "1up Keyboards", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/bpiphany/frosty_flake/info.json b/keyboards/bpiphany/frosty_flake/info.json index 33a2f792d97..bfec449931f 100644 --- a/keyboards/bpiphany/frosty_flake/info.json +++ b/keyboards/bpiphany/frosty_flake/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Frosty Flake", "manufacturer": "Bathroom Epiphanies", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/bpiphany/ghost_squid/keyboard.json b/keyboards/bpiphany/ghost_squid/keyboard.json index 85f6f0fa8e8..68901ba316a 100644 --- a/keyboards/bpiphany/ghost_squid/keyboard.json +++ b/keyboards/bpiphany/ghost_squid/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Ghost Squid", "manufacturer": "Bathroom Epiphanies", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/bpiphany/hid_liber/keyboard.json b/keyboards/bpiphany/hid_liber/keyboard.json index 67c8416849f..2f8f3ea4ce3 100644 --- a/keyboards/bpiphany/hid_liber/keyboard.json +++ b/keyboards/bpiphany/hid_liber/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "HIDLiberation", "manufacturer": "bpiphany", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/bpiphany/kitten_paw/keyboard.json b/keyboards/bpiphany/kitten_paw/keyboard.json index 829129d4063..42c6cb87322 100644 --- a/keyboards/bpiphany/kitten_paw/keyboard.json +++ b/keyboards/bpiphany/kitten_paw/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Kitten Paw", "manufacturer": "bpiphany", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/bpiphany/pegasushoof/info.json b/keyboards/bpiphany/pegasushoof/info.json index 1e9e9db3063..a28f68e63e2 100644 --- a/keyboards/bpiphany/pegasushoof/info.json +++ b/keyboards/bpiphany/pegasushoof/info.json @@ -1,6 +1,5 @@ { "manufacturer": "Filco", - "url": "", "maintainer": "qmk", "features": { "bootmagic": true, diff --git a/keyboards/bpiphany/tiger_lily/keyboard.json b/keyboards/bpiphany/tiger_lily/keyboard.json index 118f89f39d0..f260f84c715 100644 --- a/keyboards/bpiphany/tiger_lily/keyboard.json +++ b/keyboards/bpiphany/tiger_lily/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "tiger_lily", "manufacturer": "Bathroom Epiphanies", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4245", diff --git a/keyboards/bt66tech/bt66tech60/keyboard.json b/keyboards/bt66tech/bt66tech60/keyboard.json index 778e27fe67a..9f747397c34 100644 --- a/keyboards/bt66tech/bt66tech60/keyboard.json +++ b/keyboards/bt66tech/bt66tech60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "bt66tech 60%", "manufacturer": "bt66tech", - "url": "", "maintainer": "bt66tech", "usb": { "vid": "0x4254", diff --git a/keyboards/bubble75/hotswap/keyboard.json b/keyboards/bubble75/hotswap/keyboard.json index 011ce33ec40..92f57144cee 100644 --- a/keyboards/bubble75/hotswap/keyboard.json +++ b/keyboards/bubble75/hotswap/keyboard.json @@ -1,6 +1,5 @@ { "keyboard_name": "bubble75", - "url": "", "manufacturer": "phl", "maintainer": "velocifire", "usb": { diff --git a/keyboards/budgy/keyboard.json b/keyboards/budgy/keyboard.json index 0dc45c9da00..cfb60d85ae7 100644 --- a/keyboards/budgy/keyboard.json +++ b/keyboards/budgy/keyboard.json @@ -12,7 +12,6 @@ "nkro": true }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0117", diff --git a/keyboards/buildakb/mw60/keyboard.json b/keyboards/buildakb/mw60/keyboard.json index 9969768345b..9c944277def 100644 --- a/keyboards/buildakb/mw60/keyboard.json +++ b/keyboards/buildakb/mw60/keyboard.json @@ -17,7 +17,6 @@ "rows": ["E6", "D1", "F7", "F4", "F1"] }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0004", diff --git a/keyboards/caffeinated/serpent65/keyboard.json b/keyboards/caffeinated/serpent65/keyboard.json index add48547204..ef0f9267599 100644 --- a/keyboards/caffeinated/serpent65/keyboard.json +++ b/keyboards/caffeinated/serpent65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Serpent65", "manufacturer": "Caffeinated Studios", - "url": "", "maintainer": "jrfhoutx", "usb": { "vid": "0x4353", diff --git a/keyboards/canary/canary60rgb/v1/keyboard.json b/keyboards/canary/canary60rgb/v1/keyboard.json index ac1ba67de00..4980a6f2247 100644 --- a/keyboards/canary/canary60rgb/v1/keyboard.json +++ b/keyboards/canary/canary60rgb/v1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "CANARY60RGB", "manufacturer": "CANARY", - "url": "", "maintainer": "tuananhnguyen204", "usb": { "vid": "0x4341", diff --git a/keyboards/cannonkeys/adelie/keyboard.json b/keyboards/cannonkeys/adelie/keyboard.json index 6b36af3082b..c6792f4c90d 100644 --- a/keyboards/cannonkeys/adelie/keyboard.json +++ b/keyboards/cannonkeys/adelie/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Adelie", "manufacturer": "Abec13", - "url": "", "maintainer": "Abec13", "usb": { "vid": "0xCA04", diff --git a/keyboards/cannonkeys/nearfield/keyboard.json b/keyboards/cannonkeys/nearfield/keyboard.json index e516198f09e..784d26bd6f9 100644 --- a/keyboards/cannonkeys/nearfield/keyboard.json +++ b/keyboards/cannonkeys/nearfield/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Nearfield", "manufacturer": "JLC", - "url": "", "maintainer": "tominabox1", "usb": { "vid": "0x0004", diff --git a/keyboards/cannonkeys/ortho48/keyboard.json b/keyboards/cannonkeys/ortho48/keyboard.json index 2e045c183ec..34f295fcd31 100644 --- a/keyboards/cannonkeys/ortho48/keyboard.json +++ b/keyboards/cannonkeys/ortho48/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Ortho48", "manufacturer": "CannonKeys", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xCA04", diff --git a/keyboards/cannonkeys/ortho60/keyboard.json b/keyboards/cannonkeys/ortho60/keyboard.json index 2e8ad772979..874dc9efaec 100644 --- a/keyboards/cannonkeys/ortho60/keyboard.json +++ b/keyboards/cannonkeys/ortho60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Ortho60", "manufacturer": "CannonKeys", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xCA04", diff --git a/keyboards/cannonkeys/ortho75/keyboard.json b/keyboards/cannonkeys/ortho75/keyboard.json index af09fd47a70..e46b255b79d 100644 --- a/keyboards/cannonkeys/ortho75/keyboard.json +++ b/keyboards/cannonkeys/ortho75/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Ortho75", "manufacturer": "CannonKeys", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/cannonkeys/practice60/keyboard.json b/keyboards/cannonkeys/practice60/keyboard.json index ad8cde6d6b3..9cd29cb2c53 100644 --- a/keyboards/cannonkeys/practice60/keyboard.json +++ b/keyboards/cannonkeys/practice60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Practice 60", "manufacturer": "CannonKeys", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xCA04", diff --git a/keyboards/cannonkeys/vector/keyboard.json b/keyboards/cannonkeys/vector/keyboard.json index 46fc0b45780..1c3e6e0ac2e 100644 --- a/keyboards/cannonkeys/vector/keyboard.json +++ b/keyboards/cannonkeys/vector/keyboard.json @@ -21,7 +21,6 @@ "on_state": 0 }, "processor": "STM32F072", - "url": "", "usb": { "device_version": "1.0.0", "vid": "0xCA04", diff --git a/keyboards/capsunlocked/cu24/keyboard.json b/keyboards/capsunlocked/cu24/keyboard.json index ceec64611c7..db367ceba38 100644 --- a/keyboards/capsunlocked/cu24/keyboard.json +++ b/keyboards/capsunlocked/cu24/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "CU24", "manufacturer": "Yiancar/CapsUnlocked", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/capsunlocked/cu65/keyboard.json b/keyboards/capsunlocked/cu65/keyboard.json index 80f11496611..aa45e9e4985 100644 --- a/keyboards/capsunlocked/cu65/keyboard.json +++ b/keyboards/capsunlocked/cu65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "CU65", "manufacturer": "CapsUnlocked", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4355", diff --git a/keyboards/capsunlocked/cu75/keyboard.json b/keyboards/capsunlocked/cu75/keyboard.json index f7a8356bccf..b226f74bf97 100644 --- a/keyboards/capsunlocked/cu75/keyboard.json +++ b/keyboards/capsunlocked/cu75/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "CU75", "manufacturer": "LFKeyboards/CapsUnlocked", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/centromere/keyboard.json b/keyboards/centromere/keyboard.json index c190bd84d71..01dd6c98757 100644 --- a/keyboards/centromere/keyboard.json +++ b/keyboards/centromere/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Centromere", "manufacturer": "Southpaw Design", - "url": "", "maintainer": "spe2", "usb": { "vid": "0xFEED", diff --git a/keyboards/checkerboards/axon40/keyboard.json b/keyboards/checkerboards/axon40/keyboard.json index c0b67b611de..432602659e1 100644 --- a/keyboards/checkerboards/axon40/keyboard.json +++ b/keyboards/checkerboards/axon40/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Axon40", "manufacturer": "Nasp", - "url": "", "maintainer": "nasp", "usb": { "vid": "0x7070", diff --git a/keyboards/checkerboards/candybar_ortho/keyboard.json b/keyboards/checkerboards/candybar_ortho/keyboard.json index d7908a04f4d..1b9e2646535 100644 --- a/keyboards/checkerboards/candybar_ortho/keyboard.json +++ b/keyboards/checkerboards/candybar_ortho/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "CandyBar Ortho", "manufacturer": "Nasp", - "url": "", "maintainer": "nasp", "usb": { "vid": "0x7070", diff --git a/keyboards/checkerboards/g_idb60/keyboard.json b/keyboards/checkerboards/g_idb60/keyboard.json index 16f70dc8683..cf1530b50be 100644 --- a/keyboards/checkerboards/g_idb60/keyboard.json +++ b/keyboards/checkerboards/g_idb60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "G_IDB60", "manufacturer": "Nasp", - "url": "", "maintainer": "npspears", "usb": { "vid": "0x7070", diff --git a/keyboards/checkerboards/nop60/keyboard.json b/keyboards/checkerboards/nop60/keyboard.json index 9b86a3936a4..fb0e7b23dfa 100644 --- a/keyboards/checkerboards/nop60/keyboard.json +++ b/keyboards/checkerboards/nop60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "NOP60", "manufacturer": "Nasp", - "url": "", "maintainer": "nasp", "usb": { "vid": "0x7070", diff --git a/keyboards/checkerboards/plexus75/keyboard.json b/keyboards/checkerboards/plexus75/keyboard.json index 14bd4deb75f..e457f7f3e6a 100644 --- a/keyboards/checkerboards/plexus75/keyboard.json +++ b/keyboards/checkerboards/plexus75/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Plexus75", "manufacturer": "Nasp", - "url": "", "maintainer": "npspears", "usb": { "vid": "0x7070", diff --git a/keyboards/checkerboards/quark/keyboard.json b/keyboards/checkerboards/quark/keyboard.json index 4bb7c7fef7f..90d378b528b 100644 --- a/keyboards/checkerboards/quark/keyboard.json +++ b/keyboards/checkerboards/quark/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "QUARK", "manufacturer": "Nasp", - "url": "", "maintainer": "nasp", "usb": { "vid": "0x7070", diff --git a/keyboards/checkerboards/ud40_ortho_alt/keyboard.json b/keyboards/checkerboards/ud40_ortho_alt/keyboard.json index 2aae3d1cc85..aaf5fb3e61e 100644 --- a/keyboards/checkerboards/ud40_ortho_alt/keyboard.json +++ b/keyboards/checkerboards/ud40_ortho_alt/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "UD40_Ortho_Alt", "manufacturer": "Nasp", - "url": "", "maintainer": "nasp", "usb": { "vid": "0x7070", diff --git a/keyboards/chickenman/ciel/keyboard.json b/keyboards/chickenman/ciel/keyboard.json index f28995794cd..45c4c76048b 100644 --- a/keyboards/chickenman/ciel/keyboard.json +++ b/keyboards/chickenman/ciel/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Ciel", "manufacturer": "ChickenMan", - "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0xC41C", diff --git a/keyboards/chickenman/ciel65/keyboard.json b/keyboards/chickenman/ciel65/keyboard.json index 70527b2aaf6..7943e443118 100644 --- a/keyboards/chickenman/ciel65/keyboard.json +++ b/keyboards/chickenman/ciel65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Ciel65", "manufacturer": "ChickenMan", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xC41C", diff --git a/keyboards/cipulot/kallos/keyboard.json b/keyboards/cipulot/kallos/keyboard.json index 731b37fda9b..8a2e45e012e 100644 --- a/keyboards/cipulot/kallos/keyboard.json +++ b/keyboards/cipulot/kallos/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Kallos", "manufacturer": "Cipulot", - "url": "", "maintainer": "Cipulot", "usb": { "vid": "0x6369", diff --git a/keyboards/ck60i/keyboard.json b/keyboards/ck60i/keyboard.json index 72b57598a4e..70535c5a761 100644 --- a/keyboards/ck60i/keyboard.json +++ b/keyboards/ck60i/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "CK60i", "manufacturer": "CandyKeys", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x434B", diff --git a/keyboards/ckeys/nakey/keyboard.json b/keyboards/ckeys/nakey/keyboard.json index 85f744217fb..e9cbced1f18 100644 --- a/keyboards/ckeys/nakey/keyboard.json +++ b/keyboards/ckeys/nakey/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "naKey", "manufacturer": "cKeys", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/ckeys/obelus/keyboard.json b/keyboards/ckeys/obelus/keyboard.json index 797bb870b9e..39e3cbb115b 100644 --- a/keyboards/ckeys/obelus/keyboard.json +++ b/keyboards/ckeys/obelus/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Obelus", "manufacturer": "cKeys", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/clawsome/bookerboard/keyboard.json b/keyboards/clawsome/bookerboard/keyboard.json index a72260eb60c..7e3065863a6 100644 --- a/keyboards/clawsome/bookerboard/keyboard.json +++ b/keyboards/clawsome/bookerboard/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Bookerboard", "manufacturer": "AlisGraveNil", - "url": "", "maintainer": "AlisGraveNil", "usb": { "vid": "0xFEED", diff --git a/keyboards/clawsome/sidekick/keyboard.json b/keyboards/clawsome/sidekick/keyboard.json index 4f535d09aae..f2712a367da 100644 --- a/keyboards/clawsome/sidekick/keyboard.json +++ b/keyboards/clawsome/sidekick/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Sidekick", "manufacturer": "AlisGraveNil", - "url": "", "maintainer": "AlisGraveNil", "usb": { "vid": "0xFEED", diff --git a/keyboards/clueboard/17/keyboard.json b/keyboards/clueboard/17/keyboard.json index dcf273afdac..0da234142dc 100644 --- a/keyboards/clueboard/17/keyboard.json +++ b/keyboards/clueboard/17/keyboard.json @@ -38,7 +38,6 @@ "ws2812": { "pin": "F6" }, - "url": "", "usb": { "device_version": "0.0.1", "pid": "0x2312", diff --git a/keyboards/clueboard/california/keyboard.json b/keyboards/clueboard/california/keyboard.json index 66b4b484e22..15467d4debc 100644 --- a/keyboards/clueboard/california/keyboard.json +++ b/keyboards/clueboard/california/keyboard.json @@ -1,6 +1,5 @@ { "keyboard_name": "Clueboard California", - "url": "", "maintainer": "skullydazed", "processor": "STM32F303", "board": "QMK_PROTON_C", diff --git a/keyboards/cmm_studio/fuji65/keyboard.json b/keyboards/cmm_studio/fuji65/keyboard.json index c4f1e5156e3..84e539a6360 100644 --- a/keyboards/cmm_studio/fuji65/keyboard.json +++ b/keyboards/cmm_studio/fuji65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Fuji65", "manufacturer": "CMM.Studio", - "url": "", "maintainer": "CMMS-Freather", "usb": { "vid": "0x434D", diff --git a/keyboards/cmm_studio/saka68/hotswap/keyboard.json b/keyboards/cmm_studio/saka68/hotswap/keyboard.json index 6dc3ec639a2..8ea3185bf74 100644 --- a/keyboards/cmm_studio/saka68/hotswap/keyboard.json +++ b/keyboards/cmm_studio/saka68/hotswap/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Saka68 Hotswap", "manufacturer": "CMM.Studio", - "url": "", "maintainer": "CMMS-Freather", "usb": { "vid": "0x434D", diff --git a/keyboards/cmm_studio/saka68/solder/keyboard.json b/keyboards/cmm_studio/saka68/solder/keyboard.json index d5aea407638..1ce357aabf5 100644 --- a/keyboards/cmm_studio/saka68/solder/keyboard.json +++ b/keyboards/cmm_studio/saka68/solder/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Saka68 Solder", "manufacturer": "CMM.Studio", - "url": "", "maintainer": "CMMS-Freather", "usb": { "vid": "0x434D", diff --git a/keyboards/coarse/ixora/keyboard.json b/keyboards/coarse/ixora/keyboard.json index 33ba2270acf..ebcc345d529 100644 --- a/keyboards/coarse/ixora/keyboard.json +++ b/keyboards/coarse/ixora/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Ixora Rev1", "manufacturer": "PeiorisBoards", - "url": "", "maintainer": "Peioris", "usb": { "vid": "0xFEED", diff --git a/keyboards/coarse/vinta/keyboard.json b/keyboards/coarse/vinta/keyboard.json index df9aa7e5a18..07d5edb29b6 100644 --- a/keyboards/coarse/vinta/keyboard.json +++ b/keyboards/coarse/vinta/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Vinta R1", "manufacturer": "PeiorisBoards", - "url": "", "maintainer": "Peioris", "usb": { "vid": "0xFEED", diff --git a/keyboards/concreteflowers/cor/keyboard.json b/keyboards/concreteflowers/cor/keyboard.json index c2fa4379df6..a4553229a71 100644 --- a/keyboards/concreteflowers/cor/keyboard.json +++ b/keyboards/concreteflowers/cor/keyboard.json @@ -17,7 +17,6 @@ "cols": ["F5", "F6", "F7", "C6", "C7", "B1", "B7", "B5", "B4", "D7", "D6", "D4", "D5", "D3", "D2", "D1", "D0"] }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "1.0.0", "vid": "0x5001", diff --git a/keyboards/concreteflowers/cor_tkl/keyboard.json b/keyboards/concreteflowers/cor_tkl/keyboard.json index 6a797d644cf..3d98077e13d 100644 --- a/keyboards/concreteflowers/cor_tkl/keyboard.json +++ b/keyboards/concreteflowers/cor_tkl/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Cor TKL", "manufacturer": "concreteflowers", - "url": "", "maintainer": "ramonimbao", "community_layouts": [ "tkl_f13_ansi", diff --git a/keyboards/contra/keyboard.json b/keyboards/contra/keyboard.json index ffa32d65552..b3179564feb 100644 --- a/keyboards/contra/keyboard.json +++ b/keyboards/contra/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Contra", "manufacturer": "Cartel", - "url": "", "maintainer": "qmk", "features": { "bootmagic": true, diff --git a/keyboards/converter/adb_usb/info.json b/keyboards/converter/adb_usb/info.json index 3fbe2c0c74e..3452efd7090 100644 --- a/keyboards/converter/adb_usb/info.json +++ b/keyboards/converter/adb_usb/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "ADB to USB Keyboard Converter", "manufacturer": "QMK", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/converter/ibm_terminal/keyboard.json b/keyboards/converter/ibm_terminal/keyboard.json index b95ea58d206..d37bb2b1476 100644 --- a/keyboards/converter/ibm_terminal/keyboard.json +++ b/keyboards/converter/ibm_terminal/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "IBM Terminal to USB Keyboard Converter", "manufacturer": "QMK", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/converter/m0110_usb/keyboard.json b/keyboards/converter/m0110_usb/keyboard.json index 11b83bbb18d..c4803b6e883 100644 --- a/keyboards/converter/m0110_usb/keyboard.json +++ b/keyboards/converter/m0110_usb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Apple M0110(A) to USB Keyboard Converter", "manufacturer": "QMK", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/converter/numeric_keypad_iie/keyboard.json b/keyboards/converter/numeric_keypad_iie/keyboard.json index 6dcffe7e213..6d64654846e 100644 --- a/keyboards/converter/numeric_keypad_iie/keyboard.json +++ b/keyboards/converter/numeric_keypad_iie/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Numeric Keypad IIe", "manufacturer": "Apple Inc.", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/converter/palm_usb/stowaway/keyboard.json b/keyboards/converter/palm_usb/stowaway/keyboard.json index c93957b7d83..6488b5c23cc 100644 --- a/keyboards/converter/palm_usb/stowaway/keyboard.json +++ b/keyboards/converter/palm_usb/stowaway/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Stowaway Converter", "manufacturer": "QMK", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/converter/siemens_tastatur/keyboard.json b/keyboards/converter/siemens_tastatur/keyboard.json index 710a2902cbf..8f9f31bef17 100644 --- a/keyboards/converter/siemens_tastatur/keyboard.json +++ b/keyboards/converter/siemens_tastatur/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Siemens Tastatur", "manufacturer": "Yiancar-Designs", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x8968", diff --git a/keyboards/converter/sun_usb/info.json b/keyboards/converter/sun_usb/info.json index e4031595ad3..57c38520ffc 100644 --- a/keyboards/converter/sun_usb/info.json +++ b/keyboards/converter/sun_usb/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Sun Keyboard Converter", "manufacturer": "QMK", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/converter/usb_usb/info.json b/keyboards/converter/usb_usb/info.json index 747fd497828..97d048160f9 100644 --- a/keyboards/converter/usb_usb/info.json +++ b/keyboards/converter/usb_usb/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "USB to USB Converter", "manufacturer": "QMK", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/converter/xt_usb/keyboard.json b/keyboards/converter/xt_usb/keyboard.json index 649b2833292..08e697b8e93 100644 --- a/keyboards/converter/xt_usb/keyboard.json +++ b/keyboards/converter/xt_usb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "IBM PC XT Keyboard Converter", "manufacturer": "QMK", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/crawlpad/keyboard.json b/keyboards/crawlpad/keyboard.json index d4f1c439715..a10d1ca9c3d 100644 --- a/keyboards/crawlpad/keyboard.json +++ b/keyboards/crawlpad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Crawlpad", "manufacturer": "WoodKeys.Click", - "url": "", "maintainer": "colemarkham", "usb": { "vid": "0xFEED", diff --git a/keyboards/crazy_keyboard_68/keyboard.json b/keyboards/crazy_keyboard_68/keyboard.json index a53013bfb97..f87a3675af1 100644 --- a/keyboards/crazy_keyboard_68/keyboard.json +++ b/keyboards/crazy_keyboard_68/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Crazy_Keyboard 68", "manufacturer": "chent7", - "url": "", "maintainer": "chent7", "usb": { "vid": "0xFEED", diff --git a/keyboards/creatkeebs/glacier/keyboard.json b/keyboards/creatkeebs/glacier/keyboard.json index 61e6bd9136a..e1e94ab8eb7 100644 --- a/keyboards/creatkeebs/glacier/keyboard.json +++ b/keyboards/creatkeebs/glacier/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "glacier", "manufacturer": "creatkeebs", - "url": "", "maintainer": "Timliuzhaolu", "usb": { "vid": "0x0410", diff --git a/keyboards/crimsonkeyboards/resume1800/keyboard.json b/keyboards/crimsonkeyboards/resume1800/keyboard.json index aa54b048018..9b68049c6d2 100644 --- a/keyboards/crimsonkeyboards/resume1800/keyboard.json +++ b/keyboards/crimsonkeyboards/resume1800/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Resume1800", "manufacturer": "CrimsonKeyboards", - "url": "", "maintainer": "CrimsonKeyboards", "usb": { "vid": "0xFEED", diff --git a/keyboards/crowboard/keyboard.json b/keyboards/crowboard/keyboard.json index 1a9502cbd10..2686a3d99c0 100644 --- a/keyboards/crowboard/keyboard.json +++ b/keyboards/crowboard/keyboard.json @@ -15,7 +15,6 @@ "rows": ["GP14", "GP15", "GP16", "GP17"] }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/cutie_club/borsdorf/keyboard.json b/keyboards/cutie_club/borsdorf/keyboard.json index 30b5a74d64d..ddf8dfeda4a 100644 --- a/keyboards/cutie_club/borsdorf/keyboard.json +++ b/keyboards/cutie_club/borsdorf/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Borsdorf", "manufacturer": "Cutie Club", - "url": "", "maintainer": "Cutie Club", "usb": { "vid": "0xFB9C", diff --git a/keyboards/cutie_club/fidelity/keyboard.json b/keyboards/cutie_club/fidelity/keyboard.json index 905460d64ee..e1ca2a430e5 100644 --- a/keyboards/cutie_club/fidelity/keyboard.json +++ b/keyboards/cutie_club/fidelity/keyboard.json @@ -25,7 +25,6 @@ "resync": true } }, - "url": "", "usb": { "device_version": "0.0.1", "pid": "0x4D1B", diff --git a/keyboards/cutie_club/giant_macro_pad/keyboard.json b/keyboards/cutie_club/giant_macro_pad/keyboard.json index f5cde334c04..2eb2542603c 100644 --- a/keyboards/cutie_club/giant_macro_pad/keyboard.json +++ b/keyboards/cutie_club/giant_macro_pad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Cupar19 Giant Macro Pad", "manufacturer": "Cutie Club", - "url": "", "maintainer": "cutie-club", "usb": { "vid": "0xFB9C", diff --git a/keyboards/cutie_club/keebcats/denis/keyboard.json b/keyboards/cutie_club/keebcats/denis/keyboard.json index 098ae39cd24..052e22c1b1b 100644 --- a/keyboards/cutie_club/keebcats/denis/keyboard.json +++ b/keyboards/cutie_club/keebcats/denis/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Keebcats Denis 80", "manufacturer": "Cutie Club", - "url": "", "maintainer": "Cutie Club", "usb": { "vid": "0xFB9C", diff --git a/keyboards/cutie_club/keebcats/dougal/keyboard.json b/keyboards/cutie_club/keebcats/dougal/keyboard.json index 915e3ad15c5..c6079775642 100644 --- a/keyboards/cutie_club/keebcats/dougal/keyboard.json +++ b/keyboards/cutie_club/keebcats/dougal/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Keebcats Dougal 65", "manufacturer": "Cutie Club", - "url": "", "maintainer": "Cutie Club", "usb": { "vid": "0xFB9C", diff --git a/keyboards/cutie_club/novus/keyboard.json b/keyboards/cutie_club/novus/keyboard.json index 97bb81a71f8..a5f47f8d516 100644 --- a/keyboards/cutie_club/novus/keyboard.json +++ b/keyboards/cutie_club/novus/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Novus", "manufacturer": "Cutie Club", - "url": "", "maintainer": "Cutie Club", "usb": { "vid": "0xFB9C", diff --git a/keyboards/cutie_club/wraith/keyboard.json b/keyboards/cutie_club/wraith/keyboard.json index 7cc29caf25d..6da586acfea 100644 --- a/keyboards/cutie_club/wraith/keyboard.json +++ b/keyboards/cutie_club/wraith/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Wraith", "manufacturer": "Amber", - "url": "", "maintainer": "amberstarlight", "usb": { "vid": "0xFEED", diff --git a/keyboards/cx60/keyboard.json b/keyboards/cx60/keyboard.json index 9748d934a6c..24bbee5a28d 100644 --- a/keyboards/cx60/keyboard.json +++ b/keyboards/cx60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "CX60", "manufacturer": "CX60", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4358", diff --git a/keyboards/cxt_studio/12e3/keyboard.json b/keyboards/cxt_studio/12e3/keyboard.json index 763f6bd5b94..0b8949cda75 100644 --- a/keyboards/cxt_studio/12e3/keyboard.json +++ b/keyboards/cxt_studio/12e3/keyboard.json @@ -64,7 +64,6 @@ {"flags": 4, "matrix": [2, 0], "x": 0, "y": 2} ] }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x12E3", diff --git a/keyboards/cxt_studio/12e4/keyboard.json b/keyboards/cxt_studio/12e4/keyboard.json index b48e75f4caa..45d2835af49 100644 --- a/keyboards/cxt_studio/12e4/keyboard.json +++ b/keyboards/cxt_studio/12e4/keyboard.json @@ -66,7 +66,6 @@ {"flags": 4, "matrix": [2, 0], "x": 0, "y": 2} ] }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0xC401", diff --git a/keyboards/dailycraft/bat43/info.json b/keyboards/dailycraft/bat43/info.json index 19aaa540ddb..6b4026f6d47 100644 --- a/keyboards/dailycraft/bat43/info.json +++ b/keyboards/dailycraft/bat43/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "bat43", "manufacturer": "yfuku", - "url": "", "maintainer": "yfuku", "usb": { "vid": "0x5946", diff --git a/keyboards/dailycraft/claw44/rev1/keyboard.json b/keyboards/dailycraft/claw44/rev1/keyboard.json index 62b069a4903..2391bc262fc 100644 --- a/keyboards/dailycraft/claw44/rev1/keyboard.json +++ b/keyboards/dailycraft/claw44/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "claw44", "manufacturer": "yfuku", - "url": "", "maintainer": "yfuku", "usb": { "vid": "0x5946", diff --git a/keyboards/dailycraft/owl8/keyboard.json b/keyboards/dailycraft/owl8/keyboard.json index a4a1a70e3ed..482a3d905f5 100644 --- a/keyboards/dailycraft/owl8/keyboard.json +++ b/keyboards/dailycraft/owl8/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "owl8", "manufacturer": "yfuku", - "url": "", "maintainer": "yfuku", "usb": { "vid": "0x5946", diff --git a/keyboards/dailycraft/sandbox/rev1/keyboard.json b/keyboards/dailycraft/sandbox/rev1/keyboard.json index 8658de96df2..50a114457d4 100644 --- a/keyboards/dailycraft/sandbox/rev1/keyboard.json +++ b/keyboards/dailycraft/sandbox/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "sandbox rev1", "manufacturer": "yfuku", - "url": "", "maintainer": "yfuku", "usb": { "vid": "0x5946", diff --git a/keyboards/dailycraft/sandbox/rev2/keyboard.json b/keyboards/dailycraft/sandbox/rev2/keyboard.json index 1eb61ee12c7..b1991cf56c5 100644 --- a/keyboards/dailycraft/sandbox/rev2/keyboard.json +++ b/keyboards/dailycraft/sandbox/rev2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "sandbox rev2", "manufacturer": "yfuku", - "url": "", "maintainer": "yfuku", "usb": { "vid": "0x5946", diff --git a/keyboards/dailycraft/stickey4/keyboard.json b/keyboards/dailycraft/stickey4/keyboard.json index d0e2a491d39..d6ec02f784d 100644 --- a/keyboards/dailycraft/stickey4/keyboard.json +++ b/keyboards/dailycraft/stickey4/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "stickey4", "manufacturer": "yfuku", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x5946", diff --git a/keyboards/dailycraft/wings42/rev1/keyboard.json b/keyboards/dailycraft/wings42/rev1/keyboard.json index f4a3949c61e..307b675d062 100644 --- a/keyboards/dailycraft/wings42/rev1/keyboard.json +++ b/keyboards/dailycraft/wings42/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "wings42 rev1", "manufacturer": "yfuku", - "url": "", "maintainer": "yfuku", "usb": { "vid": "0x5946", diff --git a/keyboards/dailycraft/wings42/rev1_extkeys/keyboard.json b/keyboards/dailycraft/wings42/rev1_extkeys/keyboard.json index bebe264cc07..ef5b4331b1f 100644 --- a/keyboards/dailycraft/wings42/rev1_extkeys/keyboard.json +++ b/keyboards/dailycraft/wings42/rev1_extkeys/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "wings42 rev1_extkeys", "manufacturer": "yfuku", - "url": "", "maintainer": "yfuku", "usb": { "vid": "0x5946", diff --git a/keyboards/dailycraft/wings42/rev2/keyboard.json b/keyboards/dailycraft/wings42/rev2/keyboard.json index 3f2cb1b766d..4d41f54f3bd 100644 --- a/keyboards/dailycraft/wings42/rev2/keyboard.json +++ b/keyboards/dailycraft/wings42/rev2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "wings42 rev2", "manufacturer": "yfuku", - "url": "", "maintainer": "yfuku", "usb": { "vid": "0x5946", diff --git a/keyboards/daji/seis_cinco/keyboard.json b/keyboards/daji/seis_cinco/keyboard.json index 358dfc17ced..3957dd4d0c7 100644 --- a/keyboards/daji/seis_cinco/keyboard.json +++ b/keyboards/daji/seis_cinco/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Seis Cinco", "manufacturer": "Daji", - "url": "", "maintainer": "toraifu", "usb": { "vid": "0xBF00", diff --git a/keyboards/dark/magnum_ergo_1/keyboard.json b/keyboards/dark/magnum_ergo_1/keyboard.json index a52de6decc0..6d3b3a55927 100644 --- a/keyboards/dark/magnum_ergo_1/keyboard.json +++ b/keyboards/dark/magnum_ergo_1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Magnum Ergo 1", "manufacturer": "Gondolindrim X Dark", - "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x4744", diff --git a/keyboards/darkproject/kd83a_bfg_edition/keyboard.json b/keyboards/darkproject/kd83a_bfg_edition/keyboard.json index 23bd2b69817..9f2ad70f123 100644 --- a/keyboards/darkproject/kd83a_bfg_edition/keyboard.json +++ b/keyboards/darkproject/kd83a_bfg_edition/keyboard.json @@ -174,7 +174,6 @@ ], "sleep": true }, - "url": "", "usb": { "device_version": "0.0.3", "pid": "0xE392", diff --git a/keyboards/darkproject/kd87a_bfg_edition/keyboard.json b/keyboards/darkproject/kd87a_bfg_edition/keyboard.json index 1e0d7f5e8b8..cd6ae141082 100644 --- a/keyboards/darkproject/kd87a_bfg_edition/keyboard.json +++ b/keyboards/darkproject/kd87a_bfg_edition/keyboard.json @@ -180,7 +180,6 @@ ], "sleep": true }, - "url": "", "usb": { "device_version": "0.0.3", "pid": "0xE393", diff --git a/keyboards/darmoshark/k3/keyboard.json b/keyboards/darmoshark/k3/keyboard.json index ff5047b93ae..e62d1908ed9 100644 --- a/keyboards/darmoshark/k3/keyboard.json +++ b/keyboards/darmoshark/k3/keyboard.json @@ -2,7 +2,6 @@ "manufacturer": "Darmoshark", "keyboard_name": "K3 QMK", "maintainer": "Proceee", - "url": "", "processor": "WB32FQ95", "bootloader": "wb32-dfu", "usb": { diff --git a/keyboards/dasky/reverb/keyboard.json b/keyboards/dasky/reverb/keyboard.json index e7e203ebf6e..bfeb9ef6757 100644 --- a/keyboards/dasky/reverb/keyboard.json +++ b/keyboards/dasky/reverb/keyboard.json @@ -124,7 +124,6 @@ {"matrix": [3, 0], "x": 129, "y": 13, "flags": 4} ] }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/dc01/arrow/keyboard.json b/keyboards/dc01/arrow/keyboard.json index f56646367fc..c8a2b229eaf 100644 --- a/keyboards/dc01/arrow/keyboard.json +++ b/keyboards/dc01/arrow/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "DC01 Arrow", "manufacturer": "Mechboards", - "url": "", "maintainer": "Yiancar-Designs", "usb": { "vid": "0x8968", diff --git a/keyboards/dc01/left/keyboard.json b/keyboards/dc01/left/keyboard.json index 2238f67564d..01942c099ca 100644 --- a/keyboards/dc01/left/keyboard.json +++ b/keyboards/dc01/left/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "DC01 Left", "manufacturer": "Mechboards", - "url": "", "maintainer": "Yiancar-Designs", "usb": { "vid": "0x8968", diff --git a/keyboards/dc01/numpad/keyboard.json b/keyboards/dc01/numpad/keyboard.json index 900af6e542a..b78d8b9ee5e 100644 --- a/keyboards/dc01/numpad/keyboard.json +++ b/keyboards/dc01/numpad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "DC01 Numpad", "manufacturer": "Mechboards", - "url": "", "maintainer": "Yiancar-Designs", "usb": { "vid": "0x8968", diff --git a/keyboards/dc01/right/keyboard.json b/keyboards/dc01/right/keyboard.json index 36dc7a7056b..3811ec33310 100644 --- a/keyboards/dc01/right/keyboard.json +++ b/keyboards/dc01/right/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "DC01 Right", "manufacturer": "Mechboards", - "url": "", "maintainer": "Yiancar-Designs", "usb": { "vid": "0x8968", diff --git a/keyboards/delikeeb/flatbread60/keyboard.json b/keyboards/delikeeb/flatbread60/keyboard.json index b0cf794dfb0..2de307ab2ab 100644 --- a/keyboards/delikeeb/flatbread60/keyboard.json +++ b/keyboards/delikeeb/flatbread60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Flatbread60", "manufacturer": "delikeeb", - "url": "", "maintainer": "noclew", "usb": { "vid": "0x9906", diff --git a/keyboards/delikeeb/vaguettelite/keyboard.json b/keyboards/delikeeb/vaguettelite/keyboard.json index 56919958f26..e438fd9bfb6 100644 --- a/keyboards/delikeeb/vaguettelite/keyboard.json +++ b/keyboards/delikeeb/vaguettelite/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Vaguette Lite", "manufacturer": "dELIKEEb", - "url": "", "maintainer": "noclew", "usb": { "vid": "0x9906", diff --git a/keyboards/delikeeb/vanana/info.json b/keyboards/delikeeb/vanana/info.json index 520cd92b09c..0ba67d4af56 100644 --- a/keyboards/delikeeb/vanana/info.json +++ b/keyboards/delikeeb/vanana/info.json @@ -1,6 +1,5 @@ { "manufacturer": "dELIKEEb", - "url": "", "maintainer": "noclew", "usb": { "vid": "0x9906", diff --git a/keyboards/delikeeb/waaffle/rev3/info.json b/keyboards/delikeeb/waaffle/rev3/info.json index 1201411d46b..761c2dc3c75 100644 --- a/keyboards/delikeeb/waaffle/rev3/info.json +++ b/keyboards/delikeeb/waaffle/rev3/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Waaffle rev3", "manufacturer": "dELIKEEb", - "url": "", "maintainer": "noclew", "usb": { "vid": "0x9906", diff --git a/keyboards/deltapad/keyboard.json b/keyboards/deltapad/keyboard.json index 23683bbd1e2..262f6bc41b1 100644 --- a/keyboards/deltapad/keyboard.json +++ b/keyboards/deltapad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "deltapad", "manufacturer": "Richard Snijder", - "url": "", "maintainer": "Richard Snijder", "usb": { "vid": "0xFEED", diff --git a/keyboards/demiurge/keyboard.json b/keyboards/demiurge/keyboard.json index ad5264323bf..80b1b477e11 100644 --- a/keyboards/demiurge/keyboard.json +++ b/keyboards/demiurge/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Demiurge", "manufacturer": "ojthetiny", - "url": "", "maintainer": "ojthetiny", "usb": { "vid": "0x6F6A", diff --git a/keyboards/deng/djam/keyboard.json b/keyboards/deng/djam/keyboard.json index 94e2aca2ecc..0589af49383 100644 --- a/keyboards/deng/djam/keyboard.json +++ b/keyboards/deng/djam/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "DJam", "manufacturer": "Leo Deng", - "url": "", "maintainer": "myst729", "usb": { "vid": "0xDE29", diff --git a/keyboards/deng/thirty/keyboard.json b/keyboards/deng/thirty/keyboard.json index a26d727f12b..da36ae19f58 100644 --- a/keyboards/deng/thirty/keyboard.json +++ b/keyboards/deng/thirty/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Thirty", "manufacturer": "Leo Deng", - "url": "", "maintainer": "myst729", "usb": { "vid": "0xDE29", diff --git a/keyboards/densus/alveus/mx/keyboard.json b/keyboards/densus/alveus/mx/keyboard.json index 839c84fb453..dd3f1bde050 100644 --- a/keyboards/densus/alveus/mx/keyboard.json +++ b/keyboards/densus/alveus/mx/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Alveus", "manufacturer": "Mechlovin Studio", - "url": "", "usb": { "vid": "0xDE00", "pid": "0x0F70", diff --git a/keyboards/dichotomy/keyboard.json b/keyboards/dichotomy/keyboard.json index bc3546a0829..33a799b0e34 100644 --- a/keyboards/dichotomy/keyboard.json +++ b/keyboards/dichotomy/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Dichotomy", "manufacturer": "Broekhuijsen", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/dk60/keyboard.json b/keyboards/dk60/keyboard.json index a88920814d1..990cd7cfcc5 100644 --- a/keyboards/dk60/keyboard.json +++ b/keyboards/dk60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "DK60", "manufacturer": "DARKOU", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/dm9records/ergoinu/keyboard.json b/keyboards/dm9records/ergoinu/keyboard.json index 1f91a06600c..0e124d1a21d 100644 --- a/keyboards/dm9records/ergoinu/keyboard.json +++ b/keyboards/dm9records/ergoinu/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Ergoinu", "manufacturer": "Dm9Records", - "url": "", "maintainer": "hsgw(Takuya Urakawa)", "usb": { "vid": "0x04D8", diff --git a/keyboards/do60/keyboard.json b/keyboards/do60/keyboard.json index 2a7d585f65c..88cf1873e56 100644 --- a/keyboards/do60/keyboard.json +++ b/keyboards/do60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Do60", "manufacturer": "Doyu Studio", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4453", diff --git a/keyboards/doio/kb09/keyboard.json b/keyboards/doio/kb09/keyboard.json index e3012f510cb..f80f19cfda0 100644 --- a/keyboards/doio/kb09/keyboard.json +++ b/keyboards/doio/kb09/keyboard.json @@ -88,7 +88,6 @@ "max_brightness": 200, "sleep": true }, - "url": "", "usb": { "device_version": "0.0.1", "pid": "0x0901", diff --git a/keyboards/doio/kb12/keyboard.json b/keyboards/doio/kb12/keyboard.json index c87d5f9544e..fa450de512c 100644 --- a/keyboards/doio/kb12/keyboard.json +++ b/keyboards/doio/kb12/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "KB12-01", "manufacturer": "DOIO", - "url": "", "maintainer": "DOIO2022", "usb": { "vid": "0xD010", diff --git a/keyboards/doio/kb19/keyboard.json b/keyboards/doio/kb19/keyboard.json index faaaedd36fd..6b97350b314 100644 --- a/keyboards/doio/kb19/keyboard.json +++ b/keyboards/doio/kb19/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "KB19-01", "manufacturer": "DOIO", - "url": "", "maintainer": "DOIO2022", "usb": { "vid": "0xD010", diff --git a/keyboards/doio/kb30/keyboard.json b/keyboards/doio/kb30/keyboard.json index 388df2d9e36..68b79d03938 100644 --- a/keyboards/doio/kb30/keyboard.json +++ b/keyboards/doio/kb30/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "KB30-01", "manufacturer": "DOIO", - "url": "", "maintainer": "DOIO2022", "usb": { "vid": "0xD010", diff --git a/keyboards/doio/kb3x/keyboard.json b/keyboards/doio/kb3x/keyboard.json index be0d1384397..eb9e8437450 100644 --- a/keyboards/doio/kb3x/keyboard.json +++ b/keyboards/doio/kb3x/keyboard.json @@ -86,7 +86,6 @@ "max_brightness": 200, "sleep": true }, - "url": "", "usb": { "device_version": "0.0.1", "pid": "0x3F01", diff --git a/keyboards/donutcables/budget96/keyboard.json b/keyboards/donutcables/budget96/keyboard.json index eaba1b7c464..972149440d7 100644 --- a/keyboards/donutcables/budget96/keyboard.json +++ b/keyboards/donutcables/budget96/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Budget96", "manufacturer": "DonutCables", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4443", diff --git a/keyboards/donutcables/scrabblepad/keyboard.json b/keyboards/donutcables/scrabblepad/keyboard.json index aa03523ed81..9ee05346a01 100644 --- a/keyboards/donutcables/scrabblepad/keyboard.json +++ b/keyboards/donutcables/scrabblepad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "ScrabblePad", "manufacturer": "DonutCables", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4443", diff --git a/keyboards/doppelganger/keyboard.json b/keyboards/doppelganger/keyboard.json index 88569270123..72b36045960 100644 --- a/keyboards/doppelganger/keyboard.json +++ b/keyboards/doppelganger/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Doppelganger", "manufacturer": "Yiancar-Designs", - "url": "", "maintainer": "yiancar", "usb": { "vid": "0x8968", diff --git a/keyboards/doro67/multi/keyboard.json b/keyboards/doro67/multi/keyboard.json index a3a652e40b8..6749a234cf7 100644 --- a/keyboards/doro67/multi/keyboard.json +++ b/keyboards/doro67/multi/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Doro67 Multi", "manufacturer": "Backprop Studio", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4250", diff --git a/keyboards/doro67/rgb/keyboard.json b/keyboards/doro67/rgb/keyboard.json index 8f372dc9c7f..520ffbc8708 100644 --- a/keyboards/doro67/rgb/keyboard.json +++ b/keyboards/doro67/rgb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Doro67 RGB", "manufacturer": "Backprop Studio", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4250", diff --git a/keyboards/dp60/keyboard.json b/keyboards/dp60/keyboard.json index 51a2c08d470..2c42747bb4b 100644 --- a/keyboards/dp60/keyboard.json +++ b/keyboards/dp60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "DP60", "manufacturer": "astro", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x60BE", diff --git a/keyboards/draculad/keyboard.json b/keyboards/draculad/keyboard.json index 3ba2f0efae5..c72bda7c381 100644 --- a/keyboards/draculad/keyboard.json +++ b/keyboards/draculad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "DracuLad", "manufacturer": "MangoIV", - "url": "", "maintainer": "MangoIV", "usb": { "vid": "0xFEED", diff --git a/keyboards/dtisaac/cg108/keyboard.json b/keyboards/dtisaac/cg108/keyboard.json index 28e5563111e..b2d7ed34fe9 100644 --- a/keyboards/dtisaac/cg108/keyboard.json +++ b/keyboards/dtisaac/cg108/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "CG108", "manufacturer": "DTIsaac", - "url": "", "maintainer": "daotakisaac", "usb": { "vid": "0x4454", diff --git a/keyboards/dtisaac/dosa40rgb/keyboard.json b/keyboards/dtisaac/dosa40rgb/keyboard.json index 5f3654d2c57..67956252609 100644 --- a/keyboards/dtisaac/dosa40rgb/keyboard.json +++ b/keyboards/dtisaac/dosa40rgb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": ">_Dosa40", "manufacturer": "DTIsaac", - "url": "", "maintainer": "DTIsaac", "usb": { "vid": "0x4454", diff --git a/keyboards/dtisaac/dtisaac01/keyboard.json b/keyboards/dtisaac/dtisaac01/keyboard.json index 0b4b1b30575..a9650a8112b 100644 --- a/keyboards/dtisaac/dtisaac01/keyboard.json +++ b/keyboards/dtisaac/dtisaac01/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "dtisaac01", "manufacturer": "DTIsaac", - "url": "", "maintainer": "DTIsaac", "usb": { "vid": "0x4454", diff --git a/keyboards/duck/jetfire/keyboard.json b/keyboards/duck/jetfire/keyboard.json index a97ff193a88..d9adf05ca4a 100644 --- a/keyboards/duck/jetfire/keyboard.json +++ b/keyboards/duck/jetfire/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Jetfire", "manufacturer": "Duck", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x444B", diff --git a/keyboards/duck/lightsaver/keyboard.json b/keyboards/duck/lightsaver/keyboard.json index d4e1cd1e351..978e0c6e233 100644 --- a/keyboards/duck/lightsaver/keyboard.json +++ b/keyboards/duck/lightsaver/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Lightsaver V3", "manufacturer": "Duck", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x444B", diff --git a/keyboards/duck/octagon/v1/keyboard.json b/keyboards/duck/octagon/v1/keyboard.json index 47f3acdc4d8..7dfd9ec3ea6 100644 --- a/keyboards/duck/octagon/v1/keyboard.json +++ b/keyboards/duck/octagon/v1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Octagon V1", "manufacturer": "Duck", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x444B", diff --git a/keyboards/duck/octagon/v2/keyboard.json b/keyboards/duck/octagon/v2/keyboard.json index 4afbc42d47c..b3a1eb784da 100644 --- a/keyboards/duck/octagon/v2/keyboard.json +++ b/keyboards/duck/octagon/v2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Octagon V2", "manufacturer": "Duck", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x444B", diff --git a/keyboards/duck/orion/v3/keyboard.json b/keyboards/duck/orion/v3/keyboard.json index ba479aa0a29..9a7251c6505 100644 --- a/keyboards/duck/orion/v3/keyboard.json +++ b/keyboards/duck/orion/v3/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Orion V3", "manufacturer": "Duck", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x444B", diff --git a/keyboards/duck/tcv3/keyboard.json b/keyboards/duck/tcv3/keyboard.json index c03142b4db2..699a44e69b7 100644 --- a/keyboards/duck/tcv3/keyboard.json +++ b/keyboards/duck/tcv3/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "TC-V3", "manufacturer": "Duck", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x444B", diff --git a/keyboards/dumbo/keyboard.json b/keyboards/dumbo/keyboard.json index b833915d80e..8026f22790f 100644 --- a/keyboards/dumbo/keyboard.json +++ b/keyboards/dumbo/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Dumbo", "manufacturer": "trip_trap", - "url": "", "maintainer": "adamnaldal", "usb": { "vid": "0xFEED", diff --git a/keyboards/dz60/keyboard.json b/keyboards/dz60/keyboard.json index 8a8e631f1b7..3bf56b90f11 100644 --- a/keyboards/dz60/keyboard.json +++ b/keyboards/dz60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "DZ60", "manufacturer": "KBDFans", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x445A", diff --git a/keyboards/dztech/bocc/keyboard.json b/keyboards/dztech/bocc/keyboard.json index a6208b2bf7c..e05e1828a3e 100644 --- a/keyboards/dztech/bocc/keyboard.json +++ b/keyboards/dztech/bocc/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BOCC", "manufacturer": "DZTECH", - "url": "", "maintainer": "DZTECH", "usb": { "vid": "0x445A", diff --git a/keyboards/dztech/duo_s/keyboard.json b/keyboards/dztech/duo_s/keyboard.json index 7bf8b0bfddb..76cbb57261e 100644 --- a/keyboards/dztech/duo_s/keyboard.json +++ b/keyboards/dztech/duo_s/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "DUO-S", "manufacturer": "DZTECH", - "url": "", "maintainer": "moyi4681", "usb": { "vid": "0x445A", diff --git a/keyboards/dztech/dz60rgb/info.json b/keyboards/dztech/dz60rgb/info.json index 17439e34436..1bcc77c6056 100644 --- a/keyboards/dztech/dz60rgb/info.json +++ b/keyboards/dztech/dz60rgb/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "DZ60RGB", "manufacturer": "DZTECH", - "url": "", "maintainer": "dztech", "usb": { "vid": "0x445A" diff --git a/keyboards/dztech/dz60rgb_ansi/info.json b/keyboards/dztech/dz60rgb_ansi/info.json index 12fefa5d87e..dddbd473157 100644 --- a/keyboards/dztech/dz60rgb_ansi/info.json +++ b/keyboards/dztech/dz60rgb_ansi/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "DZ60RGB_ANSI", "manufacturer": "DZTECH", - "url": "", "maintainer": "dztech", "usb": { "vid": "0x445A" diff --git a/keyboards/dztech/dz60rgb_wkl/info.json b/keyboards/dztech/dz60rgb_wkl/info.json index ca43c1cbd70..a4dfb63c7af 100644 --- a/keyboards/dztech/dz60rgb_wkl/info.json +++ b/keyboards/dztech/dz60rgb_wkl/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "DZ60RGB_WKL", "manufacturer": "DZTECH", - "url": "", "maintainer": "dztech", "usb": { "vid": "0x445A" diff --git a/keyboards/dztech/dz64rgb/keyboard.json b/keyboards/dztech/dz64rgb/keyboard.json index ea22af59db9..ef95b524007 100644 --- a/keyboards/dztech/dz64rgb/keyboard.json +++ b/keyboards/dztech/dz64rgb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "DZ64RGB", "manufacturer": "DZTECH", - "url": "", "maintainer": "moyi4681", "usb": { "vid": "0x445A", diff --git a/keyboards/dztech/dz65rgb/info.json b/keyboards/dztech/dz65rgb/info.json index d3a127251b0..39e1242af49 100644 --- a/keyboards/dztech/dz65rgb/info.json +++ b/keyboards/dztech/dz65rgb/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "DZ65RGB", "manufacturer": "DZTECH", - "url": "", "maintainer": "dztech", "usb": { "vid": "0x445A" diff --git a/keyboards/dztech/dz96/keyboard.json b/keyboards/dztech/dz96/keyboard.json index ef2de26a704..e51f5744196 100644 --- a/keyboards/dztech/dz96/keyboard.json +++ b/keyboards/dztech/dz96/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "DZ96", "manufacturer": "DZTECH", - "url": "", "maintainer": "kb-elmo", "usb": { "vid": "0x445A", diff --git a/keyboards/dztech/endless80/keyboard.json b/keyboards/dztech/endless80/keyboard.json index 9387b67eadc..835ef0d6520 100644 --- a/keyboards/dztech/endless80/keyboard.json +++ b/keyboards/dztech/endless80/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "endless80", "manufacturer": "dztech", - "url": "", "maintainer": "moyi4681", "usb": { "vid": "0x445A", diff --git a/keyboards/e88/keyboard.json b/keyboards/e88/keyboard.json index 32ee42aefd4..941eb42729f 100644 --- a/keyboards/e88/keyboard.json +++ b/keyboards/e88/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "e88", "manufacturer": "Pink Labs", - "url": "", "maintainer": "2-n", "usb": { "vid": "0x4705", diff --git a/keyboards/eason/aeroboard/keyboard.json b/keyboards/eason/aeroboard/keyboard.json index 3d8c2a6db61..cc0771f82c6 100644 --- a/keyboards/eason/aeroboard/keyboard.json +++ b/keyboards/eason/aeroboard/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "AeroBoard", "manufacturer": "Eason", - "url": "", "maintainer": "EasonQian1", "usb": { "vid": "0x8954", diff --git a/keyboards/eason/capsule65/keyboard.json b/keyboards/eason/capsule65/keyboard.json index 87b7b945680..9f51508a70a 100644 --- a/keyboards/eason/capsule65/keyboard.json +++ b/keyboards/eason/capsule65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "capsule65", "manufacturer": "eason", - "url": "", "maintainer": "EasonQian1", "usb": { "vid": "0xF21E", diff --git a/keyboards/eason/meow65/keyboard.json b/keyboards/eason/meow65/keyboard.json index 340a7410407..df995ea3595 100644 --- a/keyboards/eason/meow65/keyboard.json +++ b/keyboards/eason/meow65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Meow65", "manufacturer": "Eason", - "url": "", "maintainer": "Eason", "usb": { "vid": "0x68F4", diff --git a/keyboards/eason/void65h/keyboard.json b/keyboards/eason/void65h/keyboard.json index 7b6a7fe2fbc..664cfac81bd 100644 --- a/keyboards/eason/void65h/keyboard.json +++ b/keyboards/eason/void65h/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Void65h", "manufacturer": "Eason", - "url": "", "maintainer": "Eason", "usb": { "vid": "0x51D7", diff --git a/keyboards/eco/info.json b/keyboards/eco/info.json index 1bb5c79eb20..f62d91a01fc 100644 --- a/keyboards/eco/info.json +++ b/keyboards/eco/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "The ECO Keyboard", "manufacturer": "Bishop Keyboards", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x1337", diff --git a/keyboards/edc40/keyboard.json b/keyboards/edc40/keyboard.json index 7ad2fdd3b85..a9a25275205 100644 --- a/keyboards/edc40/keyboard.json +++ b/keyboards/edc40/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "edc40", "manufacturer": "OJ", - "url": "", "maintainer": "ojthetiny", "usb": { "vid": "0x4F4A", diff --git a/keyboards/edi/standaside/keyboard.json b/keyboards/edi/standaside/keyboard.json index 410f8f693a6..744f5fbe1ed 100644 --- a/keyboards/edi/standaside/keyboard.json +++ b/keyboards/edi/standaside/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Stand Aside", "manufacturer": "Fate Everywhere", - "url": "", "maintainer": "fateeverywhere", "usb": { "vid": "0xF7E0", diff --git a/keyboards/efreet/keyboard.json b/keyboards/efreet/keyboard.json index 7dac78cc397..0e42253c478 100644 --- a/keyboards/efreet/keyboard.json +++ b/keyboards/efreet/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Efreet", "manufacturer": "Soran", - "url": "", "maintainer": "amberstarlight", "usb": { "vid": "0x534F", diff --git a/keyboards/ein_60/keyboard.json b/keyboards/ein_60/keyboard.json index 1c245fa8b4d..b1e48f1747b 100644 --- a/keyboards/ein_60/keyboard.json +++ b/keyboards/ein_60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Ein_60", "manufacturer": "klackygears", - "url": "", "maintainer": "klackygears", "usb": { "vid": "0x4A53", diff --git a/keyboards/emi20/keyboard.json b/keyboards/emi20/keyboard.json index 56f13af8759..d6fd12356ac 100644 --- a/keyboards/emi20/keyboard.json +++ b/keyboards/emi20/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Emi20", "manufacturer": "Aquacylinder", - "url": "", "maintainer": "Aquacylinder", "usb": { "vid": "0xFEED", diff --git a/keyboards/emptystring/nqg/keyboard.json b/keyboards/emptystring/nqg/keyboard.json index 96f9391dcc8..52fae23604d 100644 --- a/keyboards/emptystring/nqg/keyboard.json +++ b/keyboards/emptystring/nqg/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "NQG", "manufacturer": "emptystring", - "url": "", "maintainer": "culturalsnow", "usb": { "vid": "0x0076", diff --git a/keyboards/eniigmakeyboards/ek60/keyboard.json b/keyboards/eniigmakeyboards/ek60/keyboard.json index 6446dbce341..09e34dfbc12 100644 --- a/keyboards/eniigmakeyboards/ek60/keyboard.json +++ b/keyboards/eniigmakeyboards/ek60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "EK60", "manufacturer": "Eniigma Keyboards", - "url": "", "maintainer": "adamws", "usb": { "vid": "0x454B", diff --git a/keyboards/eniigmakeyboards/ek65/keyboard.json b/keyboards/eniigmakeyboards/ek65/keyboard.json index fa6ad3566ad..cd158f3b9ae 100644 --- a/keyboards/eniigmakeyboards/ek65/keyboard.json +++ b/keyboards/eniigmakeyboards/ek65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "EK65", "manufacturer": "Eniigma Keyboards", - "url": "", "maintainer": "adamws", "usb": { "vid": "0x454B", diff --git a/keyboards/eniigmakeyboards/ek87/keyboard.json b/keyboards/eniigmakeyboards/ek87/keyboard.json index 900a74a4b62..a136d537298 100644 --- a/keyboards/eniigmakeyboards/ek87/keyboard.json +++ b/keyboards/eniigmakeyboards/ek87/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "EK87", "manufacturer": "Eniigma Keyboards", - "url": "", "maintainer": "adamws", "usb": { "vid": "0x454B", diff --git a/keyboards/epomaker/tide65/keyboard.json b/keyboards/epomaker/tide65/keyboard.json index 60f1b46f708..7a384f180f1 100644 --- a/keyboards/epomaker/tide65/keyboard.json +++ b/keyboards/epomaker/tide65/keyboard.json @@ -141,7 +141,6 @@ {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4} ] }, - "url": "", "usb": { "device_version": "0.0.1", "force_nkro": true, diff --git a/keyboards/era/divine/keyboard.json b/keyboards/era/divine/keyboard.json index d02241da782..cc679321316 100644 --- a/keyboards/era/divine/keyboard.json +++ b/keyboards/era/divine/keyboard.json @@ -31,7 +31,6 @@ "rows": ["GP11", "GP10", "GP9", "GP8", "GP4"] }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0002", diff --git a/keyboards/era/era65/keyboard.json b/keyboards/era/era65/keyboard.json index d5fd6127678..63b96666c13 100644 --- a/keyboards/era/era65/keyboard.json +++ b/keyboards/era/era65/keyboard.json @@ -32,7 +32,6 @@ "rows": ["GP1", "GP2", "GP4", "GP10", "GP11"] }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.4", "pid": "0x0001", diff --git a/keyboards/era/linx3/fave65s/keyboard.json b/keyboards/era/linx3/fave65s/keyboard.json index 87f4fdf513e..af44df9850c 100644 --- a/keyboards/era/linx3/fave65s/keyboard.json +++ b/keyboards/era/linx3/fave65s/keyboard.json @@ -109,7 +109,6 @@ ], "sleep": true }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0011", diff --git a/keyboards/era/linx3/n86/keyboard.json b/keyboards/era/linx3/n86/keyboard.json index c0b8b5525a1..354a358470a 100644 --- a/keyboards/era/linx3/n86/keyboard.json +++ b/keyboards/era/linx3/n86/keyboard.json @@ -161,7 +161,6 @@ ], "sleep": true }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0008", diff --git a/keyboards/era/linx3/n87/keyboard.json b/keyboards/era/linx3/n87/keyboard.json index 548a37faddb..5a03a5cbc5e 100644 --- a/keyboards/era/linx3/n87/keyboard.json +++ b/keyboards/era/linx3/n87/keyboard.json @@ -162,7 +162,6 @@ ], "sleep": true }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0009", diff --git a/keyboards/era/linx3/n8x/keyboard.json b/keyboards/era/linx3/n8x/keyboard.json index ae0d608ffa8..c018874bd14 100644 --- a/keyboards/era/linx3/n8x/keyboard.json +++ b/keyboards/era/linx3/n8x/keyboard.json @@ -29,7 +29,6 @@ "rows": ["GP4", "GP5", "GP6", "GP7", "GP10", "GP9"] }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0007", diff --git a/keyboards/era/sirind/brick65s/keyboard.json b/keyboards/era/sirind/brick65s/keyboard.json index 5d6768a93cc..489b0da3237 100644 --- a/keyboards/era/sirind/brick65s/keyboard.json +++ b/keyboards/era/sirind/brick65s/keyboard.json @@ -27,7 +27,6 @@ ], "sleep": true }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0012", diff --git a/keyboards/era/sirind/chickpad/keyboard.json b/keyboards/era/sirind/chickpad/keyboard.json index fe76df006d3..c662d8241aa 100644 --- a/keyboards/era/sirind/chickpad/keyboard.json +++ b/keyboards/era/sirind/chickpad/keyboard.json @@ -88,7 +88,6 @@ ], "sleep": true }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0015", diff --git a/keyboards/era/sirind/klein_hs/keyboard.json b/keyboards/era/sirind/klein_hs/keyboard.json index 6d677f6748d..01395c3af15 100644 --- a/keyboards/era/sirind/klein_hs/keyboard.json +++ b/keyboards/era/sirind/klein_hs/keyboard.json @@ -28,7 +28,6 @@ "rows": ["GP18", "GP19", "GP20", "GP21", "GP14", "GP5", "GP6", "GP4", "GP13", "GP12"] }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0004", diff --git a/keyboards/era/sirind/klein_sd/keyboard.json b/keyboards/era/sirind/klein_sd/keyboard.json index 62b8f788655..b2fbe332908 100644 --- a/keyboards/era/sirind/klein_sd/keyboard.json +++ b/keyboards/era/sirind/klein_sd/keyboard.json @@ -149,7 +149,6 @@ ], "sleep": true }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0005", diff --git a/keyboards/era/sirind/tomak/keyboard.json b/keyboards/era/sirind/tomak/keyboard.json index cfd933bfe66..9f4993614b9 100644 --- a/keyboards/era/sirind/tomak/keyboard.json +++ b/keyboards/era/sirind/tomak/keyboard.json @@ -196,7 +196,6 @@ } } }, - "url": "", "usb": { "device_version": "1.0.2", "pid": "0x0006", diff --git a/keyboards/era/sirind/tomak79h/keyboard.json b/keyboards/era/sirind/tomak79h/keyboard.json index 216250f8502..d1764bb668b 100644 --- a/keyboards/era/sirind/tomak79h/keyboard.json +++ b/keyboards/era/sirind/tomak79h/keyboard.json @@ -197,7 +197,6 @@ } } }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0014", diff --git a/keyboards/era/sirind/tomak79s/keyboard.json b/keyboards/era/sirind/tomak79s/keyboard.json index 9011a359ad5..2e68ad788dd 100644 --- a/keyboards/era/sirind/tomak79s/keyboard.json +++ b/keyboards/era/sirind/tomak79s/keyboard.json @@ -203,7 +203,6 @@ } } }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0013", diff --git a/keyboards/esca/getawayvan/keyboard.json b/keyboards/esca/getawayvan/keyboard.json index 6105e5850d8..999430307b6 100644 --- a/keyboards/esca/getawayvan/keyboard.json +++ b/keyboards/esca/getawayvan/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "GetawayVan", "manufacturer": "esca", - "url": "", "maintainer": "esca", "usb": { "vid": "0xE5CA", diff --git a/keyboards/esca/getawayvan_f042/keyboard.json b/keyboards/esca/getawayvan_f042/keyboard.json index 6b934e16c70..cf27a896934 100644 --- a/keyboards/esca/getawayvan_f042/keyboard.json +++ b/keyboards/esca/getawayvan_f042/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "GetawayVan", "manufacturer": "esca", - "url": "", "maintainer": "esca", "usb": { "vid": "0xE5CA", diff --git a/keyboards/eve/meteor/keyboard.json b/keyboards/eve/meteor/keyboard.json index a8136496f0e..4b3239c38c8 100644 --- a/keyboards/eve/meteor/keyboard.json +++ b/keyboards/eve/meteor/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Meteor", "manufacturer": "EVE", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4556", diff --git a/keyboards/evil80/keyboard.json b/keyboards/evil80/keyboard.json index 9610718b342..c5a62837169 100644 --- a/keyboards/evil80/keyboard.json +++ b/keyboards/evil80/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Evil80", "manufacturer": "Evil", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/evolv/keyboard.json b/keyboards/evolv/keyboard.json index 8373bbb5365..872f80085d8 100644 --- a/keyboards/evolv/keyboard.json +++ b/keyboards/evolv/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Evolv75", "manufacturer": "NathanAlpha", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x7865", diff --git a/keyboards/evyd13/atom47/rev2/keyboard.json b/keyboards/evyd13/atom47/rev2/keyboard.json index 6466c1b7b81..8b1af5ede6a 100644 --- a/keyboards/evyd13/atom47/rev2/keyboard.json +++ b/keyboards/evyd13/atom47/rev2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Atom47 rev2", "manufacturer": "Evyd13", - "url": "", "maintainer": "evyd13", "usb": { "vid": "0x4705", diff --git a/keyboards/evyd13/atom47/rev3/keyboard.json b/keyboards/evyd13/atom47/rev3/keyboard.json index 009c3ef5345..e2c6a1e1bac 100644 --- a/keyboards/evyd13/atom47/rev3/keyboard.json +++ b/keyboards/evyd13/atom47/rev3/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Atom47 rev3", "manufacturer": "Evyd13", - "url": "", "maintainer": "evyd13", "usb": { "vid": "0x4705", diff --git a/keyboards/evyd13/atom47/rev4/keyboard.json b/keyboards/evyd13/atom47/rev4/keyboard.json index cea416e1a68..9a5d7b1ce47 100644 --- a/keyboards/evyd13/atom47/rev4/keyboard.json +++ b/keyboards/evyd13/atom47/rev4/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Atom47 rev4", "manufacturer": "Evyd13", - "url": "", "maintainer": "evyd13", "usb": { "vid": "0x4705", diff --git a/keyboards/evyd13/atom47/rev5/keyboard.json b/keyboards/evyd13/atom47/rev5/keyboard.json index 074d34ab437..86ff90c19c6 100644 --- a/keyboards/evyd13/atom47/rev5/keyboard.json +++ b/keyboards/evyd13/atom47/rev5/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Atom47 rev5", "manufacturer": "Evyd13", - "url": "", "maintainer": "evyd13", "usb": { "vid": "0x4705", diff --git a/keyboards/evyd13/eon65/keyboard.json b/keyboards/evyd13/eon65/keyboard.json index 05506e0ea8c..328e0e4885a 100644 --- a/keyboards/evyd13/eon65/keyboard.json +++ b/keyboards/evyd13/eon65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Eon65", "manufacturer": "Evyd13", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4705", diff --git a/keyboards/evyd13/eon75/keyboard.json b/keyboards/evyd13/eon75/keyboard.json index fe6ee01832c..d91e1267fbe 100644 --- a/keyboards/evyd13/eon75/keyboard.json +++ b/keyboards/evyd13/eon75/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Eon75", "manufacturer": "Evyd13", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4705", diff --git a/keyboards/evyd13/eon87/keyboard.json b/keyboards/evyd13/eon87/keyboard.json index a0d73d442ee..a53c2c130e7 100644 --- a/keyboards/evyd13/eon87/keyboard.json +++ b/keyboards/evyd13/eon87/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Eon87", "manufacturer": "Evyd13", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4705", diff --git a/keyboards/evyd13/eon95/keyboard.json b/keyboards/evyd13/eon95/keyboard.json index 20be437ea1b..4da4cad0d12 100644 --- a/keyboards/evyd13/eon95/keyboard.json +++ b/keyboards/evyd13/eon95/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Eon95", "manufacturer": "Evyd13", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4705", diff --git a/keyboards/evyd13/fin_pad/keyboard.json b/keyboards/evyd13/fin_pad/keyboard.json index 01b24ccfd00..79d87d71530 100644 --- a/keyboards/evyd13/fin_pad/keyboard.json +++ b/keyboards/evyd13/fin_pad/keyboard.json @@ -21,7 +21,6 @@ "ortho_6x4" ], "processor": "atmega32u2", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0xA6E2", diff --git a/keyboards/evyd13/minitomic/keyboard.json b/keyboards/evyd13/minitomic/keyboard.json index 7a8d6d8c234..97bc0dd050f 100644 --- a/keyboards/evyd13/minitomic/keyboard.json +++ b/keyboards/evyd13/minitomic/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Minitomic", "manufacturer": "Evyd13", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4705", diff --git a/keyboards/evyd13/nt650/keyboard.json b/keyboards/evyd13/nt650/keyboard.json index 6f2910b630c..54f3f8cce08 100644 --- a/keyboards/evyd13/nt650/keyboard.json +++ b/keyboards/evyd13/nt650/keyboard.json @@ -22,7 +22,6 @@ "rows": ["F7", "D6", "D4", "F1", "D5", "F0", "D3", "D2"] }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0xD5DF", diff --git a/keyboards/evyd13/nt660/keyboard.json b/keyboards/evyd13/nt660/keyboard.json index 142e9f2920d..a0a330ae40d 100644 --- a/keyboards/evyd13/nt660/keyboard.json +++ b/keyboards/evyd13/nt660/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "nt660", "manufacturer": "Evyd13", - "url": "", "maintainer": "evyd13", "usb": { "vid": "0x4705", diff --git a/keyboards/evyd13/nt980/keyboard.json b/keyboards/evyd13/nt980/keyboard.json index 65ba93d73d3..b51a67903e4 100644 --- a/keyboards/evyd13/nt980/keyboard.json +++ b/keyboards/evyd13/nt980/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "nt980", "manufacturer": "Evyd13", - "url": "", "maintainer": "evyd13", "usb": { "vid": "0x4705", diff --git a/keyboards/evyd13/omrontkl/keyboard.json b/keyboards/evyd13/omrontkl/keyboard.json index 1ea340acaaf..2f41f3f14c2 100644 --- a/keyboards/evyd13/omrontkl/keyboard.json +++ b/keyboards/evyd13/omrontkl/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "OmronTKL", "manufacturer": "Evyd13", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4705", diff --git a/keyboards/evyd13/plain60/keyboard.json b/keyboards/evyd13/plain60/keyboard.json index ce08a523ed7..dd59768dbf5 100644 --- a/keyboards/evyd13/plain60/keyboard.json +++ b/keyboards/evyd13/plain60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Plain60", "manufacturer": "Evyd13", - "url": "", "maintainer": "evyd13", "usb": { "vid": "0x4705", diff --git a/keyboards/evyd13/ta65/keyboard.json b/keyboards/evyd13/ta65/keyboard.json index 1f58de02003..87f7bbfbc87 100644 --- a/keyboards/evyd13/ta65/keyboard.json +++ b/keyboards/evyd13/ta65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "ta-65", "manufacturer": "Evyd13", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4705", diff --git a/keyboards/evyd13/wonderland/keyboard.json b/keyboards/evyd13/wonderland/keyboard.json index 526416fd716..b15ad66f418 100644 --- a/keyboards/evyd13/wonderland/keyboard.json +++ b/keyboards/evyd13/wonderland/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Wonderland", "manufacturer": "Evyd13", - "url": "", "maintainer": "evyd13", "usb": { "vid": "0x4705", diff --git a/keyboards/exclusive/e65/keyboard.json b/keyboards/exclusive/e65/keyboard.json index 9735155abe4..6efd89e94f2 100644 --- a/keyboards/exclusive/e65/keyboard.json +++ b/keyboards/exclusive/e65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "E6.5", "manufacturer": "Exclusive / E-Team", - "url": "", "maintainer": "masterzen", "usb": { "vid": "0x4558", diff --git a/keyboards/exclusive/e6_rgb/keyboard.json b/keyboards/exclusive/e6_rgb/keyboard.json index 401bee9abac..5e6e3999be2 100644 --- a/keyboards/exclusive/e6_rgb/keyboard.json +++ b/keyboards/exclusive/e6_rgb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "E6 RGB", "manufacturer": "astro", - "url": "", "maintainer": "yulei", "usb": { "vid": "0x4154", diff --git a/keyboards/exclusive/e6v2/le/keyboard.json b/keyboards/exclusive/e6v2/le/keyboard.json index e6d551126ee..aa6be489975 100644 --- a/keyboards/exclusive/e6v2/le/keyboard.json +++ b/keyboards/exclusive/e6v2/le/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "E6-V2 LE", "manufacturer": "Exclusive / E-Team", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/exclusive/e6v2/oe/keyboard.json b/keyboards/exclusive/e6v2/oe/keyboard.json index 587205d2df2..e619e542b19 100644 --- a/keyboards/exclusive/e6v2/oe/keyboard.json +++ b/keyboards/exclusive/e6v2/oe/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "E6-V2 OE", "manufacturer": "Exclusive / E-Team", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/exclusive/e7v1/keyboard.json b/keyboards/exclusive/e7v1/keyboard.json index ac0eb5549ab..711d1e39084 100644 --- a/keyboards/exclusive/e7v1/keyboard.json +++ b/keyboards/exclusive/e7v1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "E7-V1", "manufacturer": "Exclusive / E-Team", - "url": "", "maintainer": "masterzen", "usb": { "vid": "0x4558", diff --git a/keyboards/exclusive/e85/hotswap/keyboard.json b/keyboards/exclusive/e85/hotswap/keyboard.json index 7fcd61c8433..72e578c04e6 100644 --- a/keyboards/exclusive/e85/hotswap/keyboard.json +++ b/keyboards/exclusive/e85/hotswap/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "E8.5 Hotswap", "manufacturer": "Exclusive", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4558", diff --git a/keyboards/exclusive/e85/soldered/keyboard.json b/keyboards/exclusive/e85/soldered/keyboard.json index dfd6d18826b..eaffa08933d 100644 --- a/keyboards/exclusive/e85/soldered/keyboard.json +++ b/keyboards/exclusive/e85/soldered/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "E8.5 Soldered", "manufacturer": "Exclusive", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4558", diff --git a/keyboards/exent/keyboard.json b/keyboards/exent/keyboard.json index 1fcd11084b4..e6ac763d13a 100644 --- a/keyboards/exent/keyboard.json +++ b/keyboards/exent/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Exent", "manufacturer": "Quadcube", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x5143", diff --git a/keyboards/eyeohdesigns/babyv/keyboard.json b/keyboards/eyeohdesigns/babyv/keyboard.json index 11975331897..849d59a227a 100644 --- a/keyboards/eyeohdesigns/babyv/keyboard.json +++ b/keyboards/eyeohdesigns/babyv/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "babyv", "manufacturer": "Eye Oh Designs", - "url": "", "maintainer": "eye oh designs", "usb": { "vid": "0xFEED", diff --git a/keyboards/eyeohdesigns/theboulevard/keyboard.json b/keyboards/eyeohdesigns/theboulevard/keyboard.json index 94007dd2c55..cb2cd6b3c27 100644 --- a/keyboards/eyeohdesigns/theboulevard/keyboard.json +++ b/keyboards/eyeohdesigns/theboulevard/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "the boulevard", "manufacturer": "eye oh designs", - "url": "", "maintainer": "eye oh designs", "usb": { "vid": "0xFEED", diff --git a/keyboards/facew/keyboard.json b/keyboards/facew/keyboard.json index a8a7543b7a6..395207d3485 100644 --- a/keyboards/facew/keyboard.json +++ b/keyboards/facew/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "FaceW", "manufacturer": "SPRiT", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x20A0", diff --git a/keyboards/falsonix/fx19/keyboard.json b/keyboards/falsonix/fx19/keyboard.json index 4ef4730a5d6..b940c914afa 100644 --- a/keyboards/falsonix/fx19/keyboard.json +++ b/keyboards/falsonix/fx19/keyboard.json @@ -31,7 +31,6 @@ "rows": ["F0", "F1", "F4", "F5", "F6"] }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/fatotesa/keyboard.json b/keyboards/fatotesa/keyboard.json index ba6fc08d0c2..dd74076812a 100644 --- a/keyboards/fatotesa/keyboard.json +++ b/keyboards/fatotesa/keyboard.json @@ -42,7 +42,6 @@ "cols": ["F5", "F6", "F7", "B1", "B3", "B2", "B6", null], "rows": ["D4", "C6", "D7", "E6", "B4", "B5"] }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/fc660c/keyboard.json b/keyboards/fc660c/keyboard.json index 6c573fef88b..6486bf0587f 100644 --- a/keyboards/fc660c/keyboard.json +++ b/keyboards/fc660c/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "FC660C", "manufacturer": "Hasu", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4853", diff --git a/keyboards/fc980c/keyboard.json b/keyboards/fc980c/keyboard.json index 9944dd3899d..b22747ba157 100644 --- a/keyboards/fc980c/keyboard.json +++ b/keyboards/fc980c/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "FC980C", "manufacturer": "Hasu", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4853", diff --git a/keyboards/flehrad/numbrero/keyboard.json b/keyboards/flehrad/numbrero/keyboard.json index f72b06ca7c7..723204fbc16 100644 --- a/keyboards/flehrad/numbrero/keyboard.json +++ b/keyboards/flehrad/numbrero/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Numbrero", "manufacturer": "Flehrad", - "url": "", "maintainer": "Flehrad", "usb": { "vid": "0xFEED", diff --git a/keyboards/flehrad/snagpad/keyboard.json b/keyboards/flehrad/snagpad/keyboard.json index 1b2a2c4ae17..48022f55184 100644 --- a/keyboards/flehrad/snagpad/keyboard.json +++ b/keyboards/flehrad/snagpad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Snagpad", "manufacturer": "Flehrad", - "url": "", "maintainer": "Flehrad", "usb": { "vid": "0x4443", diff --git a/keyboards/flehrad/tradestation/keyboard.json b/keyboards/flehrad/tradestation/keyboard.json index 757325ceaf8..f99ee313d37 100644 --- a/keyboards/flehrad/tradestation/keyboard.json +++ b/keyboards/flehrad/tradestation/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Trade Station", "manufacturer": "Flehrad", - "url": "", "maintainer": "Flehrad", "usb": { "vid": "0xFEED", diff --git a/keyboards/fluorite/keyboard.json b/keyboards/fluorite/keyboard.json index 37e74c387cf..17824c36b7b 100644 --- a/keyboards/fluorite/keyboard.json +++ b/keyboards/fluorite/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "fluorite", "manufacturer": "ihotsuno", - "url": "", "maintainer": "ihotsuno, qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/flx/virgo/keyboard.json b/keyboards/flx/virgo/keyboard.json index 996425282d7..73100da1e9c 100644 --- a/keyboards/flx/virgo/keyboard.json +++ b/keyboards/flx/virgo/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Virgo", "manufacturer": "FLX", - "url": "", "maintainer": "mechmerlin", "usb": { "vid": "0x4658", diff --git a/keyboards/foostan/cornelius/keyboard.json b/keyboards/foostan/cornelius/keyboard.json index 75cf098c4d9..4f9312825eb 100644 --- a/keyboards/foostan/cornelius/keyboard.json +++ b/keyboards/foostan/cornelius/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Cornelius", "manufacturer": "Yushakobo", - "url": "", "maintainer": "foostan", "usb": { "vid": "0x3265", diff --git a/keyboards/fortitude60/rev1/keyboard.json b/keyboards/fortitude60/rev1/keyboard.json index 4ad8a723b73..3970a784042 100644 --- a/keyboards/fortitude60/rev1/keyboard.json +++ b/keyboards/fortitude60/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Fortitude60", "manufacturer": "Pekaso", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xCB10", diff --git a/keyboards/foxlab/key65/hotswap/keyboard.json b/keyboards/foxlab/key65/hotswap/keyboard.json index b21893fa880..c6359038047 100644 --- a/keyboards/foxlab/key65/hotswap/keyboard.json +++ b/keyboards/foxlab/key65/hotswap/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Key 65 Hotswap", "manufacturer": "Fox Lab", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x464C", diff --git a/keyboards/foxlab/key65/universal/keyboard.json b/keyboards/foxlab/key65/universal/keyboard.json index daaa1b37b1b..94cc4c94c2a 100644 --- a/keyboards/foxlab/key65/universal/keyboard.json +++ b/keyboards/foxlab/key65/universal/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Key 65 Universal", "manufacturer": "Fox Lab", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x464C", diff --git a/keyboards/foxlab/leaf60/hotswap/keyboard.json b/keyboards/foxlab/leaf60/hotswap/keyboard.json index 55639853e90..20dd487c277 100644 --- a/keyboards/foxlab/leaf60/hotswap/keyboard.json +++ b/keyboards/foxlab/leaf60/hotswap/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Leaf 60 Hotswap", "manufacturer": "Fox Lab", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x464C", diff --git a/keyboards/foxlab/leaf60/universal/keyboard.json b/keyboards/foxlab/leaf60/universal/keyboard.json index 93bfe45cce4..758e949aa22 100644 --- a/keyboards/foxlab/leaf60/universal/keyboard.json +++ b/keyboards/foxlab/leaf60/universal/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Leaf 60 Universal", "manufacturer": "Fox Lab", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x464C", diff --git a/keyboards/foxlab/time80/keyboard.json b/keyboards/foxlab/time80/keyboard.json index 9902ed770d5..d4111207edc 100644 --- a/keyboards/foxlab/time80/keyboard.json +++ b/keyboards/foxlab/time80/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Time80", "manufacturer": "Fox Lab", - "url": "", "maintainer": "lukelex", "usb": { "vid": "0x464C", diff --git a/keyboards/foxlab/time_re/hotswap/keyboard.json b/keyboards/foxlab/time_re/hotswap/keyboard.json index cfef3317f20..2391284ee0d 100644 --- a/keyboards/foxlab/time_re/hotswap/keyboard.json +++ b/keyboards/foxlab/time_re/hotswap/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Time 80 Reforged", "manufacturer": "Fox Lab", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x464C", diff --git a/keyboards/foxlab/time_re/universal/keyboard.json b/keyboards/foxlab/time_re/universal/keyboard.json index b53364a5896..cd4fca6df8b 100644 --- a/keyboards/foxlab/time_re/universal/keyboard.json +++ b/keyboards/foxlab/time_re/universal/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Time 80 Reforged", "manufacturer": "Fox Lab", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x464C", diff --git a/keyboards/ft/mars65/keyboard.json b/keyboards/ft/mars65/keyboard.json index 3b6f5ec8a91..ab5e968b901 100644 --- a/keyboards/ft/mars65/keyboard.json +++ b/keyboards/ft/mars65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Mars 6.5", "manufacturer": "FT", - "url": "", "maintainer": "wonderbeel", "usb": { "vid": "0x20A0", diff --git a/keyboards/ft/mars80/keyboard.json b/keyboards/ft/mars80/keyboard.json index 1d5e53dcbe1..4862e84ab9a 100644 --- a/keyboards/ft/mars80/keyboard.json +++ b/keyboards/ft/mars80/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Mars 8.0", "manufacturer": "FT", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x20A0", diff --git a/keyboards/funky40/keyboard.json b/keyboards/funky40/keyboard.json index d76b9eee2e1..0aafa580418 100644 --- a/keyboards/funky40/keyboard.json +++ b/keyboards/funky40/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Funky40", "manufacturer": "TheFourthCow", - "url": "", "maintainer": "TheFourthCow", "usb": { "vid": "0xFEED", diff --git a/keyboards/gami_studio/lex60/keyboard.json b/keyboards/gami_studio/lex60/keyboard.json index be1715c8448..d458d6a6677 100644 --- a/keyboards/gami_studio/lex60/keyboard.json +++ b/keyboards/gami_studio/lex60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Lex60", "manufacturer": "Evyd13", - "url": "", "maintainer": "GamiStudio", "usb": { "vid": "0x7353", diff --git a/keyboards/gboards/butterstick/keyboard.json b/keyboards/gboards/butterstick/keyboard.json index 59d703925be..80204f6ba9a 100644 --- a/keyboards/gboards/butterstick/keyboard.json +++ b/keyboards/gboards/butterstick/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Butter Stick", "manufacturer": "g Heavy Industries", - "url": "", "maintainer": "germ", "usb": { "vid": "0xFEED", diff --git a/keyboards/gboards/gergoplex/keyboard.json b/keyboards/gboards/gergoplex/keyboard.json index cf1e4513923..111f7b8f2c9 100644 --- a/keyboards/gboards/gergoplex/keyboard.json +++ b/keyboards/gboards/gergoplex/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "GergoPlex", "manufacturer": "g Heavy Industries", - "url": "", "maintainer": "germ", "usb": { "vid": "0x6B0A", diff --git a/keyboards/geekboards/tester/keyboard.json b/keyboards/geekboards/tester/keyboard.json index 743e5e2392d..57073ebdc06 100644 --- a/keyboards/geekboards/tester/keyboard.json +++ b/keyboards/geekboards/tester/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Tester", "manufacturer": "Geekboards", - "url": "", "maintainer": "moyi4681", "usb": { "vid": "0xFEED", diff --git a/keyboards/ggkeyboards/genesis/hotswap/keyboard.json b/keyboards/ggkeyboards/genesis/hotswap/keyboard.json index 5cd4f077168..cb5e94cf381 100644 --- a/keyboards/ggkeyboards/genesis/hotswap/keyboard.json +++ b/keyboards/ggkeyboards/genesis/hotswap/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Genesis Hotswap", "manufacturer": "GG Keyboards", - "url": "", "maintainer": "Spooknik", "usb": { "vid": "0xBB00", diff --git a/keyboards/ggkeyboards/genesis/solder/keyboard.json b/keyboards/ggkeyboards/genesis/solder/keyboard.json index 485be430e59..15fcc2334b6 100644 --- a/keyboards/ggkeyboards/genesis/solder/keyboard.json +++ b/keyboards/ggkeyboards/genesis/solder/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Genesis Solder", "manufacturer": "GG Keyboards", - "url": "", "maintainer": "Spooknik", "usb": { "vid": "0xBB00", diff --git a/keyboards/gh60/revc/keyboard.json b/keyboards/gh60/revc/keyboard.json index 4f90f2540cc..8e1c03c1513 100644 --- a/keyboards/gh60/revc/keyboard.json +++ b/keyboards/gh60/revc/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "GH60 Rev C", "manufacturer": "geekhack", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4335", diff --git a/keyboards/gh60/satan/keyboard.json b/keyboards/gh60/satan/keyboard.json index e3f26852970..864e5fa90dd 100644 --- a/keyboards/gh60/satan/keyboard.json +++ b/keyboards/gh60/satan/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "GH60 Satan", "manufacturer": "SATAN", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4335", diff --git a/keyboards/gh60/v1p3/keyboard.json b/keyboards/gh60/v1p3/keyboard.json index 18ac7608bb9..34d8c992b43 100644 --- a/keyboards/gh60/v1p3/keyboard.json +++ b/keyboards/gh60/v1p3/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "GH60 v1.3", "manufacturer": "Unknown", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/gh80_3000/keyboard.json b/keyboards/gh80_3000/keyboard.json index c88f5c8232c..929f11f7c0e 100644 --- a/keyboards/gh80_3000/keyboard.json +++ b/keyboards/gh80_3000/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "GH80-3000", "manufacturer": "farmakon", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/ghs/jem/info.json b/keyboards/ghs/jem/info.json index 21d9bf0e6ba..4bda443ac5c 100644 --- a/keyboards/ghs/jem/info.json +++ b/keyboards/ghs/jem/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "GHS.JEM", "manufacturer": "Gone Hacking Studio", - "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0x0645", diff --git a/keyboards/ghs/xls/keyboard.json b/keyboards/ghs/xls/keyboard.json index f062f32af82..acd916884a4 100644 --- a/keyboards/ghs/xls/keyboard.json +++ b/keyboards/ghs/xls/keyboard.json @@ -19,7 +19,6 @@ "indicators": { "num_lock": "B0" }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0002", diff --git a/keyboards/gkeyboard/gkb_m16/keyboard.json b/keyboards/gkeyboard/gkb_m16/keyboard.json index 1f1fe50a678..fe846b4bd25 100644 --- a/keyboards/gkeyboard/gkb_m16/keyboard.json +++ b/keyboards/gkeyboard/gkb_m16/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "GKB-M16", "manufacturer": "gkeyboard", - "url": "", "maintainer": "gkeyboard", "usb": { "vid": "0x474B", diff --git a/keyboards/gl516/xr63gl/keyboard.json b/keyboards/gl516/xr63gl/keyboard.json index ddeb4254627..808bd9d1b10 100644 --- a/keyboards/gl516/xr63gl/keyboard.json +++ b/keyboards/gl516/xr63gl/keyboard.json @@ -17,7 +17,6 @@ "rows": ["GP26", "GP27", "GP28", "GP29", "GP0", "GP3", "GP4", "GP2", "GP1"] }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/glenpickle/chimera_ergo/keyboard.json b/keyboards/glenpickle/chimera_ergo/keyboard.json index 038498fd10a..d2b4d93b9d0 100644 --- a/keyboards/glenpickle/chimera_ergo/keyboard.json +++ b/keyboards/glenpickle/chimera_ergo/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Chimera Ergo", "manufacturer": "Unknown", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/glenpickle/chimera_ls/keyboard.json b/keyboards/glenpickle/chimera_ls/keyboard.json index b0d6a529124..23c870c74df 100644 --- a/keyboards/glenpickle/chimera_ls/keyboard.json +++ b/keyboards/glenpickle/chimera_ls/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Chimera Lets Split", "manufacturer": "Unknown", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/gon/nerd60/keyboard.json b/keyboards/gon/nerd60/keyboard.json index 590b3f3d9ed..01cbaf3cd04 100644 --- a/keyboards/gon/nerd60/keyboard.json +++ b/keyboards/gon/nerd60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "NerD 60", "manufacturer": "GON", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4E45", diff --git a/keyboards/gon/nerdtkl/keyboard.json b/keyboards/gon/nerdtkl/keyboard.json index ccf13ec3251..ae9db2553ba 100644 --- a/keyboards/gon/nerdtkl/keyboard.json +++ b/keyboards/gon/nerdtkl/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "NerD TKL", "manufacturer": "GON", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4E45", diff --git a/keyboards/gopolar/gg86/keyboard.json b/keyboards/gopolar/gg86/keyboard.json index b704582aa6c..a9944beea95 100644 --- a/keyboards/gopolar/gg86/keyboard.json +++ b/keyboards/gopolar/gg86/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "GG86 Tai-Chi", "manufacturer": "Gopolar", - "url": "", "maintainer": "Gopolar", "usb": { "vid": "0x0007", diff --git a/keyboards/gray_studio/cod67/keyboard.json b/keyboards/gray_studio/cod67/keyboard.json index fa946d9b339..e0a71c6703d 100644 --- a/keyboards/gray_studio/cod67/keyboard.json +++ b/keyboards/gray_studio/cod67/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "COD67", "manufacturer": "Graystudio", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4753", diff --git a/keyboards/gray_studio/hb85/keyboard.json b/keyboards/gray_studio/hb85/keyboard.json index 61387a27094..0fcf30a925c 100644 --- a/keyboards/gray_studio/hb85/keyboard.json +++ b/keyboards/gray_studio/hb85/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "HB85", "manufacturer": "Gray Studio", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4753", diff --git a/keyboards/gray_studio/space65/keyboard.json b/keyboards/gray_studio/space65/keyboard.json index ffe825ff4c8..6534f165a84 100644 --- a/keyboards/gray_studio/space65/keyboard.json +++ b/keyboards/gray_studio/space65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Space65", "manufacturer": "Graystudio", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4753", diff --git a/keyboards/gray_studio/think65/hotswap/keyboard.json b/keyboards/gray_studio/think65/hotswap/keyboard.json index c2dba581908..a38f648ecae 100644 --- a/keyboards/gray_studio/think65/hotswap/keyboard.json +++ b/keyboards/gray_studio/think65/hotswap/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Think6.5\u00b0 Hotswap", "manufacturer": "Graystudio", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4753", diff --git a/keyboards/gray_studio/think65/solder/keyboard.json b/keyboards/gray_studio/think65/solder/keyboard.json index 09096a854e5..283516b60ae 100644 --- a/keyboards/gray_studio/think65/solder/keyboard.json +++ b/keyboards/gray_studio/think65/solder/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Think6.5\u00b0", "manufacturer": "Graystudio", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4753", diff --git a/keyboards/grid600/press/keyboard.json b/keyboards/grid600/press/keyboard.json index 74c3e7aad1a..8e8ae09f1c1 100644 --- a/keyboards/grid600/press/keyboard.json +++ b/keyboards/grid600/press/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "PRESS", "manufacturer": "Grid", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/gvalchca/ga150/keyboard.json b/keyboards/gvalchca/ga150/keyboard.json index 38028799fa3..cdea8ea976b 100644 --- a/keyboards/gvalchca/ga150/keyboard.json +++ b/keyboards/gvalchca/ga150/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "GA15.0", "manufacturer": "Gvalchca", - "url": "", "maintainer": "Gvalchca", "usb": { "vid": "0x6776", diff --git a/keyboards/h0oni/deskpad/keyboard.json b/keyboards/h0oni/deskpad/keyboard.json index d7ad53cd43e..1d84fe3ee48 100644 --- a/keyboards/h0oni/deskpad/keyboard.json +++ b/keyboards/h0oni/deskpad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Deskpad", "manufacturer": "Hydrogen", - "url": "", "maintainer": "Hydrogen BD", "usb": { "vid": "0x4D53", diff --git a/keyboards/h0oni/hotduck/keyboard.json b/keyboards/h0oni/hotduck/keyboard.json index bdb23860214..a2a709d71d7 100644 --- a/keyboards/h0oni/hotduck/keyboard.json +++ b/keyboards/h0oni/hotduck/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "hotDuck", "manufacturer": "h0oni", - "url": "", "maintainer": "h0oni", "usb": { "vid": "0x4D53", diff --git a/keyboards/hadron/info.json b/keyboards/hadron/info.json index 1d25e18f305..1268c24a10b 100644 --- a/keyboards/hadron/info.json +++ b/keyboards/hadron/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Hadron", "manufacturer": "ishtob", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFB30", diff --git a/keyboards/halokeys/elemental75/keyboard.json b/keyboards/halokeys/elemental75/keyboard.json index 866916b69b9..b26d094c4bc 100644 --- a/keyboards/halokeys/elemental75/keyboard.json +++ b/keyboards/halokeys/elemental75/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Elemental75", "manufacturer": "Halokeys", - "url": "", "maintainer": "shamit05", "usb": { "vid": "0xEA0B", diff --git a/keyboards/handwired/108key_trackpoint/keyboard.json b/keyboards/handwired/108key_trackpoint/keyboard.json index 94acb1a26ca..0e8e1a09638 100644 --- a/keyboards/handwired/108key_trackpoint/keyboard.json +++ b/keyboards/handwired/108key_trackpoint/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "108Key-TrackPoint", "manufacturer": "QMK", - "url": "", "maintainer": "mkem114", "usb": { "vid": "0x1234", diff --git a/keyboards/handwired/2x5keypad/keyboard.json b/keyboards/handwired/2x5keypad/keyboard.json index 0b146f165bb..f4ee815c10b 100644 --- a/keyboards/handwired/2x5keypad/keyboard.json +++ b/keyboards/handwired/2x5keypad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "2x5keypad", "manufacturer": "Jonathan Cameron", - "url": "", "maintainer": "jmcameron", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/3dfoxc/keyboard.json b/keyboards/handwired/3dfoxc/keyboard.json index 7675acd73b1..1475d52ab40 100644 --- a/keyboards/handwired/3dfoxc/keyboard.json +++ b/keyboards/handwired/3dfoxc/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "3dfoxc", "manufacturer": "dlgoodr", - "url": "", "maintainer": "dlgoodr", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/3dortho14u/rev1/keyboard.json b/keyboards/handwired/3dortho14u/rev1/keyboard.json index 63773d405f2..3a3c872d3ac 100644 --- a/keyboards/handwired/3dortho14u/rev1/keyboard.json +++ b/keyboards/handwired/3dortho14u/rev1/keyboard.json @@ -1,7 +1,6 @@ { "manufacturer": "xia0", "keyboard_name": "3dortho14u", - "url": "", "maintainer": "xia0", "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/handwired/3dortho14u/rev2/keyboard.json b/keyboards/handwired/3dortho14u/rev2/keyboard.json index 9e048d643d2..831e24e1188 100644 --- a/keyboards/handwired/3dortho14u/rev2/keyboard.json +++ b/keyboards/handwired/3dortho14u/rev2/keyboard.json @@ -1,7 +1,6 @@ { "manufacturer": "xia0", "keyboard_name": "3dortho14u", - "url": "", "maintainer": "xia0", "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/handwired/3dp660/keyboard.json b/keyboards/handwired/3dp660/keyboard.json index c1c4c13e7e3..5b26aaecc6c 100644 --- a/keyboards/handwired/3dp660/keyboard.json +++ b/keyboards/handwired/3dp660/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "3dp660", "manufacturer": "gooberpsycho", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x676F", diff --git a/keyboards/handwired/3dp660_oled/keyboard.json b/keyboards/handwired/3dp660_oled/keyboard.json index ef863b3b520..c687a8bbb48 100644 --- a/keyboards/handwired/3dp660_oled/keyboard.json +++ b/keyboards/handwired/3dp660_oled/keyboard.json @@ -22,7 +22,6 @@ "rows": ["D5", "B0", "B5", "B4", "E6", "D7", "C6", "D4", "D2", "D3"] }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x3661", diff --git a/keyboards/handwired/412_64/keyboard.json b/keyboards/handwired/412_64/keyboard.json index c0f27dcb91e..f80611178ed 100644 --- a/keyboards/handwired/412_64/keyboard.json +++ b/keyboards/handwired/412_64/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "412-64 Model 00", "manufacturer": "EDI/SCI", - "url": "", "maintainer": "fateeverywhere", "usb": { "vid": "0xF7E0", diff --git a/keyboards/handwired/42/keyboard.json b/keyboards/handwired/42/keyboard.json index 45801b7773e..7dbb5827dff 100644 --- a/keyboards/handwired/42/keyboard.json +++ b/keyboards/handwired/42/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "42", "manufacturer": "nglgzz", - "url": "", "maintainer": "nglgzz", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/6macro/keyboard.json b/keyboards/handwired/6macro/keyboard.json index 702008de344..10c59bbbac0 100644 --- a/keyboards/handwired/6macro/keyboard.json +++ b/keyboards/handwired/6macro/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "6macro", "manufacturer": "joaofbmaia", - "url": "", "maintainer": "joaofbmaia", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/aek64/keyboard.json b/keyboards/handwired/aek64/keyboard.json index a06ed6deccb..0a57e17927c 100644 --- a/keyboards/handwired/aek64/keyboard.json +++ b/keyboards/handwired/aek64/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "AEK64", "manufacturer": "4sStylZ and others makers", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/alcor_dactyl/keyboard.json b/keyboards/handwired/alcor_dactyl/keyboard.json index b38d39bfcc6..81d0228dd6b 100644 --- a/keyboards/handwired/alcor_dactyl/keyboard.json +++ b/keyboards/handwired/alcor_dactyl/keyboard.json @@ -4,7 +4,6 @@ "maintainer": "rocketstrong", "bootloader": "rp2040", "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/handwired/aplx2/keyboard.json b/keyboards/handwired/aplx2/keyboard.json index 6a9d7130bda..3e43576f587 100644 --- a/keyboards/handwired/aplx2/keyboard.json +++ b/keyboards/handwired/aplx2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Aplx2", "manufacturer": "Aplyard", - "url": "", "maintainer": "Aplyard", "usb": { "vid": "0xE0E0", diff --git a/keyboards/handwired/arrow_pad/keyboard.json b/keyboards/handwired/arrow_pad/keyboard.json index 237c1f0749c..f70645fe2a5 100644 --- a/keyboards/handwired/arrow_pad/keyboard.json +++ b/keyboards/handwired/arrow_pad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "GoldPad", "manufacturer": "Nobody", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/atreus50/keyboard.json b/keyboards/handwired/atreus50/keyboard.json index 961d1959b04..029d622f98a 100644 --- a/keyboards/handwired/atreus50/keyboard.json +++ b/keyboards/handwired/atreus50/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Atreus50", "manufacturer": "Hexwire", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xBB80", diff --git a/keyboards/handwired/bdn9_ble/keyboard.json b/keyboards/handwired/bdn9_ble/keyboard.json index 20f020504cc..27ed008f435 100644 --- a/keyboards/handwired/bdn9_ble/keyboard.json +++ b/keyboards/handwired/bdn9_ble/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BDN9-BLE", "manufacturer": "KeyPCB/Keebio", - "url": "", "maintainer": "merlin04", "usb": { "vid": "0xCB10", diff --git a/keyboards/handwired/bigmac/keyboard.json b/keyboards/handwired/bigmac/keyboard.json index 8eff62a7eaa..40592658a17 100644 --- a/keyboards/handwired/bigmac/keyboard.json +++ b/keyboards/handwired/bigmac/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BigMac", "manufacturer": "Taylore101", - "url": "", "maintainer": "Taylore101", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/boss566y/redragon_vara/keyboard.json b/keyboards/handwired/boss566y/redragon_vara/keyboard.json index b75caa6544f..579cfe0576e 100644 --- a/keyboards/handwired/boss566y/redragon_vara/keyboard.json +++ b/keyboards/handwired/boss566y/redragon_vara/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Redragon Vara", "manufacturer": "PH", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x5048", diff --git a/keyboards/handwired/brain/keyboard.json b/keyboards/handwired/brain/keyboard.json index c5f8c3682ce..9593ad44713 100644 --- a/keyboards/handwired/brain/keyboard.json +++ b/keyboards/handwired/brain/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Brain", "manufacturer": "Klackygears", - "url": "", "maintainer": "Klackygears", "usb": { "vid": "0x4A53", diff --git a/keyboards/handwired/cans12er/keyboard.json b/keyboards/handwired/cans12er/keyboard.json index 9d08706423c..31fe7ebc838 100644 --- a/keyboards/handwired/cans12er/keyboard.json +++ b/keyboards/handwired/cans12er/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Cans12er", "manufacturer": "Can", - "url": "", "maintainer": "canbaytok", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/chiron/keyboard.json b/keyboards/handwired/chiron/keyboard.json index 1685a9d4776..7000421646b 100644 --- a/keyboards/handwired/chiron/keyboard.json +++ b/keyboards/handwired/chiron/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Chiron", "manufacturer": "Mike Hix", - "url": "", "maintainer": "musl", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/ck4x4/keyboard.json b/keyboards/handwired/ck4x4/keyboard.json index 642408cc0eb..717820f9fc8 100644 --- a/keyboards/handwired/ck4x4/keyboard.json +++ b/keyboards/handwired/ck4x4/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "CK4x4", "manufacturer": "QMK", - "url": "", "maintainer": "awkannan", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/cmd60/keyboard.json b/keyboards/handwired/cmd60/keyboard.json index f9733a75824..05872439c98 100644 --- a/keyboards/handwired/cmd60/keyboard.json +++ b/keyboards/handwired/cmd60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "CMD60", "manufacturer": "cmd", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/colorlice/keyboard.json b/keyboards/handwired/colorlice/keyboard.json index 4ccc10527c1..7292137dffa 100644 --- a/keyboards/handwired/colorlice/keyboard.json +++ b/keyboards/handwired/colorlice/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "ColorLice", "manufacturer": "marhalloweenvt", - "url": "", "maintainer": "marhalloweenvt", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/croxsplit44/keyboard.json b/keyboards/handwired/croxsplit44/keyboard.json index d497942b953..0d29f6fd666 100644 --- a/keyboards/handwired/croxsplit44/keyboard.json +++ b/keyboards/handwired/croxsplit44/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "splitcustom44", "manufacturer": "Samux6146", - "url": "", "maintainer": "Samux6146", "usb": { "vid": "0xB62C", diff --git a/keyboards/handwired/curiosity/keyboard.json b/keyboards/handwired/curiosity/keyboard.json index e95fa25e717..85428b33cab 100644 --- a/keyboards/handwired/curiosity/keyboard.json +++ b/keyboards/handwired/curiosity/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Curiosity", "manufacturer": "Spaceman", - "url": "", "maintainer": "Spaceman", "usb": { "vid": "0x5342", diff --git a/keyboards/handwired/d48/keyboard.json b/keyboards/handwired/d48/keyboard.json index 99c8a673263..a0266e475ee 100644 --- a/keyboards/handwired/d48/keyboard.json +++ b/keyboards/handwired/d48/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "D48", "manufacturer": "Andrew Dunai", - "url": "", "maintainer": "and3rson", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/dactyl/keyboard.json b/keyboards/handwired/dactyl/keyboard.json index 58baf228ca4..60264691762 100644 --- a/keyboards/handwired/dactyl/keyboard.json +++ b/keyboards/handwired/dactyl/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Dactyl", "manufacturer": "Adereth", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/dactyl_kinesis/keyboard.json b/keyboards/handwired/dactyl_kinesis/keyboard.json index 26993fc974f..a536159532b 100644 --- a/keyboards/handwired/dactyl_kinesis/keyboard.json +++ b/keyboards/handwired/dactyl_kinesis/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Dactyl Kinesis", "manufacturer": "dmik", - "url": "", "maintainer": "dmik", "usb": { "vid": "0x444D", diff --git a/keyboards/handwired/dactyl_left/keyboard.json b/keyboards/handwired/dactyl_left/keyboard.json index cfb3ad14895..2a2254f578c 100644 --- a/keyboards/handwired/dactyl_left/keyboard.json +++ b/keyboards/handwired/dactyl_left/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "dactyl_left", "manufacturer": "RedForty", - "url": "", "maintainer": "RedForty", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/dactyl_manuform/4x5/keyboard.json b/keyboards/handwired/dactyl_manuform/4x5/keyboard.json index ce4b6c648b2..e66bfa2ff64 100644 --- a/keyboards/handwired/dactyl_manuform/4x5/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/4x5/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Dactyl Manuform 4x5", "manufacturer": "tshort", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x444D", diff --git a/keyboards/handwired/dactyl_manuform/4x6/keyboard.json b/keyboards/handwired/dactyl_manuform/4x6/keyboard.json index 0d8af5eed1a..f69fb8d426a 100644 --- a/keyboards/handwired/dactyl_manuform/4x6/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/4x6/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Dactyl Manuform 4x6", "manufacturer": "tshort", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x444D", diff --git a/keyboards/handwired/dactyl_manuform/4x6_5/keyboard.json b/keyboards/handwired/dactyl_manuform/4x6_5/keyboard.json index ab916b0353e..d4674042a25 100644 --- a/keyboards/handwired/dactyl_manuform/4x6_5/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/4x6_5/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Dactyl Manuform 4x6 5 thumb keys", "manufacturer": "tshort", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x444D", diff --git a/keyboards/handwired/dactyl_manuform/5x6/keyboard.json b/keyboards/handwired/dactyl_manuform/5x6/keyboard.json index 1bcba1b648c..020bf43fddb 100644 --- a/keyboards/handwired/dactyl_manuform/5x6/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x6/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Dactyl-Manuform (5x6)", "manufacturer": "tshort", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x444D", diff --git a/keyboards/handwired/dactyl_manuform/5x6_2_5/keyboard.json b/keyboards/handwired/dactyl_manuform/5x6_2_5/keyboard.json index 7a0cff5e6cd..739eb573fff 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_2_5/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x6_2_5/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Dactyl-Manuform (5x6+2)", "manufacturer": "tshort", - "url": "", "maintainer": "jceb", "usb": { "vid": "0x444D", diff --git a/keyboards/handwired/dactyl_manuform/5x6_5/keyboard.json b/keyboards/handwired/dactyl_manuform/5x6_5/keyboard.json index 0694447ee98..7c89289bb2e 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_5/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x6_5/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Dactyl-Manuform (5x6)", "manufacturer": "tshort", - "url": "", "maintainer": "jceb", "usb": { "vid": "0x444D", diff --git a/keyboards/handwired/dactyl_manuform/5x6_68/keyboard.json b/keyboards/handwired/dactyl_manuform/5x6_68/keyboard.json index 7d51a06c7cc..33d8c3c0802 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_68/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x6_68/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Dactyl-Manuform (5x6) 68 Keys", "manufacturer": "kpagratis", - "url": "", "maintainer": "kpagratis", "development_board": "promicro", "usb": { diff --git a/keyboards/handwired/dactyl_manuform/5x7/keyboard.json b/keyboards/handwired/dactyl_manuform/5x7/keyboard.json index cf5f5790570..2534a76d780 100644 --- a/keyboards/handwired/dactyl_manuform/5x7/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x7/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Dactyl-Manuform (5x7)", "manufacturer": "tshort", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x444D", diff --git a/keyboards/handwired/dactyl_manuform/5x8/keyboard.json b/keyboards/handwired/dactyl_manuform/5x8/keyboard.json index 24ac4924acd..2ac30107173 100644 --- a/keyboards/handwired/dactyl_manuform/5x8/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x8/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Dactyl-Manuform (5x8)", "manufacturer": "tshort", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x444D", diff --git a/keyboards/handwired/dactyl_manuform/6x6/info.json b/keyboards/handwired/dactyl_manuform/6x6/info.json index 080e4e1942e..3a26d38af1a 100644 --- a/keyboards/handwired/dactyl_manuform/6x6/info.json +++ b/keyboards/handwired/dactyl_manuform/6x6/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Dactyl-Manuform (6x6)", "manufacturer": "tshort", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x444D", diff --git a/keyboards/handwired/dactyl_manuform/6x6_4/keyboard.json b/keyboards/handwired/dactyl_manuform/6x6_4/keyboard.json index a011a2cc3b9..e60fa249f4e 100644 --- a/keyboards/handwired/dactyl_manuform/6x6_4/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/6x6_4/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Dactyl-Manuform (6x6+4)", "manufacturer": "tshort", - "url": "", "maintainer": "dmik", "usb": { "vid": "0x444D", diff --git a/keyboards/handwired/dactyl_manuform/6x7/keyboard.json b/keyboards/handwired/dactyl_manuform/6x7/keyboard.json index bb016647da5..7d1e72ff9ee 100644 --- a/keyboards/handwired/dactyl_manuform/6x7/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/6x7/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Dactyl-Manuform (6x7)", "manufacturer": "tshort", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x444D", diff --git a/keyboards/handwired/dactyl_maximus/keyboard.json b/keyboards/handwired/dactyl_maximus/keyboard.json index 57e91cc3f42..f9f5160ee65 100644 --- a/keyboards/handwired/dactyl_maximus/keyboard.json +++ b/keyboards/handwired/dactyl_maximus/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Dactyl Maximus", "manufacturer": "handwired", - "url": "", "maintainer": "dunk2k", "usb": { "vid": "0x444C", diff --git a/keyboards/handwired/dactyl_promicro/keyboard.json b/keyboards/handwired/dactyl_promicro/keyboard.json index df82505d944..86576b3e094 100644 --- a/keyboards/handwired/dactyl_promicro/keyboard.json +++ b/keyboards/handwired/dactyl_promicro/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Dactyl Ergo(6x6)", "manufacturer": "tshort", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/daishi/keyboard.json b/keyboards/handwired/daishi/keyboard.json index 22044faab3c..d774f13a5b8 100644 --- a/keyboards/handwired/daishi/keyboard.json +++ b/keyboards/handwired/daishi/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Daishi", "manufacturer": "MetaMechs", - "url": "", "maintainer": "Croktopus", "usb": { "vid": "0x6D6D", diff --git a/keyboards/handwired/datahand/keyboard.json b/keyboards/handwired/datahand/keyboard.json index c2c7dab421c..1f1ebc07ee2 100644 --- a/keyboards/handwired/datahand/keyboard.json +++ b/keyboards/handwired/datahand/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "DataHand", "manufacturer": "DataHand", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x13BA", diff --git a/keyboards/handwired/ddg_56/keyboard.json b/keyboards/handwired/ddg_56/keyboard.json index e211821dae5..5d4a21bba65 100644 --- a/keyboards/handwired/ddg_56/keyboard.json +++ b/keyboards/handwired/ddg_56/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "DDG_56", "manufacturer": "Spaceman", - "url": "", "maintainer": "spaceman", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/eagleii/keyboard.json b/keyboards/handwired/eagleii/keyboard.json index 4179a4cdd62..43a4d5a2f7d 100644 --- a/keyboards/handwired/eagleii/keyboard.json +++ b/keyboards/handwired/eagleii/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "II", "manufacturer": "Eagle", - "url": "", "maintainer": "Spaceman", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/elrgo_s/keyboard.json b/keyboards/handwired/elrgo_s/keyboard.json index c0ae4beadb6..2a0e57dabee 100644 --- a/keyboards/handwired/elrgo_s/keyboard.json +++ b/keyboards/handwired/elrgo_s/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Elrgo S", "manufacturer": "Eloren", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x454C", diff --git a/keyboards/handwired/ergocheap/keyboard.json b/keyboards/handwired/ergocheap/keyboard.json index 8728b486a8f..879cf8a4d1e 100644 --- a/keyboards/handwired/ergocheap/keyboard.json +++ b/keyboards/handwired/ergocheap/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Ergocheap", "manufacturer": "xSteins", - "url": "", "maintainer": "xSteins", "usb": { "vid": "0xFEDE", diff --git a/keyboards/handwired/fc200rt_qmk/keyboard.json b/keyboards/handwired/fc200rt_qmk/keyboard.json index aab792e7bd5..7e45cbdb622 100644 --- a/keyboards/handwired/fc200rt_qmk/keyboard.json +++ b/keyboards/handwired/fc200rt_qmk/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "fc200rt_qmk", "manufacturer": "NaCly", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xBEEF", diff --git a/keyboards/handwired/fivethirteen/keyboard.json b/keyboards/handwired/fivethirteen/keyboard.json index 9046fc53ba9..f6492d3e0b4 100644 --- a/keyboards/handwired/fivethirteen/keyboard.json +++ b/keyboards/handwired/fivethirteen/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "fivethirteen", "manufacturer": "rdg", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/gamenum/keyboard.json b/keyboards/handwired/gamenum/keyboard.json index 50a39621088..010f9526dbf 100644 --- a/keyboards/handwired/gamenum/keyboard.json +++ b/keyboards/handwired/gamenum/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "GameNum", "manufacturer": "Seth-Senpai", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x1234", diff --git a/keyboards/handwired/hacked_motospeed/keyboard.json b/keyboards/handwired/hacked_motospeed/keyboard.json index 1a38cdafdc8..17f85a7e9d0 100644 --- a/keyboards/handwired/hacked_motospeed/keyboard.json +++ b/keyboards/handwired/hacked_motospeed/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Hacked Motospeed", "manufacturer": "MMO_Corp", - "url": "", "maintainer": "Deckweiss", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/hexon38/keyboard.json b/keyboards/handwired/hexon38/keyboard.json index dfc11eb532f..1d3595aa38b 100644 --- a/keyboards/handwired/hexon38/keyboard.json +++ b/keyboards/handwired/hexon38/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "hexon38", "manufacturer": "pepaslabs", - "url": "", "maintainer": "cellularmitosis", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/hnah108/keyboard.json b/keyboards/handwired/hnah108/keyboard.json index 3099ed85485..b4daac3faba 100644 --- a/keyboards/handwired/hnah108/keyboard.json +++ b/keyboards/handwired/hnah108/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Hnah108", "manufacturer": "HnahKB", - "url": "", "maintainer": "HnahKB", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/hnah40rgb/keyboard.json b/keyboards/handwired/hnah40rgb/keyboard.json index b5bc58e9105..4775259f35d 100644 --- a/keyboards/handwired/hnah40rgb/keyboard.json +++ b/keyboards/handwired/hnah40rgb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Hnah40V2", "manufacturer": "HnahKB", - "url": "", "maintainer": "HnahKB", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/hwpm87/keyboard.json b/keyboards/handwired/hwpm87/keyboard.json index 0dbbb0472a1..302dc233165 100644 --- a/keyboards/handwired/hwpm87/keyboard.json +++ b/keyboards/handwired/hwpm87/keyboard.json @@ -2,7 +2,6 @@ "manufacturer": "KD-MM2", "keyboard_name": "hwpm87", "maintainer": "KD-MM2", - "url": "", "usb": { "vid": "0xFEED", "pid": "0x0001", diff --git a/keyboards/handwired/iso85k/keyboard.json b/keyboards/handwired/iso85k/keyboard.json index 625a356e307..415bcf54f0c 100644 --- a/keyboards/handwired/iso85k/keyboard.json +++ b/keyboards/handwired/iso85k/keyboard.json @@ -17,7 +17,6 @@ "rows": ["C7", "C6", "B15", "B14", "B13", "B12"] }, "processor": "STM32F072", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0xCAFE", diff --git a/keyboards/handwired/itstleo9/info.json b/keyboards/handwired/itstleo9/info.json index ba9de4d774f..dba1078701f 100644 --- a/keyboards/handwired/itstleo9/info.json +++ b/keyboards/handwired/itstleo9/info.json @@ -11,7 +11,6 @@ "mousekey": true, "nkro": true }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/handwired/jankrp2040dactyl/keyboard.json b/keyboards/handwired/jankrp2040dactyl/keyboard.json index 485da14b660..ff49cef6a2b 100644 --- a/keyboards/handwired/jankrp2040dactyl/keyboard.json +++ b/keyboards/handwired/jankrp2040dactyl/keyboard.json @@ -25,7 +25,6 @@ }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/handwired/jn68m/keyboard.json b/keyboards/handwired/jn68m/keyboard.json index e2c833b0027..d2c506c8c9d 100644 --- a/keyboards/handwired/jn68m/keyboard.json +++ b/keyboards/handwired/jn68m/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "JN68M", "manufacturer": "MxBlue", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xC714", diff --git a/keyboards/handwired/jot50/keyboard.json b/keyboards/handwired/jot50/keyboard.json index d272ffc6b19..a3c1c1fbe11 100644 --- a/keyboards/handwired/jot50/keyboard.json +++ b/keyboards/handwired/jot50/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Jot50", "manufacturer": "Jotix", - "url": "", "maintainer": "jotix", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/jotpad16/keyboard.json b/keyboards/handwired/jotpad16/keyboard.json index 6a8a5db44c3..c5f8511da83 100644 --- a/keyboards/handwired/jotpad16/keyboard.json +++ b/keyboards/handwired/jotpad16/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "JotPad16", "manufacturer": "Jotix", - "url": "", "maintainer": "jotix", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/jtallbean/split_65/keyboard.json b/keyboards/handwired/jtallbean/split_65/keyboard.json index b10e6c6cc07..86d4de0195a 100644 --- a/keyboards/handwired/jtallbean/split_65/keyboard.json +++ b/keyboards/handwired/jtallbean/split_65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "split_65", "manufacturer": "jtallbean", - "url": "", "maintainer": "samlli", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/k8split/keyboard.json b/keyboards/handwired/k8split/keyboard.json index 62ea64604a0..186cf804e1d 100644 --- a/keyboards/handwired/k8split/keyboard.json +++ b/keyboards/handwired/k8split/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "k8split", "manufacturer": "Ckat", - "url": "", "maintainer": "Ckath", "usb": { "vid": "0xC81D", diff --git a/keyboards/handwired/k_numpad17/keyboard.json b/keyboards/handwired/k_numpad17/keyboard.json index 7d48cd1f3ef..de52ca88afd 100644 --- a/keyboards/handwired/k_numpad17/keyboard.json +++ b/keyboards/handwired/k_numpad17/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "K-Numpad17", "manufacturer": "Handwired", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/kbod/keyboard.json b/keyboards/handwired/kbod/keyboard.json index 91926b554d1..a025952119e 100644 --- a/keyboards/handwired/kbod/keyboard.json +++ b/keyboards/handwired/kbod/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "kbod", "manufacturer": "fudanchii", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/ks63/keyboard.json b/keyboards/handwired/ks63/keyboard.json index 09e59975e8e..da0d2e0a3f3 100644 --- a/keyboards/handwired/ks63/keyboard.json +++ b/keyboards/handwired/ks63/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "ks63", "manufacturer": "kleshwong", - "url": "", "maintainer": "Klesh Wong", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/lemonpad/keyboard.json b/keyboards/handwired/lemonpad/keyboard.json index aab7b946929..dea15dcc3c4 100644 --- a/keyboards/handwired/lemonpad/keyboard.json +++ b/keyboards/handwired/lemonpad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "lemonpad", "manufacturer": "dari-studios", - "url": "", "maintainer": "dari-studios", "usb": { "vid": "0x6473", diff --git a/keyboards/handwired/macroboard/info.json b/keyboards/handwired/macroboard/info.json index 5c27c96ae9f..adef955b9d4 100644 --- a/keyboards/handwired/macroboard/info.json +++ b/keyboards/handwired/macroboard/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Macroboard", "manufacturer": "QMK", - "url": "", "maintainer": "Micha\u0142 Szczepaniak", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/magicforce61/keyboard.json b/keyboards/handwired/magicforce61/keyboard.json index e15cc0590ec..e66f9dfe9c5 100644 --- a/keyboards/handwired/magicforce61/keyboard.json +++ b/keyboards/handwired/magicforce61/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Magicforce 61", "manufacturer": "Hexwire", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/magicforce68/keyboard.json b/keyboards/handwired/magicforce68/keyboard.json index 6567c8b1cf2..1101dd60011 100644 --- a/keyboards/handwired/magicforce68/keyboard.json +++ b/keyboards/handwired/magicforce68/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Magicforce 68", "manufacturer": "Hexwire", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/marek128b/ergosplit44/keyboard.json b/keyboards/handwired/marek128b/ergosplit44/keyboard.json index f9a88576a7d..7e14cbc172b 100644 --- a/keyboards/handwired/marek128b/ergosplit44/keyboard.json +++ b/keyboards/handwired/marek128b/ergosplit44/keyboard.json @@ -21,7 +21,6 @@ "rows": ["GP2", "GP3", "GP4", "GP5"] }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/handwired/mechboards_micropad/keyboard.json b/keyboards/handwired/mechboards_micropad/keyboard.json index 65ef6fb5b4e..7f830771c35 100644 --- a/keyboards/handwired/mechboards_micropad/keyboard.json +++ b/keyboards/handwired/mechboards_micropad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Mechboards Micropad", "manufacturer": "Yiancar", - "url": "", "maintainer": "yiancar", "usb": { "vid": "0x8968", diff --git a/keyboards/handwired/minorca/keyboard.json b/keyboards/handwired/minorca/keyboard.json index 9ac1f52d13a..0d27200cb14 100644 --- a/keyboards/handwired/minorca/keyboard.json +++ b/keyboards/handwired/minorca/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Minorca", "manufacturer": "panc.co", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/ms_sculpt_mobile/info.json b/keyboards/handwired/ms_sculpt_mobile/info.json index 918f166c61b..33e250b6828 100644 --- a/keyboards/handwired/ms_sculpt_mobile/info.json +++ b/keyboards/handwired/ms_sculpt_mobile/info.json @@ -1,6 +1,5 @@ { "manufacturer": "Microsoftplus", - "url": "", "maintainer": "qmk", "features": { "bootmagic": false, diff --git a/keyboards/handwired/myskeeb/keyboard.json b/keyboards/handwired/myskeeb/keyboard.json index c75f40cf462..d6805a400c1 100644 --- a/keyboards/handwired/myskeeb/keyboard.json +++ b/keyboards/handwired/myskeeb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "MySKeeb", "manufacturer": "DAG3", - "url": "", "maintainer": "su8044", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/nicekey/keyboard.json b/keyboards/handwired/nicekey/keyboard.json index fe7267ab840..66866de5488 100644 --- a/keyboards/handwired/nicekey/keyboard.json +++ b/keyboards/handwired/nicekey/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "nicekey", "manufacturer": "Lukas", - "url": "", "maintainer": "spydon", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/nortontechpad/keyboard.json b/keyboards/handwired/nortontechpad/keyboard.json index e90b6b5482e..25fceb93da9 100644 --- a/keyboards/handwired/nortontechpad/keyboard.json +++ b/keyboards/handwired/nortontechpad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "NortonTechPad", "manufacturer": "NortonTech", - "url": "", "maintainer": "NortonTech", "usb": { "vid": "0x9879", diff --git a/keyboards/handwired/not_so_minidox/keyboard.json b/keyboards/handwired/not_so_minidox/keyboard.json index fa68a823afd..abd1f43708a 100644 --- a/keyboards/handwired/not_so_minidox/keyboard.json +++ b/keyboards/handwired/not_so_minidox/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Not So MiniDox", "manufacturer": "mtdjr", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/novem/keyboard.json b/keyboards/handwired/novem/keyboard.json index c824f7809c1..47c0a1bca69 100644 --- a/keyboards/handwired/novem/keyboard.json +++ b/keyboards/handwired/novem/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "novem", "manufacturer": "Jose I. Martinez", - "url": "", "maintainer": "Jose I. Martinez", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/nozbe_macro/keyboard.json b/keyboards/handwired/nozbe_macro/keyboard.json index 584509ad185..494d52d2217 100644 --- a/keyboards/handwired/nozbe_macro/keyboard.json +++ b/keyboards/handwired/nozbe_macro/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Nozbe Reunion Pad", "manufacturer": "Leon Omelan", - "url": "", "maintainer": "Leon Omelan", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/numpad20/keyboard.json b/keyboards/handwired/numpad20/keyboard.json index e47cfc5df52..4f4254cf128 100644 --- a/keyboards/handwired/numpad20/keyboard.json +++ b/keyboards/handwired/numpad20/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Numpad 20", "manufacturer": "Hexwire", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xBB80", diff --git a/keyboards/handwired/obuwunkunubi/spaget/keyboard.json b/keyboards/handwired/obuwunkunubi/spaget/keyboard.json index 238736705dc..44d22e71d68 100644 --- a/keyboards/handwired/obuwunkunubi/spaget/keyboard.json +++ b/keyboards/handwired/obuwunkunubi/spaget/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "spaget", "manufacturer": "obuwunkunubi", - "url": "", "maintainer": "obuwunkunubi", "usb": { "vid": "0x1337", diff --git a/keyboards/handwired/onekey/info.json b/keyboards/handwired/onekey/info.json index 5cf7c600ee6..577cb68a6ba 100644 --- a/keyboards/handwired/onekey/info.json +++ b/keyboards/handwired/onekey/info.json @@ -1,6 +1,5 @@ { "manufacturer": "QMK", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/ortho5x13/keyboard.json b/keyboards/handwired/ortho5x13/keyboard.json index 23591b5046c..6dea79ab925 100644 --- a/keyboards/handwired/ortho5x13/keyboard.json +++ b/keyboards/handwired/ortho5x13/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Ortho 5x13", "manufacturer": "Hexwire", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xBB80", diff --git a/keyboards/handwired/ortho5x14/keyboard.json b/keyboards/handwired/ortho5x14/keyboard.json index 1e6828190b1..281ad1c0e0c 100644 --- a/keyboards/handwired/ortho5x14/keyboard.json +++ b/keyboards/handwired/ortho5x14/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Ortho5 x14", "manufacturer": "MPInc", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xBB80", diff --git a/keyboards/handwired/ortho_brass/keyboard.json b/keyboards/handwired/ortho_brass/keyboard.json index 5cd01b1f6d6..2f0fe7b6851 100644 --- a/keyboards/handwired/ortho_brass/keyboard.json +++ b/keyboards/handwired/ortho_brass/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Ortho Brass", "manufacturer": "BifbofII", - "url": "", "maintainer": "BifbofII", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/osborne1/keyboard.json b/keyboards/handwired/osborne1/keyboard.json index 8cbcb3cc8bb..eacc77ff598 100644 --- a/keyboards/handwired/osborne1/keyboard.json +++ b/keyboards/handwired/osborne1/keyboard.json @@ -21,7 +21,6 @@ "rows": ["D0", "B7", "B5", "C6", "D1", "B6", "D7", "D6"] }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x239A", diff --git a/keyboards/handwired/p65rgb/keyboard.json b/keyboards/handwired/p65rgb/keyboard.json index b80a1e7f491..a0c75b7e4f4 100644 --- a/keyboards/handwired/p65rgb/keyboard.json +++ b/keyboards/handwired/p65rgb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "p65rgb", "manufacturer": "marhalloweenvt", - "url": "", "maintainer": "marhalloweenvt", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/pilcrow/keyboard.json b/keyboards/handwired/pilcrow/keyboard.json index b44a4e2d3d4..f490ac33b62 100644 --- a/keyboards/handwired/pilcrow/keyboard.json +++ b/keyboards/handwired/pilcrow/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "pilcrow", "manufacturer": "Unknown", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/postageboard/info.json b/keyboards/handwired/postageboard/info.json index 2f4e674d591..b34c2b3fbe6 100644 --- a/keyboards/handwired/postageboard/info.json +++ b/keyboards/handwired/postageboard/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Postage Board", "manufacturer": "LifeIsOnTheWire", - "url": "", "maintainer": "LifeIsOnTheWire", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/promethium/keyboard.json b/keyboards/handwired/promethium/keyboard.json index 6ee1ed8ca19..fa72908039f 100644 --- a/keyboards/handwired/promethium/keyboard.json +++ b/keyboards/handwired/promethium/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Promethium", "manufacturer": "Priyadi", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x17EF", diff --git a/keyboards/handwired/protype/keyboard.json b/keyboards/handwired/protype/keyboard.json index 69f196abc40..dbbc17ba868 100644 --- a/keyboards/handwired/protype/keyboard.json +++ b/keyboards/handwired/protype/keyboard.json @@ -15,7 +15,6 @@ "cols": ["GP12", "GP9", "GP10", "GP0", "GP1", "GP5", "GP6", "GP2", "GP3", "GP4"] }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0xB7D7", diff --git a/keyboards/handwired/pteron/keyboard.json b/keyboards/handwired/pteron/keyboard.json index 7aa2470cc15..acaa1b7d62a 100644 --- a/keyboards/handwired/pteron/keyboard.json +++ b/keyboards/handwired/pteron/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Pteron", "manufacturer": "QMK", - "url": "", "maintainer": "FSund", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/pteron38/keyboard.json b/keyboards/handwired/pteron38/keyboard.json index 266aefec1f7..f0c219f2e21 100644 --- a/keyboards/handwired/pteron38/keyboard.json +++ b/keyboards/handwired/pteron38/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Pteron38", "manufacturer": "QMK", - "url": "", "maintainer": "fidelcoria", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/pteron44/keyboard.json b/keyboards/handwired/pteron44/keyboard.json index 26321317eb5..497fd95f587 100644 --- a/keyboards/handwired/pteron44/keyboard.json +++ b/keyboards/handwired/pteron44/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Pteron44", "manufacturer": "QMK", - "url": "", "maintainer": "fidelcoria", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/qc60/proto/keyboard.json b/keyboards/handwired/qc60/proto/keyboard.json index 810df8b7aed..b9919c44656 100644 --- a/keyboards/handwired/qc60/proto/keyboard.json +++ b/keyboards/handwired/qc60/proto/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "QC60", "manufacturer": "PeiorisBoards", - "url": "", "maintainer": "coarse", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/rd_61_qmk/keyboard.json b/keyboards/handwired/rd_61_qmk/keyboard.json index be07d95924f..bca23af9592 100644 --- a/keyboards/handwired/rd_61_qmk/keyboard.json +++ b/keyboards/handwired/rd_61_qmk/keyboard.json @@ -52,7 +52,6 @@ "led_count": 1, "saturation_steps": 8 }, - "url": "", "ws2812": { "pin": "C7" }, diff --git a/keyboards/handwired/retro_refit/keyboard.json b/keyboards/handwired/retro_refit/keyboard.json index 7acdb48b44d..73e747fffae 100644 --- a/keyboards/handwired/retro_refit/keyboard.json +++ b/keyboards/handwired/retro_refit/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "retro_refit", "manufacturer": "Nobody", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/riblee_f401/keyboard.json b/keyboards/handwired/riblee_f401/keyboard.json index 53fc6137603..6fc3fbe4742 100644 --- a/keyboards/handwired/riblee_f401/keyboard.json +++ b/keyboards/handwired/riblee_f401/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Handwired F401", "manufacturer": "Riblee", - "url": "", "maintainer": "riblee", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/riblee_f411/keyboard.json b/keyboards/handwired/riblee_f411/keyboard.json index 47d6349ba77..16882205732 100644 --- a/keyboards/handwired/riblee_f411/keyboard.json +++ b/keyboards/handwired/riblee_f411/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Handwired F411", "manufacturer": "Riblee", - "url": "", "maintainer": "riblee", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/riblee_split/keyboard.json b/keyboards/handwired/riblee_split/keyboard.json index f24dbe2ce6c..9748bf1ec28 100644 --- a/keyboards/handwired/riblee_split/keyboard.json +++ b/keyboards/handwired/riblee_split/keyboard.json @@ -17,7 +17,6 @@ "rows": ["A4", "A3", "A2", "A1", "A0"] }, "development_board": "blackpill_f411", - "url": "", "usb": { "device_version": "1.0.0", "vid": "0xFEED", diff --git a/keyboards/handwired/rs60/keyboard.json b/keyboards/handwired/rs60/keyboard.json index 15364743432..5bbabd8bbd6 100644 --- a/keyboards/handwired/rs60/keyboard.json +++ b/keyboards/handwired/rs60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "rs60", "manufacturer": "rs", - "url": "", "maintainer": "rs", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/sejin_eat1010r2/keyboard.json b/keyboards/handwired/sejin_eat1010r2/keyboard.json index f2cfef37a89..e31a0063b5c 100644 --- a/keyboards/handwired/sejin_eat1010r2/keyboard.json +++ b/keyboards/handwired/sejin_eat1010r2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "EAT-1010R2", "manufacturer": "Sejin", - "url": "", "maintainer": "DmNosachev", "usb": { "vid": "0x515A", diff --git a/keyboards/handwired/sick68/keyboard.json b/keyboards/handwired/sick68/keyboard.json index 339484791ff..81a9577f36a 100644 --- a/keyboards/handwired/sick68/keyboard.json +++ b/keyboards/handwired/sick68/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "sick68", "manufacturer": "umbynos", - "url": "", "maintainer": "umbynos", "usb": { "vid": "0x5E68", diff --git a/keyboards/handwired/skakunm_dactyl/keyboard.json b/keyboards/handwired/skakunm_dactyl/keyboard.json index 5d87f23f7b2..d14023e6c0b 100644 --- a/keyboards/handwired/skakunm_dactyl/keyboard.json +++ b/keyboards/handwired/skakunm_dactyl/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Dactyl Min (3x5_5)", "manufacturer": "skakunm", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/slash/keyboard.json b/keyboards/handwired/slash/keyboard.json index a682624d8ef..ea1248c48ea 100644 --- a/keyboards/handwired/slash/keyboard.json +++ b/keyboards/handwired/slash/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Slash", "manufacturer": "asdftemp", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/snatchpad/keyboard.json b/keyboards/handwired/snatchpad/keyboard.json index d06fe2c0034..61a85551359 100644 --- a/keyboards/handwired/snatchpad/keyboard.json +++ b/keyboards/handwired/snatchpad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "snatchpad", "manufacturer": "xia0", - "url": "", "maintainer": "xia0", "usb": { "vid": "0x6662", diff --git a/keyboards/handwired/sono1/info.json b/keyboards/handwired/sono1/info.json index 85e86051c3d..6eed0e45d53 100644 --- a/keyboards/handwired/sono1/info.json +++ b/keyboards/handwired/sono1/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Sono1", "manufacturer": "ASKeyboard", - "url": "", "maintainer": "DmNosachev", "features": { "bootmagic": true, diff --git a/keyboards/handwired/space_oddity/keyboard.json b/keyboards/handwired/space_oddity/keyboard.json index ca4e10d16be..a432372d97f 100644 --- a/keyboards/handwired/space_oddity/keyboard.json +++ b/keyboards/handwired/space_oddity/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Space Oddity", "manufacturer": "James Taylor", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/splittest/info.json b/keyboards/handwired/splittest/info.json index 07cac23aad5..bbfe5382550 100644 --- a/keyboards/handwired/splittest/info.json +++ b/keyboards/handwired/splittest/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Split Tester", "manufacturer": "Keebio", - "url": "", "maintainer": "nooges", "usb": { "vid": "0xCB10", diff --git a/keyboards/handwired/steamvan/rev1/keyboard.json b/keyboards/handwired/steamvan/rev1/keyboard.json index 9c4593bca77..575f5f1a7ca 100644 --- a/keyboards/handwired/steamvan/rev1/keyboard.json +++ b/keyboards/handwired/steamvan/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "SteamVan rev1", "manufacturer": "John M Daly", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/stef9998/split_5x7/rev1/keyboard.json b/keyboards/handwired/stef9998/split_5x7/rev1/keyboard.json index 5f524ea4452..2dc64b445ea 100644 --- a/keyboards/handwired/stef9998/split_5x7/rev1/keyboard.json +++ b/keyboards/handwired/stef9998/split_5x7/rev1/keyboard.json @@ -1,6 +1,5 @@ { "keyboard_name": "Split_5x7", - "url": "", "maintainer": "stef9998", "manufacturer": "Stef9998", "usb": { diff --git a/keyboards/handwired/sticc14/keyboard.json b/keyboards/handwired/sticc14/keyboard.json index b3fb4a06e54..4fd89780ee5 100644 --- a/keyboards/handwired/sticc14/keyboard.json +++ b/keyboards/handwired/sticc14/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Sticc14", "manufacturer": "u/ergorius", - "url": "", "maintainer": "erkhal", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/swiftrax/cowfish/keyboard.json b/keyboards/handwired/swiftrax/cowfish/keyboard.json index efa8c39d19f..b4387bb94b1 100644 --- a/keyboards/handwired/swiftrax/cowfish/keyboard.json +++ b/keyboards/handwired/swiftrax/cowfish/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "CowFish", "manufacturer": "Swiftrax", - "url": "", "maintainer": "swiftrax", "usb": { "vid": "0x04D8", diff --git a/keyboards/handwired/symmetric70_proto/info.json b/keyboards/handwired/symmetric70_proto/info.json index ecd0d38c24c..e0bd2f9c911 100644 --- a/keyboards/handwired/symmetric70_proto/info.json +++ b/keyboards/handwired/symmetric70_proto/info.json @@ -1,6 +1,5 @@ { "manufacturer": "mtei", - "url": "", "maintainer": "mtei", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/symmetry60/keyboard.json b/keyboards/handwired/symmetry60/keyboard.json index 40afdf88c9e..461e4124573 100644 --- a/keyboards/handwired/symmetry60/keyboard.json +++ b/keyboards/handwired/symmetry60/keyboard.json @@ -1,7 +1,6 @@ { "Keyboard_name": "Symmetry60", "manufacturer": "Marhalloweenvt", - "url": "", "maintainer": "marhalloweenvt", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/t111/keyboard.json b/keyboards/handwired/t111/keyboard.json index f65a3f087e8..a43968e0625 100644 --- a/keyboards/handwired/t111/keyboard.json +++ b/keyboards/handwired/t111/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "T111", "manufacturer": "FUJITSU", - "url": "", "maintainer": "DmNosachev", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/terminus_mini/keyboard.json b/keyboards/handwired/terminus_mini/keyboard.json index 09346c81bf1..0e1fdcee91a 100644 --- a/keyboards/handwired/terminus_mini/keyboard.json +++ b/keyboards/handwired/terminus_mini/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Terminus Mini", "manufacturer": "James Morgan", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/tkk/keyboard.json b/keyboards/handwired/tkk/keyboard.json index 91e495081f6..3cf67ce24e9 100644 --- a/keyboards/handwired/tkk/keyboard.json +++ b/keyboards/handwired/tkk/keyboard.json @@ -17,7 +17,6 @@ ] }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/handwired/trackpoint/keyboard.json b/keyboards/handwired/trackpoint/keyboard.json index 09fadd1dc6f..1cd10dbb479 100644 --- a/keyboards/handwired/trackpoint/keyboard.json +++ b/keyboards/handwired/trackpoint/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Trackpoint Demo", "manufacturer": "QMK", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x1234", diff --git a/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json b/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json index 37633e5a563..cc651bec95d 100644 --- a/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json +++ b/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json @@ -1,6 +1,5 @@ { "keyboard_name": "Tractyl Manuform (4x6)", - "url": "", "maintainer": "drashna", "usb": { "pid": "0x3537", diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/info.json b/keyboards/handwired/tractyl_manuform/5x6_right/info.json index b28f309fdbb..fe3f2432ca6 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/info.json +++ b/keyboards/handwired/tractyl_manuform/5x6_right/info.json @@ -1,5 +1,4 @@ { - "url": "", "usb": { "pid": "0x3536", "device_version": "0.0.1" diff --git a/keyboards/handwired/traveller/keyboard.json b/keyboards/handwired/traveller/keyboard.json index e6941036f50..31161efe641 100644 --- a/keyboards/handwired/traveller/keyboard.json +++ b/keyboards/handwired/traveller/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Traveller", "manufacturer": "Unknown", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/twig/twig50/keyboard.json b/keyboards/handwired/twig/twig50/keyboard.json index f1cc2f5a969..67054b6795f 100644 --- a/keyboards/handwired/twig/twig50/keyboard.json +++ b/keyboards/handwired/twig/twig50/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "twig50", "manufacturer": "Twig", - "url": "", "maintainer": "nodatk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/unicomp_mini_m/keyboard.json b/keyboards/handwired/unicomp_mini_m/keyboard.json index 50ae0330282..b66b50ab467 100644 --- a/keyboards/handwired/unicomp_mini_m/keyboard.json +++ b/keyboards/handwired/unicomp_mini_m/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Unicomp Mini M", "manufacturer": "stevendlander", - "url": "", "maintainer": "stevendlander", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/uthol/info.json b/keyboards/handwired/uthol/info.json index 7270e231723..a5c1a0c0c92 100644 --- a/keyboards/handwired/uthol/info.json +++ b/keyboards/handwired/uthol/info.json @@ -1,6 +1,5 @@ { "manufacturer": "Uthol", - "url": "", "maintainer": "uthol", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/woodpad/keyboard.json b/keyboards/handwired/woodpad/keyboard.json index e6c07b2c425..baf30d0bdcf 100644 --- a/keyboards/handwired/woodpad/keyboard.json +++ b/keyboards/handwired/woodpad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Woodpad", "manufacturer": "WoodKeys.click", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/wulkan/keyboard.json b/keyboards/handwired/wulkan/keyboard.json index eceeb5c145e..c804409b7db 100644 --- a/keyboards/handwired/wulkan/keyboard.json +++ b/keyboards/handwired/wulkan/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Handwired48Keys", "manufacturer": "Wulkan", - "url": "", "maintainer": "Napoleon Wulkan", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/wwa/helios/keyboard.json b/keyboards/handwired/wwa/helios/keyboard.json index 64b20103964..af894cad642 100644 --- a/keyboards/handwired/wwa/helios/keyboard.json +++ b/keyboards/handwired/wwa/helios/keyboard.json @@ -17,7 +17,6 @@ "rows": ["GP4", "GP5", "GP6"] }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/handwired/wwa/kepler/keyboard.json b/keyboards/handwired/wwa/kepler/keyboard.json index f962d632b44..2b1ac393371 100644 --- a/keyboards/handwired/wwa/kepler/keyboard.json +++ b/keyboards/handwired/wwa/kepler/keyboard.json @@ -17,7 +17,6 @@ "rows": ["GP9", "GP10", "GP11"] }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0002", diff --git a/keyboards/handwired/wwa/mercury/keyboard.json b/keyboards/handwired/wwa/mercury/keyboard.json index bb89858da27..2a31875b014 100644 --- a/keyboards/handwired/wwa/mercury/keyboard.json +++ b/keyboards/handwired/wwa/mercury/keyboard.json @@ -17,7 +17,6 @@ "rows": ["GP4", "GP5"] }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0003", diff --git a/keyboards/handwired/wwa/soyuz/keyboard.json b/keyboards/handwired/wwa/soyuz/keyboard.json index 9670f312a6a..17837827540 100644 --- a/keyboards/handwired/wwa/soyuz/keyboard.json +++ b/keyboards/handwired/wwa/soyuz/keyboard.json @@ -17,7 +17,6 @@ "rows": ["GP7", "GP8", "GP9"] }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0004", diff --git a/keyboards/handwired/wwa/soyuzxl/keyboard.json b/keyboards/handwired/wwa/soyuzxl/keyboard.json index 9180344176c..98f4bc649dc 100644 --- a/keyboards/handwired/wwa/soyuzxl/keyboard.json +++ b/keyboards/handwired/wwa/soyuzxl/keyboard.json @@ -17,7 +17,6 @@ "rows": ["B5", "B2", "B3"] }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0005", diff --git a/keyboards/handwired/xealous/rev1/keyboard.json b/keyboards/handwired/xealous/rev1/keyboard.json index 9f926a36021..55e99eeb548 100644 --- a/keyboards/handwired/xealous/rev1/keyboard.json +++ b/keyboards/handwired/xealous/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "XeaL60", "manufacturer": "XeaLouS", - "url": "", "maintainer": "alex-ong", "usb": { "vid": "0x4131", diff --git a/keyboards/handwired/z150/keyboard.json b/keyboards/handwired/z150/keyboard.json index 38c92a6537d..e3e7b5c7692 100644 --- a/keyboards/handwired/z150/keyboard.json +++ b/keyboards/handwired/z150/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Z150", "manufacturer": "ALPS", - "url": "", "maintainer": "DmNosachev", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/ziyoulang_k3_mod/keyboard.json b/keyboards/handwired/ziyoulang_k3_mod/keyboard.json index 5d4ca7a254c..decb70c78ef 100644 --- a/keyboards/handwired/ziyoulang_k3_mod/keyboard.json +++ b/keyboards/handwired/ziyoulang_k3_mod/keyboard.json @@ -141,6 +141,5 @@ } }, "manufacturer": "Coom", - "maintainer": "coomstoolbox", - "url": "" + "maintainer": "coomstoolbox" } diff --git a/keyboards/hardlineworks/otd_plus/keyboard.json b/keyboards/hardlineworks/otd_plus/keyboard.json index e0afc03893f..38d9f40ae8c 100644 --- a/keyboards/hardlineworks/otd_plus/keyboard.json +++ b/keyboards/hardlineworks/otd_plus/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "OTD-PLUS", "manufacturer": "Hardlineworks", - "url": "", "maintainer": "Hardlineworks", "usb": { "vid": "0x484C", diff --git a/keyboards/heliar/wm1_hotswap/keyboard.json b/keyboards/heliar/wm1_hotswap/keyboard.json index 789a3c7d2b6..704710d9489 100644 --- a/keyboards/heliar/wm1_hotswap/keyboard.json +++ b/keyboards/heliar/wm1_hotswap/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "wm1 hotswap", "manufacturer": "Heliar", - "url": "", "maintainer": "heliar", "usb": { "vid": "0xFEED", diff --git a/keyboards/helix/rev3_4rows/keyboard.json b/keyboards/helix/rev3_4rows/keyboard.json index 537c332d5cd..3d44e8fe783 100644 --- a/keyboards/helix/rev3_4rows/keyboard.json +++ b/keyboards/helix/rev3_4rows/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Helix rev3 4rows", "manufacturer": "yushakobo", - "url": "", "maintainer": "yushakobo", "usb": { "vid": "0x3265", diff --git a/keyboards/helix/rev3_5rows/keyboard.json b/keyboards/helix/rev3_5rows/keyboard.json index 485cfd924f3..12328ea86d9 100644 --- a/keyboards/helix/rev3_5rows/keyboard.json +++ b/keyboards/helix/rev3_5rows/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Helix rev3 5rows", "manufacturer": "yushakobo", - "url": "", "maintainer": "yushakobo", "usb": { "vid": "0x3265", diff --git a/keyboards/herevoland/buff75/keyboard.json b/keyboards/herevoland/buff75/keyboard.json index 15f3e27ac18..32b17cff613 100644 --- a/keyboards/herevoland/buff75/keyboard.json +++ b/keyboards/herevoland/buff75/keyboard.json @@ -3,7 +3,6 @@ "processor": "STM32F103", "bootloader": "stm32duino", "manufacturer": "HereVoLand", - "url": "", "maintainer": "Here VoLand @Vem", "usb": { "vid": "0xB727", diff --git a/keyboards/hfdkb/ac001/keyboard.json b/keyboards/hfdkb/ac001/keyboard.json index 87f6e40bc30..b5fd8eb4a99 100644 --- a/keyboards/hfdkb/ac001/keyboard.json +++ b/keyboards/hfdkb/ac001/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "ac001", "manufacturer": "hfd", - "url": "", "maintainer": "jonylee@hfd", "usb": { "vid": "0xFFFE", diff --git a/keyboards/hhkb/ansi/info.json b/keyboards/hhkb/ansi/info.json index 16349fc6e27..ff2c1bba6e0 100644 --- a/keyboards/hhkb/ansi/info.json +++ b/keyboards/hhkb/ansi/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "ANSI", "manufacturer": "HHKB", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4848", diff --git a/keyboards/hhkb/jp/keyboard.json b/keyboards/hhkb/jp/keyboard.json index d745f21d20b..db96a92a6cb 100644 --- a/keyboards/hhkb/jp/keyboard.json +++ b/keyboards/hhkb/jp/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "JP", "manufacturer": "HHKB", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4848", diff --git a/keyboards/hhkb/yang/keyboard.json b/keyboards/hhkb/yang/keyboard.json index a5725d6afaa..7af8a629343 100644 --- a/keyboards/hhkb/yang/keyboard.json +++ b/keyboards/hhkb/yang/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "HHKB BLE", "manufacturer": "YANG", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4848", diff --git a/keyboards/hhkb_lite_2/keyboard.json b/keyboards/hhkb_lite_2/keyboard.json index 3e9099f0e5b..df69582b650 100644 --- a/keyboards/hhkb_lite_2/keyboard.json +++ b/keyboards/hhkb_lite_2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "HHKB Lite 2", "manufacturer": "PFU", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x88B2", diff --git a/keyboards/hineybush/h08_ocelot/keyboard.json b/keyboards/hineybush/h08_ocelot/keyboard.json index bca579aab8d..46de9a63f8e 100644 --- a/keyboards/hineybush/h08_ocelot/keyboard.json +++ b/keyboards/hineybush/h08_ocelot/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "h08", "manufacturer": "Hiney LLC", - "url": "", "maintainer": "hineybush", "usb": { "vid": "0x04D8", diff --git a/keyboards/hineybush/h10/keyboard.json b/keyboards/hineybush/h10/keyboard.json index 63a109f4843..b29061b51b8 100644 --- a/keyboards/hineybush/h10/keyboard.json +++ b/keyboards/hineybush/h10/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "h10", "manufacturer": "hineybush", - "url": "", "maintainer": "hineybush", "usb": { "vid": "0x04D8", diff --git a/keyboards/hineybush/h101/keyboard.json b/keyboards/hineybush/h101/keyboard.json index d1f8fa32a08..7d17c1922f0 100644 --- a/keyboards/hineybush/h101/keyboard.json +++ b/keyboards/hineybush/h101/keyboard.json @@ -17,7 +17,6 @@ "rows": ["C13", "C14", "C15", "A0", "A1", "A2"] }, "processor": "STM32F072", - "url": "", "usb": { "device_version": "0.0.1", "vid": "0x4069", diff --git a/keyboards/hineybush/h60/keyboard.json b/keyboards/hineybush/h60/keyboard.json index b7b24b2626e..3ee6d66c17f 100644 --- a/keyboards/hineybush/h60/keyboard.json +++ b/keyboards/hineybush/h60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "h60", "manufacturer": "hineybush", - "url": "", "maintainer": "hineybush", "usb": { "vid": "0x04D8", diff --git a/keyboards/hineybush/h65/keyboard.json b/keyboards/hineybush/h65/keyboard.json index 8560c7774c5..0c85733e7d5 100644 --- a/keyboards/hineybush/h65/keyboard.json +++ b/keyboards/hineybush/h65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "h65", "manufacturer": "Hiney LLC", - "url": "", "maintainer": "hineybush", "usb": { "vid": "0x04D8", diff --git a/keyboards/hineybush/h65_hotswap/keyboard.json b/keyboards/hineybush/h65_hotswap/keyboard.json index 510836f22ff..12e7f653300 100644 --- a/keyboards/hineybush/h65_hotswap/keyboard.json +++ b/keyboards/hineybush/h65_hotswap/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "h65 hotswap", "manufacturer": "Hiney LLC", - "url": "", "maintainer": "hineybush", "usb": { "vid": "0x04D8", diff --git a/keyboards/hineybush/h660s/keyboard.json b/keyboards/hineybush/h660s/keyboard.json index 44e8c8c21ab..c1ca43de5bd 100644 --- a/keyboards/hineybush/h660s/keyboard.json +++ b/keyboards/hineybush/h660s/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "h660s", "manufacturer": "hineybush", - "url": "", "maintainer": "Josh Hinnebusch", "usb": { "vid": "0x04D8", diff --git a/keyboards/hineybush/h75_singa/keyboard.json b/keyboards/hineybush/h75_singa/keyboard.json index 0c3ca31e280..02d2b13d09c 100644 --- a/keyboards/hineybush/h75_singa/keyboard.json +++ b/keyboards/hineybush/h75_singa/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "h75_singa", "manufacturer": "Singa Keyboards", - "url": "", "maintainer": "hineybush", "usb": { "vid": "0x04D8", diff --git a/keyboards/hineybush/h87_g2/keyboard.json b/keyboards/hineybush/h87_g2/keyboard.json index 13c17caa98f..ae97c5aaddd 100644 --- a/keyboards/hineybush/h87_g2/keyboard.json +++ b/keyboards/hineybush/h87_g2/keyboard.json @@ -25,7 +25,6 @@ "rows": ["A15", "B3", "B4", "A0", "B6", "B7"] }, "processor": "STM32F072", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/hineybush/h87a/keyboard.json b/keyboards/hineybush/h87a/keyboard.json index 42a50bf001b..a03727e4f55 100644 --- a/keyboards/hineybush/h87a/keyboard.json +++ b/keyboards/hineybush/h87a/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "h87a", "manufacturer": "hineybush", - "url": "", "maintainer": "hineybush", "usb": { "vid": "0x04D8", diff --git a/keyboards/hineybush/h88/keyboard.json b/keyboards/hineybush/h88/keyboard.json index 6a9b3142e3e..c623416e7aa 100644 --- a/keyboards/hineybush/h88/keyboard.json +++ b/keyboards/hineybush/h88/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "h88", "manufacturer": "hineybush", - "url": "", "maintainer": "hineybush", "usb": { "vid": "0x04D8", diff --git a/keyboards/hineybush/h88_g2/keyboard.json b/keyboards/hineybush/h88_g2/keyboard.json index 983cbcc1f58..a23216bd86b 100644 --- a/keyboards/hineybush/h88_g2/keyboard.json +++ b/keyboards/hineybush/h88_g2/keyboard.json @@ -48,7 +48,6 @@ "saturation_steps": 8, "sleep": true }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0002", diff --git a/keyboards/hineybush/hbcp/keyboard.json b/keyboards/hineybush/hbcp/keyboard.json index e8771ea9a70..1ad6755e421 100644 --- a/keyboards/hineybush/hbcp/keyboard.json +++ b/keyboards/hineybush/hbcp/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "hbcp", "manufacturer": "hineybush", - "url": "", "maintainer": "hineybush", "usb": { "vid": "0x04D8", diff --git a/keyboards/hineybush/hineyg80/keyboard.json b/keyboards/hineybush/hineyg80/keyboard.json index 933d689225d..863be1d23b4 100644 --- a/keyboards/hineybush/hineyg80/keyboard.json +++ b/keyboards/hineybush/hineyg80/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "hineyG80", "manufacturer": "hineybush", - "url": "", "maintainer": "hineybush", "usb": { "vid": "0xFEED", diff --git a/keyboards/hineybush/ibis/keyboard.json b/keyboards/hineybush/ibis/keyboard.json index 8c2f6ca3fe7..40cba1c8f93 100644 --- a/keyboards/hineybush/ibis/keyboard.json +++ b/keyboards/hineybush/ibis/keyboard.json @@ -17,7 +17,6 @@ "rows": ["B0", "B1", "B2", "B3", "C7", "C6", "B4", "D7", "D5", "D3"] }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0xEAA9", diff --git a/keyboards/hineybush/physix/keyboard.json b/keyboards/hineybush/physix/keyboard.json index 79a0bea7aba..ee6c5f39784 100644 --- a/keyboards/hineybush/physix/keyboard.json +++ b/keyboards/hineybush/physix/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "PhysiX", "manufacturer": "LZ", - "url": "", "maintainer": "hineybush", "usb": { "vid": "0x04D8", diff --git a/keyboards/hineybush/sm68/keyboard.json b/keyboards/hineybush/sm68/keyboard.json index 8350ca03807..f499fa605c2 100644 --- a/keyboards/hineybush/sm68/keyboard.json +++ b/keyboards/hineybush/sm68/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "sm68", "manufacturer": "hineybush", - "url": "", "maintainer": "hineybush", "usb": { "vid": "0x04D8", diff --git a/keyboards/hnahkb/freyr/keyboard.json b/keyboards/hnahkb/freyr/keyboard.json index 635c9d59897..ff83ecb5326 100644 --- a/keyboards/hnahkb/freyr/keyboard.json +++ b/keyboards/hnahkb/freyr/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Freyr", "manufacturer": "HnahKB", - "url": "", "maintainer": "vuhopkep", "usb": { "vid": "0xFEED", diff --git a/keyboards/hnahkb/stella/keyboard.json b/keyboards/hnahkb/stella/keyboard.json index 7c69ec3de21..0a7ac5c1095 100644 --- a/keyboards/hnahkb/stella/keyboard.json +++ b/keyboards/hnahkb/stella/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Stella", "manufacturer": "HnahKB", - "url": "", "maintainer": "VGS", "usb": { "vid": "0xFEED", diff --git a/keyboards/holyswitch/lightweight65/keyboard.json b/keyboards/holyswitch/lightweight65/keyboard.json index 16a9f737376..bc2fdc9504b 100644 --- a/keyboards/holyswitch/lightweight65/keyboard.json +++ b/keyboards/holyswitch/lightweight65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Lightweight65", "manufacturer": "HolySwitch", - "url": "", "maintainer": "DeskDaily", "usb": { "vid": "0x484F", diff --git a/keyboards/holyswitch/southpaw75/keyboard.json b/keyboards/holyswitch/southpaw75/keyboard.json index 1483e1fc315..e735895f20a 100644 --- a/keyboards/holyswitch/southpaw75/keyboard.json +++ b/keyboards/holyswitch/southpaw75/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "southpaw default", "manufacturer": "drewguy", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x484F", diff --git a/keyboards/horrortroll/chinese_pcb/black_e65/keyboard.json b/keyboards/horrortroll/chinese_pcb/black_e65/keyboard.json index cef69593d74..6e8f7a00ff2 100644 --- a/keyboards/horrortroll/chinese_pcb/black_e65/keyboard.json +++ b/keyboards/horrortroll/chinese_pcb/black_e65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Black E6.5", "manufacturer": "HorrorTroll", - "url": "", "maintainer": "HorrorTroll", "usb": { "vid": "0x7516", diff --git a/keyboards/horrortroll/chinese_pcb/devil68_pro/keyboard.json b/keyboards/horrortroll/chinese_pcb/devil68_pro/keyboard.json index 77eac52ebd0..f19a3387210 100644 --- a/keyboards/horrortroll/chinese_pcb/devil68_pro/keyboard.json +++ b/keyboards/horrortroll/chinese_pcb/devil68_pro/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Devil68 Pro", "manufacturer": "HorrorTroll", - "url": "", "maintainer": "HorrorTroll", "usb": { "vid": "0x7516", diff --git a/keyboards/horrortroll/handwired_k552/keyboard.json b/keyboards/horrortroll/handwired_k552/keyboard.json index 213cdf80860..97f8ec822c9 100644 --- a/keyboards/horrortroll/handwired_k552/keyboard.json +++ b/keyboards/horrortroll/handwired_k552/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "K552 Kumara", "manufacturer": "HorrorTroll", - "url": "", "maintainer": "HorrorTroll", "usb": { "vid": "0x7516", diff --git a/keyboards/horrortroll/lemon40/keyboard.json b/keyboards/horrortroll/lemon40/keyboard.json index 6303fb70bba..1c9993ca77e 100644 --- a/keyboards/horrortroll/lemon40/keyboard.json +++ b/keyboards/horrortroll/lemon40/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Lemon40", "manufacturer": "HorrorTroll", - "url": "", "maintainer": "HorrorTroll", "usb": { "vid": "0x7516", diff --git a/keyboards/hp69/keyboard.json b/keyboards/hp69/keyboard.json index 83ed922a279..577606be5df 100644 --- a/keyboards/hp69/keyboard.json +++ b/keyboards/hp69/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "hp69", "manufacturer": "Desiboards", - "url": "", "maintainer": "Ananya Kirti", "usb": { "vid": "0x416B", diff --git a/keyboards/hs60/v1/info.json b/keyboards/hs60/v1/info.json index c6ebae97ce9..4c4e7d4e47e 100644 --- a/keyboards/hs60/v1/info.json +++ b/keyboards/hs60/v1/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "HS60", "manufacturer": "Yiancar-Designs", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/hs60/v2/ansi/keyboard.json b/keyboards/hs60/v2/ansi/keyboard.json index e0781ef54b5..d0ec52a50d9 100644 --- a/keyboards/hs60/v2/ansi/keyboard.json +++ b/keyboards/hs60/v2/ansi/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "HS60 V2", "manufacturer": "Yiancar-Designs", - "url": "", "maintainer": "yiancar", "usb": { "vid": "0x8968", diff --git a/keyboards/hs60/v2/hhkb/keyboard.json b/keyboards/hs60/v2/hhkb/keyboard.json index 9bd4d111c2c..327359b6978 100644 --- a/keyboards/hs60/v2/hhkb/keyboard.json +++ b/keyboards/hs60/v2/hhkb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "HS60 V2", "manufacturer": "Yiancar-Designs", - "url": "", "maintainer": "yiancar", "usb": { "vid": "0x8968", diff --git a/keyboards/hs60/v2/iso/keyboard.json b/keyboards/hs60/v2/iso/keyboard.json index a51dac05fa2..e31ff53d7bc 100644 --- a/keyboards/hs60/v2/iso/keyboard.json +++ b/keyboards/hs60/v2/iso/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "HS60 V2", "manufacturer": "Yiancar-Designs", - "url": "", "maintainer": "yiancar", "usb": { "vid": "0x8968", diff --git a/keyboards/hubble/keyboard.json b/keyboards/hubble/keyboard.json index 735cf4237df..2b75235cbb1 100644 --- a/keyboards/hubble/keyboard.json +++ b/keyboards/hubble/keyboard.json @@ -37,7 +37,6 @@ "cols": ["F5", "F6", "B4", "E6", "D7", "C6", "D4", "D0"], "rows": ["D1", "F4", "F7", "B5", "B1", "B3", "B6", "B2"] }, - "url": "", "usb": { "vid": "0x4680", "pid": "0x1357", diff --git a/keyboards/icebreaker/hotswap/keyboard.json b/keyboards/icebreaker/hotswap/keyboard.json index ab55c5ae5ff..5102da60c18 100644 --- a/keyboards/icebreaker/hotswap/keyboard.json +++ b/keyboards/icebreaker/hotswap/keyboard.json @@ -152,7 +152,6 @@ ], "max_brightness": 120 }, - "url": "", "usb": { "device_version": "0.0.1", "pid": "0x6503", diff --git a/keyboards/idobao/id75/v1/keyboard.json b/keyboards/idobao/id75/v1/keyboard.json index f52938d0d8b..ed3cae13053 100644 --- a/keyboards/idobao/id75/v1/keyboard.json +++ b/keyboards/idobao/id75/v1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "ID75", "manufacturer": "IDOBAO", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x6964", diff --git a/keyboards/idobao/id75/v2/keyboard.json b/keyboards/idobao/id75/v2/keyboard.json index 09e24dbd47e..69cbc037c43 100644 --- a/keyboards/idobao/id75/v2/keyboard.json +++ b/keyboards/idobao/id75/v2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "ID75", "manufacturer": "IDOBAO", - "url": "", "maintainer": "peepeetee", "usb": { "vid": "0x6964", diff --git a/keyboards/idobao/id80/v2/info.json b/keyboards/idobao/id80/v2/info.json index 4d6e0773d80..66123fcb2a4 100644 --- a/keyboards/idobao/id80/v2/info.json +++ b/keyboards/idobao/id80/v2/info.json @@ -1,6 +1,5 @@ { "manufacturer": "IDOBAO", - "url": "", "maintainer": "IDOBAOKB", "usb": { "vid": "0x6964", diff --git a/keyboards/igloo/keyboard.json b/keyboards/igloo/keyboard.json index 6e0cba498bb..cf64823104f 100644 --- a/keyboards/igloo/keyboard.json +++ b/keyboards/igloo/keyboard.json @@ -19,7 +19,6 @@ "rows": ["B7", "D0", "D1", "D2", "D3"] }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/illuminati/is0/keyboard.json b/keyboards/illuminati/is0/keyboard.json index ee90646b19a..78bbe029abe 100644 --- a/keyboards/illuminati/is0/keyboard.json +++ b/keyboards/illuminati/is0/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "iS0", "manufacturer": "Illuminati Works", - "url": "", "maintainer": "ai03", "usb": { "vid": "0xA103", diff --git a/keyboards/illusion/rosa/keyboard.json b/keyboards/illusion/rosa/keyboard.json index 29b7a2124d3..f1077ecdbde 100644 --- a/keyboards/illusion/rosa/keyboard.json +++ b/keyboards/illusion/rosa/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Rosa", "manufacturer": "illusion keyboards", - "url": "", "maintainer": "illusion", "usb": { "vid": "0x694B", diff --git a/keyboards/ilumkb/primus75/keyboard.json b/keyboards/ilumkb/primus75/keyboard.json index 15831ffda68..52d29820970 100644 --- a/keyboards/ilumkb/primus75/keyboard.json +++ b/keyboards/ilumkb/primus75/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Primus75", "manufacturer": "moyi4681", - "url": "", "maintainer": "moyi4681", "usb": { "vid": "0x445A", diff --git a/keyboards/ilumkb/simpler61/keyboard.json b/keyboards/ilumkb/simpler61/keyboard.json index 8e7680fb9f7..a9fc9913c8c 100644 --- a/keyboards/ilumkb/simpler61/keyboard.json +++ b/keyboards/ilumkb/simpler61/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Simpler61", "manufacturer": "Equalz", - "url": "", "maintainer": "Equalz", "usb": { "vid": "0xC3C3", diff --git a/keyboards/ilumkb/simpler64/keyboard.json b/keyboards/ilumkb/simpler64/keyboard.json index 65aa627b042..30ec37c9779 100644 --- a/keyboards/ilumkb/simpler64/keyboard.json +++ b/keyboards/ilumkb/simpler64/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Simpler64", "manufacturer": "Equalz", - "url": "", "maintainer": "Equalz", "usb": { "vid": "0xC3C3", diff --git a/keyboards/ilumkb/volcano660/keyboard.json b/keyboards/ilumkb/volcano660/keyboard.json index fa74e46fedb..e353c8cce05 100644 --- a/keyboards/ilumkb/volcano660/keyboard.json +++ b/keyboards/ilumkb/volcano660/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Volcano660", "manufacturer": "DZTech", - "url": "", "maintainer": "moyi4681", "usb": { "vid": "0x445A", diff --git a/keyboards/inett_studio/sqx/hotswap/keyboard.json b/keyboards/inett_studio/sqx/hotswap/keyboard.json index 432112e7f45..6c04e4fbe57 100644 --- a/keyboards/inett_studio/sqx/hotswap/keyboard.json +++ b/keyboards/inett_studio/sqx/hotswap/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "SQUARE.X", "manufacturer": "iNETT Studio", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x694E", diff --git a/keyboards/inett_studio/sqx/universal/keyboard.json b/keyboards/inett_studio/sqx/universal/keyboard.json index 11bb224a0f0..7c7b4e479e6 100644 --- a/keyboards/inett_studio/sqx/universal/keyboard.json +++ b/keyboards/inett_studio/sqx/universal/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "SQUARE.X", "manufacturer": "iNETT Studio", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x694E", diff --git a/keyboards/inland/mk47/keyboard.json b/keyboards/inland/mk47/keyboard.json index b6404f58b20..de6f792f6df 100644 --- a/keyboards/inland/mk47/keyboard.json +++ b/keyboards/inland/mk47/keyboard.json @@ -2,7 +2,6 @@ "keyboard_name": "MK47", "manufacturer": "Inland", "maintainer": "jonylee@hfd", - "url":"", "usb": { "vid": "0xFFFE", "pid": "0x0002", diff --git a/keyboards/input_club/k_type/keyboard.json b/keyboards/input_club/k_type/keyboard.json index a4e8e2419ed..3769bdae836 100644 --- a/keyboards/input_club/k_type/keyboard.json +++ b/keyboards/input_club/k_type/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "K-Type (QMK)", "manufacturer": "Input:Club", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x1C11", diff --git a/keyboards/irene/keyboard.json b/keyboards/irene/keyboard.json index 3280c34c036..b9189bc864d 100644 --- a/keyboards/irene/keyboard.json +++ b/keyboards/irene/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Irene", "manufacturer": "Andrei Collado", - "url": "", "maintainer": "Andrei Collado", "usb": { "vid": "0x1434", diff --git a/keyboards/iriskeyboards/keyboard.json b/keyboards/iriskeyboards/keyboard.json index 200c3a3f6ae..c568e8e232e 100644 --- a/keyboards/iriskeyboards/keyboard.json +++ b/keyboards/iriskeyboards/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Iris Rev0", "manufacturer": "SonOfAres", - "url": "", "maintainer": "SonOfAres", "usb": { "vid": "0x494B", diff --git a/keyboards/iron180/keyboard.json b/keyboards/iron180/keyboard.json index 8daae1b1eb9..90593faf8a7 100644 --- a/keyboards/iron180/keyboard.json +++ b/keyboards/iron180/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Iron180", "manufacturer": "SmithRune", - "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x8384", diff --git a/keyboards/j80/keyboard.json b/keyboards/j80/keyboard.json index 72745d262fd..c7fee838344 100644 --- a/keyboards/j80/keyboard.json +++ b/keyboards/j80/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "J80", "manufacturer": "JER", - "url": "", "maintainer": "oeywil", "usb": { "vid": "0x20A0", diff --git a/keyboards/jae/j01/keyboard.json b/keyboards/jae/j01/keyboard.json index fd16f2a46e7..2375122bd8a 100644 --- a/keyboards/jae/j01/keyboard.json +++ b/keyboards/jae/j01/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "J-01", "manufacturer": "Evyd13", - "url": "", "maintainer": "MechMerlin", "usb": { "vid": "0x4705", diff --git a/keyboards/jagdpietr/drakon/keyboard.json b/keyboards/jagdpietr/drakon/keyboard.json index 2d2b68a41ac..dfb38ac200b 100644 --- a/keyboards/jagdpietr/drakon/keyboard.json +++ b/keyboards/jagdpietr/drakon/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "drakon", "manufacturer": "jagdpietr", - "url": "", "maintainer": "jagdpietr", "usb": { "vid": "0xFEED", diff --git a/keyboards/jaykeeb/aumz_work/info.json b/keyboards/jaykeeb/aumz_work/info.json index 7ca2eb32b83..8a1107127a0 100644 --- a/keyboards/jaykeeb/aumz_work/info.json +++ b/keyboards/jaykeeb/aumz_work/info.json @@ -3,7 +3,6 @@ "maintainer": "Alabahuy", "processor": "RP2040", "bootloader": "rp2040", - "url": "", "diode_direction": "COL2ROW", "features": { "bootmagic": true, diff --git a/keyboards/jaykeeb/jk60/keyboard.json b/keyboards/jaykeeb/jk60/keyboard.json index 3899d90699c..813f4d1e870 100644 --- a/keyboards/jaykeeb/jk60/keyboard.json +++ b/keyboards/jaykeeb/jk60/keyboard.json @@ -21,7 +21,6 @@ "on_state": 0 }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x7760", diff --git a/keyboards/jaykeeb/jk60rgb/keyboard.json b/keyboards/jaykeeb/jk60rgb/keyboard.json index fd6876d5632..45a708615ee 100644 --- a/keyboards/jaykeeb/jk60rgb/keyboard.json +++ b/keyboards/jaykeeb/jk60rgb/keyboard.json @@ -154,7 +154,6 @@ ] }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x7762", diff --git a/keyboards/jaykeeb/jk65/keyboard.json b/keyboards/jaykeeb/jk65/keyboard.json index 0be07caacdc..320725509ee 100644 --- a/keyboards/jaykeeb/jk65/keyboard.json +++ b/keyboards/jaykeeb/jk65/keyboard.json @@ -21,7 +21,6 @@ "on_state": 0 }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x7765", diff --git a/keyboards/jaykeeb/joker/keyboard.json b/keyboards/jaykeeb/joker/keyboard.json index ed8b59d03f4..3d3663d38d4 100644 --- a/keyboards/jaykeeb/joker/keyboard.json +++ b/keyboards/jaykeeb/joker/keyboard.json @@ -23,7 +23,6 @@ "on_state": 0 }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0795", diff --git a/keyboards/jaykeeb/kamigakushi/keyboard.json b/keyboards/jaykeeb/kamigakushi/keyboard.json index 6095d9cd87c..72c6d19937c 100644 --- a/keyboards/jaykeeb/kamigakushi/keyboard.json +++ b/keyboards/jaykeeb/kamigakushi/keyboard.json @@ -43,7 +43,6 @@ "rows": ["GP24", "GP29", "GP6", "GP15", "GP16"] }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0765", diff --git a/keyboards/jaykeeb/orba/keyboard.json b/keyboards/jaykeeb/orba/keyboard.json index b437667b14d..8d6a27d90b2 100644 --- a/keyboards/jaykeeb/orba/keyboard.json +++ b/keyboards/jaykeeb/orba/keyboard.json @@ -17,7 +17,6 @@ "rows": ["GP11", "GP10", "GP18", "GP19", "GP0" ] }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0769", diff --git a/keyboards/jaykeeb/sebelas/keyboard.json b/keyboards/jaykeeb/sebelas/keyboard.json index e88607703ee..4e5dc822b92 100644 --- a/keyboards/jaykeeb/sebelas/keyboard.json +++ b/keyboards/jaykeeb/sebelas/keyboard.json @@ -41,7 +41,6 @@ } }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0767", diff --git a/keyboards/jaykeeb/skyline/keyboard.json b/keyboards/jaykeeb/skyline/keyboard.json index 068c11a8740..66d3390fc8e 100644 --- a/keyboards/jaykeeb/skyline/keyboard.json +++ b/keyboards/jaykeeb/skyline/keyboard.json @@ -22,7 +22,6 @@ "rows": ["GP13", "GP27", "GP26", "GP25", "GP22", "GP23"] }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0799", diff --git a/keyboards/jaykeeb/tokki/keyboard.json b/keyboards/jaykeeb/tokki/keyboard.json index 0ab1150017b..82c8056ebc8 100644 --- a/keyboards/jaykeeb/tokki/keyboard.json +++ b/keyboards/jaykeeb/tokki/keyboard.json @@ -41,7 +41,6 @@ } }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0768", diff --git a/keyboards/jc65/v32a/keyboard.json b/keyboards/jc65/v32a/keyboard.json index 7fd13e06266..4cb14e54d4a 100644 --- a/keyboards/jc65/v32a/keyboard.json +++ b/keyboards/jc65/v32a/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "JC65 BMC", "manufacturer": "RAMA", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x1234", diff --git a/keyboards/jc65/v32u4/keyboard.json b/keyboards/jc65/v32u4/keyboard.json index 6a8d923507c..0abdbf6a185 100644 --- a/keyboards/jc65/v32u4/keyboard.json +++ b/keyboards/jc65/v32u4/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "JC65", "manufacturer": "dou", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/jd40/keyboard.json b/keyboards/jd40/keyboard.json index f56602b2151..062972d43f4 100644 --- a/keyboards/jd40/keyboard.json +++ b/keyboards/jd40/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "jd40", "manufacturer": "geekhack", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/jd45/keyboard.json b/keyboards/jd45/keyboard.json index 6c103ec6dd0..559c5f1d260 100644 --- a/keyboards/jd45/keyboard.json +++ b/keyboards/jd45/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "JD45", "manufacturer": "geekhack", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/jels/boaty/keyboard.json b/keyboards/jels/boaty/keyboard.json index 36fa9288ab2..6bfcf25f168 100644 --- a/keyboards/jels/boaty/keyboard.json +++ b/keyboards/jels/boaty/keyboard.json @@ -6,7 +6,6 @@ "pid": "0x000B", "device_version": "1.0.0" }, - "url": "", "maintainer": "Jels", "processor": "atmega328p", "bootloader": "usbasploader", diff --git a/keyboards/jels/jels60/info.json b/keyboards/jels/jels60/info.json index 7194542d48a..8f3e05e5810 100644 --- a/keyboards/jels/jels60/info.json +++ b/keyboards/jels/jels60/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Jels60", "manufacturer": "Jels", - "url": "", "maintainer": "Jels", "usb": { "vid": "0x006A", diff --git a/keyboards/jels/jels88/keyboard.json b/keyboards/jels/jels88/keyboard.json index e4d2c6e2737..430396ccf1a 100644 --- a/keyboards/jels/jels88/keyboard.json +++ b/keyboards/jels/jels88/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Jels88", "manufacturer": "Jels", - "url": "", "maintainer": "Jels", "usb": { "vid": "0x006A", diff --git a/keyboards/jolofsor/denial75/keyboard.json b/keyboards/jolofsor/denial75/keyboard.json index df7c3157c9a..14fbb073285 100644 --- a/keyboards/jolofsor/denial75/keyboard.json +++ b/keyboards/jolofsor/denial75/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "denial75", "manufacturer": "jsor-hpoli", - "url": "", "maintainer": "jolofsor", "usb": { "vid": "0x4A48", diff --git a/keyboards/jukaie/jk01/keyboard.json b/keyboards/jukaie/jk01/keyboard.json index cde0b38034b..3a6845258a8 100644 --- a/keyboards/jukaie/jk01/keyboard.json +++ b/keyboards/jukaie/jk01/keyboard.json @@ -181,7 +181,6 @@ ], "sleep": true }, - "url": "", "usb": { "device_version": "0.0.2", "pid": "0x0002", diff --git a/keyboards/kabedon/kabedon78s/keyboard.json b/keyboards/kabedon/kabedon78s/keyboard.json index b875f9b35ad..393dcd4b3ec 100644 --- a/keyboards/kabedon/kabedon78s/keyboard.json +++ b/keyboards/kabedon/kabedon78s/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "78S", "manufacturer": "Kabe_Don", - "url": "", "maintainer": "370490639", "usb": { "vid": "0x4B44", diff --git a/keyboards/kabedon/kabedon98e/keyboard.json b/keyboards/kabedon/kabedon98e/keyboard.json index beff70d5d9f..85cc538d7df 100644 --- a/keyboards/kabedon/kabedon98e/keyboard.json +++ b/keyboards/kabedon/kabedon98e/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "98e", "manufacturer": "Kabe_Don", - "url": "", "maintainer": "370490639", "usb": { "vid": "0x4B44", diff --git a/keyboards/kagizaraya/chidori/keyboard.json b/keyboards/kagizaraya/chidori/keyboard.json index 2f9066149d9..0187d55eec8 100644 --- a/keyboards/kagizaraya/chidori/keyboard.json +++ b/keyboards/kagizaraya/chidori/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Chidori", "manufacturer": "Kagizaraya", - "url": "", "maintainer": "ka2hiro", "usb": { "vid": "0xFEED", diff --git a/keyboards/kagizaraya/halberd/keyboard.json b/keyboards/kagizaraya/halberd/keyboard.json index c8c5b5e2146..da825562718 100644 --- a/keyboards/kagizaraya/halberd/keyboard.json +++ b/keyboards/kagizaraya/halberd/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Halberd", "manufacturer": "Kagizaraya", - "url": "", "maintainer": "ka2hiro", "usb": { "vid": "0xFEED", diff --git a/keyboards/kagizaraya/miniaxe/keyboard.json b/keyboards/kagizaraya/miniaxe/keyboard.json index b2e3b14d0e6..52ecbbac5a8 100644 --- a/keyboards/kagizaraya/miniaxe/keyboard.json +++ b/keyboards/kagizaraya/miniaxe/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "MiniAxe", "manufacturer": "ENDO Katsuhiro", - "url": "", "maintainer": "ka2hiro", "usb": { "vid": "0xFEED", diff --git a/keyboards/kagizaraya/scythe/keyboard.json b/keyboards/kagizaraya/scythe/keyboard.json index ed1bd99f66e..eddb54315d2 100644 --- a/keyboards/kagizaraya/scythe/keyboard.json +++ b/keyboards/kagizaraya/scythe/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Scythe", "manufacturer": "Kagizaraya", - "url": "", "maintainer": "ka2hiro", "usb": { "vid": "0xFEED", diff --git a/keyboards/kakunpc/business_card/alpha/keyboard.json b/keyboards/kakunpc/business_card/alpha/keyboard.json index 17c42ebb31f..c357ae3a006 100644 --- a/keyboards/kakunpc/business_card/alpha/keyboard.json +++ b/keyboards/kakunpc/business_card/alpha/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "business_card alpha", "manufacturer": "kakunpc", - "url": "", "maintainer": "kakunpc", "usb": { "vid": "0xFEED", diff --git a/keyboards/kakunpc/business_card/beta/keyboard.json b/keyboards/kakunpc/business_card/beta/keyboard.json index 5b6a77f3580..0e8fda9f58c 100644 --- a/keyboards/kakunpc/business_card/beta/keyboard.json +++ b/keyboards/kakunpc/business_card/beta/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "business_card beta", "manufacturer": "kakunpc", - "url": "", "maintainer": "kakunpc", "usb": { "vid": "0xFEED", diff --git a/keyboards/kb_elmo/67mk_e/keyboard.json b/keyboards/kb_elmo/67mk_e/keyboard.json index 4e842f28e6a..046b08c667b 100644 --- a/keyboards/kb_elmo/67mk_e/keyboard.json +++ b/keyboards/kb_elmo/67mk_e/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "67mk_E", "manufacturer": "kb_elmo", - "url": "", "maintainer": "kb-elmo", "usb": { "vid": "0xA68C", diff --git a/keyboards/kb_elmo/isolation/keyboard.json b/keyboards/kb_elmo/isolation/keyboard.json index e7a40a55e63..11526759129 100644 --- a/keyboards/kb_elmo/isolation/keyboard.json +++ b/keyboards/kb_elmo/isolation/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "ISOlation", "manufacturer": "kb-elmo", - "url": "", "maintainer": "kb-elmo", "usb": { "vid": "0xA68C", diff --git a/keyboards/kb_elmo/qez/keyboard.json b/keyboards/kb_elmo/qez/keyboard.json index ab1f8230439..fa53745b31c 100644 --- a/keyboards/kb_elmo/qez/keyboard.json +++ b/keyboards/kb_elmo/qez/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "QEZ", "manufacturer": "kb_elmo", - "url": "", "maintainer": "kb-elmo", "usb": { "vid": "0xA68C", diff --git a/keyboards/kb_elmo/vertex/keyboard.json b/keyboards/kb_elmo/vertex/keyboard.json index 5585386296b..c40e87ad628 100644 --- a/keyboards/kb_elmo/vertex/keyboard.json +++ b/keyboards/kb_elmo/vertex/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Vertex", "manufacturer": "kb_elmo", - "url": "", "maintainer": "kb-elmo", "usb": { "vid": "0xA68C", diff --git a/keyboards/kbdfans/bella/rgb/keyboard.json b/keyboards/kbdfans/bella/rgb/keyboard.json index 50310e36679..2ca18d28510 100644 --- a/keyboards/kbdfans/bella/rgb/keyboard.json +++ b/keyboards/kbdfans/bella/rgb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Bella RGB ANSI", "manufacturer": "KBDfans", - "url": "", "maintainer": "moyi4681", "usb": { "vid": "0x4B42", diff --git a/keyboards/kbdfans/bella/rgb_iso/keyboard.json b/keyboards/kbdfans/bella/rgb_iso/keyboard.json index 20b00283ed2..c7dd6423b52 100644 --- a/keyboards/kbdfans/bella/rgb_iso/keyboard.json +++ b/keyboards/kbdfans/bella/rgb_iso/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Bella RGB ISO", "manufacturer": "KBDfans", - "url": "", "maintainer": "moyi4681", "usb": { "vid": "0x4B42", diff --git a/keyboards/kbdfans/bella/soldered/keyboard.json b/keyboards/kbdfans/bella/soldered/keyboard.json index aa5d9159800..e99a4fb224a 100644 --- a/keyboards/kbdfans/bella/soldered/keyboard.json +++ b/keyboards/kbdfans/bella/soldered/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Bella Soldered", "manufacturer": "KBDfans", - "url": "", "maintainer": "kbdfans", "usb": { "vid": "0x4B42", diff --git a/keyboards/kbdfans/boop65/rgb/keyboard.json b/keyboards/kbdfans/boop65/rgb/keyboard.json index 49fa78b3159..6fbd28816b2 100644 --- a/keyboards/kbdfans/boop65/rgb/keyboard.json +++ b/keyboards/kbdfans/boop65/rgb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Boop65 RGB", "manufacturer": "KBDfans", - "url": "", "maintainer": "moyi4681", "usb": { "vid": "0x4B42", diff --git a/keyboards/kbdfans/bounce/75/soldered/keyboard.json b/keyboards/kbdfans/bounce/75/soldered/keyboard.json index e1610872e1b..73c6d63d3ad 100644 --- a/keyboards/kbdfans/bounce/75/soldered/keyboard.json +++ b/keyboards/kbdfans/bounce/75/soldered/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Bounce75 Soldered", "manufacturer": "KBDfans", - "url": "", "maintainer": "moyi4681", "usb": { "vid": "0x4B42", diff --git a/keyboards/kbdfans/jm60/keyboard.json b/keyboards/kbdfans/jm60/keyboard.json index ffa205daa08..6bc60c308cb 100644 --- a/keyboards/kbdfans/jm60/keyboard.json +++ b/keyboards/kbdfans/jm60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "JM60", "manufacturer": "JMWS", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/kbdfans/kbd4x/keyboard.json b/keyboards/kbdfans/kbd4x/keyboard.json index 77abf71f28e..1f3d5ce25e4 100644 --- a/keyboards/kbdfans/kbd4x/keyboard.json +++ b/keyboards/kbdfans/kbd4x/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "KBD4x", "manufacturer": "KBDfans", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/kbdfans/kbd66/keyboard.json b/keyboards/kbdfans/kbd66/keyboard.json index 2b614442a0c..57cbab49fdd 100644 --- a/keyboards/kbdfans/kbd66/keyboard.json +++ b/keyboards/kbdfans/kbd66/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "KBD66", "manufacturer": "KBDfans", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/kbdfans/kbd67/hotswap/keyboard.json b/keyboards/kbdfans/kbd67/hotswap/keyboard.json index fb0c165d14f..4620d06a163 100644 --- a/keyboards/kbdfans/kbd67/hotswap/keyboard.json +++ b/keyboards/kbdfans/kbd67/hotswap/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "KBD67 Hotswap", "manufacturer": "KBDFans", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B42", diff --git a/keyboards/kbdfans/kbd67/mkii_soldered/keyboard.json b/keyboards/kbdfans/kbd67/mkii_soldered/keyboard.json index 397f525f7ae..f4bc2437d95 100644 --- a/keyboards/kbdfans/kbd67/mkii_soldered/keyboard.json +++ b/keyboards/kbdfans/kbd67/mkii_soldered/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "KBD67-MKII Soldered", "manufacturer": "KBDfans", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xA103", diff --git a/keyboards/kbdfans/kbd67/mkiirgb/info.json b/keyboards/kbdfans/kbd67/mkiirgb/info.json index 683503b4ee9..13713703572 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/info.json +++ b/keyboards/kbdfans/kbd67/mkiirgb/info.json @@ -1,6 +1,5 @@ { "manufacturer": "KBDfans", - "url": "", "maintainer": "moyi4681", "usb": { "vid": "0x4B42" diff --git a/keyboards/kbdfans/kbd67/mkiirgb_iso/keyboard.json b/keyboards/kbdfans/kbd67/mkiirgb_iso/keyboard.json index b8e9fdaf1c4..5000f8fb0a2 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb_iso/keyboard.json +++ b/keyboards/kbdfans/kbd67/mkiirgb_iso/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "KBD67MKIIRGB ISO", "manufacturer": "KBDfans", - "url": "", "maintainer": "moyi4681", "usb": { "vid": "0x4B42", diff --git a/keyboards/kbdfans/kbd67/rev1/keyboard.json b/keyboards/kbdfans/kbd67/rev1/keyboard.json index ba91317906b..04f88cecd2a 100644 --- a/keyboards/kbdfans/kbd67/rev1/keyboard.json +++ b/keyboards/kbdfans/kbd67/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "KBD67 Rev1", "manufacturer": "KBDfans", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B42", diff --git a/keyboards/kbdfans/kbd67/rev2/keyboard.json b/keyboards/kbdfans/kbd67/rev2/keyboard.json index 1e9d87ba0de..1190d3bd8ac 100644 --- a/keyboards/kbdfans/kbd67/rev2/keyboard.json +++ b/keyboards/kbdfans/kbd67/rev2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "KBD67 Rev2", "manufacturer": "KBDfans", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B42", diff --git a/keyboards/kbdfans/kbd6x/keyboard.json b/keyboards/kbdfans/kbd6x/keyboard.json index c2b9f28b633..e603cb64ff0 100644 --- a/keyboards/kbdfans/kbd6x/keyboard.json +++ b/keyboards/kbdfans/kbd6x/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "KBD6X", "manufacturer": "KBDfans", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B42", diff --git a/keyboards/kbdfans/kbd75/rev1/keyboard.json b/keyboards/kbdfans/kbd75/rev1/keyboard.json index 01429c8ebbe..900e5dbd78c 100644 --- a/keyboards/kbdfans/kbd75/rev1/keyboard.json +++ b/keyboards/kbdfans/kbd75/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "KBD75 rev1", "manufacturer": "KBDfans", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B42", diff --git a/keyboards/kbdfans/kbd75/rev2/keyboard.json b/keyboards/kbdfans/kbd75/rev2/keyboard.json index 322eba661a1..e0f862d40fc 100644 --- a/keyboards/kbdfans/kbd75/rev2/keyboard.json +++ b/keyboards/kbdfans/kbd75/rev2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "KBD75 rev2", "manufacturer": "KBDfans", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B42", diff --git a/keyboards/kbdfans/kbd75rgb/keyboard.json b/keyboards/kbdfans/kbd75rgb/keyboard.json index 9a5f7a6908e..b30fb22126b 100644 --- a/keyboards/kbdfans/kbd75rgb/keyboard.json +++ b/keyboards/kbdfans/kbd75rgb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "KBD75RGB", "manufacturer": "KBDfans", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B42", diff --git a/keyboards/kbdfans/kbd8x/keyboard.json b/keyboards/kbdfans/kbd8x/keyboard.json index fe0106165d8..b8d34f8277c 100644 --- a/keyboards/kbdfans/kbd8x/keyboard.json +++ b/keyboards/kbdfans/kbd8x/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "KBD8X", "manufacturer": "KBDfans", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/kbdfans/kbdmini/keyboard.json b/keyboards/kbdfans/kbdmini/keyboard.json index 8f2dade705d..2f470973092 100644 --- a/keyboards/kbdfans/kbdmini/keyboard.json +++ b/keyboards/kbdfans/kbdmini/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "KBDMINI", "manufacturer": "DZTECH", - "url": "", "maintainer": "KBDFans", "usb": { "vid": "0xFEED", diff --git a/keyboards/kbdfans/maja/keyboard.json b/keyboards/kbdfans/maja/keyboard.json index c307f78637a..a1ba96af51d 100644 --- a/keyboards/kbdfans/maja/keyboard.json +++ b/keyboards/kbdfans/maja/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Maja", "manufacturer": "KBDFans", - "url": "", "maintainer": "DZTECH", "usb": { "vid": "0x4B42", diff --git a/keyboards/kbdfans/maja_soldered/keyboard.json b/keyboards/kbdfans/maja_soldered/keyboard.json index f182ef97d13..7879fd99620 100644 --- a/keyboards/kbdfans/maja_soldered/keyboard.json +++ b/keyboards/kbdfans/maja_soldered/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Maja Soldered", "manufacturer": "KBDFans", - "url": "", "maintainer": "DZTECH", "usb": { "vid": "0x4B42", diff --git a/keyboards/kbdfans/niu_mini/keyboard.json b/keyboards/kbdfans/niu_mini/keyboard.json index 4c7d6f6d507..766d63d366b 100644 --- a/keyboards/kbdfans/niu_mini/keyboard.json +++ b/keyboards/kbdfans/niu_mini/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "NIU Mini", "manufacturer": "KBDFans", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x6E6D", diff --git a/keyboards/kbdfans/odin/rgb/keyboard.json b/keyboards/kbdfans/odin/rgb/keyboard.json index 1777e2cdc0b..f1a0e7b8e82 100644 --- a/keyboards/kbdfans/odin/rgb/keyboard.json +++ b/keyboards/kbdfans/odin/rgb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Odin RGB", "manufacturer": "KBDFans", - "url": "", "maintainer": "moyi4681", "usb": { "vid": "0x4B42", diff --git a/keyboards/kbdfans/odin/soldered/keyboard.json b/keyboards/kbdfans/odin/soldered/keyboard.json index 42a8a0e0567..4832e90096c 100644 --- a/keyboards/kbdfans/odin/soldered/keyboard.json +++ b/keyboards/kbdfans/odin/soldered/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Odin Soldered", "manufacturer": "KBDFans", - "url": "", "maintainer": "moyi4681", "usb": { "vid": "0x4B42", diff --git a/keyboards/kbdfans/odin/v2/keyboard.json b/keyboards/kbdfans/odin/v2/keyboard.json index 595a5596fe2..4ac47226bcf 100644 --- a/keyboards/kbdfans/odin/v2/keyboard.json +++ b/keyboards/kbdfans/odin/v2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Odin V2", "manufacturer": "KBDFans", - "url": "", "maintainer": "lexbrugman", "usb": { "vid": "0x4B42", diff --git a/keyboards/kbdfans/phaseone/keyboard.json b/keyboards/kbdfans/phaseone/keyboard.json index fcc6bdc7b3d..ff6b3fe6d1b 100644 --- a/keyboards/kbdfans/phaseone/keyboard.json +++ b/keyboards/kbdfans/phaseone/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Phase One", "manufacturer": "KBDFans", - "url": "", "maintainer": "moyi4681", "usb": { "vid": "0x4B42", diff --git a/keyboards/kbdfans/tiger80/keyboard.json b/keyboards/kbdfans/tiger80/keyboard.json index 9761cb892d0..ccef4de81a9 100644 --- a/keyboards/kbdfans/tiger80/keyboard.json +++ b/keyboards/kbdfans/tiger80/keyboard.json @@ -48,7 +48,6 @@ "ws2812": { "pin": "B3" }, - "url": "", "usb": { "device_version": "0.0.1", "pid": "0x0011", diff --git a/keyboards/kc60/keyboard.json b/keyboards/kc60/keyboard.json index fc214771637..f7ee4e785b8 100644 --- a/keyboards/kc60/keyboard.json +++ b/keyboards/kc60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "KC60", "manufacturer": "NPKC", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x530A", diff --git a/keyboards/kc60se/keyboard.json b/keyboards/kc60se/keyboard.json index c8bdf24a4b8..c7c18b4a762 100644 --- a/keyboards/kc60se/keyboard.json +++ b/keyboards/kc60se/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "kc60se", "manufacturer": "Unknown", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/keebformom/keyboard.json b/keyboards/keebformom/keyboard.json index b1ffee0f3da..7fbaa5737f7 100644 --- a/keyboards/keebformom/keyboard.json +++ b/keyboards/keebformom/keyboard.json @@ -1,6 +1,5 @@ { "keyboard_name": "Keeb For Mom", - "url": "", "maintainer": "qmk", "manufacturer": "nendezkombet/sandipratama", "usb": { diff --git a/keyboards/keebio/dilly/keyboard.json b/keyboards/keebio/dilly/keyboard.json index 83bf1eac9d6..223228a8e0d 100644 --- a/keyboards/keebio/dilly/keyboard.json +++ b/keyboards/keebio/dilly/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Dilly", "manufacturer": "Keebio", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xCB10", diff --git a/keyboards/keebmonkey/kbmg68/keyboard.json b/keyboards/keebmonkey/kbmg68/keyboard.json index 5cb0fa0e450..110da77d376 100644 --- a/keyboards/keebmonkey/kbmg68/keyboard.json +++ b/keyboards/keebmonkey/kbmg68/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "kbmg68", "manufacturer": "KeebMonkey", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/keebsforall/freebird60/keyboard.json b/keyboards/keebsforall/freebird60/keyboard.json index 3c4df7472a4..813275857d0 100644 --- a/keyboards/keebsforall/freebird60/keyboard.json +++ b/keyboards/keebsforall/freebird60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Freebird60", "manufacturer": "KnoblesseOblige", - "url": "", "maintainer": "KnoblesseOblige", "usb": { "vid": "0xADAD", diff --git a/keyboards/keebsforall/freebird75/keyboard.json b/keyboards/keebsforall/freebird75/keyboard.json index 1e92ad70636..2bd9579f604 100644 --- a/keyboards/keebsforall/freebird75/keyboard.json +++ b/keyboards/keebsforall/freebird75/keyboard.json @@ -17,7 +17,6 @@ "rows": ["C7", "C6", "B6", "B5", "B4", "D7"] }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x7575", diff --git a/keyboards/keebwerk/mega/ansi/keyboard.json b/keyboards/keebwerk/mega/ansi/keyboard.json index e5a12585df4..01f158da9a8 100755 --- a/keyboards/keebwerk/mega/ansi/keyboard.json +++ b/keyboards/keebwerk/mega/ansi/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Keebwerk Mega ANSI", "manufacturer": "Yiancar-Designs", - "url": "", "maintainer": "Yiancar", "usb": { "vid": "0x8968", diff --git a/keyboards/keebwerk/nano_slider/keyboard.json b/keyboards/keebwerk/nano_slider/keyboard.json index 64f59d6c10d..e44a2feb3e0 100644 --- a/keyboards/keebwerk/nano_slider/keyboard.json +++ b/keyboards/keebwerk/nano_slider/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "nano. slider", "manufacturer": "keebwerk.", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x03A8", diff --git a/keyboards/keebzdotnet/fme/keyboard.json b/keyboards/keebzdotnet/fme/keyboard.json index d7b9ebca0ca..5d6a908a810 100644 --- a/keyboards/keebzdotnet/fme/keyboard.json +++ b/keyboards/keebzdotnet/fme/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "FMe", "manufacturer": "keebzdotnet", - "url": "", "maintainer": "keebzdotnet", "usb": { "vid": "0x4B5A", diff --git a/keyboards/kelwin/utopia88/keyboard.json b/keyboards/kelwin/utopia88/keyboard.json index 406642d41c7..fb4640e2bbd 100644 --- a/keyboards/kelwin/utopia88/keyboard.json +++ b/keyboards/kelwin/utopia88/keyboard.json @@ -23,7 +23,6 @@ "rows": ["B7", "D5", "D3", "D2", "D1", "D0"] }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/keybage/radpad/keyboard.json b/keyboards/keybage/radpad/keyboard.json index 84407a93103..6fa5163beee 100644 --- a/keyboards/keybage/radpad/keyboard.json +++ b/keyboards/keybage/radpad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "RadPad", "manufacturer": "Keybage", - "url": "", "maintainer": "Brandon Schlack", "usb": { "vid": "0x4253", diff --git a/keyboards/keybee/keybee65/keyboard.json b/keyboards/keybee/keybee65/keyboard.json index 7952378b15b..56c5d331758 100644 --- a/keyboards/keybee/keybee65/keyboard.json +++ b/keyboards/keybee/keybee65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "KeyBee65", "manufacturer": "KeyBee", - "url": "", "maintainer": "ToastyStoemp", "usb": { "vid": "0x6265", diff --git a/keyboards/keyboardio/atreus/keyboard.json b/keyboards/keyboardio/atreus/keyboard.json index 5185d9ee287..7fee6ec54d8 100644 --- a/keyboards/keyboardio/atreus/keyboard.json +++ b/keyboards/keyboardio/atreus/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Atreus", "manufacturer": "Keyboardio", - "url": "", "maintainer": "keyboardio", "usb": { "vid": "0x1209", diff --git a/keyboards/keyhive/honeycomb/keyboard.json b/keyboards/keyhive/honeycomb/keyboard.json index 768f08275d6..69907fccc1d 100644 --- a/keyboards/keyhive/honeycomb/keyboard.json +++ b/keyboards/keyhive/honeycomb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Honeycomb", "manufacturer": "Keyhive", - "url": "", "maintainer": "filoxo", "usb": { "vid": "0xFEED", diff --git a/keyboards/keyhive/lattice60/keyboard.json b/keyboards/keyhive/lattice60/keyboard.json index b805a73357a..fce9453e348 100644 --- a/keyboards/keyhive/lattice60/keyboard.json +++ b/keyboards/keyhive/lattice60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "LATTICE60", "manufacturer": "emdarcher", - "url": "", "maintainer": "emdarcher", "usb": { "vid": "0x16C0", diff --git a/keyboards/keyhive/navi10/info.json b/keyboards/keyhive/navi10/info.json index e5df0c68e1d..25c9f14f273 100644 --- a/keyboards/keyhive/navi10/info.json +++ b/keyboards/keyhive/navi10/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Navi10", "manufacturer": "emdarcher", - "url": "", "maintainer": "emdarcher", "usb": { "vid": "0xFEED", diff --git a/keyboards/keyhive/southpole/keyboard.json b/keyboards/keyhive/southpole/keyboard.json index 71366758810..38cb349ef99 100644 --- a/keyboards/keyhive/southpole/keyboard.json +++ b/keyboards/keyhive/southpole/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "southpole", "manufacturer": "u/waxpoetic", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/keyhive/ut472/keyboard.json b/keyboards/keyhive/ut472/keyboard.json index 828058a9554..4fc67962dae 100644 --- a/keyboards/keyhive/ut472/keyboard.json +++ b/keyboards/keyhive/ut472/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "UT47.2", "manufacturer": "Keyhive", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xA103", diff --git a/keyboards/keyprez/bison/keyboard.json b/keyboards/keyprez/bison/keyboard.json index 5fd2de1ff59..1dfe883880e 100644 --- a/keyboards/keyprez/bison/keyboard.json +++ b/keyboards/keyprez/bison/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "bison", "manufacturer": "csandven", - "url": "", "maintainer": "Christian Sandven", "usb": { "vid": "0xFEED", diff --git a/keyboards/keyprez/corgi/keyboard.json b/keyboards/keyprez/corgi/keyboard.json index 8e664de03db..4dc9af92a22 100644 --- a/keyboards/keyprez/corgi/keyboard.json +++ b/keyboards/keyprez/corgi/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "corgi", "manufacturer": "Christian Sandven", - "url": "", "maintainer": "Christian Sandven", "usb": { "vid": "0xFEED", diff --git a/keyboards/keyprez/rhino/keyboard.json b/keyboards/keyprez/rhino/keyboard.json index 75854f6f997..c00219c1191 100644 --- a/keyboards/keyprez/rhino/keyboard.json +++ b/keyboards/keyprez/rhino/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "rhino", "manufacturer": "Christian Sandven", - "url": "", "maintainer": "Christian Sandven", "usb": { "vid": "0xFEED", diff --git a/keyboards/keyprez/unicorn/keyboard.json b/keyboards/keyprez/unicorn/keyboard.json index 7fa855e2408..9b103510813 100644 --- a/keyboards/keyprez/unicorn/keyboard.json +++ b/keyboards/keyprez/unicorn/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Unicorn", "manufacturer": "Keyprez", - "url": "", "maintainer": "Keyprez", "usb": { "vid": "0x6B7A", diff --git a/keyboards/keysofkings/twokey/keyboard.json b/keyboards/keysofkings/twokey/keyboard.json index 2b75891329a..3163a30e6b6 100644 --- a/keyboards/keysofkings/twokey/keyboard.json +++ b/keyboards/keysofkings/twokey/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Twokey", "manufacturer": "Keys of Kings", - "url": "", "maintainer": "Keys of Kings", "usb": { "vid": "0xFEED", diff --git a/keyboards/keyten/aperture/keyboard.json b/keyboards/keyten/aperture/keyboard.json index 7648e46cc0c..5ed3ecfb8e2 100644 --- a/keyboards/keyten/aperture/keyboard.json +++ b/keyboards/keyten/aperture/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Aperture", "manufacturer": "Bizunow", - "url": "", "maintainer": "key10iq", "usb": { "vid": "0xEB69", diff --git a/keyboards/keyten/kt3700/keyboard.json b/keyboards/keyten/kt3700/keyboard.json index 9f89ee14530..83df8285d03 100644 --- a/keyboards/keyten/kt3700/keyboard.json +++ b/keyboards/keyten/kt3700/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "kt3700", "manufacturer": "keyten", - "url": "", "maintainer": "key10iq", "usb": { "vid": "0xEB69", diff --git a/keyboards/keyten/kt60_m/keyboard.json b/keyboards/keyten/kt60_m/keyboard.json index f72deeebbd5..5426bff85ff 100644 --- a/keyboards/keyten/kt60_m/keyboard.json +++ b/keyboards/keyten/kt60_m/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "kt60-M", "manufacturer": "keyten", - "url": "", "maintainer": "key10iq", "usb": { "vid": "0xEB69", diff --git a/keyboards/kezewa/enter67/keyboard.json b/keyboards/kezewa/enter67/keyboard.json index df1d7f6b5b3..eca93113777 100644 --- a/keyboards/kezewa/enter67/keyboard.json +++ b/keyboards/kezewa/enter67/keyboard.json @@ -19,7 +19,6 @@ "rows": ["A1", "A2", "A3", "A4", "A5"] }, "processor": "STM32F072", - "url": "", "usb": { "device_version": "0.0.1", "pid": "0xAA66", diff --git a/keyboards/kezewa/enter80/keyboard.json b/keyboards/kezewa/enter80/keyboard.json index a4fe83b3ac3..9e62163192c 100644 --- a/keyboards/kezewa/enter80/keyboard.json +++ b/keyboards/kezewa/enter80/keyboard.json @@ -19,7 +19,6 @@ "cols": ["A1", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "B11", "B12", "B13", "B14", "A8", "A9", "A10", "A15", "B3"], "rows": ["B4", "B5", "B6", "B15", "B10", "B7"] }, - "url": "", "usb": { "device_version": "0.0.1", "pid": "0xFF65", diff --git a/keyboards/kibou/fukuro/keyboard.json b/keyboards/kibou/fukuro/keyboard.json index fa50cca9649..97dcaaac4bd 100644 --- a/keyboards/kibou/fukuro/keyboard.json +++ b/keyboards/kibou/fukuro/keyboard.json @@ -17,7 +17,6 @@ "rows": ["A9", "A10", "C13", "A0", "A6"] }, "processor": "STM32F072", - "url": "", "usb": { "device_version": "0.0.1", "pid": "0x0003", diff --git a/keyboards/kikkou/keyboard.json b/keyboards/kikkou/keyboard.json index af684bbc296..7e018aa62b3 100644 --- a/keyboards/kikkou/keyboard.json +++ b/keyboards/kikkou/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Kikkou", "manufacturer": "Mechwerkes", - "url": "", "maintainer": "Mechwerkes", "usb": { "vid": "0x6D65", diff --git a/keyboards/kinesis/info.json b/keyboards/kinesis/info.json index 49025977bd3..066f072ebd9 100644 --- a/keyboards/kinesis/info.json +++ b/keyboards/kinesis/info.json @@ -1,5 +1,4 @@ { - "url": "", "maintainer": "qmk", "qmk": { "locking": { diff --git a/keyboards/kineticlabs/emu/hotswap/keyboard.json b/keyboards/kineticlabs/emu/hotswap/keyboard.json index ec53c2f6bfe..a199af4805f 100644 --- a/keyboards/kineticlabs/emu/hotswap/keyboard.json +++ b/keyboards/kineticlabs/emu/hotswap/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Emu Hotswap", "manufacturer": "Kineticlabs", - "url": "", "maintainer": "kb-elmo", "usb": { "vid": "0xE015", diff --git a/keyboards/kineticlabs/emu/soldered/keyboard.json b/keyboards/kineticlabs/emu/soldered/keyboard.json index 4aaf523d2ae..59de15184a5 100644 --- a/keyboards/kineticlabs/emu/soldered/keyboard.json +++ b/keyboards/kineticlabs/emu/soldered/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Emu Soldered", "manufacturer": "Kineticlabs", - "url": "", "maintainer": "kb-elmo", "usb": { "vid": "0xE015", diff --git a/keyboards/kingly_keys/ave/ortho/keyboard.json b/keyboards/kingly_keys/ave/ortho/keyboard.json index 27fb2666a2a..d945664ba2a 100644 --- a/keyboards/kingly_keys/ave/ortho/keyboard.json +++ b/keyboards/kingly_keys/ave/ortho/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "The Ave. Ortholinear", "manufacturer": "Kingly-Keys", - "url": "", "maintainer": "the-royal", "usb": { "vid": "0x4B4B", diff --git a/keyboards/kingly_keys/ave/staggered/keyboard.json b/keyboards/kingly_keys/ave/staggered/keyboard.json index 5fcb1657e38..6296e8c8d16 100644 --- a/keyboards/kingly_keys/ave/staggered/keyboard.json +++ b/keyboards/kingly_keys/ave/staggered/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "The Ave. Staggered", "manufacturer": "Kingly-Keys", - "url": "", "maintainer": "the-royal", "usb": { "vid": "0x4B4B", diff --git a/keyboards/kingly_keys/little_foot/keyboard.json b/keyboards/kingly_keys/little_foot/keyboard.json index a511d48905c..ddbe877b6d8 100644 --- a/keyboards/kingly_keys/little_foot/keyboard.json +++ b/keyboards/kingly_keys/little_foot/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "The Little Foot", "manufacturer": "Kingly-Keys", - "url": "", "maintainer": "TheRoyalSweatshirt", "usb": { "vid": "0xFEED", diff --git a/keyboards/kingly_keys/romac/keyboard.json b/keyboards/kingly_keys/romac/keyboard.json index 9927bdc25ff..8088152db7c 100644 --- a/keyboards/kingly_keys/romac/keyboard.json +++ b/keyboards/kingly_keys/romac/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "RoMac", "manufacturer": "TheRoyalSweatshirt", - "url": "", "maintainer": "TheRoyalSweatshirt", "usb": { "vid": "0x4B4B", diff --git a/keyboards/kingly_keys/romac_plus/keyboard.json b/keyboards/kingly_keys/romac_plus/keyboard.json index 8b6c43333d9..920ed39fa27 100644 --- a/keyboards/kingly_keys/romac_plus/keyboard.json +++ b/keyboards/kingly_keys/romac_plus/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "RoMac+", "manufacturer": "TheRoyalSweatshirt", - "url": "", "maintainer": "TheRoyalSweatshirt", "usb": { "vid": "0x4B4B", diff --git a/keyboards/kingly_keys/smd_milk/keyboard.json b/keyboards/kingly_keys/smd_milk/keyboard.json index 9f8a10a5bfc..943599dad19 100644 --- a/keyboards/kingly_keys/smd_milk/keyboard.json +++ b/keyboards/kingly_keys/smd_milk/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "SMD-2% Milk", "manufacturer": "Kingly-Keys", - "url": "", "maintainer": "TheRoyalSweatshirt", "usb": { "vid": "0xFEED", diff --git a/keyboards/kira/kira75/keyboard.json b/keyboards/kira/kira75/keyboard.json index fb4c90a8b55..a974b10161a 100644 --- a/keyboards/kira/kira75/keyboard.json +++ b/keyboards/kira/kira75/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Kira 75", "manufacturer": "thesiscamper", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/kira/kira80/keyboard.json b/keyboards/kira/kira80/keyboard.json index 137e1f65656..858b5004087 100644 --- a/keyboards/kira/kira80/keyboard.json +++ b/keyboards/kira/kira80/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Kira80", "manufacturer": "EVE", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x6986", diff --git a/keyboards/kk/65/keyboard.json b/keyboards/kk/65/keyboard.json index 49c52eec804..d7fd74ec9f3 100644 --- a/keyboards/kk/65/keyboard.json +++ b/keyboards/kk/65/keyboard.json @@ -23,7 +23,6 @@ "rows": ["D7", "B4", "B5", "B6", "B7"] }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/knobgoblin/keyboard.json b/keyboards/knobgoblin/keyboard.json index 8494eea4659..4886a47da31 100644 --- a/keyboards/knobgoblin/keyboard.json +++ b/keyboards/knobgoblin/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Knob Goblin", "manufacturer": "MrT1ddl3s", - "url": "", "maintainer": "MrT1ddl3s", "usb": { "vid": "0x4B47", diff --git a/keyboards/kona_classic/keyboard.json b/keyboards/kona_classic/keyboard.json index 79bef89bb64..716df4759fc 100644 --- a/keyboards/kona_classic/keyboard.json +++ b/keyboards/kona_classic/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Kona Classic", "manufacturer": "Dangerous Parts", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/kopibeng/xt60/keyboard.json b/keyboards/kopibeng/xt60/keyboard.json index 24dc8f490bb..7b0b74db0e2 100644 --- a/keyboards/kopibeng/xt60/keyboard.json +++ b/keyboards/kopibeng/xt60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "XT60", "manufacturer": "kopibeng", - "url": "", "maintainer": "Kopibeng", "usb": { "vid": "0x4B50", diff --git a/keyboards/kopibeng/xt60_singa/keyboard.json b/keyboards/kopibeng/xt60_singa/keyboard.json index b1d239cd20f..7f717adf350 100644 --- a/keyboards/kopibeng/xt60_singa/keyboard.json +++ b/keyboards/kopibeng/xt60_singa/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "XT60_SINGA", "manufacturer": "kopibeng", - "url": "", "maintainer": "Kopibeng", "usb": { "vid": "0x4B50", diff --git a/keyboards/kopibeng/xt65/keyboard.json b/keyboards/kopibeng/xt65/keyboard.json index c73ff703d5d..60fff35ca1a 100644 --- a/keyboards/kopibeng/xt65/keyboard.json +++ b/keyboards/kopibeng/xt65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "XT65", "manufacturer": "kopibeng", - "url": "", "maintainer": "kopibeng", "usb": { "vid": "0x4B50", diff --git a/keyboards/kopibeng/xt8x/keyboard.json b/keyboards/kopibeng/xt8x/keyboard.json index 7167cb1d078..ad6c044982e 100644 --- a/keyboards/kopibeng/xt8x/keyboard.json +++ b/keyboards/kopibeng/xt8x/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "XT8x", "manufacturer": "kopibeng", - "url": "", "maintainer": "kopibeng", "usb": { "vid": "0x4B50", diff --git a/keyboards/kprepublic/bm16a/v1/keyboard.json b/keyboards/kprepublic/bm16a/v1/keyboard.json index 85173a89ccb..fba123ccb71 100644 --- a/keyboards/kprepublic/bm16a/v1/keyboard.json +++ b/keyboards/kprepublic/bm16a/v1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "bm16a", "manufacturer": "KPrepublic", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B50", diff --git a/keyboards/kprepublic/bm16a/v2/keyboard.json b/keyboards/kprepublic/bm16a/v2/keyboard.json index e922d0b9ee7..ac65e4affb2 100644 --- a/keyboards/kprepublic/bm16a/v2/keyboard.json +++ b/keyboards/kprepublic/bm16a/v2/keyboard.json @@ -22,7 +22,6 @@ "rows": ["A8", "A9", "B5", "B3"] }, "processor": "STM32F103", // GD32F303CCT6 - "url": "", "usb": { "device_version": "0.0.2", "pid": "0x016C", diff --git a/keyboards/kprepublic/bm16s/keyboard.json b/keyboards/kprepublic/bm16s/keyboard.json index 8c6ce05bb96..d7b31b5651e 100644 --- a/keyboards/kprepublic/bm16s/keyboard.json +++ b/keyboards/kprepublic/bm16s/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "bm16s", "manufacturer": "KPrepublic", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B50", diff --git a/keyboards/kprepublic/bm40hsrgb/rev1/keyboard.json b/keyboards/kprepublic/bm40hsrgb/rev1/keyboard.json index 7bdeafbcad2..430d525a71b 100644 --- a/keyboards/kprepublic/bm40hsrgb/rev1/keyboard.json +++ b/keyboards/kprepublic/bm40hsrgb/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BM40 Hotswap RGB", "manufacturer": "KPRepublic", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B50", diff --git a/keyboards/kprepublic/bm40hsrgb/rev2/keyboard.json b/keyboards/kprepublic/bm40hsrgb/rev2/keyboard.json index 525a6088ed3..21689cb9587 100644 --- a/keyboards/kprepublic/bm40hsrgb/rev2/keyboard.json +++ b/keyboards/kprepublic/bm40hsrgb/rev2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BM40 Hotswap RGB", "manufacturer": "KPRepublic", - "url": "", "maintainer": "qmk", "features": { "bootmagic": true, diff --git a/keyboards/kprepublic/bm43a/keyboard.json b/keyboards/kprepublic/bm43a/keyboard.json index 79c089c68cf..28c8f259d1c 100644 --- a/keyboards/kprepublic/bm43a/keyboard.json +++ b/keyboards/kprepublic/bm43a/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BM43A", "manufacturer": "KPRepublic", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/kprepublic/bm43hsrgb/keyboard.json b/keyboards/kprepublic/bm43hsrgb/keyboard.json index 9fa40bdd9cc..9dff2d8ddcf 100755 --- a/keyboards/kprepublic/bm43hsrgb/keyboard.json +++ b/keyboards/kprepublic/bm43hsrgb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BM43 Hotswap RGB", "manufacturer": "KPRepublic", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B50", diff --git a/keyboards/kprepublic/bm60hsrgb/rev1/keyboard.json b/keyboards/kprepublic/bm60hsrgb/rev1/keyboard.json index 5fe5d210143..3640dad2a87 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev1/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BM60HSRGB", "manufacturer": "KP Republic", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B50", diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/keyboard.json b/keyboards/kprepublic/bm60hsrgb/rev2/keyboard.json index a82d5159cf6..3783ebb8b21 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb/rev2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BM60V2", "manufacturer": "KP Republic", - "url": "", "maintainer": "bdtc123", "usb": { "vid": "0x4B50", diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev1/keyboard.json b/keyboards/kprepublic/bm60hsrgb_ec/rev1/keyboard.json index 0a9b283131d..e93a616c950 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev1/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BM60HSRGB_EC Rev1", "manufacturer": "KP Republic", - "url": "", "maintainer": "peepeetee", "usb": { "vid": "0x4B50", diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev2/keyboard.json b/keyboards/kprepublic/bm60hsrgb_ec/rev2/keyboard.json index 09124e03a9f..1f0dffa2608 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev2/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BM60HSRGB_EC Rev2", "manufacturer": "KP Republic", - "url": "", "maintainer": "peepeetee", "usb": { "vid": "0x4B50", diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev1/keyboard.json b/keyboards/kprepublic/bm60hsrgb_iso/rev1/keyboard.json index 4cd2c484402..8cdb855aa28 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev1/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BM60HSRGB_ISO Rev1", "manufacturer": "KPRepublic", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B50", diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/keyboard.json b/keyboards/kprepublic/bm60hsrgb_iso/rev2/keyboard.json index e84817122e4..3a0df3e414a 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BM60HSRGB_ISO Rev2", "manufacturer": "KPRepublic", - "url": "", "maintainer": "kp republic", "usb": { "vid": "0x4B50", diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keyboard.json b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keyboard.json index d7923b84320..d1f5c9fb532 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BM60HSRGB Poker Rev1", "manufacturer": "KPrepublic", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B50", diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/keyboard.json b/keyboards/kprepublic/bm60hsrgb_poker/rev2/keyboard.json index 62ff452a68c..f3edf59fecf 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BM60HSRGB Poker Rev2", "manufacturer": "KPrepublic", - "url": "", "maintainer": "bdtc123", "usb": { "vid": "0x4B50", diff --git a/keyboards/kprepublic/bm65hsrgb/rev1/keyboard.json b/keyboards/kprepublic/bm65hsrgb/rev1/keyboard.json index dc63acfa418..c5fa1d90260 100644 --- a/keyboards/kprepublic/bm65hsrgb/rev1/keyboard.json +++ b/keyboards/kprepublic/bm65hsrgb/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BM65HSRGB", "manufacturer": "KPrepublic", - "url": "", "maintainer": "bytesapart", "usb": { "vid": "0x4B50", diff --git a/keyboards/kprepublic/bm65hsrgb_iso/rev1/keyboard.json b/keyboards/kprepublic/bm65hsrgb_iso/rev1/keyboard.json index 53b132713c9..43d213a1a77 100644 --- a/keyboards/kprepublic/bm65hsrgb_iso/rev1/keyboard.json +++ b/keyboards/kprepublic/bm65hsrgb_iso/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BM65HSRGB ISO", "manufacturer": "KPrepublic", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B50", diff --git a/keyboards/kprepublic/bm68hsrgb/rev1/keyboard.json b/keyboards/kprepublic/bm68hsrgb/rev1/keyboard.json index 6e2d3a92087..9b6975bddcd 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev1/keyboard.json +++ b/keyboards/kprepublic/bm68hsrgb/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BM68HSRGB Rev1", "manufacturer": "KPrepublic", - "url": "", "maintainer": "peepeetee", "usb": { "vid": "0x4B50", diff --git a/keyboards/kprepublic/bm68hsrgb/rev2/keyboard.json b/keyboards/kprepublic/bm68hsrgb/rev2/keyboard.json index 7df1af5902e..e294562e0db 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev2/keyboard.json +++ b/keyboards/kprepublic/bm68hsrgb/rev2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BM68HSRGB Rev2", "manufacturer": "KPrepublic", - "url": "", "maintainer": "bdtc123", "usb": { "vid": "0x4B50", diff --git a/keyboards/kprepublic/bm80hsrgb/keyboard.json b/keyboards/kprepublic/bm80hsrgb/keyboard.json index 5a4d65fbcd5..8c51e2ea98a 100644 --- a/keyboards/kprepublic/bm80hsrgb/keyboard.json +++ b/keyboards/kprepublic/bm80hsrgb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BM80HSRGB", "manufacturer": "KPRepublic", - "url": "", "maintainer": "peepeetee", "usb": { "vid": "0x4B50", diff --git a/keyboards/kprepublic/bm80v2/keyboard.json b/keyboards/kprepublic/bm80v2/keyboard.json index dd985550bba..e8f061115f4 100644 --- a/keyboards/kprepublic/bm80v2/keyboard.json +++ b/keyboards/kprepublic/bm80v2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BM80v2", "manufacturer": "KPrepublic", - "url": "", "maintainer": "edwardslau", "usb": { "vid": "0x4B50", diff --git a/keyboards/kprepublic/bm80v2_iso/keyboard.json b/keyboards/kprepublic/bm80v2_iso/keyboard.json index 46ab7a5e8b9..9143f9df07b 100644 --- a/keyboards/kprepublic/bm80v2_iso/keyboard.json +++ b/keyboards/kprepublic/bm80v2_iso/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BM80v2 ISO", "manufacturer": "KPrepublic", - "url": "", "maintainer": "edwardslau", "usb": { "vid": "0x4B50", diff --git a/keyboards/kprepublic/bm980hsrgb/keyboard.json b/keyboards/kprepublic/bm980hsrgb/keyboard.json index 8ee498b7b60..addd87de4f0 100644 --- a/keyboards/kprepublic/bm980hsrgb/keyboard.json +++ b/keyboards/kprepublic/bm980hsrgb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BM980 Hotswap RGB", "manufacturer": "KPrepublic", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B50", diff --git a/keyboards/kprepublic/cospad/keyboard.json b/keyboards/kprepublic/cospad/keyboard.json index 51a824b8165..8d65d302715 100644 --- a/keyboards/kprepublic/cospad/keyboard.json +++ b/keyboards/kprepublic/cospad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Cospad", "manufacturer": "KPrepublic", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B5C", diff --git a/keyboards/kprepublic/cstc40/info.json b/keyboards/kprepublic/cstc40/info.json index 44d12fc22f6..bd79ef2afe7 100644 --- a/keyboards/kprepublic/cstc40/info.json +++ b/keyboards/kprepublic/cstc40/info.json @@ -15,7 +15,6 @@ "rgb_matrix": true }, "processor": "STM32F401", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0040", diff --git a/keyboards/kprepublic/jj40/rev1/keyboard.json b/keyboards/kprepublic/jj40/rev1/keyboard.json index 3ac3e2f02cd..201f916ee32 100644 --- a/keyboards/kprepublic/jj40/rev1/keyboard.json +++ b/keyboards/kprepublic/jj40/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "JJ40 rev1", "manufacturer": "KPrepublic", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B50", diff --git a/keyboards/kprepublic/jj4x4/keyboard.json b/keyboards/kprepublic/jj4x4/keyboard.json index 2f53db2e88e..d7d785b054c 100644 --- a/keyboards/kprepublic/jj4x4/keyboard.json +++ b/keyboards/kprepublic/jj4x4/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "JJ4x4", "manufacturer": "KPrepublic", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B50", diff --git a/keyboards/kprepublic/jj50/rev1/keyboard.json b/keyboards/kprepublic/jj50/rev1/keyboard.json index c9f191ef9cb..7eed1349e02 100644 --- a/keyboards/kprepublic/jj50/rev1/keyboard.json +++ b/keyboards/kprepublic/jj50/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "JJ50 rev1", "manufacturer": "KPrepublic", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B50", diff --git a/keyboards/kprepublic/jj50/rev2/keyboard.json b/keyboards/kprepublic/jj50/rev2/keyboard.json index c3e0f7a3226..4327c4be971 100644 --- a/keyboards/kprepublic/jj50/rev2/keyboard.json +++ b/keyboards/kprepublic/jj50/rev2/keyboard.json @@ -42,7 +42,6 @@ "led_count": 6, "saturation_steps": 8 }, - "url": "", "usb": { "device_version": "2.0.0", "pid": "0x0050", diff --git a/keyboards/ktec/daisy/keyboard.json b/keyboards/ktec/daisy/keyboard.json index d0a24f5b0d3..8ca734534eb 100644 --- a/keyboards/ktec/daisy/keyboard.json +++ b/keyboards/ktec/daisy/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Daisy", "manufacturer": "KTEC", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B50", diff --git a/keyboards/ktec/staryu/keyboard.json b/keyboards/ktec/staryu/keyboard.json index a2799703be5..9272642c3e3 100644 --- a/keyboards/ktec/staryu/keyboard.json +++ b/keyboards/ktec/staryu/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Staryu", "manufacturer": "K.T.E.C.", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x1209", diff --git a/keyboards/kumaokobo/kudox_game/info.json b/keyboards/kumaokobo/kudox_game/info.json index 6968b5e427e..8750facedef 100644 --- a/keyboards/kumaokobo/kudox_game/info.json +++ b/keyboards/kumaokobo/kudox_game/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "The Kudox Game Keyboard", "manufacturer": "Kumao Kobo", - "url": "", "maintainer": "Kumao Kobo", "usb": { "vid": "0xABBA", diff --git a/keyboards/kuro/kuro65/keyboard.json b/keyboards/kuro/kuro65/keyboard.json index 72549735d96..8ca2310692f 100644 --- a/keyboards/kuro/kuro65/keyboard.json +++ b/keyboards/kuro/kuro65/keyboard.json @@ -2,7 +2,6 @@ "keyboard_name": "Kuro65", "manufacturer": "Kuro", "maintainer": "0x544D", - "url": "", "processor": "atmega32u4", "bootloader": "atmel-dfu", "diode_direction": "COL2ROW", diff --git a/keyboards/kv/revt/keyboard.json b/keyboards/kv/revt/keyboard.json index 8553dcdd355..20d9c38fbe2 100644 --- a/keyboards/kv/revt/keyboard.json +++ b/keyboards/kv/revt/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "KVT", "manufacturer": "Hybrid", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x6565", diff --git a/keyboards/kwstudio/pisces/keyboard.json b/keyboards/kwstudio/pisces/keyboard.json index 48f4e6a4f66..e69993b963b 100644 --- a/keyboards/kwstudio/pisces/keyboard.json +++ b/keyboards/kwstudio/pisces/keyboard.json @@ -20,7 +20,6 @@ "rows": ["B7", "D5", "D3", "D2", "D1", "D0"] }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/kwstudio/scorpio/keyboard.json b/keyboards/kwstudio/scorpio/keyboard.json index 82262afb1be..4d94b3a6b9e 100644 --- a/keyboards/kwstudio/scorpio/keyboard.json +++ b/keyboards/kwstudio/scorpio/keyboard.json @@ -35,7 +35,6 @@ "led_count": 9, "sleep": true }, - "url": "", "usb": { "device_version": "0.0.1", "pid": "0x0002", diff --git a/keyboards/kwstudio/scorpio_rev2/keyboard.json b/keyboards/kwstudio/scorpio_rev2/keyboard.json index d1b41b1d4ff..b4cf901d1f8 100644 --- a/keyboards/kwstudio/scorpio_rev2/keyboard.json +++ b/keyboards/kwstudio/scorpio_rev2/keyboard.json @@ -38,7 +38,6 @@ "led_count": 9, "saturation_steps": 8 }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0003", diff --git a/keyboards/labbe/labbeminiv1/keyboard.json b/keyboards/labbe/labbeminiv1/keyboard.json index da53de3da5e..d976ea5d365 100644 --- a/keyboards/labbe/labbeminiv1/keyboard.json +++ b/keyboards/labbe/labbeminiv1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Labbe Mini V1", "manufacturer": "Labbe", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xABBE", diff --git a/keyboards/labyrinth75/keyboard.json b/keyboards/labyrinth75/keyboard.json index 1e70a8318d3..99f79b9a2bf 100644 --- a/keyboards/labyrinth75/keyboard.json +++ b/keyboards/labyrinth75/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "labyrinth75", "manufacturer": "Livi", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4F53", diff --git a/keyboards/laneware/lpad/keyboard.json b/keyboards/laneware/lpad/keyboard.json index 464205846b8..a42ba2c13f4 100644 --- a/keyboards/laneware/lpad/keyboard.json +++ b/keyboards/laneware/lpad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "L-PAD", "manufacturer": "Laneware Peripherals", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4C50", diff --git a/keyboards/laneware/lw67/keyboard.json b/keyboards/laneware/lw67/keyboard.json index e48506f58ed..d1b85ea50da 100644 --- a/keyboards/laneware/lw67/keyboard.json +++ b/keyboards/laneware/lw67/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "LW-67", "manufacturer": "Laneware Peripherals", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4C50", diff --git a/keyboards/laneware/lw75/keyboard.json b/keyboards/laneware/lw75/keyboard.json index 27601d1e280..6aee9461a84 100644 --- a/keyboards/laneware/lw75/keyboard.json +++ b/keyboards/laneware/lw75/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "LW-75", "manufacturer": "Laneware Peripherals", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4C50", diff --git a/keyboards/laneware/macro1/keyboard.json b/keyboards/laneware/macro1/keyboard.json index a432db59152..12fce7b9205 100644 --- a/keyboards/laneware/macro1/keyboard.json +++ b/keyboards/laneware/macro1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "MACRO-1", "manufacturer": "Laneware Peripherals", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4C50", diff --git a/keyboards/laser_ninja/pumpkinpad/keyboard.json b/keyboards/laser_ninja/pumpkinpad/keyboard.json index 64e62911a60..96b4049121a 100644 --- a/keyboards/laser_ninja/pumpkinpad/keyboard.json +++ b/keyboards/laser_ninja/pumpkinpad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Pumpkinpad", "manufacturer": "Laser Ninja", - "url": "", "maintainer": "Jels", "processor": "STM32F072", "bootloader": "stm32-dfu", diff --git a/keyboards/latincompass/latin17rgb/keyboard.json b/keyboards/latincompass/latin17rgb/keyboard.json index 161672aea4f..934653b6fe5 100644 --- a/keyboards/latincompass/latin17rgb/keyboard.json +++ b/keyboards/latincompass/latin17rgb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Latin17RGB", "manufacturer": "18438880", - "url": "", "maintainer": "18438880", "usb": { "vid": "0x7C88", diff --git a/keyboards/latincompass/latin47ble/keyboard.json b/keyboards/latincompass/latin47ble/keyboard.json index ac07f68152f..f5d53dbbe80 100644 --- a/keyboards/latincompass/latin47ble/keyboard.json +++ b/keyboards/latincompass/latin47ble/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Latin47BLE", "manufacturer": "latincompass", - "url": "", "maintainer": "latincompass", "usb": { "vid": "0x6C63", diff --git a/keyboards/latincompass/latin60rgb/keyboard.json b/keyboards/latincompass/latin60rgb/keyboard.json index 764a7c882a6..4252387c122 100644 --- a/keyboards/latincompass/latin60rgb/keyboard.json +++ b/keyboards/latincompass/latin60rgb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Latin60RGB", "manufacturer": "latincompass", - "url": "", "maintainer": "latincompass", "usb": { "vid": "0x6C63", diff --git a/keyboards/latincompass/latin64ble/keyboard.json b/keyboards/latincompass/latin64ble/keyboard.json index b2563569d30..3a7a93c4a3e 100644 --- a/keyboards/latincompass/latin64ble/keyboard.json +++ b/keyboards/latincompass/latin64ble/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Latin64BLE", "manufacturer": "latincompass", - "url": "", "maintainer": "latincompass", "usb": { "vid": "0x6C63", diff --git a/keyboards/latincompass/latin6rgb/keyboard.json b/keyboards/latincompass/latin6rgb/keyboard.json index 42aa82a030c..d2708df3995 100644 --- a/keyboards/latincompass/latin6rgb/keyboard.json +++ b/keyboards/latincompass/latin6rgb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Latin6rgb", "manufacturer": "18438880", - "url": "", "maintainer": "18438880", "usb": { "vid": "0x7C88", diff --git a/keyboards/leafcutterlabs/bigknob/keyboard.json b/keyboards/leafcutterlabs/bigknob/keyboard.json index 8250f7eb614..7d1fc6fb726 100644 --- a/keyboards/leafcutterlabs/bigknob/keyboard.json +++ b/keyboards/leafcutterlabs/bigknob/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "bigKNOB", "manufacturer": "leafcutterlabs", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xCEEB", diff --git a/keyboards/leeku/finger65/keyboard.json b/keyboards/leeku/finger65/keyboard.json index c9b7338856c..cdb67f0e367 100644 --- a/keyboards/leeku/finger65/keyboard.json +++ b/keyboards/leeku/finger65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Finger65", "manufacturer": "LeeKu", - "url": "", "maintainer": "sidcarter", "usb": { "vid": "0xFEED", diff --git a/keyboards/lets_split/info.json b/keyboards/lets_split/info.json index a92a948abd2..9152226cabe 100644 --- a/keyboards/lets_split/info.json +++ b/keyboards/lets_split/info.json @@ -1,5 +1,4 @@ { - "url": "", "maintainer": "qmk", "processor": "atmega32u4", "bootloader": "caterina", diff --git a/keyboards/lfkeyboards/lfk78/revb/keyboard.json b/keyboards/lfkeyboards/lfk78/revb/keyboard.json index a4c0d83902a..d5c4656928c 100644 --- a/keyboards/lfkeyboards/lfk78/revb/keyboard.json +++ b/keyboards/lfkeyboards/lfk78/revb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "LFK78 Rev B", "manufacturer": "LFKeyboards", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4C46", diff --git a/keyboards/lfkeyboards/lfk78/revc/keyboard.json b/keyboards/lfkeyboards/lfk78/revc/keyboard.json index 56ab9b49bee..0906307fe7b 100644 --- a/keyboards/lfkeyboards/lfk78/revc/keyboard.json +++ b/keyboards/lfkeyboards/lfk78/revc/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "LFK7 Rev C-H", "manufacturer": "LFKeyboards", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4C46", diff --git a/keyboards/lfkeyboards/lfk78/revj/keyboard.json b/keyboards/lfkeyboards/lfk78/revj/keyboard.json index df8ac8d0f61..2657a21b8c0 100644 --- a/keyboards/lfkeyboards/lfk78/revj/keyboard.json +++ b/keyboards/lfkeyboards/lfk78/revj/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "LFK78 Rev J", "manufacturer": "LFKeyboards", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4C46", diff --git a/keyboards/lfkeyboards/lfk87/info.json b/keyboards/lfkeyboards/lfk87/info.json index 9b10936df81..d38a397da3c 100644 --- a/keyboards/lfkeyboards/lfk87/info.json +++ b/keyboards/lfkeyboards/lfk87/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "LFK87", "manufacturer": "LFKeyboards", - "url": "", "maintainer": "qmk", "features": { "audio": true, diff --git a/keyboards/lfkeyboards/lfkpad/keyboard.json b/keyboards/lfkeyboards/lfkpad/keyboard.json index 6de415b8e01..f422507a5bf 100644 --- a/keyboards/lfkeyboards/lfkpad/keyboard.json +++ b/keyboards/lfkeyboards/lfkpad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "LFKPad", "manufacturer": "LFKeyboards", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4C46", diff --git a/keyboards/lfkeyboards/mini1800/info.json b/keyboards/lfkeyboards/mini1800/info.json index 35bb1c15a85..a7ee5324b62 100644 --- a/keyboards/lfkeyboards/mini1800/info.json +++ b/keyboards/lfkeyboards/mini1800/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Mini1800", "manufacturer": "LFKeyboards", - "url": "", "maintainer": "lfkeyboards", "usb": { "vid": "0xFEED", diff --git a/keyboards/lfkeyboards/smk65/info.json b/keyboards/lfkeyboards/smk65/info.json index 0ecbf2ab952..e80ef7b7ebc 100644 --- a/keyboards/lfkeyboards/smk65/info.json +++ b/keyboards/lfkeyboards/smk65/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "SMK65v2", "manufacturer": "LFKeyboards", - "url": "", "maintainer": "qmk", "features": { "bootmagic": true, diff --git a/keyboards/lily58/lite_rev3/keyboard.json b/keyboards/lily58/lite_rev3/keyboard.json index ddb1f1877e6..839cf4fe78c 100644 --- a/keyboards/lily58/lite_rev3/keyboard.json +++ b/keyboards/lily58/lite_rev3/keyboard.json @@ -2,7 +2,6 @@ "keyboard_name": "Lily58 Lite Rev3", "manufacturer": "Liliums", "maintainer": "yuchi", - "url": "", "processor": "RP2040", "bootloader": "rp2040", "diode_direction": "COL2ROW", diff --git a/keyboards/lily58/r2g/keyboard.json b/keyboards/lily58/r2g/keyboard.json index bb825b1d9ec..6bd8f7b916b 100644 --- a/keyboards/lily58/r2g/keyboard.json +++ b/keyboards/lily58/r2g/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Lily58 R2G", "manufacturer": "Mechboards UK", - "url": "", "maintainer": "Elliot Powell", "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/lily58/rev1/keyboard.json b/keyboards/lily58/rev1/keyboard.json index 9ee51b8ba36..3488b0e2b52 100644 --- a/keyboards/lily58/rev1/keyboard.json +++ b/keyboards/lily58/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Lily58", "manufacturer": "liliums", - "url": "", "maintainer": "liliums", "usb": { "vid": "0x04D8", diff --git a/keyboards/linworks/fave104/keyboard.json b/keyboards/linworks/fave104/keyboard.json index c71fdd56613..01c49af4c97 100644 --- a/keyboards/linworks/fave104/keyboard.json +++ b/keyboards/linworks/fave104/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "FAVE-104", "manufacturer": "Lx3", - "url": "", "maintainer": "keydler", "usb": { "vid": "0x4C58", diff --git a/keyboards/linworks/fave60/keyboard.json b/keyboards/linworks/fave60/keyboard.json index 38c5458445c..eb72e9c3e2e 100644 --- a/keyboards/linworks/fave60/keyboard.json +++ b/keyboards/linworks/fave60/keyboard.json @@ -43,7 +43,6 @@ "cols": ["D6", "D4", "B5", "B4", "B6", "C6", "C7", "F4", "F0", "E6", "D1", "D2", "D3", "D5", "B0"], "rows": ["F6", "F7", "D7", "F1", "D0"] }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x000D", diff --git a/keyboards/linworks/fave60a/keyboard.json b/keyboards/linworks/fave60a/keyboard.json index 7972e94baee..8a505aaae26 100644 --- a/keyboards/linworks/fave60a/keyboard.json +++ b/keyboards/linworks/fave60a/keyboard.json @@ -161,7 +161,6 @@ "max_brightness": 120, "sleep": true }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x000C", diff --git a/keyboards/linworks/fave65h/keyboard.json b/keyboards/linworks/fave65h/keyboard.json index 6e35f55a4b4..212bd0a37bc 100644 --- a/keyboards/linworks/fave65h/keyboard.json +++ b/keyboards/linworks/fave65h/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "FAve 65H", "manufacturer": "Lx3", - "url": "", "maintainer": "ToastyStoemp", "usb": { "vid": "0x4C58", diff --git a/keyboards/linworks/fave84h/keyboard.json b/keyboards/linworks/fave84h/keyboard.json index 1ca6cb911ab..6b66dd946c5 100644 --- a/keyboards/linworks/fave84h/keyboard.json +++ b/keyboards/linworks/fave84h/keyboard.json @@ -198,7 +198,6 @@ "max_brightness": 120, "sleep": true }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0004", diff --git a/keyboards/linworks/fave87h/keyboard.json b/keyboards/linworks/fave87h/keyboard.json index 5fb1d4d42aa..4bb6e42de4b 100644 --- a/keyboards/linworks/fave87h/keyboard.json +++ b/keyboards/linworks/fave87h/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "FAve 87H", "manufacturer": "Lx3", - "url": "", "maintainer": "ToastyStoemp", "usb": { "vid": "0x4C58", diff --git a/keyboards/linworks/favepada/keyboard.json b/keyboards/linworks/favepada/keyboard.json index 2b5adcf0a6f..e468f887795 100644 --- a/keyboards/linworks/favepada/keyboard.json +++ b/keyboards/linworks/favepada/keyboard.json @@ -107,7 +107,6 @@ "ws2812": { "pin": "B1" }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x000B", diff --git a/keyboards/littlealby/mute/keyboard.json b/keyboards/littlealby/mute/keyboard.json index 96c2e26a74a..3bd6ab37479 100644 --- a/keyboards/littlealby/mute/keyboard.json +++ b/keyboards/littlealby/mute/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Mute", "manufacturer": "Little Alby", - "url": "", "maintainer": "albybarber", "usb": { "vid": "0x4142", diff --git a/keyboards/lm_keyboard/lm60n/keyboard.json b/keyboards/lm_keyboard/lm60n/keyboard.json index f12bdec0316..317c61aee29 100644 --- a/keyboards/lm_keyboard/lm60n/keyboard.json +++ b/keyboards/lm_keyboard/lm60n/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "L+M 60N", "manufacturer": "L+M Keyboard", - "url": "", "maintainer": "gkeyboard", "usb": { "vid": "0x4C4D", diff --git a/keyboards/lxxt/keyboard.json b/keyboards/lxxt/keyboard.json index 5a028cacd89..57c8350b2a1 100644 --- a/keyboards/lxxt/keyboard.json +++ b/keyboards/lxxt/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "LXXT", "manufacturer": "DeskDaily", - "url": "", "maintainer": "DeskDaily", "usb": { "vid": "0x5003", diff --git a/keyboards/lyso1/lefishe/keyboard.json b/keyboards/lyso1/lefishe/keyboard.json index 6104f47e470..677fb11e183 100644 --- a/keyboards/lyso1/lefishe/keyboard.json +++ b/keyboards/lyso1/lefishe/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Le_Fishe", "manufacturer": "Lyso1", - "url": "", "maintainer": "Lyso1", "usb": { "vid": "0x7856", diff --git a/keyboards/lz/erghost/keyboard.json b/keyboards/lz/erghost/keyboard.json index ac5ce2edf26..7722e4fc624 100644 --- a/keyboards/lz/erghost/keyboard.json +++ b/keyboards/lz/erghost/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "erGhost", "manufacturer": "Mechlovin Studio", - "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x6C7A", diff --git a/keyboards/m10a/keyboard.json b/keyboards/m10a/keyboard.json index 544d2535ed5..e0ba10e0961 100644 --- a/keyboards/m10a/keyboard.json +++ b/keyboards/m10a/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "M10-A", "manufacturer": "RAMA WORKS", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x5241", diff --git a/keyboards/magic_force/mf34/keyboard.json b/keyboards/magic_force/mf34/keyboard.json index 7178d0405e4..44d1a4ec92b 100644 --- a/keyboards/magic_force/mf34/keyboard.json +++ b/keyboards/magic_force/mf34/keyboard.json @@ -1,6 +1,5 @@ { "keyboard_name": "MagicForce", - "url": "", "maintainer": "MagicForce", "manufacturer": "MagicForce", "usb": { diff --git a/keyboards/makrosu/keyboard.json b/keyboards/makrosu/keyboard.json index ec6b8a3bfd9..a9790e22d2a 100644 --- a/keyboards/makrosu/keyboard.json +++ b/keyboards/makrosu/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "MakrOSU", "manufacturer": "Valdydesu_", - "url": "", "maintainer": "Valdydesu_", "usb": { "vid": "0xAB69", diff --git a/keyboards/malevolti/lyra/rev1/keyboard.json b/keyboards/malevolti/lyra/rev1/keyboard.json index cce0ad7bb7e..6a4a993d765 100644 --- a/keyboards/malevolti/lyra/rev1/keyboard.json +++ b/keyboards/malevolti/lyra/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Lyra", "manufacturer": "Dom", - "url": "", "maintainer": "malevolti", "usb": { "vid": "0x4443", diff --git a/keyboards/malevolti/superlyra/rev1/keyboard.json b/keyboards/malevolti/superlyra/rev1/keyboard.json index 61ef7c605d9..4db75583027 100644 --- a/keyboards/malevolti/superlyra/rev1/keyboard.json +++ b/keyboards/malevolti/superlyra/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "SuperLyra", "manufacturer": "Dom", - "url": "", "maintainer": "malevolti", "usb": { "vid": "0x4443", diff --git a/keyboards/maple_computing/6ball/keyboard.json b/keyboards/maple_computing/6ball/keyboard.json index 3f125c75c43..0db90d176ed 100644 --- a/keyboards/maple_computing/6ball/keyboard.json +++ b/keyboards/maple_computing/6ball/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "6-Ball", "manufacturer": "That-Canadian", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xCEEB", diff --git a/keyboards/maple_computing/c39/keyboard.json b/keyboards/maple_computing/c39/keyboard.json index de4cbc6aebb..f2f396ccd72 100755 --- a/keyboards/maple_computing/c39/keyboard.json +++ b/keyboards/maple_computing/c39/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "C39", "manufacturer": "Maple Computing", - "url": "", "maintainer": "Space Cat", "usb": { "vid": "0xCA17", diff --git a/keyboards/maple_computing/ivy/rev1/keyboard.json b/keyboards/maple_computing/ivy/rev1/keyboard.json index aac35a5dccf..e5bc6beae7c 100644 --- a/keyboards/maple_computing/ivy/rev1/keyboard.json +++ b/keyboards/maple_computing/ivy/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Ivy", "manufacturer": "Maple Computing", - "url": "", "maintainer": "That-Canadian", "usb": { "vid": "0x1337", diff --git a/keyboards/maple_computing/jnao/keyboard.json b/keyboards/maple_computing/jnao/keyboard.json index 97b51a7680f..012d51f8f5f 100644 --- a/keyboards/maple_computing/jnao/keyboard.json +++ b/keyboards/maple_computing/jnao/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "JNAO", "manufacturer": "Maple Computing", - "url": "", "maintainer": "That-Canadian", "usb": { "vid": "0x1337", diff --git a/keyboards/maple_computing/launchpad/rev1/keyboard.json b/keyboards/maple_computing/launchpad/rev1/keyboard.json index 8c75561179b..272a2eef6dc 100644 --- a/keyboards/maple_computing/launchpad/rev1/keyboard.json +++ b/keyboards/maple_computing/launchpad/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Launch Pad", "manufacturer": "Maple Computing", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x1337", diff --git a/keyboards/maple_computing/lets_split_eh/keyboard.json b/keyboards/maple_computing/lets_split_eh/keyboard.json index 42a1cf3e77a..90965090b11 100644 --- a/keyboards/maple_computing/lets_split_eh/keyboard.json +++ b/keyboards/maple_computing/lets_split_eh/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Lets Split Eh?", "manufacturer": "That-Canadian", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/maple_computing/minidox/rev1/keyboard.json b/keyboards/maple_computing/minidox/rev1/keyboard.json index b64f26e8347..340a8bd39ea 100644 --- a/keyboards/maple_computing/minidox/rev1/keyboard.json +++ b/keyboards/maple_computing/minidox/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "MiniDox", "manufacturer": "That-Canadian", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/maple_computing/the_ruler/keyboard.json b/keyboards/maple_computing/the_ruler/keyboard.json index 7d15bb9bb8d..a6c9304d607 100644 --- a/keyboards/maple_computing/the_ruler/keyboard.json +++ b/keyboards/maple_computing/the_ruler/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "The Ruler", "manufacturer": "Maple Computing", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x1337", diff --git a/keyboards/mariorion_v25/prod/keyboard.json b/keyboards/mariorion_v25/prod/keyboard.json index dd014be03ae..6c2ba94ec15 100644 --- a/keyboards/mariorion_v25/prod/keyboard.json +++ b/keyboards/mariorion_v25/prod/keyboard.json @@ -44,7 +44,6 @@ "rows": ["B5", "B4", "B3", "A2", "C13", "B8"] }, "processor": "STM32F072", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0002", diff --git a/keyboards/mariorion_v25/proto/keyboard.json b/keyboards/mariorion_v25/proto/keyboard.json index be00d447d2b..5e46f647542 100644 --- a/keyboards/mariorion_v25/proto/keyboard.json +++ b/keyboards/mariorion_v25/proto/keyboard.json @@ -44,7 +44,6 @@ "rows": ["B5", "B4", "B3", "A2", "C13", "B8"] }, "processor": "STM32F072", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/matrix/abelx/keyboard.json b/keyboards/matrix/abelx/keyboard.json index 7fcad281da2..19f7d23b61e 100644 --- a/keyboards/matrix/abelx/keyboard.json +++ b/keyboards/matrix/abelx/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "ABELX", "manufacturer": "Matrix", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4D58", diff --git a/keyboards/matrix/cain_re/keyboard.json b/keyboards/matrix/cain_re/keyboard.json index 7d93e806c25..e806e9a4270 100644 --- a/keyboards/matrix/cain_re/keyboard.json +++ b/keyboards/matrix/cain_re/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Cain", "manufacturer": "Matrix", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4D58", diff --git a/keyboards/matrix/falcon/keyboard.json b/keyboards/matrix/falcon/keyboard.json index 0c387f5bc24..bf5fc640ced 100644 --- a/keyboards/matrix/falcon/keyboard.json +++ b/keyboards/matrix/falcon/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Falcon", "manufacturer": "Matrix Lab", - "url": "", "maintainer": "yulei (Astro)", "usb": { "vid": "0x4D58", diff --git a/keyboards/matrix/m12og/rev1/keyboard.json b/keyboards/matrix/m12og/rev1/keyboard.json index c956720a8d0..7d1fccdad66 100644 --- a/keyboards/matrix/m12og/rev1/keyboard.json +++ b/keyboards/matrix/m12og/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "m12og_v1", "manufacturer": "Matrix", - "url": "", "maintainer": "kb-elmo", "usb": { "vid": "0x4D58", diff --git a/keyboards/matrix/m12og/rev2/keyboard.json b/keyboards/matrix/m12og/rev2/keyboard.json index 45fcffe9eb6..5a04161d1b3 100644 --- a/keyboards/matrix/m12og/rev2/keyboard.json +++ b/keyboards/matrix/m12og/rev2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "M12OG", "manufacturer": "Matrix", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4D58", diff --git a/keyboards/matrix/m20add/keyboard.json b/keyboards/matrix/m20add/keyboard.json index fc58d242e60..31cc936b9c5 100644 --- a/keyboards/matrix/m20add/keyboard.json +++ b/keyboards/matrix/m20add/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "8XV2.0 Additional", "manufacturer": "Matrix", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4D58", diff --git a/keyboards/matrix/me/keyboard.json b/keyboards/matrix/me/keyboard.json index 8349fbd7e67..6abfe38435d 100644 --- a/keyboards/matrix/me/keyboard.json +++ b/keyboards/matrix/me/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Matrix ME", "manufacturer": "Matrix Lab", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4D58", diff --git a/keyboards/matrix/noah/keyboard.json b/keyboards/matrix/noah/keyboard.json index 53c8dc24584..d9d4ce39769 100644 --- a/keyboards/matrix/noah/keyboard.json +++ b/keyboards/matrix/noah/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "NOAH", "manufacturer": "Matrix", - "url": "", "maintainer": "astro", "usb": { "vid": "0x4D58", diff --git a/keyboards/maxipad/info.json b/keyboards/maxipad/info.json index bf054e4b83e..73b563edc1f 100644 --- a/keyboards/maxipad/info.json +++ b/keyboards/maxipad/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "maxipad", "manufacturer": "wootpatoot", - "url": "", "maintainer": "qmk", "features": { "bootmagic": true, diff --git a/keyboards/mazestudio/jocker/keyboard.json b/keyboards/mazestudio/jocker/keyboard.json index 7257866f21b..51c09eea320 100644 --- a/keyboards/mazestudio/jocker/keyboard.json +++ b/keyboards/mazestudio/jocker/keyboard.json @@ -4,7 +4,6 @@ "maintainer": "mazestd", "bootloader": "atmel-dfu", "processor": "atmega32u4", - "url": "", "usb": { "vid": "0x70F5", "pid": "0x4A01", diff --git a/keyboards/mb44/keyboard.json b/keyboards/mb44/keyboard.json index c349d11d387..f6ab714a5c6 100644 --- a/keyboards/mb44/keyboard.json +++ b/keyboards/mb44/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "MB-44", "manufacturer": "melonbred", - "url": "", "maintainer": "melonbred", "usb": { "vid": "0x6D62", diff --git a/keyboards/mechanickeys/miniashen40/keyboard.json b/keyboards/mechanickeys/miniashen40/keyboard.json index 2adee31c1dd..8e5821cc296 100644 --- a/keyboards/mechanickeys/miniashen40/keyboard.json +++ b/keyboards/mechanickeys/miniashen40/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Mini Ashen 40", "manufacturer": "MechanicKeys", - "url": "", "maintainer": "jfescobar18", "usb": { "vid": "0x4D4B", diff --git a/keyboards/mechanickeys/undead60m/keyboard.json b/keyboards/mechanickeys/undead60m/keyboard.json index 7dc27c29ed4..9f88f133463 100644 --- a/keyboards/mechanickeys/undead60m/keyboard.json +++ b/keyboards/mechanickeys/undead60m/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Undead 60-M", "manufacturer": "MechanicKeys", - "url": "", "maintainer": "jfescobar18", "usb": { "vid": "0x4D4B", diff --git a/keyboards/mechbrewery/mb65h/keyboard.json b/keyboards/mechbrewery/mb65h/keyboard.json index 8b4049be4d3..99d49d698d9 100644 --- a/keyboards/mechbrewery/mb65h/keyboard.json +++ b/keyboards/mechbrewery/mb65h/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "MB65H", "manufacturer": "MechBrewery", - "url": "", "maintainer": "AnthonyNguyen168", "usb": { "vid": "0x4252", diff --git a/keyboards/mechbrewery/mb65s/keyboard.json b/keyboards/mechbrewery/mb65s/keyboard.json index e043d95860e..eeafcaba1a1 100644 --- a/keyboards/mechbrewery/mb65s/keyboard.json +++ b/keyboards/mechbrewery/mb65s/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "MB65S", "manufacturer": "MechBrewery", - "url": "", "maintainer": "AnthonyNguyen168", "usb": { "vid": "0x4252", diff --git a/keyboards/mechkeys/acr60/keyboard.json b/keyboards/mechkeys/acr60/keyboard.json index 6486b21f122..0be2ec47c14 100644 --- a/keyboards/mechkeys/acr60/keyboard.json +++ b/keyboards/mechkeys/acr60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "ACR60", "manufacturer": "MechKeys", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/mechkeys/alu84/keyboard.json b/keyboards/mechkeys/alu84/keyboard.json index 30f70b17c96..1d7d8cbee2e 100644 --- a/keyboards/mechkeys/alu84/keyboard.json +++ b/keyboards/mechkeys/alu84/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "ALU84", "manufacturer": "MechKeys", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/mechkeys/espectro/keyboard.json b/keyboards/mechkeys/espectro/keyboard.json index f4d2aa29bb9..d9a7dda1654 100644 --- a/keyboards/mechkeys/espectro/keyboard.json +++ b/keyboards/mechkeys/espectro/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Espectro", "manufacturer": "MechKeys", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/mechkeys/mechmini/v1/keyboard.json b/keyboards/mechkeys/mechmini/v1/keyboard.json index 8d3a4a9b84a..a1338c9ba9e 100644 --- a/keyboards/mechkeys/mechmini/v1/keyboard.json +++ b/keyboards/mechkeys/mechmini/v1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "MechMini", "manufacturer": "MechKeys", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/mechkeys/mk60/keyboard.json b/keyboards/mechkeys/mk60/keyboard.json index e47d7def2c9..bb9a69daf5e 100644 --- a/keyboards/mechkeys/mk60/keyboard.json +++ b/keyboards/mechkeys/mk60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "MK60", "manufacturer": "MechKeys", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/mechlovin/adelais/info.json b/keyboards/mechlovin/adelais/info.json index 42b16d63984..84ca6403cef 100644 --- a/keyboards/mechlovin/adelais/info.json +++ b/keyboards/mechlovin/adelais/info.json @@ -1,6 +1,5 @@ { "manufacturer": "Team.Mechlovin", - "url": "", "maintainer": "mechlovin", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/delphine/info.json b/keyboards/mechlovin/delphine/info.json index baeeab6f186..2fe90c76298 100644 --- a/keyboards/mechlovin/delphine/info.json +++ b/keyboards/mechlovin/delphine/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Delphine", "manufacturer": "Mechlovin", - "url": "", "maintainer": "mechlovin", "usb": { "vid": "0x4D4C" diff --git a/keyboards/mechlovin/foundation/keyboard.json b/keyboards/mechlovin/foundation/keyboard.json index 3bd05add2f1..00cf464255b 100644 --- a/keyboards/mechlovin/foundation/keyboard.json +++ b/keyboards/mechlovin/foundation/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Foundation FRL", "manufacturer": "Mechlovin Studio", - "url": "", "maintainer": "Protozoa", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/hannah60rgb/rev1/keyboard.json b/keyboards/mechlovin/hannah60rgb/rev1/keyboard.json index 4fb4dc2eef5..e2b0ae715e9 100644 --- a/keyboards/mechlovin/hannah60rgb/rev1/keyboard.json +++ b/keyboards/mechlovin/hannah60rgb/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Hannah60 RGB", "manufacturer": "Team.Mechlovin", - "url": "", "maintainer": "mechlovin", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/hannah60rgb/rev2/keyboard.json b/keyboards/mechlovin/hannah60rgb/rev2/keyboard.json index 06bb71a3482..066422b3e31 100644 --- a/keyboards/mechlovin/hannah60rgb/rev2/keyboard.json +++ b/keyboards/mechlovin/hannah60rgb/rev2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Hannah60 RGB Rev.2", "manufacturer": "Team.Mechlovin", - "url": "", "maintainer": "mechlovin", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/hannah65/rev1/haus/keyboard.json b/keyboards/mechlovin/hannah65/rev1/haus/keyboard.json index 7a935fc1a53..14ca49f2077 100644 --- a/keyboards/mechlovin/hannah65/rev1/haus/keyboard.json +++ b/keyboards/mechlovin/hannah65/rev1/haus/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Haus Rev. 1", "manufacturer": "Team Mechlovin", - "url": "", "maintainer": "Team Mechlovin", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/hannah910/rev1/keyboard.json b/keyboards/mechlovin/hannah910/rev1/keyboard.json index 61cf3653375..44dedd57c37 100644 --- a/keyboards/mechlovin/hannah910/rev1/keyboard.json +++ b/keyboards/mechlovin/hannah910/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Hannah910", "manufacturer": "Mechlovin", - "url": "", "maintainer": "Mechlovin'", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/hannah910/rev2/keyboard.json b/keyboards/mechlovin/hannah910/rev2/keyboard.json index 9fb5847124b..8a01f6bb8bf 100644 --- a/keyboards/mechlovin/hannah910/rev2/keyboard.json +++ b/keyboards/mechlovin/hannah910/rev2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Hannah910", "manufacturer": "Mechlovin", - "url": "", "maintainer": "Team Mechlovin'", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/hannah910/rev3/keyboard.json b/keyboards/mechlovin/hannah910/rev3/keyboard.json index ba883198901..668b31328fd 100644 --- a/keyboards/mechlovin/hannah910/rev3/keyboard.json +++ b/keyboards/mechlovin/hannah910/rev3/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Hannah910", "manufacturer": "Mechlovin", - "url": "", "maintainer": "Team Mechlovin'", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/hex4b/info.json b/keyboards/mechlovin/hex4b/info.json index 99647362554..de7f03bab97 100644 --- a/keyboards/mechlovin/hex4b/info.json +++ b/keyboards/mechlovin/hex4b/info.json @@ -1,6 +1,5 @@ { "manufacturer": "Mechlovin Studio", - "url": "", "maintainer": "Hex-Keyboard&Mechlovin", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/hex6c/keyboard.json b/keyboards/mechlovin/hex6c/keyboard.json index e068420b81a..c951cf242db 100644 --- a/keyboards/mechlovin/hex6c/keyboard.json +++ b/keyboards/mechlovin/hex6c/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Hex6C", "manufacturer": "Mechlovin Studio and Hex Keyboard", - "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/infinity87/rev1/rogue87/keyboard.json b/keyboards/mechlovin/infinity87/rev1/rogue87/keyboard.json index 2ac0510dbf3..840f8a03921 100644 --- a/keyboards/mechlovin/infinity87/rev1/rogue87/keyboard.json +++ b/keyboards/mechlovin/infinity87/rev1/rogue87/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Rogue87 Rev.1", "manufacturer": "Mechlovin.Studio", - "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/infinity87/rev1/rouge87/keyboard.json b/keyboards/mechlovin/infinity87/rev1/rouge87/keyboard.json index 6b947f0f1f1..1eec53ebb99 100644 --- a/keyboards/mechlovin/infinity87/rev1/rouge87/keyboard.json +++ b/keyboards/mechlovin/infinity87/rev1/rouge87/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Rouge87 Rev.1", "manufacturer": "Mechlovin.Studio", - "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/infinity87/rev1/standard/keyboard.json b/keyboards/mechlovin/infinity87/rev1/standard/keyboard.json index a0cb10fac22..941f6ec9556 100644 --- a/keyboards/mechlovin/infinity87/rev1/standard/keyboard.json +++ b/keyboards/mechlovin/infinity87/rev1/standard/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "infinity87 Rev.1", "manufacturer": "Mechlovin.Studio", - "url": "", "maintainer": "Team Mechlovin'", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/infinity87/rev2/keyboard.json b/keyboards/mechlovin/infinity87/rev2/keyboard.json index fdc66869889..618b9397bfb 100644 --- a/keyboards/mechlovin/infinity87/rev2/keyboard.json +++ b/keyboards/mechlovin/infinity87/rev2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Infinity87 Rev.2", "manufacturer": "Mechlovin.Studio", - "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/keyboard.json b/keyboards/mechlovin/infinity87/rgb_rev1/keyboard.json index 2d177949dc1..2ca5e03b369 100644 --- a/keyboards/mechlovin/infinity87/rgb_rev1/keyboard.json +++ b/keyboards/mechlovin/infinity87/rgb_rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Infinity87 RGB Rev1", "manufacturer": "Mechlovin.Studio", - "url": "", "maintainer": "Team Mechlovin'", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/infinity875/keyboard.json b/keyboards/mechlovin/infinity875/keyboard.json index 73bdb0af130..1016178caa4 100644 --- a/keyboards/mechlovin/infinity875/keyboard.json +++ b/keyboards/mechlovin/infinity875/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Infinity87.5", "manufacturer": "Mechlovin.Studio", - "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/infinity88/keyboard.json b/keyboards/mechlovin/infinity88/keyboard.json index 14371d24598..3691c6d836d 100644 --- a/keyboards/mechlovin/infinity88/keyboard.json +++ b/keyboards/mechlovin/infinity88/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Infinity 88", "manufacturer": "Team.Mechlovin", - "url": "", "maintainer": "mechlovin", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/infinityce/keyboard.json b/keyboards/mechlovin/infinityce/keyboard.json index 5b10e056bac..2de1bde4999 100644 --- a/keyboards/mechlovin/infinityce/keyboard.json +++ b/keyboards/mechlovin/infinityce/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Infinity CE", "manufacturer": "Team.Mechlovin", - "url": "", "maintainer": "Team Mechlovin'", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/jay60/keyboard.json b/keyboards/mechlovin/jay60/keyboard.json index 75bf190d88e..2b7e9ef9141 100644 --- a/keyboards/mechlovin/jay60/keyboard.json +++ b/keyboards/mechlovin/jay60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Jay60", "manufacturer": "Mechlovin Studio", - "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/kanu/keyboard.json b/keyboards/mechlovin/kanu/keyboard.json index 10cd22319a8..233b82f71ef 100644 --- a/keyboards/mechlovin/kanu/keyboard.json +++ b/keyboards/mechlovin/kanu/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Kanu", "manufacturer": "Mechlovin", - "url": "", "maintainer": "Team Mechlovin'", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/kay60/keyboard.json b/keyboards/mechlovin/kay60/keyboard.json index 7c382739471..b42fd73b881 100644 --- a/keyboards/mechlovin/kay60/keyboard.json +++ b/keyboards/mechlovin/kay60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Kay60", "manufacturer": "Mechlovin Studio", - "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/kay65/keyboard.json b/keyboards/mechlovin/kay65/keyboard.json index f5d58979396..d5008ec48f4 100644 --- a/keyboards/mechlovin/kay65/keyboard.json +++ b/keyboards/mechlovin/kay65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Kay65 Rev. 1", "manufacturer": "Team Mechlovin", - "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/mechlovin9/info.json b/keyboards/mechlovin/mechlovin9/info.json index 41133813ef7..6783f0a323d 100644 --- a/keyboards/mechlovin/mechlovin9/info.json +++ b/keyboards/mechlovin/mechlovin9/info.json @@ -1,6 +1,5 @@ { "manufacturer": "Mechlovin Studio", - "url": "", "maintainer": "Team Mechlovin", "usb": { "vid": "0x4D4C" diff --git a/keyboards/mechlovin/olly/bb/keyboard.json b/keyboards/mechlovin/olly/bb/keyboard.json index ac08e94c3ce..de3eb16c1de 100644 --- a/keyboards/mechlovin/olly/bb/keyboard.json +++ b/keyboards/mechlovin/olly/bb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Olly BB", "manufacturer": "Mechlovin.Studio", - "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/olly/jf/info.json b/keyboards/mechlovin/olly/jf/info.json index 315191e8408..c5a70f44bab 100644 --- a/keyboards/mechlovin/olly/jf/info.json +++ b/keyboards/mechlovin/olly/jf/info.json @@ -1,6 +1,5 @@ { "manufacturer": "Mechlovin.Studio", - "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C" diff --git a/keyboards/mechlovin/olly/octagon/keyboard.json b/keyboards/mechlovin/olly/octagon/keyboard.json index 9c580a664e6..6df26bad096 100644 --- a/keyboards/mechlovin/olly/octagon/keyboard.json +++ b/keyboards/mechlovin/olly/octagon/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Olly Octagon", "manufacturer": "Mechlovin Studio", - "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/olly/orion/keyboard.json b/keyboards/mechlovin/olly/orion/keyboard.json index 2780e219494..408d9048995 100644 --- a/keyboards/mechlovin/olly/orion/keyboard.json +++ b/keyboards/mechlovin/olly/orion/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Olly Orion", "manufacturer": "Mechlovin.Studio", - "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/pisces/keyboard.json b/keyboards/mechlovin/pisces/keyboard.json index 37915826e66..b24afb64657 100644 --- a/keyboards/mechlovin/pisces/keyboard.json +++ b/keyboards/mechlovin/pisces/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Pisces65", "manufacturer": "Team.Mechlovin", - "url": "", "maintainer": "mechlovin", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/serratus/keyboard.json b/keyboards/mechlovin/serratus/keyboard.json index c283c48a350..8cf0778c1df 100644 --- a/keyboards/mechlovin/serratus/keyboard.json +++ b/keyboards/mechlovin/serratus/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Serratus Rev.1", "manufacturer": "Mechlovin Studio", - "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/th1800/keyboard.json b/keyboards/mechlovin/th1800/keyboard.json index 66b74875454..8162deca81c 100644 --- a/keyboards/mechlovin/th1800/keyboard.json +++ b/keyboards/mechlovin/th1800/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "th-1800", "manufacturer": "Team Mechlovin", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/zed1800/info.json b/keyboards/mechlovin/zed1800/info.json index 9de42c24424..aecaf6d9228 100644 --- a/keyboards/mechlovin/zed1800/info.json +++ b/keyboards/mechlovin/zed1800/info.json @@ -1,6 +1,5 @@ { "manufacturer": "Mechlovin Studio", - "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/zed60/keyboard.json b/keyboards/mechlovin/zed60/keyboard.json index 136170eec6a..480517a3019 100644 --- a/keyboards/mechlovin/zed60/keyboard.json +++ b/keyboards/mechlovin/zed60/keyboard.json @@ -38,7 +38,6 @@ "saturation_steps": 8, "sleep": true }, - "url": "", "usb": { "device_version": "0.0.1", "pid": "0x0602", diff --git a/keyboards/mechlovin/zed65/mono_led/keyboard.json b/keyboards/mechlovin/zed65/mono_led/keyboard.json index 763fbe9f4c3..e33db35a7a1 100644 --- a/keyboards/mechlovin/zed65/mono_led/keyboard.json +++ b/keyboards/mechlovin/zed65/mono_led/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Zed65-MonoLED", "manufacturer": "Mechlovin Studio", - "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/zed65/no_backlight/cor65/keyboard.json b/keyboards/mechlovin/zed65/no_backlight/cor65/keyboard.json index 4b3ed831c51..56103e44dbc 100644 --- a/keyboards/mechlovin/zed65/no_backlight/cor65/keyboard.json +++ b/keyboards/mechlovin/zed65/no_backlight/cor65/keyboard.json @@ -11,7 +11,6 @@ "cols": ["B11", "B10", "B2", "B1", "B0", "A6", "A5", "A4", "A3", "A2", "C13", "B7", "B6", "B5", "B4", "B3"], "rows": ["B12", "B13", "B14", "B15", "A1"] }, - "url": "", "usb": { "device_version": "0.0.1", "pid": "0x6504", diff --git a/keyboards/mechlovin/zed65/no_backlight/retro66/keyboard.json b/keyboards/mechlovin/zed65/no_backlight/retro66/keyboard.json index 49ed44f0a1f..8fcfde5db9a 100644 --- a/keyboards/mechlovin/zed65/no_backlight/retro66/keyboard.json +++ b/keyboards/mechlovin/zed65/no_backlight/retro66/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Retro66", "manufacturer": "Mechlovin Studio", - "url": "", "maintainer": "Mechlovin' Studio", "usb": { "vid": "0x4D4C", diff --git a/keyboards/mechlovin/zed65/no_backlight/wearhaus66/keyboard.json b/keyboards/mechlovin/zed65/no_backlight/wearhaus66/keyboard.json index c9c9e0ddb1e..c2b75fd1e42 100644 --- a/keyboards/mechlovin/zed65/no_backlight/wearhaus66/keyboard.json +++ b/keyboards/mechlovin/zed65/no_backlight/wearhaus66/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Wearhaus66", "manufacturer": "Mechlovin Studio", - "url": "", "maintainer": "mechlovin", "usb": { "vid": "0x4D4C", diff --git a/keyboards/meetlab/kafka60/keyboard.json b/keyboards/meetlab/kafka60/keyboard.json index 5dbf3f56424..2c7c41b23d8 100644 --- a/keyboards/meetlab/kafka60/keyboard.json +++ b/keyboards/meetlab/kafka60/keyboard.json @@ -13,7 +13,6 @@ "cols": ["A15", "B3", "B4", "B5", "B6", "B7", "B8", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "B11"], "rows": ["B15", "A8", "B13", "B12", "A9"] }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0xBF06", diff --git a/keyboards/meetlab/kafka68/keyboard.json b/keyboards/meetlab/kafka68/keyboard.json index 3836edc3c9a..418749ed43c 100644 --- a/keyboards/meetlab/kafka68/keyboard.json +++ b/keyboards/meetlab/kafka68/keyboard.json @@ -14,7 +14,6 @@ "cols": ["A10", "B7", "B6", "B5", "B4", "B3", "A15", "B0", "A7", "A6", "A5", "A4", "A3", "B1", "B10", "B11"], "rows": ["B13", "B14", "B15", "A8", "A9"] }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0xAA07", diff --git a/keyboards/meetlab/kafkasplit/keyboard.json b/keyboards/meetlab/kafkasplit/keyboard.json index 375d4f7a03b..0ac90a56fb7 100644 --- a/keyboards/meetlab/kafkasplit/keyboard.json +++ b/keyboards/meetlab/kafkasplit/keyboard.json @@ -143,7 +143,6 @@ } } }, - "url": "", "usb": { "device_version": "0.0.1", "pid": "0xBFC2", diff --git a/keyboards/meetlab/kalice/keyboard.json b/keyboards/meetlab/kalice/keyboard.json index 5e53fe49049..eb91d644660 100644 --- a/keyboards/meetlab/kalice/keyboard.json +++ b/keyboards/meetlab/kalice/keyboard.json @@ -31,7 +31,6 @@ "led_count": 11, "saturation_steps": 8 }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0xBB04", diff --git a/keyboards/meetlab/rena/keyboard.json b/keyboards/meetlab/rena/keyboard.json index cf28f6d5f03..8787fb0ee85 100644 --- a/keyboards/meetlab/rena/keyboard.json +++ b/keyboards/meetlab/rena/keyboard.json @@ -39,7 +39,6 @@ "led_count": 1, "saturation_steps": 8 }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0xAB06", diff --git a/keyboards/mehkee96/keyboard.json b/keyboards/mehkee96/keyboard.json index 4f4d4853c8f..326e91670d2 100644 --- a/keyboards/mehkee96/keyboard.json +++ b/keyboards/mehkee96/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "96KEE", "manufacturer": "Mehkee", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x20A0", diff --git a/keyboards/melgeek/mach80/info.json b/keyboards/melgeek/mach80/info.json index ade831fc369..d8a565b2e47 100755 --- a/keyboards/melgeek/mach80/info.json +++ b/keyboards/melgeek/mach80/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Mach80", "manufacturer": "MelGeek", - "url": "", "maintainer": "melgeek001365", "usb": { "vid": "0xEDED", diff --git a/keyboards/melgeek/mj61/info.json b/keyboards/melgeek/mj61/info.json index d34dc593644..9a3e86d5e0c 100644 --- a/keyboards/melgeek/mj61/info.json +++ b/keyboards/melgeek/mj61/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "MJ61", "manufacturer": "MelGeek", - "url": "", "maintainer": "melgeek001365", "usb": { "vid": "0xEDED", diff --git a/keyboards/melgeek/mj63/info.json b/keyboards/melgeek/mj63/info.json index c81bf9f8677..af59bf8a59c 100644 --- a/keyboards/melgeek/mj63/info.json +++ b/keyboards/melgeek/mj63/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "MJ63", "manufacturer": "MelGeek", - "url": "", "maintainer": "melgeek001365", "usb": { "vid": "0xEDED", diff --git a/keyboards/melgeek/mj64/info.json b/keyboards/melgeek/mj64/info.json index 731996ef849..25d908db5d3 100644 --- a/keyboards/melgeek/mj64/info.json +++ b/keyboards/melgeek/mj64/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "MJ64", "manufacturer": "MelGeek", - "url": "", "maintainer": "melgeek001365", "usb": { "vid": "0xEDED", diff --git a/keyboards/melgeek/mj65/rev3/keyboard.json b/keyboards/melgeek/mj65/rev3/keyboard.json index adf0ef94bc6..a4513b45e7e 100644 --- a/keyboards/melgeek/mj65/rev3/keyboard.json +++ b/keyboards/melgeek/mj65/rev3/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "MJ65", "manufacturer": "MelGeek", - "url": "", "maintainer": "melgeek001365", "usb": { "vid": "0xEDED", diff --git a/keyboards/melgeek/mj6xy/info.json b/keyboards/melgeek/mj6xy/info.json index 0dd1212354d..3b13337aaee 100755 --- a/keyboards/melgeek/mj6xy/info.json +++ b/keyboards/melgeek/mj6xy/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "MJ6XY", "manufacturer": "MelGeek", - "url": "", "maintainer": "melgeek001365", "usb": { "vid": "0xEDED", diff --git a/keyboards/melgeek/mojo68/rev1/keyboard.json b/keyboards/melgeek/mojo68/rev1/keyboard.json index 7f218392929..d6388b089d7 100755 --- a/keyboards/melgeek/mojo68/rev1/keyboard.json +++ b/keyboards/melgeek/mojo68/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "MoJo68", "manufacturer": "MelGeek", - "url": "", "maintainer": "melgeek001365", "usb": { "vid": "0xEDED", diff --git a/keyboards/melgeek/mojo75/rev1/keyboard.json b/keyboards/melgeek/mojo75/rev1/keyboard.json index a1b93afb69b..dbc6cbceeef 100644 --- a/keyboards/melgeek/mojo75/rev1/keyboard.json +++ b/keyboards/melgeek/mojo75/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "MoJo75", "manufacturer": "MelGeek", - "url": "", "maintainer": "melgeek001365", "usb": { "vid": "0xEDED", diff --git a/keyboards/melgeek/tegic/rev1/keyboard.json b/keyboards/melgeek/tegic/rev1/keyboard.json index 0a2e9306f6e..c15a54b39f8 100644 --- a/keyboards/melgeek/tegic/rev1/keyboard.json +++ b/keyboards/melgeek/tegic/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "tegic", "manufacturer": "MelGeek", - "url": "", "maintainer": "melgeek001365", "usb": { "vid": "0xEDED", diff --git a/keyboards/melgeek/z70ultra/rev1/keyboard.json b/keyboards/melgeek/z70ultra/rev1/keyboard.json index de1b1df646c..8f79b395fce 100644 --- a/keyboards/melgeek/z70ultra/rev1/keyboard.json +++ b/keyboards/melgeek/z70ultra/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Z70Ultra", "manufacturer": "MelGeek", - "url": "", "maintainer": "melgeek001365", "usb": { "vid": "0xEDED", diff --git a/keyboards/meme/keyboard.json b/keyboards/meme/keyboard.json index 27acfc5a33f..5be88543dd9 100644 --- a/keyboards/meme/keyboard.json +++ b/keyboards/meme/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Meme", "manufacturer": "Switchmod Keyboards", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/merge/iso_macro/keyboard.json b/keyboards/merge/iso_macro/keyboard.json index 1c6d9052824..bdf3737906f 100644 --- a/keyboards/merge/iso_macro/keyboard.json +++ b/keyboards/merge/iso_macro/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "ISO Macro", "manufacturer": "Merge", - "url": "", "maintainer": "duoshock", "usb": { "vid": "0x4D65", diff --git a/keyboards/mexsistor/ludmila/keyboard.json b/keyboards/mexsistor/ludmila/keyboard.json index 71202208c5f..61c4cca2ab6 100644 --- a/keyboards/mexsistor/ludmila/keyboard.json +++ b/keyboards/mexsistor/ludmila/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Ludmila Macropad", "manufacturer": "Kevin M.", - "url": "", "maintainer": "Kevin M.", "usb": { "vid": "0x69CC", diff --git a/keyboards/miller/gm862/keyboard.json b/keyboards/miller/gm862/keyboard.json index b8c32cf16a6..210b37b7b00 100644 --- a/keyboards/miller/gm862/keyboard.json +++ b/keyboards/miller/gm862/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "GM862", "manufacturer": "MILLER", - "url": "", "maintainer": "MILLER", "usb": { "vid": "0x4B42", diff --git a/keyboards/millet/doksin/keyboard.json b/keyboards/millet/doksin/keyboard.json index 7a848662cd4..a472eebc79e 100644 --- a/keyboards/millet/doksin/keyboard.json +++ b/keyboards/millet/doksin/keyboard.json @@ -14,7 +14,6 @@ ] }, "processor": "atmega32u2", - "url": "", "usb": { "device_version": "0.0.1", "pid": "0x1919", diff --git a/keyboards/mincedshon/ecila/keyboard.json b/keyboards/mincedshon/ecila/keyboard.json index fe7173e34a6..73e52b75904 100644 --- a/keyboards/mincedshon/ecila/keyboard.json +++ b/keyboards/mincedshon/ecila/keyboard.json @@ -45,7 +45,6 @@ "rows": ["E6", "B3", "B5", "B4", "D7"] }, "processor": "atmega32u4", - "url": "", "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/minimacro5/keyboard.json b/keyboards/minimacro5/keyboard.json index 32be6abd5f6..e500efa2518 100644 --- a/keyboards/minimacro5/keyboard.json +++ b/keyboards/minimacro5/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "miniMACRO5", "manufacturer": "leafcutterlabs", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xCEEB", diff --git a/keyboards/mint60/keyboard.json b/keyboards/mint60/keyboard.json index c5bfe27365e..9fa69f5a3cb 100644 --- a/keyboards/mint60/keyboard.json +++ b/keyboards/mint60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Mint60", "manufacturer": "Eucalyn", - "url": "", "maintainer": "eucalyn", "usb": { "vid": "0xFEED", diff --git a/keyboards/misterknife/knife66/keyboard.json b/keyboards/misterknife/knife66/keyboard.json index 9e3d0c66b75..3670b8a07fe 100644 --- a/keyboards/misterknife/knife66/keyboard.json +++ b/keyboards/misterknife/knife66/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Knife66", "manufacturer": "MisterKnife", - "url": "", "maintainer": "afewyards", "usb": { "vid": "0xAC11", diff --git a/keyboards/misterknife/knife66_iso/keyboard.json b/keyboards/misterknife/knife66_iso/keyboard.json index 88f87461093..3370afa1b5f 100644 --- a/keyboards/misterknife/knife66_iso/keyboard.json +++ b/keyboards/misterknife/knife66_iso/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Knife66 ISO", "manufacturer": "MisterKnife", - "url": "", "maintainer": "afewyards", "usb": { "vid": "0xAC11", diff --git a/keyboards/mitosis/keyboard.json b/keyboards/mitosis/keyboard.json index c69d1d30cd4..310c0ebd1ae 100644 --- a/keyboards/mitosis/keyboard.json +++ b/keyboards/mitosis/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Mitosis", "manufacturer": "Unknown", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/miuni32/keyboard.json b/keyboards/miuni32/keyboard.json index 0b52b058fa6..b105d2f2b8c 100644 --- a/keyboards/miuni32/keyboard.json +++ b/keyboards/miuni32/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Miuni32", "manufacturer": "Bigtuna.io", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/mk65/keyboard.json b/keyboards/mk65/keyboard.json index 07a78872c4d..0a768ece5e7 100644 --- a/keyboards/mk65/keyboard.json +++ b/keyboards/mk65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "MK-65", "manufacturer": "mangooo", - "url": "", "maintainer": "DeskDaily", "usb": { "vid": "0x5004", diff --git a/keyboards/mmkzoo65/keyboard.json b/keyboards/mmkzoo65/keyboard.json index f023f34ef04..6e1c33273cb 100644 --- a/keyboards/mmkzoo65/keyboard.json +++ b/keyboards/mmkzoo65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "MMKZOO65", "manufacturer": "MWStudio", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x7BA1", diff --git a/keyboards/mode/m256ws/keyboard.json b/keyboards/mode/m256ws/keyboard.json index 820ed536c21..3a754fe7dbd 100644 --- a/keyboards/mode/m256ws/keyboard.json +++ b/keyboards/mode/m256ws/keyboard.json @@ -36,7 +36,6 @@ "twinkle": true } }, - "url": "", "usb": { "device_version": "0.0.1", "pid": "0x5753", diff --git a/keyboards/mode/m60h/keyboard.json b/keyboards/mode/m60h/keyboard.json index b33ea3a9c3b..26095bb828f 100644 --- a/keyboards/mode/m60h/keyboard.json +++ b/keyboards/mode/m60h/keyboard.json @@ -39,7 +39,6 @@ "max_brightness": 120, "sleep": true }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0062", diff --git a/keyboards/mode/m60h_f/keyboard.json b/keyboards/mode/m60h_f/keyboard.json index 014472bc68c..8a9a64ee656 100644 --- a/keyboards/mode/m60h_f/keyboard.json +++ b/keyboards/mode/m60h_f/keyboard.json @@ -39,7 +39,6 @@ "max_brightness": 120, "sleep": true }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0061", diff --git a/keyboards/mode/m60s/keyboard.json b/keyboards/mode/m60s/keyboard.json index 6a03219427f..4a435967d61 100644 --- a/keyboards/mode/m60s/keyboard.json +++ b/keyboards/mode/m60s/keyboard.json @@ -39,7 +39,6 @@ "max_brightness": 120, "sleep": true }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0060", diff --git a/keyboards/mode/m65ha_alpha/keyboard.json b/keyboards/mode/m65ha_alpha/keyboard.json index cc5271b5c2c..acf8845cd7c 100644 --- a/keyboards/mode/m65ha_alpha/keyboard.json +++ b/keyboards/mode/m65ha_alpha/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "SixtyFive HA", "manufacturer": "Mode", - "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x00DE", diff --git a/keyboards/mode/m65hi_alpha/keyboard.json b/keyboards/mode/m65hi_alpha/keyboard.json index c0c843d4de4..f85e1f37561 100644 --- a/keyboards/mode/m65hi_alpha/keyboard.json +++ b/keyboards/mode/m65hi_alpha/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "SixtyFive HI", "manufacturer": "Mode", - "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x00DE", diff --git a/keyboards/mode/m65s/keyboard.json b/keyboards/mode/m65s/keyboard.json index ae8df282ad9..bd11e38bf4a 100644 --- a/keyboards/mode/m65s/keyboard.json +++ b/keyboards/mode/m65s/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "SixtyFive S", "manufacturer": "Mode", - "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x00DE", diff --git a/keyboards/mode/m75h/keyboard.json b/keyboards/mode/m75h/keyboard.json index 5d4d8249e67..6df6f28ab01 100644 --- a/keyboards/mode/m75h/keyboard.json +++ b/keyboards/mode/m75h/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "M75H", "manufacturer": "Mode", - "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x00DE", diff --git a/keyboards/mode/m75s/keyboard.json b/keyboards/mode/m75s/keyboard.json index aff38dc6224..f345874bbfc 100644 --- a/keyboards/mode/m75s/keyboard.json +++ b/keyboards/mode/m75s/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "75S", "manufacturer": "Mode", - "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x00DE", diff --git a/keyboards/mode/m80v1/m80h/keyboard.json b/keyboards/mode/m80v1/m80h/keyboard.json index dcebcb6d494..9b7eeb85d23 100644 --- a/keyboards/mode/m80v1/m80h/keyboard.json +++ b/keyboards/mode/m80v1/m80h/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Eighty", "manufacturer": "Mode", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x00DE", diff --git a/keyboards/mode/m80v1/m80s/keyboard.json b/keyboards/mode/m80v1/m80s/keyboard.json index 25bfd3c70a7..4f93ef676c6 100644 --- a/keyboards/mode/m80v1/m80s/keyboard.json +++ b/keyboards/mode/m80v1/m80s/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Eighty", "manufacturer": "Mode", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x00DE", diff --git a/keyboards/mokey/ginkgo65/keyboard.json b/keyboards/mokey/ginkgo65/keyboard.json index 311d91f2d31..bdee6ebf80e 100644 --- a/keyboards/mokey/ginkgo65/keyboard.json +++ b/keyboards/mokey/ginkgo65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "ginkgo 65", "manufacturer": "Mokey", - "url": "", "maintainer": "rhmokey", "usb": { "vid": "0x6653", diff --git a/keyboards/mokey/ginkgo65hot/keyboard.json b/keyboards/mokey/ginkgo65hot/keyboard.json index 1674607310c..c42c2a87ff9 100644 --- a/keyboards/mokey/ginkgo65hot/keyboard.json +++ b/keyboards/mokey/ginkgo65hot/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "ginkgo65hot", "manufacturer": "Mokey", - "url": "", "maintainer": "mokey", "usb": { "vid": "0x6653", diff --git a/keyboards/mokey/ibis80/keyboard.json b/keyboards/mokey/ibis80/keyboard.json index d6cd985d016..536de9aab61 100644 --- a/keyboards/mokey/ibis80/keyboard.json +++ b/keyboards/mokey/ibis80/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "ibis 80", "manufacturer": "Mokey", - "url": "", "maintainer": "Runheme", "usb": { "vid": "0x6653", diff --git a/keyboards/mokey/luckycat70/keyboard.json b/keyboards/mokey/luckycat70/keyboard.json index 2f9ab6a1e59..81d077f8a53 100644 --- a/keyboards/mokey/luckycat70/keyboard.json +++ b/keyboards/mokey/luckycat70/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Lucky Cat 70", "manufacturer": "qmk", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x6653", diff --git a/keyboards/mokey/mokey12x2/keyboard.json b/keyboards/mokey/mokey12x2/keyboard.json index 6f22429e72c..489856a2642 100644 --- a/keyboards/mokey/mokey12x2/keyboard.json +++ b/keyboards/mokey/mokey12x2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Mokey12x2", "manufacturer": "Mokey", - "url": "", "maintainer": "Mokey", "development_board": "bluepill", "diode_direction": "COL2ROW", diff --git a/keyboards/mokey/mokey63/keyboard.json b/keyboards/mokey/mokey63/keyboard.json index bebc6005103..40b45bcd41f 100644 --- a/keyboards/mokey/mokey63/keyboard.json +++ b/keyboards/mokey/mokey63/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Mokey63", "manufacturer": "Mokey", - "url": "", "maintainer": "mokey", "usb": { "vid": "0x6653", diff --git a/keyboards/mokey/mokey64/keyboard.json b/keyboards/mokey/mokey64/keyboard.json index 0234cf6292d..fbc50d4fd89 100644 --- a/keyboards/mokey/mokey64/keyboard.json +++ b/keyboards/mokey/mokey64/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Mokey64", "manufacturer": "Mokey", - "url": "", "maintainer": "mokey", "usb": { "vid": "0x6653", diff --git a/keyboards/mokey/xox70/keyboard.json b/keyboards/mokey/xox70/keyboard.json index 4f8f5439f50..41980ed4ad1 100644 --- a/keyboards/mokey/xox70/keyboard.json +++ b/keyboards/mokey/xox70/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "XOX 70", "manufacturer": "Mokey", - "url": "", "maintainer": "Mokey", "usb": { "vid": "0x6653", diff --git a/keyboards/mokey/xox70hot/keyboard.json b/keyboards/mokey/xox70hot/keyboard.json index 7d5f338b626..011e031ffe9 100644 --- a/keyboards/mokey/xox70hot/keyboard.json +++ b/keyboards/mokey/xox70hot/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "XOX 70 Hotswap", "manufacturer": "Mokey", - "url": "", "maintainer": "rhmokey", "usb": { "vid": "0x6653", diff --git a/keyboards/moky/moky67/keyboard.json b/keyboards/moky/moky67/keyboard.json index 8737790b69e..869dfc33899 100644 --- a/keyboards/moky/moky67/keyboard.json +++ b/keyboards/moky/moky67/keyboard.json @@ -1,7 +1,6 @@ { "manufacturer": "moky", "keyboard_name": "moky67", - "url": "", "processor": "WB32FQ95", "bootloader": "wb32-dfu", "usb": { diff --git a/keyboards/moky/moky88/keyboard.json b/keyboards/moky/moky88/keyboard.json index 38ed4dbd289..1db4c5247cd 100644 --- a/keyboards/moky/moky88/keyboard.json +++ b/keyboards/moky/moky88/keyboard.json @@ -1,7 +1,6 @@ { "manufacturer": "moky", "keyboard_name": "moky88", - "url": "", "processor": "WB32FQ95", "bootloader": "wb32-dfu", "usb": { diff --git a/keyboards/momoka_ergo/keyboard.json b/keyboards/momoka_ergo/keyboard.json index a24430ee823..23e0535d61f 100644 --- a/keyboards/momoka_ergo/keyboard.json +++ b/keyboards/momoka_ergo/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Momoka Ergo", "manufacturer": "StefanGrindelwald", - "url": "", "maintainer": "StefanGrindelwald", "usb": { "vid": "0x4F4D", diff --git a/keyboards/momokai/aurora/keyboard.json b/keyboards/momokai/aurora/keyboard.json index 9c5ff2a043b..572d302663d 100644 --- a/keyboards/momokai/aurora/keyboard.json +++ b/keyboards/momokai/aurora/keyboard.json @@ -24,7 +24,6 @@ ] }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "0.0.1", "pid": "0x0009", diff --git a/keyboards/momokai/tap_duo/keyboard.json b/keyboards/momokai/tap_duo/keyboard.json index ad38187949c..7658a7c5c65 100644 --- a/keyboards/momokai/tap_duo/keyboard.json +++ b/keyboards/momokai/tap_duo/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Tap Duo", "manufacturer": "Momokai", - "url": "", "maintainer": "peepeetee", "usb": { "vid": "0x69F9", diff --git a/keyboards/momokai/tap_trio/keyboard.json b/keyboards/momokai/tap_trio/keyboard.json index 23e9867fe70..9ce41ff5ad8 100644 --- a/keyboards/momokai/tap_trio/keyboard.json +++ b/keyboards/momokai/tap_trio/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Tap Trio", "manufacturer": "Momokai", - "url": "", "maintainer": "peepeetee", "usb": { "vid": "0x69F9", diff --git a/keyboards/monarch/keyboard.json b/keyboards/monarch/keyboard.json index c42db64a26f..b7237ec6135 100644 --- a/keyboards/monarch/keyboard.json +++ b/keyboards/monarch/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Monarch", "manufacturer": "DoCallMeKing", - "url": "", "maintainer": "Ramon Imbao", "usb": { "vid": "0x4011", diff --git a/keyboards/monoflex60/keyboard.json b/keyboards/monoflex60/keyboard.json index 4c6fca75246..9be4b39202b 100644 --- a/keyboards/monoflex60/keyboard.json +++ b/keyboards/monoflex60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Monoflex 60", "manufacturer": "SantiGo Customs", - "url": "", "maintainer": "key10iq", "usb": { "vid": "0xDEB4", diff --git a/keyboards/mothwing/keyboard.json b/keyboards/mothwing/keyboard.json index c52d9df00e5..5a584c7cb2b 100644 --- a/keyboards/mothwing/keyboard.json +++ b/keyboards/mothwing/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "mothwing", "manufacturer": "Luana co.ltd.", - "url": "", "maintainer": "tan-t", "usb": { "vid": "0x4D77", diff --git a/keyboards/mountainblocks/mb17/keyboard.json b/keyboards/mountainblocks/mb17/keyboard.json index 9e9bb984066..9103f7775f7 100644 --- a/keyboards/mountainblocks/mb17/keyboard.json +++ b/keyboards/mountainblocks/mb17/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "MB17", "manufacturer": "Mountainblocks", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4D42", diff --git a/keyboards/mountainmechdesigns/teton_78/keyboard.json b/keyboards/mountainmechdesigns/teton_78/keyboard.json index d6f5ce9cd83..61ae4ac495e 100644 --- a/keyboards/mountainmechdesigns/teton_78/keyboard.json +++ b/keyboards/mountainmechdesigns/teton_78/keyboard.json @@ -20,7 +20,6 @@ "rows": ["D0", "D1", "D2", "D3", "D5"] }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x3349", diff --git a/keyboards/ms_sculpt/keyboard.json b/keyboards/ms_sculpt/keyboard.json index 5353a0df7e7..4fa0dcca483 100644 --- a/keyboards/ms_sculpt/keyboard.json +++ b/keyboards/ms_sculpt/keyboard.json @@ -22,7 +22,6 @@ "io_delay": 5 }, "debounce": 3, - "url": "", "usb": { "polling_interval": 1, "device_version": "1.0.0", diff --git a/keyboards/mss_studio/m63_rgb/keyboard.json b/keyboards/mss_studio/m63_rgb/keyboard.json index 1b1745bc201..7647896711e 100644 --- a/keyboards/mss_studio/m63_rgb/keyboard.json +++ b/keyboards/mss_studio/m63_rgb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "M63 RGB", "manufacturer": "Mss Studio", - "url": "", "maintainer": "HorrorTroll", "usb": { "vid": "0x4D4B", diff --git a/keyboards/mss_studio/m64_rgb/keyboard.json b/keyboards/mss_studio/m64_rgb/keyboard.json index eb1cabb3059..885d55055e4 100644 --- a/keyboards/mss_studio/m64_rgb/keyboard.json +++ b/keyboards/mss_studio/m64_rgb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "M64 RGB", "manufacturer": "Mss Studio", - "url": "", "maintainer": "HorrorTroll", "usb": { "vid": "0x4D4B", diff --git a/keyboards/mt/blocked65/keyboard.json b/keyboards/mt/blocked65/keyboard.json index 9a0ce520430..d07ca870aee 100644 --- a/keyboards/mt/blocked65/keyboard.json +++ b/keyboards/mt/blocked65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Blocked65", "manufacturer": "Dou", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x5746", diff --git a/keyboards/mt/mt40/keyboard.json b/keyboards/mt/mt40/keyboard.json index d1700389f7e..e02109b1cc0 100644 --- a/keyboards/mt/mt40/keyboard.json +++ b/keyboards/mt/mt40/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "MT40", "manufacturer": "ThomasDehaeze", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x20A0", diff --git a/keyboards/mt/mt64rgb/keyboard.json b/keyboards/mt/mt64rgb/keyboard.json index 451be59f8f5..bac2c213aa9 100644 --- a/keyboards/mt/mt64rgb/keyboard.json +++ b/keyboards/mt/mt64rgb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "MT64RGB", "manufacturer": "MT", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4D54", diff --git a/keyboards/mt/mt84/keyboard.json b/keyboards/mt/mt84/keyboard.json index 26f66b31dbd..1f73f1d5a2c 100644 --- a/keyboards/mt/mt84/keyboard.json +++ b/keyboards/mt/mt84/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "MT84", "manufacturer": "MT", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4D54", diff --git a/keyboards/mt/split75/keyboard.json b/keyboards/mt/split75/keyboard.json index c13fa28b800..611e25bb6f3 100644 --- a/keyboards/mt/split75/keyboard.json +++ b/keyboards/mt/split75/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Split75", "manufacturer": "YMDK", - "url": "", "maintainer": "Michael L. Walker", "usb": { "vid": "0x594D", diff --git a/keyboards/murcielago/rev1/keyboard.json b/keyboards/murcielago/rev1/keyboard.json index 4d3a82ef2c6..bba7cf90895 100644 --- a/keyboards/murcielago/rev1/keyboard.json +++ b/keyboards/murcielago/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Murci\u00e9lago", "manufacturer": "elagil", - "url": "", "maintainer": "elagil", "usb": { "vid": "0x6166", diff --git a/keyboards/mwstudio/mmk_3/keyboard.json b/keyboards/mwstudio/mmk_3/keyboard.json index c63bd69f628..b812cb7e3b9 100644 --- a/keyboards/mwstudio/mmk_3/keyboard.json +++ b/keyboards/mwstudio/mmk_3/keyboard.json @@ -31,7 +31,6 @@ "hue_steps": 10, "led_count": 5 }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x3001", diff --git a/keyboards/mwstudio/mw65_black/keyboard.json b/keyboards/mwstudio/mw65_black/keyboard.json index 8955cf96883..6ae4b6055ea 100644 --- a/keyboards/mwstudio/mw65_black/keyboard.json +++ b/keyboards/mwstudio/mw65_black/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "MW65 Black", "manufacturer": "MWStudio", - "url": "", "maintainer": "TW59420", "usb": { "vid": "0x7BA1", diff --git a/keyboards/mwstudio/mw65_rgb/keyboard.json b/keyboards/mwstudio/mw65_rgb/keyboard.json index f1a8190948b..25a33783f5b 100644 --- a/keyboards/mwstudio/mw65_rgb/keyboard.json +++ b/keyboards/mwstudio/mw65_rgb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "MW65 RGB", "manufacturer": "MWStudio", - "url": "", "maintainer": "TW59420", "usb": { "vid": "0x7BA1", diff --git a/keyboards/mwstudio/mw660/keyboard.json b/keyboards/mwstudio/mw660/keyboard.json index fdbd7564a7b..629eea28202 100644 --- a/keyboards/mwstudio/mw660/keyboard.json +++ b/keyboards/mwstudio/mw660/keyboard.json @@ -24,7 +24,6 @@ }, "processor": "STM32F103", "bootloader": "stm32duino", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x6601", diff --git a/keyboards/mwstudio/mw75/keyboard.json b/keyboards/mwstudio/mw75/keyboard.json index d9e540bca44..2d826b1c99f 100644 --- a/keyboards/mwstudio/mw75/keyboard.json +++ b/keyboards/mwstudio/mw75/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "MW75", "manufacturer": "MWStudio", - "url": "", "maintainer": "TW59420", "usb": { "vid": "0x7BA1", diff --git a/keyboards/mwstudio/mw75r2/keyboard.json b/keyboards/mwstudio/mw75r2/keyboard.json index ae227830e59..144a848b18f 100644 --- a/keyboards/mwstudio/mw75r2/keyboard.json +++ b/keyboards/mwstudio/mw75r2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "MW75R2", "manufacturer": "MWStudio", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x7BA1", diff --git a/keyboards/mwstudio/mw80/keyboard.json b/keyboards/mwstudio/mw80/keyboard.json index 08591eb7065..423ec94e0e0 100644 --- a/keyboards/mwstudio/mw80/keyboard.json +++ b/keyboards/mwstudio/mw80/keyboard.json @@ -18,7 +18,6 @@ }, "processor": "STM32F103", "bootloader": "stm32duino", - "url": "", "indicators": { "caps_lock": "A0" }, diff --git a/keyboards/mykeyclub/jris65/hotswap/keyboard.json b/keyboards/mykeyclub/jris65/hotswap/keyboard.json index 3ed56136d14..134edbf4f03 100644 --- a/keyboards/mykeyclub/jris65/hotswap/keyboard.json +++ b/keyboards/mykeyclub/jris65/hotswap/keyboard.json @@ -15,7 +15,6 @@ "rows": ["F7", "F6", "F5", "B2", "F4"] }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "0.1.0", "pid": "0x4953", diff --git a/keyboards/nacly/splitreus62/keyboard.json b/keyboards/nacly/splitreus62/keyboard.json index a3b1544b9a2..e91b4bdc753 100644 --- a/keyboards/nacly/splitreus62/keyboard.json +++ b/keyboards/nacly/splitreus62/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Splitreus62", "manufacturer": "NaCly", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xBEEF", diff --git a/keyboards/nacly/ua62/keyboard.json b/keyboards/nacly/ua62/keyboard.json index 43f2e9e6628..0bf01308f50 100644 --- a/keyboards/nacly/ua62/keyboard.json +++ b/keyboards/nacly/ua62/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "UA62", "manufacturer": "NaCly", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xBEEF", diff --git a/keyboards/navi60/keyboard.json b/keyboards/navi60/keyboard.json index 42c3e5da1d1..8d41c7a1b3a 100644 --- a/keyboards/navi60/keyboard.json +++ b/keyboards/navi60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Navi60", "manufacturer": "Navi60", - "url": "", "maintainer": "DeskDaily", "usb": { "vid": "0x5001", diff --git a/keyboards/ncc1701kb/keyboard.json b/keyboards/ncc1701kb/keyboard.json index f30b85f47ad..753db62d7f8 100644 --- a/keyboards/ncc1701kb/keyboard.json +++ b/keyboards/ncc1701kb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "NCC-1701-KB", "manufacturer": "J2L Designs", - "url": "", "maintainer": "jessel92", "usb": { "vid": "0xFEED", diff --git a/keyboards/nek_type_a/keyboard.json b/keyboards/nek_type_a/keyboard.json index 39bad11a189..a99a6b03016 100644 --- a/keyboards/nek_type_a/keyboard.json +++ b/keyboards/nek_type_a/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "NEK Type A", "manufacturer": "miker", - "url": "", "maintainer": "ecopoesis", "usb": { "vid": "0xFEED", diff --git a/keyboards/nemui/keyboard.json b/keyboards/nemui/keyboard.json index fb2adb6ae46..5d607ee61e9 100644 --- a/keyboards/nemui/keyboard.json +++ b/keyboards/nemui/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Nemui", "manufacturer": "Bachoo", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x6400", diff --git a/keyboards/neokeys/g67/element_hs/keyboard.json b/keyboards/neokeys/g67/element_hs/keyboard.json index f477c33d6a8..489e2d90ede 100644 --- a/keyboards/neokeys/g67/element_hs/keyboard.json +++ b/keyboards/neokeys/g67/element_hs/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Element G67 Hotswap", "manufacturer": "NEO Keys", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4E4B", diff --git a/keyboards/neokeys/g67/hotswap/keyboard.json b/keyboards/neokeys/g67/hotswap/keyboard.json index 937e802fa03..ec28fdabb76 100644 --- a/keyboards/neokeys/g67/hotswap/keyboard.json +++ b/keyboards/neokeys/g67/hotswap/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Palette G67 Hotswap", "manufacturer": "NEO Keys", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4E4B", diff --git a/keyboards/neokeys/g67/soldered/keyboard.json b/keyboards/neokeys/g67/soldered/keyboard.json index 541f07ee09c..8944ff3d7b9 100644 --- a/keyboards/neokeys/g67/soldered/keyboard.json +++ b/keyboards/neokeys/g67/soldered/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Palette G67 Soldered", "manufacturer": "NEO Keys", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4E4B", diff --git a/keyboards/neson_design/700e/keyboard.json b/keyboards/neson_design/700e/keyboard.json index 64a18f436bc..4cd7de0d818 100644 --- a/keyboards/neson_design/700e/keyboard.json +++ b/keyboards/neson_design/700e/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "700E", "manufacturer": "Neson Design", - "url": "", "maintainer": "yulei", "usb": { "vid": "0x4E65", diff --git a/keyboards/neson_design/810e/keyboard.json b/keyboards/neson_design/810e/keyboard.json index 2c62eb1f88e..ab52c1539ef 100644 --- a/keyboards/neson_design/810e/keyboard.json +++ b/keyboards/neson_design/810e/keyboard.json @@ -19,7 +19,6 @@ "rows": ["C13", "C14", "A6", "A7", "A5"] }, "processor": "STM32F411", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x810E", diff --git a/keyboards/neson_design/n6/keyboard.json b/keyboards/neson_design/n6/keyboard.json index 66e6fb740c8..9f7d3fb1c02 100644 --- a/keyboards/neson_design/n6/keyboard.json +++ b/keyboards/neson_design/n6/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "N6", "manufacturer": "Neson Design", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4E65", diff --git a/keyboards/neson_design/nico/keyboard.json b/keyboards/neson_design/nico/keyboard.json index 477ac3ba7cb..6efa5ee7037 100644 --- a/keyboards/neson_design/nico/keyboard.json +++ b/keyboards/neson_design/nico/keyboard.json @@ -27,7 +27,6 @@ "rgblight": { "led_count": 5 }, - "url": "", "usb": { "device_version": "0.0.1", "no_startup_check": true, diff --git a/keyboards/newgame40/keyboard.json b/keyboards/newgame40/keyboard.json index 063260b99f6..63ae114f2ee 100644 --- a/keyboards/newgame40/keyboard.json +++ b/keyboards/newgame40/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "NEWGAME40", "manufacturer": "GoTakigawa", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/nibell/micropad4x4/keyboard.json b/keyboards/nibell/micropad4x4/keyboard.json index b992f501cf5..0305412f8c4 100644 --- a/keyboards/nibell/micropad4x4/keyboard.json +++ b/keyboards/nibell/micropad4x4/keyboard.json @@ -15,7 +15,6 @@ "rows": ["GP10", "GP11", "GP12", "GP13"] }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0xFEED", diff --git a/keyboards/nibiria/stream15/keyboard.json b/keyboards/nibiria/stream15/keyboard.json index 9daeef7cf9e..6edcb701833 100644 --- a/keyboards/nibiria/stream15/keyboard.json +++ b/keyboards/nibiria/stream15/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Stream15", "manufacturer": "Nibiria", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4E49", diff --git a/keyboards/nightly_boards/adellein/keyboard.json b/keyboards/nightly_boards/adellein/keyboard.json index 3f873ba5f5d..64b345f0733 100644 --- a/keyboards/nightly_boards/adellein/keyboard.json +++ b/keyboards/nightly_boards/adellein/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Adellein", "manufacturer": "Neil Brian Ramirez", - "url": "", "maintainer": "Neil Brian Ramirez", "usb": { "vid": "0xD812", diff --git a/keyboards/nightly_boards/alter/rev1/keyboard.json b/keyboards/nightly_boards/alter/rev1/keyboard.json index e02e7e5b1b3..3f4d3055f6d 100644 --- a/keyboards/nightly_boards/alter/rev1/keyboard.json +++ b/keyboards/nightly_boards/alter/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Alter", "manufacturer": "Neil Brian Ramirez", - "url": "", "maintainer": "Neil Brian Ramirez", "usb": { "vid": "0x0717", diff --git a/keyboards/nightly_boards/alter_lite/keyboard.json b/keyboards/nightly_boards/alter_lite/keyboard.json index d06dd3aacd3..8e51d6ae6b8 100644 --- a/keyboards/nightly_boards/alter_lite/keyboard.json +++ b/keyboards/nightly_boards/alter_lite/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Alter Lite", "manufacturer": "DeskDaily", - "url": "", "maintainer": "DeskDaily", "usb": { "vid": "0xD812", diff --git a/keyboards/nightly_boards/conde60/keyboard.json b/keyboards/nightly_boards/conde60/keyboard.json index 38e7b8383af..0c78a269b39 100644 --- a/keyboards/nightly_boards/conde60/keyboard.json +++ b/keyboards/nightly_boards/conde60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Conde60", "manufacturer": "DeskDaily", - "url": "", "maintainer": "DeskDaily", "usb": { "vid": "0xD812", diff --git a/keyboards/nightly_boards/n2/keyboard.json b/keyboards/nightly_boards/n2/keyboard.json index 4aa554716f3..db52cde6f9c 100644 --- a/keyboards/nightly_boards/n2/keyboard.json +++ b/keyboards/nightly_boards/n2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "[n]2", "manufacturer": "Neil Brian Ramirez", - "url": "", "maintainer": "Neil Brian Ramirez", "usb": { "vid": "0x0717", diff --git a/keyboards/nightly_boards/n40_o/keyboard.json b/keyboards/nightly_boards/n40_o/keyboard.json index f749c143eb9..c1b83816693 100644 --- a/keyboards/nightly_boards/n40_o/keyboard.json +++ b/keyboards/nightly_boards/n40_o/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "[n]40-o", "manufacturer": "Neil Brian Ramirez", - "url": "", "maintainer": "Neil Brian Ramirez", "features": { "bootmagic": true, diff --git a/keyboards/nightly_boards/n60_s/keyboard.json b/keyboards/nightly_boards/n60_s/keyboard.json index f6e235fec50..664ff84c186 100644 --- a/keyboards/nightly_boards/n60_s/keyboard.json +++ b/keyboards/nightly_boards/n60_s/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "[n]60-S", "manufacturer": "Neil Brian Ramirez", - "url": "", "maintainer": "Neil Brian Ramirez", "usb": { "vid": "0xD812", diff --git a/keyboards/nightly_boards/n87/keyboard.json b/keyboards/nightly_boards/n87/keyboard.json index ddfd27125ca..150022038c6 100644 --- a/keyboards/nightly_boards/n87/keyboard.json +++ b/keyboards/nightly_boards/n87/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "[n]87", "manufacturer": "Neil Brian Ramirez", - "url": "", "maintainer": "Neil Brian Ramirez", "usb": { "vid": "0x0717", diff --git a/keyboards/nightly_boards/n9/keyboard.json b/keyboards/nightly_boards/n9/keyboard.json index 83f94954454..23d09fbfb6f 100644 --- a/keyboards/nightly_boards/n9/keyboard.json +++ b/keyboards/nightly_boards/n9/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "[n]9", "manufacturer": "Neil Brian Ramirez", - "url": "", "maintainer": "Neil Brian Ramirez", "usb": { "vid": "0xD812", diff --git a/keyboards/nightly_boards/octopad/keyboard.json b/keyboards/nightly_boards/octopad/keyboard.json index 797f26a2c2e..9b0128e3d06 100644 --- a/keyboards/nightly_boards/octopad/keyboard.json +++ b/keyboards/nightly_boards/octopad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Octopad", "manufacturer": "Neil Brian Ramirez", - "url": "", "maintainer": "Neil Brian Ramirez", "usb": { "vid": "0xD812", diff --git a/keyboards/nightly_boards/octopadplus/keyboard.json b/keyboards/nightly_boards/octopadplus/keyboard.json index 8b94b722a82..5ba2d414b60 100644 --- a/keyboards/nightly_boards/octopadplus/keyboard.json +++ b/keyboards/nightly_boards/octopadplus/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Octopad+", "manufacturer": "DeskDaily", - "url": "", "maintainer": "DeskDaily", "usb": { "vid": "0xD812", diff --git a/keyboards/nightly_boards/paraluman/keyboard.json b/keyboards/nightly_boards/paraluman/keyboard.json index f18cefe6018..78fd1e68539 100644 --- a/keyboards/nightly_boards/paraluman/keyboard.json +++ b/keyboards/nightly_boards/paraluman/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Paraluman", "manufacturer": "DeskDaily", - "url": "", "maintainer": "DeskDaily", "usb": { "vid": "0xD812", diff --git a/keyboards/ning/tiny_board/tb16_rgb/keyboard.json b/keyboards/ning/tiny_board/tb16_rgb/keyboard.json index 57a2438c3d6..37565377728 100644 --- a/keyboards/ning/tiny_board/tb16_rgb/keyboard.json +++ b/keyboards/ning/tiny_board/tb16_rgb/keyboard.json @@ -29,7 +29,6 @@ "pin": "B5" }, "development_board": "promicro", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/nix_studio/n60_a/keyboard.json b/keyboards/nix_studio/n60_a/keyboard.json index 3f9b4dd0869..de5507c6929 100644 --- a/keyboards/nix_studio/n60_a/keyboard.json +++ b/keyboards/nix_studio/n60_a/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "N60A", "manufacturer": "Nix Studio", - "url": "", "maintainer": "Nix Studio", "usb": { "vid": "0x6E78", diff --git a/keyboards/nix_studio/oxalys80/keyboard.json b/keyboards/nix_studio/oxalys80/keyboard.json index 470c43ea2fa..8cd4598957c 100644 --- a/keyboards/nix_studio/oxalys80/keyboard.json +++ b/keyboards/nix_studio/oxalys80/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "OXALYS80", "manufacturer": "Nix Studio", - "url": "", "maintainer": "Nix Studio", "usb": { "vid": "0x6E78", diff --git a/keyboards/novelkeys/nk65/info.json b/keyboards/novelkeys/nk65/info.json index e3bff193466..ae02d3ac05b 100755 --- a/keyboards/novelkeys/nk65/info.json +++ b/keyboards/novelkeys/nk65/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "NK65", "manufacturer": "Yiancar-Designs", - "url": "", "maintainer": "yiancar", "usb": { "vid": "0x8968", diff --git a/keyboards/novelkeys/novelpad/keyboard.json b/keyboards/novelkeys/novelpad/keyboard.json index bb190dd2849..9cdaa81e5f2 100644 --- a/keyboards/novelkeys/novelpad/keyboard.json +++ b/keyboards/novelkeys/novelpad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "NovelPad", "manufacturer": "NovelKeys.xyz", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/noxary/220/keyboard.json b/keyboards/noxary/220/keyboard.json index 35653169998..60e68305d39 100644 --- a/keyboards/noxary/220/keyboard.json +++ b/keyboards/noxary/220/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "220", "manufacturer": "Noxary", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4E58", diff --git a/keyboards/noxary/260/keyboard.json b/keyboards/noxary/260/keyboard.json index d5353d4244e..e5af9b30955 100644 --- a/keyboards/noxary/260/keyboard.json +++ b/keyboards/noxary/260/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "260", "manufacturer": "Noxary", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4E58", diff --git a/keyboards/noxary/268_2/keyboard.json b/keyboards/noxary/268_2/keyboard.json index 08daee6d639..378d216f29a 100644 --- a/keyboards/noxary/268_2/keyboard.json +++ b/keyboards/noxary/268_2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "268.2", "manufacturer": "Noxary", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4E58", diff --git a/keyboards/noxary/268_2_rgb/keyboard.json b/keyboards/noxary/268_2_rgb/keyboard.json index 380a7727676..a36c5308630 100644 --- a/keyboards/noxary/268_2_rgb/keyboard.json +++ b/keyboards/noxary/268_2_rgb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "268.2 RGB", "manufacturer": "Noxary", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4E58", diff --git a/keyboards/noxary/280/keyboard.json b/keyboards/noxary/280/keyboard.json index 4bd9257152f..88bf9e21236 100644 --- a/keyboards/noxary/280/keyboard.json +++ b/keyboards/noxary/280/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "280", "manufacturer": "Noxary", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4E58", diff --git a/keyboards/noxary/378/keyboard.json b/keyboards/noxary/378/keyboard.json index 3502604d6cb..7c66448832f 100644 --- a/keyboards/noxary/378/keyboard.json +++ b/keyboards/noxary/378/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "378", "manufacturer": "Noxary", - "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x4E58", diff --git a/keyboards/noxary/valhalla/keyboard.json b/keyboards/noxary/valhalla/keyboard.json index 3bc3d80a340..817a46ed29a 100644 --- a/keyboards/noxary/valhalla/keyboard.json +++ b/keyboards/noxary/valhalla/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Valhalla", "manufacturer": "Noxary", - "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x4E58", diff --git a/keyboards/noxary/valhalla_v2/keyboard.json b/keyboards/noxary/valhalla_v2/keyboard.json index 671bd0b775a..88ae2b89976 100644 --- a/keyboards/noxary/valhalla_v2/keyboard.json +++ b/keyboards/noxary/valhalla_v2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Valhalla V2", "manufacturer": "Noxary", - "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x4E58", diff --git a/keyboards/noxary/x268/keyboard.json b/keyboards/noxary/x268/keyboard.json index 7ca5799de24..bc690815a63 100644 --- a/keyboards/noxary/x268/keyboard.json +++ b/keyboards/noxary/x268/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "x268", "manufacturer": "Noxary", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4E58", diff --git a/keyboards/numatreus/keyboard.json b/keyboards/numatreus/keyboard.json index 3120b48f55d..3441a769e17 100644 --- a/keyboards/numatreus/keyboard.json +++ b/keyboards/numatreus/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "NumAtreus", "manufacturer": "yohewi", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/obosob/arch_36/keyboard.json b/keyboards/obosob/arch_36/keyboard.json index 290446dd225..d24bab73347 100644 --- a/keyboards/obosob/arch_36/keyboard.json +++ b/keyboards/obosob/arch_36/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Arch-36", "manufacturer": "obosob", - "url": "", "maintainer": "obosob", "usb": { "vid": "0xFEED", diff --git a/keyboards/ocean/gin_v2/keyboard.json b/keyboards/ocean/gin_v2/keyboard.json index b6f22b813b3..9485af7df6d 100644 --- a/keyboards/ocean/gin_v2/keyboard.json +++ b/keyboards/ocean/gin_v2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Gin V2", "manufacturer": "Ocean", - "url": "", "maintainer": "Ocean", "usb": { "vid": "0x9624", diff --git a/keyboards/ocean/slamz/keyboard.json b/keyboards/ocean/slamz/keyboard.json index 67120777632..56344963f17 100644 --- a/keyboards/ocean/slamz/keyboard.json +++ b/keyboards/ocean/slamz/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Slamz", "manufacturer": "Ocean", - "url": "", "maintainer": "Ocean", "usb": { "vid": "0x9624", diff --git a/keyboards/ocean/stealth/keyboard.json b/keyboards/ocean/stealth/keyboard.json index b094a5f4bf3..f5ed562fab0 100644 --- a/keyboards/ocean/stealth/keyboard.json +++ b/keyboards/ocean/stealth/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Stealth", "manufacturer": "Ocean", - "url": "", "maintainer": "Ocean", "usb": { "vid": "0x9624", diff --git a/keyboards/ocean/wang_ergo/keyboard.json b/keyboards/ocean/wang_ergo/keyboard.json index 5debc4396dd..758544e5221 100644 --- a/keyboards/ocean/wang_ergo/keyboard.json +++ b/keyboards/ocean/wang_ergo/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Wang Ergo", "manufacturer": "Ocean", - "url": "", "maintainer": "oceeean", "usb": { "vid": "0x9624", diff --git a/keyboards/ocean/wang_v2/keyboard.json b/keyboards/ocean/wang_v2/keyboard.json index 6e80932ce2e..1507d8634b5 100644 --- a/keyboards/ocean/wang_v2/keyboard.json +++ b/keyboards/ocean/wang_v2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Wang V2", "manufacturer": "Ocean", - "url": "", "maintainer": "Ocean", "usb": { "vid": "0x9624", diff --git a/keyboards/odelia/keyboard.json b/keyboards/odelia/keyboard.json index 3c187b5c18d..671d750e4e3 100644 --- a/keyboards/odelia/keyboard.json +++ b/keyboards/odelia/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Odelia", "manufacturer": "InterpolKeeb", - "url": "", "maintainer": "kb-elmo", "usb": { "vid": "0x6BE3", diff --git a/keyboards/ogre/ergo_single/keyboard.json b/keyboards/ogre/ergo_single/keyboard.json index 3ebd88b0d28..9fbc54db428 100644 --- a/keyboards/ogre/ergo_single/keyboard.json +++ b/keyboards/ogre/ergo_single/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Ogre Ergo Single", "manufacturer": "ctrlshiftba", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/ogre/ergo_split/keyboard.json b/keyboards/ogre/ergo_split/keyboard.json index 4dc3caa5300..5c5d750add8 100644 --- a/keyboards/ogre/ergo_split/keyboard.json +++ b/keyboards/ogre/ergo_split/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Ogre Ergo Split", "manufacturer": "ctrlshiftba", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/ok60/keyboard.json b/keyboards/ok60/keyboard.json index 5cf55b666d6..98d19c77b74 100644 --- a/keyboards/ok60/keyboard.json +++ b/keyboards/ok60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "OK60", "manufacturer": "OK60", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4B36", diff --git a/keyboards/omkbd/ergodash/mini/keyboard.json b/keyboards/omkbd/ergodash/mini/keyboard.json index 7c15c4f6f76..ea12ea5a9ed 100644 --- a/keyboards/omkbd/ergodash/mini/keyboard.json +++ b/keyboards/omkbd/ergodash/mini/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "ErgoDash Mini", "manufacturer": "Omkbd", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/omkbd/ergodash/rev1/keyboard.json b/keyboards/omkbd/ergodash/rev1/keyboard.json index 6a61950ba6e..a25610be9c3 100644 --- a/keyboards/omkbd/ergodash/rev1/keyboard.json +++ b/keyboards/omkbd/ergodash/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "ErgoDash rev1.2", "manufacturer": "Omkbd", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/omkbd/runner3680/3x6/keyboard.json b/keyboards/omkbd/runner3680/3x6/keyboard.json index 44c5ce35a03..4b8c71a1561 100644 --- a/keyboards/omkbd/runner3680/3x6/keyboard.json +++ b/keyboards/omkbd/runner3680/3x6/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "runner3680 3x6", "manufacturer": "Omkbd", - "url": "", "maintainer": "omkbd", "usb": { "vid": "0xFEED", diff --git a/keyboards/omkbd/runner3680/3x7/keyboard.json b/keyboards/omkbd/runner3680/3x7/keyboard.json index 8a4c55ca713..974147f732b 100644 --- a/keyboards/omkbd/runner3680/3x7/keyboard.json +++ b/keyboards/omkbd/runner3680/3x7/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "runner3680 3x7", "manufacturer": "Omkbd", - "url": "", "maintainer": "omkbd", "usb": { "vid": "0xFEED", diff --git a/keyboards/omkbd/runner3680/3x8/keyboard.json b/keyboards/omkbd/runner3680/3x8/keyboard.json index 11fe738a8a3..04fadf854b8 100644 --- a/keyboards/omkbd/runner3680/3x8/keyboard.json +++ b/keyboards/omkbd/runner3680/3x8/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "runner3680 3x8", "manufacturer": "Omkbd", - "url": "", "maintainer": "omkbd", "usb": { "vid": "0xFEED", diff --git a/keyboards/omkbd/runner3680/4x6/keyboard.json b/keyboards/omkbd/runner3680/4x6/keyboard.json index 2449f3431e3..7f8ecd0239f 100644 --- a/keyboards/omkbd/runner3680/4x6/keyboard.json +++ b/keyboards/omkbd/runner3680/4x6/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "runner3680 4x6", "manufacturer": "Omkbd", - "url": "", "maintainer": "omkbd", "usb": { "vid": "0xFEED", diff --git a/keyboards/omkbd/runner3680/4x7/keyboard.json b/keyboards/omkbd/runner3680/4x7/keyboard.json index 01acfad1e73..5bee7061922 100644 --- a/keyboards/omkbd/runner3680/4x7/keyboard.json +++ b/keyboards/omkbd/runner3680/4x7/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "runner3680 4x7", "manufacturer": "Omkbd", - "url": "", "maintainer": "omkbd", "usb": { "vid": "0xFEED", diff --git a/keyboards/omkbd/runner3680/4x8/keyboard.json b/keyboards/omkbd/runner3680/4x8/keyboard.json index 748fc055081..e9142eec3dd 100644 --- a/keyboards/omkbd/runner3680/4x8/keyboard.json +++ b/keyboards/omkbd/runner3680/4x8/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "runner3680 4x8", "manufacturer": "Omkbd", - "url": "", "maintainer": "omkbd", "usb": { "vid": "0xFEED", diff --git a/keyboards/omkbd/runner3680/5x6/keyboard.json b/keyboards/omkbd/runner3680/5x6/keyboard.json index 9b043c7e199..5d2d22d7fa9 100644 --- a/keyboards/omkbd/runner3680/5x6/keyboard.json +++ b/keyboards/omkbd/runner3680/5x6/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "runner3680 5x6", "manufacturer": "Omkbd", - "url": "", "maintainer": "omkbd", "usb": { "vid": "0xFEED", diff --git a/keyboards/omkbd/runner3680/5x6_5x8/keyboard.json b/keyboards/omkbd/runner3680/5x6_5x8/keyboard.json index b8a361f1b26..2d912a14453 100644 --- a/keyboards/omkbd/runner3680/5x6_5x8/keyboard.json +++ b/keyboards/omkbd/runner3680/5x6_5x8/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "runner3680 5x6+5x8", "manufacturer": "Omkbd", - "url": "", "maintainer": "omkbd", "usb": { "vid": "0x3680", diff --git a/keyboards/omkbd/runner3680/5x7/keyboard.json b/keyboards/omkbd/runner3680/5x7/keyboard.json index 41df7977703..41de1f80f55 100644 --- a/keyboards/omkbd/runner3680/5x7/keyboard.json +++ b/keyboards/omkbd/runner3680/5x7/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "runner3680 5x7", "manufacturer": "Omkbd", - "url": "", "maintainer": "omkbd", "usb": { "vid": "0xFEED", diff --git a/keyboards/omkbd/runner3680/5x8/keyboard.json b/keyboards/omkbd/runner3680/5x8/keyboard.json index 04294371d74..11857942b87 100644 --- a/keyboards/omkbd/runner3680/5x8/keyboard.json +++ b/keyboards/omkbd/runner3680/5x8/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "runner3680 5x8", "manufacturer": "Omkbd", - "url": "", "maintainer": "omkbd", "usb": { "vid": "0xFEED", diff --git a/keyboards/orange75/keyboard.json b/keyboards/orange75/keyboard.json index a0ef8196513..e7941d242fd 100644 --- a/keyboards/orange75/keyboard.json +++ b/keyboards/orange75/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Orange75", "manufacturer": "Fox-Lab", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEEB", diff --git a/keyboards/org60/keyboard.json b/keyboards/org60/keyboard.json index 2586d16b083..d5c52607009 100644 --- a/keyboards/org60/keyboard.json +++ b/keyboards/org60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Org60", "manufacturer": "\u5927\u6a58\u5b50\u5916\u8bbe (Large orange peripherals)", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/owlab/jelly_evolv/info.json b/keyboards/owlab/jelly_evolv/info.json index 999bcca477d..cd67a95a8d5 100644 --- a/keyboards/owlab/jelly_evolv/info.json +++ b/keyboards/owlab/jelly_evolv/info.json @@ -1,6 +1,5 @@ { "manufacturer": "OwLab", - "url": "", "maintainer": "Owlab", "usb": { "vid": "0x4F53" diff --git a/keyboards/owlab/spring/keyboard.json b/keyboards/owlab/spring/keyboard.json index 7dcb6ec717b..7e2ce90bd43 100644 --- a/keyboards/owlab/spring/keyboard.json +++ b/keyboards/owlab/spring/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Spring", "manufacturer": "OwLab", - "url": "", "maintainer": "OwLab", "usb": { "vid": "0x4F53", diff --git a/keyboards/owlab/suit80/ansi/keyboard.json b/keyboards/owlab/suit80/ansi/keyboard.json index 22bf9f78cd2..c76c9d16dd9 100644 --- a/keyboards/owlab/suit80/ansi/keyboard.json +++ b/keyboards/owlab/suit80/ansi/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Suit80 ANSI", "manufacturer": "OwLab", - "url": "", "maintainer": "Owlab", "usb": { "vid": "0x4F53", diff --git a/keyboards/owlab/suit80/iso/keyboard.json b/keyboards/owlab/suit80/iso/keyboard.json index 87e95e9beed..5bdd1cbacc9 100644 --- a/keyboards/owlab/suit80/iso/keyboard.json +++ b/keyboards/owlab/suit80/iso/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Suit80 ISO", "manufacturer": "OwLab", - "url": "", "maintainer": "Owlab", "usb": { "vid": "0x4F53", diff --git a/keyboards/p3d/eu_isolation/keyboard.json b/keyboards/p3d/eu_isolation/keyboard.json index 715515c42d3..c8f305a1319 100644 --- a/keyboards/p3d/eu_isolation/keyboard.json +++ b/keyboards/p3d/eu_isolation/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "EU ISOlation", "manufacturer": "TuckTuckFloof", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/p3d/q4z/keyboard.json b/keyboards/p3d/q4z/keyboard.json index 9dfa123c6c1..0ba3ff129b5 100644 --- a/keyboards/p3d/q4z/keyboard.json +++ b/keyboards/p3d/q4z/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "q4z", "manufacturer": "drmmr", - "url": "", "maintainer": "rjboone", "usb": { "vid": "0x0001", diff --git a/keyboards/p3d/spacey/keyboard.json b/keyboards/p3d/spacey/keyboard.json index ed23c327ade..07e1ebf818f 100644 --- a/keyboards/p3d/spacey/keyboard.json +++ b/keyboards/p3d/spacey/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "spacey", "manufacturer": "vanilla", - "url": "", "maintainer": "vanilla", "usb": { "vid": "0x5641", diff --git a/keyboards/p3d/synapse/keyboard.json b/keyboards/p3d/synapse/keyboard.json index accd9ad47ed..a73b3d4315a 100644 --- a/keyboards/p3d/synapse/keyboard.json +++ b/keyboards/p3d/synapse/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "synapse", "manufacturer": "drmmr", - "url": "", "maintainer": "qpockets", "usb": { "vid": "0x7170", diff --git a/keyboards/pabile/p20/info.json b/keyboards/pabile/p20/info.json index 25841306371..0bac40f010d 100644 --- a/keyboards/pabile/p20/info.json +++ b/keyboards/pabile/p20/info.json @@ -1,6 +1,5 @@ { "manufacturer": "Pabile", - "url": "", "maintainer": "pabile", "usb": { "vid": "0x6666", diff --git a/keyboards/panc40/keyboard.json b/keyboards/panc40/keyboard.json index fe98da7f2e8..9aef199fb36 100644 --- a/keyboards/panc40/keyboard.json +++ b/keyboards/panc40/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Panc40", "manufacturer": "Panc Interactive", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/panc60/keyboard.json b/keyboards/panc60/keyboard.json index e0f3a491c89..a1e61b7999d 100644 --- a/keyboards/panc60/keyboard.json +++ b/keyboards/panc60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Panc60", "manufacturer": "Panc Interactive", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x20A0", diff --git a/keyboards/papercranekeyboards/gerald65/keyboard.json b/keyboards/papercranekeyboards/gerald65/keyboard.json index 255727d508c..55d42eb93c1 100644 --- a/keyboards/papercranekeyboards/gerald65/keyboard.json +++ b/keyboards/papercranekeyboards/gerald65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "gerald65", "manufacturer": "PaperCraneKeyboards", - "url": "", "maintainer": "PaperCraneKeyboards", "usb": { "vid": "0x5012", diff --git a/keyboards/pdxkbc/keyboard.json b/keyboards/pdxkbc/keyboard.json index 642adc08787..7921c671903 100644 --- a/keyboards/pdxkbc/keyboard.json +++ b/keyboards/pdxkbc/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "pdxkbc", "manufacturer": "Franklin Harding", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x5044", diff --git a/keyboards/pearlboards/atlas/keyboard.json b/keyboards/pearlboards/atlas/keyboard.json index 6886885e03b..ea9f86ec512 100644 --- a/keyboards/pearlboards/atlas/keyboard.json +++ b/keyboards/pearlboards/atlas/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Atlas", "manufacturer": "Koobaczech", - "url": "", "maintainer": "Koobaczech", "usb": { "vid": "0x6963", diff --git a/keyboards/pearlboards/pandora/keyboard.json b/keyboards/pearlboards/pandora/keyboard.json index 670aa6f75ab..59dc1ed9557 100644 --- a/keyboards/pearlboards/pandora/keyboard.json +++ b/keyboards/pearlboards/pandora/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Pandora", "manufacturer": "Koobaczech", - "url": "", "maintainer": "Koobaczech", "usb": { "vid": "0x6963", diff --git a/keyboards/pearlboards/pearl/keyboard.json b/keyboards/pearlboards/pearl/keyboard.json index e91192475f5..3f35aec0067 100644 --- a/keyboards/pearlboards/pearl/keyboard.json +++ b/keyboards/pearlboards/pearl/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Pearl", "manufacturer": "Koobaczech", - "url": "", "maintainer": "Koobaczech", "usb": { "vid": "0x6963", diff --git a/keyboards/pearlboards/zeus/keyboard.json b/keyboards/pearlboards/zeus/keyboard.json index 9a3e7ead5fa..72751a5fec1 100644 --- a/keyboards/pearlboards/zeus/keyboard.json +++ b/keyboards/pearlboards/zeus/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Zeus", "manufacturer": "Koobaczech", - "url": "", "maintainer": "Koobaczech", "usb": { "vid": "0x6963", diff --git a/keyboards/pearlboards/zeuspad/keyboard.json b/keyboards/pearlboards/zeuspad/keyboard.json index 93e1e644332..0e1c6267822 100644 --- a/keyboards/pearlboards/zeuspad/keyboard.json +++ b/keyboards/pearlboards/zeuspad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Zeuspad", "manufacturer": "Koobaczech", - "url": "", "maintainer": "Koobaczech", "usb": { "vid": "0x6963", diff --git a/keyboards/pegasus/keyboard.json b/keyboards/pegasus/keyboard.json index 4de1631379e..9c12de8ea05 100644 --- a/keyboards/pegasus/keyboard.json +++ b/keyboards/pegasus/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Pegasus", "manufacturer": "melonbred", - "url": "", "maintainer": "melonbred", "usb": { "vid": "0xFEED", diff --git a/keyboards/percent/booster/keyboard.json b/keyboards/percent/booster/keyboard.json index edd9afd18d2..82701646ff1 100644 --- a/keyboards/percent/booster/keyboard.json +++ b/keyboards/percent/booster/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Booster", "manufacturer": "Percent Studio", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x5053", diff --git a/keyboards/percent/canoe/keyboard.json b/keyboards/percent/canoe/keyboard.json index 656f73f904b..d88225c656e 100644 --- a/keyboards/percent/canoe/keyboard.json +++ b/keyboards/percent/canoe/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "CANOE", "manufacturer": "Percent Studios", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x5053", diff --git a/keyboards/percent/canoe_gen2/keyboard.json b/keyboards/percent/canoe_gen2/keyboard.json index 85fbfd28b9d..b6a8a47a5fc 100644 --- a/keyboards/percent/canoe_gen2/keyboard.json +++ b/keyboards/percent/canoe_gen2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Canoe Gen2", "manufacturer": "Percent Studio", - "url": "", "maintainer": "evyd13", "usb": { "vid": "0x9C12", diff --git a/keyboards/percent/skog/keyboard.json b/keyboards/percent/skog/keyboard.json index 823c1638acd..56751e56b70 100644 --- a/keyboards/percent/skog/keyboard.json +++ b/keyboards/percent/skog/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Skog TKL", "manufacturer": "Percent Studios", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x5053", diff --git a/keyboards/percent/skog_lite/keyboard.json b/keyboards/percent/skog_lite/keyboard.json index e52d910845a..798ed34a5db 100644 --- a/keyboards/percent/skog_lite/keyboard.json +++ b/keyboards/percent/skog_lite/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Skog Lite", "manufacturer": "Percent Studios", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x5053", diff --git a/keyboards/phase_studio/titan65/hotswap/keyboard.json b/keyboards/phase_studio/titan65/hotswap/keyboard.json index 956f5087018..c9d1b0f726f 100644 --- a/keyboards/phase_studio/titan65/hotswap/keyboard.json +++ b/keyboards/phase_studio/titan65/hotswap/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Titan 65 (hotswap)", "manufacturer": "Phase Studio", - "url": "", "maintainer": "drashna", "usb": { "vid": "0x5054", diff --git a/keyboards/phase_studio/titan65/soldered/keyboard.json b/keyboards/phase_studio/titan65/soldered/keyboard.json index c60c689932d..8bb0f6f19ce 100644 --- a/keyboards/phase_studio/titan65/soldered/keyboard.json +++ b/keyboards/phase_studio/titan65/soldered/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Titan 65 (soldered)", "manufacturer": "Phase Studio", - "url": "", "maintainer": "drashna", "usb": { "vid": "0x5054", diff --git a/keyboards/phdesign/phac/keyboard.json b/keyboards/phdesign/phac/keyboard.json index 660cf6c2ad4..5e5db876c00 100644 --- a/keyboards/phdesign/phac/keyboard.json +++ b/keyboards/phdesign/phac/keyboard.json @@ -24,7 +24,6 @@ ] }, "processor": "RP2040", - "url": "", "usb": { "device_version": "2.2.0", "pid": "0x0001", diff --git a/keyboards/phentech/rpk_001/keyboard.json b/keyboards/phentech/rpk_001/keyboard.json index 0ce29938972..ce822295b2c 100644 --- a/keyboards/phentech/rpk_001/keyboard.json +++ b/keyboards/phentech/rpk_001/keyboard.json @@ -2,7 +2,6 @@ "manufacturer": "HENGCANG ELECTRONIC", "keyboard_name": "RPK-001", "maintainer": "JoyLee", - "url": "", "processor": "WB32FQ95", "bootloader": "wb32-dfu", "usb": { diff --git a/keyboards/pimentoso/paddino02/rev1/keyboard.json b/keyboards/pimentoso/paddino02/rev1/keyboard.json index 74f11ab7ad9..20c144c795d 100644 --- a/keyboards/pimentoso/paddino02/rev1/keyboard.json +++ b/keyboards/pimentoso/paddino02/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Paddino02 rev1", "manufacturer": "Pimentoso", - "url": "", "maintainer": "Pimentoso", "usb": { "vid": "0xD00D", diff --git a/keyboards/pimentoso/paddino02/rev2/left/keyboard.json b/keyboards/pimentoso/paddino02/rev2/left/keyboard.json index 8ba456e29e1..00447c549ba 100644 --- a/keyboards/pimentoso/paddino02/rev2/left/keyboard.json +++ b/keyboards/pimentoso/paddino02/rev2/left/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Paddino02 rev2 (left)", "manufacturer": "Pimentoso", - "url": "", "maintainer": "Pimentoso", "usb": { "vid": "0xD00D", diff --git a/keyboards/pimentoso/paddino02/rev2/right/keyboard.json b/keyboards/pimentoso/paddino02/rev2/right/keyboard.json index 4da270119b3..4c12bc23fae 100644 --- a/keyboards/pimentoso/paddino02/rev2/right/keyboard.json +++ b/keyboards/pimentoso/paddino02/rev2/right/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Paddino02 rev2 (right)", "manufacturer": "Pimentoso", - "url": "", "maintainer": "Pimentoso", "usb": { "vid": "0xD00D", diff --git a/keyboards/pinky/3/keyboard.json b/keyboards/pinky/3/keyboard.json index 32e1f893e57..f02b6c72d09 100644 --- a/keyboards/pinky/3/keyboard.json +++ b/keyboards/pinky/3/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Pinky3", "manufacturer": "tamanishi", - "url": "", "maintainer": "tamanishi", "usb": { "vid": "0x544E", diff --git a/keyboards/pinky/4/keyboard.json b/keyboards/pinky/4/keyboard.json index 20f86e3f38c..68b1dcb14cc 100644 --- a/keyboards/pinky/4/keyboard.json +++ b/keyboards/pinky/4/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Pinky4", "manufacturer": "tamanishi", - "url": "", "maintainer": "tamanishi", "usb": { "vid": "0x544E", diff --git a/keyboards/pixelspace/capsule65i/keyboard.json b/keyboards/pixelspace/capsule65i/keyboard.json index f8c9dc9c1d1..f23f36018ad 100644 --- a/keyboards/pixelspace/capsule65i/keyboard.json +++ b/keyboards/pixelspace/capsule65i/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Capsule65i", "manufacturer": "PixelSpace", - "url": "", "maintainer": "PixelSpace", "usb": { "vid": "0xE061", diff --git a/keyboards/pixelspace/shadow80/keyboard.json b/keyboards/pixelspace/shadow80/keyboard.json index c7c4901745f..7644c9d6ac3 100644 --- a/keyboards/pixelspace/shadow80/keyboard.json +++ b/keyboards/pixelspace/shadow80/keyboard.json @@ -3,7 +3,6 @@ "processor": "STM32F103", "bootloader": "stm32duino", "manufacturer": "Here VoLand", - "url": "", "maintainer": "Here VoLand @Vem", "usb": { "vid": "0x0011", diff --git a/keyboards/pkb65/keyboard.json b/keyboards/pkb65/keyboard.json index d645d278b7e..394401328e4 100644 --- a/keyboards/pkb65/keyboard.json +++ b/keyboards/pkb65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "PKB65", "manufacturer": "MCKeebs", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4D43", diff --git a/keyboards/playkbtw/ca66/keyboard.json b/keyboards/playkbtw/ca66/keyboard.json index d94a8d6b4d7..e28876fb9a7 100644 --- a/keyboards/playkbtw/ca66/keyboard.json +++ b/keyboards/playkbtw/ca66/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "CA66", "manufacturer": "Barry", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x5457", diff --git a/keyboards/playkbtw/helen80/keyboard.json b/keyboards/playkbtw/helen80/keyboard.json index 47f7e48ef69..be01d21da25 100644 --- a/keyboards/playkbtw/helen80/keyboard.json +++ b/keyboards/playkbtw/helen80/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Helen 80", "manufacturer": "Play Keyboard", - "url": "", "maintainer": "yj7272098", "usb": { "vid": "0x706B", diff --git a/keyboards/playkbtw/pk60/keyboard.json b/keyboards/playkbtw/pk60/keyboard.json index 15de711ad1c..de4f7a23f32 100644 --- a/keyboards/playkbtw/pk60/keyboard.json +++ b/keyboards/playkbtw/pk60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "pk60", "manufacturer": "Play Keyboard", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/playkbtw/pk64rgb/keyboard.json b/keyboards/playkbtw/pk64rgb/keyboard.json index 81ac5be5963..49ef2f57b2d 100644 --- a/keyboards/playkbtw/pk64rgb/keyboard.json +++ b/keyboards/playkbtw/pk64rgb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "PK64RGB", "manufacturer": "Play Keyboard", - "url": "", "maintainer": "yj7272098", "usb": { "vid": "0x706B", diff --git a/keyboards/plume/plume65/keyboard.json b/keyboards/plume/plume65/keyboard.json index 46f264e43e7..9828a766f62 100644 --- a/keyboards/plume/plume65/keyboard.json +++ b/keyboards/plume/plume65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Plume65", "manufacturer": "Plume Keyboards LLC", - "url": "", "maintainer": "evyd13", "usb": { "vid": "0x5D66", diff --git a/keyboards/plut0nium/0x3e/keyboard.json b/keyboards/plut0nium/0x3e/keyboard.json index eb0a4fbe553..fe9c43ce4b3 100644 --- a/keyboards/plut0nium/0x3e/keyboard.json +++ b/keyboards/plut0nium/0x3e/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "0x3E", "manufacturer": "plut0nium", - "url": "", "maintainer": "plut0nium", "usb": { "vid": "0xFEED", diff --git a/keyboards/plywrks/ahgase/keyboard.json b/keyboards/plywrks/ahgase/keyboard.json index 9c1da6d5793..05ed4e6ff28 100644 --- a/keyboards/plywrks/ahgase/keyboard.json +++ b/keyboards/plywrks/ahgase/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Ahgase", "manufacturer": "plywrks", - "url": "", "maintainer": "Ramon Imbao (ramonimbao)", "usb": { "vid": "0x706C", diff --git a/keyboards/plywrks/allaro/keyboard.json b/keyboards/plywrks/allaro/keyboard.json index a9a0a175b60..ca94fc83183 100644 --- a/keyboards/plywrks/allaro/keyboard.json +++ b/keyboards/plywrks/allaro/keyboard.json @@ -17,7 +17,6 @@ "cols": ["F0", "F7", "F6", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4", "D5", "D3", "D2", "D1"], "rows": ["F1", "B7", "B0", "D0", "F5"] }, - "url": "", "usb": { "vid": "0x706C", "pid": "0x7903", diff --git a/keyboards/plywrks/ji_eun/keyboard.json b/keyboards/plywrks/ji_eun/keyboard.json index b470e29ebdf..59355277f77 100644 --- a/keyboards/plywrks/ji_eun/keyboard.json +++ b/keyboards/plywrks/ji_eun/keyboard.json @@ -17,7 +17,6 @@ "rows": ["D7", "B4", "B0", "D4", "D3"] }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "1.0.0", "vid": "0x706C", diff --git a/keyboards/plywrks/lune/keyboard.json b/keyboards/plywrks/lune/keyboard.json index 5ec1d97c6bb..fa05b5110b5 100644 --- a/keyboards/plywrks/lune/keyboard.json +++ b/keyboards/plywrks/lune/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Lune", "manufacturer": "plywrks", - "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0x706C", diff --git a/keyboards/plywrks/ply8x/hotswap/keyboard.json b/keyboards/plywrks/ply8x/hotswap/keyboard.json index 2dc2ac5c351..c4d3e9424e9 100644 --- a/keyboards/plywrks/ply8x/hotswap/keyboard.json +++ b/keyboards/plywrks/ply8x/hotswap/keyboard.json @@ -16,7 +16,6 @@ "cols": ["A9", "A8", "B12", "B11", "B10", "A6", "A5", "A4", "A15", "C14", "C13", "B9", "B6", "B7", "B5", "B4", "B3"] }, "processor": "STM32F072", - "url": "", "usb": { "device_version": "1.0.0", "vid": "0x706C", diff --git a/keyboards/plywrks/ply8x/solder/keyboard.json b/keyboards/plywrks/ply8x/solder/keyboard.json index 8bae31a1f17..435319dec8b 100644 --- a/keyboards/plywrks/ply8x/solder/keyboard.json +++ b/keyboards/plywrks/ply8x/solder/keyboard.json @@ -18,7 +18,6 @@ "cols": ["A9", "A8", "B12", "B11", "B10", "A6", "A5", "A4", "A15", "C13", "C14", "B9", "B7", "B6", "B5", "B4", "B3"] }, "processor": "STM32F072", - "url": "", "usb": { "device_version": "1.0.0", "vid": "0x706C", diff --git a/keyboards/poker87c/keyboard.json b/keyboards/poker87c/keyboard.json index ab626c8be91..08355d8a2b0 100644 --- a/keyboards/poker87c/keyboard.json +++ b/keyboards/poker87c/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "POKER-87C Hotswap", "manufacturer": "mfkiiyd", - "url": "", "maintainer": "mfkiiyd", "usb": { "vid": "0x6D66", diff --git a/keyboards/poker87d/keyboard.json b/keyboards/poker87d/keyboard.json index 61710aac2c3..7e6f08d82cf 100644 --- a/keyboards/poker87d/keyboard.json +++ b/keyboards/poker87d/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "POKER-87D Hotswap", "manufacturer": "mfkiiyd", - "url": "", "maintainer": "mfkiiyd", "usb": { "vid": "0x6D66", diff --git a/keyboards/polilla/rev1/keyboard.json b/keyboards/polilla/rev1/keyboard.json index 746f47963e2..27132202d2c 100644 --- a/keyboards/polilla/rev1/keyboard.json +++ b/keyboards/polilla/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Polilla", "manufacturer": "elagil", - "url": "", "maintainer": "elagil", "usb": { "vid": "0x6166", diff --git a/keyboards/polycarbdiet/s20/keyboard.json b/keyboards/polycarbdiet/s20/keyboard.json index f87429b4a7a..07cc8acc48c 100644 --- a/keyboards/polycarbdiet/s20/keyboard.json +++ b/keyboards/polycarbdiet/s20/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "S20 revA", "manufacturer": "polycarbdiet", - "url": "", "maintainer": "polycarbdiet", "usb": { "vid": "0x5040", diff --git a/keyboards/primekb/prime_r/keyboard.json b/keyboards/primekb/prime_r/keyboard.json index b2a7ecec7a8..d92903b8977 100644 --- a/keyboards/primekb/prime_r/keyboard.json +++ b/keyboards/primekb/prime_r/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Prime_R", "manufacturer": "PrimeKB", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/printedpad/keyboard.json b/keyboards/printedpad/keyboard.json index 90a42c73137..d9fc996f33e 100644 --- a/keyboards/printedpad/keyboard.json +++ b/keyboards/printedpad/keyboard.json @@ -18,7 +18,6 @@ "rows": ["A10", "C9", "A8", "A9"] }, "processor": "STM32F072", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/program_yoink/ortho/keyboard.json b/keyboards/program_yoink/ortho/keyboard.json index e9d5fd3e800..2d50640a415 100644 --- a/keyboards/program_yoink/ortho/keyboard.json +++ b/keyboards/program_yoink/ortho/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Program Yoink! Ortho", "manufacturer": "melonbred", - "url": "", "maintainer": "melonbred", "usb": { "vid": "0x7079", diff --git a/keyboards/program_yoink/staggered/keyboard.json b/keyboards/program_yoink/staggered/keyboard.json index c20e2c9fc7f..82f41d8e27c 100644 --- a/keyboards/program_yoink/staggered/keyboard.json +++ b/keyboards/program_yoink/staggered/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Program Yoink! Staggered", "manufacturer": "melonbred", - "url": "", "maintainer": "melonbred", "usb": { "vid": "0x7079", diff --git a/keyboards/projectcain/relic/keyboard.json b/keyboards/projectcain/relic/keyboard.json index f9df6770d1f..428240f923f 100644 --- a/keyboards/projectcain/relic/keyboard.json +++ b/keyboards/projectcain/relic/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Relic", "manufacturer": "projectcain", - "url": "", "maintainer": "projectcain", "usb": { "vid": "0xFEED", diff --git a/keyboards/projectcain/vault45/keyboard.json b/keyboards/projectcain/vault45/keyboard.json index 2ab3e010e71..66199a620d2 100644 --- a/keyboards/projectcain/vault45/keyboard.json +++ b/keyboards/projectcain/vault45/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Vault45", "manufacturer": "projectcain", - "url": "", "maintainer": "projectcain", "usb": { "vid": "0xFEED", diff --git a/keyboards/projectd/65/projectd_65_ansi/keyboard.json b/keyboards/projectd/65/projectd_65_ansi/keyboard.json index 32a95f965eb..1e1f5cce2a5 100644 --- a/keyboards/projectd/65/projectd_65_ansi/keyboard.json +++ b/keyboards/projectd/65/projectd_65_ansi/keyboard.json @@ -161,7 +161,6 @@ ], "sleep": true }, - "url": "", "usb": { "device_version": "0.0.4", "pid": "0x5319", diff --git a/keyboards/projectd/75/ansi/keyboard.json b/keyboards/projectd/75/ansi/keyboard.json index d94db22bfc0..3040981378e 100644 --- a/keyboards/projectd/75/ansi/keyboard.json +++ b/keyboards/projectd/75/ansi/keyboard.json @@ -182,7 +182,6 @@ ], "sleep": true }, - "url": "", "usb": { "device_version": "0.0.2", "pid": "0x000F", diff --git a/keyboards/projectd/75/iso/keyboard.json b/keyboards/projectd/75/iso/keyboard.json index d42e8c4b339..a4d5e909c14 100644 --- a/keyboards/projectd/75/iso/keyboard.json +++ b/keyboards/projectd/75/iso/keyboard.json @@ -176,7 +176,6 @@ { "flags": 4, "matrix": [0, 5], "x": 152, "y": 52 } ] }, - "url": "", "usb": { "device_version": "0.0.2", "pid": "0x0011", diff --git a/keyboards/projectkb/signature87/keyboard.json b/keyboards/projectkb/signature87/keyboard.json index 2b18bf45721..adb3fd5fd7d 100644 --- a/keyboards/projectkb/signature87/keyboard.json +++ b/keyboards/projectkb/signature87/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Signature87", "manufacturer": "Project Keyboard", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x0159", diff --git a/keyboards/prototypist/oceanographer/keyboard.json b/keyboards/prototypist/oceanographer/keyboard.json index 13bc41355c4..f76980499e5 100644 --- a/keyboards/prototypist/oceanographer/keyboard.json +++ b/keyboards/prototypist/oceanographer/keyboard.json @@ -47,7 +47,6 @@ "rows": ["B0", "D5", "D3", "D2"] }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0002", diff --git a/keyboards/prototypist/pt60/keyboard.json b/keyboards/prototypist/pt60/keyboard.json index 8018350e6f5..2ae193c9242 100644 --- a/keyboards/prototypist/pt60/keyboard.json +++ b/keyboards/prototypist/pt60/keyboard.json @@ -17,7 +17,6 @@ "rows": ["B0", "B1", "B2", "B10", "B11"] }, "processor": "STM32F303", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/prototypist/pt80/keyboard.json b/keyboards/prototypist/pt80/keyboard.json index cb58643e3f5..af7d6093cb3 100644 --- a/keyboards/prototypist/pt80/keyboard.json +++ b/keyboards/prototypist/pt80/keyboard.json @@ -17,7 +17,6 @@ "rows": ["B14", "A8", "A9", "B13", "B11", "B12"] }, "processor": "STM32F303", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/pteron36/keyboard.json b/keyboards/pteron36/keyboard.json index 2000593e628..25c4dc8c547 100644 --- a/keyboards/pteron36/keyboard.json +++ b/keyboards/pteron36/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Pteron36", "manufacturer": "Harshit Goel", - "url": "", "maintainer": "harshitgoel96", "usb": { "vid": "0x4847", diff --git a/keyboards/pteropus/keyboard.json b/keyboards/pteropus/keyboard.json index 76cbe67eee5..09356d1a99c 100644 --- a/keyboards/pteropus/keyboard.json +++ b/keyboards/pteropus/keyboard.json @@ -17,7 +17,6 @@ "rows": ["B10", "B2", "B1", "B0"] }, "processor": "STM32F072", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/puck/keyboard.json b/keyboards/puck/keyboard.json index 4ec04d72bea..e69c7755d37 100644 --- a/keyboards/puck/keyboard.json +++ b/keyboards/puck/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Puck", "manufacturer": "OkKeebs LLC", - "url": "", "maintainer": "john-pettigrew", "usb": { "vid": "0xFEED", diff --git a/keyboards/punk75/keyboard.json b/keyboards/punk75/keyboard.json index c7082e564fb..62501a885c6 100644 --- a/keyboards/punk75/keyboard.json +++ b/keyboards/punk75/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "punk75", "manufacturer": "dsanchezseco", - "url": "", "maintainer": "dsanchezseco", "usb": { "vid": "0xDEED", diff --git a/keyboards/purin/keyboard.json b/keyboards/purin/keyboard.json index 08a8b06e342..8da928ed030 100644 --- a/keyboards/purin/keyboard.json +++ b/keyboards/purin/keyboard.json @@ -17,7 +17,6 @@ "rows": ["F6", "F7", "D4", "D5", "D3"] }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/qck75/v1/keyboard.json b/keyboards/qck75/v1/keyboard.json index a8ae853ab36..04cc5dc3c15 100644 --- a/keyboards/qck75/v1/keyboard.json +++ b/keyboards/qck75/v1/keyboard.json @@ -25,7 +25,6 @@ "rows": ["C3", "A0", "A1", "A2", "B10", "A15"] }, "processor": "STM32F072", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0001", diff --git a/keyboards/qpockets/eggman/keyboard.json b/keyboards/qpockets/eggman/keyboard.json index 32cb76fc88d..b784c6aec34 100644 --- a/keyboards/qpockets/eggman/keyboard.json +++ b/keyboards/qpockets/eggman/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "eggman", "manufacturer": "qpockets", - "url": "", "maintainer": "qpockets", "usb": { "vid": "0x7170", diff --git a/keyboards/qpockets/space_space/rev1/keyboard.json b/keyboards/qpockets/space_space/rev1/keyboard.json index cc8cda49a8f..5284230e617 100644 --- a/keyboards/qpockets/space_space/rev1/keyboard.json +++ b/keyboards/qpockets/space_space/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "space_space", "manufacturer": "qpockets", - "url": "", "maintainer": "qpockets", "usb": { "vid": "0x7170", diff --git a/keyboards/qpockets/space_space/rev2/keyboard.json b/keyboards/qpockets/space_space/rev2/keyboard.json index e2f24032a30..7374ed47284 100644 --- a/keyboards/qpockets/space_space/rev2/keyboard.json +++ b/keyboards/qpockets/space_space/rev2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "space_space", "manufacturer": "qpockets", - "url": "", "maintainer": "qpockets", "usb": { "vid": "0x7170", diff --git a/keyboards/qpockets/wanten/keyboard.json b/keyboards/qpockets/wanten/keyboard.json index 86bfe023003..e1c21b5d0fa 100644 --- a/keyboards/qpockets/wanten/keyboard.json +++ b/keyboards/qpockets/wanten/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "wanten", "manufacturer": "qpockets", - "url": "", "maintainer": "qpockets", "usb": { "vid": "0x7170", diff --git a/keyboards/quad_h/lb75/keyboard.json b/keyboards/quad_h/lb75/keyboard.json index e88ba4b3a4e..3dc43bdb696 100644 --- a/keyboards/quad_h/lb75/keyboard.json +++ b/keyboards/quad_h/lb75/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "LB75", "manufacturer": "QUADH", - "url": "", "maintainer": "ai03", "usb": { "vid": "0xA103", diff --git a/keyboards/quadrum/delta/keyboard.json b/keyboards/quadrum/delta/keyboard.json index bfdc0afd628..6766bd28759 100644 --- a/keyboards/quadrum/delta/keyboard.json +++ b/keyboards/quadrum/delta/keyboard.json @@ -21,7 +21,6 @@ "rows": ["F5", "F4", "F1", "F0", "D2"] }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0002", diff --git a/keyboards/quantrik/kyuu/keyboard.json b/keyboards/quantrik/kyuu/keyboard.json index 5827f08d21c..b7a2a01807e 100644 --- a/keyboards/quantrik/kyuu/keyboard.json +++ b/keyboards/quantrik/kyuu/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Kyuu", "manufacturer": "Quantrik", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x5154", diff --git a/keyboards/qwertlekeys/calice/keyboard.json b/keyboards/qwertlekeys/calice/keyboard.json index 676ca7a4330..6e57f37892a 100644 --- a/keyboards/qwertlekeys/calice/keyboard.json +++ b/keyboards/qwertlekeys/calice/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Calice", "manufacturer": "QwertleKeys", - "url": "", "maintainer": "Jels02", "usb": { "vid": "0x716B", diff --git a/keyboards/qwertykeys/qk65/hotswap/keyboard.json b/keyboards/qwertykeys/qk65/hotswap/keyboard.json index 7c786a70384..a641e3cc7ad 100644 --- a/keyboards/qwertykeys/qk65/hotswap/keyboard.json +++ b/keyboards/qwertykeys/qk65/hotswap/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "QK65 Hotswap", "manufacturer": "qwertykeys", - "url": "", "maintainer": "qwertykeys", "usb": { "vid": "0x4F53", diff --git a/keyboards/qwertykeys/qk65/solder/keyboard.json b/keyboards/qwertykeys/qk65/solder/keyboard.json index b1795474d36..deb2c987b59 100644 --- a/keyboards/qwertykeys/qk65/solder/keyboard.json +++ b/keyboards/qwertykeys/qk65/solder/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "QK65 Solder", "manufacturer": "qwertykeys", - "url": "", "maintainer": "qwertykeys", "usb": { "vid": "0x4F53", diff --git a/keyboards/qwertyydox/rev1/keyboard.json b/keyboards/qwertyydox/rev1/keyboard.json index 24284ff8c02..0010f9f7e8a 100644 --- a/keyboards/qwertyydox/rev1/keyboard.json +++ b/keyboards/qwertyydox/rev1/keyboard.json @@ -2,7 +2,6 @@ "keyboard_name": "QWERTYYdox", "manufacturer": "AYDENandDAD Youtube", "identifier": "0x1256", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xCEEB", diff --git a/keyboards/rabbit/rabbit68/keyboard.json b/keyboards/rabbit/rabbit68/keyboard.json index ce35a7d3c29..016e4531992 100644 --- a/keyboards/rabbit/rabbit68/keyboard.json +++ b/keyboards/rabbit/rabbit68/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Rabbit68", "manufacturer": "Kai Eckert", - "url": "", "maintainer": "kaiec", "usb": { "vid": "0xFEED", diff --git a/keyboards/rainkeebs/rainkeeb/keyboard.json b/keyboards/rainkeebs/rainkeeb/keyboard.json index a291d61d3b0..af6021bc1a9 100644 --- a/keyboards/rainkeebs/rainkeeb/keyboard.json +++ b/keyboards/rainkeebs/rainkeeb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "rainkeeb", "manufacturer": "rainkeebs", - "url": "", "maintainer": "rain", "usb": { "vid": "0x726B", diff --git a/keyboards/ramlord/witf/keyboard.json b/keyboards/ramlord/witf/keyboard.json index 55049a3ffa5..2e8b05eee9b 100644 --- a/keyboards/ramlord/witf/keyboard.json +++ b/keyboards/ramlord/witf/keyboard.json @@ -22,7 +22,6 @@ "scroll_lock": "A4" }, "processor": "STM32F072", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x343F", diff --git a/keyboards/rart/rart45/keyboard.json b/keyboards/rart/rart45/keyboard.json index 42a5d054d7e..a1cf03341e5 100644 --- a/keyboards/rart/rart45/keyboard.json +++ b/keyboards/rart/rart45/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Rart45", "manufacturer": "Alabahuy", - "url": "", "maintainer": "Alabahuy", "usb": { "vid": "0x414C", diff --git a/keyboards/rart/rart4x4/keyboard.json b/keyboards/rart/rart4x4/keyboard.json index c38e2103de9..edd5ed12fe5 100644 --- a/keyboards/rart/rart4x4/keyboard.json +++ b/keyboards/rart/rart4x4/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "RART4X4", "manufacturer": "Alabahuy", - "url": "", "maintainer": "Alabahuy", "usb": { "vid": "0x414C", diff --git a/keyboards/rart/rart60/keyboard.json b/keyboards/rart/rart60/keyboard.json index d5cc7bf0b42..474c3512afd 100644 --- a/keyboards/rart/rart60/keyboard.json +++ b/keyboards/rart/rart60/keyboard.json @@ -23,7 +23,6 @@ "rows": ["GP23", "GP25", "GP15", "GP16", "GP17"] }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0060", diff --git a/keyboards/rart/rart67/keyboard.json b/keyboards/rart/rart67/keyboard.json index 66515617437..e911a783bee 100644 --- a/keyboards/rart/rart67/keyboard.json +++ b/keyboards/rart/rart67/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "RART67", "manufacturer": "Alabahuy", - "url": "", "maintainer": "Alabahuy", "usb": { "vid": "0x414C", diff --git a/keyboards/rart/rart67m/keyboard.json b/keyboards/rart/rart67m/keyboard.json index 0d6cfdeed1a..83ff7f30a12 100644 --- a/keyboards/rart/rart67m/keyboard.json +++ b/keyboards/rart/rart67m/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "RART67M", "manufacturer": "Alabahuy", - "url": "", "maintainer": "Alabahuy", "usb": { "vid": "0x414C", diff --git a/keyboards/rart/rart75/keyboard.json b/keyboards/rart/rart75/keyboard.json index beb8a7cc392..a087298e0a8 100644 --- a/keyboards/rart/rart75/keyboard.json +++ b/keyboards/rart/rart75/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "RART75", "manufacturer": "Alabahuy", - "url": "", "maintainer": "Alabahuy", "usb": { "vid": "0x414C", diff --git a/keyboards/rart/rart75hs/keyboard.json b/keyboards/rart/rart75hs/keyboard.json index f8763bfbee9..9371daacf2d 100644 --- a/keyboards/rart/rart75hs/keyboard.json +++ b/keyboards/rart/rart75hs/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "RART75 Hotswap", "manufacturer": "Alabahuy", - "url": "", "maintainer": "Alabahuy", "usb": { "vid": "0x414C", diff --git a/keyboards/rart/rart75m/keyboard.json b/keyboards/rart/rart75m/keyboard.json index 925e8dff5e7..3af82c9bc5f 100644 --- a/keyboards/rart/rart75m/keyboard.json +++ b/keyboards/rart/rart75m/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "RART75M", "manufacturer": "Alabahuy", - "url": "", "maintainer": "Alabahuy", "usb": { "vid": "0x414C", diff --git a/keyboards/rart/rart80/keyboard.json b/keyboards/rart/rart80/keyboard.json index 06fbd1add67..a2d4a7f3eb2 100644 --- a/keyboards/rart/rart80/keyboard.json +++ b/keyboards/rart/rart80/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "RART80 Hotswap", "manufacturer": "Alabahuy", - "url": "", "maintainer": "Alabahuy", "usb": { "vid": "0x414C", diff --git a/keyboards/rart/rartand/keyboard.json b/keyboards/rart/rartand/keyboard.json index 330beca3e10..57ff3f068fb 100644 --- a/keyboards/rart/rartand/keyboard.json +++ b/keyboards/rart/rartand/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Rartand", "manufacturer": "Alabahuy", - "url": "", "maintainer": "Alabahuy", "usb": { "vid": "0x414C", diff --git a/keyboards/rart/rartlice/keyboard.json b/keyboards/rart/rartlice/keyboard.json index c55919e6a68..f568fbba474 100644 --- a/keyboards/rart/rartlice/keyboard.json +++ b/keyboards/rart/rartlice/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Rartlice", "manufacturer": "Alabahuy", - "url": "", "maintainer": "Alabahuy", "usb": { "vid": "0x414C", diff --git a/keyboards/rart/rartlite/keyboard.json b/keyboards/rart/rartlite/keyboard.json index f542654db77..baf65530d61 100644 --- a/keyboards/rart/rartlite/keyboard.json +++ b/keyboards/rart/rartlite/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "RARTLITE", "manufacturer": "Alabahuy", - "url": "", "maintainer": "Alabahuy", "usb": { "vid": "0x414C", diff --git a/keyboards/rart/rartpad/keyboard.json b/keyboards/rart/rartpad/keyboard.json index ac9b2a38f1c..dd4f778e267 100644 --- a/keyboards/rart/rartpad/keyboard.json +++ b/keyboards/rart/rartpad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "RARTPAD", "manufacturer": "Alabahuy", - "url": "", "maintainer": "Alabahuy", "usb": { "vid": "0x414C", diff --git a/keyboards/rate/pistachio/info.json b/keyboards/rate/pistachio/info.json index 0eaea7885d7..71368602608 100644 --- a/keyboards/rate/pistachio/info.json +++ b/keyboards/rate/pistachio/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "pistachio", "manufacturer": "rate", - "url": "", "maintainer": "rate", "usb": { "vid": "0x5255", diff --git a/keyboards/rate/pistachio_mp/keyboard.json b/keyboards/rate/pistachio_mp/keyboard.json index dadb936942c..dc016ffecb4 100644 --- a/keyboards/rate/pistachio_mp/keyboard.json +++ b/keyboards/rate/pistachio_mp/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "pistachio_mp", "manufacturer": "rate", - "url": "", "maintainer": "rate", "usb": { "vid": "0x5255", diff --git a/keyboards/rationalist/ratio65_hotswap/rev_a/keyboard.json b/keyboards/rationalist/ratio65_hotswap/rev_a/keyboard.json index fe40f12f460..eb8da169c48 100644 --- a/keyboards/rationalist/ratio65_hotswap/rev_a/keyboard.json +++ b/keyboards/rationalist/ratio65_hotswap/rev_a/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Ratio65 Hotswap Rev A", "manufacturer": "4pplet", - "url": "", "maintainer": "4pplet", "usb": { "vid": "0x4446", diff --git a/keyboards/rationalist/ratio65_solder/rev_a/keyboard.json b/keyboards/rationalist/ratio65_solder/rev_a/keyboard.json index 6953636dee8..384760e535b 100644 --- a/keyboards/rationalist/ratio65_solder/rev_a/keyboard.json +++ b/keyboards/rationalist/ratio65_solder/rev_a/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Ratio65 Solder Rev A", "manufacturer": "4pplet", - "url": "", "maintainer": "4pplet", "usb": { "vid": "0x4446", diff --git a/keyboards/rect44/keyboard.json b/keyboards/rect44/keyboard.json index d331e48bd95..fd543f52992 100644 --- a/keyboards/rect44/keyboard.json +++ b/keyboards/rect44/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Rect44", "manufacturer": "koshinoya", - "url": "", "maintainer": "koshinoya", "usb": { "vid": "0xFEED", diff --git a/keyboards/redox/rev1/info.json b/keyboards/redox/rev1/info.json index ee9786d8382..b5df0799695 100644 --- a/keyboards/redox/rev1/info.json +++ b/keyboards/redox/rev1/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Redox", "manufacturer": "Falbatech", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4D44", diff --git a/keyboards/redox/wireless/keyboard.json b/keyboards/redox/wireless/keyboard.json index 86977f4602d..7f167240b61 100644 --- a/keyboards/redox/wireless/keyboard.json +++ b/keyboards/redox/wireless/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Redox Wireless", "manufacturer": "Mattia Dal Ben", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4D44", diff --git a/keyboards/redox_media/keyboard.json b/keyboards/redox_media/keyboard.json index 83057da79ff..dba5657ea2f 100644 --- a/keyboards/redox_media/keyboard.json +++ b/keyboards/redox_media/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Redox Media", "manufacturer": "shiftux", - "url": "", "maintainer": "shiftux", "usb": { "vid": "0xFEED", diff --git a/keyboards/redscarf_i/keyboard.json b/keyboards/redscarf_i/keyboard.json index 6a186dff0bb..0e5dbd76a8f 100644 --- a/keyboards/redscarf_i/keyboard.json +++ b/keyboards/redscarf_i/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Red Scarf I", "manufacturer": "Red Scarf", - "url": "", "maintainer": "qmk, defying", "usb": { "vid": "0xFEED", diff --git a/keyboards/redscarf_iiplus/verb/keyboard.json b/keyboards/redscarf_iiplus/verb/keyboard.json index 99d763e39ac..2bb3910fb5c 100644 --- a/keyboards/redscarf_iiplus/verb/keyboard.json +++ b/keyboards/redscarf_iiplus/verb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "RedScarfII+ Ver.B (RS78)", "manufacturer": "RedScarf", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/redscarf_iiplus/verc/keyboard.json b/keyboards/redscarf_iiplus/verc/keyboard.json index a6defe4851b..c9b960e7ba2 100644 --- a/keyboards/redscarf_iiplus/verc/keyboard.json +++ b/keyboards/redscarf_iiplus/verc/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "RedScarfII+ Ver.C (RS68)", "manufacturer": "RedScarf", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/redscarf_iiplus/verd/keyboard.json b/keyboards/redscarf_iiplus/verd/keyboard.json index d0ba57553a1..fbb0b144022 100644 --- a/keyboards/redscarf_iiplus/verd/keyboard.json +++ b/keyboards/redscarf_iiplus/verd/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "RedScarfII+ Ver.D", "manufacturer": "RedScarf", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/relapsekb/or87/keyboard.json b/keyboards/relapsekb/or87/keyboard.json index 0ac5022aca3..67ff9cd19bf 100644 --- a/keyboards/relapsekb/or87/keyboard.json +++ b/keyboards/relapsekb/or87/keyboard.json @@ -15,7 +15,6 @@ "cols": ["F7", "C7", "C6", "B6", "B5", "B4", "D7", "D0", "B7"] }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "1.0.0", "vid": "0x722D", diff --git a/keyboards/retro_75/keyboard.json b/keyboards/retro_75/keyboard.json index e077be2ee96..1e29a5a0fc9 100644 --- a/keyboards/retro_75/keyboard.json +++ b/keyboards/retro_75/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Retro75", "manufacturer": "PheonixStarr", - "url": "", "maintainer": "zvecr", "usb": { "vid": "0xFEED", diff --git a/keyboards/reversestudio/decadepad/keyboard.json b/keyboards/reversestudio/decadepad/keyboard.json index 601122aa37b..e3f587d5dd8 100644 --- a/keyboards/reversestudio/decadepad/keyboard.json +++ b/keyboards/reversestudio/decadepad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "DecadePad", "manufacturer": "ReverseStudio", - "url": "", "maintainer": "huajijam", "usb": { "vid": "0x5253", diff --git a/keyboards/reviung/reviung33/keyboard.json b/keyboards/reviung/reviung33/keyboard.json index 0b5ceb4e546..ab0df0195b1 100644 --- a/keyboards/reviung/reviung33/keyboard.json +++ b/keyboards/reviung/reviung33/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "reviung33", "manufacturer": "gtips", - "url": "", "maintainer": "gtips", "usb": { "vid": "0xFEED", diff --git a/keyboards/reviung/reviung34/keyboard.json b/keyboards/reviung/reviung34/keyboard.json index 8b354c00df3..7495b7cc9d9 100755 --- a/keyboards/reviung/reviung34/keyboard.json +++ b/keyboards/reviung/reviung34/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "reviung34", "manufacturer": "gtips", - "url": "", "maintainer": "gtips", "usb": { "vid": "0x6774", diff --git a/keyboards/reviung/reviung39/keyboard.json b/keyboards/reviung/reviung39/keyboard.json index 04cbe909c3b..e18c1c163e1 100644 --- a/keyboards/reviung/reviung39/keyboard.json +++ b/keyboards/reviung/reviung39/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "reviung39", "manufacturer": "gtips", - "url": "", "maintainer": "gtips", "usb": { "vid": "0xFEED", diff --git a/keyboards/reviung/reviung41/keyboard.json b/keyboards/reviung/reviung41/keyboard.json index 8e72ff5762a..b44827c3d29 100644 --- a/keyboards/reviung/reviung41/keyboard.json +++ b/keyboards/reviung/reviung41/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "reviung41", "manufacturer": "gtips", - "url": "", "maintainer": "gtips", "usb": { "vid": "0x7807", diff --git a/keyboards/reviung/reviung5/keyboard.json b/keyboards/reviung/reviung5/keyboard.json index 5c932020a2b..78c37f49925 100644 --- a/keyboards/reviung/reviung5/keyboard.json +++ b/keyboards/reviung/reviung5/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "reviung5", "manufacturer": "gtips", - "url": "", "maintainer": "gtips", "usb": { "vid": "0x5C06", diff --git a/keyboards/reviung/reviung53/keyboard.json b/keyboards/reviung/reviung53/keyboard.json index 33eec7d8285..dfa2866f129 100644 --- a/keyboards/reviung/reviung53/keyboard.json +++ b/keyboards/reviung/reviung53/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "reviung53", "manufacturer": "gtips", - "url": "", "maintainer": "gtips", "usb": { "vid": "0x4E94", diff --git a/keyboards/reviung/reviung61/keyboard.json b/keyboards/reviung/reviung61/keyboard.json index 99a297bde4c..09497b203e2 100644 --- a/keyboards/reviung/reviung61/keyboard.json +++ b/keyboards/reviung/reviung61/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "reviung61", "manufacturer": "gtips", - "url": "", "maintainer": "gtips", "usb": { "vid": "0xFEED", diff --git a/keyboards/rgbkb/sol/rev1/keyboard.json b/keyboards/rgbkb/sol/rev1/keyboard.json index 38932a78e1f..9a4c538e55e 100644 --- a/keyboards/rgbkb/sol/rev1/keyboard.json +++ b/keyboards/rgbkb/sol/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Sol", "manufacturer": "RGBKB", - "url": "", "maintainer": "Legonut", "usb": { "vid": "0xFEED", diff --git a/keyboards/rgbkb/sol/rev2/keyboard.json b/keyboards/rgbkb/sol/rev2/keyboard.json index b6bad358e3c..140ea1cd691 100644 --- a/keyboards/rgbkb/sol/rev2/keyboard.json +++ b/keyboards/rgbkb/sol/rev2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Sol", "manufacturer": "RGBKB", - "url": "", "maintainer": "Legonut", "usb": { "vid": "0xFEED", diff --git a/keyboards/rgbkb/sol3/rev1/keyboard.json b/keyboards/rgbkb/sol3/rev1/keyboard.json index 775e3f86297..dc9e6d4035c 100644 --- a/keyboards/rgbkb/sol3/rev1/keyboard.json +++ b/keyboards/rgbkb/sol3/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Sol 3", "manufacturer": "RGBKB", - "url": "", "maintainer": "XScorpion2, rgbkb", "usb": { "vid": "0x3535", diff --git a/keyboards/rgbkb/zen/rev1/keyboard.json b/keyboards/rgbkb/zen/rev1/keyboard.json index 91d127de583..b35381f607f 100644 --- a/keyboards/rgbkb/zen/rev1/keyboard.json +++ b/keyboards/rgbkb/zen/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Project Zen", "manufacturer": "Legonut", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/rgbkb/zen/rev2/keyboard.json b/keyboards/rgbkb/zen/rev2/keyboard.json index b59af6dfdd6..917274f1869 100644 --- a/keyboards/rgbkb/zen/rev2/keyboard.json +++ b/keyboards/rgbkb/zen/rev2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Project Zen", "manufacturer": "Legonut", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/rmi_kb/aelith/keyboard.json b/keyboards/rmi_kb/aelith/keyboard.json index de16e5ac317..b3f688913e0 100644 --- a/keyboards/rmi_kb/aelith/keyboard.json +++ b/keyboards/rmi_kb/aelith/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "AELITH", "manufacturer": "RMI-KB", - "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0xB16B", diff --git a/keyboards/rmi_kb/chevron/keyboard.json b/keyboards/rmi_kb/chevron/keyboard.json index 8eda552902a..8ae5c12ae14 100644 --- a/keyboards/rmi_kb/chevron/keyboard.json +++ b/keyboards/rmi_kb/chevron/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Chevron", "manufacturer": "RMI-KB", - "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0xB16B", diff --git a/keyboards/rmi_kb/equator/keyboard.json b/keyboards/rmi_kb/equator/keyboard.json index 9e1ccab0fb5..4eccede5558 100644 --- a/keyboards/rmi_kb/equator/keyboard.json +++ b/keyboards/rmi_kb/equator/keyboard.json @@ -18,7 +18,6 @@ "rows": ["B12", "B10", "A15", "A10", "B1"] }, "processor": "STM32F072", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0xE0A1", diff --git a/keyboards/rmi_kb/herringbone/pro/keyboard.json b/keyboards/rmi_kb/herringbone/pro/keyboard.json index 53031856928..a49983db074 100644 --- a/keyboards/rmi_kb/herringbone/pro/keyboard.json +++ b/keyboards/rmi_kb/herringbone/pro/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Herringbone Pro", "manufacturer": "RMI-KB", - "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0xB16B", diff --git a/keyboards/rmi_kb/herringbone/v1/keyboard.json b/keyboards/rmi_kb/herringbone/v1/keyboard.json index 2883f341ab5..0f624dbc992 100644 --- a/keyboards/rmi_kb/herringbone/v1/keyboard.json +++ b/keyboards/rmi_kb/herringbone/v1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Herringbone", "manufacturer": "RMI-KB", - "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0xB16B", diff --git a/keyboards/rmi_kb/mona/v1/keyboard.json b/keyboards/rmi_kb/mona/v1/keyboard.json index 9d8f66af2f7..f56986df1a1 100644 --- a/keyboards/rmi_kb/mona/v1/keyboard.json +++ b/keyboards/rmi_kb/mona/v1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Mona", "manufacturer": "RMI-KB", - "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0xB16B", diff --git a/keyboards/rmi_kb/mona/v1_1/keyboard.json b/keyboards/rmi_kb/mona/v1_1/keyboard.json index b1e1f27fc01..95f7b9706ed 100644 --- a/keyboards/rmi_kb/mona/v1_1/keyboard.json +++ b/keyboards/rmi_kb/mona/v1_1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Mona", "manufacturer": "RMI-KB", - "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0xB16B", diff --git a/keyboards/rmi_kb/mona/v32a/keyboard.json b/keyboards/rmi_kb/mona/v32a/keyboard.json index e4b7760813e..84a301d1732 100644 --- a/keyboards/rmi_kb/mona/v32a/keyboard.json +++ b/keyboards/rmi_kb/mona/v32a/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Mona", "manufacturer": "RMI-KB", - "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0xB16B", diff --git a/keyboards/rmi_kb/squishy65/keyboard.json b/keyboards/rmi_kb/squishy65/keyboard.json index adc83200d3d..aecaaf9c042 100644 --- a/keyboards/rmi_kb/squishy65/keyboard.json +++ b/keyboards/rmi_kb/squishy65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Squishy65", "manufacturer": "RMI-KB", - "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0xB16B", diff --git a/keyboards/rmi_kb/squishyfrl/keyboard.json b/keyboards/rmi_kb/squishyfrl/keyboard.json index 8a14a2a4edb..5f5d305c6f6 100644 --- a/keyboards/rmi_kb/squishyfrl/keyboard.json +++ b/keyboards/rmi_kb/squishyfrl/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "SquishyFRL", "manufacturer": "RMI-KB", - "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0xB16B", diff --git a/keyboards/rmi_kb/squishytkl/keyboard.json b/keyboards/rmi_kb/squishytkl/keyboard.json index ae63d83c5d0..6fc61e6b3ce 100644 --- a/keyboards/rmi_kb/squishytkl/keyboard.json +++ b/keyboards/rmi_kb/squishytkl/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "SquishyTKL", "manufacturer": "RMI-KB", - "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0xB16B", diff --git a/keyboards/rmi_kb/tkl_ff/info.json b/keyboards/rmi_kb/tkl_ff/info.json index a4fe24cab73..96bbeb81592 100644 --- a/keyboards/rmi_kb/tkl_ff/info.json +++ b/keyboards/rmi_kb/tkl_ff/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "TKL FF", "manufacturer": "RMI-KB", - "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0xB16B", diff --git a/keyboards/rmi_kb/wete/v1/keyboard.json b/keyboards/rmi_kb/wete/v1/keyboard.json index c9a54f76c20..ff18fac5b55 100644 --- a/keyboards/rmi_kb/wete/v1/keyboard.json +++ b/keyboards/rmi_kb/wete/v1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Wete", "manufacturer": "RMI-KB", - "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0xB16B", diff --git a/keyboards/rmi_kb/wete/v2/keyboard.json b/keyboards/rmi_kb/wete/v2/keyboard.json index 2c925ee9195..3ad1fc9a737 100644 --- a/keyboards/rmi_kb/wete/v2/keyboard.json +++ b/keyboards/rmi_kb/wete/v2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Wete R2", "manufacturer": "RMI-KB", - "url": "", "maintainer": "ramonimbao", "usb": { "vid": "0xB16B", diff --git a/keyboards/rmkeebs/rm_fullsize/keyboard.json b/keyboards/rmkeebs/rm_fullsize/keyboard.json index f9ff4dd5b86..a7e6ff99cbe 100644 --- a/keyboards/rmkeebs/rm_fullsize/keyboard.json +++ b/keyboards/rmkeebs/rm_fullsize/keyboard.json @@ -18,7 +18,6 @@ "rows": ["GP8", "GP7", "GP9", "GP20", "GP18", "GP19"] }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/rocketboard_16/keyboard.json b/keyboards/rocketboard_16/keyboard.json index 4831911f4fd..cacd37d1c34 100644 --- a/keyboards/rocketboard_16/keyboard.json +++ b/keyboards/rocketboard_16/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Rocketboard-16", "manufacturer": "Rocketboard", - "url": "", "maintainer": "fl3tching101", "usb": { "vid": "0xB034", diff --git a/keyboards/rominronin/katana60/rev1/keyboard.json b/keyboards/rominronin/katana60/rev1/keyboard.json index 0a9bb4ea493..b8d9df35a76 100644 --- a/keyboards/rominronin/katana60/rev1/keyboard.json +++ b/keyboards/rominronin/katana60/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Katana60 rev1", "manufacturer": "RominRonin CandyKeys", - "url": "", "maintainer": "rominronin", "usb": { "vid": "0x7272", diff --git a/keyboards/rot13labs/rotc0n/keyboard.json b/keyboards/rot13labs/rotc0n/keyboard.json index a9dc27a4714..a340c37d62b 100644 --- a/keyboards/rot13labs/rotc0n/keyboard.json +++ b/keyboards/rot13labs/rotc0n/keyboard.json @@ -17,7 +17,6 @@ "rows": ["B1", "B0"] }, "processor": "atmega328p", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0xBEEF", diff --git a/keyboards/rpiguy9907/southpaw66/keyboard.json b/keyboards/rpiguy9907/southpaw66/keyboard.json index f2fdf4f5ff5..c751ee6d8e4 100644 --- a/keyboards/rpiguy9907/southpaw66/keyboard.json +++ b/keyboards/rpiguy9907/southpaw66/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Southpaw66", "manufacturer": "rpiguy9907", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x9907", diff --git a/keyboards/ryanbaekr/rb1/keyboard.json b/keyboards/ryanbaekr/rb1/keyboard.json index 31f2fa20c4f..dd54bd29981 100644 --- a/keyboards/ryanbaekr/rb1/keyboard.json +++ b/keyboards/ryanbaekr/rb1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "rb1", "manufacturer": "ryanbaekr", - "url": "", "maintainer": "ryanbaekr", "usb": { "vid": "0x7262", diff --git a/keyboards/ryanbaekr/rb18/keyboard.json b/keyboards/ryanbaekr/rb18/keyboard.json index 03a1335c7bd..cf9539c4622 100644 --- a/keyboards/ryanbaekr/rb18/keyboard.json +++ b/keyboards/ryanbaekr/rb18/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "rb18", "manufacturer": "ryanbaekr", - "url": "", "maintainer": "ryanbaekr", "usb": { "vid": "0x7262", diff --git a/keyboards/ryanbaekr/rb69/keyboard.json b/keyboards/ryanbaekr/rb69/keyboard.json index c1cce7508ea..3a5fd3fee38 100644 --- a/keyboards/ryanbaekr/rb69/keyboard.json +++ b/keyboards/ryanbaekr/rb69/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "rb69", "manufacturer": "ryanbaekr", - "url": "", "maintainer": "ryanbaekr", "usb": { "vid": "0x7262", diff --git a/keyboards/ryanbaekr/rb86/keyboard.json b/keyboards/ryanbaekr/rb86/keyboard.json index 5813a2fa7b0..6cc5f0f9b05 100644 --- a/keyboards/ryanbaekr/rb86/keyboard.json +++ b/keyboards/ryanbaekr/rb86/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "rb86", "manufacturer": "ryanbaekr", - "url": "", "maintainer": "ryanbaekr", "usb": { "vid": "0x7262", diff --git a/keyboards/ryanbaekr/rb87/keyboard.json b/keyboards/ryanbaekr/rb87/keyboard.json index 6d19c3c29d4..42114b29d89 100644 --- a/keyboards/ryanbaekr/rb87/keyboard.json +++ b/keyboards/ryanbaekr/rb87/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "rb87", "manufacturer": "ryanbaekr", - "url": "", "maintainer": "ryanbaekr", "development_board": "elite_c", "pin_compatible": "elite_c", diff --git a/keyboards/ryanskidmore/rskeys100/keyboard.json b/keyboards/ryanskidmore/rskeys100/keyboard.json index c77d3f4c90c..27eae84a6e9 100644 --- a/keyboards/ryanskidmore/rskeys100/keyboard.json +++ b/keyboards/ryanskidmore/rskeys100/keyboard.json @@ -158,7 +158,6 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", - "url": "", "maintainer": "ryanskidmore", "community_layouts": ["fullsize_iso"], "layouts": { diff --git a/keyboards/sakura_workshop/fuji75/info.json b/keyboards/sakura_workshop/fuji75/info.json index 7b56fd4d722..604c5046415 100644 --- a/keyboards/sakura_workshop/fuji75/info.json +++ b/keyboards/sakura_workshop/fuji75/info.json @@ -1,6 +1,5 @@ { "manufacturer": "SakuraWorkshop", - "url": "", "maintainer": "Freather", "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/salane/ncr80alpsskfl/keyboard.json b/keyboards/salane/ncr80alpsskfl/keyboard.json index ce3f10c685b..5f7bae802af 100644 --- a/keyboards/salane/ncr80alpsskfl/keyboard.json +++ b/keyboards/salane/ncr80alpsskfl/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "NCR80 ALPS SKFL", "manufacturer": "Salane", - "url": "", "maintainer": "Mai The San", "processor": "RP2040", "bootloader": "rp2040", diff --git a/keyboards/salane/starryfrl/keyboard.json b/keyboards/salane/starryfrl/keyboard.json index 43e434cb022..fa8bd1224bf 100644 --- a/keyboards/salane/starryfrl/keyboard.json +++ b/keyboards/salane/starryfrl/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Starry FRL", "manufacturer": "Salane", - "url": "", "maintainer": "Mai The San", "processor": "RP2040", "bootloader": "rp2040", diff --git a/keyboards/salicylic_acid3/guide68/keyboard.json b/keyboards/salicylic_acid3/guide68/keyboard.json index d2c6f10d11c..8bdb68f8c13 100644 --- a/keyboards/salicylic_acid3/guide68/keyboard.json +++ b/keyboards/salicylic_acid3/guide68/keyboard.json @@ -18,7 +18,6 @@ "rows": ["D4", "C6", "D7", "E6", "B4"] }, "processor": "atmega32u4", - "url": "", "usb": { "vid": "0x04D8", "pid": "0xE6DD", diff --git a/keyboards/sam/s80/keyboard.json b/keyboards/sam/s80/keyboard.json index c721efdbd79..846ae198dd7 100644 --- a/keyboards/sam/s80/keyboard.json +++ b/keyboards/sam/s80/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "s8", "manufacturer": "Sam", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x534D", diff --git a/keyboards/sam/sg81m/keyboard.json b/keyboards/sam/sg81m/keyboard.json index 66e0f1ab9ce..4909a625699 100644 --- a/keyboards/sam/sg81m/keyboard.json +++ b/keyboards/sam/sg81m/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "SG81M", "manufacturer": "Sam", - "url": "", "maintainer": "CMMS-Freather", "usb": { "vid": "0x534D", diff --git a/keyboards/sanctified/dystopia/keyboard.json b/keyboards/sanctified/dystopia/keyboard.json index 1911081fc2c..a7ae1a8ebbd 100644 --- a/keyboards/sanctified/dystopia/keyboard.json +++ b/keyboards/sanctified/dystopia/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Dystopia", "manufacturer": "Sanctified.Works", - "url": "", "maintainer": "Sanctified", "usb": { "vid": "0x5357", diff --git a/keyboards/sandwich/keeb68/keyboard.json b/keyboards/sandwich/keeb68/keyboard.json index ad3ced0da2c..cb03d5a2569 100644 --- a/keyboards/sandwich/keeb68/keyboard.json +++ b/keyboards/sandwich/keeb68/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Keeb68 (Patron Saint Edition)", "manufacturer": "sandwich", - "url": "", "maintainer": "SandwichRising", "usb": { "vid": "0xFEED", diff --git a/keyboards/satt/comet46/keyboard.json b/keyboards/satt/comet46/keyboard.json index 0092f19c799..cd96686d6c8 100644 --- a/keyboards/satt/comet46/keyboard.json +++ b/keyboards/satt/comet46/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Comet46", "manufacturer": "SatT", - "url": "", "maintainer": "SatT", "usb": { "vid": "0xFEED", diff --git a/keyboards/satt/vision/keyboard.json b/keyboards/satt/vision/keyboard.json index 88ec732cd65..15bbced9f56 100644 --- a/keyboards/satt/vision/keyboard.json +++ b/keyboards/satt/vision/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Vision", "manufacturer": "SatT", - "url": "", "maintainer": "SatT", "usb": { "vid": "0x5454", diff --git a/keyboards/sauce/mild/keyboard.json b/keyboards/sauce/mild/keyboard.json index 5f827ec4beb..125fee67340 100644 --- a/keyboards/sauce/mild/keyboard.json +++ b/keyboards/sauce/mild/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Mild", "manufacturer": "Sauce", - "url": "", "maintainer": "andyywz", "usb": { "vid": "0x8367", diff --git a/keyboards/sawnsprojects/amber80/solder/keyboard.json b/keyboards/sawnsprojects/amber80/solder/keyboard.json index dc8e718fd66..37f8382f539 100644 --- a/keyboards/sawnsprojects/amber80/solder/keyboard.json +++ b/keyboards/sawnsprojects/amber80/solder/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Amber80 Solder", "manufacturer": "SawnsProjects X Yuutsu X Zlane", - "url": "", "maintainer": "SawnsProjects", "usb": { "vid": "0x5350", diff --git a/keyboards/sawnsprojects/bunnygirl65/keyboard.json b/keyboards/sawnsprojects/bunnygirl65/keyboard.json index 92dca8693d6..3fab84c5575 100644 --- a/keyboards/sawnsprojects/bunnygirl65/keyboard.json +++ b/keyboards/sawnsprojects/bunnygirl65/keyboard.json @@ -15,7 +15,6 @@ "rows": ["B4", "A15", "A3", "A8", "B14"] }, "processor": "STM32F072", - "url": "", "usb": { "device_version": "1.0.0", "force_nkro": true, diff --git a/keyboards/sawnsprojects/eclipse/eclipse60/keyboard.json b/keyboards/sawnsprojects/eclipse/eclipse60/keyboard.json index e4b63753e2d..7647131d9a6 100644 --- a/keyboards/sawnsprojects/eclipse/eclipse60/keyboard.json +++ b/keyboards/sawnsprojects/eclipse/eclipse60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Eclipse60", "manufacturer": "Salane", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x534C", diff --git a/keyboards/sawnsprojects/eclipse/tinyneko/keyboard.json b/keyboards/sawnsprojects/eclipse/tinyneko/keyboard.json index 6790011807c..360b42ead99 100644 --- a/keyboards/sawnsprojects/eclipse/tinyneko/keyboard.json +++ b/keyboards/sawnsprojects/eclipse/tinyneko/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "tinyneko", "manufacturer": "Salane", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x534C", diff --git a/keyboards/sawnsprojects/krush/krush65/hotswap/keyboard.json b/keyboards/sawnsprojects/krush/krush65/hotswap/keyboard.json index ccb9165c5ba..3f1b8f622fd 100644 --- a/keyboards/sawnsprojects/krush/krush65/hotswap/keyboard.json +++ b/keyboards/sawnsprojects/krush/krush65/hotswap/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Krush65 - Hotswap", "manufacturer": "SawnsProjects", - "url": "", "maintainer": "MaiTheSan", "usb": { "vid": "0x5350", diff --git a/keyboards/sawnsprojects/krush/krush65/solder/keyboard.json b/keyboards/sawnsprojects/krush/krush65/solder/keyboard.json index a72c903d8c3..bb4964f22c7 100644 --- a/keyboards/sawnsprojects/krush/krush65/solder/keyboard.json +++ b/keyboards/sawnsprojects/krush/krush65/solder/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Krush65 - Solder", "manufacturer": "SawnsProjects", - "url": "", "maintainer": "MaiTheSan", "usb": { "vid": "0x5350", diff --git a/keyboards/sawnsprojects/okayu/info.json b/keyboards/sawnsprojects/okayu/info.json index 08c5afe6881..74c5874b61b 100644 --- a/keyboards/sawnsprojects/okayu/info.json +++ b/keyboards/sawnsprojects/okayu/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Okayu", "manufacturer": "Salane", - "url": "", "maintainer": "Mai The San", "usb": { "vid": "0x5350", diff --git a/keyboards/sawnsprojects/plaque80/keyboard.json b/keyboards/sawnsprojects/plaque80/keyboard.json index dd18cc12ee6..6e7784e090d 100644 --- a/keyboards/sawnsprojects/plaque80/keyboard.json +++ b/keyboards/sawnsprojects/plaque80/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Plaque80", "manufacturer": "SawnsProjects", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x5350", diff --git a/keyboards/sawnsprojects/re65/keyboard.json b/keyboards/sawnsprojects/re65/keyboard.json index 45e874db6d5..04f050cfe55 100644 --- a/keyboards/sawnsprojects/re65/keyboard.json +++ b/keyboards/sawnsprojects/re65/keyboard.json @@ -2,7 +2,6 @@ "keyboard_name": "RE65", "maintainer": "Salane", "manufacturer": "Mai The San", - "url": "", "processor": "RP2040", "bootloader": "rp2040", "usb": { diff --git a/keyboards/sawnsprojects/satxri6key/keyboard.json b/keyboards/sawnsprojects/satxri6key/keyboard.json index 7049be25cf8..717ea2c1f4c 100644 --- a/keyboards/sawnsprojects/satxri6key/keyboard.json +++ b/keyboards/sawnsprojects/satxri6key/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Satxri6key", "manufacturer": "MaiTheSan", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x5350", diff --git a/keyboards/sawnsprojects/vcl65/solder/keyboard.json b/keyboards/sawnsprojects/vcl65/solder/keyboard.json index 4fc0f29766d..10c10da8f23 100644 --- a/keyboards/sawnsprojects/vcl65/solder/keyboard.json +++ b/keyboards/sawnsprojects/vcl65/solder/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "VCL65", "manufacturer": "VCL x SawnsProjects", - "url": "", "maintainer": "MaiTheSan", "usb": { "vid": "0x5350", diff --git a/keyboards/sck/gtm/keyboard.json b/keyboards/sck/gtm/keyboard.json index 7ed3915114a..88744edc84b 100644 --- a/keyboards/sck/gtm/keyboard.json +++ b/keyboards/sck/gtm/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "GTM Pad", "manufacturer": "SpaceCityKeyboards", - "url": "", "maintainer": "jrfhoutx", "usb": { "vid": "0xFEED", diff --git a/keyboards/sck/neiso/keyboard.json b/keyboards/sck/neiso/keyboard.json index 15cec588492..28ea132e2fc 100644 --- a/keyboards/sck/neiso/keyboard.json +++ b/keyboards/sck/neiso/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "NEISO", "manufacturer": "Space City Keyboards", - "url": "", "maintainer": "jrfhoutx", "usb": { "vid": "0xFEED", diff --git a/keyboards/sck/osa/keyboard.json b/keyboards/sck/osa/keyboard.json index 1cdd59367bf..caff86da75f 100644 --- a/keyboards/sck/osa/keyboard.json +++ b/keyboards/sck/osa/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "OSA", "manufacturer": "Space City Keyboards", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x5343", diff --git a/keyboards/sentraq/s60_x/info.json b/keyboards/sentraq/s60_x/info.json index 11ebdcd7d1a..f8a28d9e85d 100644 --- a/keyboards/sentraq/s60_x/info.json +++ b/keyboards/sentraq/s60_x/info.json @@ -1,6 +1,5 @@ { "manufacturer": "Sentraq", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/sentraq/s65_plus/keyboard.json b/keyboards/sentraq/s65_plus/keyboard.json index 01e2f0a2750..c3f8851144b 100644 --- a/keyboards/sentraq/s65_plus/keyboard.json +++ b/keyboards/sentraq/s65_plus/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "S65-Plus", "manufacturer": "Sentraq", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/sentraq/s65_x/keyboard.json b/keyboards/sentraq/s65_x/keyboard.json index 0d0b0fc5fd3..0329d36a49a 100644 --- a/keyboards/sentraq/s65_x/keyboard.json +++ b/keyboards/sentraq/s65_x/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "S65-X PCB", "manufacturer": "Sentraq", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/shambles/keyboard.json b/keyboards/shambles/keyboard.json index 34ec240cae2..5f0e296ee87 100644 --- a/keyboards/shambles/keyboard.json +++ b/keyboards/shambles/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Shambles TKL", "manufacturer": "OsciX", - "url": "", "maintainer": "OsciX", "usb": { "vid": "0xFEED", diff --git a/keyboards/shandoncodes/mino_plus/hotswap/keyboard.json b/keyboards/shandoncodes/mino_plus/hotswap/keyboard.json index f181c610ed1..e06f1adf7db 100644 --- a/keyboards/shandoncodes/mino_plus/hotswap/keyboard.json +++ b/keyboards/shandoncodes/mino_plus/hotswap/keyboard.json @@ -19,7 +19,6 @@ "rows": ["B14", "B10", "F0", "C15", "C14"] }, "processor": "STM32F072", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0004", diff --git a/keyboards/shandoncodes/mino_plus/soldered/keyboard.json b/keyboards/shandoncodes/mino_plus/soldered/keyboard.json index 2b717c4c597..ef145046ef8 100644 --- a/keyboards/shandoncodes/mino_plus/soldered/keyboard.json +++ b/keyboards/shandoncodes/mino_plus/soldered/keyboard.json @@ -19,7 +19,6 @@ "rows": ["B9", "B8", "A2", "A1", "A0"] }, "processor": "STM32F072", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0003", diff --git a/keyboards/shandoncodes/riot_pad/keyboard.json b/keyboards/shandoncodes/riot_pad/keyboard.json index 7ecb52d8e0e..8a019115d32 100644 --- a/keyboards/shandoncodes/riot_pad/keyboard.json +++ b/keyboards/shandoncodes/riot_pad/keyboard.json @@ -32,7 +32,6 @@ }, "led_count": 12 }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x1000", diff --git a/keyboards/sharkoon/skiller_sgk50_s2/keyboard.json b/keyboards/sharkoon/skiller_sgk50_s2/keyboard.json index 39d59ffa55a..f98fd659c33 100644 --- a/keyboards/sharkoon/skiller_sgk50_s2/keyboard.json +++ b/keyboards/sharkoon/skiller_sgk50_s2/keyboard.json @@ -185,7 +185,6 @@ "val_steps": 28, "sleep": true }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x3662", diff --git a/keyboards/sharkoon/skiller_sgk50_s3/keyboard.json b/keyboards/sharkoon/skiller_sgk50_s3/keyboard.json index 6535ec63b77..cfc24397e98 100644 --- a/keyboards/sharkoon/skiller_sgk50_s3/keyboard.json +++ b/keyboards/sharkoon/skiller_sgk50_s3/keyboard.json @@ -169,7 +169,6 @@ "val_steps": 28, "sleep": true }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x3663", diff --git a/keyboards/sharkoon/skiller_sgk50_s4/keyboard.json b/keyboards/sharkoon/skiller_sgk50_s4/keyboard.json index b7a628fd785..d6e42880acb 100644 --- a/keyboards/sharkoon/skiller_sgk50_s4/keyboard.json +++ b/keyboards/sharkoon/skiller_sgk50_s4/keyboard.json @@ -152,7 +152,6 @@ "sleep": true, "val_steps": 28 }, - "url": "", "usb": { "device_version": "1.1.0", "pid": "0x1020", diff --git a/keyboards/shorty/keyboard.json b/keyboards/shorty/keyboard.json index 158648badd4..8310891c84a 100644 --- a/keyboards/shorty/keyboard.json +++ b/keyboards/shorty/keyboard.json @@ -22,7 +22,6 @@ "rows": ["GP11", "GP10", "GP9", "GP29", "GP2"] }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x5400", diff --git a/keyboards/shostudio/arc/keyboard.json b/keyboards/shostudio/arc/keyboard.json index 33f9deb866a..c1dd12e3db3 100644 --- a/keyboards/shostudio/arc/keyboard.json +++ b/keyboards/shostudio/arc/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "ARC", "manufacturer": "Mechlovin Studio", - "url": "", "maintainer": "Shostudio", "usb": { "vid": "0x5050", diff --git a/keyboards/sidderskb/majbritt/rev1/keyboard.json b/keyboards/sidderskb/majbritt/rev1/keyboard.json index 717b4e85a0d..bb18c1bb001 100644 --- a/keyboards/sidderskb/majbritt/rev1/keyboard.json +++ b/keyboards/sidderskb/majbritt/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Majbritt Rev1", "manufacturer": "SiddersKb", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x534B", diff --git a/keyboards/sirius/uni660/rev1/keyboard.json b/keyboards/sirius/uni660/rev1/keyboard.json index 793edcc6858..c98c121bb8a 100644 --- a/keyboards/sirius/uni660/rev1/keyboard.json +++ b/keyboards/sirius/uni660/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Uni660", "manufacturer": "SiRius", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x5352", diff --git a/keyboards/sirius/uni660/rev2/ansi/keyboard.json b/keyboards/sirius/uni660/rev2/ansi/keyboard.json index 3db9fb966a7..df039af1dc5 100644 --- a/keyboards/sirius/uni660/rev2/ansi/keyboard.json +++ b/keyboards/sirius/uni660/rev2/ansi/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Uni660 V2 ANSI", "manufacturer": "SiRius", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x5352", diff --git a/keyboards/sirius/uni660/rev2/iso/keyboard.json b/keyboards/sirius/uni660/rev2/iso/keyboard.json index 0e5958c1171..062ca4f07e5 100644 --- a/keyboards/sirius/uni660/rev2/iso/keyboard.json +++ b/keyboards/sirius/uni660/rev2/iso/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Uni660 V2 ISO", "manufacturer": "SiRius", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x5352", diff --git a/keyboards/sixkeyboard/keyboard.json b/keyboards/sixkeyboard/keyboard.json index 1c103e03b3d..5c29dee16f3 100644 --- a/keyboards/sixkeyboard/keyboard.json +++ b/keyboards/sixkeyboard/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "SixKeyBoard", "manufacturer": "TechKeys", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x746B", diff --git a/keyboards/skeletn87/hotswap/keyboard.json b/keyboards/skeletn87/hotswap/keyboard.json index b0af2306684..f90716fcbf2 100644 --- a/keyboards/skeletn87/hotswap/keyboard.json +++ b/keyboards/skeletn87/hotswap/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Skeletn87 Hotswap", "manufacturer": "BredWorks", - "url": "", "maintainer": "kb-elmo", "usb": { "vid": "0xF984", diff --git a/keyboards/skeletn87/soldered/keyboard.json b/keyboards/skeletn87/soldered/keyboard.json index 292914d8b41..a50eeb8b68f 100644 --- a/keyboards/skeletn87/soldered/keyboard.json +++ b/keyboards/skeletn87/soldered/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Skeletn87", "manufacturer": "BredWorks", - "url": "", "maintainer": "kb-elmo", "usb": { "vid": "0xF984", diff --git a/keyboards/skippys_custom_pcs/roopad/keyboard.json b/keyboards/skippys_custom_pcs/roopad/keyboard.json index 0da722ff120..92cb0d19790 100644 --- a/keyboards/skippys_custom_pcs/roopad/keyboard.json +++ b/keyboards/skippys_custom_pcs/roopad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "RooPad", "manufacturer": "ToastyStoemp", - "url": "", "maintainer": "ToastyStoemp", "usb": { "vid": "0x36B6", diff --git a/keyboards/smallkeyboard/keyboard.json b/keyboards/smallkeyboard/keyboard.json index 9963d83a47f..dfbdee1cdd2 100644 --- a/keyboards/smallkeyboard/keyboard.json +++ b/keyboards/smallkeyboard/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "smallkeyboard", "manufacturer": "zhouqiong19840119", - "url": "", "maintainer": "zhouqiong19840119", "usb": { "vid": "0x7A71", diff --git a/keyboards/smithrune/iron160/iron160_h/keyboard.json b/keyboards/smithrune/iron160/iron160_h/keyboard.json index c1dd4c9f540..c0c0eb12211 100644 --- a/keyboards/smithrune/iron160/iron160_h/keyboard.json +++ b/keyboards/smithrune/iron160/iron160_h/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "I160-H", "manufacturer": "SmithRune", - "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x8384", diff --git a/keyboards/smithrune/iron160/iron160_s/keyboard.json b/keyboards/smithrune/iron160/iron160_s/keyboard.json index fc14114826a..d247ce32536 100644 --- a/keyboards/smithrune/iron160/iron160_s/keyboard.json +++ b/keyboards/smithrune/iron160/iron160_s/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "I160-S", "manufacturer": "SmithRune", - "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x8384", diff --git a/keyboards/smithrune/iron165r2/info.json b/keyboards/smithrune/iron165r2/info.json index cff9a97cb79..c0fb3634c38 100644 --- a/keyboards/smithrune/iron165r2/info.json +++ b/keyboards/smithrune/iron165r2/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Iron165R2", "manufacturer": "SmithRune", - "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x8384", diff --git a/keyboards/smithrune/iron180/keyboard.json b/keyboards/smithrune/iron180/keyboard.json index b0c6e1a8ffb..23ffa323afd 100644 --- a/keyboards/smithrune/iron180/keyboard.json +++ b/keyboards/smithrune/iron180/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Iron180 V1", "manufacturer": "SmithRune", - "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x8384", diff --git a/keyboards/smithrune/iron180v2/v2h/keyboard.json b/keyboards/smithrune/iron180v2/v2h/keyboard.json index 1580a12b8c9..cf2d7163eda 100644 --- a/keyboards/smithrune/iron180v2/v2h/keyboard.json +++ b/keyboards/smithrune/iron180v2/v2h/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Iron180H v2", "manufacturer": "SmithRune", - "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x8384", diff --git a/keyboards/smithrune/iron180v2/v2s/keyboard.json b/keyboards/smithrune/iron180v2/v2s/keyboard.json index f8f27f4cc1f..2e21e17f28b 100644 --- a/keyboards/smithrune/iron180v2/v2s/keyboard.json +++ b/keyboards/smithrune/iron180v2/v2s/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Iron180 Sv2", "manufacturer": "SmithRune", - "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x8384", diff --git a/keyboards/smithrune/magnus/m75h/keyboard.json b/keyboards/smithrune/magnus/m75h/keyboard.json index 325db7d1da1..c8b2e47069f 100644 --- a/keyboards/smithrune/magnus/m75h/keyboard.json +++ b/keyboards/smithrune/magnus/m75h/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Magnus M75H", "manufacturer": "SmithRune", - "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x8384", diff --git a/keyboards/smithrune/magnus/m75s/keyboard.json b/keyboards/smithrune/magnus/m75s/keyboard.json index 352b529bb06..a678c7eeaa8 100644 --- a/keyboards/smithrune/magnus/m75s/keyboard.json +++ b/keyboards/smithrune/magnus/m75s/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Magnus M75S", "manufacturer": "SmithRune", - "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x8384", diff --git a/keyboards/smk60/keyboard.json b/keyboards/smk60/keyboard.json index 67265a667c2..13c81a21de5 100644 --- a/keyboards/smk60/keyboard.json +++ b/keyboards/smk60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "SMK60", "manufacturer": "astro", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xDEAD", diff --git a/keyboards/snampad/keyboard.json b/keyboards/snampad/keyboard.json index e2a269d5c71..b835f0bf350 100644 --- a/keyboards/snampad/keyboard.json +++ b/keyboards/snampad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "snampad", "manufacturer": "Snamellit", - "url": "", "maintainer": "ptillemans", "usb": { "vid": "0xFEED", diff --git a/keyboards/snes_macropad/keyboard.json b/keyboards/snes_macropad/keyboard.json index 91ee3323573..c9d5e2aa59b 100644 --- a/keyboards/snes_macropad/keyboard.json +++ b/keyboards/snes_macropad/keyboard.json @@ -19,7 +19,6 @@ "driver": "vendor" }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/soda/cherish/keyboard.json b/keyboards/soda/cherish/keyboard.json index b256e939651..9235fe3b3e3 100644 --- a/keyboards/soda/cherish/keyboard.json +++ b/keyboards/soda/cherish/keyboard.json @@ -1,6 +1,5 @@ { "keyboard_name": "Cherish-75", - "url": "", "maintainer": "gezhaoyou", "manufacturer": "gezhaoyou", "usb": { diff --git a/keyboards/soy20/keyboard.json b/keyboards/soy20/keyboard.json index 77524eff6ca..3a61743326c 100644 --- a/keyboards/soy20/keyboard.json +++ b/keyboards/soy20/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Soy20", "manufacturer": "drewkeys", - "url": "", "maintainer": "twholt", "usb": { "vid": "0x4452", diff --git a/keyboards/spaceholdings/nebula12/keyboard.json b/keyboards/spaceholdings/nebula12/keyboard.json index 2b170e8e618..7157cfc05bf 100755 --- a/keyboards/spaceholdings/nebula12/keyboard.json +++ b/keyboards/spaceholdings/nebula12/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "NEBULA12", "manufacturer": "Yiancar-Designs", - "url": "", "maintainer": "yiancar", "usb": { "vid": "0x8968", diff --git a/keyboards/spaceholdings/nebula12b/keyboard.json b/keyboards/spaceholdings/nebula12b/keyboard.json index 961e971885a..38320bd1ea6 100755 --- a/keyboards/spaceholdings/nebula12b/keyboard.json +++ b/keyboards/spaceholdings/nebula12b/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "NEBULA12B", "manufacturer": "Yiancar-Designs", - "url": "", "maintainer": "yiancar", "usb": { "vid": "0x8968", diff --git a/keyboards/spaceholdings/nebula68/keyboard.json b/keyboards/spaceholdings/nebula68/keyboard.json index 47cab7a5b02..8eb6d67a03f 100755 --- a/keyboards/spaceholdings/nebula68/keyboard.json +++ b/keyboards/spaceholdings/nebula68/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "NEBULA68", "manufacturer": "Yiancar-Designs", - "url": "", "maintainer": "yiancar", "usb": { "vid": "0x8968", diff --git a/keyboards/spaceholdings/nebula68b/info.json b/keyboards/spaceholdings/nebula68b/info.json index 3a7f6f9b25d..b41a21f9714 100644 --- a/keyboards/spaceholdings/nebula68b/info.json +++ b/keyboards/spaceholdings/nebula68b/info.json @@ -1,6 +1,5 @@ { "manufacturer": "Yiancar-Designs", - "url": "", "maintainer": "yiancar", "usb": { "vid": "0x8968", diff --git a/keyboards/spaceman/2_milk/keyboard.json b/keyboards/spaceman/2_milk/keyboard.json index 4fdef6bacec..aed735c58fa 100644 --- a/keyboards/spaceman/2_milk/keyboard.json +++ b/keyboards/spaceman/2_milk/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "2% Milk", "manufacturer": "Spaceman", - "url": "", "maintainer": "Spaceman", "usb": { "vid": "0x5342", diff --git a/keyboards/spaceman/pancake/rev1/info.json b/keyboards/spaceman/pancake/rev1/info.json index 0814e11244c..9d6f30ab51c 100644 --- a/keyboards/spaceman/pancake/rev1/info.json +++ b/keyboards/spaceman/pancake/rev1/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Pancake", "manufacturer": "Spaceman", - "url": "", "maintainer": "Spaceman", "usb": { "vid": "0x5342", diff --git a/keyboards/spaceman/pancake/rev2/keyboard.json b/keyboards/spaceman/pancake/rev2/keyboard.json index 88bf2a0b9f3..2e7dd8f6b49 100644 --- a/keyboards/spaceman/pancake/rev2/keyboard.json +++ b/keyboards/spaceman/pancake/rev2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Pancake 2", "manufacturer": "Spaceman", - "url": "", "maintainer": "Spaceman", "usb": { "vid": "0x5342", diff --git a/keyboards/spaceman/yun65/keyboard.json b/keyboards/spaceman/yun65/keyboard.json index 017de06abb4..1f57af8e0d8 100644 --- a/keyboards/spaceman/yun65/keyboard.json +++ b/keyboards/spaceman/yun65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Yun 65", "manufacturer": "Spaceman", - "url": "", "maintainer": "Spaceman", "usb": { "vid": "0x5342", diff --git a/keyboards/specskeys/keyboard.json b/keyboards/specskeys/keyboard.json index 104b1ea13d9..73d34e4a39d 100644 --- a/keyboards/specskeys/keyboard.json +++ b/keyboards/specskeys/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Specskeys", "manufacturer": "Specs32", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xCAFE", diff --git a/keyboards/spiderisland/split78/keyboard.json b/keyboards/spiderisland/split78/keyboard.json index cd49755b0f4..4a818470f8e 100644 --- a/keyboards/spiderisland/split78/keyboard.json +++ b/keyboards/spiderisland/split78/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Split 78-key", "manufacturer": "SpiderIsland", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/split67/keyboard.json b/keyboards/split67/keyboard.json index 46b571420a0..6462149d3b3 100644 --- a/keyboards/split67/keyboard.json +++ b/keyboards/split67/keyboard.json @@ -37,7 +37,6 @@ "pin": "D0" } }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0xBBBC", diff --git a/keyboards/splitish/keyboard.json b/keyboards/splitish/keyboard.json index 3df635e6bc2..9b9701a853f 100644 --- a/keyboards/splitish/keyboard.json +++ b/keyboards/splitish/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Splitish", "manufacturer": "Reid Schneyer", - "url": "", "maintainer": "RSchneyer", "usb": { "vid": "0xFEED", diff --git a/keyboards/stello65/beta/keyboard.json b/keyboards/stello65/beta/keyboard.json index 5dbc3b1338d..d6bf574b9ac 100644 --- a/keyboards/stello65/beta/keyboard.json +++ b/keyboards/stello65/beta/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Stello65", "manufacturer": "@wekey", - "url": "", "maintainer": "@wekey", "usb": { "vid": "0x5559", diff --git a/keyboards/stello65/hs_rev1/keyboard.json b/keyboards/stello65/hs_rev1/keyboard.json index 783b73c599e..bf502de5638 100644 --- a/keyboards/stello65/hs_rev1/keyboard.json +++ b/keyboards/stello65/hs_rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Stello65", "manufacturer": "@wekey", - "url": "", "maintainer": "@wekey", "usb": { "vid": "0x5559", diff --git a/keyboards/stello65/sl_rev1/keyboard.json b/keyboards/stello65/sl_rev1/keyboard.json index 8be7b07d0a9..e8ac4ea7de6 100644 --- a/keyboards/stello65/sl_rev1/keyboard.json +++ b/keyboards/stello65/sl_rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Stello65", "manufacturer": "@wekey", - "url": "", "maintainer": "@wekey", "usb": { "vid": "0x5559", diff --git a/keyboards/stratos/keyboard.json b/keyboards/stratos/keyboard.json index 842c9b87a3d..20a057ba882 100644 --- a/keyboards/stratos/keyboard.json +++ b/keyboards/stratos/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "stratos", "manufacturer": "eggyolk", - "url": "", "maintainer": "kb-elmo", "usb": { "vid": "0xD5D0", diff --git a/keyboards/studiokestra/frl84/keyboard.json b/keyboards/studiokestra/frl84/keyboard.json index d131b09eac7..3bb51c7606f 100644 --- a/keyboards/studiokestra/frl84/keyboard.json +++ b/keyboards/studiokestra/frl84/keyboard.json @@ -45,7 +45,6 @@ } }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0F84", diff --git a/keyboards/studiokestra/galatea/rev1/keyboard.json b/keyboards/studiokestra/galatea/rev1/keyboard.json index ff2adbce4d1..320b381e827 100644 --- a/keyboards/studiokestra/galatea/rev1/keyboard.json +++ b/keyboards/studiokestra/galatea/rev1/keyboard.json @@ -23,7 +23,6 @@ "rows": ["D1", "D0", "B0", "B7", "E6", "B3", "B6", "C6", "D6", "D7", "B4", "D3"] }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x8801", diff --git a/keyboards/studiokestra/galatea/rev2/keyboard.json b/keyboards/studiokestra/galatea/rev2/keyboard.json index 19bb235e33a..6d59e14e648 100644 --- a/keyboards/studiokestra/galatea/rev2/keyboard.json +++ b/keyboards/studiokestra/galatea/rev2/keyboard.json @@ -24,7 +24,6 @@ "rows": ["D1", "D0", "B0", "B7", "E6", "B3", "B6", "C6", "D6", "D7", "B4", "D3"] }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x8802", diff --git a/keyboards/studiokestra/galatea/rev3/keyboard.json b/keyboards/studiokestra/galatea/rev3/keyboard.json index c077351bb92..1b948f426dc 100644 --- a/keyboards/studiokestra/galatea/rev3/keyboard.json +++ b/keyboards/studiokestra/galatea/rev3/keyboard.json @@ -24,7 +24,6 @@ "rows": ["GP3", "GP4", "GP1", "GP2", "GP5", "GP29", "GP20", "GP19", "GP17", "GP16", "GP13", "GP12"] }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x8803", diff --git a/keyboards/suavity/ehan/keyboard.json b/keyboards/suavity/ehan/keyboard.json index 5a6675bfc39..acc470c8b6d 100755 --- a/keyboards/suavity/ehan/keyboard.json +++ b/keyboards/suavity/ehan/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "ehan", "manufacturer": "Suavity Designs", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x5344", diff --git a/keyboards/subatomic/keyboard.json b/keyboards/subatomic/keyboard.json index 0816130bbb8..20313a13180 100644 --- a/keyboards/subatomic/keyboard.json +++ b/keyboards/subatomic/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Subatomic", "manufacturer": "OLKB", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/superuser/ext/keyboard.json b/keyboards/superuser/ext/keyboard.json index c08213a13f1..5a0ac65d644 100644 --- a/keyboards/superuser/ext/keyboard.json +++ b/keyboards/superuser/ext/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "ext", "manufacturer": "superuser", - "url": "", "maintainer": "kaylanm", "usb": { "vid": "0x5355", diff --git a/keyboards/superuser/frl/keyboard.json b/keyboards/superuser/frl/keyboard.json index 4ede02d20de..d540622b69b 100644 --- a/keyboards/superuser/frl/keyboard.json +++ b/keyboards/superuser/frl/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "frl", "manufacturer": "superuser", - "url": "", "maintainer": "superuser", "usb": { "vid": "0x5355", diff --git a/keyboards/superuser/tkl/keyboard.json b/keyboards/superuser/tkl/keyboard.json index 79df5bac092..ecf8dc713be 100644 --- a/keyboards/superuser/tkl/keyboard.json +++ b/keyboards/superuser/tkl/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "tkl", "manufacturer": "superuser", - "url": "", "maintainer": "kaylanm", "usb": { "vid": "0x5355", diff --git a/keyboards/swiss/keyboard.json b/keyboards/swiss/keyboard.json index 039153cd7f5..74f9ff23e30 100644 --- a/keyboards/swiss/keyboard.json +++ b/keyboards/swiss/keyboard.json @@ -17,7 +17,6 @@ "rows": ["D6", "D4", "D5", "B2", "D7"] }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0420", diff --git a/keyboards/switchplate/southpaw_fullsize/keyboard.json b/keyboards/switchplate/southpaw_fullsize/keyboard.json index 84942ccfa46..9f61bc9abcf 100644 --- a/keyboards/switchplate/southpaw_fullsize/keyboard.json +++ b/keyboards/switchplate/southpaw_fullsize/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Southpaw Fullsize", "manufacturer": "Switchplate Peripherals", - "url": "", "maintainer": "ai03", "usb": { "vid": "0xA103", diff --git a/keyboards/switchplate/switchplate910/keyboard.json b/keyboards/switchplate/switchplate910/keyboard.json index 47353fe81ea..43150834f5d 100644 --- a/keyboards/switchplate/switchplate910/keyboard.json +++ b/keyboards/switchplate/switchplate910/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "910", "manufacturer": "Switchplate Peripherals", - "url": "", "maintainer": "MxBluE", "usb": { "vid": "0x54F3", diff --git a/keyboards/sx60/keyboard.json b/keyboards/sx60/keyboard.json index ba5b439cec2..9d3663fecfb 100644 --- a/keyboards/sx60/keyboard.json +++ b/keyboards/sx60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "SX60", "manufacturer": "Quantrik", - "url": "", "maintainer": "https://github.com/amnobis", "usb": { "vid": "0x5154", diff --git a/keyboards/synthandkeys/bento_box/keyboard.json b/keyboards/synthandkeys/bento_box/keyboard.json index 3cdc7a58708..3fb784da75f 100644 --- a/keyboards/synthandkeys/bento_box/keyboard.json +++ b/keyboards/synthandkeys/bento_box/keyboard.json @@ -31,7 +31,6 @@ ] }, "processor": "STM32F072", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/synthandkeys/the_debit_card/keyboard.json b/keyboards/synthandkeys/the_debit_card/keyboard.json index a2d0a6964f1..1d3798291b3 100644 --- a/keyboards/synthandkeys/the_debit_card/keyboard.json +++ b/keyboards/synthandkeys/the_debit_card/keyboard.json @@ -19,7 +19,6 @@ ] }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/tada68/keyboard.json b/keyboards/tada68/keyboard.json index 641def01a31..1daf936b53e 100644 --- a/keyboards/tada68/keyboard.json +++ b/keyboards/tada68/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "TADA68", "manufacturer": "TADA", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x5441", diff --git a/keyboards/takashicompany/baumkuchen/keyboard.json b/keyboards/takashicompany/baumkuchen/keyboard.json index 2c8b77851bf..2cb3566703b 100644 --- a/keyboards/takashicompany/baumkuchen/keyboard.json +++ b/keyboards/takashicompany/baumkuchen/keyboard.json @@ -45,7 +45,6 @@ "ws2812": { "pin": "D3" }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0045", diff --git a/keyboards/takashicompany/center_enter/keyboard.json b/keyboards/takashicompany/center_enter/keyboard.json index b8188bd7182..7d660eaca86 100644 --- a/keyboards/takashicompany/center_enter/keyboard.json +++ b/keyboards/takashicompany/center_enter/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Center x Enter", "manufacturer": "takashicompany", - "url": "", "maintainer": "takashicompany", "usb": { "vid": "0x7463", diff --git a/keyboards/takashicompany/ejectix/keyboard.json b/keyboards/takashicompany/ejectix/keyboard.json index 560c2533263..4767be03a6f 100644 --- a/keyboards/takashicompany/ejectix/keyboard.json +++ b/keyboards/takashicompany/ejectix/keyboard.json @@ -36,7 +36,6 @@ "led_count": 11, "sleep": true }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0049", diff --git a/keyboards/takashicompany/ergomirage/keyboard.json b/keyboards/takashicompany/ergomirage/keyboard.json index 1e34505b01e..9bcff45e764 100644 --- a/keyboards/takashicompany/ergomirage/keyboard.json +++ b/keyboards/takashicompany/ergomirage/keyboard.json @@ -16,7 +16,6 @@ "cols": ["D4", "C6", "D7", "E6", "B4", "B5"], "rows": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6"] }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0044", diff --git a/keyboards/takashicompany/jourkey/keyboard.json b/keyboards/takashicompany/jourkey/keyboard.json index 01847cfa53c..4201969219a 100644 --- a/keyboards/takashicompany/jourkey/keyboard.json +++ b/keyboards/takashicompany/jourkey/keyboard.json @@ -23,7 +23,6 @@ ["D4", "C6", "D7", "E6", "B4", "F5", "F6", "F7", "B5", "B1", "B3", "B2", "B6"] ] }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0062", diff --git a/keyboards/takashicompany/klec_01/keyboard.json b/keyboards/takashicompany/klec_01/keyboard.json index 36baa8bf60f..b04f43ed1f0 100644 --- a/keyboards/takashicompany/klec_01/keyboard.json +++ b/keyboards/takashicompany/klec_01/keyboard.json @@ -16,7 +16,6 @@ "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6"], "rows": ["D4", "C6", "D7", "E6", "B4", "B5"] }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x1001", diff --git a/keyboards/takashicompany/klec_02/keyboard.json b/keyboards/takashicompany/klec_02/keyboard.json index 045c4ef315c..22cea40ec79 100644 --- a/keyboards/takashicompany/klec_02/keyboard.json +++ b/keyboards/takashicompany/klec_02/keyboard.json @@ -22,7 +22,6 @@ "pin": "D2" } }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x1002", diff --git a/keyboards/takashicompany/minidivide/keyboard.json b/keyboards/takashicompany/minidivide/keyboard.json index d258baa6940..5ac4dd7e9bb 100644 --- a/keyboards/takashicompany/minidivide/keyboard.json +++ b/keyboards/takashicompany/minidivide/keyboard.json @@ -50,7 +50,6 @@ "pin": "D2" } }, - "url": "", "usb": { "device_version": "0.0.1", "pid": "0x0037", diff --git a/keyboards/takashicompany/minidivide_max/keyboard.json b/keyboards/takashicompany/minidivide_max/keyboard.json index 54f9dbaf780..73f941c896c 100644 --- a/keyboards/takashicompany/minidivide_max/keyboard.json +++ b/keyboards/takashicompany/minidivide_max/keyboard.json @@ -49,7 +49,6 @@ "pin": "D2" } }, - "url": "", "usb": { "device_version": "0.0.1", "pid": "0x0054", diff --git a/keyboards/takashicompany/palmslave/keyboard.json b/keyboards/takashicompany/palmslave/keyboard.json index 03d3f3e8499..4b452d678a3 100644 --- a/keyboards/takashicompany/palmslave/keyboard.json +++ b/keyboards/takashicompany/palmslave/keyboard.json @@ -31,7 +31,6 @@ "pin": "D2" } }, - "url": "", "usb": { "device_version": "0.0.1", "pid": "0x0063", diff --git a/keyboards/takashicompany/tightwriter/keyboard.json b/keyboards/takashicompany/tightwriter/keyboard.json index 201e3f6ed53..c3684d9cf63 100644 --- a/keyboards/takashicompany/tightwriter/keyboard.json +++ b/keyboards/takashicompany/tightwriter/keyboard.json @@ -17,7 +17,6 @@ "cols": ["D4", "C6", "D7", "E6", "B4", "B5"], "rows": ["F6", "F7", "B1", "B3", "B2", "B6"] }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0025", diff --git a/keyboards/takashiski/otaku_split/rev0/keyboard.json b/keyboards/takashiski/otaku_split/rev0/keyboard.json index 193254aa1a6..911d883eb3d 100644 --- a/keyboards/takashiski/otaku_split/rev0/keyboard.json +++ b/keyboards/takashiski/otaku_split/rev0/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "otaku split rev.0", "manufacturer": "takashiski", - "url": "", "maintainer": "takashiski", "usb": { "vid": "0xFEED", diff --git a/keyboards/taleguers/taleguers75/keyboard.json b/keyboards/taleguers/taleguers75/keyboard.json index 8c3a1565e21..0798ea96374 100644 --- a/keyboards/taleguers/taleguers75/keyboard.json +++ b/keyboards/taleguers/taleguers75/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Taleguers75", "manufacturer": "Taleguers", - "url": "", "maintainer": "borlopjim", "usb": { "vid": "0x8476", diff --git a/keyboards/tanuki/keyboard.json b/keyboards/tanuki/keyboard.json index 0c4045e320c..2bc01addb61 100644 --- a/keyboards/tanuki/keyboard.json +++ b/keyboards/tanuki/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Tanuki", "manufacturer": "Seth", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/technika/keyboard.json b/keyboards/technika/keyboard.json index a6f3c2bd01a..fc894fefb5d 100644 --- a/keyboards/technika/keyboard.json +++ b/keyboards/technika/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Technika", "manufacturer": "TealTechnik", - "url": "", "maintainer": "Gondolindrim", "usb": { "vid": "0x8484", diff --git a/keyboards/telophase/keyboard.json b/keyboards/telophase/keyboard.json index 8efbae55195..d3a86ebcbf5 100644 --- a/keyboards/telophase/keyboard.json +++ b/keyboards/telophase/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Telophase", "manufacturer": "Unknown", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/terrazzo/keyboard.json b/keyboards/terrazzo/keyboard.json index fb8bc6b4839..d2ea20b51a4 100644 --- a/keyboards/terrazzo/keyboard.json +++ b/keyboards/terrazzo/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Terrazzo", "manufacturer": "MsMustard", - "url": "", "maintainer": "MsMustard", "usb": { "vid": "0x4D4D", diff --git a/keyboards/tetris/keyboard.json b/keyboards/tetris/keyboard.json index 57cfd42c70d..3702172518a 100644 --- a/keyboards/tetris/keyboard.json +++ b/keyboards/tetris/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Tetris", "manufacturer": "Fengz", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/tg4x/keyboard.json b/keyboards/tg4x/keyboard.json index ae4cd53a289..31c16ee08d7 100644 --- a/keyboards/tg4x/keyboard.json +++ b/keyboards/tg4x/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "TG4x", "manufacturer": "MythosMann", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x4D4D", diff --git a/keyboards/tg67/keyboard.json b/keyboards/tg67/keyboard.json index 8c860e59961..308f16cc99d 100644 --- a/keyboards/tg67/keyboard.json +++ b/keyboards/tg67/keyboard.json @@ -33,7 +33,6 @@ "led_count": 69, "saturation_steps": 8 }, - "url": "", "usb": { "device_version": "0.0.1", "pid": "0x6667", diff --git a/keyboards/tgr/910/keyboard.json b/keyboards/tgr/910/keyboard.json index 072eb07ea1a..7277c89b38f 100644 --- a/keyboards/tgr/910/keyboard.json +++ b/keyboards/tgr/910/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "TGR-910", "manufacturer": "Quadcube", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x5447", diff --git a/keyboards/tgr/910ce/keyboard.json b/keyboards/tgr/910ce/keyboard.json index 4d70a5b5db7..088eed218bd 100644 --- a/keyboards/tgr/910ce/keyboard.json +++ b/keyboards/tgr/910ce/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "910CE", "manufacturer": "TGR", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x5447", diff --git a/keyboards/tgr/alice/keyboard.json b/keyboards/tgr/alice/keyboard.json index d78185106bf..83902990d1a 100644 --- a/keyboards/tgr/alice/keyboard.json +++ b/keyboards/tgr/alice/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Alice", "manufacturer": "TGR", - "url": "", "maintainer": "Felipe Coury", "usb": { "vid": "0x20A0", diff --git a/keyboards/tgr/jane/v2/keyboard.json b/keyboards/tgr/jane/v2/keyboard.json index dc36757eb5b..efa3a88b3f4 100644 --- a/keyboards/tgr/jane/v2/keyboard.json +++ b/keyboards/tgr/jane/v2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Jane v2", "manufacturer": "TGR", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x5447", diff --git a/keyboards/tgr/jane/v2ce/keyboard.json b/keyboards/tgr/jane/v2ce/keyboard.json index 107e2dee9e0..62f6a378572 100644 --- a/keyboards/tgr/jane/v2ce/keyboard.json +++ b/keyboards/tgr/jane/v2ce/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Jane v2 CE", "manufacturer": "TGR", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x5447", diff --git a/keyboards/tgr/tris/keyboard.json b/keyboards/tgr/tris/keyboard.json index 7776c7b2c9c..5ce2fbe568e 100644 --- a/keyboards/tgr/tris/keyboard.json +++ b/keyboards/tgr/tris/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Tris", "manufacturer": "TGR", - "url": "", "maintainer": "halfenergized", "usb": { "vid": "0x5447", diff --git a/keyboards/the_royal/liminal/keyboard.json b/keyboards/the_royal/liminal/keyboard.json index 0a5bd361e7c..66a61eceea4 100644 --- a/keyboards/the_royal/liminal/keyboard.json +++ b/keyboards/the_royal/liminal/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Liminal", "manufacturer": "TheRoyalSweatshirt", - "url": "", "maintainer": "TheRoyalSweatshirt", "usb": { "vid": "0x4B4B", diff --git a/keyboards/thevankeyboards/bananasplit/keyboard.json b/keyboards/thevankeyboards/bananasplit/keyboard.json index 1fb7fc50544..b8845f165c1 100644 --- a/keyboards/thevankeyboards/bananasplit/keyboard.json +++ b/keyboards/thevankeyboards/bananasplit/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BananaSplit 60", "manufacturer": "TheVan Keyboards", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEAE", diff --git a/keyboards/thevankeyboards/caravan/keyboard.json b/keyboards/thevankeyboards/caravan/keyboard.json index a5c00abf4e9..5dce31e1ea2 100644 --- a/keyboards/thevankeyboards/caravan/keyboard.json +++ b/keyboards/thevankeyboards/caravan/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Caravan", "manufacturer": "TheVan Keyboards", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEAE", diff --git a/keyboards/thevankeyboards/jetvan/keyboard.json b/keyboards/thevankeyboards/jetvan/keyboard.json index a5a9b96ac8b..e8a8605bf6d 100644 --- a/keyboards/thevankeyboards/jetvan/keyboard.json +++ b/keyboards/thevankeyboards/jetvan/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "JetVan", "manufacturer": "evangs", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEAE", diff --git a/keyboards/thevankeyboards/minivan/keyboard.json b/keyboards/thevankeyboards/minivan/keyboard.json index 53b3e0d89c4..554cbe01547 100644 --- a/keyboards/thevankeyboards/minivan/keyboard.json +++ b/keyboards/thevankeyboards/minivan/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Minivan", "manufacturer": "Evan Sailer", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEAE", diff --git a/keyboards/thevankeyboards/roadkit/keyboard.json b/keyboards/thevankeyboards/roadkit/keyboard.json index e3c282bffe7..a5ad593cc2b 100644 --- a/keyboards/thevankeyboards/roadkit/keyboard.json +++ b/keyboards/thevankeyboards/roadkit/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Roadkit Micro", "manufacturer": "TheVan Keyboards", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEAE", diff --git a/keyboards/tkc/california/keyboard.json b/keyboards/tkc/california/keyboard.json index 465544bc03e..5052b48f92c 100644 --- a/keyboards/tkc/california/keyboard.json +++ b/keyboards/tkc/california/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "California", "manufacturer": "TKC", - "url": "", "maintainer": "TerryMathews", "usb": { "vid": "0x544B", diff --git a/keyboards/tkc/candybar/lefty/keyboard.json b/keyboards/tkc/candybar/lefty/keyboard.json index fe8814e54bb..988338a0950 100644 --- a/keyboards/tkc/candybar/lefty/keyboard.json +++ b/keyboards/tkc/candybar/lefty/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Candybar", "manufacturer": "The Key Company", - "url": "", "maintainer": "terrymathews", "usb": { "vid": "0x544B", diff --git a/keyboards/tkc/candybar/lefty_r3/keyboard.json b/keyboards/tkc/candybar/lefty_r3/keyboard.json index b09412ffc9d..22ddc2f1256 100644 --- a/keyboards/tkc/candybar/lefty_r3/keyboard.json +++ b/keyboards/tkc/candybar/lefty_r3/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Candybar", "manufacturer": "The Key Company", - "url": "", "maintainer": "terrymathews", "usb": { "vid": "0x544B", diff --git a/keyboards/tkc/candybar/righty/keyboard.json b/keyboards/tkc/candybar/righty/keyboard.json index f529ac936f2..1f10532a784 100644 --- a/keyboards/tkc/candybar/righty/keyboard.json +++ b/keyboards/tkc/candybar/righty/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Candybar", "manufacturer": "The Key Company", - "url": "", "maintainer": "terrymathews", "usb": { "vid": "0x544B", diff --git a/keyboards/tkc/candybar/righty_r3/keyboard.json b/keyboards/tkc/candybar/righty_r3/keyboard.json index 80646725839..81da5f1e20a 100644 --- a/keyboards/tkc/candybar/righty_r3/keyboard.json +++ b/keyboards/tkc/candybar/righty_r3/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Candybar", "manufacturer": "The Key Company", - "url": "", "maintainer": "terrymathews", "usb": { "vid": "0x544B", diff --git a/keyboards/tkc/godspeed75/keyboard.json b/keyboards/tkc/godspeed75/keyboard.json index 48cf06f3ca5..b078a09efd1 100644 --- a/keyboards/tkc/godspeed75/keyboard.json +++ b/keyboards/tkc/godspeed75/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "GodSpeed75", "manufacturer": "The Key Company", - "url": "", "maintainer": "terrymathews", "usb": { "vid": "0x544B", diff --git a/keyboards/tkc/m0lly/keyboard.json b/keyboards/tkc/m0lly/keyboard.json index ae76f1e6d9b..fda904c4f4f 100644 --- a/keyboards/tkc/m0lly/keyboard.json +++ b/keyboards/tkc/m0lly/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "M0lly", "manufacturer": "The Key Company", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x544B", diff --git a/keyboards/tkc/osav2/keyboard.json b/keyboards/tkc/osav2/keyboard.json index ef4c7897978..8e9c685b495 100644 --- a/keyboards/tkc/osav2/keyboard.json +++ b/keyboards/tkc/osav2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "OSA v2", "manufacturer": "The Key Company", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x544B", diff --git a/keyboards/tkc/portico/keyboard.json b/keyboards/tkc/portico/keyboard.json index 29b7d8246b2..49efe0a9429 100644 --- a/keyboards/tkc/portico/keyboard.json +++ b/keyboards/tkc/portico/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Portico", "manufacturer": "TKC", - "url": "", "maintainer": "TerryMathews", "usb": { "vid": "0x544B", diff --git a/keyboards/tkc/portico68v2/keyboard.json b/keyboards/tkc/portico68v2/keyboard.json index 914dee8760a..5b9e5e3324a 100644 --- a/keyboards/tkc/portico68v2/keyboard.json +++ b/keyboards/tkc/portico68v2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Portico68 v2", "manufacturer": "TKC", - "url": "", "maintainer": "TerryMathews", "usb": { "vid": "0x544B", diff --git a/keyboards/tkc/portico75/keyboard.json b/keyboards/tkc/portico75/keyboard.json index 4228f201451..1e84f25ebe2 100644 --- a/keyboards/tkc/portico75/keyboard.json +++ b/keyboards/tkc/portico75/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Portico75", "manufacturer": "TKC", - "url": "", "maintainer": "TerryMathews", "usb": { "vid": "0x544B", diff --git a/keyboards/tkc/tkc1800/keyboard.json b/keyboards/tkc/tkc1800/keyboard.json index 2965c61d83a..1b98e8e0909 100644 --- a/keyboards/tkc/tkc1800/keyboard.json +++ b/keyboards/tkc/tkc1800/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "TKC1800", "manufacturer": "The Key Company", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x544B", diff --git a/keyboards/tkc/tkl_ab87/keyboard.json b/keyboards/tkc/tkl_ab87/keyboard.json index c3d14bd8cf0..c8f96318274 100644 --- a/keyboards/tkc/tkl_ab87/keyboard.json +++ b/keyboards/tkc/tkl_ab87/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "TKL A/B87", "manufacturer": "TKC", - "url": "", "maintainer": "TerryMathews", "usb": { "vid": "0x544B", diff --git a/keyboards/tmo50/keyboard.json b/keyboards/tmo50/keyboard.json index dbb79802cac..5398595d566 100644 --- a/keyboards/tmo50/keyboard.json +++ b/keyboards/tmo50/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "TMO50", "manufacturer": "funderburker", - "url": "", "maintainer": "funderburker", "usb": { "vid": "0xFBFB", diff --git a/keyboards/toad/keyboard.json b/keyboards/toad/keyboard.json index 073fa6411ce..52b7c263871 100644 --- a/keyboards/toad/keyboard.json +++ b/keyboards/toad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Toad", "manufacturer": "farmakon", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/toffee_studio/blueberry/keyboard.json b/keyboards/toffee_studio/blueberry/keyboard.json index 99a87b0a959..1b2308c3da6 100644 --- a/keyboards/toffee_studio/blueberry/keyboard.json +++ b/keyboards/toffee_studio/blueberry/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Blueberry", "manufacturer": "Toffee Studio", - "url": "", "maintainer": "Toffee Studio", "usb": { "vid": "0x1067", diff --git a/keyboards/tominabox1/bigboy/keyboard.json b/keyboards/tominabox1/bigboy/keyboard.json index a25189f35eb..4862e216dfa 100644 --- a/keyboards/tominabox1/bigboy/keyboard.json +++ b/keyboards/tominabox1/bigboy/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BigBoy", "manufacturer": "tominabox1", - "url": "", "maintainer": "tominabox1", "usb": { "vid": "0x7431", diff --git a/keyboards/tominabox1/le_chiffre/info.json b/keyboards/tominabox1/le_chiffre/info.json index cb4097d61d4..c521928adfd 100644 --- a/keyboards/tominabox1/le_chiffre/info.json +++ b/keyboards/tominabox1/le_chiffre/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Le Chiffre", "manufacturer": "tominabox1", - "url": "", "maintainer": "tominabox1", "features": { "bootmagic": true, diff --git a/keyboards/tominabox1/littlefoot_lx/rev1/keyboard.json b/keyboards/tominabox1/littlefoot_lx/rev1/keyboard.json index b021ba9c8d4..9ccfb5f27b2 100644 --- a/keyboards/tominabox1/littlefoot_lx/rev1/keyboard.json +++ b/keyboards/tominabox1/littlefoot_lx/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Littlefoot LX", "manufacturer": "tominabox1", - "url": "", "maintainer": "tominabox1", "usb": { "vid": "0x7431", diff --git a/keyboards/tominabox1/littlefoot_lx/rev2/keyboard.json b/keyboards/tominabox1/littlefoot_lx/rev2/keyboard.json index fe1cf6e5960..38d1d62345f 100644 --- a/keyboards/tominabox1/littlefoot_lx/rev2/keyboard.json +++ b/keyboards/tominabox1/littlefoot_lx/rev2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Littlefoot LX", "manufacturer": "tominabox1", - "url": "", "maintainer": "tominabox1", "usb": { "vid": "0x7431", diff --git a/keyboards/tominabox1/qaz/keyboard.json b/keyboards/tominabox1/qaz/keyboard.json index 9e18f0ddf4f..9e3ea95ad48 100644 --- a/keyboards/tominabox1/qaz/keyboard.json +++ b/keyboards/tominabox1/qaz/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "qaz", "manufacturer": "whydobearsexplod", - "url": "", "maintainer": "tominabox1", "usb": { "vid": "0x7431", diff --git a/keyboards/tominabox1/underscore33/rev1/keyboard.json b/keyboards/tominabox1/underscore33/rev1/keyboard.json index 221ecccb041..d13e20a7c60 100644 --- a/keyboards/tominabox1/underscore33/rev1/keyboard.json +++ b/keyboards/tominabox1/underscore33/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "underscore33", "manufacturer": "tominabox1", - "url": "", "maintainer": "tominabox1", "usb": { "vid": "0x7431", diff --git a/keyboards/tominabox1/underscore33/rev2/keyboard.json b/keyboards/tominabox1/underscore33/rev2/keyboard.json index 4375116963f..d4b922e2401 100644 --- a/keyboards/tominabox1/underscore33/rev2/keyboard.json +++ b/keyboards/tominabox1/underscore33/rev2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "underscore33", "manufacturer": "tominabox1", - "url": "", "maintainer": "tominabox1", "usb": { "vid": "0x7431", diff --git a/keyboards/touchpad/keyboard.json b/keyboards/touchpad/keyboard.json index 5429b5844db..0d2b450782a 100644 --- a/keyboards/touchpad/keyboard.json +++ b/keyboards/touchpad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "TouchPad", "manufacturer": "JacoBurge", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x16D0", diff --git a/keyboards/tr60w/keyboard.json b/keyboards/tr60w/keyboard.json index ef483ed2e27..dcfc8f48d61 100644 --- a/keyboards/tr60w/keyboard.json +++ b/keyboards/tr60w/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "TR60W", "manufacturer": "Triangle Lab", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/trainpad/keyboard.json b/keyboards/trainpad/keyboard.json index e7e74b0e918..346fd54027f 100644 --- a/keyboards/trainpad/keyboard.json +++ b/keyboards/trainpad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "TrainPad", "manufacturer": "Ananya Kirti", - "url": "", "maintainer": "AnanyaKirti", "usb": { "vid": "0x416B", diff --git a/keyboards/treasure/type9/keyboard.json b/keyboards/treasure/type9/keyboard.json index 0c1ee1987ad..ab7599730fa 100644 --- a/keyboards/treasure/type9/keyboard.json +++ b/keyboards/treasure/type9/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Type-9", "manufacturer": "Treasure", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/treasure/type9s3/keyboard.json b/keyboards/treasure/type9s3/keyboard.json index cb2bcf3a7a7..350746e00ca 100644 --- a/keyboards/treasure/type9s3/keyboard.json +++ b/keyboards/treasure/type9s3/keyboard.json @@ -21,7 +21,6 @@ ] }, "processor": "atmega32u2", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x5493", diff --git a/keyboards/trnthsn/e8ghty/info.json b/keyboards/trnthsn/e8ghty/info.json index ec4e724878e..bce77e0a5f9 100644 --- a/keyboards/trnthsn/e8ghty/info.json +++ b/keyboards/trnthsn/e8ghty/info.json @@ -37,7 +37,6 @@ "indicators": { "caps_lock": "B4" }, - "url": "", "usb": { "vid": "0x5453", "pid": "0x3830", diff --git a/keyboards/trnthsn/e8ghtyneo/info.json b/keyboards/trnthsn/e8ghtyneo/info.json index fef6259d241..eb1244c9cb2 100644 --- a/keyboards/trnthsn/e8ghtyneo/info.json +++ b/keyboards/trnthsn/e8ghtyneo/info.json @@ -40,7 +40,6 @@ "indicators": { "caps_lock": "B3" }, - "url": "", "usb": { "vid": "0x5453", "pid": "0x3845", diff --git a/keyboards/trnthsn/s6xty/keyboard.json b/keyboards/trnthsn/s6xty/keyboard.json index 3ec2f87f3df..ef1f5113bfa 100644 --- a/keyboards/trnthsn/s6xty/keyboard.json +++ b/keyboards/trnthsn/s6xty/keyboard.json @@ -35,7 +35,6 @@ "led_count": 22, "sleep": true }, - "url": "", "usb": { "device_version": "0.0.1", "pid": "0x5336", diff --git a/keyboards/trnthsn/s6xty5neor2/info.json b/keyboards/trnthsn/s6xty5neor2/info.json index ba20dbc2ba9..47f09623cce 100644 --- a/keyboards/trnthsn/s6xty5neor2/info.json +++ b/keyboards/trnthsn/s6xty5neor2/info.json @@ -18,7 +18,6 @@ "indicators": { "caps_lock": "C13" }, - "url": "", "usb": { "vid": "0x5453", "pid": "0x4E45", diff --git a/keyboards/ubest/vn/keyboard.json b/keyboards/ubest/vn/keyboard.json index c50ceebbba8..477c16fb968 100644 --- a/keyboards/ubest/vn/keyboard.json +++ b/keyboards/ubest/vn/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "vn", "manufacturer": "ubest", - "url": "", "maintainer": "mfkiiyd", "usb": { "vid": "0x6D66", diff --git a/keyboards/uk78/keyboard.json b/keyboards/uk78/keyboard.json index 673497ca9c0..ea1e030b2c9 100644 --- a/keyboards/uk78/keyboard.json +++ b/keyboards/uk78/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "UK78", "manufacturer": "UK Keyboards", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x554B", diff --git a/keyboards/unikeyboard/diverge3/keyboard.json b/keyboards/unikeyboard/diverge3/keyboard.json index 767f44b198b..e50bdfa129c 100644 --- a/keyboards/unikeyboard/diverge3/keyboard.json +++ b/keyboards/unikeyboard/diverge3/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Diverge3", "manufacturer": "UniKeyboard", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/unikeyboard/divergetm2/keyboard.json b/keyboards/unikeyboard/divergetm2/keyboard.json index 09d481149c9..8a7b5bb2df5 100644 --- a/keyboards/unikeyboard/divergetm2/keyboard.json +++ b/keyboards/unikeyboard/divergetm2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Diverge TM 2", "manufacturer": "UniKeyboard", - "url": "", "maintainer": "islandman93, xton", "usb": { "vid": "0xFEED", diff --git a/keyboards/unikeyboard/felix/keyboard.json b/keyboards/unikeyboard/felix/keyboard.json index b55138a15ce..8daef4227e0 100644 --- a/keyboards/unikeyboard/felix/keyboard.json +++ b/keyboards/unikeyboard/felix/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Felix", "manufacturer": "UniKeyboard", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/unikorn/keyboard.json b/keyboards/unikorn/keyboard.json index 1a3c46d691a..77eaa81cbf4 100644 --- a/keyboards/unikorn/keyboard.json +++ b/keyboards/unikorn/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Unikorn60", "manufacturer": "Singa x TGR", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x5354", diff --git a/keyboards/uranuma/keyboard.json b/keyboards/uranuma/keyboard.json index b24ce74d9ff..670823bda99 100644 --- a/keyboards/uranuma/keyboard.json +++ b/keyboards/uranuma/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "UraNuma", "manufacturer": "yohewi", - "url": "", "maintainer": "yohewi", "usb": { "vid": "0xFEED", diff --git a/keyboards/utd80/keyboard.json b/keyboards/utd80/keyboard.json index 41bd35c66a4..7c618e96b16 100644 --- a/keyboards/utd80/keyboard.json +++ b/keyboards/utd80/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "UTD80", "manufacturer": "UTD", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/v60_type_r/keyboard.json b/keyboards/v60_type_r/keyboard.json index eba729220a8..c186167ff23 100644 --- a/keyboards/v60_type_r/keyboard.json +++ b/keyboards/v60_type_r/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "V60 Type R", "manufacturer": "KB Paradise", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x7432", diff --git a/keyboards/vertex/angle65/keyboard.json b/keyboards/vertex/angle65/keyboard.json index ef0aacfef4b..3047d82dfac 100644 --- a/keyboards/vertex/angle65/keyboard.json +++ b/keyboards/vertex/angle65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "ANGLE65", "manufacturer": "vertex", - "url": "", "maintainer": "EasonQian1, Vertex-kb", "usb": { "vid": "0x9954", diff --git a/keyboards/vertex/arc60/keyboard.json b/keyboards/vertex/arc60/keyboard.json index ab98c446f0d..7bca331f442 100644 --- a/keyboards/vertex/arc60/keyboard.json +++ b/keyboards/vertex/arc60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "ARC60", "manufacturer": "vertex", - "url": "", "maintainer": "EasonQian1, Vertex-kb", "usb": { "vid": "0x8354", diff --git a/keyboards/vertex/arc60h/keyboard.json b/keyboards/vertex/arc60h/keyboard.json index e6fed06bc19..684bbb95382 100644 --- a/keyboards/vertex/arc60h/keyboard.json +++ b/keyboards/vertex/arc60h/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "ARC60H", "manufacturer": "vertex", - "url": "", "maintainer": "EasonQian1, Vertex-kb", "usb": { "vid": "0x7374", diff --git a/keyboards/vertex/cycle8/keyboard.json b/keyboards/vertex/cycle8/keyboard.json index 100c2d21f16..6531e0f6fa0 100644 --- a/keyboards/vertex/cycle8/keyboard.json +++ b/keyboards/vertex/cycle8/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Cycle8", "manufacturer": "vertex", - "url": "", "maintainer": "Eason", "usb": { "vid": "0x8A94", diff --git a/keyboards/viktus/omnikey_bh/keyboard.json b/keyboards/viktus/omnikey_bh/keyboard.json index 3356bf1eb28..af2b596bf8a 100644 --- a/keyboards/viktus/omnikey_bh/keyboard.json +++ b/keyboards/viktus/omnikey_bh/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Omnikey Blackheart", "manufacturer": "blindassassin111", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/viktus/smolka/keyboard.json b/keyboards/viktus/smolka/keyboard.json index e2cd55a4052..a5f5735e098 100644 --- a/keyboards/viktus/smolka/keyboard.json +++ b/keyboards/viktus/smolka/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Smolka", "manufacturer": "Viktus Design LLC", - "url": "", "maintainer": "jrfhoutx", "usb": { "vid": "0x5644", diff --git a/keyboards/viktus/sp_mini/keyboard.json b/keyboards/viktus/sp_mini/keyboard.json index 25aa4c94942..6b9627b462c 100644 --- a/keyboards/viktus/sp_mini/keyboard.json +++ b/keyboards/viktus/sp_mini/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "SP_Mini", "manufacturer": "Viktus Design LLC", - "url": "", "maintainer": "jrfhoutx", "usb": { "vid": "0x5644", diff --git a/keyboards/viktus/vkr94/keyboard.json b/keyboards/viktus/vkr94/keyboard.json index 31fd8ee1c7e..a3f4ff35a23 100644 --- a/keyboards/viktus/vkr94/keyboard.json +++ b/keyboards/viktus/vkr94/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "VKR 94", "manufacturer": "Viktus Design", - "url": "", "maintainer": "BlindAssassin111", "usb": { "vid": "0x5644", diff --git a/keyboards/viktus/z150_bh/keyboard.json b/keyboards/viktus/z150_bh/keyboard.json index 27754da5438..bbd7c1c1c3c 100644 --- a/keyboards/viktus/z150_bh/keyboard.json +++ b/keyboards/viktus/z150_bh/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Z-150 Blackheart", "manufacturer": "blindassassin111", - "url": "", "maintainer": "qmk, blindassassin111", "usb": { "vid": "0xFEED", diff --git a/keyboards/vinhcatba/uncertainty/keyboard.json b/keyboards/vinhcatba/uncertainty/keyboard.json index 551e30c823a..004e9989661 100644 --- a/keyboards/vinhcatba/uncertainty/keyboard.json +++ b/keyboards/vinhcatba/uncertainty/keyboard.json @@ -49,7 +49,6 @@ "led_count": 14, "sleep": true }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0000", diff --git a/keyboards/vitamins_included/info.json b/keyboards/vitamins_included/info.json index 60907cdba37..d293e7c9402 100644 --- a/keyboards/vitamins_included/info.json +++ b/keyboards/vitamins_included/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Vitamins Included", "manufacturer": "Duckle29", - "url": "", "maintainer": "Duckle29", "build": { "lto": true diff --git a/keyboards/void/voidhhkb_hotswap/keyboard.json b/keyboards/void/voidhhkb_hotswap/keyboard.json index 460454cc5fb..1e29c220dc5 100644 --- a/keyboards/void/voidhhkb_hotswap/keyboard.json +++ b/keyboards/void/voidhhkb_hotswap/keyboard.json @@ -17,7 +17,6 @@ "rows": ["B11", "B10", "B2", "B1", "B0"] }, "processor": "STM32F072", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0002", diff --git a/keyboards/waterfowl/keyboard.json b/keyboards/waterfowl/keyboard.json index 73f62a77eb3..9e08da57c03 100644 --- a/keyboards/waterfowl/keyboard.json +++ b/keyboards/waterfowl/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Waterfowl", "manufacturer": "CyanDuck", - "url": "", "maintainer": "JW2586", "usb": { "vid": "0xFEED", diff --git a/keyboards/wavtype/foundation/keyboard.json b/keyboards/wavtype/foundation/keyboard.json index 4b1dd1d3483..d8e9782f7e8 100644 --- a/keyboards/wavtype/foundation/keyboard.json +++ b/keyboards/wavtype/foundation/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "foundation", "manufacturer": "protozoa.studio", - "url": "", "maintainer": "wavtype", "usb": { "vid": "0x03A7", diff --git a/keyboards/wavtype/p01_ultra/keyboard.json b/keyboards/wavtype/p01_ultra/keyboard.json index c44f0bd3bd8..73633ee460b 100644 --- a/keyboards/wavtype/p01_ultra/keyboard.json +++ b/keyboards/wavtype/p01_ultra/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "p01_ultra", "manufacturer": "wavtype", - "url": "", "maintainer": "wavtype", "usb": { "vid": "0x03A7", diff --git a/keyboards/weirdo/geminate60/keyboard.json b/keyboards/weirdo/geminate60/keyboard.json index 12bc42b30d6..336f25fdc8b 100644 --- a/keyboards/weirdo/geminate60/keyboard.json +++ b/keyboards/weirdo/geminate60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Geminate60", "manufacturer": "Weirdo", - "url": "", "maintainer": "Weirdo-F", "usb": { "vid": "0x7764", diff --git a/keyboards/weirdo/kelowna/rgb64/keyboard.json b/keyboards/weirdo/kelowna/rgb64/keyboard.json index 4822f979fe6..d4d3294f50b 100644 --- a/keyboards/weirdo/kelowna/rgb64/keyboard.json +++ b/keyboards/weirdo/kelowna/rgb64/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "kelownaRGB64", "manufacturer": "Weirdo", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x7764", diff --git a/keyboards/weirdo/ls_60/keyboard.json b/keyboards/weirdo/ls_60/keyboard.json index 7ab1f2f6cb5..3325dc057d4 100644 --- a/keyboards/weirdo/ls_60/keyboard.json +++ b/keyboards/weirdo/ls_60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "LS_60", "manufacturer": "Weirdo", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x7764", diff --git a/keyboards/weirdo/naiping/np64/keyboard.json b/keyboards/weirdo/naiping/np64/keyboard.json index f620fb11696..f7cdff55b51 100644 --- a/keyboards/weirdo/naiping/np64/keyboard.json +++ b/keyboards/weirdo/naiping/np64/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "NP64", "manufacturer": "Weirdo", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x7764", diff --git a/keyboards/weirdo/naiping/nphhkb/keyboard.json b/keyboards/weirdo/naiping/nphhkb/keyboard.json index cc791374b42..ed5485d9de6 100644 --- a/keyboards/weirdo/naiping/nphhkb/keyboard.json +++ b/keyboards/weirdo/naiping/nphhkb/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "NPhhkb", "manufacturer": "Weirdo", - "url": "", "maintainer": "weirdo-f", "usb": { "vid": "0x7764", diff --git a/keyboards/weirdo/naiping/npminila/keyboard.json b/keyboards/weirdo/naiping/npminila/keyboard.json index b4048a52cf0..e5ed93e193b 100644 --- a/keyboards/weirdo/naiping/npminila/keyboard.json +++ b/keyboards/weirdo/naiping/npminila/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "NPminila", "manufacturer": "Weirdo", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x7764", diff --git a/keyboards/weirdo/tiger910/keyboard.json b/keyboards/weirdo/tiger910/keyboard.json index ca24561ebdd..34bd01970a3 100644 --- a/keyboards/weirdo/tiger910/keyboard.json +++ b/keyboards/weirdo/tiger910/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "tiger910", "manufacturer": "Weirdo", - "url": "", "maintainer": "Weirdo", "usb": { "vid": "0x7764", diff --git a/keyboards/wekey/polaris/keyboard.json b/keyboards/wekey/polaris/keyboard.json index c3fe12f1440..4fd5b5f46dd 100644 --- a/keyboards/wekey/polaris/keyboard.json +++ b/keyboards/wekey/polaris/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Polaris", "manufacturer": "@wekey", - "url": "", "maintainer": "@wekey.dev", "usb": { "vid": "0x5559", diff --git a/keyboards/wekey/we27/keyboard.json b/keyboards/wekey/we27/keyboard.json index d8cb7b0f802..91731cdc392 100644 --- a/keyboards/wekey/we27/keyboard.json +++ b/keyboards/wekey/we27/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "We27", "manufacturer": "@wekey", - "url": "", "maintainer": "@wekey.dev", "usb": { "vid": "0x5559", diff --git a/keyboards/westfoxtrot/aanzee/keyboard.json b/keyboards/westfoxtrot/aanzee/keyboard.json index 3a15014c4e8..303ead3367b 100644 --- a/keyboards/westfoxtrot/aanzee/keyboard.json +++ b/keyboards/westfoxtrot/aanzee/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "aanzee", "manufacturer": "westfoxtrot", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x21FF", diff --git a/keyboards/westfoxtrot/cyclops/keyboard.json b/keyboards/westfoxtrot/cyclops/keyboard.json index a74926511d2..bf08026551f 100644 --- a/keyboards/westfoxtrot/cyclops/keyboard.json +++ b/keyboards/westfoxtrot/cyclops/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "cyclops", "manufacturer": "westfoxtrot", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x21FF", diff --git a/keyboards/westfoxtrot/prophet/keyboard.json b/keyboards/westfoxtrot/prophet/keyboard.json index b431adddae6..50a75837369 100644 --- a/keyboards/westfoxtrot/prophet/keyboard.json +++ b/keyboards/westfoxtrot/prophet/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "prophet", "manufacturer": "westfoxtrot", - "url": "", "maintainer": "westfoxtrot", "usb": { "vid": "0xFF21", diff --git a/keyboards/windstudio/wind_x/r1/keyboard.json b/keyboards/windstudio/wind_x/r1/keyboard.json index 1b5f34fe3e8..44202e96850 100644 --- a/keyboards/windstudio/wind_x/r1/keyboard.json +++ b/keyboards/windstudio/wind_x/r1/keyboard.json @@ -15,7 +15,6 @@ "rows": ["F0", "F1", "D2", "D1", "D0"] }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "0.0.1", "pid": "0x6801", diff --git a/keyboards/winkeyless/b87/keyboard.json b/keyboards/winkeyless/b87/keyboard.json index a941445d72b..5977058d447 100644 --- a/keyboards/winkeyless/b87/keyboard.json +++ b/keyboards/winkeyless/b87/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "B87", "manufacturer": "Winkeyless", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x20A0", diff --git a/keyboards/winkeyless/bface/keyboard.json b/keyboards/winkeyless/bface/keyboard.json index cc5194ef343..d6599722c9a 100644 --- a/keyboards/winkeyless/bface/keyboard.json +++ b/keyboards/winkeyless/bface/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "B.face", "manufacturer": "Winkeyless", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x20A0", diff --git a/keyboards/winkeyless/bmini/keyboard.json b/keyboards/winkeyless/bmini/keyboard.json index 6fdaf621825..f5bf8d40cf3 100644 --- a/keyboards/winkeyless/bmini/keyboard.json +++ b/keyboards/winkeyless/bmini/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "B.mini", "manufacturer": "Winkeyless", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x20A0", diff --git a/keyboards/winry/winry25tc/keyboard.json b/keyboards/winry/winry25tc/keyboard.json index 9a83aded2c2..2f9f88ea4a0 100644 --- a/keyboards/winry/winry25tc/keyboard.json +++ b/keyboards/winry/winry25tc/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Winry 25tc", "manufacturer": "SpiderIsland", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/winry/winry315/keyboard.json b/keyboards/winry/winry315/keyboard.json index 81971b339f2..3f57dbe8021 100644 --- a/keyboards/winry/winry315/keyboard.json +++ b/keyboards/winry/winry315/keyboard.json @@ -2,7 +2,6 @@ "manufacturer": "Winry", "keyboard_name": "Winry315", "maintainer": "sigprof", - "url": "", "usb": { "device_version": "0.0.1", "pid": "0x0315", diff --git a/keyboards/wolf/kuku65/keyboard.json b/keyboards/wolf/kuku65/keyboard.json index 5146d77d1b5..93321a2e0b5 100644 --- a/keyboards/wolf/kuku65/keyboard.json +++ b/keyboards/wolf/kuku65/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "kuku65", "manufacturer": "ToastyStoemp", - "url": "", "maintainer": "ToastyStoemp", "usb": { "vid": "0x5453", diff --git a/keyboards/wolf/m60_b/keyboard.json b/keyboards/wolf/m60_b/keyboard.json index 474974d3835..ba25ebaa92e 100644 --- a/keyboards/wolf/m60_b/keyboard.json +++ b/keyboards/wolf/m60_b/keyboard.json @@ -134,7 +134,6 @@ "max_brightness": 120, "sleep": true }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0059", diff --git a/keyboards/wolf/m6_c/keyboard.json b/keyboards/wolf/m6_c/keyboard.json index f6f2416902f..8c1d361f8c9 100644 --- a/keyboards/wolf/m6_c/keyboard.json +++ b/keyboards/wolf/m6_c/keyboard.json @@ -82,7 +82,6 @@ ], "sleep": true }, - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0060", diff --git a/keyboards/wolf/neely65/keyboard.json b/keyboards/wolf/neely65/keyboard.json index 9a90105b968..5e55bf7bfca 100644 --- a/keyboards/wolf/neely65/keyboard.json +++ b/keyboards/wolf/neely65/keyboard.json @@ -17,7 +17,6 @@ "rows": ["D5", "D3", "D2", "D1", "D0"] }, "processor": "atmega32u4", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0071", diff --git a/keyboards/wolf/ryujin/keyboard.json b/keyboards/wolf/ryujin/keyboard.json index 8e72cccd9e9..f34cebb4f60 100644 --- a/keyboards/wolf/ryujin/keyboard.json +++ b/keyboards/wolf/ryujin/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Ryujin", "manufacturer": "Miroticaps", - "url": "", "maintainer": "ToastyStoemp", "usb": { "vid": "0x5453", diff --git a/keyboards/wolf/sabre/keyboard.json b/keyboards/wolf/sabre/keyboard.json index 11b235efe7a..02c298a59ec 100644 --- a/keyboards/wolf/sabre/keyboard.json +++ b/keyboards/wolf/sabre/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Sabre", "manufacturer": "ToastyStoemp", - "url": "", "maintainer": "ToastyStoemp", "usb": { "vid": "0x5453", diff --git a/keyboards/wolf/silhouette/keyboard.json b/keyboards/wolf/silhouette/keyboard.json index 548a89aa19d..83c2d039991 100644 --- a/keyboards/wolf/silhouette/keyboard.json +++ b/keyboards/wolf/silhouette/keyboard.json @@ -20,7 +20,6 @@ "rows": ["GP27", "GP26", "GP25", "GP13", "GP3"] }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0080", diff --git a/keyboards/wolf/twilight/keyboard.json b/keyboards/wolf/twilight/keyboard.json index ed426e85d9c..8a90b3656e4 100644 --- a/keyboards/wolf/twilight/keyboard.json +++ b/keyboards/wolf/twilight/keyboard.json @@ -17,7 +17,6 @@ "rows": ["GP28", "GP27", "GP26", "GP25", "GP13", "GP3"] }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0077", diff --git a/keyboards/wolf/ziggurat/keyboard.json b/keyboards/wolf/ziggurat/keyboard.json index bb12d5ab2f2..32627b479fd 100644 --- a/keyboards/wolf/ziggurat/keyboard.json +++ b/keyboards/wolf/ziggurat/keyboard.json @@ -17,7 +17,6 @@ "rows": ["GP11", "GP10", "GP7", "GP6", "GP23", "GP24", "GP25", "GP26", "GP19", "GP18"] }, "processor": "RP2040", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0084", diff --git a/keyboards/wolfmarkclub/wm1/keyboard.json b/keyboards/wolfmarkclub/wm1/keyboard.json index 0cea5546c8a..6b0c8962669 100644 --- a/keyboards/wolfmarkclub/wm1/keyboard.json +++ b/keyboards/wolfmarkclub/wm1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "WM1", "manufacturer": "Wolfmark Club", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/woodkeys/bigseries/1key/keyboard.json b/keyboards/woodkeys/bigseries/1key/keyboard.json index 2440b1974b3..c3f545e53c5 100644 --- a/keyboards/woodkeys/bigseries/1key/keyboard.json +++ b/keyboards/woodkeys/bigseries/1key/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BigSeries 1-Key", "manufacturer": "WoodKeys.click", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/woodkeys/bigseries/2key/keyboard.json b/keyboards/woodkeys/bigseries/2key/keyboard.json index 9c8c34914ac..bb4ac4db649 100644 --- a/keyboards/woodkeys/bigseries/2key/keyboard.json +++ b/keyboards/woodkeys/bigseries/2key/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BigSeries 2-Key", "manufacturer": "WoodKeys.click", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/woodkeys/bigseries/3key/keyboard.json b/keyboards/woodkeys/bigseries/3key/keyboard.json index 17870d98ad7..35f94cb27f2 100644 --- a/keyboards/woodkeys/bigseries/3key/keyboard.json +++ b/keyboards/woodkeys/bigseries/3key/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BigSeries 3-Key", "manufacturer": "WoodKeys.click", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/woodkeys/bigseries/4key/keyboard.json b/keyboards/woodkeys/bigseries/4key/keyboard.json index 1e44fc23756..5637e1ab5ac 100644 --- a/keyboards/woodkeys/bigseries/4key/keyboard.json +++ b/keyboards/woodkeys/bigseries/4key/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BigSeries 4-Key", "manufacturer": "WoodKeys.click", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/woodkeys/meira/info.json b/keyboards/woodkeys/meira/info.json index 3ad2918d8e6..0b73ffd7e60 100644 --- a/keyboards/woodkeys/meira/info.json +++ b/keyboards/woodkeys/meira/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Meira", "manufacturer": "WoodKeys.click", - "url": "", "maintainer": "colemarkham", "usb": { "vid": "0xFEED", diff --git a/keyboards/woodkeys/scarletbandana/keyboard.json b/keyboards/woodkeys/scarletbandana/keyboard.json index f6c4342efaf..155ca508e7f 100644 --- a/keyboards/woodkeys/scarletbandana/keyboard.json +++ b/keyboards/woodkeys/scarletbandana/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Scarlet Bandana Version IV Mark 2", "manufacturer": "WoodKeys.click", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/wsk/alpha9/keyboard.json b/keyboards/wsk/alpha9/keyboard.json index 41b95130c66..79c01c4c2ab 100644 --- a/keyboards/wsk/alpha9/keyboard.json +++ b/keyboards/wsk/alpha9/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Alpha9", "manufacturer": "Worldspawn00", - "url": "", "maintainer": "Worldspawn00", "usb": { "vid": "0x5753", diff --git a/keyboards/wsk/g4m3ralpha/keyboard.json b/keyboards/wsk/g4m3ralpha/keyboard.json index b5cdb7ce101..d2ba034be19 100644 --- a/keyboards/wsk/g4m3ralpha/keyboard.json +++ b/keyboards/wsk/g4m3ralpha/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "G4M3Ralpha", "manufacturer": "Worldspawn00", - "url": "", "maintainer": "Worldspawn00", "usb": { "vid": "0x5753", diff --git a/keyboards/x16/keyboard.json b/keyboards/x16/keyboard.json index 4d407e53329..d8aa2468ca0 100644 --- a/keyboards/x16/keyboard.json +++ b/keyboards/x16/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "x16", "manufacturer": "yinxianwei", - "url": "", "maintainer": "yinxianwei", "usb": { "vid": "0x4B50", diff --git a/keyboards/xbows/knight/keyboard.json b/keyboards/xbows/knight/keyboard.json index b675ee19468..b5adc0b9463 100644 --- a/keyboards/xbows/knight/keyboard.json +++ b/keyboards/xbows/knight/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "KNIGHT", "manufacturer": "X-BOWS", - "url": "", "maintainer": "xbows-qmk", "usb": { "vid": "0x5842", diff --git a/keyboards/xbows/knight_plus/keyboard.json b/keyboards/xbows/knight_plus/keyboard.json index 0d1600c6147..b3c43645d99 100644 --- a/keyboards/xbows/knight_plus/keyboard.json +++ b/keyboards/xbows/knight_plus/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "KNIGHT_PLUS", "manufacturer": "X-BOWS", - "url": "", "maintainer": "xbows-qmk", "usb": { "vid": "0x5842", diff --git a/keyboards/xbows/nature/keyboard.json b/keyboards/xbows/nature/keyboard.json index 6e28c9de30b..7f23e781d2e 100644 --- a/keyboards/xbows/nature/keyboard.json +++ b/keyboards/xbows/nature/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "NATURE", "manufacturer": "X-BOWS", - "url": "", "maintainer": "xbows-qmk", "usb": { "vid": "0x5842", diff --git a/keyboards/xbows/numpad/keyboard.json b/keyboards/xbows/numpad/keyboard.json index 070cc3a288f..7be91ae2a4e 100644 --- a/keyboards/xbows/numpad/keyboard.json +++ b/keyboards/xbows/numpad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "NUMPAD", "manufacturer": "X-BOWS", - "url": "", "maintainer": "xbows-qmk", "usb": { "vid": "0x5842", diff --git a/keyboards/xbows/ranger/keyboard.json b/keyboards/xbows/ranger/keyboard.json index 945eaafcba2..c5a47413ec7 100644 --- a/keyboards/xbows/ranger/keyboard.json +++ b/keyboards/xbows/ranger/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Ranger", "manufacturer": "X-BOWS", - "url": "", "maintainer": "xbows-qmk", "usb": { "vid": "0x5842", diff --git a/keyboards/xbows/woody/keyboard.json b/keyboards/xbows/woody/keyboard.json index 538354507e0..da403bacaf3 100644 --- a/keyboards/xbows/woody/keyboard.json +++ b/keyboards/xbows/woody/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "WOO-DY", "manufacturer": "X-BOWS", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/xelus/dawn60/info.json b/keyboards/xelus/dawn60/info.json index 2c71fef898e..2eca36e46cf 100644 --- a/keyboards/xelus/dawn60/info.json +++ b/keyboards/xelus/dawn60/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Dawn60", "manufacturer": "Xelus", - "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x5845", diff --git a/keyboards/xelus/dharma/keyboard.json b/keyboards/xelus/dharma/keyboard.json index 8d6b7465277..0e5fd1217b3 100644 --- a/keyboards/xelus/dharma/keyboard.json +++ b/keyboards/xelus/dharma/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Dharma", "manufacturer": "Xelus", - "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x5845", diff --git a/keyboards/xelus/la_plus/keyboard.json b/keyboards/xelus/la_plus/keyboard.json index 902364471ff..78e16d59dc3 100644 --- a/keyboards/xelus/la_plus/keyboard.json +++ b/keyboards/xelus/la_plus/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "MechaMaker La+", "manufacturer": "Xelus", - "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x5845", diff --git a/keyboards/xelus/ninjin/keyboard.json b/keyboards/xelus/ninjin/keyboard.json index 2e7b1640dfb..cf601d8a801 100644 --- a/keyboards/xelus/ninjin/keyboard.json +++ b/keyboards/xelus/ninjin/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Ninjin", "manufacturer": "Xelus", - "url": "", "maintainer": "Xelus", "usb": { "vid": "0x5845", diff --git a/keyboards/xelus/pachi/mini_32u4/keyboard.json b/keyboards/xelus/pachi/mini_32u4/keyboard.json index 590b32de6b6..c3144bca157 100644 --- a/keyboards/xelus/pachi/mini_32u4/keyboard.json +++ b/keyboards/xelus/pachi/mini_32u4/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Pachi Mini", "manufacturer": "Xelus", - "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x5845", diff --git a/keyboards/xelus/pachi/rev1/keyboard.json b/keyboards/xelus/pachi/rev1/keyboard.json index 98b59c8641a..fff3be76467 100644 --- a/keyboards/xelus/pachi/rev1/keyboard.json +++ b/keyboards/xelus/pachi/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Pachi Rev 1", "manufacturer": "Xelus", - "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x5845", diff --git a/keyboards/xelus/pachi/rgb/rev1/keyboard.json b/keyboards/xelus/pachi/rgb/rev1/keyboard.json index fe88e695be1..a27bcae0fcd 100644 --- a/keyboards/xelus/pachi/rgb/rev1/keyboard.json +++ b/keyboards/xelus/pachi/rgb/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Pachi RGB Rev 1", "manufacturer": "Xelus", - "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x5845", diff --git a/keyboards/xelus/pachi/rgb/rev2/keyboard.json b/keyboards/xelus/pachi/rgb/rev2/keyboard.json index ea712b78d81..8d97dfe49b4 100644 --- a/keyboards/xelus/pachi/rgb/rev2/keyboard.json +++ b/keyboards/xelus/pachi/rgb/rev2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Pachi RGB Rev 2", "manufacturer": "Xelus", - "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x5845", diff --git a/keyboards/xelus/rs108/keyboard.json b/keyboards/xelus/rs108/keyboard.json index 12ffbb3fdc2..c524ae09ede 100644 --- a/keyboards/xelus/rs108/keyboard.json +++ b/keyboards/xelus/rs108/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "RS108", "manufacturer": "Xelus", - "url": "", "maintainer": "xelus22", "usb": { "vid": "0x5845", diff --git a/keyboards/xelus/rs60/info.json b/keyboards/xelus/rs60/info.json index c36d968d37b..a62157826e2 100644 --- a/keyboards/xelus/rs60/info.json +++ b/keyboards/xelus/rs60/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "RS60", "manufacturer": "Xelus", - "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x5845", diff --git a/keyboards/xelus/snap96/keyboard.json b/keyboards/xelus/snap96/keyboard.json index 0be9968c5af..e32b7db4e02 100644 --- a/keyboards/xelus/snap96/keyboard.json +++ b/keyboards/xelus/snap96/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Snap96", "manufacturer": "Xelus", - "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x5845", diff --git a/keyboards/xelus/trinityxttkl/keyboard.json b/keyboards/xelus/trinityxttkl/keyboard.json index eea94c59792..c650626e4b7 100644 --- a/keyboards/xelus/trinityxttkl/keyboard.json +++ b/keyboards/xelus/trinityxttkl/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Trinity XT TKL", "manufacturer": "Xelus", - "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x5845", diff --git a/keyboards/xelus/valor/rev1/keyboard.json b/keyboards/xelus/valor/rev1/keyboard.json index 5b5695f34b5..e85f9b2aaa3 100644 --- a/keyboards/xelus/valor/rev1/keyboard.json +++ b/keyboards/xelus/valor/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Valor Rev1", "manufacturer": "Xelus", - "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x5845", diff --git a/keyboards/xelus/valor/rev2/keyboard.json b/keyboards/xelus/valor/rev2/keyboard.json index 21de5fb4a2a..451eeb99ff2 100644 --- a/keyboards/xelus/valor/rev2/keyboard.json +++ b/keyboards/xelus/valor/rev2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Valor Rev2", "manufacturer": "Xelus", - "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x5845", diff --git a/keyboards/xelus/valor/rev3/keyboard.json b/keyboards/xelus/valor/rev3/keyboard.json index 52954fb784c..002cdeff5c8 100644 --- a/keyboards/xelus/valor/rev3/keyboard.json +++ b/keyboards/xelus/valor/rev3/keyboard.json @@ -45,7 +45,6 @@ "max_brightness": 200, "saturation_steps": 8 }, - "url": "", "usb": { "device_version": "0.0.1", "pid": "0x5652", diff --git a/keyboards/xelus/valor_frl_tkl/info.json b/keyboards/xelus/valor_frl_tkl/info.json index a0b7a70a89f..9c909634f7b 100644 --- a/keyboards/xelus/valor_frl_tkl/info.json +++ b/keyboards/xelus/valor_frl_tkl/info.json @@ -1,6 +1,5 @@ { "manufacturer": "Xelus", - "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x5845", diff --git a/keyboards/xelus/xs108/keyboard.json b/keyboards/xelus/xs108/keyboard.json index 14d442d197c..d4a022ce7f2 100644 --- a/keyboards/xelus/xs108/keyboard.json +++ b/keyboards/xelus/xs108/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "XS108", "manufacturer": "Xelus", - "url": "", "maintainer": "xelus22", "usb": { "vid": "0x5845", diff --git a/keyboards/xelus/xs60/hotswap/keyboard.json b/keyboards/xelus/xs60/hotswap/keyboard.json index 45a5e575429..3cceb144aec 100644 --- a/keyboards/xelus/xs60/hotswap/keyboard.json +++ b/keyboards/xelus/xs60/hotswap/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "XS60 Hotswap", "manufacturer": "Xelus", - "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x5845", diff --git a/keyboards/xelus/xs60/soldered/keyboard.json b/keyboards/xelus/xs60/soldered/keyboard.json index 41af87ba7ce..8dace88ce8b 100644 --- a/keyboards/xelus/xs60/soldered/keyboard.json +++ b/keyboards/xelus/xs60/soldered/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "XS60 Soldered", "manufacturer": "Xelus", - "url": "", "maintainer": "Xelus22", "usb": { "vid": "0x5845", diff --git a/keyboards/xiaomi/mk02/keyboard.json b/keyboards/xiaomi/mk02/keyboard.json index 28d5d8a17d3..60326a335b6 100644 --- a/keyboards/xiaomi/mk02/keyboard.json +++ b/keyboards/xiaomi/mk02/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "MK02", "manufacturer": "Xiaomi", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/xiudi/xd68/keyboard.json b/keyboards/xiudi/xd68/keyboard.json index 620c0b59639..35fc7f61ddb 100644 --- a/keyboards/xiudi/xd68/keyboard.json +++ b/keyboards/xiudi/xd68/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "XD68", "manufacturer": "xiudi", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x7844", diff --git a/keyboards/xiudi/xd75/keyboard.json b/keyboards/xiudi/xd75/keyboard.json index df1ec335776..95aaa6f182f 100644 --- a/keyboards/xiudi/xd75/keyboard.json +++ b/keyboards/xiudi/xd75/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "XD75", "manufacturer": "xiudi", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x7844", diff --git a/keyboards/xiudi/xd84/keyboard.json b/keyboards/xiudi/xd84/keyboard.json index 0411869633d..7c9fc32865b 100644 --- a/keyboards/xiudi/xd84/keyboard.json +++ b/keyboards/xiudi/xd84/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "XD84", "manufacturer": "KPrepublic", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x7844", diff --git a/keyboards/xiudi/xd84pro/keyboard.json b/keyboards/xiudi/xd84pro/keyboard.json index 5388d8f7c22..070dd323964 100644 --- a/keyboards/xiudi/xd84pro/keyboard.json +++ b/keyboards/xiudi/xd84pro/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "XD84 Pro", "manufacturer": "KPrepublic", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x7844", diff --git a/keyboards/xiudi/xd96/keyboard.json b/keyboards/xiudi/xd96/keyboard.json index df1fd1cfd44..cae3f223b0c 100644 --- a/keyboards/xiudi/xd96/keyboard.json +++ b/keyboards/xiudi/xd96/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "XD96", "manufacturer": "KPrepublic", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x7844", diff --git a/keyboards/xmmx/keyboard.json b/keyboards/xmmx/keyboard.json index 2e6813520c0..bb8d7e09770 100644 --- a/keyboards/xmmx/keyboard.json +++ b/keyboards/xmmx/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "XMMX", "manufacturer": "farmakon", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/xw60/keyboard.json b/keyboards/xw60/keyboard.json index 3bd11e21c18..5c428f4f5b6 100644 --- a/keyboards/xw60/keyboard.json +++ b/keyboards/xw60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "XW60", "manufacturer": "Drclick", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/yampad/keyboard.json b/keyboards/yampad/keyboard.json index 76efef72ad9..789565e342f 100644 --- a/keyboards/yampad/keyboard.json +++ b/keyboards/yampad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Yampad", "manufacturer": "Mattia Dal Ben", - "url": "", "maintainer": "mattdibi", "usb": { "vid": "0x5950", diff --git a/keyboards/ydkb/chili/keyboard.json b/keyboards/ydkb/chili/keyboard.json index 92552d96a3d..13b46d8b121 100644 --- a/keyboards/ydkb/chili/keyboard.json +++ b/keyboards/ydkb/chili/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Chili", "manufacturer": "YDKB", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x5945", diff --git a/keyboards/ydkb/just60/keyboard.json b/keyboards/ydkb/just60/keyboard.json index 586ea80f21f..f8bd5a35036 100644 --- a/keyboards/ydkb/just60/keyboard.json +++ b/keyboards/ydkb/just60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Just60", "manufacturer": "YDKB", - "url": "", "maintainer": "thinxer", "usb": { "vid": "0xFEED", diff --git a/keyboards/ydkb/yd68/keyboard.json b/keyboards/ydkb/yd68/keyboard.json index a3542e72c20..439272a9274 100644 --- a/keyboards/ydkb/yd68/keyboard.json +++ b/keyboards/ydkb/yd68/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "YD68v2", "manufacturer": "YANG", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/ydkb/ydpm40/keyboard.json b/keyboards/ydkb/ydpm40/keyboard.json index b0916f297ca..f19139d5664 100644 --- a/keyboards/ydkb/ydpm40/keyboard.json +++ b/keyboards/ydkb/ydpm40/keyboard.json @@ -17,7 +17,6 @@ "rows": ["D4", "D5", "D6", "D7"] }, "processor": "atmega328p", - "url": "", "usb": { "device_version": "1.0.0", "pid": "0x0240", diff --git a/keyboards/ymdk/bface/keyboard.json b/keyboards/ymdk/bface/keyboard.json index 8a0025c01a7..9662adaba26 100644 --- a/keyboards/ymdk/bface/keyboard.json +++ b/keyboards/ymdk/bface/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "B.face", "manufacturer": "YMDK", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x594D", diff --git a/keyboards/ymdk/melody96/hotswap/keyboard.json b/keyboards/ymdk/melody96/hotswap/keyboard.json index 6a00e050502..901afc8651e 100644 --- a/keyboards/ymdk/melody96/hotswap/keyboard.json +++ b/keyboards/ymdk/melody96/hotswap/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Melody96 Hotswap", "manufacturer": "YMDK", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x594D", diff --git a/keyboards/ymdk/melody96/soldered/keyboard.json b/keyboards/ymdk/melody96/soldered/keyboard.json index dbb2ddc32bb..6a47c6c685f 100644 --- a/keyboards/ymdk/melody96/soldered/keyboard.json +++ b/keyboards/ymdk/melody96/soldered/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Melody96 Soldered", "manufacturer": "YMDK", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x594D", diff --git a/keyboards/ymdk/sp64/keyboard.json b/keyboards/ymdk/sp64/keyboard.json index bfb140873af..d1d0d8296c6 100644 --- a/keyboards/ymdk/sp64/keyboard.json +++ b/keyboards/ymdk/sp64/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "SP64", "manufacturer": "YMDK", - "url": "", "maintainer": "walston", "usb": { "vid": "0x594D", diff --git a/keyboards/ymdk/yd60mq/info.json b/keyboards/ymdk/yd60mq/info.json index 1af04be687d..d5a3a20c718 100644 --- a/keyboards/ymdk/yd60mq/info.json +++ b/keyboards/ymdk/yd60mq/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "YD60MQ", "manufacturer": "YMDK", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x594D", diff --git a/keyboards/ymdk/ym68/keyboard.json b/keyboards/ymdk/ym68/keyboard.json index 5bea9b2e482..032774b282e 100644 --- a/keyboards/ymdk/ym68/keyboard.json +++ b/keyboards/ymdk/ym68/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "YM68", "manufacturer": "YMDK", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x594D", diff --git a/keyboards/ymdk/ymd21/v2/keyboard.json b/keyboards/ymdk/ymd21/v2/keyboard.json index 3e2e992ccc6..d7c4b75855c 100644 --- a/keyboards/ymdk/ymd21/v2/keyboard.json +++ b/keyboards/ymdk/ymd21/v2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "YMD21 v2", "manufacturer": "YMDK", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x45D4", diff --git a/keyboards/ymdk/ymd40/air40/keyboard.json b/keyboards/ymdk/ymd40/air40/keyboard.json index aaca80156b1..0adc965cc75 100644 --- a/keyboards/ymdk/ymd40/air40/keyboard.json +++ b/keyboards/ymdk/ymd40/air40/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "YMDK Air40", "manufacturer": "YMDK", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x45D4", diff --git a/keyboards/ymdk/ymd40/v2/keyboard.json b/keyboards/ymdk/ymd40/v2/keyboard.json index 08f5f0a4e37..baecfbb5792 100644 --- a/keyboards/ymdk/ymd40/v2/keyboard.json +++ b/keyboards/ymdk/ymd40/v2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "YMD40 v2", "manufacturer": "YMDK", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x594D", diff --git a/keyboards/ymdk/ymd75/rev1/keyboard.json b/keyboards/ymdk/ymd75/rev1/keyboard.json index f2b664c67f6..fd46bf0d991 100644 --- a/keyboards/ymdk/ymd75/rev1/keyboard.json +++ b/keyboards/ymdk/ymd75/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "YMD75 / MT84", "manufacturer": "YMDK", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x20A0", diff --git a/keyboards/ymdk/ymd75/rev2/keyboard.json b/keyboards/ymdk/ymd75/rev2/keyboard.json index 272140fd820..3bee673ceb5 100644 --- a/keyboards/ymdk/ymd75/rev2/keyboard.json +++ b/keyboards/ymdk/ymd75/rev2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "YMD75 / MT84", "manufacturer": "YMDK", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x20A0", diff --git a/keyboards/ymdk/ymd75/rev3/keyboard.json b/keyboards/ymdk/ymd75/rev3/keyboard.json index ae8c20990b4..4377fbd742b 100644 --- a/keyboards/ymdk/ymd75/rev3/keyboard.json +++ b/keyboards/ymdk/ymd75/rev3/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "YMD75 / MT84", "manufacturer": "YMDK", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x20A0", diff --git a/keyboards/ymdk/ymd75/rev4/iso/keyboard.json b/keyboards/ymdk/ymd75/rev4/iso/keyboard.json index 180c68beaa0..21c688bc824 100644 --- a/keyboards/ymdk/ymd75/rev4/iso/keyboard.json +++ b/keyboards/ymdk/ymd75/rev4/iso/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "YMD75 V4", "manufacturer": "YMDK", - "url": "", "maintainer": "zvecr", "processor": "STM32F103", "bootloader": "uf2boot", diff --git a/keyboards/ymdk/ymd96/keyboard.json b/keyboards/ymdk/ymd96/keyboard.json index ed7edd490a8..7ff17de0c2b 100644 --- a/keyboards/ymdk/ymd96/keyboard.json +++ b/keyboards/ymdk/ymd96/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "YMD96", "manufacturer": "YMDK", - "url": "", "maintainer": "sparkyman215", "usb": { "vid": "0x20A0", diff --git a/keyboards/yncognito/batpad/keyboard.json b/keyboards/yncognito/batpad/keyboard.json index 06a1f9b090a..6e962aefce7 100644 --- a/keyboards/yncognito/batpad/keyboard.json +++ b/keyboards/yncognito/batpad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Batpad", "manufacturer": "Yncognito", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x7979", diff --git a/keyboards/yoichiro/lunakey_macro/keyboard.json b/keyboards/yoichiro/lunakey_macro/keyboard.json index 7268dd31438..3742a4d467d 100644 --- a/keyboards/yoichiro/lunakey_macro/keyboard.json +++ b/keyboards/yoichiro/lunakey_macro/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Lunakey Macro", "manufacturer": "yoichiro", - "url": "", "maintainer": "Yoichiro Tanaka", "usb": { "vid": "0x5954", diff --git a/keyboards/yoichiro/lunakey_mini/keyboard.json b/keyboards/yoichiro/lunakey_mini/keyboard.json index 177b3afaa6a..41503fe598e 100644 --- a/keyboards/yoichiro/lunakey_mini/keyboard.json +++ b/keyboards/yoichiro/lunakey_mini/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Lunakey Mini", "manufacturer": "yoichiro", - "url": "", "maintainer": "qmk", "usb": { "vid": "0x5954", diff --git a/keyboards/yushakobo/ergo68/keyboard.json b/keyboards/yushakobo/ergo68/keyboard.json index bc61e979b74..ac86eae70b6 100644 --- a/keyboards/yushakobo/ergo68/keyboard.json +++ b/keyboards/yushakobo/ergo68/keyboard.json @@ -14,7 +14,6 @@ "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2"], "rows": ["D4", "C6", "D7", "E6", "B4"] }, - "url": "", "usb": { "vid": "0x3265", "pid": "0x0011", diff --git a/keyboards/yushakobo/navpad/10_helix_r/keyboard.json b/keyboards/yushakobo/navpad/10_helix_r/keyboard.json index e91f96f0ace..89613390c1d 100644 --- a/keyboards/yushakobo/navpad/10_helix_r/keyboard.json +++ b/keyboards/yushakobo/navpad/10_helix_r/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "navpad 1.0 with helix keyboard", "manufacturer": "yushakobo", - "url": "", "maintainer": "yushakobo", "usb": { "vid": "0x3265", diff --git a/keyboards/yushakobo/quick7/keyboard.json b/keyboards/yushakobo/quick7/keyboard.json index ba4854015bf..146397d0882 100644 --- a/keyboards/yushakobo/quick7/keyboard.json +++ b/keyboards/yushakobo/quick7/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "quick7", "manufacturer": "yushakobo", - "url": "", "maintainer": "yushakobo", "usb": { "vid": "0x3265", diff --git a/keyboards/ziggurat/keyboard.json b/keyboards/ziggurat/keyboard.json index 11ae657256b..ef86511b368 100644 --- a/keyboards/ziggurat/keyboard.json +++ b/keyboards/ziggurat/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Ziggurat", "manufacturer": "LaminarWoob", - "url": "", "maintainer": "kb-elmo", "usb": { "vid": "0x8F5D", diff --git a/keyboards/zlant/keyboard.json b/keyboards/zlant/keyboard.json index 965a259c3be..4185d22d942 100644 --- a/keyboards/zlant/keyboard.json +++ b/keyboards/zlant/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Zlant", "manufacturer": "Matthew Cordier", - "url": "", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/zvecr/split_blackpill/keyboard.json b/keyboards/zvecr/split_blackpill/keyboard.json index d22914d3bd0..407314b71a6 100644 --- a/keyboards/zvecr/split_blackpill/keyboard.json +++ b/keyboards/zvecr/split_blackpill/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "split_blackpill", "manufacturer": "zvecr", - "url": "", "maintainer": "zvecr", "usb": { "vid": "0x5A56", diff --git a/keyboards/zvecr/zv48/info.json b/keyboards/zvecr/zv48/info.json index 39a05a61e60..0a6e8f7ae9b 100644 --- a/keyboards/zvecr/zv48/info.json +++ b/keyboards/zvecr/zv48/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "zv48", "manufacturer": "zvecr", - "url": "", "maintainer": "zvecr", "usb": { "vid": "0x5A56", diff --git a/keyboards/zwag/zwag75/keyboard.json b/keyboards/zwag/zwag75/keyboard.json index 03b97cefc85..899e21dfa59 100644 --- a/keyboards/zwag/zwag75/keyboard.json +++ b/keyboards/zwag/zwag75/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Zwag75", "manufacturer": "Zwag.gg", - "url": "", "maintainer": "DeskDaily", "usb": { "vid": "0x5102", From 83818d1d6f7d1f590946756ad552e407bf9a2e1f Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 22 Apr 2025 17:59:16 +0100 Subject: [PATCH 357/365] Prompt for converter when creating new keymap (#25116) --- lib/python/qmk/cli/new/keymap.py | 56 +++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/lib/python/qmk/cli/new/keymap.py b/lib/python/qmk/cli/new/keymap.py index 8b7160f5f2c..16865ceb00e 100755 --- a/lib/python/qmk/cli/new/keymap.py +++ b/lib/python/qmk/cli/new/keymap.py @@ -1,10 +1,12 @@ """This script automates the copying of the default keymap into your own keymap. """ import re +import json import shutil +from pathlib import Path from milc import cli -from milc.questions import question +from milc.questions import question, choice from qmk.constants import HAS_QMK_USERSPACE, QMK_USERSPACE from qmk.path import is_keyboard, keymaps, keymap @@ -12,6 +14,34 @@ from qmk.git import git_get_username from qmk.decorators import automagic_keyboard, automagic_keymap from qmk.keyboard import keyboard_completer, keyboard_folder from qmk.userspace import UserspaceDefs +from qmk.json_schema import json_load +from qmk.json_encoders import KeymapJSONEncoder +from qmk.info import info_json + + +def _list_available_converters(kb_name): + """Search for converters that can be applied to a given keyboard + """ + if not is_keyboard(kb_name): + return None + + info = info_json(kb_name) + pin_compatible = info.get('pin_compatible') + if not pin_compatible: + return None + + return sorted(folder.name.split('_to_')[-1] for folder in Path('platforms').glob(f'*/converters/{pin_compatible}_to_*')) + + +def _set_converter(file, converter): + """add/overwrite any existing converter specified in keymap.json + """ + json_data = json_load(file) if file.exists() else {} + + json_data['converter'] = converter + + output = json.dumps(json_data, cls=KeymapJSONEncoder, sort_keys=True) + file.write_text(output + '\n', encoding='utf-8') def validate_keymap_name(name): @@ -37,8 +67,28 @@ Keymap name? """ return question(prompt, default=git_get_username()) +def prompt_converter(kb_name): + prompt = """ +{fg_yellow}Configure Development Board{style_reset_all} +For more information, see: +https://docs.qmk.fm/feature_converters + +Use converter? """ + + converters = _list_available_converters(kb_name) + if not converters: + return None + + choices = ['No (default)', *converters] + + answer = choice(prompt, options=choices, default=0) + return None if choices.index(answer) == 0 else answer + + @cli.argument('-kb', '--keyboard', type=keyboard_folder, completer=keyboard_completer, help='Specify keyboard name. Example: 1upkeyboards/1up60hse') @cli.argument('-km', '--keymap', help='Specify the name for the new keymap directory') +@cli.argument('--converter', help='Specify the name of a converter to configure') +@cli.argument('--skip-converter', arg_only=True, action='store_true', help='Skip converter') @cli.subcommand('Creates a new keymap for the keyboard of your choosing') @automagic_keyboard @automagic_keymap @@ -51,6 +101,7 @@ def new_keymap(cli): # ask for user input if keyboard or keymap was not provided in the command line kb_name = cli.config.new_keymap.keyboard if cli.config.new_keymap.keyboard else prompt_keyboard() user_name = cli.config.new_keymap.keymap if cli.config.new_keymap.keymap else prompt_user() + converter = cli.config.new_keymap.converter if cli.args.skip_converter or cli.config.new_keymap.converter else prompt_converter(kb_name) # check directories if not is_keyboard(kb_name): @@ -77,6 +128,9 @@ def new_keymap(cli): # create user directory with default keymap files shutil.copytree(keymap_path_default, keymap_path_new, symlinks=True) + if converter: + _set_converter(keymap_path_new / 'keymap.json', converter) + # end message to user cli.log.info(f'{{fg_green}}Created a new keymap called {{fg_cyan}}{user_name}{{fg_green}} in: {{fg_cyan}}{keymap_path_new}.{{fg_reset}}') cli.log.info(f"Compile a firmware with your new keymap by typing: {{fg_yellow}}qmk compile -kb {kb_name} -km {user_name}{{fg_reset}}.") From 7a2cd0fa962eb5e6e18ce8b0213a7171bc823c1f Mon Sep 17 00:00:00 2001 From: eynsai <47629346+eynsai@users.noreply.github.com> Date: Tue, 22 Apr 2025 18:04:31 -0400 Subject: [PATCH 358/365] High resolution scrolling (without feature report parsing) (#24423) * hires scrolling without feature report parsing * fix valid range for exponent * fix incorrect minimum exponent value documentation --- docs/features/pointing_device.md | 26 +++++++++++++++++++++ quantum/pointing_device/pointing_device.c | 19 +++++++++++++++ quantum/pointing_device/pointing_device.h | 4 ++++ tmk_core/protocol/usb_descriptor.c | 24 +++++++++++++++++++ tmk_core/protocol/usb_descriptor_common.h | 20 ++++++++++++++++ tmk_core/protocol/vusb/vusb.c | 28 +++++++++++++++++++++-- 6 files changed, 119 insertions(+), 2 deletions(-) diff --git a/docs/features/pointing_device.md b/docs/features/pointing_device.md index 0ecf82c8df6..a139df9dc4d 100644 --- a/docs/features/pointing_device.md +++ b/docs/features/pointing_device.md @@ -419,6 +419,32 @@ The `POINTING_DEVICE_CS_PIN`, `POINTING_DEVICE_SDIO_PIN`, and `POINTING_DEVICE_S Any pointing device with a lift/contact status can integrate inertial cursor feature into its driver, controlled by `POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE`. e.g. PMW3360 can use Lift_Stat from Motion register. Note that `POINTING_DEVICE_MOTION_PIN` cannot be used with this feature; continuous polling of `get_report()` is needed to generate glide reports. ::: +## High Resolution Scrolling + +| Setting | Description | Default | +| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------- | +| `POINTING_DEVICE_HIRES_SCROLL_ENABLE` | (Optional) Enables high resolution scrolling. | _not defined_ | +| `POINTING_DEVICE_HIRES_SCROLL_MULTIPLIER`| (Optional) Resolution mutiplier value used by high resolution scrolling. Must be between 1 and 127, inclusive. | `120` | +| `POINTING_DEVICE_HIRES_SCROLL_EXPONENT` | (Optional) Resolution exponent value used by high resolution scrolling. Must be between 0 and 127, inclusive. | `0` | + +The `POINTING_DEVICE_HIRES_SCROLL_ENABLE` setting enables smooth and continuous scrolling when using trackballs or high-end encoders as mouse wheels (as opposed to the typical stepped behavior of most mouse wheels). +This works by adding a resolution multiplier to the HID descriptor for mouse wheel reports, causing the host computer to interpret each wheel tick sent by the keyboard as a fraction of a normal wheel tick. +The resolution multiplier is set to `1 / (POINTING_DEVICE_HIRES_SCROLL_MULTIPLIER * (10 ^ POINTING_DEVICE_HIRES_SCROLL_EXPONENT))`, which is `1 / 120` by default. +If even smoother scrolling than provided by this default value is desired, first try using `#define POINTING_DEVICE_HIRES_SCROLL_EXPONENT 1` which will result in a multiplier of `1 / 1200`. + +The function `pointing_device_get_hires_scroll_resolution()` can be called to get the pre-computed resolution multiplier value as a `uint16_t`. + +::: warning +High resolution scrolling usually results in larger and/or more frequent mouse reports. This can result in overflow errors and overloading of the host computer's input buffer. +To deal with these issues, define `WHEEL_EXTENDED_REPORT` and throttle the rate at which mouse reports are sent. +::: + +::: warning +Many programs, especially those that implement their own smoothing for scrolling, don't work well when they receive simultaneous vertical and horizontal wheel inputs (e.g. from high resolution drag-scroll using a trackball). +These programs typically implement their smoothing in a way that assumes the user will only scroll in one axis at a time, resulting in slow or jittery motion when trying to scroll at an angle. +This can be addressed by snapping scrolling to one axis at a time. +::: + ## Split Keyboard Configuration The following configuration options are only available when using `SPLIT_POINTING_ENABLE` see [data sync options](split_keyboard#data-sync-options). The rotation and invert `*_RIGHT` options are only used with `POINTING_DEVICE_COMBINED`. If using `POINTING_DEVICE_LEFT` or `POINTING_DEVICE_RIGHT` use the common configuration above to configure your pointing device. diff --git a/quantum/pointing_device/pointing_device.c b/quantum/pointing_device/pointing_device.c index e26416f9681..5ee65c9c61f 100644 --- a/quantum/pointing_device/pointing_device.c +++ b/quantum/pointing_device/pointing_device.c @@ -25,6 +25,10 @@ # include "mousekey.h" #endif +#ifdef POINTING_DEVICE_HIRES_SCROLL_ENABLE +# include "usb_descriptor_common.h" +#endif + #if (defined(POINTING_DEVICE_ROTATION_90) + defined(POINTING_DEVICE_ROTATION_180) + defined(POINTING_DEVICE_ROTATION_270)) > 1 # error More than one rotation selected. This is not supported. #endif @@ -78,6 +82,9 @@ uint16_t pointing_device_get_shared_cpi(void) { static report_mouse_t local_mouse_report = {}; static bool pointing_device_force_send = false; +#ifdef POINTING_DEVICE_HIRES_SCROLL_ENABLE +static uint16_t hires_scroll_resolution; +#endif #define POINTING_DEVICE_DRIVER_CONCAT(name) name##_pointing_device_driver #define POINTING_DEVICE_DRIVER(name) POINTING_DEVICE_DRIVER_CONCAT(name) @@ -176,6 +183,12 @@ __attribute__((weak)) void pointing_device_init(void) { # endif #endif } +#ifdef POINTING_DEVICE_HIRES_SCROLL_ENABLE + hires_scroll_resolution = POINTING_DEVICE_HIRES_SCROLL_MULTIPLIER; + for (int i = 0; i < POINTING_DEVICE_HIRES_SCROLL_EXPONENT; i++) { + hires_scroll_resolution *= 10; + } +#endif pointing_device_init_kb(); pointing_device_init_user(); @@ -523,3 +536,9 @@ __attribute__((weak)) void pointing_device_keycode_handler(uint16_t keycode, boo pointing_device_send(); } } + +#ifdef POINTING_DEVICE_HIRES_SCROLL_ENABLE +uint16_t pointing_device_get_hires_scroll_resolution(void) { + return hires_scroll_resolution; +} +#endif \ No newline at end of file diff --git a/quantum/pointing_device/pointing_device.h b/quantum/pointing_device/pointing_device.h index 7bc059e594e..d8b583c87e9 100644 --- a/quantum/pointing_device/pointing_device.h +++ b/quantum/pointing_device/pointing_device.h @@ -122,6 +122,10 @@ uint8_t pointing_device_handle_buttons(uint8_t buttons, bool pressed, poi report_mouse_t pointing_device_adjust_by_defines(report_mouse_t mouse_report); void pointing_device_keycode_handler(uint16_t keycode, bool pressed); +#ifdef POINTING_DEVICE_HIRES_SCROLL_ENABLE +uint16_t pointing_device_get_hires_scroll_resolution(void); +#endif + #if defined(SPLIT_POINTING_ENABLE) void pointing_device_set_shared_report(report_mouse_t report); uint16_t pointing_device_get_shared_cpi(void); diff --git a/tmk_core/protocol/usb_descriptor.c b/tmk_core/protocol/usb_descriptor.c index c7fb660b65d..ceab9eef9ab 100644 --- a/tmk_core/protocol/usb_descriptor.c +++ b/tmk_core/protocol/usb_descriptor.c @@ -165,6 +165,24 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM SharedReport[] = { # endif HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_RELATIVE), +# ifdef POINTING_DEVICE_HIRES_SCROLL_ENABLE + HID_RI_COLLECTION(8, 0x02), + // Feature report and padding (1 byte) + HID_RI_USAGE(8, 0x48), // Resolution Multiplier + HID_RI_REPORT_COUNT(8, 0x01), + HID_RI_REPORT_SIZE(8, 0x02), + HID_RI_LOGICAL_MINIMUM(8, 0x00), + HID_RI_LOGICAL_MAXIMUM(8, 0x01), + HID_RI_PHYSICAL_MINIMUM(8, 1), + HID_RI_PHYSICAL_MAXIMUM(8, POINTING_DEVICE_HIRES_SCROLL_MULTIPLIER), + HID_RI_UNIT_EXPONENT(8, POINTING_DEVICE_HIRES_SCROLL_EXPONENT), + HID_RI_FEATURE(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), + HID_RI_PHYSICAL_MINIMUM(8, 0x00), + HID_RI_PHYSICAL_MAXIMUM(8, 0x00), + HID_RI_REPORT_SIZE(8, 0x06), + HID_RI_FEATURE(8, HID_IOF_CONSTANT), +# endif + // Vertical wheel (1 or 2 bytes) HID_RI_USAGE(8, 0x38), // Wheel # ifndef WHEEL_EXTENDED_REPORT @@ -179,6 +197,7 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM SharedReport[] = { HID_RI_REPORT_SIZE(8, 0x10), # endif HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_RELATIVE), + // Horizontal wheel (1 or 2 bytes) HID_RI_USAGE_PAGE(8, 0x0C),// Consumer HID_RI_USAGE(16, 0x0238), // AC Pan @@ -194,6 +213,11 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM SharedReport[] = { HID_RI_REPORT_SIZE(8, 0x10), # endif HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_RELATIVE), + +# ifdef POINTING_DEVICE_HIRES_SCROLL_ENABLE + HID_RI_END_COLLECTION(0), +# endif + HID_RI_END_COLLECTION(0), HID_RI_END_COLLECTION(0), # ifndef MOUSE_SHARED_EP diff --git a/tmk_core/protocol/usb_descriptor_common.h b/tmk_core/protocol/usb_descriptor_common.h index 909c230a992..f782d83fbc9 100644 --- a/tmk_core/protocol/usb_descriptor_common.h +++ b/tmk_core/protocol/usb_descriptor_common.h @@ -32,3 +32,23 @@ #ifndef RAW_USAGE_ID # define RAW_USAGE_ID 0x61 #endif + +///////////////////// +// Hires Scroll Defaults + +#ifdef POINTING_DEVICE_HIRES_SCROLL_ENABLE +# ifdef POINTING_DEVICE_HIRES_SCROLL_MULTIPLIER +# if POINTING_DEVICE_HIRES_SCROLL_MULTIPLIER > 127 || POINTING_DEVICE_HIRES_SCROLL_MULTIPLIER < 1 +# error "POINTING_DEVICE_HIRES_SCROLL_MULTIPLIER must be between 1 and 127, inclusive!" +# endif +# else +# define POINTING_DEVICE_HIRES_SCROLL_MULTIPLIER 120 +# endif +# ifdef POINTING_DEVICE_HIRES_SCROLL_EXPONENT +# if POINTING_DEVICE_HIRES_SCROLL_EXPONENT > 127 || POINTING_DEVICE_HIRES_SCROLL_EXPONENT < 0 +# error "POINTING_DEVICE_HIRES_SCROLL_EXPONENT must be between 0 and 127, inclusive!" +# endif +# else +# define POINTING_DEVICE_HIRES_SCROLL_EXPONENT 0 +# endif +#endif \ No newline at end of file diff --git a/tmk_core/protocol/vusb/vusb.c b/tmk_core/protocol/vusb/vusb.c index fdbfcc17dce..56cf82e5a67 100644 --- a/tmk_core/protocol/vusb/vusb.c +++ b/tmk_core/protocol/vusb/vusb.c @@ -520,6 +520,24 @@ const PROGMEM uchar shared_hid_report[] = { # endif 0x81, 0x06, // Input (Data, Variable, Relative) +# ifdef POINTING_DEVICE_HIRES_SCROLL_ENABLE + // Feature report and padding (1 byte) + 0xA1, 0x02, // Collection (Logical) + 0x09, 0x48, // Usage (Resolution Multiplier) + 0x95, 0x01, // Report Count (1) + 0x75, 0x02, // Report Size (2) + 0x15, 0x00, // Logical Minimum (0) + 0x25, 0x01, // Logical Maximum (1) + 0x35, 0x01, // Physical Minimum (1) + 0x45, POINTING_DEVICE_HIRES_SCROLL_MULTIPLIER, // Physical Maximum (POINTING_DEVICE_HIRES_SCROLL_MULTIPLIER) + 0x55, POINTING_DEVICE_HIRES_SCROLL_EXPONENT, // Unit Exponent (POINTING_DEVICE_HIRES_SCROLL_EXPONENT) + 0xB1, 0x02, // Feature (Data, Variable, Absolute) + 0x35, 0x00, // Physical Minimum (0) + 0x45, 0x00, // Physical Maximum (0) + 0x75, 0x06, // Report Size (6) + 0xB1, 0x03, // Feature (Constant) +# endif + // Vertical wheel (1 or 2 bytes) 0x09, 0x38, // Usage (Wheel) # ifndef WHEEL_EXTENDED_REPORT @@ -534,6 +552,7 @@ const PROGMEM uchar shared_hid_report[] = { 0x75, 0x10, // Report Size (16) # endif 0x81, 0x06, // Input (Data, Variable, Relative) + // Horizontal wheel (1 or 2 bytes) 0x05, 0x0C, // Usage Page (Consumer) 0x0A, 0x38, 0x02, // Usage (AC Pan) @@ -549,8 +568,13 @@ const PROGMEM uchar shared_hid_report[] = { 0x75, 0x10, // Report Size (16) # endif 0x81, 0x06, // Input (Data, Variable, Relative) - 0xC0, // End Collection - 0xC0, // End Collection + +# ifdef POINTING_DEVICE_HIRES_SCROLL_ENABLE + 0xC0, // End Collection +# endif + + 0xC0, // End Collection + 0xC0, // End Collection #endif #ifdef EXTRAKEY_ENABLE From 8cd71917ce74dd8301e24d80f4eabb2bfa1a7c69 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 23 Apr 2025 01:27:47 +0100 Subject: [PATCH 359/365] Avoid duplication in generated community modules `rules.mk` (#25135) --- builddefs/build_keyboard.mk | 3 + .../qmk/cli/generate/community_modules.py | 65 ++++++++++++++++++- lib/python/qmk/cli/generate/rules_mk.py | 36 +--------- lib/python/qmk/info.py | 16 +---- 4 files changed, 72 insertions(+), 48 deletions(-) diff --git a/builddefs/build_keyboard.mk b/builddefs/build_keyboard.mk index fb07042bb79..514191b17d4 100644 --- a/builddefs/build_keyboard.mk +++ b/builddefs/build_keyboard.mk @@ -251,6 +251,9 @@ generated-files: $(INTERMEDIATE_OUTPUT)/src/config.h $(INTERMEDIATE_OUTPUT)/src/ endif # Community modules +COMMUNITY_RULES_MK = $(shell $(QMK_BIN) generate-community-modules-rules-mk -kb $(KEYBOARD) --quiet --escape --output $(INTERMEDIATE_OUTPUT)/src/community_rules.mk $(KEYMAP_JSON)) +include $(COMMUNITY_RULES_MK) + $(INTERMEDIATE_OUTPUT)/src/community_modules.h: $(KEYMAP_JSON) $(DD_CONFIG_FILES) @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) $(eval CMD=$(QMK_BIN) generate-community-modules-h -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/community_modules.h $(KEYMAP_JSON)) diff --git a/lib/python/qmk/cli/generate/community_modules.py b/lib/python/qmk/cli/generate/community_modules.py index 23678a2fb54..e12daccf1c4 100644 --- a/lib/python/qmk/cli/generate/community_modules.py +++ b/lib/python/qmk/cli/generate/community_modules.py @@ -8,7 +8,7 @@ import qmk.path from qmk.info import get_modules from qmk.keyboard import keyboard_completer, keyboard_folder from qmk.commands import dump_lines -from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE +from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, GPL2_HEADER_SH_LIKE, GENERATED_HEADER_SH_LIKE from qmk.community_modules import module_api_list, load_module_jsons, find_module_path @@ -121,6 +121,69 @@ def _render_core_implementation(api, modules): return lines +def _generate_features_rules(features_dict): + lines = [] + for feature, enabled in features_dict.items(): + feature = feature.upper() + enabled = 'yes' if enabled else 'no' + lines.append(f'{feature}_ENABLE={enabled}') + return lines + + +def _generate_modules_rules(keyboard, filename): + lines = [] + modules = get_modules(keyboard, filename) + if len(modules) > 0: + lines.append('') + lines.append('OPT_DEFS += -DCOMMUNITY_MODULES_ENABLE=TRUE') + for module in modules: + module_path = qmk.path.unix_style_path(find_module_path(module)) + if not module_path: + raise FileNotFoundError(f"Module '{module}' not found.") + lines.append('') + lines.append(f'COMMUNITY_MODULES += {module_path.name}') # use module_path here instead of module as it may be a subdirectory + lines.append(f'OPT_DEFS += -DCOMMUNITY_MODULE_{module_path.name.upper()}_ENABLE=TRUE') + lines.append(f'COMMUNITY_MODULE_PATHS += {module_path}') + lines.append(f'VPATH += {module_path}') + lines.append(f'SRC += $(wildcard {module_path}/{module_path.name}.c)') + lines.append(f'MODULE_NAME_{module_path.name.upper()} := {module_path.name}') + lines.append(f'MODULE_PATH_{module_path.name.upper()} := {module_path}') + lines.append(f'-include {module_path}/rules.mk') + + module_jsons = load_module_jsons(modules) + for module_json in module_jsons: + if 'features' in module_json: + lines.append('') + lines.append(f'# Module: {module_json["module_name"]}') + lines.extend(_generate_features_rules(module_json['features'])) + return lines + + +@cli.argument('-o', '--output', arg_only=True, type=qmk.path.normpath, help='File to write to') +@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") +@cli.argument('-e', '--escape', arg_only=True, action='store_true', help="Escape spaces in quiet mode") +@cli.argument('-kb', '--keyboard', arg_only=True, type=keyboard_folder, completer=keyboard_completer, help='Keyboard to generate rules.mk for.') +@cli.argument('filename', nargs='?', arg_only=True, type=qmk.path.FileType('r'), completer=FilesCompleter('.json'), help='A configurator export JSON to be compiled and flashed or a pre-compiled binary firmware file (bin/hex) to be flashed.') +@cli.subcommand('Creates a community_modules_rules_mk from a keymap.json file.') +def generate_community_modules_rules_mk(cli): + + rules_mk_lines = [GPL2_HEADER_SH_LIKE, GENERATED_HEADER_SH_LIKE] + + rules_mk_lines.extend(_generate_modules_rules(cli.args.keyboard, cli.args.filename)) + + # Show the results + dump_lines(cli.args.output, rules_mk_lines) + + if cli.args.output: + if cli.args.quiet: + if cli.args.escape: + print(cli.args.output.as_posix().replace(' ', '\\ ')) + else: + print(cli.args.output) + else: + cli.log.info('Wrote rules.mk to %s.', cli.args.output) + + @cli.argument('-o', '--output', arg_only=True, type=qmk.path.normpath, help='File to write to') @cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") @cli.argument('-kb', '--keyboard', arg_only=True, type=keyboard_folder, completer=keyboard_completer, help='Keyboard to generate community_modules.h for.') diff --git a/lib/python/qmk/cli/generate/rules_mk.py b/lib/python/qmk/cli/generate/rules_mk.py index 01d71d277fa..358a22fd1d7 100755 --- a/lib/python/qmk/cli/generate/rules_mk.py +++ b/lib/python/qmk/cli/generate/rules_mk.py @@ -6,13 +6,12 @@ from dotty_dict import dotty from argcomplete.completers import FilesCompleter from milc import cli -from qmk.info import info_json, get_modules +from qmk.info import info_json from qmk.json_schema import json_load from qmk.keyboard import keyboard_completer, keyboard_folder from qmk.commands import dump_lines, parse_configurator_json -from qmk.path import normpath, unix_style_path, FileType +from qmk.path import normpath, FileType from qmk.constants import GPL2_HEADER_SH_LIKE, GENERATED_HEADER_SH_LIKE -from qmk.community_modules import find_module_path, load_module_jsons def generate_rule(rules_key, rules_value): @@ -56,35 +55,6 @@ def generate_features_rules(features_dict): return lines -def generate_modules_rules(keyboard, filename): - lines = [] - modules = get_modules(keyboard, filename) - if len(modules) > 0: - lines.append('') - lines.append('OPT_DEFS += -DCOMMUNITY_MODULES_ENABLE=TRUE') - for module in modules: - module_path = unix_style_path(find_module_path(module)) - if not module_path: - raise FileNotFoundError(f"Module '{module}' not found.") - lines.append('') - lines.append(f'COMMUNITY_MODULES += {module_path.name}') # use module_path here instead of module as it may be a subdirectory - lines.append(f'OPT_DEFS += -DCOMMUNITY_MODULE_{module_path.name.upper()}_ENABLE=TRUE') - lines.append(f'COMMUNITY_MODULE_PATHS += {module_path}') - lines.append(f'VPATH += {module_path}') - lines.append(f'SRC += $(wildcard {module_path}/{module_path.name}.c)') - lines.append(f'MODULE_NAME_{module_path.name.upper()} := {module_path.name}') - lines.append(f'MODULE_PATH_{module_path.name.upper()} := {module_path}') - lines.append(f'-include {module_path}/rules.mk') - - module_jsons = load_module_jsons(modules) - for module_json in module_jsons: - if 'features' in module_json: - lines.append('') - lines.append(f'# Module: {module_json["module_name"]}') - lines.extend(generate_features_rules(module_json['features'])) - return lines - - @cli.argument('filename', nargs='?', arg_only=True, type=FileType('r'), completer=FilesCompleter('.json'), help='A configurator export JSON to be compiled and flashed or a pre-compiled binary firmware file (bin/hex) to be flashed.') @cli.argument('-o', '--output', arg_only=True, type=normpath, help='File to write to') @cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") @@ -135,8 +105,6 @@ def generate_rules_mk(cli): if converter: rules_mk_lines.append(generate_rule('CONVERT_TO', converter)) - rules_mk_lines.extend(generate_modules_rules(cli.args.keyboard, cli.args.filename)) - # Show the results dump_lines(cli.args.output, rules_mk_lines) diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index 93eba7376ae..d95fd3d7990 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -1066,23 +1066,13 @@ def get_modules(keyboard, keymap_filename): """ modules = [] + kb_info_json = info_json(keyboard) + modules.extend(kb_info_json.get('modules', [])) + if keymap_filename: keymap_json = parse_configurator_json(keymap_filename) if keymap_json: - kb = keymap_json.get('keyboard', None) - if not kb: - kb = keyboard - - if kb: - kb_info_json = info_json(kb) - if kb_info_json: - modules.extend(kb_info_json.get('modules', [])) - modules.extend(keymap_json.get('modules', [])) - elif keyboard: - kb_info_json = info_json(keyboard) - modules.extend(kb_info_json.get('modules', [])) - return list(dict.fromkeys(modules)) # remove dupes From c6a93b5a56c068d654ab2d44aec529dc5d3fac0b Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 23 Apr 2025 03:03:02 +0100 Subject: [PATCH 360/365] Bump rlespinasse/github-slug-action from 3 to 5 (#25021) --- .github/workflows/format_push.yml | 2 +- .github/workflows/regen_push.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/format_push.yml b/.github/workflows/format_push.yml index c861b2c1112..b865ea9eecd 100644 --- a/.github/workflows/format_push.yml +++ b/.github/workflows/format_push.yml @@ -39,7 +39,7 @@ jobs: qmk format-text -a git diff - - uses: rlespinasse/github-slug-action@v3.x + - uses: rlespinasse/github-slug-action@v5 - name: Become QMK Bot run: | diff --git a/.github/workflows/regen_push.yml b/.github/workflows/regen_push.yml index 9a05a9461df..8f22e931f10 100644 --- a/.github/workflows/regen_push.yml +++ b/.github/workflows/regen_push.yml @@ -26,7 +26,7 @@ jobs: util/regen.sh git diff - - uses: rlespinasse/github-slug-action@v3.x + - uses: rlespinasse/github-slug-action@v5 - name: Become QMK Bot run: | From 07684bcc99515c04a9edda3e1dfac2fc9eb79fac Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 23 Apr 2025 03:09:56 +0100 Subject: [PATCH 361/365] Remove `"console":false` from keyboards (#25190) --- keyboards/0xc7/61key/keyboard.json | 1 - keyboards/0xcb/1337/keyboard.json | 1 - keyboards/0xcb/static/keyboard.json | 1 - keyboards/0xcb/tutelpad/keyboard.json | 1 - keyboards/1upkeyboards/1up60hte/keyboard.json | 1 - keyboards/1upkeyboards/1up60rgb/keyboard.json | 1 - keyboards/1upkeyboards/1upocarina/keyboard.json | 1 - keyboards/1upkeyboards/1upslider8/keyboard.json | 1 - keyboards/1upkeyboards/1upsuper16v3/keyboard.json | 1 - keyboards/1upkeyboards/pi40/grid_v1_1/keyboard.json | 1 - keyboards/1upkeyboards/pi40/mit_v1_0/keyboard.json | 1 - keyboards/1upkeyboards/pi40/mit_v1_1/keyboard.json | 1 - keyboards/1upkeyboards/pi50/info.json | 1 - keyboards/1upkeyboards/pi60/keyboard.json | 1 - keyboards/1upkeyboards/pi60_hse/keyboard.json | 1 - keyboards/1upkeyboards/pi60_rgb/keyboard.json | 1 - keyboards/1upkeyboards/super16/keyboard.json | 1 - keyboards/1upkeyboards/super16v2/keyboard.json | 1 - keyboards/1upkeyboards/sweet16/info.json | 1 - keyboards/1upkeyboards/sweet16v2/kb2040/keyboard.json | 1 - keyboards/1upkeyboards/sweet16v2/pro_micro/keyboard.json | 1 - keyboards/3keyecosystem/2key2/keyboard.json | 1 - keyboards/40percentclub/4pack/keyboard.json | 1 - keyboards/40percentclub/luddite/keyboard.json | 1 - keyboards/40percentclub/mf68/keyboard.json | 1 - keyboards/40percentclub/nano/keyboard.json | 1 - keyboards/40percentclub/nein/keyboard.json | 1 - keyboards/40percentclub/polyandry/info.json | 1 - keyboards/40percentclub/sixpack/keyboard.json | 1 - keyboards/40percentclub/tomato/keyboard.json | 1 - keyboards/4pplet/aekiso60/rev_a/keyboard.json | 1 - keyboards/4pplet/bootleg/rev_a/keyboard.json | 1 - keyboards/4pplet/perk60_iso/rev_a/keyboard.json | 1 - keyboards/4pplet/steezy60/rev_a/keyboard.json | 1 - keyboards/4pplet/steezy60/rev_b/keyboard.json | 1 - keyboards/4pplet/unextended_std/rev_a/keyboard.json | 1 - keyboards/4pplet/waffling60/rev_a/keyboard.json | 1 - keyboards/4pplet/waffling60/rev_b/keyboard.json | 1 - keyboards/4pplet/waffling60/rev_c/keyboard.json | 1 - keyboards/4pplet/waffling60/rev_e/keyboard.json | 1 - keyboards/4pplet/waffling60/rev_e_ansi/keyboard.json | 1 - keyboards/4pplet/waffling60/rev_e_iso/keyboard.json | 1 - keyboards/4pplet/waffling80/rev_a/keyboard.json | 1 - keyboards/4pplet/yakiimo/rev_a/keyboard.json | 1 - keyboards/7c8/framework/keyboard.json | 1 - keyboards/9key/keyboard.json | 1 - keyboards/abatskeyboardclub/nayeon/keyboard.json | 1 - keyboards/abstract/ellipse/rev1/keyboard.json | 1 - keyboards/acekeyboard/titan60/keyboard.json | 1 - keyboards/acheron/apollo/87h/delta/keyboard.json | 1 - keyboards/acheron/apollo/87htsc/keyboard.json | 1 - keyboards/acheron/apollo/88htsc/keyboard.json | 1 - keyboards/acheron/athena/alpha/keyboard.json | 1 - keyboards/acheron/athena/beta/keyboard.json | 1 - keyboards/acheron/elongate/beta/keyboard.json | 1 - keyboards/acheron/elongate/delta/keyboard.json | 1 - keyboards/acheron/shark/beta/keyboard.json | 1 - keyboards/acheron/themis/87h/keyboard.json | 1 - keyboards/acheron/themis/87htsc/keyboard.json | 1 - keyboards/acheron/themis/88htsc/keyboard.json | 1 - keyboards/ada/infinity81/keyboard.json | 1 - keyboards/adelheid/keyboard.json | 1 - keyboards/adm42/rev4/keyboard.json | 1 - keyboards/adpenrose/akemipad/keyboard.json | 1 - keyboards/adpenrose/kintsugi/keyboard.json | 1 - keyboards/adpenrose/obi/keyboard.json | 1 - keyboards/adpenrose/shisaku/keyboard.json | 1 - keyboards/aeboards/aegis/keyboard.json | 1 - keyboards/afternoonlabs/gust/rev1/keyboard.json | 1 - keyboards/ai/keyboard.json | 1 - keyboards/ai03/altair/keyboard.json | 1 - keyboards/ai03/altair_x/keyboard.json | 1 - keyboards/ai03/duet/keyboard.json | 1 - keyboards/ai03/equinox/rev0/keyboard.json | 1 - keyboards/ai03/equinox/rev1/keyboard.json | 1 - keyboards/ai03/equinox_xl/keyboard.json | 1 - keyboards/ai03/jp60/keyboard.json | 1 - keyboards/ai03/polaris/keyboard.json | 1 - keyboards/ai03/quasar/keyboard.json | 1 - keyboards/ai03/soyuz/keyboard.json | 1 - keyboards/ai03/voyager60_alps/keyboard.json | 1 - keyboards/aidansmithdotdev/fine40/keyboard.json | 1 - keyboards/akb/ogr/keyboard.json | 1 - keyboards/akb/ogrn/keyboard.json | 1 - keyboards/akb/vero/keyboard.json | 1 - keyboards/akko/5087/keyboard.json | 1 - keyboards/akko/5108/keyboard.json | 1 - keyboards/akko/acr87/keyboard.json | 1 - keyboards/akko/top40/keyboard.json | 1 - keyboards/alf/x11/keyboard.json | 1 - keyboards/alf/x2/keyboard.json | 1 - keyboards/alfredslab/swift65/hotswap/keyboard.json | 1 - keyboards/alfredslab/swift65/solder/keyboard.json | 1 - keyboards/alhenkb/macropad5x4/keyboard.json | 1 - keyboards/alpha/keyboard.json | 1 - keyboards/amag23/keyboard.json | 1 - keyboards/amjkeyboard/amj40/keyboard.json | 1 - keyboards/amjkeyboard/amj60/keyboard.json | 1 - keyboards/amjkeyboard/amj84/keyboard.json | 1 - keyboards/an_achronism/tetromino/keyboard.json | 1 - keyboards/anavi/arrows/keyboard.json | 1 - keyboards/anavi/knob1/keyboard.json | 1 - keyboards/anavi/knobs3/keyboard.json | 1 - keyboards/anavi/macropad10/keyboard.json | 1 - keyboards/anavi/macropad12/keyboard.json | 1 - keyboards/anavi/macropad8/keyboard.json | 1 - keyboards/andean_condor/keyboard.json | 1 - keyboards/ano/keyboard.json | 1 - keyboards/aos/tkl/keyboard.json | 1 - keyboards/aplyard/aplx6/rev1/keyboard.json | 1 - keyboards/aplyard/aplx6/rev2/keyboard.json | 1 - keyboards/ares/keyboard.json | 1 - keyboards/argo_works/ishi/80/mk0_avr/keyboard.json | 1 - keyboards/argo_works/ishi/80/mk0_avr_extra/keyboard.json | 1 - keyboards/arisu/keyboard.json | 1 - keyboards/arrayperipherals/1x4p1/keyboard.json | 1 - keyboards/artemis/paragon/info.json | 1 - keyboards/ash_xiix/keyboard.json | 1 - keyboards/ask55/keyboard.json | 1 - keyboards/atlantis/ak81_ve/keyboard.json | 1 - keyboards/atlantis/ps17/keyboard.json | 1 - keyboards/atlas_65/keyboard.json | 1 - keyboards/atomic/keyboard.json | 1 - keyboards/atreus/feather/keyboard.json | 3 +-- keyboards/atxkb/1894/keyboard.json | 1 - keyboards/aves60/keyboard.json | 1 - keyboards/aves65/keyboard.json | 1 - keyboards/axolstudio/foundation_gamma/keyboard.json | 1 - keyboards/axolstudio/yeti/hotswap/keyboard.json | 1 - keyboards/axolstudio/yeti/soldered/keyboard.json | 1 - keyboards/bacca70/keyboard.json | 1 - keyboards/baguette/keyboard.json | 1 - keyboards/balloondogcaps/tr90/keyboard.json | 1 - keyboards/balloondogcaps/tr90pm/keyboard.json | 1 - keyboards/barracuda/keyboard.json | 1 - keyboards/bastardkb/dilemma/3x5_3/keyboard.json | 1 - keyboards/bastardkb/dilemma/4x6_4/keyboard.json | 1 - keyboards/bear_face/info.json | 1 - keyboards/beatervan/keyboard.json | 1 - keyboards/beekeeb/piantor/keyboard.json | 1 - keyboards/beekeeb/piantor_pro/keyboard.json | 1 - keyboards/bfake/keyboard.json | 1 - keyboards/binepad/bn006/keyboard.json | 1 - keyboards/binepad/bn009/info.json | 1 - keyboards/binepad/bnr1/info.json | 1 - keyboards/binepad/pixie/keyboard.json | 1 - keyboards/bioi/f60/keyboard.json | 1 - keyboards/bioi/s65/keyboard.json | 1 - keyboards/black_hellebore/keyboard.json | 1 - keyboards/blackplum/keyboard.json | 1 - keyboards/blank/blank01/keyboard.json | 1 - keyboards/blockboy/ac980mini/keyboard.json | 1 - keyboards/boardrun/bizarre/keyboard.json | 1 - keyboards/boardrun/classic/keyboard.json | 1 - keyboards/boardwalk/keyboard.json | 1 - keyboards/bobpad/keyboard.json | 1 - keyboards/bolsa/bolsalice/keyboard.json | 1 - keyboards/bolsa/damapad/keyboard.json | 1 - keyboards/bop/keyboard.json | 1 - keyboards/boston/keyboard.json | 1 - keyboards/bpiphany/four_banger/keyboard.json | 1 - keyboards/bpiphany/frosty_flake/20130602/keyboard.json | 1 - keyboards/bpiphany/frosty_flake/20140521/keyboard.json | 1 - keyboards/bpiphany/sixshooter/keyboard.json | 1 - keyboards/bredworks/wyvern_hs/keyboard.json | 1 - keyboards/bschwind/key_ripper/keyboard.json | 1 - keyboards/bthlabs/geekpad/keyboard.json | 1 - keyboards/budgy/keyboard.json | 1 - keyboards/buildakb/mw60/keyboard.json | 1 - keyboards/buildakb/potato65/keyboard.json | 1 - keyboards/buildakb/potato65hs/keyboard.json | 1 - keyboards/buildakb/potato65s/keyboard.json | 1 - keyboards/butterkeebs/pocketpad/keyboard.json | 1 - keyboards/cablecardesigns/cypher/rev6/keyboard.json | 1 - keyboards/cablecardesigns/phoenix/keyboard.json | 1 - keyboards/caffeinated/serpent65/keyboard.json | 1 - keyboards/canary/canary60rgb/v1/keyboard.json | 1 - keyboards/cannonkeys/adelie/keyboard.json | 1 - keyboards/cannonkeys/atlas_alps/keyboard.json | 1 - keyboards/cannonkeys/bakeneko60_iso_hs/keyboard.json | 1 - keyboards/cannonkeys/bakeneko65_iso_hs/keyboard.json | 1 - keyboards/cannonkeys/bastion60/keyboard.json | 1 - keyboards/cannonkeys/bastion65/keyboard.json | 1 - keyboards/cannonkeys/bastion75/keyboard.json | 1 - keyboards/cannonkeys/bastiontkl/keyboard.json | 1 - keyboards/cannonkeys/brutalv2_1800/keyboard.json | 1 - keyboards/cannonkeys/caerdroia/keyboard.json | 1 - keyboards/cannonkeys/chimera65_hs/keyboard.json | 1 - keyboards/cannonkeys/ellipse/keyboard.json | 1 - keyboards/cannonkeys/ellipse_hs/keyboard.json | 1 - keyboards/cannonkeys/leviatan/keyboard.json | 1 - keyboards/cannonkeys/meetuppad2023/keyboard.json | 1 - keyboards/cannonkeys/moment/keyboard.json | 1 - keyboards/cannonkeys/moment_hs/keyboard.json | 1 - keyboards/cannonkeys/nearfield/keyboard.json | 1 - keyboards/cannonkeys/ortho48v2/keyboard.json | 1 - keyboards/cannonkeys/ortho60v2/keyboard.json | 1 - keyboards/cannonkeys/petrichor/keyboard.json | 1 - keyboards/cannonkeys/reverie/info.json | 1 - keyboards/cannonkeys/ripple/keyboard.json | 1 - keyboards/cannonkeys/ripple_hs/keyboard.json | 1 - keyboards/cannonkeys/satisfaction75/info.json | 1 - keyboards/cannonkeys/serenity/keyboard.json | 1 - keyboards/cannonkeys/typeb/keyboard.json | 1 - keyboards/cannonkeys/vector/keyboard.json | 1 - keyboards/cannonkeys/vida/info.json | 1 - keyboards/cantor/keyboard.json | 1 - keyboards/capsunlocked/cu24/keyboard.json | 1 - keyboards/capsunlocked/cu65/keyboard.json | 1 - keyboards/capsunlocked/cu7/keyboard.json | 1 - keyboards/capsunlocked/cu80/v1/keyboard.json | 1 - keyboards/carbo65/keyboard.json | 1 - keyboards/cest73/tkm/keyboard.json | 1 - keyboards/chalice/keyboard.json | 1 - keyboards/chaos65/keyboard.json | 1 - keyboards/charue/sunsetter_r2/keyboard.json | 1 - keyboards/chavdai40/rev1/keyboard.json | 1 - keyboards/chavdai40/rev2/keyboard.json | 1 - keyboards/checkerboards/axon40/keyboard.json | 1 - keyboards/checkerboards/candybar_ortho/keyboard.json | 1 - keyboards/checkerboards/g_idb60/keyboard.json | 1 - keyboards/checkerboards/nop60/keyboard.json | 1 - keyboards/checkerboards/plexus75/keyboard.json | 1 - keyboards/checkerboards/plexus75_he/keyboard.json | 1 - keyboards/checkerboards/pursuit40/keyboard.json | 1 - keyboards/checkerboards/quark_lp/keyboard.json | 1 - keyboards/checkerboards/quark_plus/keyboard.json | 1 - keyboards/checkerboards/ud40_ortho_alt/keyboard.json | 1 - keyboards/cherrybstudio/cb1800/keyboard.json | 1 - keyboards/cherrybstudio/cb65/keyboard.json | 1 - keyboards/cherrybstudio/cb87/keyboard.json | 1 - keyboards/cherrybstudio/cb87rgb/keyboard.json | 1 - keyboards/cherrybstudio/cb87v2/keyboard.json | 1 - keyboards/cheshire/curiosity/keyboard.json | 1 - keyboards/chew/keyboard.json | 1 - keyboards/chickenman/ciel/keyboard.json | 1 - keyboards/chickenman/ciel65/keyboard.json | 1 - keyboards/chill/ghoul/keyboard.json | 1 - keyboards/chlx/lfn_merro60/keyboard.json | 1 - keyboards/chlx/merro60/keyboard.json | 1 - keyboards/chlx/piche60/keyboard.json | 1 - keyboards/chlx/ppr_merro60/keyboard.json | 1 - keyboards/chocofly/v1/keyboard.json | 1 - keyboards/chocv/keyboard.json | 1 - keyboards/chord/zero/keyboard.json | 1 - keyboards/chosfox/cf81/keyboard.json | 1 - keyboards/chouchou/keyboard.json | 1 - keyboards/chromatonemini/keyboard.json | 1 - keyboards/churrosoft/deck8/info.json | 1 - keyboards/cipulot/kallos/keyboard.json | 1 - keyboards/ck60i/keyboard.json | 1 - keyboards/ckeys/handwire_101/keyboard.json | 1 - keyboards/ckeys/obelus/keyboard.json | 1 - keyboards/ckeys/thedora/keyboard.json | 1 - keyboards/ckeys/washington/keyboard.json | 1 - keyboards/clap_studio/flame60/keyboard.json | 1 - keyboards/clawsome/fightpad/keyboard.json | 1 - keyboards/clueboard/66/rev3/keyboard.json | 1 - keyboards/cmm_studio/saka68/solder/keyboard.json | 1 - keyboards/coban/pad3a/keyboard.json | 1 - keyboards/compound/keyboard.json | 1 - keyboards/concreteflowers/cor/keyboard.json | 1 - keyboards/concreteflowers/cor_tkl/keyboard.json | 1 - keyboards/contender/keyboard.json | 1 - keyboards/controllerworks/city42/keyboard.json | 1 - keyboards/controllerworks/mini36/keyboard.json | 1 - keyboards/controllerworks/mini42/keyboard.json | 1 - keyboards/converter/a1200/miss1200/keyboard.json | 1 - keyboards/converter/a1200/mistress1200/keyboard.json | 1 - keyboards/converter/a1200/teensy2pp/keyboard.json | 1 - keyboards/cool836a/keyboard.json | 1 - keyboards/copenhagen_click/click_pad_v1/keyboard.json | 1 - keyboards/coseyfannitutti/discipad/keyboard.json | 1 - keyboards/coseyfannitutti/romeo/keyboard.json | 1 - keyboards/cosmo65/keyboard.json | 1 - keyboards/cozykeys/bloomer/v2/keyboard.json | 1 - keyboards/cozykeys/bloomer/v3/keyboard.json | 1 - keyboards/cozykeys/speedo/v2/keyboard.json | 1 - keyboards/cradio/keyboard.json | 1 - keyboards/crawlpad/keyboard.json | 1 - keyboards/crazy_keyboard_68/keyboard.json | 1 - keyboards/crbn/keyboard.json | 1 - keyboards/creatkeebs/glacier/keyboard.json | 1 - keyboards/creatkeebs/thera/keyboard.json | 1 - keyboards/custommk/ergostrafer/keyboard.json | 1 - keyboards/custommk/evo70/keyboard.json | 1 - keyboards/custommk/evo70_r2/keyboard.json | 1 - keyboards/cutie_club/borsdorf/keyboard.json | 1 - keyboards/cutie_club/fidelity/keyboard.json | 1 - keyboards/cutie_club/giant_macro_pad/keyboard.json | 1 - keyboards/cutie_club/keebcats/denis/keyboard.json | 1 - keyboards/cutie_club/keebcats/dougal/keyboard.json | 1 - keyboards/cutie_club/novus/keyboard.json | 1 - keyboards/cutie_club/wraith/keyboard.json | 1 - keyboards/cx60/keyboard.json | 1 - keyboards/cybergear/macro25/keyboard.json | 1 - keyboards/dailycraft/bat43/info.json | 1 - keyboards/dailycraft/owl8/keyboard.json | 1 - keyboards/dailycraft/stickey4/keyboard.json | 1 - keyboards/daji/seis_cinco/keyboard.json | 1 - keyboards/dark/magnum_ergo_1/keyboard.json | 1 - keyboards/darkproject/kd83a_bfg_edition/keyboard.json | 1 - keyboards/darmoshark/k3/keyboard.json | 1 - keyboards/db/db63/keyboard.json | 1 - keyboards/decent/tkl/keyboard.json | 1 - keyboards/delikeeb/flatbread60/keyboard.json | 1 - keyboards/delikeeb/vaguettelite/keyboard.json | 1 - keyboards/delikeeb/vanana/rev1/keyboard.json | 1 - keyboards/delikeeb/vanana/rev2/keyboard.json | 1 - keyboards/delikeeb/vaneela/keyboard.json | 1 - keyboards/delikeeb/vaneelaex/keyboard.json | 1 - keyboards/delikeeb/waaffle/rev3/elite_c/keyboard.json | 1 - keyboards/delikeeb/waaffle/rev3/pro_micro/keyboard.json | 1 - keyboards/deltapad/keyboard.json | 1 - keyboards/demiurge/keyboard.json | 1 - keyboards/deng/djam/keyboard.json | 1 - keyboards/dinofizz/fnrow/v1/keyboard.json | 1 - keyboards/dk60/keyboard.json | 1 - keyboards/dm9records/lain/keyboard.json | 1 - keyboards/dmqdesign/spin/keyboard.json | 1 - keyboards/dnworks/frltkl/keyboard.json | 1 - keyboards/dnworks/sbl/keyboard.json | 1 - keyboards/do60/keyboard.json | 1 - keyboards/doio/kb04/keyboard.json | 1 - keyboards/doio/kb09/keyboard.json | 1 - keyboards/doio/kb12/keyboard.json | 1 - keyboards/doio/kb19/keyboard.json | 1 - keyboards/doio/kb30/keyboard.json | 1 - keyboards/doio/kb38/keyboard.json | 1 - keyboards/donutcables/budget96/keyboard.json | 1 - keyboards/donutcables/scrabblepad/keyboard.json | 1 - keyboards/doro67/rgb/keyboard.json | 1 - keyboards/dotmod/dymium65/keyboard.json | 1 - keyboards/dp3000/rev1/keyboard.json | 1 - keyboards/dp3000/rev2/keyboard.json | 1 - keyboards/draytronics/daisy/keyboard.json | 1 - keyboards/draytronics/elise/keyboard.json | 1 - keyboards/draytronics/elise_v2/keyboard.json | 1 - keyboards/drewkeys/iskar/keyboard.json | 1 - keyboards/drhigsby/bkf/keyboard.json | 1 - keyboards/drhigsby/dubba175/keyboard.json | 1 - keyboards/drhigsby/ogurec/info.json | 1 - keyboards/drhigsby/packrat/keyboard.json | 1 - keyboards/drop/alt/v2/keyboard.json | 1 - keyboards/drop/cstm65/keyboard.json | 1 - keyboards/drop/cstm80/keyboard.json | 1 - keyboards/drop/ctrl/v2/keyboard.json | 1 - keyboards/drop/sense75/keyboard.json | 1 - keyboards/drop/shift/v2/keyboard.json | 1 - keyboards/drop/thekey/v1/keyboard.json | 1 - keyboards/drop/thekey/v2/keyboard.json | 1 - keyboards/druah/dk_saver_redux/keyboard.json | 1 - keyboards/dtisaac/cg108/keyboard.json | 1 - keyboards/dtisaac/dosa40rgb/keyboard.json | 1 - keyboards/dtisaac/dtisaac01/keyboard.json | 1 - keyboards/durgod/k320/base/keyboard.json | 1 - keyboards/dyz/dyz40/keyboard.json | 1 - keyboards/dyz/dyz60/keyboard.json | 1 - keyboards/dyz/dyz60_hs/keyboard.json | 1 - keyboards/dyz/dyz_tkl/keyboard.json | 1 - keyboards/dyz/selka40/keyboard.json | 1 - keyboards/dyz/synthesis60/keyboard.json | 1 - keyboards/dz60/keyboard.json | 1 - keyboards/dztech/bocc/keyboard.json | 1 - keyboards/dztech/duo_s/keyboard.json | 1 - keyboards/dztech/dz60v2/keyboard.json | 1 - keyboards/dztech/dz65rgb/v1/keyboard.json | 1 - keyboards/dztech/dz65rgb/v2/keyboard.json | 1 - keyboards/dztech/dz96/keyboard.json | 1 - keyboards/dztech/endless80/keyboard.json | 1 - keyboards/dztech/mellow/keyboard.json | 1 - keyboards/dztech/pluto/keyboard.json | 1 - keyboards/dztech/tofu/ii/v1/keyboard.json | 1 - keyboards/dztech/tofu/jr/v1/keyboard.json | 1 - keyboards/dztech/tofu/jr/v2/keyboard.json | 1 - keyboards/dztech/tofu60/keyboard.json | 1 - keyboards/earth_rover/keyboard.json | 1 - keyboards/eason/aeroboard/keyboard.json | 1 - keyboards/eason/capsule65/keyboard.json | 1 - keyboards/eason/greatsword80/keyboard.json | 1 - keyboards/eason/meow65/keyboard.json | 1 - keyboards/eason/void65h/keyboard.json | 1 - keyboards/ebastler/e80_1800/keyboard.json | 1 - keyboards/ebastler/isometria_75/rev1/keyboard.json | 1 - keyboards/eco/rev1/keyboard.json | 1 - keyboards/eco/rev2/keyboard.json | 1 - keyboards/edc40/keyboard.json | 1 - keyboards/edda/keyboard.json | 1 - keyboards/emajesty/eiri/keyboard.json | 1 - keyboards/emi20/keyboard.json | 1 - keyboards/emptystring/nqg/keyboard.json | 1 - keyboards/eniigmakeyboards/ek60/keyboard.json | 1 - keyboards/eniigmakeyboards/ek65/keyboard.json | 1 - keyboards/eniigmakeyboards/ek87/keyboard.json | 1 - keyboards/enviousdesign/60f/keyboard.json | 1 - keyboards/enviousdesign/65m/keyboard.json | 1 - keyboards/enviousdesign/commissions/mini1800/keyboard.json | 1 - keyboards/enviousdesign/delirium/rev0/keyboard.json | 1 - keyboards/enviousdesign/delirium/rev1/keyboard.json | 1 - keyboards/enviousdesign/delirium/rgb/keyboard.json | 1 - keyboards/enviousdesign/mcro/rev1/keyboard.json | 1 - keyboards/era/divine/keyboard.json | 1 - keyboards/era/era65/keyboard.json | 1 - keyboards/esca/getawayvan/keyboard.json | 1 - keyboards/esca/getawayvan_f042/keyboard.json | 1 - keyboards/eternal_keypad/keyboard.json | 1 - keyboards/etiennecollin/wave/keyboard.json | 1 - keyboards/eve/meteor/keyboard.json | 1 - keyboards/evil80/keyboard.json | 1 - keyboards/evolv/keyboard.json | 1 - keyboards/evyd13/fin_pad/keyboard.json | 1 - keyboards/evyd13/gh80_3700/keyboard.json | 1 - keyboards/evyd13/gud70/keyboard.json | 1 - keyboards/evyd13/mx5160/keyboard.json | 1 - keyboards/evyd13/nt210/keyboard.json | 1 - keyboards/evyd13/nt650/keyboard.json | 1 - keyboards/evyd13/nt750/keyboard.json | 1 - keyboards/evyd13/nt980/keyboard.json | 1 - keyboards/evyd13/plain60/keyboard.json | 1 - keyboards/evyd13/quackfire/keyboard.json | 1 - keyboards/evyd13/solheim68/keyboard.json | 1 - keyboards/exclusive/e65/keyboard.json | 1 - keyboards/exclusive/e6_rgb/keyboard.json | 1 - keyboards/exclusive/e6v2/le/keyboard.json | 1 - keyboards/exclusive/e6v2/le_bmc/keyboard.json | 1 - keyboards/exclusive/e6v2/oe/keyboard.json | 1 - keyboards/exclusive/e6v2/oe_bmc/keyboard.json | 1 - keyboards/exclusive/e7v1/keyboard.json | 1 - keyboards/exclusive/e7v1se/keyboard.json | 1 - keyboards/exent/keyboard.json | 1 - keyboards/eyeohdesigns/babyv/keyboard.json | 1 - keyboards/eyeohdesigns/theboulevard/keyboard.json | 1 - keyboards/facew/keyboard.json | 1 - keyboards/falsonix/fx19/keyboard.json | 1 - keyboards/fatotesa/keyboard.json | 1 - keyboards/feker/ik75/keyboard.json | 1 - keyboards/ffkeebs/puca/keyboard.json | 1 - keyboards/ffkeebs/siris/keyboard.json | 1 - keyboards/flashquark/horizon_z/keyboard.json | 1 - keyboards/flehrad/numbrero/keyboard.json | 1 - keyboards/flehrad/snagpad/keyboard.json | 1 - keyboards/flehrad/tradestation/keyboard.json | 1 - keyboards/fleuron/keyboard.json | 1 - keyboards/flx/lodestone/keyboard.json | 1 - keyboards/flx/virgo/keyboard.json | 1 - keyboards/flxlb/zplit/keyboard.json | 1 - keyboards/foostan/cornelius/keyboard.json | 1 - keyboards/forever65/keyboard.json | 1 - keyboards/foxlab/key65/hotswap/keyboard.json | 1 - keyboards/foxlab/key65/universal/keyboard.json | 1 - keyboards/foxlab/leaf60/hotswap/keyboard.json | 1 - keyboards/foxlab/leaf60/universal/keyboard.json | 1 - keyboards/foxlab/time80/keyboard.json | 1 - keyboards/foxlab/time_re/hotswap/keyboard.json | 1 - keyboards/foxlab/time_re/universal/keyboard.json | 1 - keyboards/fr4/southpaw75/keyboard.json | 1 - keyboards/fr4/unix60/keyboard.json | 1 - keyboards/free_willy/keyboard.json | 1 - keyboards/friedrich/keyboard.json | 1 - keyboards/frobiac/blackbowl/keyboard.json | 1 - keyboards/frobiac/blackflat/keyboard.json | 1 - keyboards/frobiac/hypernano/keyboard.json | 1 - keyboards/frobiac/redtilt/keyboard.json | 1 - keyboards/frooastboard/nano/keyboard.json | 1 - keyboards/frooastboard/walnut/keyboard.json | 1 - keyboards/fs_streampad/keyboard.json | 1 - keyboards/ft/mars65/keyboard.json | 1 - keyboards/ft/mars80/keyboard.json | 1 - keyboards/function96/v1/keyboard.json | 1 - keyboards/function96/v2/keyboard.json | 1 - keyboards/fungo/rev1/keyboard.json | 1 - keyboards/funky40/keyboard.json | 1 - keyboards/gami_studio/lex60/keyboard.json | 1 - keyboards/geekboards/macropad_v2/keyboard.json | 1 - keyboards/geekboards/tester/keyboard.json | 1 - keyboards/geistmaschine/geist/keyboard.json | 1 - keyboards/geistmaschine/macropod/keyboard.json | 1 - keyboards/generic_panda/panda65_01/keyboard.json | 1 - keyboards/genone/eclipse_65/keyboard.json | 1 - keyboards/genone/g1_65/keyboard.json | 1 - keyboards/geonworks/ee_at/keyboard.json | 1 - keyboards/geonworks/frogmini/fmh/keyboard.json | 1 - keyboards/geonworks/frogmini/fms/keyboard.json | 1 - keyboards/geonworks/w1_at/keyboard.json | 1 - keyboards/gh60/revc/keyboard.json | 1 - keyboards/gh60/v1p3/keyboard.json | 1 - keyboards/gh80_3000/keyboard.json | 1 - keyboards/ghs/jem/info.json | 1 - keyboards/ghs/rar/keyboard.json | 1 - keyboards/ghs/xls/keyboard.json | 1 - keyboards/giabalanai/keyboard.json | 1 - keyboards/gizmo_engineering/gk6/keyboard.json | 1 - keyboards/gkeyboard/gkb_m16/keyboard.json | 1 - keyboards/gkeyboard/gpad8_2r/keyboard.json | 1 - keyboards/gkeyboard/greatpad/keyboard.json | 1 - keyboards/gl516/xr63gl/keyboard.json | 1 - keyboards/gmmk/gmmk2/p65/ansi/keyboard.json | 1 - keyboards/gmmk/gmmk2/p65/iso/keyboard.json | 1 - keyboards/gmmk/gmmk2/p96/ansi/keyboard.json | 1 - keyboards/gmmk/gmmk2/p96/iso/keyboard.json | 1 - keyboards/gmmk/pro/rev1/ansi/keyboard.json | 1 - keyboards/gmmk/pro/rev1/iso/keyboard.json | 1 - keyboards/gmmk/pro/rev2/ansi/keyboard.json | 1 - keyboards/gmmk/pro/rev2/iso/keyboard.json | 1 - keyboards/gorthage_truck/keyboard.json | 1 - keyboards/gowla/keyboard.json | 1 - keyboards/gray_studio/aero75/keyboard.json | 1 - keyboards/gray_studio/apollo80/keyboard.json | 1 - keyboards/gray_studio/hb85/keyboard.json | 1 - keyboards/gray_studio/space65/keyboard.json | 1 - keyboards/gray_studio/space65r3/keyboard.json | 1 - keyboards/gray_studio/think65v3/keyboard.json | 1 - keyboards/gregandcin/teaqueen/keyboard.json | 1 - keyboards/gummykey/keyboard.json | 1 - keyboards/gvalchca/ga150/keyboard.json | 1 - keyboards/gvalchca/spaccboard/keyboard.json | 1 - keyboards/h0oni/deskpad/keyboard.json | 1 - keyboards/h0oni/hotduck/keyboard.json | 1 - keyboards/hackpad/keyboard.json | 1 - keyboards/halokeys/elemental75/keyboard.json | 1 - keyboards/han60/keyboard.json | 1 - keyboards/hand88/keyboard.json | 1 - keyboards/handwired/10k/keyboard.json | 1 - keyboards/handwired/2x5keypad/keyboard.json | 1 - keyboards/handwired/6key/keyboard.json | 1 - keyboards/handwired/6macro/keyboard.json | 1 - keyboards/handwired/acacia/keyboard.json | 1 - keyboards/handwired/aim65/keyboard.json | 1 - keyboards/handwired/alcor_dactyl/keyboard.json | 1 - keyboards/handwired/amigopunk/keyboard.json | 1 - keyboards/handwired/angel/keyboard.json | 1 - keyboards/handwired/aplx2/keyboard.json | 1 - keyboards/handwired/aranck/keyboard.json | 1 - keyboards/handwired/atreus50/keyboard.json | 1 - keyboards/handwired/axon/keyboard.json | 1 - keyboards/handwired/baredev/rev1/keyboard.json | 1 - keyboards/handwired/bolek/keyboard.json | 1 - keyboards/handwired/boss566y/redragon_vara/keyboard.json | 1 - keyboards/handwired/brain/keyboard.json | 1 - keyboards/handwired/bstk100/keyboard.json | 1 - keyboards/handwired/cans12er/keyboard.json | 1 - keyboards/handwired/chiron/keyboard.json | 1 - keyboards/handwired/co60/rev1/keyboard.json | 1 - keyboards/handwired/co60/rev6/keyboard.json | 1 - keyboards/handwired/co60/rev7/keyboard.json | 1 - keyboards/handwired/colorlice/keyboard.json | 1 - keyboards/handwired/concertina/64key/keyboard.json | 1 - keyboards/handwired/consolekeyboard/18key/keyboard.json | 1 - keyboards/handwired/consolekeyboard/20key/keyboard.json | 1 - keyboards/handwired/consolekeyboard/27key/keyboard.json | 1 - keyboards/handwired/consolekeyboard/30key/keyboard.json | 1 - keyboards/handwired/croxsplit44/keyboard.json | 1 - keyboards/handwired/curiosity/keyboard.json | 1 - keyboards/handwired/dactyl_cc/keyboard.json | 1 - keyboards/handwired/dactyl_kinesis/keyboard.json | 1 - keyboards/handwired/dactyl_lightcycle/keyboard.json | 1 - keyboards/handwired/dactyl_manuform/4x5/keyboard.json | 1 - keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json | 1 - keyboards/handwired/dactyl_manuform/4x6/keyboard.json | 1 - keyboards/handwired/dactyl_manuform/4x6_4_3/keyboard.json | 1 - keyboards/handwired/dactyl_manuform/4x6_5/keyboard.json | 1 - keyboards/handwired/dactyl_manuform/5x6/keyboard.json | 1 - keyboards/handwired/dactyl_manuform/5x6_2_5/keyboard.json | 1 - keyboards/handwired/dactyl_manuform/5x6_5/keyboard.json | 1 - keyboards/handwired/dactyl_manuform/5x6_6/keyboard.json | 1 - keyboards/handwired/dactyl_manuform/5x6_68/keyboard.json | 1 - keyboards/handwired/dactyl_manuform/5x7/keyboard.json | 1 - keyboards/handwired/dactyl_manuform/6x6_4/keyboard.json | 1 - keyboards/handwired/dactyl_manuform/6x7/keyboard.json | 1 - keyboards/handwired/dactyl_manuform_pi_pico/keyboard.json | 1 - keyboards/handwired/dactyl_maximus/keyboard.json | 1 - keyboards/handwired/dactyl_promicro/keyboard.json | 1 - keyboards/handwired/dactyl_rah/keyboard.json | 1 - keyboards/handwired/dactyl_tracer/keyboard.json | 1 - keyboards/handwired/dactylmacropad/keyboard.json | 1 - keyboards/handwired/daskeyboard/daskeyboard4/keyboard.json | 1 - keyboards/handwired/dc/mc/001/keyboard.json | 1 - keyboards/handwired/ddg_56/keyboard.json | 1 - keyboards/handwired/dmote/keyboard.json | 1 - keyboards/handwired/eagleii/keyboard.json | 1 - keyboards/handwired/elrgo_s/keyboard.json | 1 - keyboards/handwired/frankie_macropad/keyboard.json | 1 - keyboards/handwired/freoduo/keyboard.json | 1 - keyboards/handwired/heisenberg/keyboard.json | 1 - keyboards/handwired/hnah108/keyboard.json | 1 - keyboards/handwired/hnah40/keyboard.json | 1 - keyboards/handwired/hnah40rgb/keyboard.json | 1 - keyboards/handwired/hwpm87/keyboard.json | 1 - keyboards/handwired/iso85k/keyboard.json | 1 - keyboards/handwired/itstleo9/info.json | 1 - keyboards/handwired/jn68m/keyboard.json | 1 - keyboards/handwired/jopr/keyboard.json | 1 - keyboards/handwired/jotanck/keyboard.json | 1 - keyboards/handwired/jotlily60/keyboard.json | 1 - keyboards/handwired/juliet/keyboard.json | 1 - keyboards/handwired/k8split/keyboard.json | 1 - keyboards/handwired/kbod/keyboard.json | 1 - keyboards/handwired/ks63/keyboard.json | 1 - keyboards/handwired/leftynumpad/keyboard.json | 1 - keyboards/handwired/lovelive9/keyboard.json | 1 - keyboards/handwired/marauder/keyboard.json | 1 - keyboards/handwired/marek128b/ergosplit44/keyboard.json | 1 - keyboards/handwired/mechboards_micropad/keyboard.json | 1 - keyboards/handwired/minorca/keyboard.json | 1 - keyboards/handwired/mutepad/keyboard.json | 1 - keyboards/handwired/nicekey/keyboard.json | 1 - keyboards/handwired/not_so_minidox/keyboard.json | 1 - keyboards/handwired/nozbe_macro/keyboard.json | 1 - keyboards/handwired/obuwunkunubi/spaget/keyboard.json | 1 - keyboards/handwired/oem_ansi_fullsize/keyboard.json | 1 - keyboards/handwired/onekey/info.json | 1 - keyboards/handwired/orbweaver/keyboard.json | 1 - keyboards/handwired/ortho5x14/keyboard.json | 1 - keyboards/handwired/p65rgb/keyboard.json | 1 - keyboards/handwired/petruziamini/keyboard.json | 1 - keyboards/handwired/phantagom/baragon/keyboard.json | 1 - keyboards/handwired/phantagom/varan/keyboard.json | 1 - keyboards/handwired/polly40/keyboard.json | 1 - keyboards/handwired/prime_exl/keyboard.json | 1 - keyboards/handwired/prime_exl_plus/keyboard.json | 1 - keyboards/handwired/pteron/keyboard.json | 1 - keyboards/handwired/pteron38/keyboard.json | 1 - keyboards/handwired/pteron44/keyboard.json | 1 - keyboards/handwired/qc60/proto/keyboard.json | 1 - keyboards/handwired/rabijl/rotary_numpad/keyboard.json | 1 - keyboards/handwired/riblee_split/keyboard.json | 1 - keyboards/handwired/scottokeebs/scotto34/keyboard.json | 1 - keyboards/handwired/scottokeebs/scotto36/keyboard.json | 1 - keyboards/handwired/scottokeebs/scotto37/keyboard.json | 1 - keyboards/handwired/scottokeebs/scotto40/keyboard.json | 1 - keyboards/handwired/scottokeebs/scotto61/keyboard.json | 1 - keyboards/handwired/scottokeebs/scotto9/keyboard.json | 1 - keyboards/handwired/scottokeebs/scottoalp/keyboard.json | 1 - keyboards/handwired/scottokeebs/scottocmd/keyboard.json | 1 - keyboards/handwired/scottokeebs/scottodeck/keyboard.json | 1 - keyboards/handwired/scottokeebs/scottoergo/keyboard.json | 1 - keyboards/handwired/scottokeebs/scottofly/keyboard.json | 1 - keyboards/handwired/scottokeebs/scottofrog/keyboard.json | 1 - keyboards/handwired/scottokeebs/scottogame/keyboard.json | 1 - keyboards/handwired/scottokeebs/scottohazard/keyboard.json | 1 - keyboards/handwired/scottokeebs/scottoinvader/keyboard.json | 1 - keyboards/handwired/scottokeebs/scottokatana/keyboard.json | 1 - keyboards/handwired/scottokeebs/scottolong/keyboard.json | 1 - keyboards/handwired/scottokeebs/scottomacrodeck/keyboard.json | 1 - keyboards/handwired/scottokeebs/scottomouse/keyboard.json | 1 - keyboards/handwired/scottokeebs/scottonum/keyboard.json | 1 - keyboards/handwired/scottokeebs/scottoslant/keyboard.json | 1 - keyboards/handwired/scottokeebs/scottosplit/keyboard.json | 1 - keyboards/handwired/scottokeebs/scottostarter/keyboard.json | 1 - keyboards/handwired/scottokeebs/scottowing/keyboard.json | 1 - keyboards/handwired/sejin_eat1010r2/keyboard.json | 1 - keyboards/handwired/sick_pad/keyboard.json | 1 - keyboards/handwired/skakunm_dactyl/keyboard.json | 1 - keyboards/handwired/snatchpad/keyboard.json | 1 - keyboards/handwired/space_oddity/keyboard.json | 1 - keyboards/handwired/split65/promicro/keyboard.json | 1 - keyboards/handwired/split89/keyboard.json | 1 - keyboards/handwired/starrykeebs/dude09/keyboard.json | 1 - keyboards/handwired/steamvan/rev1/keyboard.json | 1 - keyboards/handwired/stef9998/split_5x7/rev1/keyboard.json | 1 - keyboards/handwired/stream_cheap/2x3/keyboard.json | 1 - keyboards/handwired/stream_cheap/2x4/keyboard.json | 1 - keyboards/handwired/stream_cheap/2x5/keyboard.json | 1 - keyboards/handwired/swiftrax/astro65/keyboard.json | 1 - keyboards/handwired/swiftrax/bebol/keyboard.json | 1 - keyboards/handwired/swiftrax/beegboy/keyboard.json | 1 - keyboards/handwired/swiftrax/bumblebee/keyboard.json | 1 - keyboards/handwired/swiftrax/cowfish/keyboard.json | 1 - keyboards/handwired/swiftrax/digicarp65/keyboard.json | 1 - keyboards/handwired/swiftrax/digicarpice/keyboard.json | 1 - keyboards/handwired/swiftrax/equator/keyboard.json | 1 - keyboards/handwired/swiftrax/glacier/keyboard.json | 1 - keyboards/handwired/swiftrax/joypad/keyboard.json | 1 - keyboards/handwired/swiftrax/koalafications/keyboard.json | 1 - keyboards/handwired/swiftrax/nodu/keyboard.json | 1 - keyboards/handwired/swiftrax/pandamic/keyboard.json | 1 - keyboards/handwired/swiftrax/the_galleon/keyboard.json | 1 - keyboards/handwired/swiftrax/unsplit/keyboard.json | 1 - keyboards/handwired/swiftrax/walter/keyboard.json | 1 - keyboards/handwired/tennie/keyboard.json | 1 - keyboards/handwired/terminus_mini/keyboard.json | 1 - keyboards/handwired/tkk/keyboard.json | 1 - keyboards/handwired/traveller/keyboard.json | 1 - keyboards/handwired/tsubasa/keyboard.json | 1 - keyboards/handwired/twig/twig50/keyboard.json | 1 - keyboards/handwired/uthol/rev1/keyboard.json | 1 - keyboards/handwired/uthol/rev2/keyboard.json | 1 - keyboards/handwired/videowriter/keyboard.json | 1 - keyboards/handwired/wwa/helios/keyboard.json | 1 - keyboards/handwired/wwa/kepler/keyboard.json | 1 - keyboards/handwired/wwa/mercury/keyboard.json | 1 - keyboards/handwired/wwa/soyuz/keyboard.json | 1 - keyboards/handwired/wwa/soyuzxl/keyboard.json | 1 - keyboards/handwired/z150/keyboard.json | 1 - keyboards/handwired/zergo/keyboard.json | 1 - keyboards/handwired/ziyoulang_k3_mod/keyboard.json | 1 - keyboards/hardlineworks/otd_plus/keyboard.json | 1 - keyboards/hardwareabstraction/handwire/keyboard.json | 1 - keyboards/heliar/wm1_hotswap/keyboard.json | 1 - keyboards/heliotrope/keyboard.json | 1 - keyboards/hfdkb/ac001/keyboard.json | 1 - keyboards/hhkb_lite_2/keyboard.json | 1 - keyboards/hidtech/bastyl/keyboard.json | 1 - keyboards/hifumi/keyboard.json | 1 - keyboards/hineybush/h08_ocelot/keyboard.json | 1 - keyboards/hineybush/h101/keyboard.json | 1 - keyboards/hineybush/h60/keyboard.json | 1 - keyboards/hineybush/h65/keyboard.json | 1 - keyboards/hineybush/h65_hotswap/keyboard.json | 1 - keyboards/hineybush/h660s/keyboard.json | 1 - keyboards/hineybush/h75_singa/keyboard.json | 1 - keyboards/hineybush/h87_g2/keyboard.json | 1 - keyboards/hineybush/h87a/keyboard.json | 1 - keyboards/hineybush/h88/keyboard.json | 1 - keyboards/hineybush/h88_g2/keyboard.json | 1 - keyboards/hineybush/ibis/keyboard.json | 1 - keyboards/hineybush/physix/keyboard.json | 1 - keyboards/hineybush/sm68/keyboard.json | 1 - keyboards/holyswitch/lightweight65/keyboard.json | 1 - keyboards/holyswitch/southpaw75/keyboard.json | 1 - keyboards/horrortroll/caticorn/rev1/hotswap/keyboard.json | 1 - keyboards/horrortroll/caticorn/rev1/solder/keyboard.json | 1 - keyboards/horrortroll/chinese_pcb/black_e65/keyboard.json | 1 - keyboards/horrortroll/chinese_pcb/devil68_pro/keyboard.json | 1 - keyboards/horrortroll/nyx/rev1/keyboard.json | 1 - keyboards/horrortroll/paws60/keyboard.json | 1 - keyboards/hotdox76v2/keyboard.json | 1 - keyboards/hp69/keyboard.json | 1 - keyboards/hubble/keyboard.json | 1 - keyboards/huytbt/h50/keyboard.json | 1 - keyboards/ianklug/grooveboard/keyboard.json | 1 - keyboards/ibm/model_m/ashpil_usbc/keyboard.json | 1 - keyboards/ibm/model_m/modelh/keyboard.json | 1 - keyboards/ibm/model_m/teensy2/keyboard.json | 1 - keyboards/ibm/model_m/yugo_m/keyboard.json | 1 - keyboards/ibm/model_m_ssk/teensypp_ssk/keyboard.json | 1 - keyboards/ibnuda/alicia_cook/keyboard.json | 1 - keyboards/ibnuda/gurindam/keyboard.json | 1 - keyboards/icebreaker/hotswap/keyboard.json | 1 - keyboards/idank/sweeq/keyboard.json | 1 - keyboards/idb/idb_60/keyboard.json | 1 - keyboards/idobao/id42/keyboard.json | 1 - keyboards/idobao/id61/keyboard.json | 1 - keyboards/idobao/id63/keyboard.json | 1 - keyboards/idobao/id67/keyboard.json | 1 - keyboards/idobao/id75/v2/keyboard.json | 1 - keyboards/idobao/id80/v2/info.json | 1 - keyboards/idobao/id80/v3/ansi/keyboard.json | 1 - keyboards/idobao/id87/v1/keyboard.json | 1 - keyboards/idobao/id87/v2/keyboard.json | 1 - keyboards/idobao/id96/keyboard.json | 1 - keyboards/idobao/montex/v1/keyboard.json | 1 - keyboards/idobao/montex/v1rgb/keyboard.json | 1 - keyboards/idobao/montex/v2/keyboard.json | 1 - keyboards/idyllic/tinny50_rgb/keyboard.json | 1 - keyboards/igloo/keyboard.json | 1 - keyboards/illuminati/is0/keyboard.json | 1 - keyboards/illusion/rosa/keyboard.json | 1 - keyboards/ilumkb/primus75/keyboard.json | 1 - keyboards/ilumkb/simpler61/keyboard.json | 1 - keyboards/ilumkb/simpler64/keyboard.json | 1 - keyboards/ilumkb/volcano660/keyboard.json | 1 - keyboards/inett_studio/sqx/hotswap/keyboard.json | 1 - keyboards/inett_studio/sqx/universal/keyboard.json | 1 - keyboards/inland/mk47/keyboard.json | 1 - keyboards/inland/v83p/keyboard.json | 1 - keyboards/input_club/k_type/keyboard.json | 1 - keyboards/input_club/whitefox/keyboard.json | 1 - keyboards/io_mini1800/keyboard.json | 1 - keyboards/irene/keyboard.json | 1 - keyboards/iriskeyboards/keyboard.json | 1 - keyboards/itstleo/itstleo40/keyboard.json | 1 - keyboards/j80/keyboard.json | 1 - keyboards/jacky_studio/s7_elephant/rev1/keyboard.json | 1 - keyboards/jacky_studio/s7_elephant/rev2/keyboard.json | 1 - keyboards/jadookb/jkb65/info.json | 1 - keyboards/janus/keyboard.json | 1 - keyboards/jaykeeb/aumz_work/info.json | 1 - keyboards/jaykeeb/jk60/keyboard.json | 1 - keyboards/jaykeeb/jk60rgb/keyboard.json | 1 - keyboards/jaykeeb/jk65/keyboard.json | 1 - keyboards/jaykeeb/joker/keyboard.json | 1 - keyboards/jaykeeb/kamigakushi/keyboard.json | 1 - keyboards/jaykeeb/orba/keyboard.json | 1 - keyboards/jaykeeb/sebelas/keyboard.json | 1 - keyboards/jaykeeb/skyline/keyboard.json | 1 - keyboards/jaykeeb/sriwedari70/keyboard.json | 1 - keyboards/jaykeeb/tokki/keyboard.json | 1 - keyboards/jc65/v32a/keyboard.json | 1 - keyboards/jc65/v32u4/keyboard.json | 1 - keyboards/jd40/keyboard.json | 1 - keyboards/jels/boaty/keyboard.json | 1 - keyboards/jels/jels60/v1/keyboard.json | 1 - keyboards/jels/jels60/v2/keyboard.json | 1 - keyboards/jels/jels88/keyboard.json | 1 - keyboards/jkdlab/binary_monkey/keyboard.json | 1 - keyboards/jkeys_design/gentleman65/keyboard.json | 1 - keyboards/jkeys_design/gentleman65_se_s/keyboard.json | 1 - keyboards/jolofsor/denial75/keyboard.json | 1 - keyboards/joshajohnson/hub20/keyboard.json | 1 - keyboards/jukaie/jk01/keyboard.json | 1 - keyboards/k34/keyboard.json | 1 - keyboards/kabedon/kabedon78s/keyboard.json | 1 - keyboards/kabedon/kabedon980/keyboard.json | 1 - keyboards/kabedon/kabedon98e/keyboard.json | 1 - keyboards/kagizaraya/halberd/keyboard.json | 1 - keyboards/kagizaraya/miniaxe/keyboard.json | 1 - keyboards/kakunpc/rabbit_capture_plan/keyboard.json | 1 - keyboards/kalakos/bahrnob/keyboard.json | 1 - keyboards/kaly/kaly42/keyboard.json | 1 - keyboards/kapcave/arya/keyboard.json | 1 - keyboards/kapcave/paladinpad/info.json | 1 - keyboards/karn/keyboard.json | 1 - keyboards/kb_elmo/67mk_e/keyboard.json | 1 - keyboards/kb_elmo/noah_avr/keyboard.json | 1 - keyboards/kb_elmo/qez/keyboard.json | 1 - keyboards/kb_elmo/vertex/keyboard.json | 1 - keyboards/kbdcraft/adam64/keyboard.json | 1 - keyboards/kbdfans/baguette66/rgb/keyboard.json | 1 - keyboards/kbdfans/baguette66/soldered/keyboard.json | 1 - keyboards/kbdfans/bella/soldered/keyboard.json | 1 - keyboards/kbdfans/boop65/rgb/keyboard.json | 1 - keyboards/kbdfans/bounce/75/hotswap/keyboard.json | 1 - keyboards/kbdfans/bounce/75/soldered/keyboard.json | 1 - keyboards/kbdfans/bounce/pad/keyboard.json | 1 - keyboards/kbdfans/d45/v2/keyboard.json | 1 - keyboards/kbdfans/epoch80/keyboard.json | 1 - keyboards/kbdfans/kbd19x/keyboard.json | 1 - keyboards/kbdfans/kbd67/mkii_soldered/keyboard.json | 1 - keyboards/kbdfans/kbd67/mkiirgb/v1/keyboard.json | 1 - keyboards/kbdfans/kbd67/mkiirgb/v2/keyboard.json | 1 - keyboards/kbdfans/kbd67/mkiirgb/v4/keyboard.json | 1 - keyboards/kbdfans/kbd67/rev2/keyboard.json | 1 - keyboards/kbdfans/kbd75hs/keyboard.json | 1 - keyboards/kbdfans/kbd75rgb/keyboard.json | 1 - keyboards/kbdfans/kbd8x/keyboard.json | 1 - keyboards/kbdfans/kbd8x_mk2/keyboard.json | 1 - keyboards/kbdfans/kbdmini/keyboard.json | 1 - keyboards/kbdfans/kbdpad/mk1/keyboard.json | 1 - keyboards/kbdfans/kbdpad/mk2/keyboard.json | 1 - keyboards/kbdfans/kbdpad/mk3/keyboard.json | 1 - keyboards/kbdfans/maja/keyboard.json | 1 - keyboards/kbdfans/maja_soldered/keyboard.json | 1 - keyboards/kbdfans/odin/rgb/keyboard.json | 1 - keyboards/kbdfans/odin/soldered/keyboard.json | 1 - keyboards/kbdfans/odin/v2/keyboard.json | 1 - keyboards/kbdfans/odin75/keyboard.json | 1 - keyboards/kbdfans/phaseone/keyboard.json | 1 - keyboards/kbdfans/tiger80/keyboard.json | 1 - keyboards/kbnordic/nordic60/rev_a/keyboard.json | 1 - keyboards/kbnordic/nordic65/rev_a/keyboard.json | 1 - keyboards/kc60se/keyboard.json | 1 - keyboards/keebio/bfo9000/keyboard.json | 1 - keyboards/keebio/dilly/keyboard.json | 1 - keyboards/keebio/fourier/keyboard.json | 1 - keyboards/keebio/iris/rev5/keyboard.json | 1 - keyboards/keebio/laplace/keyboard.json | 1 - keyboards/keebio/nyquist/rev1/keyboard.json | 1 - keyboards/keebio/nyquist/rev2/keyboard.json | 1 - keyboards/keebio/nyquist/rev3/keyboard.json | 1 - keyboards/keebio/sinc/info.json | 1 - keyboards/keebio/stick/keyboard.json | 1 - keyboards/keebio/tragicforce68/keyboard.json | 1 - keyboards/keebio/wtf60/keyboard.json | 1 - keyboards/keebmonkey/kbmg68/keyboard.json | 1 - keyboards/keebsforall/freebird60/keyboard.json | 1 - keyboards/keebsforall/freebird75/keyboard.json | 1 - keyboards/keebsforall/freebirdnp/lite/keyboard.json | 1 - keyboards/keebsforall/freebirdnp/pro/keyboard.json | 1 - keyboards/keebsforall/freebirdtkl/keyboard.json | 1 - keyboards/keebzdotnet/fme/keyboard.json | 1 - keyboards/keebzdotnet/wazowski/keyboard.json | 1 - keyboards/kegen/gboy/keyboard.json | 1 - keyboards/kelwin/utopia88/keyboard.json | 1 - keyboards/kepler_33/proto/keyboard.json | 1 - keyboards/keybage/radpad/keyboard.json | 1 - keyboards/keybee/keybee65/keyboard.json | 1 - keyboards/keycapsss/o4l_5x12/keyboard.json | 1 - keyboards/keycapsss/plaid_pad/rev1/keyboard.json | 1 - keyboards/keycapsss/plaid_pad/rev2/keyboard.json | 1 - keyboards/keycapsss/plaid_pad/rev3/keyboard.json | 1 - keyboards/keychron/c1_pro/info.json | 1 - keyboards/keychron/c1_pro_v2/info.json | 1 - keyboards/keychron/c2_pro/info.json | 1 - keyboards/keychron/c2_pro_v2/info.json | 1 - keyboards/keychron/c3_pro/info.json | 1 - keyboards/keychron/q0/info.json | 1 - keyboards/keychron/q11/info.json | 1 - keyboards/keychron/q1v1/info.json | 1 - keyboards/keychron/q1v2/info.json | 1 - keyboards/keychron/q2/info.json | 1 - keyboards/keychron/q3/info.json | 1 - keyboards/keychron/q4/info.json | 1 - keyboards/keychron/q5/info.json | 1 - keyboards/keychron/q60/ansi/keyboard.json | 1 - keyboards/keychron/q7/info.json | 1 - keyboards/keychron/q8/info.json | 1 - keyboards/keychron/q9/info.json | 1 - keyboards/keychron/q9_plus/info.json | 1 - keyboards/keychron/s1/ansi/rgb/keyboard.json | 1 - keyboards/keychron/s1/ansi/white/keyboard.json | 1 - keyboards/keychron/v2/ansi/keyboard.json | 1 - keyboards/keychron/v2/ansi_encoder/keyboard.json | 1 - keyboards/keychron/v2/iso/keyboard.json | 1 - keyboards/keychron/v2/iso_encoder/keyboard.json | 1 - keyboards/keychron/v2/jis/keyboard.json | 1 - keyboards/keychron/v2/jis_encoder/keyboard.json | 1 - keyboards/keychron/v3/ansi/keyboard.json | 1 - keyboards/keychron/v3/jis/keyboard.json | 1 - keyboards/keychron/v4/ansi/keyboard.json | 1 - keyboards/keychron/v4/iso/keyboard.json | 1 - keyboards/keychron/v7/ansi/keyboard.json | 1 - keyboards/keychron/v7/iso/keyboard.json | 1 - keyboards/keychron/v8/ansi/keyboard.json | 1 - keyboards/keychron/v8/ansi_encoder/keyboard.json | 1 - keyboards/keychron/v8/iso/keyboard.json | 1 - keyboards/keychron/v8/iso_encoder/keyboard.json | 1 - keyboards/keyhive/absinthe/keyboard.json | 1 - keyboards/keyhive/opus/keyboard.json | 1 - keyboards/keyhive/smallice/keyboard.json | 1 - keyboards/keyhive/southpole/keyboard.json | 1 - keyboards/keyhive/ut472/keyboard.json | 1 - keyboards/keyprez/bison/keyboard.json | 1 - keyboards/keyprez/corgi/keyboard.json | 1 - keyboards/keyprez/rhino/keyboard.json | 1 - keyboards/keyprez/unicorn/keyboard.json | 1 - keyboards/keyquest/enclave/keyboard.json | 1 - keyboards/keysofkings/twokey/keyboard.json | 1 - keyboards/keyspensory/kp60/keyboard.json | 1 - keyboards/keystonecaps/gameroyadvance/keyboard.json | 1 - keyboards/keyten/aperture/keyboard.json | 1 - keyboards/keyten/diablo/keyboard.json | 1 - keyboards/keyten/kt3700/keyboard.json | 1 - keyboards/keyten/kt60_m/keyboard.json | 1 - keyboards/keyten/lisa/keyboard.json | 1 - keyboards/kibou/fukuro/keyboard.json | 1 - keyboards/kibou/harbour/keyboard.json | 1 - keyboards/kibou/suisei/keyboard.json | 1 - keyboards/kibou/wendy/keyboard.json | 1 - keyboards/kibou/winter/keyboard.json | 1 - keyboards/kikkou/keyboard.json | 1 - keyboards/kikoslab/ellora65/keyboard.json | 1 - keyboards/kikoslab/kl90/keyboard.json | 1 - keyboards/kin80/info.json | 1 - keyboards/kindakeyboards/conone65/keyboard.json | 1 - keyboards/kinesis/alvicstep/keyboard.json | 1 - keyboards/kinesis/kint2pp/keyboard.json | 1 - keyboards/kinesis/kint36/keyboard.json | 1 - keyboards/kinesis/kint41/keyboard.json | 1 - keyboards/kinesis/kintlc/keyboard.json | 1 - keyboards/kinesis/kintwin/keyboard.json | 1 - keyboards/kinesis/nguyenvietyen/keyboard.json | 1 - keyboards/kinesis/stapelberg/keyboard.json | 1 - keyboards/kineticlabs/emu/hotswap/keyboard.json | 1 - keyboards/kineticlabs/emu/soldered/keyboard.json | 1 - keyboards/kingly_keys/ave/ortho/keyboard.json | 1 - keyboards/kingly_keys/ave/staggered/keyboard.json | 1 - keyboards/kingly_keys/little_foot/keyboard.json | 1 - keyboards/kingly_keys/romac/keyboard.json | 1 - keyboards/kingly_keys/romac_plus/keyboard.json | 1 - keyboards/kingly_keys/ropro/keyboard.json | 1 - keyboards/kingly_keys/soap/keyboard.json | 1 - keyboards/kira/kira80/keyboard.json | 1 - keyboards/kiserdesigns/madeline/keyboard.json | 1 - keyboards/kiwikeebs/macro/keyboard.json | 1 - keyboards/kiwikeebs/macro_v2/keyboard.json | 1 - keyboards/kiwikey/wanderland/keyboard.json | 1 - keyboards/kj_modify/rs40/keyboard.json | 1 - keyboards/kk/65/keyboard.json | 1 - keyboards/kkatano/bakeneko60/keyboard.json | 1 - keyboards/kkatano/bakeneko65/rev2/keyboard.json | 1 - keyboards/kkatano/bakeneko65/rev3/keyboard.json | 1 - keyboards/kopibeng/mnk60/keyboard.json | 1 - keyboards/kopibeng/mnk60_stm32/keyboard.json | 1 - keyboards/kopibeng/mnk65_stm32/keyboard.json | 1 - keyboards/kopibeng/tgr_lena/keyboard.json | 1 - keyboards/kopibeng/typ65/keyboard.json | 1 - keyboards/kopibeng/xt60/keyboard.json | 1 - keyboards/kopibeng/xt60_singa/keyboard.json | 1 - keyboards/kopibeng/xt65/keyboard.json | 1 - keyboards/kprepublic/bm16a/v1/keyboard.json | 1 - keyboards/kprepublic/bm16a/v2/keyboard.json | 1 - keyboards/kprepublic/bm16s/keyboard.json | 1 - keyboards/kprepublic/bm40hsrgb/rev1/keyboard.json | 1 - keyboards/kprepublic/bm40hsrgb/rev2/keyboard.json | 1 - keyboards/kprepublic/bm43hsrgb/keyboard.json | 1 - keyboards/kprepublic/bm60hsrgb/rev1/keyboard.json | 1 - keyboards/kprepublic/bm60hsrgb_ec/rev1/keyboard.json | 1 - keyboards/kprepublic/bm60hsrgb_ec/rev2/keyboard.json | 1 - keyboards/kprepublic/bm60hsrgb_iso/rev1/keyboard.json | 1 - keyboards/kprepublic/bm60hsrgb_poker/rev1/keyboard.json | 1 - keyboards/kprepublic/bm65hsrgb/rev1/keyboard.json | 1 - keyboards/kprepublic/bm65hsrgb_iso/rev1/keyboard.json | 1 - keyboards/kprepublic/bm68hsrgb/rev1/keyboard.json | 1 - keyboards/kprepublic/bm68hsrgb/rev2/keyboard.json | 1 - keyboards/kprepublic/bm80hsrgb/keyboard.json | 1 - keyboards/kprepublic/bm80v2/keyboard.json | 1 - keyboards/kprepublic/bm80v2_iso/keyboard.json | 1 - keyboards/kprepublic/bm980hsrgb/keyboard.json | 1 - keyboards/kprepublic/cospad/keyboard.json | 1 - keyboards/kprepublic/cstc40/info.json | 1 - keyboards/kprepublic/jj4x4/keyboard.json | 1 - keyboards/kradoindustries/kousa/keyboard.json | 1 - keyboards/kradoindustries/krado66/keyboard.json | 1 - keyboards/kradoindustries/promenade/keyboard.json | 1 - keyboards/kradoindustries/promenade_rp24s/keyboard.json | 1 - keyboards/kraken_jones/pteron56/keyboard.json | 1 - keyboards/ktec/daisy/keyboard.json | 1 - keyboards/ktec/staryu/keyboard.json | 1 - keyboards/kumaokobo/kudox_game/rev1/keyboard.json | 1 - keyboards/kumaokobo/kudox_game/rev2/keyboard.json | 1 - keyboards/kuro/kuro65/keyboard.json | 1 - keyboards/kwstudio/pisces/keyboard.json | 1 - keyboards/kwub/bloop/keyboard.json | 1 - keyboards/labbe/labbeminiv1/keyboard.json | 1 - keyboards/labyrinth75/keyboard.json | 1 - keyboards/laneware/lpad/keyboard.json | 1 - keyboards/laneware/lw67/keyboard.json | 1 - keyboards/laneware/lw75/keyboard.json | 1 - keyboards/laneware/macro1/keyboard.json | 1 - keyboards/laneware/raindrop/keyboard.json | 1 - keyboards/large_lad/keyboard.json | 1 - keyboards/laser_ninja/pumpkinpad/keyboard.json | 1 - keyboards/latincompass/latin17rgb/keyboard.json | 1 - keyboards/latincompass/latin60rgb/keyboard.json | 1 - keyboards/latincompass/latinpad/keyboard.json | 1 - keyboards/latincompass/latinpadble/keyboard.json | 1 - keyboards/lazydesigners/bolt/keyboard.json | 1 - keyboards/lazydesigners/cassette8/keyboard.json | 1 - keyboards/lazydesigners/dimpleplus/keyboard.json | 1 - keyboards/lazydesigners/the30/keyboard.json | 1 - keyboards/lazydesigners/the40/keyboard.json | 1 - keyboards/lazydesigners/the50/keyboard.json | 1 - keyboards/lazydesigners/the60/rev1/keyboard.json | 1 - keyboards/lazydesigners/the60/rev2/keyboard.json | 1 - keyboards/leafcutterlabs/bigknob/keyboard.json | 1 - keyboards/leeku/finger65/keyboard.json | 1 - keyboards/lendunistus/rpneko65/rev1/keyboard.json | 1 - keyboards/lfkeyboards/lfk87/info.json | 1 - keyboards/lfkeyboards/lfkpad/keyboard.json | 1 - keyboards/lgbtkl/keyboard.json | 1 - keyboards/linworks/dolice/keyboard.json | 1 - keyboards/linworks/em8/keyboard.json | 1 - keyboards/linworks/fave104/keyboard.json | 1 - keyboards/linworks/fave60/keyboard.json | 1 - keyboards/linworks/fave84h/keyboard.json | 1 - keyboards/linworks/fave87/keyboard.json | 1 - keyboards/linworks/whale75/keyboard.json | 1 - keyboards/littlealby/mute/keyboard.json | 1 - keyboards/lizard_trick/tenkey_plusplus/keyboard.json | 1 - keyboards/ll3macorn/bongopad/keyboard.json | 1 - keyboards/lm_keyboard/lm60n/keyboard.json | 1 - keyboards/longnald/corin/keyboard.json | 1 - keyboards/lostdotfish/rp2040_orbweaver/keyboard.json | 1 - keyboards/lxxt/keyboard.json | 1 - keyboards/lyso1/lefishe/keyboard.json | 1 - keyboards/m10a/keyboard.json | 1 - keyboards/machine_industries/m4_a/keyboard.json | 1 - keyboards/machkeyboards/mach3/keyboard.json | 1 - keyboards/macrocat/keyboard.json | 1 - keyboards/madjax_macropad/keyboard.json | 1 - keyboards/makeymakey/keyboard.json | 1 - keyboards/makrosu/keyboard.json | 1 - keyboards/malevolti/superlyra/rev1/keyboard.json | 1 - keyboards/manta60/keyboard.json | 1 - keyboards/manyboard/macro/keyboard.json | 1 - keyboards/maple_computing/6ball/keyboard.json | 1 - keyboards/maple_computing/the_ruler/keyboard.json | 1 - keyboards/mariorion_v25/prod/keyboard.json | 1 - keyboards/mariorion_v25/proto/keyboard.json | 1 - keyboards/marksard/leftover30/keyboard.json | 1 - keyboards/marksard/treadstone32/info.json | 1 - keyboards/matchstickworks/normiepad/keyboard.json | 1 - keyboards/matchstickworks/southpad/rev1/keyboard.json | 1 - keyboards/matchstickworks/southpad/rev2/keyboard.json | 1 - keyboards/matrix/cain_re/keyboard.json | 1 - keyboards/matrix/falcon/keyboard.json | 1 - keyboards/matrix/m12og/rev2/keyboard.json | 1 - keyboards/matrix/me/keyboard.json | 1 - keyboards/matthewdias/m3n3van/keyboard.json | 1 - keyboards/matthewdias/minim/keyboard.json | 1 - keyboards/matthewdias/model_v/keyboard.json | 1 - keyboards/matthewdias/txuu/keyboard.json | 1 - keyboards/maxipad/info.json | 1 - keyboards/mazestudio/jocker/keyboard.json | 1 - keyboards/mb44/keyboard.json | 1 - keyboards/mc_76k/keyboard.json | 1 - keyboards/mechanickeys/miniashen40/keyboard.json | 1 - keyboards/mechanickeys/undead60m/keyboard.json | 1 - keyboards/mechbrewery/mb65h/keyboard.json | 1 - keyboards/mechbrewery/mb65s/keyboard.json | 1 - keyboards/mechkeys/acr60/keyboard.json | 1 - keyboards/mechkeys/alu84/keyboard.json | 1 - keyboards/mechkeys/espectro/keyboard.json | 1 - keyboards/mechkeys/mk60/keyboard.json | 1 - keyboards/mechllama/g35/info.json | 1 - keyboards/mechlovin/adelais/rgb_led/rev3/keyboard.json | 1 - .../mechlovin/adelais/standard_led/avr/rev1/keyboard.json | 1 - keyboards/mechlovin/infinityce/keyboard.json | 1 - keyboards/mechlovin/kanu/keyboard.json | 1 - keyboards/mechlovin/kay60/keyboard.json | 1 - keyboards/mechlovin/kay65/keyboard.json | 1 - keyboards/mechlovin/pisces/keyboard.json | 1 - keyboards/mechstudio/dawn/keyboard.json | 1 - keyboards/mechwild/mercutio/keyboard.json | 1 - keyboards/mechwild/murphpad/keyboard.json | 1 - keyboards/mechwild/obe/info.json | 1 - keyboards/mechwild/sugarglider/f401/keyboard.json | 1 - keyboards/mechwild/sugarglider/f411/keyboard.json | 1 - keyboards/mechwild/sugarglider/wide_oled/f401/keyboard.json | 1 - keyboards/mechwild/sugarglider/wide_oled/f411/keyboard.json | 1 - keyboards/mehkee96/keyboard.json | 1 - keyboards/meletrix/zoom75/keyboard.json | 1 - keyboards/meletrix/zoom98/keyboard.json | 1 - keyboards/melgeek/mach80/rev1/keyboard.json | 1 - keyboards/melgeek/mach80/rev2/keyboard.json | 1 - keyboards/melgeek/mj61/rev1/keyboard.json | 1 - keyboards/melgeek/mj61/rev2/keyboard.json | 1 - keyboards/melgeek/mj63/rev1/keyboard.json | 1 - keyboards/melgeek/mj63/rev2/keyboard.json | 1 - keyboards/melgeek/mj64/rev1/keyboard.json | 1 - keyboards/melgeek/mj64/rev2/keyboard.json | 1 - keyboards/melgeek/mj64/rev3/keyboard.json | 1 - keyboards/melgeek/mj6xy/rev3/keyboard.json | 1 - keyboards/melgeek/mojo68/rev1/keyboard.json | 1 - keyboards/melgeek/mojo75/rev1/keyboard.json | 1 - keyboards/melgeek/tegic/rev1/keyboard.json | 1 - keyboards/melgeek/z70ultra/rev1/keyboard.json | 1 - keyboards/meow48/keyboard.json | 1 - keyboards/meow65/keyboard.json | 1 - keyboards/merge/iso_macro/keyboard.json | 1 - keyboards/merge/uc1/keyboard.json | 1 - keyboards/merge/um70/keyboard.json | 1 - keyboards/merge/um80/keyboard.json | 1 - keyboards/mesa/mesa_tkl/keyboard.json | 1 - keyboards/meson/keyboard.json | 1 - keyboards/metamechs/timberwolf/keyboard.json | 1 - keyboards/miiiw/blackio83/rev_0100/keyboard.json | 1 - keyboards/mikeneko65/keyboard.json | 1 - keyboards/miller/gm862/keyboard.json | 1 - keyboards/millipad/keyboard.json | 1 - keyboards/mincedshon/ecila/keyboard.json | 1 - keyboards/mini_elixivy/keyboard.json | 1 - keyboards/mini_ten_key_plus/keyboard.json | 1 - keyboards/minimacro5/keyboard.json | 1 - keyboards/minimon/bartlesplit/keyboard.json | 1 - keyboards/minimon/index_tab/keyboard.json | 1 - keyboards/mint60/keyboard.json | 1 - keyboards/misonoworks/chocolatebar/keyboard.json | 1 - keyboards/misonoworks/karina/keyboard.json | 1 - keyboards/misterknife/knife66/keyboard.json | 1 - keyboards/misterknife/knife66_iso/keyboard.json | 1 - keyboards/miuni32/keyboard.json | 1 - keyboards/mk65/keyboard.json | 1 - keyboards/ml/gas75/keyboard.json | 1 - keyboards/mlego/m48/rev1/keyboard.json | 1 - keyboards/mlego/m60/rev1/keyboard.json | 1 - keyboards/mlego/m65/rev1/keyboard.json | 1 - keyboards/mlego/m65/rev2/keyboard.json | 1 - keyboards/mlego/m65/rev3/keyboard.json | 1 - keyboards/mmkzoo65/keyboard.json | 1 - keyboards/mntre/keyboard.json | 1 - keyboards/mode/m256ws/keyboard.json | 1 - keyboards/mode/m60h/keyboard.json | 1 - keyboards/mode/m60h_f/keyboard.json | 1 - keyboards/mode/m60s/keyboard.json | 1 - keyboards/mode/m65ha_alpha/keyboard.json | 1 - keyboards/mode/m65hi_alpha/keyboard.json | 1 - keyboards/mode/m65s/keyboard.json | 1 - keyboards/mode/m75h/keyboard.json | 1 - keyboards/mode/m75s/keyboard.json | 1 - keyboards/mode/m80v1/m80h/keyboard.json | 1 - keyboards/mode/m80v1/m80s/keyboard.json | 1 - keyboards/mode/m80v2/m80v2h/keyboard.json | 1 - keyboards/mode/m80v2/m80v2s/keyboard.json | 1 - keyboards/mokey/ginkgo65/keyboard.json | 1 - keyboards/mokey/ginkgo65hot/keyboard.json | 1 - keyboards/mokey/ibis80/keyboard.json | 1 - keyboards/mokey/luckycat70/keyboard.json | 1 - keyboards/mokey/mokey63/keyboard.json | 1 - keyboards/mokey/mokey64/keyboard.json | 1 - keyboards/mokey/xox70/keyboard.json | 1 - keyboards/mokey/xox70hot/keyboard.json | 1 - keyboards/momoka_ergo/keyboard.json | 1 - keyboards/momokai/aurora/keyboard.json | 1 - keyboards/momokai/tap_duo/keyboard.json | 1 - keyboards/momokai/tap_trio/keyboard.json | 1 - keyboards/monoflex60/keyboard.json | 1 - keyboards/monsgeek/m1/keyboard.json | 1 - keyboards/monsgeek/m3/keyboard.json | 1 - keyboards/monsgeek/m5/keyboard.json | 1 - keyboards/monsgeek/m6/keyboard.json | 1 - keyboards/monstargear/xo87/rgb/keyboard.json | 1 - keyboards/monstargear/xo87/solderable/keyboard.json | 1 - keyboards/moondrop/dash75/info.json | 1 - keyboards/mountainmechdesigns/teton_78/keyboard.json | 1 - keyboards/ms_sculpt/keyboard.json | 1 - keyboards/mss_studio/m63_rgb/keyboard.json | 1 - keyboards/mss_studio/m64_rgb/keyboard.json | 1 - keyboards/mt/blocked65/keyboard.json | 1 - keyboards/mt/mt40/keyboard.json | 1 - keyboards/mt/mt64rgb/keyboard.json | 1 - keyboards/mt/mt84/keyboard.json | 1 - keyboards/mt/mt980/keyboard.json | 1 - keyboards/mtbkeys/mtb60/hotswap/keyboard.json | 1 - keyboards/mtbkeys/mtb60/solder/keyboard.json | 1 - keyboards/murcielago/rev1/keyboard.json | 1 - keyboards/mwstudio/alicekk/keyboard.json | 1 - keyboards/mwstudio/mw65_black/keyboard.json | 1 - keyboards/mwstudio/mw65_rgb/keyboard.json | 1 - keyboards/mwstudio/mw660/keyboard.json | 1 - keyboards/mwstudio/mw75/keyboard.json | 1 - keyboards/mwstudio/mw75r2/keyboard.json | 1 - keyboards/mwstudio/mw80/keyboard.json | 1 - keyboards/mxss/keyboard.json | 1 - keyboards/mysticworks/wyvern/keyboard.json | 1 - keyboards/nacly/sodium42/keyboard.json | 1 - keyboards/nacly/sodium50/keyboard.json | 1 - keyboards/nacly/sodium62/keyboard.json | 1 - keyboards/nacly/splitreus62/keyboard.json | 1 - keyboards/navi60/keyboard.json | 1 - keyboards/ncc1701kb/keyboard.json | 1 - keyboards/neito/keyboard.json | 1 - keyboards/neokeys/g67/element_hs/keyboard.json | 1 - keyboards/neokeys/g67/hotswap/keyboard.json | 1 - keyboards/neokeys/g67/soldered/keyboard.json | 1 - keyboards/neson_design/nico/keyboard.json | 1 - keyboards/newgame40/keyboard.json | 1 - keyboards/nibiria/stream15/keyboard.json | 1 - keyboards/nightingale_studios/hailey/keyboard.json | 1 - keyboards/nightly_boards/adellein/keyboard.json | 1 - keyboards/nightly_boards/alter/rev1/keyboard.json | 1 - keyboards/nightly_boards/alter_lite/keyboard.json | 1 - keyboards/nightly_boards/conde60/keyboard.json | 1 - keyboards/nightly_boards/daily60/keyboard.json | 1 - keyboards/nightly_boards/jisoo/keyboard.json | 1 - keyboards/nightly_boards/n2/keyboard.json | 1 - keyboards/nightly_boards/n60_s/keyboard.json | 1 - keyboards/nightly_boards/n87/keyboard.json | 1 - keyboards/nightly_boards/n9/keyboard.json | 1 - keyboards/nightly_boards/octopad/keyboard.json | 1 - keyboards/nightly_boards/octopadplus/keyboard.json | 1 - keyboards/nightly_boards/paraluman/keyboard.json | 1 - keyboards/nightly_boards/ph_arisu/keyboard.json | 1 - keyboards/nimrod/keyboard.json | 1 - keyboards/ning/tiny_board/tb16_rgb/keyboard.json | 1 - keyboards/nix_studio/lilith/keyboard.json | 1 - keyboards/nix_studio/oxalys80/keyboard.json | 1 - keyboards/nixkeyboards/day_off/keyboard.json | 1 - keyboards/nopunin10did/jabberwocky/v1/keyboard.json | 1 - keyboards/nopunin10did/jabberwocky/v2/keyboard.json | 1 - keyboards/nopunin10did/kastenwagen1840/keyboard.json | 1 - keyboards/nopunin10did/kastenwagen48/keyboard.json | 1 - keyboards/nopunin10did/railroad/rev0/keyboard.json | 1 - keyboards/nopunin10did/styrkatmel/keyboard.json | 1 - keyboards/novelkeys/nk1/keyboard.json | 1 - keyboards/novelkeys/nk_classic_tkl/keyboard.json | 1 - keyboards/novelkeys/nk_classic_tkl_iso/keyboard.json | 1 - keyboards/novelkeys/nk_plus/keyboard.json | 1 - keyboards/noxary/268_2/keyboard.json | 1 - keyboards/noxary/268_2_rgb/keyboard.json | 1 - keyboards/noxary/378/keyboard.json | 1 - keyboards/noxary/valhalla/keyboard.json | 1 - keyboards/noxary/valhalla_v2/keyboard.json | 1 - keyboards/noxary/vulcan/keyboard.json | 1 - keyboards/noxary/x268/keyboard.json | 1 - keyboards/np12/keyboard.json | 1 - keyboards/null/st110r2/keyboard.json | 1 - keyboards/nyhxis/nfr_70/keyboard.json | 1 - keyboards/obosob/arch_36/keyboard.json | 1 - keyboards/obosob/steal_this_keyboard/keyboard.json | 1 - keyboards/ocean/addon/keyboard.json | 1 - keyboards/ocean/gin_v2/keyboard.json | 1 - keyboards/ocean/slamz/keyboard.json | 1 - keyboards/ocean/stealth/keyboard.json | 1 - keyboards/ocean/sus/keyboard.json | 1 - keyboards/ocean/wang_ergo/keyboard.json | 1 - keyboards/ocean/wang_v2/keyboard.json | 1 - keyboards/ocean/yuri/keyboard.json | 1 - keyboards/odelia/keyboard.json | 1 - keyboards/ogre/ergo_single/keyboard.json | 1 - keyboards/ogre/ergo_split/keyboard.json | 1 - keyboards/ok60/keyboard.json | 1 - keyboards/onekeyco/dango40/keyboard.json | 1 - keyboards/orange75/keyboard.json | 1 - keyboards/org60/keyboard.json | 1 - keyboards/ortho5by12/keyboard.json | 1 - keyboards/orthograph/keyboard.json | 1 - keyboards/owlab/jelly_epoch/hotswap/keyboard.json | 1 - keyboards/owlab/jelly_epoch/soldered/keyboard.json | 1 - keyboards/owlab/spring/keyboard.json | 1 - keyboards/owlab/suit80/ansi/keyboard.json | 1 - keyboards/owlab/suit80/iso/keyboard.json | 1 - keyboards/owlab/voice65/hotswap/keyboard.json | 1 - keyboards/owlab/voice65/soldered/keyboard.json | 1 - keyboards/p3d/glitch/keyboard.json | 1 - keyboards/p3d/q4z/keyboard.json | 1 - keyboards/p3d/spacey/keyboard.json | 1 - keyboards/p3d/synapse/keyboard.json | 1 - keyboards/p3d/tw40/keyboard.json | 1 - keyboards/pabile/p18/keyboard.json | 1 - keyboards/pabile/p20/ver1/keyboard.json | 1 - keyboards/pabile/p20/ver2/keyboard.json | 1 - keyboards/pabile/p40/keyboard.json | 1 - keyboards/pabile/p40_ortho/keyboard.json | 1 - keyboards/pabile/p42/keyboard.json | 1 - keyboards/panc40/keyboard.json | 1 - keyboards/panc60/keyboard.json | 1 - keyboards/pangorin/tan67/keyboard.json | 1 - keyboards/papercranekeyboards/gerald65/keyboard.json | 1 - keyboards/paprikman/albacore/keyboard.json | 1 - keyboards/parallel/parallel_65/hotswap/keyboard.json | 1 - keyboards/parallel/parallel_65/soldered/keyboard.json | 1 - keyboards/pauperboards/brick/keyboard.json | 1 - keyboards/pearl/keyboard.json | 1 - keyboards/pearlboards/pandora/keyboard.json | 1 - keyboards/pearlboards/zeuspad/keyboard.json | 1 - keyboards/peej/lumberjack/keyboard.json | 1 - keyboards/peej/tripel/info.json | 1 - keyboards/pegasus/keyboard.json | 1 - keyboards/percent/canoe/keyboard.json | 1 - keyboards/percent/skog/keyboard.json | 1 - keyboards/percent/skog_lite/keyboard.json | 1 - keyboards/phantom/keyboard.json | 1 - keyboards/phdesign/phac/keyboard.json | 1 - keyboards/phrygian/ph100/keyboard.json | 1 - keyboards/piantoruv44/keyboard.json | 1 - keyboards/pica40/rev1/keyboard.json | 1 - keyboards/pica40/rev2/keyboard.json | 1 - keyboards/picolab/frusta_fundamental/keyboard.json | 1 - keyboards/pimentoso/paddino02/rev1/keyboard.json | 1 - keyboards/pimentoso/paddino02/rev2/left/keyboard.json | 1 - keyboards/pimentoso/paddino02/rev2/right/keyboard.json | 1 - keyboards/pimentoso/touhoupad/keyboard.json | 1 - keyboards/pisces/keyboard.json | 1 - keyboards/pixelspace/capsule65i/keyboard.json | 1 - keyboards/pizzakeyboards/pizza65/keyboard.json | 1 - keyboards/pjb/eros/keyboard.json | 1 - keyboards/pkb65/keyboard.json | 1 - keyboards/playkbtw/ca66/keyboard.json | 1 - keyboards/playkbtw/helen80/keyboard.json | 1 - keyboards/playkbtw/pk60/keyboard.json | 1 - keyboards/playkbtw/pk64rgb/keyboard.json | 1 - keyboards/pluckey/keyboard.json | 1 - keyboards/plum47/keyboard.json | 1 - keyboards/plume/plume65/keyboard.json | 1 - keyboards/plut0nium/0x3e/keyboard.json | 1 - keyboards/plx/keyboard.json | 1 - keyboards/plywrks/ahgase/keyboard.json | 1 - keyboards/plywrks/allaro/keyboard.json | 1 - keyboards/plywrks/ji_eun/keyboard.json | 1 - keyboards/plywrks/lune/keyboard.json | 1 - keyboards/plywrks/ply8x/solder/keyboard.json | 1 - keyboards/pmk/posey_split/v4/keyboard.json | 1 - keyboards/pmk/posey_split/v5/keyboard.json | 1 - keyboards/pohjolaworks/louhi/keyboard.json | 1 - keyboards/poker87c/keyboard.json | 1 - keyboards/poker87d/keyboard.json | 1 - keyboards/polilla/rev1/keyboard.json | 1 - keyboards/polycarbdiet/s20/keyboard.json | 1 - keyboards/pom_keyboards/tnln95/keyboard.json | 1 - keyboards/portal_66/hotswap/keyboard.json | 1 - keyboards/portal_66/soldered/keyboard.json | 1 - keyboards/pos78/keyboard.json | 1 - keyboards/preonic/rev1/keyboard.json | 1 - keyboards/primekb/prime_e/info.json | 1 - keyboards/primekb/prime_l/info.json | 1 - keyboards/primekb/prime_m/keyboard.json | 1 - keyboards/primekb/prime_o/keyboard.json | 1 - keyboards/primekb/prime_r/keyboard.json | 1 - keyboards/printedpad/keyboard.json | 1 - keyboards/projectcain/vault45/keyboard.json | 1 - keyboards/projectd/65/projectd_65_ansi/keyboard.json | 1 - keyboards/projectd/75/ansi/keyboard.json | 1 - keyboards/projectd/75/iso/keyboard.json | 1 - keyboards/projectkb/signature65/keyboard.json | 1 - keyboards/prototypist/allison/keyboard.json | 1 - keyboards/prototypist/allison_numpad/keyboard.json | 1 - keyboards/prototypist/j01/keyboard.json | 1 - keyboards/prototypist/pt60/keyboard.json | 1 - keyboards/prototypist/pt80/keyboard.json | 1 - keyboards/protozoa/event_horizon/keyboard.json | 1 - keyboards/psuieee/pluto12/keyboard.json | 1 - keyboards/pteron36/keyboard.json | 1 - keyboards/pteropus/keyboard.json | 1 - keyboards/puck/keyboard.json | 1 - keyboards/purin/keyboard.json | 1 - keyboards/qck75/v1/keyboard.json | 1 - keyboards/qpockets/eggman/keyboard.json | 1 - keyboards/qpockets/wanten/keyboard.json | 1 - keyboards/quad_h/lb75/keyboard.json | 1 - keyboards/quarkeys/z40/keyboard.json | 1 - keyboards/quarkeys/z60/hotswap/keyboard.json | 1 - keyboards/quarkeys/z60/solder/keyboard.json | 1 - keyboards/quarkeys/z67/hotswap/keyboard.json | 1 - keyboards/quarkeys/z67/solder/keyboard.json | 1 - keyboards/qvex/lynepad/keyboard.json | 1 - keyboards/qwertlekeys/calice/keyboard.json | 1 - keyboards/qwertykeys/qk65/hotswap/keyboard.json | 1 - keyboards/qwertykeys/qk65/solder/keyboard.json | 1 - keyboards/rad/keyboard.json | 1 - keyboards/rainkeebs/delilah/keyboard.json | 1 - keyboards/rainkeebs/rainkeeb/keyboard.json | 1 - keyboards/rainkeebs/yasui/keyboard.json | 1 - keyboards/ramlord/witf/keyboard.json | 1 - keyboards/rart/rart45/keyboard.json | 1 - keyboards/rart/rart4x4/keyboard.json | 1 - keyboards/rart/rart67m/keyboard.json | 1 - keyboards/rart/rart75m/keyboard.json | 1 - keyboards/rart/rartand/keyboard.json | 1 - keyboards/rart/rartlite/keyboard.json | 1 - keyboards/rart/rartpad/keyboard.json | 1 - keyboards/rate/pistachio_mp/keyboard.json | 1 - keyboards/rationalist/ratio65_hotswap/rev_a/keyboard.json | 1 - keyboards/rationalist/ratio65_solder/rev_a/keyboard.json | 1 - keyboards/recompile_keys/cocoa40/keyboard.json | 1 - keyboards/recompile_keys/mio/keyboard.json | 1 - keyboards/rect44/keyboard.json | 1 - keyboards/redox/rev1/info.json | 1 - keyboards/redscarf_i/keyboard.json | 1 - keyboards/retro_75/keyboard.json | 1 - keyboards/reviung/reviung33/keyboard.json | 1 - keyboards/reviung/reviung46/keyboard.json | 1 - keyboards/reviung/reviung5/keyboard.json | 1 - keyboards/reviung/reviung53/keyboard.json | 1 - keyboards/rico/phoenix_project_no1/keyboard.json | 1 - keyboards/rmi_kb/equator/keyboard.json | 1 - keyboards/rmi_kb/squishyfrl/keyboard.json | 1 - keyboards/rmi_kb/squishytkl/keyboard.json | 1 - keyboards/rmi_kb/tkl_ff/info.json | 1 - keyboards/rmkeebs/rm_fullsize/keyboard.json | 1 - keyboards/rmkeebs/rm_numpad/keyboard.json | 1 - keyboards/rose75/keyboard.json | 1 - keyboards/roseslite/keyboard.json | 1 - keyboards/rot13labs/h4ckb0ard/keyboard.json | 1 - keyboards/rot13labs/rotc0n/keyboard.json | 1 - keyboards/rot13labs/veilid_sao/keyboard.json | 1 - keyboards/rotr/keyboard.json | 1 - keyboards/runes/vaengr/keyboard.json | 1 - keyboards/ryanbaekr/rb1/keyboard.json | 1 - keyboards/ryanbaekr/rb18/keyboard.json | 1 - keyboards/ryanbaekr/rb69/keyboard.json | 1 - keyboards/ryanbaekr/rb87/keyboard.json | 1 - keyboards/ryloo_studio/m0110/keyboard.json | 1 - keyboards/s_ol/0xc_pad/keyboard.json | 1 - keyboards/salane/starryfrl/keyboard.json | 1 - keyboards/salicylic_acid3/7splus/keyboard.json | 1 - keyboards/salicylic_acid3/ajisai74/keyboard.json | 1 - keyboards/salicylic_acid3/ergoarrows/keyboard.json | 1 - keyboards/salicylic_acid3/guide68/keyboard.json | 1 - keyboards/salicylic_acid3/nafuda/keyboard.json | 1 - keyboards/salicylic_acid3/nknl7en/keyboard.json | 1 - keyboards/salicylic_acid3/nknl7jp/keyboard.json | 1 - keyboards/sam/s80/keyboard.json | 1 - keyboards/sam/sg81m/keyboard.json | 1 - keyboards/sanctified/dystopia/keyboard.json | 1 - keyboards/sandwich/keeb68/keyboard.json | 1 - keyboards/sapuseven/macropad12/keyboard.json | 1 - keyboards/sauce/mild/keyboard.json | 1 - keyboards/sawnsprojects/eclipse/eclipse60/keyboard.json | 1 - keyboards/sawnsprojects/eclipse/tinyneko/keyboard.json | 1 - keyboards/sawnsprojects/plaque80/keyboard.json | 1 - keyboards/sawnsprojects/re65/keyboard.json | 1 - keyboards/sawnsprojects/satxri6key/keyboard.json | 1 - keyboards/scatter42/keyboard.json | 1 - keyboards/scottokeebs/scotto34/keyboard.json | 1 - keyboards/scottokeebs/scotto69/keyboard.json | 1 - keyboards/scottokeebs/scottowing/keyboard.json | 1 - keyboards/sendyyeah/75pixels/keyboard.json | 1 - keyboards/sendyyeah/bevi/keyboard.json | 1 - keyboards/sendyyeah/pix/keyboard.json | 1 - keyboards/senselessclay/ck60/keyboard.json | 1 - keyboards/senselessclay/ck65/keyboard.json | 1 - keyboards/senselessclay/gos65/keyboard.json | 1 - keyboards/senselessclay/had60/keyboard.json | 1 - keyboards/sentraq/s60_x/default/keyboard.json | 1 - keyboards/sentraq/s60_x/rgb/keyboard.json | 1 - keyboards/sentraq/s65_plus/keyboard.json | 1 - keyboards/sentraq/s65_x/keyboard.json | 1 - keyboards/sets3n/kk980/keyboard.json | 1 - keyboards/sha/keyboard.json | 1 - keyboards/shambles/keyboard.json | 1 - keyboards/shandoncodes/flygone60/rev3/keyboard.json | 1 - keyboards/shandoncodes/mino/hotswap/keyboard.json | 1 - keyboards/shandoncodes/mino_plus/hotswap/keyboard.json | 1 - keyboards/shandoncodes/mino_plus/soldered/keyboard.json | 1 - keyboards/shandoncodes/riot_pad/keyboard.json | 1 - keyboards/sharkoon/skiller_sgk50_s2/keyboard.json | 1 - keyboards/sharkoon/skiller_sgk50_s3/keyboard.json | 1 - keyboards/sharkoon/skiller_sgk50_s4/keyboard.json | 1 - keyboards/shk9/keyboard.json | 1 - keyboards/shoc/keyboard.json | 1 - keyboards/sidderskb/majbritt/rev2/keyboard.json | 1 - keyboards/singa/keyboard.json | 1 - keyboards/skeletn87/hotswap/keyboard.json | 1 - keyboards/skeletn87/soldered/keyboard.json | 1 - keyboards/skeletonkbd/frost68/keyboard.json | 1 - keyboards/skeletonkbd/skeletonnumpad/keyboard.json | 1 - keyboards/skme/zeno/keyboard.json | 1 - keyboards/skmt/15k/keyboard.json | 1 - keyboards/skyloong/dt40/keyboard.json | 1 - keyboards/skyloong/gk61/pro/keyboard.json | 1 - keyboards/skyloong/gk61/pro_48/keyboard.json | 1 - keyboards/skyloong/gk61/v1/keyboard.json | 1 - keyboards/skyloong/qk21/v1/keyboard.json | 1 - keyboards/slz40/keyboard.json | 1 - keyboards/smithrune/iron180v2/v2h/keyboard.json | 1 - keyboards/smithrune/iron180v2/v2s/keyboard.json | 1 - keyboards/smithrune/magnus/m75h/keyboard.json | 1 - keyboards/smithrune/magnus/m75s/keyboard.json | 1 - keyboards/smk60/keyboard.json | 1 - keyboards/smoll/lefty/info.json | 1 - keyboards/sneakbox/aliceclone/keyboard.json | 1 - keyboards/sneakbox/aliceclonergb/keyboard.json | 1 - keyboards/sneakbox/ava/keyboard.json | 1 - keyboards/sneakbox/disarray/ortho/keyboard.json | 1 - keyboards/sneakbox/disarray/staggered/keyboard.json | 1 - keyboards/soup10/keyboard.json | 1 - keyboards/sowbug/68keys/keyboard.json | 1 - keyboards/sowbug/ansi_tkl/keyboard.json | 1 - keyboards/soy20/keyboard.json | 1 - keyboards/spaceholdings/nebula12b/keyboard.json | 1 - keyboards/spaceholdings/nebula68b/info.json | 1 - keyboards/sparrow62/keyboard.json | 1 - keyboards/splitish/keyboard.json | 1 - keyboards/splitography/keyboard.json | 1 - keyboards/sporewoh/banime40/keyboard.json | 1 - keyboards/star75/keyboard.json | 1 - keyboards/stello65/beta/keyboard.json | 1 - keyboards/stello65/hs_rev1/keyboard.json | 1 - keyboards/stello65/sl_rev1/keyboard.json | 1 - keyboards/stenokeyboards/the_uni/pro_micro/keyboard.json | 1 - keyboards/stenokeyboards/the_uni/rp_2040/keyboard.json | 1 - keyboards/stenokeyboards/the_uni/usb_c/keyboard.json | 1 - keyboards/sthlmkb/lagom/keyboard.json | 1 - keyboards/sthlmkb/litl/keyboard.json | 1 - keyboards/stratos/keyboard.json | 1 - keyboards/strech/soulstone/keyboard.json | 1 - keyboards/stront/keyboard.json | 1 - keyboards/studiokestra/bourgeau/keyboard.json | 1 - keyboards/studiokestra/cascade/keyboard.json | 1 - keyboards/studiokestra/fairholme/keyboard.json | 1 - keyboards/studiokestra/frl84/keyboard.json | 1 - keyboards/studiokestra/galatea/rev1/keyboard.json | 1 - keyboards/studiokestra/galatea/rev2/keyboard.json | 1 - keyboards/studiokestra/galatea/rev3/keyboard.json | 1 - keyboards/studiokestra/line_friends_tkl/keyboard.json | 1 - keyboards/subatomic/keyboard.json | 1 - keyboards/subrezon/la_nc/keyboard.json | 1 - keyboards/subrezon/lancer/keyboard.json | 1 - keyboards/suikagiken/suika15tone/keyboard.json | 1 - keyboards/suikagiken/suika27melo/keyboard.json | 1 - keyboards/suikagiken/suika83opti/keyboard.json | 1 - keyboards/suikagiken/suika85ergo/keyboard.json | 1 - keyboards/supersplit/keyboard.json | 1 - keyboards/superuser/ext/keyboard.json | 1 - keyboards/superuser/frl/keyboard.json | 1 - keyboards/superuser/tkl/keyboard.json | 1 - keyboards/swiftrax/retropad/keyboard.json | 1 - keyboards/swiss/keyboard.json | 1 - keyboards/switchplate/southpaw_fullsize/keyboard.json | 1 - keyboards/switchplate/switchplate910/keyboard.json | 1 - keyboards/synthandkeys/bento_box/keyboard.json | 1 - keyboards/synthandkeys/the_debit_card/keyboard.json | 1 - keyboards/synthlabs/060/keyboard.json | 1 - keyboards/synthlabs/065/keyboard.json | 1 - keyboards/synthlabs/solo/keyboard.json | 1 - keyboards/tacworks/tac_k1/keyboard.json | 1 - keyboards/takashicompany/baumkuchen/keyboard.json | 1 - keyboards/takashicompany/center_enter/keyboard.json | 1 - keyboards/takashicompany/ejectix/keyboard.json | 1 - keyboards/takashicompany/endzone34/keyboard.json | 1 - keyboards/takashicompany/ergomirage/keyboard.json | 1 - keyboards/takashicompany/goat51/keyboard.json | 1 - keyboards/takashicompany/jourkey/keyboard.json | 1 - keyboards/takashicompany/klec_01/keyboard.json | 1 - keyboards/takashicompany/klec_02/keyboard.json | 1 - keyboards/takashicompany/minidivide/keyboard.json | 1 - keyboards/takashicompany/minidivide_max/keyboard.json | 1 - keyboards/takashicompany/palmslave/keyboard.json | 1 - keyboards/takashicompany/qoolee/keyboard.json | 1 - keyboards/takashicompany/radialex/keyboard.json | 1 - keyboards/takashicompany/rookey/keyboard.json | 1 - keyboards/takashicompany/tightwriter/keyboard.json | 1 - keyboards/taleguers/taleguers75/keyboard.json | 1 - keyboards/tanuki/keyboard.json | 1 - keyboards/teahouse/ayleen/keyboard.json | 1 - keyboards/team0110/p1800fl/keyboard.json | 1 - keyboards/teleport/native/info.json | 1 - keyboards/teleport/numpad/keyboard.json | 1 - keyboards/teleport/tkl/keyboard.json | 1 - keyboards/tempo_turtle/bradpad/keyboard.json | 1 - keyboards/tender/macrowo_pad/keyboard.json | 1 - keyboards/tenki/keyboard.json | 1 - keyboards/terrazzo/keyboard.json | 1 - keyboards/tetris/keyboard.json | 1 - keyboards/tg4x/keyboard.json | 1 - keyboards/tgr/910/keyboard.json | 1 - keyboards/tgr/910ce/keyboard.json | 1 - keyboards/tgr/alice/keyboard.json | 1 - keyboards/tgr/jane/v2/keyboard.json | 1 - keyboards/tgr/jane/v2ce/keyboard.json | 1 - keyboards/tgr/tris/keyboard.json | 1 - keyboards/the_royal/liminal/keyboard.json | 1 - keyboards/the_royal/schwann/keyboard.json | 1 - keyboards/themadnoodle/ncc1701kb/v2/keyboard.json | 1 - keyboards/themadnoodle/noodlepad/info.json | 1 - keyboards/themadnoodle/noodlepad_micro/keyboard.json | 1 - keyboards/themadnoodle/udon13/keyboard.json | 1 - keyboards/theone/keyboard.json | 1 - keyboards/thepanduuh/degenpad/keyboard.json | 1 - keyboards/thevankeyboards/jetvan/keyboard.json | 1 - keyboards/thevankeyboards/minivan/keyboard.json | 1 - keyboards/thevankeyboards/roadkit/keyboard.json | 1 - keyboards/tkc/california/keyboard.json | 1 - keyboards/tkc/candybar/lefty/keyboard.json | 1 - keyboards/tkc/candybar/lefty_r3/keyboard.json | 1 - keyboards/tkc/candybar/righty/keyboard.json | 1 - keyboards/tkc/candybar/righty_r3/keyboard.json | 1 - keyboards/tkc/godspeed75/keyboard.json | 1 - keyboards/tkc/portico68v2/keyboard.json | 1 - keyboards/tkc/tkc1800/keyboard.json | 1 - keyboards/tkc/tkl_ab87/keyboard.json | 1 - keyboards/tmo50/keyboard.json | 1 - keyboards/toad/keyboard.json | 1 - keyboards/toffee_studio/blueberry/keyboard.json | 1 - keyboards/tokyokeyboard/tokyo60/keyboard.json | 1 - keyboards/tominabox1/adalyn/keyboard.json | 1 - keyboards/tominabox1/bigboy/keyboard.json | 1 - keyboards/tominabox1/qaz/keyboard.json | 1 - keyboards/tr60w/keyboard.json | 1 - keyboards/trainpad/keyboard.json | 1 - keyboards/trashman/ketch/keyboard.json | 1 - keyboards/treasure/type9s2/keyboard.json | 1 - keyboards/treasure/type9s3/keyboard.json | 1 - keyboards/trkeyboards/trk1/keyboard.json | 1 - keyboards/trnthsn/e8ghty/info.json | 1 - keyboards/trnthsn/e8ghtyneo/info.json | 1 - keyboards/trnthsn/s6xty/keyboard.json | 1 - keyboards/trnthsn/s6xty5neor2/info.json | 1 - keyboards/trojan_pinata/model_b/rev0/keyboard.json | 1 - keyboards/tunks/ergo33/keyboard.json | 1 - keyboards/tweetydabird/lbs4/keyboard.json | 1 - keyboards/tweetydabird/lbs6/keyboard.json | 1 - keyboards/tweetydabird/lotus58/info.json | 1 - keyboards/ubest/vn/keyboard.json | 1 - keyboards/uk78/keyboard.json | 1 - keyboards/ungodly/nines/keyboard.json | 1 - keyboards/unikeyboard/diverge3/keyboard.json | 1 - keyboards/unikeyboard/divergetm2/keyboard.json | 1 - keyboards/unikeyboard/felix/keyboard.json | 1 - keyboards/unikorn/keyboard.json | 1 - keyboards/utd80/keyboard.json | 1 - keyboards/v60_type_r/keyboard.json | 1 - keyboards/vagrant_10/keyboard.json | 1 - keyboards/vertex/angler2/keyboard.json | 1 - keyboards/vertex/cycle7/keyboard.json | 1 - keyboards/vertex/cycle8/keyboard.json | 1 - keyboards/viendi8l/keyboard.json | 1 - keyboards/viktus/at101_bh/keyboard.json | 1 - keyboards/viktus/minne/keyboard.json | 1 - keyboards/viktus/minne_topre/keyboard.json | 1 - keyboards/viktus/omnikey_bh/keyboard.json | 1 - keyboards/viktus/osav2/keyboard.json | 1 - keyboards/viktus/osav2_numpad/keyboard.json | 1 - keyboards/viktus/osav2_numpad_topre/keyboard.json | 1 - keyboards/viktus/osav2_topre/keyboard.json | 1 - keyboards/viktus/smolka/keyboard.json | 1 - keyboards/viktus/sp111_v2/keyboard.json | 1 - keyboards/viktus/sp_mini/keyboard.json | 1 - keyboards/viktus/styrka/keyboard.json | 1 - keyboards/viktus/styrka_topre/keyboard.json | 1 - keyboards/viktus/vkr94/keyboard.json | 1 - keyboards/viktus/z150_bh/keyboard.json | 1 - keyboards/vinhcatba/uncertainty/keyboard.json | 1 - keyboards/vitamins_included/info.json | 1 - keyboards/void/voidhhkb_hotswap/keyboard.json | 1 - keyboards/vt40/keyboard.json | 1 - keyboards/walletburner/cajal/keyboard.json | 1 - keyboards/walletburner/neuron/keyboard.json | 1 - keyboards/wavtype/foundation/keyboard.json | 1 - keyboards/wavtype/p01_ultra/keyboard.json | 1 - keyboards/weirdo/geminate60/keyboard.json | 1 - keyboards/weirdo/kelowna/rgb64/keyboard.json | 1 - keyboards/weirdo/ls_60/keyboard.json | 1 - keyboards/weirdo/naiping/np64/keyboard.json | 1 - keyboards/weirdo/naiping/nphhkb/keyboard.json | 1 - keyboards/weirdo/naiping/npminila/keyboard.json | 1 - keyboards/wekey/polaris/keyboard.json | 1 - keyboards/werk_technica/one/keyboard.json | 1 - keyboards/westfoxtrot/aanzee/keyboard.json | 1 - keyboards/westfoxtrot/cyclops/keyboard.json | 1 - keyboards/westfoxtrot/cypher/rev1/keyboard.json | 1 - keyboards/westfoxtrot/cypher/rev5/keyboard.json | 1 - keyboards/westfoxtrot/prophet/keyboard.json | 1 - keyboards/wilba_tech/rama_works_m10_b/keyboard.json | 1 - keyboards/wilba_tech/rama_works_m50_ax/keyboard.json | 1 - keyboards/wilba_tech/wt60_g/keyboard.json | 1 - keyboards/wilba_tech/wt60_g2/keyboard.json | 1 - keyboards/wilba_tech/wt60_h1/keyboard.json | 1 - keyboards/wilba_tech/wt60_h2/keyboard.json | 1 - keyboards/wilba_tech/wt60_h3/keyboard.json | 1 - keyboards/wilba_tech/wt60_xt/keyboard.json | 1 - keyboards/wilba_tech/wt65_d/keyboard.json | 1 - keyboards/wilba_tech/wt65_f/keyboard.json | 1 - keyboards/wilba_tech/wt65_fx/keyboard.json | 1 - keyboards/wilba_tech/wt65_g/keyboard.json | 1 - keyboards/wilba_tech/wt65_g2/keyboard.json | 1 - keyboards/wilba_tech/wt65_h1/keyboard.json | 1 - keyboards/wilba_tech/wt65_xt/keyboard.json | 1 - keyboards/wilba_tech/wt65_xtx/keyboard.json | 1 - keyboards/wilba_tech/wt70_jb/keyboard.json | 1 - keyboards/wilba_tech/wt80_g/keyboard.json | 1 - keyboards/willoucom/keypad/keyboard.json | 1 - keyboards/winkeyless/b87/keyboard.json | 1 - keyboards/winkeyless/bface/keyboard.json | 1 - keyboards/winkeyless/bmini/keyboard.json | 1 - keyboards/winkeyless/bminiex/keyboard.json | 1 - keyboards/winkeys/mini_winni/keyboard.json | 1 - keyboards/winry/winry25tc/keyboard.json | 1 - keyboards/winry/winry315/keyboard.json | 1 - keyboards/wolf/frogpad/keyboard.json | 1 - keyboards/wolf/m60_b/keyboard.json | 1 - keyboards/wolf/m6_c/keyboard.json | 1 - keyboards/wolf/neely65/keyboard.json | 1 - keyboards/wolf/silhouette/keyboard.json | 1 - keyboards/wolf/twilight/keyboard.json | 1 - keyboards/wolf/ziggurat/keyboard.json | 1 - keyboards/woodkeys/scarletbandana/keyboard.json | 1 - keyboards/work_louder/micro/keyboard.json | 1 - keyboards/work_louder/numpad/keyboard.json | 1 - keyboards/wsk/alpha9/keyboard.json | 1 - keyboards/wsk/g4m3ralpha/keyboard.json | 1 - keyboards/wsk/houndstooth/keyboard.json | 1 - keyboards/wsk/jerkin/keyboard.json | 1 - keyboards/wsk/kodachi50/keyboard.json | 1 - keyboards/wsk/pain27/keyboard.json | 1 - keyboards/wsk/sl40/keyboard.json | 1 - keyboards/wsk/tkl30/keyboard.json | 1 - keyboards/wuque/creek70/keyboard.json | 1 - keyboards/wuque/ikki68/keyboard.json | 1 - keyboards/wuque/nemui65/keyboard.json | 1 - keyboards/wuque/tata80/wk/keyboard.json | 1 - keyboards/wuque/tata80/wkl/keyboard.json | 1 - keyboards/x16/keyboard.json | 1 - keyboards/xbows/knight/keyboard.json | 1 - keyboards/xbows/knight_plus/keyboard.json | 1 - keyboards/xbows/nature/keyboard.json | 1 - keyboards/xbows/numpad/keyboard.json | 1 - keyboards/xbows/ranger/keyboard.json | 1 - keyboards/xelus/dharma/keyboard.json | 1 - keyboards/xelus/pachi/mini_32u4/keyboard.json | 1 - keyboards/xelus/pachi/rev1/keyboard.json | 1 - keyboards/xelus/snap96/keyboard.json | 1 - keyboards/xelus/valor/rev1/keyboard.json | 1 - keyboards/xelus/valor_frl_tkl/rev2_0/keyboard.json | 1 - keyboards/xelus/valor_frl_tkl/rev2_1/keyboard.json | 1 - keyboards/xiudi/xd004/v1/keyboard.json | 1 - keyboards/xiudi/xd60/rev2/keyboard.json | 1 - keyboards/xiudi/xd60/rev3/keyboard.json | 1 - keyboards/xiudi/xd68/keyboard.json | 1 - keyboards/xiudi/xd75/keyboard.json | 1 - keyboards/xiudi/xd84pro/keyboard.json | 1 - keyboards/xmmx/keyboard.json | 1 - keyboards/yandrstudio/nz64/keyboard.json | 1 - keyboards/yandrstudio/zhou65/keyboard.json | 1 - keyboards/yatara/drink_me/keyboard.json | 1 - keyboards/ydkb/chili/keyboard.json | 1 - keyboards/ydkb/yd68/keyboard.json | 1 - keyboards/ydkb/ydpm40/keyboard.json | 1 - keyboards/yeehaw/keyboard.json | 1 - keyboards/ymdk/bface/keyboard.json | 1 - keyboards/ymdk/melody96/hotswap/keyboard.json | 1 - keyboards/ymdk/np21/keyboard.json | 1 - keyboards/ymdk/np24/u4rgb6/keyboard.json | 1 - keyboards/ymdk/wings/keyboard.json | 1 - keyboards/ymdk/wingshs/keyboard.json | 1 - keyboards/ymdk/yd60mq/info.json | 1 - keyboards/ymdk/ym68/keyboard.json | 1 - keyboards/ymdk/ymd09/keyboard.json | 1 - keyboards/ymdk/ymd21/v2/keyboard.json | 1 - keyboards/ymdk/ymd67/keyboard.json | 1 - keyboards/ymdk/ymd75/rev1/keyboard.json | 1 - keyboards/ymdk/ymd75/rev2/keyboard.json | 1 - keyboards/ymdk/ymd75/rev3/keyboard.json | 1 - keyboards/ymdk/ymd75/rev4/iso/keyboard.json | 1 - keyboards/ymdk/ymd96/keyboard.json | 1 - keyboards/yncognito/batpad/keyboard.json | 1 - keyboards/yoichiro/lunakey_macro/keyboard.json | 1 - keyboards/yoichiro/lunakey_pico/keyboard.json | 1 - keyboards/yynmt/dozen0/keyboard.json | 1 - keyboards/zeix/eden/keyboard.json | 1 - keyboards/zeix/qwertyqop60hs/keyboard.json | 1 - keyboards/zicodia/tklfrlnrlmlao/keyboard.json | 1 - keyboards/ziggurat/keyboard.json | 1 - keyboards/zigotica/z12/keyboard.json | 1 - keyboards/ziptyze/lets_split_v3/keyboard.json | 1 - keyboards/zj68/keyboard.json | 1 - keyboards/zoo/wampus/keyboard.json | 1 - keyboards/zos/65s/keyboard.json | 1 - keyboards/ztboards/after/keyboard.json | 1 - keyboards/ztboards/noon/keyboard.json | 1 - keyboards/zwag/zwag75/keyboard.json | 1 - keyboards/zwerg/keyboard.json | 1 - keyboards/zykrah/fuyu/keyboard.json | 1 - keyboards/zykrah/slime88/keyboard.json | 1 - 1806 files changed, 1 insertion(+), 1807 deletions(-) diff --git a/keyboards/0xc7/61key/keyboard.json b/keyboards/0xc7/61key/keyboard.json index 6b1e2e809e9..969d0ce7f94 100644 --- a/keyboards/0xc7/61key/keyboard.json +++ b/keyboards/0xc7/61key/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": false, "key_lock": true, "mousekey": false, diff --git a/keyboards/0xcb/1337/keyboard.json b/keyboards/0xcb/1337/keyboard.json index b2ef00906b1..f4c45adc2fa 100644 --- a/keyboards/0xcb/1337/keyboard.json +++ b/keyboards/0xcb/1337/keyboard.json @@ -66,7 +66,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/0xcb/static/keyboard.json b/keyboards/0xcb/static/keyboard.json index 73a6a802cc5..064d437731d 100644 --- a/keyboards/0xcb/static/keyboard.json +++ b/keyboards/0xcb/static/keyboard.json @@ -14,7 +14,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/0xcb/tutelpad/keyboard.json b/keyboards/0xcb/tutelpad/keyboard.json index 2367e6ce2e9..15a09b0f002 100644 --- a/keyboards/0xcb/tutelpad/keyboard.json +++ b/keyboards/0xcb/tutelpad/keyboard.json @@ -35,7 +35,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/1upkeyboards/1up60hte/keyboard.json b/keyboards/1upkeyboards/1up60hte/keyboard.json index 7f8a660d80f..c080b04cb88 100644 --- a/keyboards/1upkeyboards/1up60hte/keyboard.json +++ b/keyboards/1upkeyboards/1up60hte/keyboard.json @@ -15,7 +15,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/1upkeyboards/1up60rgb/keyboard.json b/keyboards/1upkeyboards/1up60rgb/keyboard.json index 5b0d9ef5d4c..914bbcb7c7e 100644 --- a/keyboards/1upkeyboards/1up60rgb/keyboard.json +++ b/keyboards/1upkeyboards/1up60rgb/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/1upkeyboards/1upocarina/keyboard.json b/keyboards/1upkeyboards/1upocarina/keyboard.json index 1f33c048c10..c3bee81eb88 100644 --- a/keyboards/1upkeyboards/1upocarina/keyboard.json +++ b/keyboards/1upkeyboards/1upocarina/keyboard.json @@ -16,7 +16,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/1upkeyboards/1upslider8/keyboard.json b/keyboards/1upkeyboards/1upslider8/keyboard.json index 6b65361f673..1f80ef23b87 100644 --- a/keyboards/1upkeyboards/1upslider8/keyboard.json +++ b/keyboards/1upkeyboards/1upslider8/keyboard.json @@ -15,7 +15,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/1upkeyboards/1upsuper16v3/keyboard.json b/keyboards/1upkeyboards/1upsuper16v3/keyboard.json index 7ef33a03429..0d7e9eb27c9 100644 --- a/keyboards/1upkeyboards/1upsuper16v3/keyboard.json +++ b/keyboards/1upkeyboards/1upsuper16v3/keyboard.json @@ -17,7 +17,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/1upkeyboards/pi40/grid_v1_1/keyboard.json b/keyboards/1upkeyboards/pi40/grid_v1_1/keyboard.json index 63f76eb1a65..022ed75338f 100644 --- a/keyboards/1upkeyboards/pi40/grid_v1_1/keyboard.json +++ b/keyboards/1upkeyboards/pi40/grid_v1_1/keyboard.json @@ -20,7 +20,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/1upkeyboards/pi40/mit_v1_0/keyboard.json b/keyboards/1upkeyboards/pi40/mit_v1_0/keyboard.json index ed1f1391261..d038a973bf3 100644 --- a/keyboards/1upkeyboards/pi40/mit_v1_0/keyboard.json +++ b/keyboards/1upkeyboards/pi40/mit_v1_0/keyboard.json @@ -20,7 +20,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/1upkeyboards/pi40/mit_v1_1/keyboard.json b/keyboards/1upkeyboards/pi40/mit_v1_1/keyboard.json index aa19a502b98..d1330785643 100644 --- a/keyboards/1upkeyboards/pi40/mit_v1_1/keyboard.json +++ b/keyboards/1upkeyboards/pi40/mit_v1_1/keyboard.json @@ -20,7 +20,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/1upkeyboards/pi50/info.json b/keyboards/1upkeyboards/pi50/info.json index 409fbecbc89..83add323b0c 100644 --- a/keyboards/1upkeyboards/pi50/info.json +++ b/keyboards/1upkeyboards/pi50/info.json @@ -17,7 +17,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/1upkeyboards/pi60/keyboard.json b/keyboards/1upkeyboards/pi60/keyboard.json index ca3007ee76d..1074313c2e4 100644 --- a/keyboards/1upkeyboards/pi60/keyboard.json +++ b/keyboards/1upkeyboards/pi60/keyboard.json @@ -17,7 +17,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/1upkeyboards/pi60_hse/keyboard.json b/keyboards/1upkeyboards/pi60_hse/keyboard.json index d5a5f861873..3b99d43a0a2 100644 --- a/keyboards/1upkeyboards/pi60_hse/keyboard.json +++ b/keyboards/1upkeyboards/pi60_hse/keyboard.json @@ -17,7 +17,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/1upkeyboards/pi60_rgb/keyboard.json b/keyboards/1upkeyboards/pi60_rgb/keyboard.json index 21dab3f71ae..bd590dc049c 100644 --- a/keyboards/1upkeyboards/pi60_rgb/keyboard.json +++ b/keyboards/1upkeyboards/pi60_rgb/keyboard.json @@ -17,7 +17,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/1upkeyboards/super16/keyboard.json b/keyboards/1upkeyboards/super16/keyboard.json index f43d5d70371..fcc1ec16201 100644 --- a/keyboards/1upkeyboards/super16/keyboard.json +++ b/keyboards/1upkeyboards/super16/keyboard.json @@ -79,7 +79,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/1upkeyboards/super16v2/keyboard.json b/keyboards/1upkeyboards/super16v2/keyboard.json index 2e423d7d5a2..888bdcc20d2 100644 --- a/keyboards/1upkeyboards/super16v2/keyboard.json +++ b/keyboards/1upkeyboards/super16v2/keyboard.json @@ -51,7 +51,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/1upkeyboards/sweet16/info.json b/keyboards/1upkeyboards/sweet16/info.json index 65ce40a6583..a1f9de54ba6 100644 --- a/keyboards/1upkeyboards/sweet16/info.json +++ b/keyboards/1upkeyboards/sweet16/info.json @@ -5,7 +5,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/1upkeyboards/sweet16v2/kb2040/keyboard.json b/keyboards/1upkeyboards/sweet16v2/kb2040/keyboard.json index d8d6c5e3eae..f5225fce853 100644 --- a/keyboards/1upkeyboards/sweet16v2/kb2040/keyboard.json +++ b/keyboards/1upkeyboards/sweet16v2/kb2040/keyboard.json @@ -14,7 +14,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/1upkeyboards/sweet16v2/pro_micro/keyboard.json b/keyboards/1upkeyboards/sweet16v2/pro_micro/keyboard.json index d46f723a17e..ba22994765f 100644 --- a/keyboards/1upkeyboards/sweet16v2/pro_micro/keyboard.json +++ b/keyboards/1upkeyboards/sweet16v2/pro_micro/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/3keyecosystem/2key2/keyboard.json b/keyboards/3keyecosystem/2key2/keyboard.json index 5c77fdf6ae8..de34f387c19 100644 --- a/keyboards/3keyecosystem/2key2/keyboard.json +++ b/keyboards/3keyecosystem/2key2/keyboard.json @@ -70,7 +70,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/40percentclub/4pack/keyboard.json b/keyboards/40percentclub/4pack/keyboard.json index 6be4ab5e8a7..79aedd88c33 100644 --- a/keyboards/40percentclub/4pack/keyboard.json +++ b/keyboards/40percentclub/4pack/keyboard.json @@ -17,7 +17,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/40percentclub/luddite/keyboard.json b/keyboards/40percentclub/luddite/keyboard.json index 774aed72dbe..a892f041cba 100644 --- a/keyboards/40percentclub/luddite/keyboard.json +++ b/keyboards/40percentclub/luddite/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/40percentclub/mf68/keyboard.json b/keyboards/40percentclub/mf68/keyboard.json index 161c4345af9..55e0bc4a075 100644 --- a/keyboards/40percentclub/mf68/keyboard.json +++ b/keyboards/40percentclub/mf68/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/40percentclub/nano/keyboard.json b/keyboards/40percentclub/nano/keyboard.json index 39aa46098ff..b72c6c8d738 100644 --- a/keyboards/40percentclub/nano/keyboard.json +++ b/keyboards/40percentclub/nano/keyboard.json @@ -30,7 +30,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/40percentclub/nein/keyboard.json b/keyboards/40percentclub/nein/keyboard.json index 9e1711f71e7..1f35c04e811 100644 --- a/keyboards/40percentclub/nein/keyboard.json +++ b/keyboards/40percentclub/nein/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/40percentclub/polyandry/info.json b/keyboards/40percentclub/polyandry/info.json index 25e560f780f..0413fbfb877 100644 --- a/keyboards/40percentclub/polyandry/info.json +++ b/keyboards/40percentclub/polyandry/info.json @@ -5,7 +5,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/40percentclub/sixpack/keyboard.json b/keyboards/40percentclub/sixpack/keyboard.json index 059c9de091d..69daf6b79c6 100644 --- a/keyboards/40percentclub/sixpack/keyboard.json +++ b/keyboards/40percentclub/sixpack/keyboard.json @@ -25,7 +25,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/40percentclub/tomato/keyboard.json b/keyboards/40percentclub/tomato/keyboard.json index ecc7b195705..79e1e657f09 100644 --- a/keyboards/40percentclub/tomato/keyboard.json +++ b/keyboards/40percentclub/tomato/keyboard.json @@ -30,7 +30,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/4pplet/aekiso60/rev_a/keyboard.json b/keyboards/4pplet/aekiso60/rev_a/keyboard.json index 5e236adc9ac..1461015ca81 100644 --- a/keyboards/4pplet/aekiso60/rev_a/keyboard.json +++ b/keyboards/4pplet/aekiso60/rev_a/keyboard.json @@ -27,7 +27,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/4pplet/bootleg/rev_a/keyboard.json b/keyboards/4pplet/bootleg/rev_a/keyboard.json index 10aa3de6783..59ec6979bec 100644 --- a/keyboards/4pplet/bootleg/rev_a/keyboard.json +++ b/keyboards/4pplet/bootleg/rev_a/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/4pplet/perk60_iso/rev_a/keyboard.json b/keyboards/4pplet/perk60_iso/rev_a/keyboard.json index 50babdab711..de73016d575 100644 --- a/keyboards/4pplet/perk60_iso/rev_a/keyboard.json +++ b/keyboards/4pplet/perk60_iso/rev_a/keyboard.json @@ -42,7 +42,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/4pplet/steezy60/rev_a/keyboard.json b/keyboards/4pplet/steezy60/rev_a/keyboard.json index bbc3d1601b8..1ac0eaaff60 100644 --- a/keyboards/4pplet/steezy60/rev_a/keyboard.json +++ b/keyboards/4pplet/steezy60/rev_a/keyboard.json @@ -32,7 +32,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/4pplet/steezy60/rev_b/keyboard.json b/keyboards/4pplet/steezy60/rev_b/keyboard.json index 810f7f8cb95..b429cfd70be 100644 --- a/keyboards/4pplet/steezy60/rev_b/keyboard.json +++ b/keyboards/4pplet/steezy60/rev_b/keyboard.json @@ -28,7 +28,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/4pplet/unextended_std/rev_a/keyboard.json b/keyboards/4pplet/unextended_std/rev_a/keyboard.json index 1b1909854ac..a34560f91bd 100644 --- a/keyboards/4pplet/unextended_std/rev_a/keyboard.json +++ b/keyboards/4pplet/unextended_std/rev_a/keyboard.json @@ -19,7 +19,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "rgblight": true, diff --git a/keyboards/4pplet/waffling60/rev_a/keyboard.json b/keyboards/4pplet/waffling60/rev_a/keyboard.json index cbb24bd56a4..2df4067ecff 100644 --- a/keyboards/4pplet/waffling60/rev_a/keyboard.json +++ b/keyboards/4pplet/waffling60/rev_a/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/4pplet/waffling60/rev_b/keyboard.json b/keyboards/4pplet/waffling60/rev_b/keyboard.json index 54e51b388b7..51d21d5b5e4 100644 --- a/keyboards/4pplet/waffling60/rev_b/keyboard.json +++ b/keyboards/4pplet/waffling60/rev_b/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/4pplet/waffling60/rev_c/keyboard.json b/keyboards/4pplet/waffling60/rev_c/keyboard.json index a7c23cc3495..2995f986465 100644 --- a/keyboards/4pplet/waffling60/rev_c/keyboard.json +++ b/keyboards/4pplet/waffling60/rev_c/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/4pplet/waffling60/rev_e/keyboard.json b/keyboards/4pplet/waffling60/rev_e/keyboard.json index 9adf6dada3a..13d03d15c34 100644 --- a/keyboards/4pplet/waffling60/rev_e/keyboard.json +++ b/keyboards/4pplet/waffling60/rev_e/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "key_lock": true, "mousekey": true, diff --git a/keyboards/4pplet/waffling60/rev_e_ansi/keyboard.json b/keyboards/4pplet/waffling60/rev_e_ansi/keyboard.json index 15d3c7cfe9e..e32e9b17b85 100644 --- a/keyboards/4pplet/waffling60/rev_e_ansi/keyboard.json +++ b/keyboards/4pplet/waffling60/rev_e_ansi/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "key_lock": true, "mousekey": true, diff --git a/keyboards/4pplet/waffling60/rev_e_iso/keyboard.json b/keyboards/4pplet/waffling60/rev_e_iso/keyboard.json index a9bfad4d629..5b026334f6f 100644 --- a/keyboards/4pplet/waffling60/rev_e_iso/keyboard.json +++ b/keyboards/4pplet/waffling60/rev_e_iso/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "key_lock": true, "mousekey": true, diff --git a/keyboards/4pplet/waffling80/rev_a/keyboard.json b/keyboards/4pplet/waffling80/rev_a/keyboard.json index 157cefa5362..4dff8111945 100644 --- a/keyboards/4pplet/waffling80/rev_a/keyboard.json +++ b/keyboards/4pplet/waffling80/rev_a/keyboard.json @@ -15,7 +15,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/4pplet/yakiimo/rev_a/keyboard.json b/keyboards/4pplet/yakiimo/rev_a/keyboard.json index f22f67ac6a4..f4c016afc13 100644 --- a/keyboards/4pplet/yakiimo/rev_a/keyboard.json +++ b/keyboards/4pplet/yakiimo/rev_a/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/7c8/framework/keyboard.json b/keyboards/7c8/framework/keyboard.json index a6ebdfbfc61..72302b3e4af 100644 --- a/keyboards/7c8/framework/keyboard.json +++ b/keyboards/7c8/framework/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "encoder": true, "extrakey": true, "leader": true, diff --git a/keyboards/9key/keyboard.json b/keyboards/9key/keyboard.json index f63fdf3607d..baa8bb4c18a 100644 --- a/keyboards/9key/keyboard.json +++ b/keyboards/9key/keyboard.json @@ -16,7 +16,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/abatskeyboardclub/nayeon/keyboard.json b/keyboards/abatskeyboardclub/nayeon/keyboard.json index 4949b170729..6b1a7486179 100644 --- a/keyboards/abatskeyboardclub/nayeon/keyboard.json +++ b/keyboards/abatskeyboardclub/nayeon/keyboard.json @@ -10,7 +10,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": false, "rgb_matrix": true diff --git a/keyboards/abstract/ellipse/rev1/keyboard.json b/keyboards/abstract/ellipse/rev1/keyboard.json index 8e38f29d56c..95ea435ae88 100644 --- a/keyboards/abstract/ellipse/rev1/keyboard.json +++ b/keyboards/abstract/ellipse/rev1/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/acekeyboard/titan60/keyboard.json b/keyboards/acekeyboard/titan60/keyboard.json index 4446927ab8a..1718b6fa22e 100644 --- a/keyboards/acekeyboard/titan60/keyboard.json +++ b/keyboards/acekeyboard/titan60/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/acheron/apollo/87h/delta/keyboard.json b/keyboards/acheron/apollo/87h/delta/keyboard.json index 5d01c1b8f77..1676297ab71 100644 --- a/keyboards/acheron/apollo/87h/delta/keyboard.json +++ b/keyboards/acheron/apollo/87h/delta/keyboard.json @@ -62,7 +62,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/acheron/apollo/87htsc/keyboard.json b/keyboards/acheron/apollo/87htsc/keyboard.json index e40f18da924..654a99c404d 100644 --- a/keyboards/acheron/apollo/87htsc/keyboard.json +++ b/keyboards/acheron/apollo/87htsc/keyboard.json @@ -65,7 +65,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/acheron/apollo/88htsc/keyboard.json b/keyboards/acheron/apollo/88htsc/keyboard.json index 02831f8c626..539fc5bcdd6 100644 --- a/keyboards/acheron/apollo/88htsc/keyboard.json +++ b/keyboards/acheron/apollo/88htsc/keyboard.json @@ -65,7 +65,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/acheron/athena/alpha/keyboard.json b/keyboards/acheron/athena/alpha/keyboard.json index 7e29cdc0372..47f626f1cc0 100644 --- a/keyboards/acheron/athena/alpha/keyboard.json +++ b/keyboards/acheron/athena/alpha/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/acheron/athena/beta/keyboard.json b/keyboards/acheron/athena/beta/keyboard.json index ba96b201515..bded4b88056 100644 --- a/keyboards/acheron/athena/beta/keyboard.json +++ b/keyboards/acheron/athena/beta/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/acheron/elongate/beta/keyboard.json b/keyboards/acheron/elongate/beta/keyboard.json index d15f1789911..d998d80506e 100644 --- a/keyboards/acheron/elongate/beta/keyboard.json +++ b/keyboards/acheron/elongate/beta/keyboard.json @@ -35,7 +35,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/acheron/elongate/delta/keyboard.json b/keyboards/acheron/elongate/delta/keyboard.json index 1c6d0927d63..18d5b539b36 100644 --- a/keyboards/acheron/elongate/delta/keyboard.json +++ b/keyboards/acheron/elongate/delta/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/acheron/shark/beta/keyboard.json b/keyboards/acheron/shark/beta/keyboard.json index 2433f61fecf..2281c24b308 100644 --- a/keyboards/acheron/shark/beta/keyboard.json +++ b/keyboards/acheron/shark/beta/keyboard.json @@ -8,7 +8,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/acheron/themis/87h/keyboard.json b/keyboards/acheron/themis/87h/keyboard.json index 488cb324c16..d94f7b0ff32 100644 --- a/keyboards/acheron/themis/87h/keyboard.json +++ b/keyboards/acheron/themis/87h/keyboard.json @@ -15,7 +15,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "rgblight": true, "nkro": true }, diff --git a/keyboards/acheron/themis/87htsc/keyboard.json b/keyboards/acheron/themis/87htsc/keyboard.json index 46cdb092475..460c1f8f8eb 100644 --- a/keyboards/acheron/themis/87htsc/keyboard.json +++ b/keyboards/acheron/themis/87htsc/keyboard.json @@ -15,7 +15,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "rgblight": true, "nkro": true }, diff --git a/keyboards/acheron/themis/88htsc/keyboard.json b/keyboards/acheron/themis/88htsc/keyboard.json index 1e193d2661b..5449461e153 100644 --- a/keyboards/acheron/themis/88htsc/keyboard.json +++ b/keyboards/acheron/themis/88htsc/keyboard.json @@ -15,7 +15,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "rgblight": true, "nkro": true }, diff --git a/keyboards/ada/infinity81/keyboard.json b/keyboards/ada/infinity81/keyboard.json index f1f928697bf..df5b0fd9758 100644 --- a/keyboards/ada/infinity81/keyboard.json +++ b/keyboards/ada/infinity81/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/adelheid/keyboard.json b/keyboards/adelheid/keyboard.json index 7766a44a8d5..4247a06b218 100644 --- a/keyboards/adelheid/keyboard.json +++ b/keyboards/adelheid/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/adm42/rev4/keyboard.json b/keyboards/adm42/rev4/keyboard.json index 827c127b864..b22273e3d39 100644 --- a/keyboards/adm42/rev4/keyboard.json +++ b/keyboards/adm42/rev4/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/adpenrose/akemipad/keyboard.json b/keyboards/adpenrose/akemipad/keyboard.json index 50003fbb5f5..f372b7bd045 100644 --- a/keyboards/adpenrose/akemipad/keyboard.json +++ b/keyboards/adpenrose/akemipad/keyboard.json @@ -24,7 +24,6 @@ "audio": true, "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/adpenrose/kintsugi/keyboard.json b/keyboards/adpenrose/kintsugi/keyboard.json index 46504298f8a..f86d344cdb3 100644 --- a/keyboards/adpenrose/kintsugi/keyboard.json +++ b/keyboards/adpenrose/kintsugi/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/adpenrose/obi/keyboard.json b/keyboards/adpenrose/obi/keyboard.json index 8c1428ca818..1102878dc74 100644 --- a/keyboards/adpenrose/obi/keyboard.json +++ b/keyboards/adpenrose/obi/keyboard.json @@ -30,7 +30,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/adpenrose/shisaku/keyboard.json b/keyboards/adpenrose/shisaku/keyboard.json index 1382ee3b62c..d3d6b4607e7 100644 --- a/keyboards/adpenrose/shisaku/keyboard.json +++ b/keyboards/adpenrose/shisaku/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/aeboards/aegis/keyboard.json b/keyboards/aeboards/aegis/keyboard.json index 63705b70434..4f70eaf1318 100644 --- a/keyboards/aeboards/aegis/keyboard.json +++ b/keyboards/aeboards/aegis/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/afternoonlabs/gust/rev1/keyboard.json b/keyboards/afternoonlabs/gust/rev1/keyboard.json index 93ad60ad7d6..9ba40a64263 100644 --- a/keyboards/afternoonlabs/gust/rev1/keyboard.json +++ b/keyboards/afternoonlabs/gust/rev1/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/ai/keyboard.json b/keyboards/ai/keyboard.json index d25459b507f..5a41e18a531 100644 --- a/keyboards/ai/keyboard.json +++ b/keyboards/ai/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ai03/altair/keyboard.json b/keyboards/ai03/altair/keyboard.json index a8cd8b02a76..f4c17ce425a 100644 --- a/keyboards/ai03/altair/keyboard.json +++ b/keyboards/ai03/altair/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ai03/altair_x/keyboard.json b/keyboards/ai03/altair_x/keyboard.json index 27f36af97bb..7277184e9ab 100644 --- a/keyboards/ai03/altair_x/keyboard.json +++ b/keyboards/ai03/altair_x/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ai03/duet/keyboard.json b/keyboards/ai03/duet/keyboard.json index 1d11c868a37..055e23e4d73 100644 --- a/keyboards/ai03/duet/keyboard.json +++ b/keyboards/ai03/duet/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/ai03/equinox/rev0/keyboard.json b/keyboards/ai03/equinox/rev0/keyboard.json index e38fada3338..5006c88239e 100644 --- a/keyboards/ai03/equinox/rev0/keyboard.json +++ b/keyboards/ai03/equinox/rev0/keyboard.json @@ -3,7 +3,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ai03/equinox/rev1/keyboard.json b/keyboards/ai03/equinox/rev1/keyboard.json index 590a84b31c8..59a311e5771 100644 --- a/keyboards/ai03/equinox/rev1/keyboard.json +++ b/keyboards/ai03/equinox/rev1/keyboard.json @@ -3,7 +3,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ai03/equinox_xl/keyboard.json b/keyboards/ai03/equinox_xl/keyboard.json index e6abf4a0c21..051f4452c03 100644 --- a/keyboards/ai03/equinox_xl/keyboard.json +++ b/keyboards/ai03/equinox_xl/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ai03/jp60/keyboard.json b/keyboards/ai03/jp60/keyboard.json index 389993626d8..c54062977a9 100644 --- a/keyboards/ai03/jp60/keyboard.json +++ b/keyboards/ai03/jp60/keyboard.json @@ -14,7 +14,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ai03/polaris/keyboard.json b/keyboards/ai03/polaris/keyboard.json index 7e6ab9aec72..72fe915cb2e 100644 --- a/keyboards/ai03/polaris/keyboard.json +++ b/keyboards/ai03/polaris/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/ai03/quasar/keyboard.json b/keyboards/ai03/quasar/keyboard.json index 52902e3067a..bd4b1b51d97 100644 --- a/keyboards/ai03/quasar/keyboard.json +++ b/keyboards/ai03/quasar/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/ai03/soyuz/keyboard.json b/keyboards/ai03/soyuz/keyboard.json index 2abfbd5ead5..be41a017989 100644 --- a/keyboards/ai03/soyuz/keyboard.json +++ b/keyboards/ai03/soyuz/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ai03/voyager60_alps/keyboard.json b/keyboards/ai03/voyager60_alps/keyboard.json index 9b8fa051b59..25546cfb74f 100644 --- a/keyboards/ai03/voyager60_alps/keyboard.json +++ b/keyboards/ai03/voyager60_alps/keyboard.json @@ -20,7 +20,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/aidansmithdotdev/fine40/keyboard.json b/keyboards/aidansmithdotdev/fine40/keyboard.json index 96631066077..a7b4d54e92e 100644 --- a/keyboards/aidansmithdotdev/fine40/keyboard.json +++ b/keyboards/aidansmithdotdev/fine40/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "encoder": true, diff --git a/keyboards/akb/ogr/keyboard.json b/keyboards/akb/ogr/keyboard.json index d1b062820aa..57dbfbdd3f6 100644 --- a/keyboards/akb/ogr/keyboard.json +++ b/keyboards/akb/ogr/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/akb/ogrn/keyboard.json b/keyboards/akb/ogrn/keyboard.json index 780c3537473..66b682af23d 100644 --- a/keyboards/akb/ogrn/keyboard.json +++ b/keyboards/akb/ogrn/keyboard.json @@ -6,7 +6,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/akb/vero/keyboard.json b/keyboards/akb/vero/keyboard.json index a598578c0cf..f443c1afad9 100644 --- a/keyboards/akb/vero/keyboard.json +++ b/keyboards/akb/vero/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/akko/5087/keyboard.json b/keyboards/akko/5087/keyboard.json index a2f72351ed6..3a309711e3c 100644 --- a/keyboards/akko/5087/keyboard.json +++ b/keyboards/akko/5087/keyboard.json @@ -16,7 +16,6 @@ "bootmagic": true, "mousekey": false, "extrakey": true, - "console": false, "command": false, "nkro": true, "rgb_matrix": true diff --git a/keyboards/akko/5108/keyboard.json b/keyboards/akko/5108/keyboard.json index e98e421089b..6429885b82e 100644 --- a/keyboards/akko/5108/keyboard.json +++ b/keyboards/akko/5108/keyboard.json @@ -16,7 +16,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "rgb_matrix": true diff --git a/keyboards/akko/acr87/keyboard.json b/keyboards/akko/acr87/keyboard.json index 9f37a91b9a8..df51b0b4b90 100644 --- a/keyboards/akko/acr87/keyboard.json +++ b/keyboards/akko/acr87/keyboard.json @@ -16,7 +16,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "rgb_matrix": true diff --git a/keyboards/akko/top40/keyboard.json b/keyboards/akko/top40/keyboard.json index fd7cf497e75..f206a2a70ba 100644 --- a/keyboards/akko/top40/keyboard.json +++ b/keyboards/akko/top40/keyboard.json @@ -16,7 +16,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "rgb_matrix": true diff --git a/keyboards/alf/x11/keyboard.json b/keyboards/alf/x11/keyboard.json index 03960934353..a368123e847 100644 --- a/keyboards/alf/x11/keyboard.json +++ b/keyboards/alf/x11/keyboard.json @@ -14,7 +14,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/alf/x2/keyboard.json b/keyboards/alf/x2/keyboard.json index ec3eae179a8..2135a46683b 100644 --- a/keyboards/alf/x2/keyboard.json +++ b/keyboards/alf/x2/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/alfredslab/swift65/hotswap/keyboard.json b/keyboards/alfredslab/swift65/hotswap/keyboard.json index d2a6e6da036..8100b7bcbd9 100644 --- a/keyboards/alfredslab/swift65/hotswap/keyboard.json +++ b/keyboards/alfredslab/swift65/hotswap/keyboard.json @@ -32,7 +32,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/alfredslab/swift65/solder/keyboard.json b/keyboards/alfredslab/swift65/solder/keyboard.json index cb419d4cc1f..9fecc6a5f6e 100644 --- a/keyboards/alfredslab/swift65/solder/keyboard.json +++ b/keyboards/alfredslab/swift65/solder/keyboard.json @@ -33,7 +33,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/alhenkb/macropad5x4/keyboard.json b/keyboards/alhenkb/macropad5x4/keyboard.json index 7415068b2c2..fd2645619e0 100644 --- a/keyboards/alhenkb/macropad5x4/keyboard.json +++ b/keyboards/alhenkb/macropad5x4/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/alpha/keyboard.json b/keyboards/alpha/keyboard.json index 1cb2fe71cd2..4412177fbbf 100644 --- a/keyboards/alpha/keyboard.json +++ b/keyboards/alpha/keyboard.json @@ -30,7 +30,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/amag23/keyboard.json b/keyboards/amag23/keyboard.json index e3eb16cdad5..8b144cdef10 100644 --- a/keyboards/amag23/keyboard.json +++ b/keyboards/amag23/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/amjkeyboard/amj40/keyboard.json b/keyboards/amjkeyboard/amj40/keyboard.json index c3bbe720397..dd27bd46aef 100644 --- a/keyboards/amjkeyboard/amj40/keyboard.json +++ b/keyboards/amjkeyboard/amj40/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/amjkeyboard/amj60/keyboard.json b/keyboards/amjkeyboard/amj60/keyboard.json index f16d178b06c..d5d7bc18040 100644 --- a/keyboards/amjkeyboard/amj60/keyboard.json +++ b/keyboards/amjkeyboard/amj60/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/amjkeyboard/amj84/keyboard.json b/keyboards/amjkeyboard/amj84/keyboard.json index d5f1f11a4db..9293bf1581d 100644 --- a/keyboards/amjkeyboard/amj84/keyboard.json +++ b/keyboards/amjkeyboard/amj84/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/an_achronism/tetromino/keyboard.json b/keyboards/an_achronism/tetromino/keyboard.json index 98cb9faf3e6..b9a0e2005d3 100644 --- a/keyboards/an_achronism/tetromino/keyboard.json +++ b/keyboards/an_achronism/tetromino/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/anavi/arrows/keyboard.json b/keyboards/anavi/arrows/keyboard.json index 48dae7b2eab..7b9aa2985cc 100644 --- a/keyboards/anavi/arrows/keyboard.json +++ b/keyboards/anavi/arrows/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/anavi/knob1/keyboard.json b/keyboards/anavi/knob1/keyboard.json index 9c4c60640ee..176ee6472d1 100644 --- a/keyboards/anavi/knob1/keyboard.json +++ b/keyboards/anavi/knob1/keyboard.json @@ -8,7 +8,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/anavi/knobs3/keyboard.json b/keyboards/anavi/knobs3/keyboard.json index 86aaadf98fb..5e6cca99dcf 100644 --- a/keyboards/anavi/knobs3/keyboard.json +++ b/keyboards/anavi/knobs3/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/anavi/macropad10/keyboard.json b/keyboards/anavi/macropad10/keyboard.json index 2e1218d45ff..36f4e0cde85 100644 --- a/keyboards/anavi/macropad10/keyboard.json +++ b/keyboards/anavi/macropad10/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/anavi/macropad12/keyboard.json b/keyboards/anavi/macropad12/keyboard.json index 3a1a07a0a1c..be7c7cc9632 100644 --- a/keyboards/anavi/macropad12/keyboard.json +++ b/keyboards/anavi/macropad12/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/anavi/macropad8/keyboard.json b/keyboards/anavi/macropad8/keyboard.json index 27d34c18f38..9ed6601cffc 100644 --- a/keyboards/anavi/macropad8/keyboard.json +++ b/keyboards/anavi/macropad8/keyboard.json @@ -37,7 +37,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/andean_condor/keyboard.json b/keyboards/andean_condor/keyboard.json index cfc3eefa877..67502ed56a7 100644 --- a/keyboards/andean_condor/keyboard.json +++ b/keyboards/andean_condor/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ano/keyboard.json b/keyboards/ano/keyboard.json index 9c46895f1af..c0522ab1ccf 100644 --- a/keyboards/ano/keyboard.json +++ b/keyboards/ano/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/aos/tkl/keyboard.json b/keyboards/aos/tkl/keyboard.json index 8cd47a44a54..4d2476a5186 100644 --- a/keyboards/aos/tkl/keyboard.json +++ b/keyboards/aos/tkl/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/aplyard/aplx6/rev1/keyboard.json b/keyboards/aplyard/aplx6/rev1/keyboard.json index e7f59d12c60..288093b2404 100644 --- a/keyboards/aplyard/aplx6/rev1/keyboard.json +++ b/keyboards/aplyard/aplx6/rev1/keyboard.json @@ -6,7 +6,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/aplyard/aplx6/rev2/keyboard.json b/keyboards/aplyard/aplx6/rev2/keyboard.json index 7cd8d005444..597076ef55c 100644 --- a/keyboards/aplyard/aplx6/rev2/keyboard.json +++ b/keyboards/aplyard/aplx6/rev2/keyboard.json @@ -6,7 +6,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/ares/keyboard.json b/keyboards/ares/keyboard.json index b6e5544511f..21bf1a55f21 100644 --- a/keyboards/ares/keyboard.json +++ b/keyboards/ares/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/argo_works/ishi/80/mk0_avr/keyboard.json b/keyboards/argo_works/ishi/80/mk0_avr/keyboard.json index 47414ee0c4e..5c8978f08a8 100644 --- a/keyboards/argo_works/ishi/80/mk0_avr/keyboard.json +++ b/keyboards/argo_works/ishi/80/mk0_avr/keyboard.json @@ -16,7 +16,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/argo_works/ishi/80/mk0_avr_extra/keyboard.json b/keyboards/argo_works/ishi/80/mk0_avr_extra/keyboard.json index 89b9b1994f2..c18440971f7 100644 --- a/keyboards/argo_works/ishi/80/mk0_avr_extra/keyboard.json +++ b/keyboards/argo_works/ishi/80/mk0_avr_extra/keyboard.json @@ -17,7 +17,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/arisu/keyboard.json b/keyboards/arisu/keyboard.json index 43bb668b990..27bec90b090 100644 --- a/keyboards/arisu/keyboard.json +++ b/keyboards/arisu/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/arrayperipherals/1x4p1/keyboard.json b/keyboards/arrayperipherals/1x4p1/keyboard.json index f9344e35380..fff3b1af04d 100644 --- a/keyboards/arrayperipherals/1x4p1/keyboard.json +++ b/keyboards/arrayperipherals/1x4p1/keyboard.json @@ -18,7 +18,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/artemis/paragon/info.json b/keyboards/artemis/paragon/info.json index 93c547faa9f..fe0983e1943 100644 --- a/keyboards/artemis/paragon/info.json +++ b/keyboards/artemis/paragon/info.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/ash_xiix/keyboard.json b/keyboards/ash_xiix/keyboard.json index e743b80a8f8..ce8579af043 100644 --- a/keyboards/ash_xiix/keyboard.json +++ b/keyboards/ash_xiix/keyboard.json @@ -17,7 +17,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ask55/keyboard.json b/keyboards/ask55/keyboard.json index 53451e5329d..1916cace64c 100644 --- a/keyboards/ask55/keyboard.json +++ b/keyboards/ask55/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/atlantis/ak81_ve/keyboard.json b/keyboards/atlantis/ak81_ve/keyboard.json index aa85a55e0ad..fd6123b02b8 100644 --- a/keyboards/atlantis/ak81_ve/keyboard.json +++ b/keyboards/atlantis/ak81_ve/keyboard.json @@ -182,7 +182,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dynamic_macro": true, "encoder": true, "extrakey": true, diff --git a/keyboards/atlantis/ps17/keyboard.json b/keyboards/atlantis/ps17/keyboard.json index ee7255c8fa3..2231ae1ceb3 100644 --- a/keyboards/atlantis/ps17/keyboard.json +++ b/keyboards/atlantis/ps17/keyboard.json @@ -17,7 +17,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/atlas_65/keyboard.json b/keyboards/atlas_65/keyboard.json index 4e8db96d3af..354ff6f4e89 100644 --- a/keyboards/atlas_65/keyboard.json +++ b/keyboards/atlas_65/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/atomic/keyboard.json b/keyboards/atomic/keyboard.json index 5a269316cfa..3e0ac225c93 100644 --- a/keyboards/atomic/keyboard.json +++ b/keyboards/atomic/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/atreus/feather/keyboard.json b/keyboards/atreus/feather/keyboard.json index 7f5866e502a..1392849fd49 100644 --- a/keyboards/atreus/feather/keyboard.json +++ b/keyboards/atreus/feather/keyboard.json @@ -7,8 +7,7 @@ "processor": "atmega32u4", "bootloader": "caterina", "features": { - "bluetooth": true, - "console": false + "bluetooth": true }, "build": { "lto": true diff --git a/keyboards/atxkb/1894/keyboard.json b/keyboards/atxkb/1894/keyboard.json index 878c3d998c1..3fdd2171714 100644 --- a/keyboards/atxkb/1894/keyboard.json +++ b/keyboards/atxkb/1894/keyboard.json @@ -15,7 +15,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/aves60/keyboard.json b/keyboards/aves60/keyboard.json index 6d58d43b6a5..e26bc47faea 100644 --- a/keyboards/aves60/keyboard.json +++ b/keyboards/aves60/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/aves65/keyboard.json b/keyboards/aves65/keyboard.json index 9d8a70b78c9..9a0895efaf6 100644 --- a/keyboards/aves65/keyboard.json +++ b/keyboards/aves65/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/axolstudio/foundation_gamma/keyboard.json b/keyboards/axolstudio/foundation_gamma/keyboard.json index 86ba316268c..62db475c2f5 100644 --- a/keyboards/axolstudio/foundation_gamma/keyboard.json +++ b/keyboards/axolstudio/foundation_gamma/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/axolstudio/yeti/hotswap/keyboard.json b/keyboards/axolstudio/yeti/hotswap/keyboard.json index 728c359880c..0bba4d9d81b 100644 --- a/keyboards/axolstudio/yeti/hotswap/keyboard.json +++ b/keyboards/axolstudio/yeti/hotswap/keyboard.json @@ -52,7 +52,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/axolstudio/yeti/soldered/keyboard.json b/keyboards/axolstudio/yeti/soldered/keyboard.json index 9edb8083305..9e017af9451 100644 --- a/keyboards/axolstudio/yeti/soldered/keyboard.json +++ b/keyboards/axolstudio/yeti/soldered/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/bacca70/keyboard.json b/keyboards/bacca70/keyboard.json index 8d4483bc6fa..8f3b2d840d7 100644 --- a/keyboards/bacca70/keyboard.json +++ b/keyboards/bacca70/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/baguette/keyboard.json b/keyboards/baguette/keyboard.json index 1d86c43ad94..37b0be164af 100644 --- a/keyboards/baguette/keyboard.json +++ b/keyboards/baguette/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/balloondogcaps/tr90/keyboard.json b/keyboards/balloondogcaps/tr90/keyboard.json index 957953fd69a..c4176f4ff38 100644 --- a/keyboards/balloondogcaps/tr90/keyboard.json +++ b/keyboards/balloondogcaps/tr90/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/balloondogcaps/tr90pm/keyboard.json b/keyboards/balloondogcaps/tr90pm/keyboard.json index e095c1eda1b..66ef389a7f7 100644 --- a/keyboards/balloondogcaps/tr90pm/keyboard.json +++ b/keyboards/balloondogcaps/tr90pm/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/barracuda/keyboard.json b/keyboards/barracuda/keyboard.json index 6e606e11ea9..be92c5c6de7 100644 --- a/keyboards/barracuda/keyboard.json +++ b/keyboards/barracuda/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/bastardkb/dilemma/3x5_3/keyboard.json b/keyboards/bastardkb/dilemma/3x5_3/keyboard.json index 3ae31d0b469..e283b2409b7 100644 --- a/keyboards/bastardkb/dilemma/3x5_3/keyboard.json +++ b/keyboards/bastardkb/dilemma/3x5_3/keyboard.json @@ -35,7 +35,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/bastardkb/dilemma/4x6_4/keyboard.json b/keyboards/bastardkb/dilemma/4x6_4/keyboard.json index 4f0ea648c8f..9e85e7af1e2 100644 --- a/keyboards/bastardkb/dilemma/4x6_4/keyboard.json +++ b/keyboards/bastardkb/dilemma/4x6_4/keyboard.json @@ -35,7 +35,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/bear_face/info.json b/keyboards/bear_face/info.json index 90191299d87..f81f4c4536b 100644 --- a/keyboards/bear_face/info.json +++ b/keyboards/bear_face/info.json @@ -10,7 +10,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false }, diff --git a/keyboards/beatervan/keyboard.json b/keyboards/beatervan/keyboard.json index 5bc27c82655..f1a63807278 100644 --- a/keyboards/beatervan/keyboard.json +++ b/keyboards/beatervan/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/beekeeb/piantor/keyboard.json b/keyboards/beekeeb/piantor/keyboard.json index 77bfc3678cc..8d58efb90e2 100644 --- a/keyboards/beekeeb/piantor/keyboard.json +++ b/keyboards/beekeeb/piantor/keyboard.json @@ -6,7 +6,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/beekeeb/piantor_pro/keyboard.json b/keyboards/beekeeb/piantor_pro/keyboard.json index e7605acd1ad..558114b67e9 100644 --- a/keyboards/beekeeb/piantor_pro/keyboard.json +++ b/keyboards/beekeeb/piantor_pro/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/bfake/keyboard.json b/keyboards/bfake/keyboard.json index 8892d811124..febcc29f916 100644 --- a/keyboards/bfake/keyboard.json +++ b/keyboards/bfake/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/binepad/bn006/keyboard.json b/keyboards/binepad/bn006/keyboard.json index e5e25b4b90c..b535aabfcca 100755 --- a/keyboards/binepad/bn006/keyboard.json +++ b/keyboards/binepad/bn006/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/binepad/bn009/info.json b/keyboards/binepad/bn009/info.json index 5e06ee9ef61..d5ad51eb8cd 100644 --- a/keyboards/binepad/bn009/info.json +++ b/keyboards/binepad/bn009/info.json @@ -5,7 +5,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/binepad/bnr1/info.json b/keyboards/binepad/bnr1/info.json index 42067200cde..3c844d85120 100755 --- a/keyboards/binepad/bnr1/info.json +++ b/keyboards/binepad/bnr1/info.json @@ -5,7 +5,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/binepad/pixie/keyboard.json b/keyboards/binepad/pixie/keyboard.json index 7d9d2ceb9ad..0c906aef032 100644 --- a/keyboards/binepad/pixie/keyboard.json +++ b/keyboards/binepad/pixie/keyboard.json @@ -14,7 +14,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/bioi/f60/keyboard.json b/keyboards/bioi/f60/keyboard.json index 67fa1c1c9a2..a27533713bf 100644 --- a/keyboards/bioi/f60/keyboard.json +++ b/keyboards/bioi/f60/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/bioi/s65/keyboard.json b/keyboards/bioi/s65/keyboard.json index 73baaf98c4c..c07fd9158d9 100644 --- a/keyboards/bioi/s65/keyboard.json +++ b/keyboards/bioi/s65/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/black_hellebore/keyboard.json b/keyboards/black_hellebore/keyboard.json index b59cb8f7b97..7d7d6ea52f9 100644 --- a/keyboards/black_hellebore/keyboard.json +++ b/keyboards/black_hellebore/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/blackplum/keyboard.json b/keyboards/blackplum/keyboard.json index 277e0eae622..cf6ed8fd3e9 100644 --- a/keyboards/blackplum/keyboard.json +++ b/keyboards/blackplum/keyboard.json @@ -33,7 +33,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/blank/blank01/keyboard.json b/keyboards/blank/blank01/keyboard.json index 5e29f192f2b..bc55401c4f9 100644 --- a/keyboards/blank/blank01/keyboard.json +++ b/keyboards/blank/blank01/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/blockboy/ac980mini/keyboard.json b/keyboards/blockboy/ac980mini/keyboard.json index 8675daad8d6..568cfa17b5d 100644 --- a/keyboards/blockboy/ac980mini/keyboard.json +++ b/keyboards/blockboy/ac980mini/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/boardrun/bizarre/keyboard.json b/keyboards/boardrun/bizarre/keyboard.json index f61f3b053f1..22ddfb005d6 100644 --- a/keyboards/boardrun/bizarre/keyboard.json +++ b/keyboards/boardrun/bizarre/keyboard.json @@ -33,7 +33,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/boardrun/classic/keyboard.json b/keyboards/boardrun/classic/keyboard.json index be21483c8e3..320eaa4103f 100644 --- a/keyboards/boardrun/classic/keyboard.json +++ b/keyboards/boardrun/classic/keyboard.json @@ -33,7 +33,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/boardwalk/keyboard.json b/keyboards/boardwalk/keyboard.json index d0cb4b1383b..50a00b0f650 100644 --- a/keyboards/boardwalk/keyboard.json +++ b/keyboards/boardwalk/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/bobpad/keyboard.json b/keyboards/bobpad/keyboard.json index d96c875011e..cc14263d0d5 100644 --- a/keyboards/bobpad/keyboard.json +++ b/keyboards/bobpad/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/bolsa/bolsalice/keyboard.json b/keyboards/bolsa/bolsalice/keyboard.json index 377da8a1d2f..a6a37514f90 100644 --- a/keyboards/bolsa/bolsalice/keyboard.json +++ b/keyboards/bolsa/bolsalice/keyboard.json @@ -29,7 +29,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/bolsa/damapad/keyboard.json b/keyboards/bolsa/damapad/keyboard.json index a5d95add816..7417f4f7d7c 100644 --- a/keyboards/bolsa/damapad/keyboard.json +++ b/keyboards/bolsa/damapad/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/bop/keyboard.json b/keyboards/bop/keyboard.json index 6a88bb46177..dbd97ad2ffc 100644 --- a/keyboards/bop/keyboard.json +++ b/keyboards/bop/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/boston/keyboard.json b/keyboards/boston/keyboard.json index 050076c7a69..fc91b72873c 100644 --- a/keyboards/boston/keyboard.json +++ b/keyboards/boston/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/bpiphany/four_banger/keyboard.json b/keyboards/bpiphany/four_banger/keyboard.json index d74864d18f6..fe7cd2f32a4 100644 --- a/keyboards/bpiphany/four_banger/keyboard.json +++ b/keyboards/bpiphany/four_banger/keyboard.json @@ -30,7 +30,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/bpiphany/frosty_flake/20130602/keyboard.json b/keyboards/bpiphany/frosty_flake/20130602/keyboard.json index 142010c9c4a..4aba74d038a 100644 --- a/keyboards/bpiphany/frosty_flake/20130602/keyboard.json +++ b/keyboards/bpiphany/frosty_flake/20130602/keyboard.json @@ -2,7 +2,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/bpiphany/frosty_flake/20140521/keyboard.json b/keyboards/bpiphany/frosty_flake/20140521/keyboard.json index 2ca004c24d7..e1aae95566d 100644 --- a/keyboards/bpiphany/frosty_flake/20140521/keyboard.json +++ b/keyboards/bpiphany/frosty_flake/20140521/keyboard.json @@ -2,7 +2,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/bpiphany/sixshooter/keyboard.json b/keyboards/bpiphany/sixshooter/keyboard.json index 21e52f3629e..f3d0aeeca6c 100644 --- a/keyboards/bpiphany/sixshooter/keyboard.json +++ b/keyboards/bpiphany/sixshooter/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/bredworks/wyvern_hs/keyboard.json b/keyboards/bredworks/wyvern_hs/keyboard.json index 63e85496ae0..87f2ef02c08 100644 --- a/keyboards/bredworks/wyvern_hs/keyboard.json +++ b/keyboards/bredworks/wyvern_hs/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/bschwind/key_ripper/keyboard.json b/keyboards/bschwind/key_ripper/keyboard.json index ee30687d4f1..b4b01b30ece 100644 --- a/keyboards/bschwind/key_ripper/keyboard.json +++ b/keyboards/bschwind/key_ripper/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/bthlabs/geekpad/keyboard.json b/keyboards/bthlabs/geekpad/keyboard.json index 43ce11edf51..9bd1a92c5bb 100644 --- a/keyboards/bthlabs/geekpad/keyboard.json +++ b/keyboards/bthlabs/geekpad/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/budgy/keyboard.json b/keyboards/budgy/keyboard.json index cfb60d85ae7..5397def52ce 100644 --- a/keyboards/budgy/keyboard.json +++ b/keyboards/budgy/keyboard.json @@ -6,7 +6,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/buildakb/mw60/keyboard.json b/keyboards/buildakb/mw60/keyboard.json index 9c944277def..08b917c77aa 100644 --- a/keyboards/buildakb/mw60/keyboard.json +++ b/keyboards/buildakb/mw60/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/buildakb/potato65/keyboard.json b/keyboards/buildakb/potato65/keyboard.json index db203531424..12b175600d8 100644 --- a/keyboards/buildakb/potato65/keyboard.json +++ b/keyboards/buildakb/potato65/keyboard.json @@ -33,7 +33,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/buildakb/potato65hs/keyboard.json b/keyboards/buildakb/potato65hs/keyboard.json index 9e5edd6adb4..c6daaf7b6b6 100644 --- a/keyboards/buildakb/potato65hs/keyboard.json +++ b/keyboards/buildakb/potato65hs/keyboard.json @@ -33,7 +33,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/buildakb/potato65s/keyboard.json b/keyboards/buildakb/potato65s/keyboard.json index 8dd9b6cc53c..a85bbd10005 100644 --- a/keyboards/buildakb/potato65s/keyboard.json +++ b/keyboards/buildakb/potato65s/keyboard.json @@ -33,7 +33,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/butterkeebs/pocketpad/keyboard.json b/keyboards/butterkeebs/pocketpad/keyboard.json index 0b42d5fb17e..a36cab3cbed 100644 --- a/keyboards/butterkeebs/pocketpad/keyboard.json +++ b/keyboards/butterkeebs/pocketpad/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/cablecardesigns/cypher/rev6/keyboard.json b/keyboards/cablecardesigns/cypher/rev6/keyboard.json index 644f2f1aa69..71891cdb537 100644 --- a/keyboards/cablecardesigns/cypher/rev6/keyboard.json +++ b/keyboards/cablecardesigns/cypher/rev6/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cablecardesigns/phoenix/keyboard.json b/keyboards/cablecardesigns/phoenix/keyboard.json index 0d2ea10ad64..753b706746d 100755 --- a/keyboards/cablecardesigns/phoenix/keyboard.json +++ b/keyboards/cablecardesigns/phoenix/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/caffeinated/serpent65/keyboard.json b/keyboards/caffeinated/serpent65/keyboard.json index ef0f9267599..55a9f27dccb 100644 --- a/keyboards/caffeinated/serpent65/keyboard.json +++ b/keyboards/caffeinated/serpent65/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/canary/canary60rgb/v1/keyboard.json b/keyboards/canary/canary60rgb/v1/keyboard.json index 4980a6f2247..474460d5b5e 100644 --- a/keyboards/canary/canary60rgb/v1/keyboard.json +++ b/keyboards/canary/canary60rgb/v1/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/cannonkeys/adelie/keyboard.json b/keyboards/cannonkeys/adelie/keyboard.json index c6792f4c90d..1f30a3c41cf 100644 --- a/keyboards/cannonkeys/adelie/keyboard.json +++ b/keyboards/cannonkeys/adelie/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/cannonkeys/atlas_alps/keyboard.json b/keyboards/cannonkeys/atlas_alps/keyboard.json index 39bfa968b9f..7179ea2fcc6 100644 --- a/keyboards/cannonkeys/atlas_alps/keyboard.json +++ b/keyboards/cannonkeys/atlas_alps/keyboard.json @@ -33,7 +33,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cannonkeys/bakeneko60_iso_hs/keyboard.json b/keyboards/cannonkeys/bakeneko60_iso_hs/keyboard.json index cba8980b9df..858db3c20fb 100644 --- a/keyboards/cannonkeys/bakeneko60_iso_hs/keyboard.json +++ b/keyboards/cannonkeys/bakeneko60_iso_hs/keyboard.json @@ -17,7 +17,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/cannonkeys/bakeneko65_iso_hs/keyboard.json b/keyboards/cannonkeys/bakeneko65_iso_hs/keyboard.json index c8ef3239067..f0ab41a0b9a 100644 --- a/keyboards/cannonkeys/bakeneko65_iso_hs/keyboard.json +++ b/keyboards/cannonkeys/bakeneko65_iso_hs/keyboard.json @@ -16,7 +16,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cannonkeys/bastion60/keyboard.json b/keyboards/cannonkeys/bastion60/keyboard.json index 26cf507984c..ddc35134343 100644 --- a/keyboards/cannonkeys/bastion60/keyboard.json +++ b/keyboards/cannonkeys/bastion60/keyboard.json @@ -14,7 +14,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cannonkeys/bastion65/keyboard.json b/keyboards/cannonkeys/bastion65/keyboard.json index dd7dd4516eb..936b23c396b 100644 --- a/keyboards/cannonkeys/bastion65/keyboard.json +++ b/keyboards/cannonkeys/bastion65/keyboard.json @@ -14,7 +14,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cannonkeys/bastion75/keyboard.json b/keyboards/cannonkeys/bastion75/keyboard.json index 276cc03c514..fcaecbdb600 100644 --- a/keyboards/cannonkeys/bastion75/keyboard.json +++ b/keyboards/cannonkeys/bastion75/keyboard.json @@ -18,7 +18,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cannonkeys/bastiontkl/keyboard.json b/keyboards/cannonkeys/bastiontkl/keyboard.json index 72733b3d8fe..71c12d4e881 100644 --- a/keyboards/cannonkeys/bastiontkl/keyboard.json +++ b/keyboards/cannonkeys/bastiontkl/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/cannonkeys/brutalv2_1800/keyboard.json b/keyboards/cannonkeys/brutalv2_1800/keyboard.json index 13f1b127334..2a0c5deb52c 100644 --- a/keyboards/cannonkeys/brutalv2_1800/keyboard.json +++ b/keyboards/cannonkeys/brutalv2_1800/keyboard.json @@ -18,7 +18,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/cannonkeys/caerdroia/keyboard.json b/keyboards/cannonkeys/caerdroia/keyboard.json index 4b5baf21dde..dcea5e06bea 100644 --- a/keyboards/cannonkeys/caerdroia/keyboard.json +++ b/keyboards/cannonkeys/caerdroia/keyboard.json @@ -18,7 +18,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/cannonkeys/chimera65_hs/keyboard.json b/keyboards/cannonkeys/chimera65_hs/keyboard.json index a126a007b5e..57922519163 100644 --- a/keyboards/cannonkeys/chimera65_hs/keyboard.json +++ b/keyboards/cannonkeys/chimera65_hs/keyboard.json @@ -20,7 +20,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/cannonkeys/ellipse/keyboard.json b/keyboards/cannonkeys/ellipse/keyboard.json index c7e37befbdc..4bc159617ea 100644 --- a/keyboards/cannonkeys/ellipse/keyboard.json +++ b/keyboards/cannonkeys/ellipse/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cannonkeys/ellipse_hs/keyboard.json b/keyboards/cannonkeys/ellipse_hs/keyboard.json index da79dea27af..52b7a4a918b 100644 --- a/keyboards/cannonkeys/ellipse_hs/keyboard.json +++ b/keyboards/cannonkeys/ellipse_hs/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/cannonkeys/leviatan/keyboard.json b/keyboards/cannonkeys/leviatan/keyboard.json index c929447e89d..880d30c1e3f 100644 --- a/keyboards/cannonkeys/leviatan/keyboard.json +++ b/keyboards/cannonkeys/leviatan/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/cannonkeys/meetuppad2023/keyboard.json b/keyboards/cannonkeys/meetuppad2023/keyboard.json index e55d4361d84..f43892a9490 100644 --- a/keyboards/cannonkeys/meetuppad2023/keyboard.json +++ b/keyboards/cannonkeys/meetuppad2023/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/cannonkeys/moment/keyboard.json b/keyboards/cannonkeys/moment/keyboard.json index 4aec3c9c060..aa718a6c726 100644 --- a/keyboards/cannonkeys/moment/keyboard.json +++ b/keyboards/cannonkeys/moment/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cannonkeys/moment_hs/keyboard.json b/keyboards/cannonkeys/moment_hs/keyboard.json index dc1f6503227..4729376080f 100644 --- a/keyboards/cannonkeys/moment_hs/keyboard.json +++ b/keyboards/cannonkeys/moment_hs/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/cannonkeys/nearfield/keyboard.json b/keyboards/cannonkeys/nearfield/keyboard.json index 784d26bd6f9..0afc36ced06 100644 --- a/keyboards/cannonkeys/nearfield/keyboard.json +++ b/keyboards/cannonkeys/nearfield/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/cannonkeys/ortho48v2/keyboard.json b/keyboards/cannonkeys/ortho48v2/keyboard.json index 4ead7db0427..607b687e05b 100644 --- a/keyboards/cannonkeys/ortho48v2/keyboard.json +++ b/keyboards/cannonkeys/ortho48v2/keyboard.json @@ -18,7 +18,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cannonkeys/ortho60v2/keyboard.json b/keyboards/cannonkeys/ortho60v2/keyboard.json index 360c98bff93..be60c49d371 100644 --- a/keyboards/cannonkeys/ortho60v2/keyboard.json +++ b/keyboards/cannonkeys/ortho60v2/keyboard.json @@ -18,7 +18,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cannonkeys/petrichor/keyboard.json b/keyboards/cannonkeys/petrichor/keyboard.json index ecec61e7cf2..16e03eacb64 100644 --- a/keyboards/cannonkeys/petrichor/keyboard.json +++ b/keyboards/cannonkeys/petrichor/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cannonkeys/reverie/info.json b/keyboards/cannonkeys/reverie/info.json index 1e2a885781b..793365bb607 100644 --- a/keyboards/cannonkeys/reverie/info.json +++ b/keyboards/cannonkeys/reverie/info.json @@ -6,7 +6,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/cannonkeys/ripple/keyboard.json b/keyboards/cannonkeys/ripple/keyboard.json index bce98e226c4..605b1808471 100644 --- a/keyboards/cannonkeys/ripple/keyboard.json +++ b/keyboards/cannonkeys/ripple/keyboard.json @@ -16,7 +16,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cannonkeys/ripple_hs/keyboard.json b/keyboards/cannonkeys/ripple_hs/keyboard.json index 7892acc6c69..55a47524a33 100644 --- a/keyboards/cannonkeys/ripple_hs/keyboard.json +++ b/keyboards/cannonkeys/ripple_hs/keyboard.json @@ -16,7 +16,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/cannonkeys/satisfaction75/info.json b/keyboards/cannonkeys/satisfaction75/info.json index 96aeca80ee3..a5d21c9384d 100644 --- a/keyboards/cannonkeys/satisfaction75/info.json +++ b/keyboards/cannonkeys/satisfaction75/info.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/cannonkeys/serenity/keyboard.json b/keyboards/cannonkeys/serenity/keyboard.json index 3259baaca94..ad972da1491 100644 --- a/keyboards/cannonkeys/serenity/keyboard.json +++ b/keyboards/cannonkeys/serenity/keyboard.json @@ -14,7 +14,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cannonkeys/typeb/keyboard.json b/keyboards/cannonkeys/typeb/keyboard.json index 1f16991205b..ef89d38cafd 100644 --- a/keyboards/cannonkeys/typeb/keyboard.json +++ b/keyboards/cannonkeys/typeb/keyboard.json @@ -18,7 +18,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/cannonkeys/vector/keyboard.json b/keyboards/cannonkeys/vector/keyboard.json index 1c3e6e0ac2e..b0481ea4741 100644 --- a/keyboards/cannonkeys/vector/keyboard.json +++ b/keyboards/cannonkeys/vector/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/cannonkeys/vida/info.json b/keyboards/cannonkeys/vida/info.json index 8a5ddfe8bd1..d3a4f01aa41 100644 --- a/keyboards/cannonkeys/vida/info.json +++ b/keyboards/cannonkeys/vida/info.json @@ -6,7 +6,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/cantor/keyboard.json b/keyboards/cantor/keyboard.json index 26b79c0280f..5df6f972ee5 100644 --- a/keyboards/cantor/keyboard.json +++ b/keyboards/cantor/keyboard.json @@ -5,7 +5,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/capsunlocked/cu24/keyboard.json b/keyboards/capsunlocked/cu24/keyboard.json index db367ceba38..0d393d1d8d0 100644 --- a/keyboards/capsunlocked/cu24/keyboard.json +++ b/keyboards/capsunlocked/cu24/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/capsunlocked/cu65/keyboard.json b/keyboards/capsunlocked/cu65/keyboard.json index aa45e9e4985..dbb4f35fb2e 100644 --- a/keyboards/capsunlocked/cu65/keyboard.json +++ b/keyboards/capsunlocked/cu65/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/capsunlocked/cu7/keyboard.json b/keyboards/capsunlocked/cu7/keyboard.json index 46f8b34213f..1eb8a56944d 100644 --- a/keyboards/capsunlocked/cu7/keyboard.json +++ b/keyboards/capsunlocked/cu7/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/capsunlocked/cu80/v1/keyboard.json b/keyboards/capsunlocked/cu80/v1/keyboard.json index e3283d99cb7..0cc05a554b6 100644 --- a/keyboards/capsunlocked/cu80/v1/keyboard.json +++ b/keyboards/capsunlocked/cu80/v1/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/carbo65/keyboard.json b/keyboards/carbo65/keyboard.json index f2a4ce0dac9..61a11d3c494 100644 --- a/keyboards/carbo65/keyboard.json +++ b/keyboards/carbo65/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/cest73/tkm/keyboard.json b/keyboards/cest73/tkm/keyboard.json index e9aad4461b8..05d857c329a 100644 --- a/keyboards/cest73/tkm/keyboard.json +++ b/keyboards/cest73/tkm/keyboard.json @@ -13,7 +13,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/chalice/keyboard.json b/keyboards/chalice/keyboard.json index b8b44369661..455ee6ba435 100644 --- a/keyboards/chalice/keyboard.json +++ b/keyboards/chalice/keyboard.json @@ -30,7 +30,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/chaos65/keyboard.json b/keyboards/chaos65/keyboard.json index ed3f33e0c30..5cd34b1bb03 100644 --- a/keyboards/chaos65/keyboard.json +++ b/keyboards/chaos65/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/charue/sunsetter_r2/keyboard.json b/keyboards/charue/sunsetter_r2/keyboard.json index b7b7cc8d92b..6763a55865a 100644 --- a/keyboards/charue/sunsetter_r2/keyboard.json +++ b/keyboards/charue/sunsetter_r2/keyboard.json @@ -29,7 +29,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/chavdai40/rev1/keyboard.json b/keyboards/chavdai40/rev1/keyboard.json index 22c4ccfb7bc..1e4590b6486 100644 --- a/keyboards/chavdai40/rev1/keyboard.json +++ b/keyboards/chavdai40/rev1/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/chavdai40/rev2/keyboard.json b/keyboards/chavdai40/rev2/keyboard.json index b43c68604fb..2930c599a23 100644 --- a/keyboards/chavdai40/rev2/keyboard.json +++ b/keyboards/chavdai40/rev2/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/checkerboards/axon40/keyboard.json b/keyboards/checkerboards/axon40/keyboard.json index 432602659e1..b83093709c6 100644 --- a/keyboards/checkerboards/axon40/keyboard.json +++ b/keyboards/checkerboards/axon40/keyboard.json @@ -30,7 +30,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/checkerboards/candybar_ortho/keyboard.json b/keyboards/checkerboards/candybar_ortho/keyboard.json index 1b9e2646535..e9735a0bca1 100644 --- a/keyboards/checkerboards/candybar_ortho/keyboard.json +++ b/keyboards/checkerboards/candybar_ortho/keyboard.json @@ -30,7 +30,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/checkerboards/g_idb60/keyboard.json b/keyboards/checkerboards/g_idb60/keyboard.json index cf1530b50be..8d61bfc6916 100644 --- a/keyboards/checkerboards/g_idb60/keyboard.json +++ b/keyboards/checkerboards/g_idb60/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/checkerboards/nop60/keyboard.json b/keyboards/checkerboards/nop60/keyboard.json index fb0e7b23dfa..d4648387f5b 100644 --- a/keyboards/checkerboards/nop60/keyboard.json +++ b/keyboards/checkerboards/nop60/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/checkerboards/plexus75/keyboard.json b/keyboards/checkerboards/plexus75/keyboard.json index e457f7f3e6a..4bab1ce9866 100644 --- a/keyboards/checkerboards/plexus75/keyboard.json +++ b/keyboards/checkerboards/plexus75/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/checkerboards/plexus75_he/keyboard.json b/keyboards/checkerboards/plexus75_he/keyboard.json index 2da1bf34f39..aa9a62c85ba 100644 --- a/keyboards/checkerboards/plexus75_he/keyboard.json +++ b/keyboards/checkerboards/plexus75_he/keyboard.json @@ -32,7 +32,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/checkerboards/pursuit40/keyboard.json b/keyboards/checkerboards/pursuit40/keyboard.json index 996a55850d8..61fabc55fe5 100644 --- a/keyboards/checkerboards/pursuit40/keyboard.json +++ b/keyboards/checkerboards/pursuit40/keyboard.json @@ -32,7 +32,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/checkerboards/quark_lp/keyboard.json b/keyboards/checkerboards/quark_lp/keyboard.json index 59fda2efc8a..8e53b1e846c 100644 --- a/keyboards/checkerboards/quark_lp/keyboard.json +++ b/keyboards/checkerboards/quark_lp/keyboard.json @@ -41,7 +41,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/checkerboards/quark_plus/keyboard.json b/keyboards/checkerboards/quark_plus/keyboard.json index 311d21c219c..12b92e2518f 100644 --- a/keyboards/checkerboards/quark_plus/keyboard.json +++ b/keyboards/checkerboards/quark_plus/keyboard.json @@ -33,7 +33,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/checkerboards/ud40_ortho_alt/keyboard.json b/keyboards/checkerboards/ud40_ortho_alt/keyboard.json index aaf5fb3e61e..acd55fe0f7a 100644 --- a/keyboards/checkerboards/ud40_ortho_alt/keyboard.json +++ b/keyboards/checkerboards/ud40_ortho_alt/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cherrybstudio/cb1800/keyboard.json b/keyboards/cherrybstudio/cb1800/keyboard.json index fedcc1c75e9..e083ebb447d 100644 --- a/keyboards/cherrybstudio/cb1800/keyboard.json +++ b/keyboards/cherrybstudio/cb1800/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cherrybstudio/cb65/keyboard.json b/keyboards/cherrybstudio/cb65/keyboard.json index 8f14ec09418..18d550debf4 100644 --- a/keyboards/cherrybstudio/cb65/keyboard.json +++ b/keyboards/cherrybstudio/cb65/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cherrybstudio/cb87/keyboard.json b/keyboards/cherrybstudio/cb87/keyboard.json index 417c40e53d5..ecac5771c09 100644 --- a/keyboards/cherrybstudio/cb87/keyboard.json +++ b/keyboards/cherrybstudio/cb87/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cherrybstudio/cb87rgb/keyboard.json b/keyboards/cherrybstudio/cb87rgb/keyboard.json index d2cc0c72de3..9388e8e4dad 100644 --- a/keyboards/cherrybstudio/cb87rgb/keyboard.json +++ b/keyboards/cherrybstudio/cb87rgb/keyboard.json @@ -59,7 +59,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cherrybstudio/cb87v2/keyboard.json b/keyboards/cherrybstudio/cb87v2/keyboard.json index c40bb1778f9..0de77d8f766 100644 --- a/keyboards/cherrybstudio/cb87v2/keyboard.json +++ b/keyboards/cherrybstudio/cb87v2/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cheshire/curiosity/keyboard.json b/keyboards/cheshire/curiosity/keyboard.json index b408a5b6e95..33daaa57816 100644 --- a/keyboards/cheshire/curiosity/keyboard.json +++ b/keyboards/cheshire/curiosity/keyboard.json @@ -34,7 +34,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/chew/keyboard.json b/keyboards/chew/keyboard.json index 01175e6341d..767ffb7d841 100644 --- a/keyboards/chew/keyboard.json +++ b/keyboards/chew/keyboard.json @@ -6,7 +6,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/chickenman/ciel/keyboard.json b/keyboards/chickenman/ciel/keyboard.json index 45c4c76048b..239acefe2ad 100644 --- a/keyboards/chickenman/ciel/keyboard.json +++ b/keyboards/chickenman/ciel/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/chickenman/ciel65/keyboard.json b/keyboards/chickenman/ciel65/keyboard.json index 7943e443118..db147c8e00d 100644 --- a/keyboards/chickenman/ciel65/keyboard.json +++ b/keyboards/chickenman/ciel65/keyboard.json @@ -18,7 +18,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "rgblight": true diff --git a/keyboards/chill/ghoul/keyboard.json b/keyboards/chill/ghoul/keyboard.json index ff7435959c0..c32380715f2 100644 --- a/keyboards/chill/ghoul/keyboard.json +++ b/keyboards/chill/ghoul/keyboard.json @@ -13,7 +13,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/chlx/lfn_merro60/keyboard.json b/keyboards/chlx/lfn_merro60/keyboard.json index 54a235c7f83..f4cbc35fb4e 100644 --- a/keyboards/chlx/lfn_merro60/keyboard.json +++ b/keyboards/chlx/lfn_merro60/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/chlx/merro60/keyboard.json b/keyboards/chlx/merro60/keyboard.json index 31f83f80a59..671197041f6 100644 --- a/keyboards/chlx/merro60/keyboard.json +++ b/keyboards/chlx/merro60/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/chlx/piche60/keyboard.json b/keyboards/chlx/piche60/keyboard.json index 7eafe4f84fa..194e8c03530 100644 --- a/keyboards/chlx/piche60/keyboard.json +++ b/keyboards/chlx/piche60/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/chlx/ppr_merro60/keyboard.json b/keyboards/chlx/ppr_merro60/keyboard.json index 9f056fef529..ea819dcc93a 100644 --- a/keyboards/chlx/ppr_merro60/keyboard.json +++ b/keyboards/chlx/ppr_merro60/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/chocofly/v1/keyboard.json b/keyboards/chocofly/v1/keyboard.json index 195d1e9a9fe..1670cc14751 100644 --- a/keyboards/chocofly/v1/keyboard.json +++ b/keyboards/chocofly/v1/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "encoder": true, "extrakey": false, "mousekey": false, diff --git a/keyboards/chocv/keyboard.json b/keyboards/chocv/keyboard.json index 670e46f8177..fe828da5924 100644 --- a/keyboards/chocv/keyboard.json +++ b/keyboards/chocv/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/chord/zero/keyboard.json b/keyboards/chord/zero/keyboard.json index 63e74546d50..20db51cf8c8 100644 --- a/keyboards/chord/zero/keyboard.json +++ b/keyboards/chord/zero/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/chosfox/cf81/keyboard.json b/keyboards/chosfox/cf81/keyboard.json index aae2421a034..4776d1f0a44 100644 --- a/keyboards/chosfox/cf81/keyboard.json +++ b/keyboards/chosfox/cf81/keyboard.json @@ -22,7 +22,6 @@ "bootmagic": true, "mousekey": false, "extrakey": true, - "console": false, "command": false, "nkro": true, "encoder": true, diff --git a/keyboards/chouchou/keyboard.json b/keyboards/chouchou/keyboard.json index 726f190aab1..3494f2e3b02 100644 --- a/keyboards/chouchou/keyboard.json +++ b/keyboards/chouchou/keyboard.json @@ -6,7 +6,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/chromatonemini/keyboard.json b/keyboards/chromatonemini/keyboard.json index 963496a0c03..454938ca0c7 100644 --- a/keyboards/chromatonemini/keyboard.json +++ b/keyboards/chromatonemini/keyboard.json @@ -12,7 +12,6 @@ "extrakey": true, "encoder": true, "bootmagic": false, - "console": false, "mousekey": false, "nkro": false }, diff --git a/keyboards/churrosoft/deck8/info.json b/keyboards/churrosoft/deck8/info.json index 00fc2d1bad7..d656997b78c 100644 --- a/keyboards/churrosoft/deck8/info.json +++ b/keyboards/churrosoft/deck8/info.json @@ -12,7 +12,6 @@ }, "features": { "bootmagic": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/cipulot/kallos/keyboard.json b/keyboards/cipulot/kallos/keyboard.json index 8a2e45e012e..beb9849f83b 100644 --- a/keyboards/cipulot/kallos/keyboard.json +++ b/keyboards/cipulot/kallos/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/ck60i/keyboard.json b/keyboards/ck60i/keyboard.json index 70535c5a761..d628275c486 100644 --- a/keyboards/ck60i/keyboard.json +++ b/keyboards/ck60i/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/ckeys/handwire_101/keyboard.json b/keyboards/ckeys/handwire_101/keyboard.json index 642d0d8a255..42391dc48da 100644 --- a/keyboards/ckeys/handwire_101/keyboard.json +++ b/keyboards/ckeys/handwire_101/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ckeys/obelus/keyboard.json b/keyboards/ckeys/obelus/keyboard.json index 39e3cbb115b..da2af2d7f2f 100644 --- a/keyboards/ckeys/obelus/keyboard.json +++ b/keyboards/ckeys/obelus/keyboard.json @@ -11,7 +11,6 @@ "audio": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "midi": true, "mousekey": false, diff --git a/keyboards/ckeys/thedora/keyboard.json b/keyboards/ckeys/thedora/keyboard.json index d287e81a0bc..c3b44a37c3d 100644 --- a/keyboards/ckeys/thedora/keyboard.json +++ b/keyboards/ckeys/thedora/keyboard.json @@ -12,7 +12,6 @@ "audio": true, "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "midi": true, diff --git a/keyboards/ckeys/washington/keyboard.json b/keyboards/ckeys/washington/keyboard.json index b410e16f930..e0dda049b8a 100644 --- a/keyboards/ckeys/washington/keyboard.json +++ b/keyboards/ckeys/washington/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/clap_studio/flame60/keyboard.json b/keyboards/clap_studio/flame60/keyboard.json index 7f6b9014ae6..0f768d4fae9 100644 --- a/keyboards/clap_studio/flame60/keyboard.json +++ b/keyboards/clap_studio/flame60/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/clawsome/fightpad/keyboard.json b/keyboards/clawsome/fightpad/keyboard.json index 73333490280..fa3ac4a655f 100644 --- a/keyboards/clawsome/fightpad/keyboard.json +++ b/keyboards/clawsome/fightpad/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/clueboard/66/rev3/keyboard.json b/keyboards/clueboard/66/rev3/keyboard.json index 7713c734819..dac09573f26 100644 --- a/keyboards/clueboard/66/rev3/keyboard.json +++ b/keyboards/clueboard/66/rev3/keyboard.json @@ -9,7 +9,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cmm_studio/saka68/solder/keyboard.json b/keyboards/cmm_studio/saka68/solder/keyboard.json index 1ce357aabf5..c5b2e0b6770 100644 --- a/keyboards/cmm_studio/saka68/solder/keyboard.json +++ b/keyboards/cmm_studio/saka68/solder/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/coban/pad3a/keyboard.json b/keyboards/coban/pad3a/keyboard.json index a9a78b82201..fe8bd125710 100644 --- a/keyboards/coban/pad3a/keyboard.json +++ b/keyboards/coban/pad3a/keyboard.json @@ -17,7 +17,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/compound/keyboard.json b/keyboards/compound/keyboard.json index a0a1e1e9494..cbb5eb711f0 100644 --- a/keyboards/compound/keyboard.json +++ b/keyboards/compound/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/concreteflowers/cor/keyboard.json b/keyboards/concreteflowers/cor/keyboard.json index a4553229a71..c105338b5e8 100644 --- a/keyboards/concreteflowers/cor/keyboard.json +++ b/keyboards/concreteflowers/cor/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/concreteflowers/cor_tkl/keyboard.json b/keyboards/concreteflowers/cor_tkl/keyboard.json index 3d98077e13d..d162bb386c0 100644 --- a/keyboards/concreteflowers/cor_tkl/keyboard.json +++ b/keyboards/concreteflowers/cor_tkl/keyboard.json @@ -16,7 +16,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": false, "rgb_matrix": true diff --git a/keyboards/contender/keyboard.json b/keyboards/contender/keyboard.json index 2e5ef844124..cc4139d167d 100644 --- a/keyboards/contender/keyboard.json +++ b/keyboards/contender/keyboard.json @@ -32,7 +32,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/controllerworks/city42/keyboard.json b/keyboards/controllerworks/city42/keyboard.json index 6657a7485b1..bb3b060c426 100644 --- a/keyboards/controllerworks/city42/keyboard.json +++ b/keyboards/controllerworks/city42/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/controllerworks/mini36/keyboard.json b/keyboards/controllerworks/mini36/keyboard.json index 8039025a282..ad880660c05 100644 --- a/keyboards/controllerworks/mini36/keyboard.json +++ b/keyboards/controllerworks/mini36/keyboard.json @@ -55,7 +55,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/controllerworks/mini42/keyboard.json b/keyboards/controllerworks/mini42/keyboard.json index ceb7f8ce1f1..cbd90c890f0 100644 --- a/keyboards/controllerworks/mini42/keyboard.json +++ b/keyboards/controllerworks/mini42/keyboard.json @@ -55,7 +55,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/converter/a1200/miss1200/keyboard.json b/keyboards/converter/a1200/miss1200/keyboard.json index 1f7bfcda3f9..1ce08f9b3ec 100644 --- a/keyboards/converter/a1200/miss1200/keyboard.json +++ b/keyboards/converter/a1200/miss1200/keyboard.json @@ -9,7 +9,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/converter/a1200/mistress1200/keyboard.json b/keyboards/converter/a1200/mistress1200/keyboard.json index c2cf110b2ae..15cc0e24f33 100644 --- a/keyboards/converter/a1200/mistress1200/keyboard.json +++ b/keyboards/converter/a1200/mistress1200/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": false, "grave_esc": false, "magic": false, diff --git a/keyboards/converter/a1200/teensy2pp/keyboard.json b/keyboards/converter/a1200/teensy2pp/keyboard.json index 07661239139..6c04e55d774 100644 --- a/keyboards/converter/a1200/teensy2pp/keyboard.json +++ b/keyboards/converter/a1200/teensy2pp/keyboard.json @@ -9,7 +9,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/cool836a/keyboard.json b/keyboards/cool836a/keyboard.json index 3d32f45c9d5..660ab726126 100644 --- a/keyboards/cool836a/keyboard.json +++ b/keyboards/cool836a/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/copenhagen_click/click_pad_v1/keyboard.json b/keyboards/copenhagen_click/click_pad_v1/keyboard.json index d84630cfbc9..0b133d89637 100755 --- a/keyboards/copenhagen_click/click_pad_v1/keyboard.json +++ b/keyboards/copenhagen_click/click_pad_v1/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/coseyfannitutti/discipad/keyboard.json b/keyboards/coseyfannitutti/discipad/keyboard.json index 5c491876e4e..177129b6f9a 100644 --- a/keyboards/coseyfannitutti/discipad/keyboard.json +++ b/keyboards/coseyfannitutti/discipad/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/coseyfannitutti/romeo/keyboard.json b/keyboards/coseyfannitutti/romeo/keyboard.json index 260589889a4..d4edb561504 100644 --- a/keyboards/coseyfannitutti/romeo/keyboard.json +++ b/keyboards/coseyfannitutti/romeo/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/cosmo65/keyboard.json b/keyboards/cosmo65/keyboard.json index 1814b3f0d0c..690170b1d14 100644 --- a/keyboards/cosmo65/keyboard.json +++ b/keyboards/cosmo65/keyboard.json @@ -28,7 +28,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cozykeys/bloomer/v2/keyboard.json b/keyboards/cozykeys/bloomer/v2/keyboard.json index 9f09db86fa0..e6611921e70 100644 --- a/keyboards/cozykeys/bloomer/v2/keyboard.json +++ b/keyboards/cozykeys/bloomer/v2/keyboard.json @@ -5,7 +5,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/cozykeys/bloomer/v3/keyboard.json b/keyboards/cozykeys/bloomer/v3/keyboard.json index a0f04956af4..1b58004d2ed 100644 --- a/keyboards/cozykeys/bloomer/v3/keyboard.json +++ b/keyboards/cozykeys/bloomer/v3/keyboard.json @@ -5,7 +5,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/cozykeys/speedo/v2/keyboard.json b/keyboards/cozykeys/speedo/v2/keyboard.json index 69dd33d6b6e..de5215bccef 100644 --- a/keyboards/cozykeys/speedo/v2/keyboard.json +++ b/keyboards/cozykeys/speedo/v2/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/cradio/keyboard.json b/keyboards/cradio/keyboard.json index 433c6e96e9a..1600a1fd24b 100644 --- a/keyboards/cradio/keyboard.json +++ b/keyboards/cradio/keyboard.json @@ -14,7 +14,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/crawlpad/keyboard.json b/keyboards/crawlpad/keyboard.json index a10d1ca9c3d..0fbda2e6e78 100644 --- a/keyboards/crawlpad/keyboard.json +++ b/keyboards/crawlpad/keyboard.json @@ -28,7 +28,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/crazy_keyboard_68/keyboard.json b/keyboards/crazy_keyboard_68/keyboard.json index f87a3675af1..62d08a4849c 100644 --- a/keyboards/crazy_keyboard_68/keyboard.json +++ b/keyboards/crazy_keyboard_68/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/crbn/keyboard.json b/keyboards/crbn/keyboard.json index 9febd33ed6c..8ea9c9de2fa 100644 --- a/keyboards/crbn/keyboard.json +++ b/keyboards/crbn/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/creatkeebs/glacier/keyboard.json b/keyboards/creatkeebs/glacier/keyboard.json index e1e94ab8eb7..ccda609975c 100644 --- a/keyboards/creatkeebs/glacier/keyboard.json +++ b/keyboards/creatkeebs/glacier/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/creatkeebs/thera/keyboard.json b/keyboards/creatkeebs/thera/keyboard.json index ab10fda3249..956987da87e 100644 --- a/keyboards/creatkeebs/thera/keyboard.json +++ b/keyboards/creatkeebs/thera/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/custommk/ergostrafer/keyboard.json b/keyboards/custommk/ergostrafer/keyboard.json index 4f23417415d..7c4f90d00ac 100644 --- a/keyboards/custommk/ergostrafer/keyboard.json +++ b/keyboards/custommk/ergostrafer/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/custommk/evo70/keyboard.json b/keyboards/custommk/evo70/keyboard.json index 95464e691a6..4dd8f8c01bd 100644 --- a/keyboards/custommk/evo70/keyboard.json +++ b/keyboards/custommk/evo70/keyboard.json @@ -8,7 +8,6 @@ "bootmagic": true, "mousekey": false, "extrakey": true, - "console": false, "command": false, "nkro": true, "backlight": true, diff --git a/keyboards/custommk/evo70_r2/keyboard.json b/keyboards/custommk/evo70_r2/keyboard.json index 5f10d6705d9..7fb79f3a7e6 100644 --- a/keyboards/custommk/evo70_r2/keyboard.json +++ b/keyboards/custommk/evo70_r2/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cutie_club/borsdorf/keyboard.json b/keyboards/cutie_club/borsdorf/keyboard.json index ddf8dfeda4a..b428915801e 100644 --- a/keyboards/cutie_club/borsdorf/keyboard.json +++ b/keyboards/cutie_club/borsdorf/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/cutie_club/fidelity/keyboard.json b/keyboards/cutie_club/fidelity/keyboard.json index e1ca2a430e5..565cf907293 100644 --- a/keyboards/cutie_club/fidelity/keyboard.json +++ b/keyboards/cutie_club/fidelity/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true }, diff --git a/keyboards/cutie_club/giant_macro_pad/keyboard.json b/keyboards/cutie_club/giant_macro_pad/keyboard.json index 2eb2542603c..ab447987ec5 100644 --- a/keyboards/cutie_club/giant_macro_pad/keyboard.json +++ b/keyboards/cutie_club/giant_macro_pad/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/cutie_club/keebcats/denis/keyboard.json b/keyboards/cutie_club/keebcats/denis/keyboard.json index 052e22c1b1b..9744aefb3ea 100644 --- a/keyboards/cutie_club/keebcats/denis/keyboard.json +++ b/keyboards/cutie_club/keebcats/denis/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/cutie_club/keebcats/dougal/keyboard.json b/keyboards/cutie_club/keebcats/dougal/keyboard.json index c6079775642..a357f4a8ac1 100644 --- a/keyboards/cutie_club/keebcats/dougal/keyboard.json +++ b/keyboards/cutie_club/keebcats/dougal/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/cutie_club/novus/keyboard.json b/keyboards/cutie_club/novus/keyboard.json index a5f47f8d516..b1de3503a66 100644 --- a/keyboards/cutie_club/novus/keyboard.json +++ b/keyboards/cutie_club/novus/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/cutie_club/wraith/keyboard.json b/keyboards/cutie_club/wraith/keyboard.json index 6da586acfea..b163eb76a9e 100644 --- a/keyboards/cutie_club/wraith/keyboard.json +++ b/keyboards/cutie_club/wraith/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/cx60/keyboard.json b/keyboards/cx60/keyboard.json index 24bbee5a28d..c988151e04b 100644 --- a/keyboards/cx60/keyboard.json +++ b/keyboards/cx60/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/cybergear/macro25/keyboard.json b/keyboards/cybergear/macro25/keyboard.json index a1fca494061..0f5971fc08a 100644 --- a/keyboards/cybergear/macro25/keyboard.json +++ b/keyboards/cybergear/macro25/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/dailycraft/bat43/info.json b/keyboards/dailycraft/bat43/info.json index 6b4026f6d47..a84438d6f23 100644 --- a/keyboards/dailycraft/bat43/info.json +++ b/keyboards/dailycraft/bat43/info.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": false, "mousekey": true, "nkro": false diff --git a/keyboards/dailycraft/owl8/keyboard.json b/keyboards/dailycraft/owl8/keyboard.json index 482a3d905f5..bc4e19edf5d 100644 --- a/keyboards/dailycraft/owl8/keyboard.json +++ b/keyboards/dailycraft/owl8/keyboard.json @@ -18,7 +18,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/dailycraft/stickey4/keyboard.json b/keyboards/dailycraft/stickey4/keyboard.json index d6ec02f784d..0075f53aa6d 100644 --- a/keyboards/dailycraft/stickey4/keyboard.json +++ b/keyboards/dailycraft/stickey4/keyboard.json @@ -18,7 +18,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/daji/seis_cinco/keyboard.json b/keyboards/daji/seis_cinco/keyboard.json index 3957dd4d0c7..fd95b96224f 100644 --- a/keyboards/daji/seis_cinco/keyboard.json +++ b/keyboards/daji/seis_cinco/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/dark/magnum_ergo_1/keyboard.json b/keyboards/dark/magnum_ergo_1/keyboard.json index 6d3b3a55927..4e0548f061a 100644 --- a/keyboards/dark/magnum_ergo_1/keyboard.json +++ b/keyboards/dark/magnum_ergo_1/keyboard.json @@ -19,7 +19,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/darkproject/kd83a_bfg_edition/keyboard.json b/keyboards/darkproject/kd83a_bfg_edition/keyboard.json index 9f2ad70f123..270a5c57e57 100644 --- a/keyboards/darkproject/kd83a_bfg_edition/keyboard.json +++ b/keyboards/darkproject/kd83a_bfg_edition/keyboard.json @@ -15,7 +15,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/darmoshark/k3/keyboard.json b/keyboards/darmoshark/k3/keyboard.json index e62d1908ed9..d3fb3794276 100644 --- a/keyboards/darmoshark/k3/keyboard.json +++ b/keyboards/darmoshark/k3/keyboard.json @@ -14,7 +14,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/db/db63/keyboard.json b/keyboards/db/db63/keyboard.json index ec41b8c313a..b3db08c01c4 100644 --- a/keyboards/db/db63/keyboard.json +++ b/keyboards/db/db63/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/decent/tkl/keyboard.json b/keyboards/decent/tkl/keyboard.json index 96b472c6fc0..ff51650197e 100644 --- a/keyboards/decent/tkl/keyboard.json +++ b/keyboards/decent/tkl/keyboard.json @@ -12,7 +12,6 @@ "rgb_matrix": true, "oled": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/delikeeb/flatbread60/keyboard.json b/keyboards/delikeeb/flatbread60/keyboard.json index 2de307ab2ab..2e55e673a43 100644 --- a/keyboards/delikeeb/flatbread60/keyboard.json +++ b/keyboards/delikeeb/flatbread60/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/delikeeb/vaguettelite/keyboard.json b/keyboards/delikeeb/vaguettelite/keyboard.json index e438fd9bfb6..e78cc9592fd 100644 --- a/keyboards/delikeeb/vaguettelite/keyboard.json +++ b/keyboards/delikeeb/vaguettelite/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/delikeeb/vanana/rev1/keyboard.json b/keyboards/delikeeb/vanana/rev1/keyboard.json index d8d5d2e4c96..d2e25731933 100644 --- a/keyboards/delikeeb/vanana/rev1/keyboard.json +++ b/keyboards/delikeeb/vanana/rev1/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/delikeeb/vanana/rev2/keyboard.json b/keyboards/delikeeb/vanana/rev2/keyboard.json index 9da7a9dd885..bffa44ab8e2 100644 --- a/keyboards/delikeeb/vanana/rev2/keyboard.json +++ b/keyboards/delikeeb/vanana/rev2/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/delikeeb/vaneela/keyboard.json b/keyboards/delikeeb/vaneela/keyboard.json index 5f76c8b7ab1..be59169e3c4 100644 --- a/keyboards/delikeeb/vaneela/keyboard.json +++ b/keyboards/delikeeb/vaneela/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/delikeeb/vaneelaex/keyboard.json b/keyboards/delikeeb/vaneelaex/keyboard.json index 9810d341abe..716ec96b739 100644 --- a/keyboards/delikeeb/vaneelaex/keyboard.json +++ b/keyboards/delikeeb/vaneelaex/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/delikeeb/waaffle/rev3/elite_c/keyboard.json b/keyboards/delikeeb/waaffle/rev3/elite_c/keyboard.json index 22fb33aade1..fc723363e8b 100644 --- a/keyboards/delikeeb/waaffle/rev3/elite_c/keyboard.json +++ b/keyboards/delikeeb/waaffle/rev3/elite_c/keyboard.json @@ -4,7 +4,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/delikeeb/waaffle/rev3/pro_micro/keyboard.json b/keyboards/delikeeb/waaffle/rev3/pro_micro/keyboard.json index 55e68c43935..d92c0fd0ec1 100644 --- a/keyboards/delikeeb/waaffle/rev3/pro_micro/keyboard.json +++ b/keyboards/delikeeb/waaffle/rev3/pro_micro/keyboard.json @@ -4,7 +4,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/deltapad/keyboard.json b/keyboards/deltapad/keyboard.json index 262f6bc41b1..64c17bf562d 100644 --- a/keyboards/deltapad/keyboard.json +++ b/keyboards/deltapad/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/demiurge/keyboard.json b/keyboards/demiurge/keyboard.json index 80b1b477e11..bf42c58cb6c 100644 --- a/keyboards/demiurge/keyboard.json +++ b/keyboards/demiurge/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/deng/djam/keyboard.json b/keyboards/deng/djam/keyboard.json index 0589af49383..6e40eef1555 100644 --- a/keyboards/deng/djam/keyboard.json +++ b/keyboards/deng/djam/keyboard.json @@ -21,7 +21,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/dinofizz/fnrow/v1/keyboard.json b/keyboards/dinofizz/fnrow/v1/keyboard.json index 16f80b780d0..be4284e4b5e 100644 --- a/keyboards/dinofizz/fnrow/v1/keyboard.json +++ b/keyboards/dinofizz/fnrow/v1/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/dk60/keyboard.json b/keyboards/dk60/keyboard.json index 990cd7cfcc5..63b81384f72 100644 --- a/keyboards/dk60/keyboard.json +++ b/keyboards/dk60/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/dm9records/lain/keyboard.json b/keyboards/dm9records/lain/keyboard.json index 32cece9f152..79a4bbfb4b5 100644 --- a/keyboards/dm9records/lain/keyboard.json +++ b/keyboards/dm9records/lain/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/dmqdesign/spin/keyboard.json b/keyboards/dmqdesign/spin/keyboard.json index b271f1ebd5d..1e3c51f3957 100644 --- a/keyboards/dmqdesign/spin/keyboard.json +++ b/keyboards/dmqdesign/spin/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "encoder": true, "extrakey": true, "midi": true, diff --git a/keyboards/dnworks/frltkl/keyboard.json b/keyboards/dnworks/frltkl/keyboard.json index 86796a6084c..88a9db338ba 100644 --- a/keyboards/dnworks/frltkl/keyboard.json +++ b/keyboards/dnworks/frltkl/keyboard.json @@ -13,7 +13,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true }, diff --git a/keyboards/dnworks/sbl/keyboard.json b/keyboards/dnworks/sbl/keyboard.json index 2086fc5aa12..44cb250533f 100644 --- a/keyboards/dnworks/sbl/keyboard.json +++ b/keyboards/dnworks/sbl/keyboard.json @@ -13,7 +13,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true }, diff --git a/keyboards/do60/keyboard.json b/keyboards/do60/keyboard.json index 88cf1873e56..2a16cf0adf5 100644 --- a/keyboards/do60/keyboard.json +++ b/keyboards/do60/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/doio/kb04/keyboard.json b/keyboards/doio/kb04/keyboard.json index 2455f82e03c..8936c7ff36d 100644 --- a/keyboards/doio/kb04/keyboard.json +++ b/keyboards/doio/kb04/keyboard.json @@ -15,7 +15,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/doio/kb09/keyboard.json b/keyboards/doio/kb09/keyboard.json index f80f19cfda0..9cf880f39d2 100644 --- a/keyboards/doio/kb09/keyboard.json +++ b/keyboards/doio/kb09/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/doio/kb12/keyboard.json b/keyboards/doio/kb12/keyboard.json index fa450de512c..708e4a97d78 100644 --- a/keyboards/doio/kb12/keyboard.json +++ b/keyboards/doio/kb12/keyboard.json @@ -94,7 +94,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/doio/kb19/keyboard.json b/keyboards/doio/kb19/keyboard.json index 6b97350b314..4fe6758a620 100644 --- a/keyboards/doio/kb19/keyboard.json +++ b/keyboards/doio/kb19/keyboard.json @@ -12,7 +12,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "encoder": true, "nkro": false, diff --git a/keyboards/doio/kb30/keyboard.json b/keyboards/doio/kb30/keyboard.json index 68b79d03938..6b815eb929c 100644 --- a/keyboards/doio/kb30/keyboard.json +++ b/keyboards/doio/kb30/keyboard.json @@ -93,7 +93,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/doio/kb38/keyboard.json b/keyboards/doio/kb38/keyboard.json index a46f1a6a450..55c5b7df89a 100644 --- a/keyboards/doio/kb38/keyboard.json +++ b/keyboards/doio/kb38/keyboard.json @@ -8,7 +8,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/donutcables/budget96/keyboard.json b/keyboards/donutcables/budget96/keyboard.json index 972149440d7..6b9b99abd91 100644 --- a/keyboards/donutcables/budget96/keyboard.json +++ b/keyboards/donutcables/budget96/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/donutcables/scrabblepad/keyboard.json b/keyboards/donutcables/scrabblepad/keyboard.json index 9ee05346a01..a6d668c2ad1 100644 --- a/keyboards/donutcables/scrabblepad/keyboard.json +++ b/keyboards/donutcables/scrabblepad/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/doro67/rgb/keyboard.json b/keyboards/doro67/rgb/keyboard.json index 520ffbc8708..d0fb842bf59 100644 --- a/keyboards/doro67/rgb/keyboard.json +++ b/keyboards/doro67/rgb/keyboard.json @@ -56,7 +56,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/dotmod/dymium65/keyboard.json b/keyboards/dotmod/dymium65/keyboard.json index c5cd1b2cb7d..d4406f979af 100644 --- a/keyboards/dotmod/dymium65/keyboard.json +++ b/keyboards/dotmod/dymium65/keyboard.json @@ -19,7 +19,6 @@ "features": { "bootmagic": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "mousekey": true, diff --git a/keyboards/dp3000/rev1/keyboard.json b/keyboards/dp3000/rev1/keyboard.json index aa7ff8bc0a9..2723edb7783 100644 --- a/keyboards/dp3000/rev1/keyboard.json +++ b/keyboards/dp3000/rev1/keyboard.json @@ -3,7 +3,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "encoder": true, "oled": true, diff --git a/keyboards/dp3000/rev2/keyboard.json b/keyboards/dp3000/rev2/keyboard.json index 7d82c384601..241915a66f6 100644 --- a/keyboards/dp3000/rev2/keyboard.json +++ b/keyboards/dp3000/rev2/keyboard.json @@ -3,7 +3,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "encoder": true, "oled": true, diff --git a/keyboards/draytronics/daisy/keyboard.json b/keyboards/draytronics/daisy/keyboard.json index 92b0b54f43c..069570c930d 100644 --- a/keyboards/draytronics/daisy/keyboard.json +++ b/keyboards/draytronics/daisy/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/draytronics/elise/keyboard.json b/keyboards/draytronics/elise/keyboard.json index 782c61d7643..6a273d0d1d1 100644 --- a/keyboards/draytronics/elise/keyboard.json +++ b/keyboards/draytronics/elise/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/draytronics/elise_v2/keyboard.json b/keyboards/draytronics/elise_v2/keyboard.json index 217f837e197..1feabdbb7c3 100644 --- a/keyboards/draytronics/elise_v2/keyboard.json +++ b/keyboards/draytronics/elise_v2/keyboard.json @@ -32,7 +32,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/drewkeys/iskar/keyboard.json b/keyboards/drewkeys/iskar/keyboard.json index 66d4ebd74d6..8a3b081b6aa 100644 --- a/keyboards/drewkeys/iskar/keyboard.json +++ b/keyboards/drewkeys/iskar/keyboard.json @@ -14,7 +14,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/drhigsby/bkf/keyboard.json b/keyboards/drhigsby/bkf/keyboard.json index a3933c8228a..c087c293898 100644 --- a/keyboards/drhigsby/bkf/keyboard.json +++ b/keyboards/drhigsby/bkf/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/drhigsby/dubba175/keyboard.json b/keyboards/drhigsby/dubba175/keyboard.json index 69570a1c2fa..3d11c2772c5 100644 --- a/keyboards/drhigsby/dubba175/keyboard.json +++ b/keyboards/drhigsby/dubba175/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/drhigsby/ogurec/info.json b/keyboards/drhigsby/ogurec/info.json index f3c753f2c03..08158faeb32 100644 --- a/keyboards/drhigsby/ogurec/info.json +++ b/keyboards/drhigsby/ogurec/info.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/drhigsby/packrat/keyboard.json b/keyboards/drhigsby/packrat/keyboard.json index a836b0bf96d..feda74b7a9f 100644 --- a/keyboards/drhigsby/packrat/keyboard.json +++ b/keyboards/drhigsby/packrat/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/drop/alt/v2/keyboard.json b/keyboards/drop/alt/v2/keyboard.json index 8363aca5cf1..9ef109bb8aa 100644 --- a/keyboards/drop/alt/v2/keyboard.json +++ b/keyboards/drop/alt/v2/keyboard.json @@ -21,7 +21,6 @@ "rgb_matrix": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/drop/cstm65/keyboard.json b/keyboards/drop/cstm65/keyboard.json index 708649966e0..736f57399ea 100644 --- a/keyboards/drop/cstm65/keyboard.json +++ b/keyboards/drop/cstm65/keyboard.json @@ -21,7 +21,6 @@ "rgb_matrix": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/drop/cstm80/keyboard.json b/keyboards/drop/cstm80/keyboard.json index 5ce4e666b17..c599815bc0d 100644 --- a/keyboards/drop/cstm80/keyboard.json +++ b/keyboards/drop/cstm80/keyboard.json @@ -21,7 +21,6 @@ "rgb_matrix": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/drop/ctrl/v2/keyboard.json b/keyboards/drop/ctrl/v2/keyboard.json index f461800dde4..917ed3556fb 100644 --- a/keyboards/drop/ctrl/v2/keyboard.json +++ b/keyboards/drop/ctrl/v2/keyboard.json @@ -21,7 +21,6 @@ "rgb_matrix": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/drop/sense75/keyboard.json b/keyboards/drop/sense75/keyboard.json index 052b494375e..4e28b647ab8 100644 --- a/keyboards/drop/sense75/keyboard.json +++ b/keyboards/drop/sense75/keyboard.json @@ -22,7 +22,6 @@ "encoder": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/drop/shift/v2/keyboard.json b/keyboards/drop/shift/v2/keyboard.json index 212263d71c5..8c3f97970fb 100644 --- a/keyboards/drop/shift/v2/keyboard.json +++ b/keyboards/drop/shift/v2/keyboard.json @@ -21,7 +21,6 @@ "rgb_matrix": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/drop/thekey/v1/keyboard.json b/keyboards/drop/thekey/v1/keyboard.json index f1f204e3a01..b975610372d 100644 --- a/keyboards/drop/thekey/v1/keyboard.json +++ b/keyboards/drop/thekey/v1/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "backlight": true, diff --git a/keyboards/drop/thekey/v2/keyboard.json b/keyboards/drop/thekey/v2/keyboard.json index ced9901bea0..8a29df34bbf 100644 --- a/keyboards/drop/thekey/v2/keyboard.json +++ b/keyboards/drop/thekey/v2/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "rgblight": true diff --git a/keyboards/druah/dk_saver_redux/keyboard.json b/keyboards/druah/dk_saver_redux/keyboard.json index 6c76e107565..8f2b8023e2d 100644 --- a/keyboards/druah/dk_saver_redux/keyboard.json +++ b/keyboards/druah/dk_saver_redux/keyboard.json @@ -16,7 +16,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/dtisaac/cg108/keyboard.json b/keyboards/dtisaac/cg108/keyboard.json index b2d7ed34fe9..9d8df8dad2a 100644 --- a/keyboards/dtisaac/cg108/keyboard.json +++ b/keyboards/dtisaac/cg108/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/dtisaac/dosa40rgb/keyboard.json b/keyboards/dtisaac/dosa40rgb/keyboard.json index 67956252609..09db50aee1d 100644 --- a/keyboards/dtisaac/dosa40rgb/keyboard.json +++ b/keyboards/dtisaac/dosa40rgb/keyboard.json @@ -72,7 +72,6 @@ "bluetooth": true, "bootmagic": true, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": false, diff --git a/keyboards/dtisaac/dtisaac01/keyboard.json b/keyboards/dtisaac/dtisaac01/keyboard.json index a9650a8112b..0d72c3f9e15 100644 --- a/keyboards/dtisaac/dtisaac01/keyboard.json +++ b/keyboards/dtisaac/dtisaac01/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/durgod/k320/base/keyboard.json b/keyboards/durgod/k320/base/keyboard.json index 89ea273baf0..7c794cf8eca 100644 --- a/keyboards/durgod/k320/base/keyboard.json +++ b/keyboards/durgod/k320/base/keyboard.json @@ -5,7 +5,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/dyz/dyz40/keyboard.json b/keyboards/dyz/dyz40/keyboard.json index 4916ec7ecd0..e5618468a06 100644 --- a/keyboards/dyz/dyz40/keyboard.json +++ b/keyboards/dyz/dyz40/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/dyz/dyz60/keyboard.json b/keyboards/dyz/dyz60/keyboard.json index 824e23d709b..af5c50184ec 100644 --- a/keyboards/dyz/dyz60/keyboard.json +++ b/keyboards/dyz/dyz60/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/dyz/dyz60_hs/keyboard.json b/keyboards/dyz/dyz60_hs/keyboard.json index 112b1285772..94d60f3b6cf 100644 --- a/keyboards/dyz/dyz60_hs/keyboard.json +++ b/keyboards/dyz/dyz60_hs/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/dyz/dyz_tkl/keyboard.json b/keyboards/dyz/dyz_tkl/keyboard.json index 4d8bba17108..62e0073bd4c 100644 --- a/keyboards/dyz/dyz_tkl/keyboard.json +++ b/keyboards/dyz/dyz_tkl/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/dyz/selka40/keyboard.json b/keyboards/dyz/selka40/keyboard.json index 4a8df196339..abf627584a6 100644 --- a/keyboards/dyz/selka40/keyboard.json +++ b/keyboards/dyz/selka40/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/dyz/synthesis60/keyboard.json b/keyboards/dyz/synthesis60/keyboard.json index cdb4760381a..1ec2c9d1cdb 100644 --- a/keyboards/dyz/synthesis60/keyboard.json +++ b/keyboards/dyz/synthesis60/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/dz60/keyboard.json b/keyboards/dz60/keyboard.json index 3bf56b90f11..c28508105fd 100644 --- a/keyboards/dz60/keyboard.json +++ b/keyboards/dz60/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/dztech/bocc/keyboard.json b/keyboards/dztech/bocc/keyboard.json index e05e1828a3e..2f133433b8b 100644 --- a/keyboards/dztech/bocc/keyboard.json +++ b/keyboards/dztech/bocc/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/dztech/duo_s/keyboard.json b/keyboards/dztech/duo_s/keyboard.json index 76cbb57261e..f05f4d41c56 100644 --- a/keyboards/dztech/duo_s/keyboard.json +++ b/keyboards/dztech/duo_s/keyboard.json @@ -35,7 +35,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/dztech/dz60v2/keyboard.json b/keyboards/dztech/dz60v2/keyboard.json index 7714e4b7d25..292bbcfcea9 100644 --- a/keyboards/dztech/dz60v2/keyboard.json +++ b/keyboards/dztech/dz60v2/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/dztech/dz65rgb/v1/keyboard.json b/keyboards/dztech/dz65rgb/v1/keyboard.json index 6dcc88b59e6..30661057271 100644 --- a/keyboards/dztech/dz65rgb/v1/keyboard.json +++ b/keyboards/dztech/dz65rgb/v1/keyboard.json @@ -47,7 +47,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/dztech/dz65rgb/v2/keyboard.json b/keyboards/dztech/dz65rgb/v2/keyboard.json index 16d38a3af54..523fdfb23e8 100644 --- a/keyboards/dztech/dz65rgb/v2/keyboard.json +++ b/keyboards/dztech/dz65rgb/v2/keyboard.json @@ -47,7 +47,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/dztech/dz96/keyboard.json b/keyboards/dztech/dz96/keyboard.json index e51f5744196..95c78b80f58 100644 --- a/keyboards/dztech/dz96/keyboard.json +++ b/keyboards/dztech/dz96/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/dztech/endless80/keyboard.json b/keyboards/dztech/endless80/keyboard.json index 835ef0d6520..cf125950461 100644 --- a/keyboards/dztech/endless80/keyboard.json +++ b/keyboards/dztech/endless80/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/dztech/mellow/keyboard.json b/keyboards/dztech/mellow/keyboard.json index 24cd11028c5..cb08e086d5a 100644 --- a/keyboards/dztech/mellow/keyboard.json +++ b/keyboards/dztech/mellow/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/dztech/pluto/keyboard.json b/keyboards/dztech/pluto/keyboard.json index d64e941346e..790282d2540 100644 --- a/keyboards/dztech/pluto/keyboard.json +++ b/keyboards/dztech/pluto/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/dztech/tofu/ii/v1/keyboard.json b/keyboards/dztech/tofu/ii/v1/keyboard.json index 60ccc5ec9b5..8cab6f2f1ba 100644 --- a/keyboards/dztech/tofu/ii/v1/keyboard.json +++ b/keyboards/dztech/tofu/ii/v1/keyboard.json @@ -4,7 +4,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/dztech/tofu/jr/v1/keyboard.json b/keyboards/dztech/tofu/jr/v1/keyboard.json index 12930f65d02..ede74c73681 100644 --- a/keyboards/dztech/tofu/jr/v1/keyboard.json +++ b/keyboards/dztech/tofu/jr/v1/keyboard.json @@ -5,7 +5,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/dztech/tofu/jr/v2/keyboard.json b/keyboards/dztech/tofu/jr/v2/keyboard.json index 6a60565b22a..9a027e6ca89 100644 --- a/keyboards/dztech/tofu/jr/v2/keyboard.json +++ b/keyboards/dztech/tofu/jr/v2/keyboard.json @@ -5,7 +5,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/dztech/tofu60/keyboard.json b/keyboards/dztech/tofu60/keyboard.json index 149f04d46a8..bc9f0f9bba3 100644 --- a/keyboards/dztech/tofu60/keyboard.json +++ b/keyboards/dztech/tofu60/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/earth_rover/keyboard.json b/keyboards/earth_rover/keyboard.json index 0c760f612cd..e236043b842 100644 --- a/keyboards/earth_rover/keyboard.json +++ b/keyboards/earth_rover/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/eason/aeroboard/keyboard.json b/keyboards/eason/aeroboard/keyboard.json index cc0771f82c6..918f447dffc 100644 --- a/keyboards/eason/aeroboard/keyboard.json +++ b/keyboards/eason/aeroboard/keyboard.json @@ -30,7 +30,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/eason/capsule65/keyboard.json b/keyboards/eason/capsule65/keyboard.json index 9f51508a70a..4e04e458318 100644 --- a/keyboards/eason/capsule65/keyboard.json +++ b/keyboards/eason/capsule65/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/eason/greatsword80/keyboard.json b/keyboards/eason/greatsword80/keyboard.json index 6500fac9784..88102d569bd 100644 --- a/keyboards/eason/greatsword80/keyboard.json +++ b/keyboards/eason/greatsword80/keyboard.json @@ -15,7 +15,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/eason/meow65/keyboard.json b/keyboards/eason/meow65/keyboard.json index df995ea3595..c001dde3188 100644 --- a/keyboards/eason/meow65/keyboard.json +++ b/keyboards/eason/meow65/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/eason/void65h/keyboard.json b/keyboards/eason/void65h/keyboard.json index 664cfac81bd..8387993a759 100644 --- a/keyboards/eason/void65h/keyboard.json +++ b/keyboards/eason/void65h/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ebastler/e80_1800/keyboard.json b/keyboards/ebastler/e80_1800/keyboard.json index dfb669e72e6..1e10fd45c47 100644 --- a/keyboards/ebastler/e80_1800/keyboard.json +++ b/keyboards/ebastler/e80_1800/keyboard.json @@ -17,7 +17,6 @@ "backlight": true, "nkro": true, "command": false, - "console": false, "mousekey": false }, "matrix_pins": { diff --git a/keyboards/ebastler/isometria_75/rev1/keyboard.json b/keyboards/ebastler/isometria_75/rev1/keyboard.json index cf36d60df13..148f8b6b3f0 100644 --- a/keyboards/ebastler/isometria_75/rev1/keyboard.json +++ b/keyboards/ebastler/isometria_75/rev1/keyboard.json @@ -25,7 +25,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/eco/rev1/keyboard.json b/keyboards/eco/rev1/keyboard.json index 1b3cb5f8dfb..e241774e81c 100644 --- a/keyboards/eco/rev1/keyboard.json +++ b/keyboards/eco/rev1/keyboard.json @@ -11,7 +11,6 @@ "backlight": false, "bootmagic": false, "command": true, - "console": false, "extrakey": true, "midi": true, "mousekey": false, diff --git a/keyboards/eco/rev2/keyboard.json b/keyboards/eco/rev2/keyboard.json index 8effdd85e5b..ca8709a2663 100644 --- a/keyboards/eco/rev2/keyboard.json +++ b/keyboards/eco/rev2/keyboard.json @@ -11,7 +11,6 @@ "backlight": false, "bootmagic": false, "command": true, - "console": false, "extrakey": true, "midi": true, "mousekey": false, diff --git a/keyboards/edc40/keyboard.json b/keyboards/edc40/keyboard.json index a9a25275205..33998f47473 100644 --- a/keyboards/edc40/keyboard.json +++ b/keyboards/edc40/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/edda/keyboard.json b/keyboards/edda/keyboard.json index 4a997abeac5..4482b6f70de 100644 --- a/keyboards/edda/keyboard.json +++ b/keyboards/edda/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/emajesty/eiri/keyboard.json b/keyboards/emajesty/eiri/keyboard.json index 6941bb921d9..94bcb60f6ce 100644 --- a/keyboards/emajesty/eiri/keyboard.json +++ b/keyboards/emajesty/eiri/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/emi20/keyboard.json b/keyboards/emi20/keyboard.json index d6fd12356ac..ce623505b34 100644 --- a/keyboards/emi20/keyboard.json +++ b/keyboards/emi20/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/emptystring/nqg/keyboard.json b/keyboards/emptystring/nqg/keyboard.json index 52fae23604d..a425812c4f7 100644 --- a/keyboards/emptystring/nqg/keyboard.json +++ b/keyboards/emptystring/nqg/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": true diff --git a/keyboards/eniigmakeyboards/ek60/keyboard.json b/keyboards/eniigmakeyboards/ek60/keyboard.json index 09e34dfbc12..203a1f11b0c 100644 --- a/keyboards/eniigmakeyboards/ek60/keyboard.json +++ b/keyboards/eniigmakeyboards/ek60/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/eniigmakeyboards/ek65/keyboard.json b/keyboards/eniigmakeyboards/ek65/keyboard.json index cd158f3b9ae..ad64fcca0ec 100644 --- a/keyboards/eniigmakeyboards/ek65/keyboard.json +++ b/keyboards/eniigmakeyboards/ek65/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/eniigmakeyboards/ek87/keyboard.json b/keyboards/eniigmakeyboards/ek87/keyboard.json index a136d537298..27bcc9a844a 100644 --- a/keyboards/eniigmakeyboards/ek87/keyboard.json +++ b/keyboards/eniigmakeyboards/ek87/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/enviousdesign/60f/keyboard.json b/keyboards/enviousdesign/60f/keyboard.json index c163ca5d6de..84047b8d41c 100644 --- a/keyboards/enviousdesign/60f/keyboard.json +++ b/keyboards/enviousdesign/60f/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/enviousdesign/65m/keyboard.json b/keyboards/enviousdesign/65m/keyboard.json index 23289324626..d5196872f5f 100644 --- a/keyboards/enviousdesign/65m/keyboard.json +++ b/keyboards/enviousdesign/65m/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/enviousdesign/commissions/mini1800/keyboard.json b/keyboards/enviousdesign/commissions/mini1800/keyboard.json index 9303e7af234..5f3b1ee8f5e 100644 --- a/keyboards/enviousdesign/commissions/mini1800/keyboard.json +++ b/keyboards/enviousdesign/commissions/mini1800/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/enviousdesign/delirium/rev0/keyboard.json b/keyboards/enviousdesign/delirium/rev0/keyboard.json index f1eb3dc59b0..2895a0f2c83 100644 --- a/keyboards/enviousdesign/delirium/rev0/keyboard.json +++ b/keyboards/enviousdesign/delirium/rev0/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/enviousdesign/delirium/rev1/keyboard.json b/keyboards/enviousdesign/delirium/rev1/keyboard.json index e548d028141..bb4cb70ba5e 100644 --- a/keyboards/enviousdesign/delirium/rev1/keyboard.json +++ b/keyboards/enviousdesign/delirium/rev1/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/enviousdesign/delirium/rgb/keyboard.json b/keyboards/enviousdesign/delirium/rgb/keyboard.json index b6e0bb0e0c5..7e77be2a359 100644 --- a/keyboards/enviousdesign/delirium/rgb/keyboard.json +++ b/keyboards/enviousdesign/delirium/rgb/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/enviousdesign/mcro/rev1/keyboard.json b/keyboards/enviousdesign/mcro/rev1/keyboard.json index c7e4c38765a..1428c87abe7 100644 --- a/keyboards/enviousdesign/mcro/rev1/keyboard.json +++ b/keyboards/enviousdesign/mcro/rev1/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/era/divine/keyboard.json b/keyboards/era/divine/keyboard.json index cc679321316..cc8670de12c 100644 --- a/keyboards/era/divine/keyboard.json +++ b/keyboards/era/divine/keyboard.json @@ -15,7 +15,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/era/era65/keyboard.json b/keyboards/era/era65/keyboard.json index 63b96666c13..47f0046fe8c 100644 --- a/keyboards/era/era65/keyboard.json +++ b/keyboards/era/era65/keyboard.json @@ -19,7 +19,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/esca/getawayvan/keyboard.json b/keyboards/esca/getawayvan/keyboard.json index 999430307b6..8f9bc537761 100644 --- a/keyboards/esca/getawayvan/keyboard.json +++ b/keyboards/esca/getawayvan/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/esca/getawayvan_f042/keyboard.json b/keyboards/esca/getawayvan_f042/keyboard.json index cf27a896934..c3bce35121e 100644 --- a/keyboards/esca/getawayvan_f042/keyboard.json +++ b/keyboards/esca/getawayvan_f042/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/eternal_keypad/keyboard.json b/keyboards/eternal_keypad/keyboard.json index f50f235c981..607c738cb17 100644 --- a/keyboards/eternal_keypad/keyboard.json +++ b/keyboards/eternal_keypad/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/etiennecollin/wave/keyboard.json b/keyboards/etiennecollin/wave/keyboard.json index 272cbdd002d..70c9cb85192 100644 --- a/keyboards/etiennecollin/wave/keyboard.json +++ b/keyboards/etiennecollin/wave/keyboard.json @@ -20,7 +20,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/eve/meteor/keyboard.json b/keyboards/eve/meteor/keyboard.json index 4b3239c38c8..f012bb65204 100644 --- a/keyboards/eve/meteor/keyboard.json +++ b/keyboards/eve/meteor/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/evil80/keyboard.json b/keyboards/evil80/keyboard.json index c5a62837169..629065db239 100644 --- a/keyboards/evil80/keyboard.json +++ b/keyboards/evil80/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": true diff --git a/keyboards/evolv/keyboard.json b/keyboards/evolv/keyboard.json index 872f80085d8..2f27fe2c107 100644 --- a/keyboards/evolv/keyboard.json +++ b/keyboards/evolv/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/evyd13/fin_pad/keyboard.json b/keyboards/evyd13/fin_pad/keyboard.json index 79d87d71530..32afce7fb13 100644 --- a/keyboards/evyd13/fin_pad/keyboard.json +++ b/keyboards/evyd13/fin_pad/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/evyd13/gh80_3700/keyboard.json b/keyboards/evyd13/gh80_3700/keyboard.json index a647f461188..8bc1a402227 100644 --- a/keyboards/evyd13/gh80_3700/keyboard.json +++ b/keyboards/evyd13/gh80_3700/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/evyd13/gud70/keyboard.json b/keyboards/evyd13/gud70/keyboard.json index 00211d61672..df0b1c4e5d3 100644 --- a/keyboards/evyd13/gud70/keyboard.json +++ b/keyboards/evyd13/gud70/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/evyd13/mx5160/keyboard.json b/keyboards/evyd13/mx5160/keyboard.json index b50f6130cec..3d077ef4ba7 100644 --- a/keyboards/evyd13/mx5160/keyboard.json +++ b/keyboards/evyd13/mx5160/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/evyd13/nt210/keyboard.json b/keyboards/evyd13/nt210/keyboard.json index 1c9fab2fcc0..c6c54ccf56e 100644 --- a/keyboards/evyd13/nt210/keyboard.json +++ b/keyboards/evyd13/nt210/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/evyd13/nt650/keyboard.json b/keyboards/evyd13/nt650/keyboard.json index 54f3f8cce08..dc6fc74aca1 100644 --- a/keyboards/evyd13/nt650/keyboard.json +++ b/keyboards/evyd13/nt650/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/evyd13/nt750/keyboard.json b/keyboards/evyd13/nt750/keyboard.json index 03c76f10406..ad6a5401793 100644 --- a/keyboards/evyd13/nt750/keyboard.json +++ b/keyboards/evyd13/nt750/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/evyd13/nt980/keyboard.json b/keyboards/evyd13/nt980/keyboard.json index b51a67903e4..44395ae6e64 100644 --- a/keyboards/evyd13/nt980/keyboard.json +++ b/keyboards/evyd13/nt980/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/evyd13/plain60/keyboard.json b/keyboards/evyd13/plain60/keyboard.json index dd59768dbf5..1fbcfd9beb4 100644 --- a/keyboards/evyd13/plain60/keyboard.json +++ b/keyboards/evyd13/plain60/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/evyd13/quackfire/keyboard.json b/keyboards/evyd13/quackfire/keyboard.json index 85c2ae81fbc..154f9cfd0e8 100644 --- a/keyboards/evyd13/quackfire/keyboard.json +++ b/keyboards/evyd13/quackfire/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/evyd13/solheim68/keyboard.json b/keyboards/evyd13/solheim68/keyboard.json index 9e04b9caab9..de150e3984e 100644 --- a/keyboards/evyd13/solheim68/keyboard.json +++ b/keyboards/evyd13/solheim68/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/exclusive/e65/keyboard.json b/keyboards/exclusive/e65/keyboard.json index 6efd89e94f2..d235ad028f3 100644 --- a/keyboards/exclusive/e65/keyboard.json +++ b/keyboards/exclusive/e65/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/exclusive/e6_rgb/keyboard.json b/keyboards/exclusive/e6_rgb/keyboard.json index 5e6e3999be2..780fd1c1abb 100644 --- a/keyboards/exclusive/e6_rgb/keyboard.json +++ b/keyboards/exclusive/e6_rgb/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/exclusive/e6v2/le/keyboard.json b/keyboards/exclusive/e6v2/le/keyboard.json index aa6be489975..25ca2ca4f83 100644 --- a/keyboards/exclusive/e6v2/le/keyboard.json +++ b/keyboards/exclusive/e6v2/le/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/exclusive/e6v2/le_bmc/keyboard.json b/keyboards/exclusive/e6v2/le_bmc/keyboard.json index 09d99d670f9..1e36043e5a6 100644 --- a/keyboards/exclusive/e6v2/le_bmc/keyboard.json +++ b/keyboards/exclusive/e6v2/le_bmc/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/exclusive/e6v2/oe/keyboard.json b/keyboards/exclusive/e6v2/oe/keyboard.json index e619e542b19..120fb76635c 100644 --- a/keyboards/exclusive/e6v2/oe/keyboard.json +++ b/keyboards/exclusive/e6v2/oe/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/exclusive/e6v2/oe_bmc/keyboard.json b/keyboards/exclusive/e6v2/oe_bmc/keyboard.json index 7ff30992491..f287417943c 100644 --- a/keyboards/exclusive/e6v2/oe_bmc/keyboard.json +++ b/keyboards/exclusive/e6v2/oe_bmc/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/exclusive/e7v1/keyboard.json b/keyboards/exclusive/e7v1/keyboard.json index 711d1e39084..0cafc27d2d5 100644 --- a/keyboards/exclusive/e7v1/keyboard.json +++ b/keyboards/exclusive/e7v1/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/exclusive/e7v1se/keyboard.json b/keyboards/exclusive/e7v1se/keyboard.json index 4cd9484ae4b..7f24f0102ba 100644 --- a/keyboards/exclusive/e7v1se/keyboard.json +++ b/keyboards/exclusive/e7v1se/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/exent/keyboard.json b/keyboards/exent/keyboard.json index e6ac763d13a..5f3e058af0b 100644 --- a/keyboards/exent/keyboard.json +++ b/keyboards/exent/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/eyeohdesigns/babyv/keyboard.json b/keyboards/eyeohdesigns/babyv/keyboard.json index 849d59a227a..72373d9c466 100644 --- a/keyboards/eyeohdesigns/babyv/keyboard.json +++ b/keyboards/eyeohdesigns/babyv/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/eyeohdesigns/theboulevard/keyboard.json b/keyboards/eyeohdesigns/theboulevard/keyboard.json index cb2cd6b3c27..816ad069172 100644 --- a/keyboards/eyeohdesigns/theboulevard/keyboard.json +++ b/keyboards/eyeohdesigns/theboulevard/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/facew/keyboard.json b/keyboards/facew/keyboard.json index 395207d3485..b8d22bdf967 100644 --- a/keyboards/facew/keyboard.json +++ b/keyboards/facew/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/falsonix/fx19/keyboard.json b/keyboards/falsonix/fx19/keyboard.json index b940c914afa..95e1e9cd784 100644 --- a/keyboards/falsonix/fx19/keyboard.json +++ b/keyboards/falsonix/fx19/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/fatotesa/keyboard.json b/keyboards/fatotesa/keyboard.json index dd74076812a..6ea6b7199be 100644 --- a/keyboards/fatotesa/keyboard.json +++ b/keyboards/fatotesa/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/feker/ik75/keyboard.json b/keyboards/feker/ik75/keyboard.json index 8f5614098ce..0f86148ebe2 100644 --- a/keyboards/feker/ik75/keyboard.json +++ b/keyboards/feker/ik75/keyboard.json @@ -63,7 +63,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/ffkeebs/puca/keyboard.json b/keyboards/ffkeebs/puca/keyboard.json index 2abd0cfc369..2c0780f4be0 100644 --- a/keyboards/ffkeebs/puca/keyboard.json +++ b/keyboards/ffkeebs/puca/keyboard.json @@ -14,7 +14,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/ffkeebs/siris/keyboard.json b/keyboards/ffkeebs/siris/keyboard.json index 86531b6d01f..5886f988746 100644 --- a/keyboards/ffkeebs/siris/keyboard.json +++ b/keyboards/ffkeebs/siris/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/flashquark/horizon_z/keyboard.json b/keyboards/flashquark/horizon_z/keyboard.json index 0fe14e7c603..b2354889ccd 100755 --- a/keyboards/flashquark/horizon_z/keyboard.json +++ b/keyboards/flashquark/horizon_z/keyboard.json @@ -8,7 +8,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/flehrad/numbrero/keyboard.json b/keyboards/flehrad/numbrero/keyboard.json index 723204fbc16..28a6ab23de0 100644 --- a/keyboards/flehrad/numbrero/keyboard.json +++ b/keyboards/flehrad/numbrero/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/flehrad/snagpad/keyboard.json b/keyboards/flehrad/snagpad/keyboard.json index 48022f55184..821117f2455 100644 --- a/keyboards/flehrad/snagpad/keyboard.json +++ b/keyboards/flehrad/snagpad/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/flehrad/tradestation/keyboard.json b/keyboards/flehrad/tradestation/keyboard.json index f99ee313d37..4122d6e5e67 100644 --- a/keyboards/flehrad/tradestation/keyboard.json +++ b/keyboards/flehrad/tradestation/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/fleuron/keyboard.json b/keyboards/fleuron/keyboard.json index 5cd7b7d8b26..041ed9061c6 100644 --- a/keyboards/fleuron/keyboard.json +++ b/keyboards/fleuron/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/flx/lodestone/keyboard.json b/keyboards/flx/lodestone/keyboard.json index 3a70655f2a0..138ea8216e4 100644 --- a/keyboards/flx/lodestone/keyboard.json +++ b/keyboards/flx/lodestone/keyboard.json @@ -14,7 +14,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/flx/virgo/keyboard.json b/keyboards/flx/virgo/keyboard.json index 73100da1e9c..11935c38f23 100644 --- a/keyboards/flx/virgo/keyboard.json +++ b/keyboards/flx/virgo/keyboard.json @@ -14,7 +14,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/flxlb/zplit/keyboard.json b/keyboards/flxlb/zplit/keyboard.json index cd16ef7a150..fdbe34fc7eb 100644 --- a/keyboards/flxlb/zplit/keyboard.json +++ b/keyboards/flxlb/zplit/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": true, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/foostan/cornelius/keyboard.json b/keyboards/foostan/cornelius/keyboard.json index 4f9312825eb..024247b8949 100644 --- a/keyboards/foostan/cornelius/keyboard.json +++ b/keyboards/foostan/cornelius/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/forever65/keyboard.json b/keyboards/forever65/keyboard.json index 9f128c1177a..f1f7262929b 100644 --- a/keyboards/forever65/keyboard.json +++ b/keyboards/forever65/keyboard.json @@ -17,7 +17,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/foxlab/key65/hotswap/keyboard.json b/keyboards/foxlab/key65/hotswap/keyboard.json index c6359038047..892903f4ad1 100644 --- a/keyboards/foxlab/key65/hotswap/keyboard.json +++ b/keyboards/foxlab/key65/hotswap/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/foxlab/key65/universal/keyboard.json b/keyboards/foxlab/key65/universal/keyboard.json index 94cc4c94c2a..3133a89b5c4 100644 --- a/keyboards/foxlab/key65/universal/keyboard.json +++ b/keyboards/foxlab/key65/universal/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/foxlab/leaf60/hotswap/keyboard.json b/keyboards/foxlab/leaf60/hotswap/keyboard.json index 20dd487c277..76b22849c83 100644 --- a/keyboards/foxlab/leaf60/hotswap/keyboard.json +++ b/keyboards/foxlab/leaf60/hotswap/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/foxlab/leaf60/universal/keyboard.json b/keyboards/foxlab/leaf60/universal/keyboard.json index 758e949aa22..ee1f59bd0df 100644 --- a/keyboards/foxlab/leaf60/universal/keyboard.json +++ b/keyboards/foxlab/leaf60/universal/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/foxlab/time80/keyboard.json b/keyboards/foxlab/time80/keyboard.json index d4111207edc..c922c821caa 100644 --- a/keyboards/foxlab/time80/keyboard.json +++ b/keyboards/foxlab/time80/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/foxlab/time_re/hotswap/keyboard.json b/keyboards/foxlab/time_re/hotswap/keyboard.json index 2391284ee0d..262bcbf8e19 100644 --- a/keyboards/foxlab/time_re/hotswap/keyboard.json +++ b/keyboards/foxlab/time_re/hotswap/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/foxlab/time_re/universal/keyboard.json b/keyboards/foxlab/time_re/universal/keyboard.json index cd4fca6df8b..a7849bdba35 100644 --- a/keyboards/foxlab/time_re/universal/keyboard.json +++ b/keyboards/foxlab/time_re/universal/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/fr4/southpaw75/keyboard.json b/keyboards/fr4/southpaw75/keyboard.json index 47fb954bf96..9152b2758a5 100644 --- a/keyboards/fr4/southpaw75/keyboard.json +++ b/keyboards/fr4/southpaw75/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/fr4/unix60/keyboard.json b/keyboards/fr4/unix60/keyboard.json index a6c3d0cb6a0..4a34065ece4 100644 --- a/keyboards/fr4/unix60/keyboard.json +++ b/keyboards/fr4/unix60/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/free_willy/keyboard.json b/keyboards/free_willy/keyboard.json index 512d56516aa..74177bdc5e4 100644 --- a/keyboards/free_willy/keyboard.json +++ b/keyboards/free_willy/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/friedrich/keyboard.json b/keyboards/friedrich/keyboard.json index d5dd68e0bc4..49da41a9474 100644 --- a/keyboards/friedrich/keyboard.json +++ b/keyboards/friedrich/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/frobiac/blackbowl/keyboard.json b/keyboards/frobiac/blackbowl/keyboard.json index 8a4aed19484..27cbd78209e 100644 --- a/keyboards/frobiac/blackbowl/keyboard.json +++ b/keyboards/frobiac/blackbowl/keyboard.json @@ -9,7 +9,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "dynamic_macro": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/frobiac/blackflat/keyboard.json b/keyboards/frobiac/blackflat/keyboard.json index 086d90d8f8b..0d9229f96a5 100644 --- a/keyboards/frobiac/blackflat/keyboard.json +++ b/keyboards/frobiac/blackflat/keyboard.json @@ -9,7 +9,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "dynamic_macro": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/frobiac/hypernano/keyboard.json b/keyboards/frobiac/hypernano/keyboard.json index 403beed952f..28a8e9b766a 100644 --- a/keyboards/frobiac/hypernano/keyboard.json +++ b/keyboards/frobiac/hypernano/keyboard.json @@ -9,7 +9,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "dynamic_macro": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/frobiac/redtilt/keyboard.json b/keyboards/frobiac/redtilt/keyboard.json index f3cbd96e1c3..764bc9be7b7 100644 --- a/keyboards/frobiac/redtilt/keyboard.json +++ b/keyboards/frobiac/redtilt/keyboard.json @@ -9,7 +9,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "dynamic_macro": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/frooastboard/nano/keyboard.json b/keyboards/frooastboard/nano/keyboard.json index 5d7783145e0..78764d2536c 100644 --- a/keyboards/frooastboard/nano/keyboard.json +++ b/keyboards/frooastboard/nano/keyboard.json @@ -18,7 +18,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": true, diff --git a/keyboards/frooastboard/walnut/keyboard.json b/keyboards/frooastboard/walnut/keyboard.json index 4387452d381..4807a28801f 100644 --- a/keyboards/frooastboard/walnut/keyboard.json +++ b/keyboards/frooastboard/walnut/keyboard.json @@ -9,7 +9,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": true, diff --git a/keyboards/fs_streampad/keyboard.json b/keyboards/fs_streampad/keyboard.json index bf4f36a9503..d9323154199 100644 --- a/keyboards/fs_streampad/keyboard.json +++ b/keyboards/fs_streampad/keyboard.json @@ -18,7 +18,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/ft/mars65/keyboard.json b/keyboards/ft/mars65/keyboard.json index ab5e968b901..3b9c5fe0e66 100644 --- a/keyboards/ft/mars65/keyboard.json +++ b/keyboards/ft/mars65/keyboard.json @@ -14,7 +14,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/ft/mars80/keyboard.json b/keyboards/ft/mars80/keyboard.json index 4862e84ab9a..38261ad5475 100644 --- a/keyboards/ft/mars80/keyboard.json +++ b/keyboards/ft/mars80/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/function96/v1/keyboard.json b/keyboards/function96/v1/keyboard.json index 945042b284b..a3f6db9a1e7 100644 --- a/keyboards/function96/v1/keyboard.json +++ b/keyboards/function96/v1/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/function96/v2/keyboard.json b/keyboards/function96/v2/keyboard.json index 21d677d9a59..2d2b7bafcfd 100644 --- a/keyboards/function96/v2/keyboard.json +++ b/keyboards/function96/v2/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/fungo/rev1/keyboard.json b/keyboards/fungo/rev1/keyboard.json index 0970a027c87..eacf9cf21ce 100644 --- a/keyboards/fungo/rev1/keyboard.json +++ b/keyboards/fungo/rev1/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": false, "key_lock": true, "mousekey": true, diff --git a/keyboards/funky40/keyboard.json b/keyboards/funky40/keyboard.json index 0aafa580418..9d05de15621 100644 --- a/keyboards/funky40/keyboard.json +++ b/keyboards/funky40/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/gami_studio/lex60/keyboard.json b/keyboards/gami_studio/lex60/keyboard.json index d458d6a6677..7fd735d6ffe 100644 --- a/keyboards/gami_studio/lex60/keyboard.json +++ b/keyboards/gami_studio/lex60/keyboard.json @@ -28,7 +28,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/geekboards/macropad_v2/keyboard.json b/keyboards/geekboards/macropad_v2/keyboard.json index 31f21b97bf3..4e0eff3a5ea 100644 --- a/keyboards/geekboards/macropad_v2/keyboard.json +++ b/keyboards/geekboards/macropad_v2/keyboard.json @@ -58,7 +58,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/geekboards/tester/keyboard.json b/keyboards/geekboards/tester/keyboard.json index 57073ebdc06..ef6e6ee3529 100644 --- a/keyboards/geekboards/tester/keyboard.json +++ b/keyboards/geekboards/tester/keyboard.json @@ -55,7 +55,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/geistmaschine/geist/keyboard.json b/keyboards/geistmaschine/geist/keyboard.json index 079dd8d6d9a..723f3d4e7f5 100644 --- a/keyboards/geistmaschine/geist/keyboard.json +++ b/keyboards/geistmaschine/geist/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/geistmaschine/macropod/keyboard.json b/keyboards/geistmaschine/macropod/keyboard.json index 333e7c0a509..32094981c79 100644 --- a/keyboards/geistmaschine/macropod/keyboard.json +++ b/keyboards/geistmaschine/macropod/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/generic_panda/panda65_01/keyboard.json b/keyboards/generic_panda/panda65_01/keyboard.json index 098f3df1c02..59ed6465430 100644 --- a/keyboards/generic_panda/panda65_01/keyboard.json +++ b/keyboards/generic_panda/panda65_01/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/genone/eclipse_65/keyboard.json b/keyboards/genone/eclipse_65/keyboard.json index aeb2d8973c8..f416e538d50 100644 --- a/keyboards/genone/eclipse_65/keyboard.json +++ b/keyboards/genone/eclipse_65/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/genone/g1_65/keyboard.json b/keyboards/genone/g1_65/keyboard.json index 367bdfe7bbb..bb85dd82bc9 100644 --- a/keyboards/genone/g1_65/keyboard.json +++ b/keyboards/genone/g1_65/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/geonworks/ee_at/keyboard.json b/keyboards/geonworks/ee_at/keyboard.json index 803e0d36403..a619ca43e3c 100644 --- a/keyboards/geonworks/ee_at/keyboard.json +++ b/keyboards/geonworks/ee_at/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/geonworks/frogmini/fmh/keyboard.json b/keyboards/geonworks/frogmini/fmh/keyboard.json index 414aa18e121..d8f1db093ad 100644 --- a/keyboards/geonworks/frogmini/fmh/keyboard.json +++ b/keyboards/geonworks/frogmini/fmh/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/geonworks/frogmini/fms/keyboard.json b/keyboards/geonworks/frogmini/fms/keyboard.json index c34765288bc..63945434eba 100644 --- a/keyboards/geonworks/frogmini/fms/keyboard.json +++ b/keyboards/geonworks/frogmini/fms/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/geonworks/w1_at/keyboard.json b/keyboards/geonworks/w1_at/keyboard.json index 8b7991c03d8..49834c37301 100644 --- a/keyboards/geonworks/w1_at/keyboard.json +++ b/keyboards/geonworks/w1_at/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/gh60/revc/keyboard.json b/keyboards/gh60/revc/keyboard.json index 8e1c03c1513..cc73e0649e4 100644 --- a/keyboards/gh60/revc/keyboard.json +++ b/keyboards/gh60/revc/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/gh60/v1p3/keyboard.json b/keyboards/gh60/v1p3/keyboard.json index 34d8c992b43..978b1e0b575 100644 --- a/keyboards/gh60/v1p3/keyboard.json +++ b/keyboards/gh60/v1p3/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/gh80_3000/keyboard.json b/keyboards/gh80_3000/keyboard.json index 929f11f7c0e..c747264be44 100644 --- a/keyboards/gh80_3000/keyboard.json +++ b/keyboards/gh80_3000/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/ghs/jem/info.json b/keyboards/ghs/jem/info.json index 4bda443ac5c..92d09c9c834 100644 --- a/keyboards/ghs/jem/info.json +++ b/keyboards/ghs/jem/info.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "rgblight": true, diff --git a/keyboards/ghs/rar/keyboard.json b/keyboards/ghs/rar/keyboard.json index 96184abe6a6..2e3a205ad97 100644 --- a/keyboards/ghs/rar/keyboard.json +++ b/keyboards/ghs/rar/keyboard.json @@ -33,7 +33,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/ghs/xls/keyboard.json b/keyboards/ghs/xls/keyboard.json index acd916884a4..2115fe456e6 100644 --- a/keyboards/ghs/xls/keyboard.json +++ b/keyboards/ghs/xls/keyboard.json @@ -6,7 +6,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "encoder": true, diff --git a/keyboards/giabalanai/keyboard.json b/keyboards/giabalanai/keyboard.json index ae43139dad7..817bed0f572 100644 --- a/keyboards/giabalanai/keyboard.json +++ b/keyboards/giabalanai/keyboard.json @@ -34,7 +34,6 @@ "extrakey": true, "encoder": true, "bootmagic": false, - "console": false, "mousekey": false, "nkro": false, "command": false, diff --git a/keyboards/gizmo_engineering/gk6/keyboard.json b/keyboards/gizmo_engineering/gk6/keyboard.json index d68b356d9cf..bd9588f251a 100644 --- a/keyboards/gizmo_engineering/gk6/keyboard.json +++ b/keyboards/gizmo_engineering/gk6/keyboard.json @@ -30,7 +30,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/gkeyboard/gkb_m16/keyboard.json b/keyboards/gkeyboard/gkb_m16/keyboard.json index fe846b4bd25..408d391cb30 100644 --- a/keyboards/gkeyboard/gkb_m16/keyboard.json +++ b/keyboards/gkeyboard/gkb_m16/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/gkeyboard/gpad8_2r/keyboard.json b/keyboards/gkeyboard/gpad8_2r/keyboard.json index 6c9a779b05e..a2e3144bb4f 100644 --- a/keyboards/gkeyboard/gpad8_2r/keyboard.json +++ b/keyboards/gkeyboard/gpad8_2r/keyboard.json @@ -14,7 +14,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/gkeyboard/greatpad/keyboard.json b/keyboards/gkeyboard/greatpad/keyboard.json index 62edd1aef34..6f114793578 100644 --- a/keyboards/gkeyboard/greatpad/keyboard.json +++ b/keyboards/gkeyboard/greatpad/keyboard.json @@ -16,7 +16,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/gl516/xr63gl/keyboard.json b/keyboards/gl516/xr63gl/keyboard.json index 808bd9d1b10..19716eb60c2 100644 --- a/keyboards/gl516/xr63gl/keyboard.json +++ b/keyboards/gl516/xr63gl/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/gmmk/gmmk2/p65/ansi/keyboard.json b/keyboards/gmmk/gmmk2/p65/ansi/keyboard.json index a5c4c92552f..197b08e4191 100644 --- a/keyboards/gmmk/gmmk2/p65/ansi/keyboard.json +++ b/keyboards/gmmk/gmmk2/p65/ansi/keyboard.json @@ -14,7 +14,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/gmmk/gmmk2/p65/iso/keyboard.json b/keyboards/gmmk/gmmk2/p65/iso/keyboard.json index a4576c8c7f1..2ba4bf06160 100644 --- a/keyboards/gmmk/gmmk2/p65/iso/keyboard.json +++ b/keyboards/gmmk/gmmk2/p65/iso/keyboard.json @@ -14,7 +14,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/gmmk/gmmk2/p96/ansi/keyboard.json b/keyboards/gmmk/gmmk2/p96/ansi/keyboard.json index 8fd81ba1a08..43ebfbf6201 100644 --- a/keyboards/gmmk/gmmk2/p96/ansi/keyboard.json +++ b/keyboards/gmmk/gmmk2/p96/ansi/keyboard.json @@ -14,7 +14,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/gmmk/gmmk2/p96/iso/keyboard.json b/keyboards/gmmk/gmmk2/p96/iso/keyboard.json index 040b6f9c6fc..7f1989324f8 100644 --- a/keyboards/gmmk/gmmk2/p96/iso/keyboard.json +++ b/keyboards/gmmk/gmmk2/p96/iso/keyboard.json @@ -14,7 +14,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/gmmk/pro/rev1/ansi/keyboard.json b/keyboards/gmmk/pro/rev1/ansi/keyboard.json index 867f7e1d027..074949efaa5 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keyboard.json +++ b/keyboards/gmmk/pro/rev1/ansi/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/gmmk/pro/rev1/iso/keyboard.json b/keyboards/gmmk/pro/rev1/iso/keyboard.json index 6eabec96feb..9b26290fbc8 100644 --- a/keyboards/gmmk/pro/rev1/iso/keyboard.json +++ b/keyboards/gmmk/pro/rev1/iso/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/gmmk/pro/rev2/ansi/keyboard.json b/keyboards/gmmk/pro/rev2/ansi/keyboard.json index 21bc7df7fb3..e113374dc7a 100644 --- a/keyboards/gmmk/pro/rev2/ansi/keyboard.json +++ b/keyboards/gmmk/pro/rev2/ansi/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/gmmk/pro/rev2/iso/keyboard.json b/keyboards/gmmk/pro/rev2/iso/keyboard.json index 83d1fd30284..b4aad81323a 100644 --- a/keyboards/gmmk/pro/rev2/iso/keyboard.json +++ b/keyboards/gmmk/pro/rev2/iso/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/gorthage_truck/keyboard.json b/keyboards/gorthage_truck/keyboard.json index 1a0a364f967..40c901e21c5 100644 --- a/keyboards/gorthage_truck/keyboard.json +++ b/keyboards/gorthage_truck/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/gowla/keyboard.json b/keyboards/gowla/keyboard.json index 0f64cad79bb..02726110130 100644 --- a/keyboards/gowla/keyboard.json +++ b/keyboards/gowla/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/gray_studio/aero75/keyboard.json b/keyboards/gray_studio/aero75/keyboard.json index c0ede794c24..9357ca39036 100644 --- a/keyboards/gray_studio/aero75/keyboard.json +++ b/keyboards/gray_studio/aero75/keyboard.json @@ -40,7 +40,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/gray_studio/apollo80/keyboard.json b/keyboards/gray_studio/apollo80/keyboard.json index f3425aa20dd..0bbb3bf8044 100644 --- a/keyboards/gray_studio/apollo80/keyboard.json +++ b/keyboards/gray_studio/apollo80/keyboard.json @@ -36,7 +36,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/gray_studio/hb85/keyboard.json b/keyboards/gray_studio/hb85/keyboard.json index 0fcf30a925c..9d182a458ef 100644 --- a/keyboards/gray_studio/hb85/keyboard.json +++ b/keyboards/gray_studio/hb85/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/gray_studio/space65/keyboard.json b/keyboards/gray_studio/space65/keyboard.json index 6534f165a84..630f9d4e26a 100644 --- a/keyboards/gray_studio/space65/keyboard.json +++ b/keyboards/gray_studio/space65/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/gray_studio/space65r3/keyboard.json b/keyboards/gray_studio/space65r3/keyboard.json index bdf3624c58f..3a5880caf58 100644 --- a/keyboards/gray_studio/space65r3/keyboard.json +++ b/keyboards/gray_studio/space65r3/keyboard.json @@ -40,7 +40,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/gray_studio/think65v3/keyboard.json b/keyboards/gray_studio/think65v3/keyboard.json index 0c6b8e7938d..c561c3e8a2c 100644 --- a/keyboards/gray_studio/think65v3/keyboard.json +++ b/keyboards/gray_studio/think65v3/keyboard.json @@ -14,7 +14,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/gregandcin/teaqueen/keyboard.json b/keyboards/gregandcin/teaqueen/keyboard.json index 871c34587dd..dfb7e641466 100644 --- a/keyboards/gregandcin/teaqueen/keyboard.json +++ b/keyboards/gregandcin/teaqueen/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/gummykey/keyboard.json b/keyboards/gummykey/keyboard.json index bb7001438df..36fa06455f1 100644 --- a/keyboards/gummykey/keyboard.json +++ b/keyboards/gummykey/keyboard.json @@ -6,7 +6,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/gvalchca/ga150/keyboard.json b/keyboards/gvalchca/ga150/keyboard.json index cdea8ea976b..ff0c0502c0b 100644 --- a/keyboards/gvalchca/ga150/keyboard.json +++ b/keyboards/gvalchca/ga150/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/gvalchca/spaccboard/keyboard.json b/keyboards/gvalchca/spaccboard/keyboard.json index ad03737fd59..33af104d421 100644 --- a/keyboards/gvalchca/spaccboard/keyboard.json +++ b/keyboards/gvalchca/spaccboard/keyboard.json @@ -14,7 +14,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/h0oni/deskpad/keyboard.json b/keyboards/h0oni/deskpad/keyboard.json index 1d84fe3ee48..e7de03edb8e 100644 --- a/keyboards/h0oni/deskpad/keyboard.json +++ b/keyboards/h0oni/deskpad/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/h0oni/hotduck/keyboard.json b/keyboards/h0oni/hotduck/keyboard.json index a2a709d71d7..bda7a295b24 100644 --- a/keyboards/h0oni/hotduck/keyboard.json +++ b/keyboards/h0oni/hotduck/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/hackpad/keyboard.json b/keyboards/hackpad/keyboard.json index 0a77c9320c5..5813874e59f 100644 --- a/keyboards/hackpad/keyboard.json +++ b/keyboards/hackpad/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/halokeys/elemental75/keyboard.json b/keyboards/halokeys/elemental75/keyboard.json index b26d094c4bc..b9319d2f21d 100644 --- a/keyboards/halokeys/elemental75/keyboard.json +++ b/keyboards/halokeys/elemental75/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/han60/keyboard.json b/keyboards/han60/keyboard.json index 41d33b1ba87..d2b1c24159a 100644 --- a/keyboards/han60/keyboard.json +++ b/keyboards/han60/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/hand88/keyboard.json b/keyboards/hand88/keyboard.json index cb8a320aaf0..1ee33b84156 100755 --- a/keyboards/hand88/keyboard.json +++ b/keyboards/hand88/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/10k/keyboard.json b/keyboards/handwired/10k/keyboard.json index a3293601e3a..c49d046fdea 100644 --- a/keyboards/handwired/10k/keyboard.json +++ b/keyboards/handwired/10k/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": false diff --git a/keyboards/handwired/2x5keypad/keyboard.json b/keyboards/handwired/2x5keypad/keyboard.json index f4ee815c10b..88932b689b3 100644 --- a/keyboards/handwired/2x5keypad/keyboard.json +++ b/keyboards/handwired/2x5keypad/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/6key/keyboard.json b/keyboards/handwired/6key/keyboard.json index 7883c1e7840..8b4a41b0bf6 100644 --- a/keyboards/handwired/6key/keyboard.json +++ b/keyboards/handwired/6key/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/handwired/6macro/keyboard.json b/keyboards/handwired/6macro/keyboard.json index 10c59bbbac0..19e2191c226 100644 --- a/keyboards/handwired/6macro/keyboard.json +++ b/keyboards/handwired/6macro/keyboard.json @@ -28,7 +28,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/acacia/keyboard.json b/keyboards/handwired/acacia/keyboard.json index d761764727a..bdb63430af1 100644 --- a/keyboards/handwired/acacia/keyboard.json +++ b/keyboards/handwired/acacia/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/aim65/keyboard.json b/keyboards/handwired/aim65/keyboard.json index 3f026a91fa3..e5f48d7ef6e 100644 --- a/keyboards/handwired/aim65/keyboard.json +++ b/keyboards/handwired/aim65/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/alcor_dactyl/keyboard.json b/keyboards/handwired/alcor_dactyl/keyboard.json index 81d0228dd6b..36b0cc849b1 100644 --- a/keyboards/handwired/alcor_dactyl/keyboard.json +++ b/keyboards/handwired/alcor_dactyl/keyboard.json @@ -11,7 +11,6 @@ }, "features": { "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/amigopunk/keyboard.json b/keyboards/handwired/amigopunk/keyboard.json index e8e45d2b993..11df6261ac4 100644 --- a/keyboards/handwired/amigopunk/keyboard.json +++ b/keyboards/handwired/amigopunk/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/handwired/angel/keyboard.json b/keyboards/handwired/angel/keyboard.json index 6a4b40bb214..89635b7bab8 100644 --- a/keyboards/handwired/angel/keyboard.json +++ b/keyboards/handwired/angel/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/aplx2/keyboard.json b/keyboards/handwired/aplx2/keyboard.json index 3e43576f587..f47646d5bf0 100644 --- a/keyboards/handwired/aplx2/keyboard.json +++ b/keyboards/handwired/aplx2/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/aranck/keyboard.json b/keyboards/handwired/aranck/keyboard.json index 435d6da6967..e64a4b52634 100644 --- a/keyboards/handwired/aranck/keyboard.json +++ b/keyboards/handwired/aranck/keyboard.json @@ -12,7 +12,6 @@ "audio": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/handwired/atreus50/keyboard.json b/keyboards/handwired/atreus50/keyboard.json index 029d622f98a..cedc2319649 100644 --- a/keyboards/handwired/atreus50/keyboard.json +++ b/keyboards/handwired/atreus50/keyboard.json @@ -29,7 +29,6 @@ "features": { "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/axon/keyboard.json b/keyboards/handwired/axon/keyboard.json index 007f90fbc8b..6332e0c95b2 100644 --- a/keyboards/handwired/axon/keyboard.json +++ b/keyboards/handwired/axon/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/baredev/rev1/keyboard.json b/keyboards/handwired/baredev/rev1/keyboard.json index 470b926bb40..66d37c1f6e7 100644 --- a/keyboards/handwired/baredev/rev1/keyboard.json +++ b/keyboards/handwired/baredev/rev1/keyboard.json @@ -25,7 +25,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/bolek/keyboard.json b/keyboards/handwired/bolek/keyboard.json index 68fe7958bf3..00d47a2b067 100644 --- a/keyboards/handwired/bolek/keyboard.json +++ b/keyboards/handwired/bolek/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/boss566y/redragon_vara/keyboard.json b/keyboards/handwired/boss566y/redragon_vara/keyboard.json index 579cfe0576e..1b35bf4c494 100644 --- a/keyboards/handwired/boss566y/redragon_vara/keyboard.json +++ b/keyboards/handwired/boss566y/redragon_vara/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/brain/keyboard.json b/keyboards/handwired/brain/keyboard.json index 9593ad44713..6b5e76b3230 100644 --- a/keyboards/handwired/brain/keyboard.json +++ b/keyboards/handwired/brain/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/handwired/bstk100/keyboard.json b/keyboards/handwired/bstk100/keyboard.json index 0fc255f9c41..3eb02037a56 100644 --- a/keyboards/handwired/bstk100/keyboard.json +++ b/keyboards/handwired/bstk100/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/cans12er/keyboard.json b/keyboards/handwired/cans12er/keyboard.json index 31fe7ebc838..a1bfe51902f 100644 --- a/keyboards/handwired/cans12er/keyboard.json +++ b/keyboards/handwired/cans12er/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/chiron/keyboard.json b/keyboards/handwired/chiron/keyboard.json index 7000421646b..5be09e0a3d4 100644 --- a/keyboards/handwired/chiron/keyboard.json +++ b/keyboards/handwired/chiron/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": false, "mousekey": true, "nkro": false, diff --git a/keyboards/handwired/co60/rev1/keyboard.json b/keyboards/handwired/co60/rev1/keyboard.json index 1bf60673fb9..7d5ba93fac3 100644 --- a/keyboards/handwired/co60/rev1/keyboard.json +++ b/keyboards/handwired/co60/rev1/keyboard.json @@ -7,7 +7,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "leader": true, "mousekey": true, diff --git a/keyboards/handwired/co60/rev6/keyboard.json b/keyboards/handwired/co60/rev6/keyboard.json index 743a738ff07..2688ab27391 100644 --- a/keyboards/handwired/co60/rev6/keyboard.json +++ b/keyboards/handwired/co60/rev6/keyboard.json @@ -7,7 +7,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "leader": true, "mousekey": true, diff --git a/keyboards/handwired/co60/rev7/keyboard.json b/keyboards/handwired/co60/rev7/keyboard.json index 4319c9aedfc..d1967ce1476 100644 --- a/keyboards/handwired/co60/rev7/keyboard.json +++ b/keyboards/handwired/co60/rev7/keyboard.json @@ -7,7 +7,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "leader": true, "mousekey": true, diff --git a/keyboards/handwired/colorlice/keyboard.json b/keyboards/handwired/colorlice/keyboard.json index 7292137dffa..2159dbe54c9 100644 --- a/keyboards/handwired/colorlice/keyboard.json +++ b/keyboards/handwired/colorlice/keyboard.json @@ -73,7 +73,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/concertina/64key/keyboard.json b/keyboards/handwired/concertina/64key/keyboard.json index dedc240d3f4..435c846342d 100644 --- a/keyboards/handwired/concertina/64key/keyboard.json +++ b/keyboards/handwired/concertina/64key/keyboard.json @@ -17,7 +17,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/consolekeyboard/18key/keyboard.json b/keyboards/handwired/consolekeyboard/18key/keyboard.json index c75e324cf30..b0e48530380 100644 --- a/keyboards/handwired/consolekeyboard/18key/keyboard.json +++ b/keyboards/handwired/consolekeyboard/18key/keyboard.json @@ -26,7 +26,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/handwired/consolekeyboard/20key/keyboard.json b/keyboards/handwired/consolekeyboard/20key/keyboard.json index 87449fc21e6..18b1da288e6 100644 --- a/keyboards/handwired/consolekeyboard/20key/keyboard.json +++ b/keyboards/handwired/consolekeyboard/20key/keyboard.json @@ -26,7 +26,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/handwired/consolekeyboard/27key/keyboard.json b/keyboards/handwired/consolekeyboard/27key/keyboard.json index 21a894d5e40..ecb46b9f0e8 100644 --- a/keyboards/handwired/consolekeyboard/27key/keyboard.json +++ b/keyboards/handwired/consolekeyboard/27key/keyboard.json @@ -26,7 +26,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/handwired/consolekeyboard/30key/keyboard.json b/keyboards/handwired/consolekeyboard/30key/keyboard.json index 159558e3556..2ecef968ac6 100644 --- a/keyboards/handwired/consolekeyboard/30key/keyboard.json +++ b/keyboards/handwired/consolekeyboard/30key/keyboard.json @@ -26,7 +26,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/handwired/croxsplit44/keyboard.json b/keyboards/handwired/croxsplit44/keyboard.json index 0d29f6fd666..f5e36d22b91 100644 --- a/keyboards/handwired/croxsplit44/keyboard.json +++ b/keyboards/handwired/croxsplit44/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/handwired/curiosity/keyboard.json b/keyboards/handwired/curiosity/keyboard.json index 85428b33cab..273033b0bf5 100644 --- a/keyboards/handwired/curiosity/keyboard.json +++ b/keyboards/handwired/curiosity/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/dactyl_cc/keyboard.json b/keyboards/handwired/dactyl_cc/keyboard.json index f4097b0487b..8c2ef8061c1 100644 --- a/keyboards/handwired/dactyl_cc/keyboard.json +++ b/keyboards/handwired/dactyl_cc/keyboard.json @@ -12,7 +12,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": true, "nkro": false }, diff --git a/keyboards/handwired/dactyl_kinesis/keyboard.json b/keyboards/handwired/dactyl_kinesis/keyboard.json index a536159532b..a1a108f8fae 100644 --- a/keyboards/handwired/dactyl_kinesis/keyboard.json +++ b/keyboards/handwired/dactyl_kinesis/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/dactyl_lightcycle/keyboard.json b/keyboards/handwired/dactyl_lightcycle/keyboard.json index 6e56b18f6f1..cf8fa3d84c6 100644 --- a/keyboards/handwired/dactyl_lightcycle/keyboard.json +++ b/keyboards/handwired/dactyl_lightcycle/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "mousekey": true, "extrakey": true, "nkro": false diff --git a/keyboards/handwired/dactyl_manuform/4x5/keyboard.json b/keyboards/handwired/dactyl_manuform/4x5/keyboard.json index e66bfa2ff64..7ef1482028c 100644 --- a/keyboards/handwired/dactyl_manuform/4x5/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/4x5/keyboard.json @@ -16,7 +16,6 @@ "features": { "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json b/keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json index 134793cac80..207f8c06a7c 100644 --- a/keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/dactyl_manuform/4x6/keyboard.json b/keyboards/handwired/dactyl_manuform/4x6/keyboard.json index f69fb8d426a..7b25b2d936c 100644 --- a/keyboards/handwired/dactyl_manuform/4x6/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/4x6/keyboard.json @@ -16,7 +16,6 @@ "features": { "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/dactyl_manuform/4x6_4_3/keyboard.json b/keyboards/handwired/dactyl_manuform/4x6_4_3/keyboard.json index 1846f2a6618..8f5f08a81cc 100644 --- a/keyboards/handwired/dactyl_manuform/4x6_4_3/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/4x6_4_3/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/dactyl_manuform/4x6_5/keyboard.json b/keyboards/handwired/dactyl_manuform/4x6_5/keyboard.json index d4674042a25..b875d322da4 100644 --- a/keyboards/handwired/dactyl_manuform/4x6_5/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/4x6_5/keyboard.json @@ -16,7 +16,6 @@ "features": { "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/dactyl_manuform/5x6/keyboard.json b/keyboards/handwired/dactyl_manuform/5x6/keyboard.json index 020bf43fddb..2021e082e24 100644 --- a/keyboards/handwired/dactyl_manuform/5x6/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x6/keyboard.json @@ -16,7 +16,6 @@ "features": { "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/dactyl_manuform/5x6_2_5/keyboard.json b/keyboards/handwired/dactyl_manuform/5x6_2_5/keyboard.json index 739eb573fff..0ee888d40cc 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_2_5/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x6_2_5/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/dactyl_manuform/5x6_5/keyboard.json b/keyboards/handwired/dactyl_manuform/5x6_5/keyboard.json index 7c89289bb2e..cfbe5bf21a9 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_5/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x6_5/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/dactyl_manuform/5x6_6/keyboard.json b/keyboards/handwired/dactyl_manuform/5x6_6/keyboard.json index ae73995d497..a6122f8492b 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_6/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x6_6/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/dactyl_manuform/5x6_68/keyboard.json b/keyboards/handwired/dactyl_manuform/5x6_68/keyboard.json index 33d8c3c0802..dc53bea60b2 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_68/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x6_68/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/dactyl_manuform/5x7/keyboard.json b/keyboards/handwired/dactyl_manuform/5x7/keyboard.json index 2534a76d780..bdafd60366b 100644 --- a/keyboards/handwired/dactyl_manuform/5x7/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x7/keyboard.json @@ -16,7 +16,6 @@ "features": { "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/dactyl_manuform/6x6_4/keyboard.json b/keyboards/handwired/dactyl_manuform/6x6_4/keyboard.json index e60fa249f4e..8663f20eb44 100644 --- a/keyboards/handwired/dactyl_manuform/6x6_4/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/6x6_4/keyboard.json @@ -16,7 +16,6 @@ "features": { "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/dactyl_manuform/6x7/keyboard.json b/keyboards/handwired/dactyl_manuform/6x7/keyboard.json index 7d1e72ff9ee..2c5af325aa6 100644 --- a/keyboards/handwired/dactyl_manuform/6x7/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/6x7/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/dactyl_manuform_pi_pico/keyboard.json b/keyboards/handwired/dactyl_manuform_pi_pico/keyboard.json index 57202c802a7..d87c333aa53 100644 --- a/keyboards/handwired/dactyl_manuform_pi_pico/keyboard.json +++ b/keyboards/handwired/dactyl_manuform_pi_pico/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/dactyl_maximus/keyboard.json b/keyboards/handwired/dactyl_maximus/keyboard.json index f9f5160ee65..3638ae329dc 100644 --- a/keyboards/handwired/dactyl_maximus/keyboard.json +++ b/keyboards/handwired/dactyl_maximus/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/dactyl_promicro/keyboard.json b/keyboards/handwired/dactyl_promicro/keyboard.json index 86576b3e094..32511d576da 100644 --- a/keyboards/handwired/dactyl_promicro/keyboard.json +++ b/keyboards/handwired/dactyl_promicro/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/dactyl_rah/keyboard.json b/keyboards/handwired/dactyl_rah/keyboard.json index 903aafc9737..2cb7741cc7d 100644 --- a/keyboards/handwired/dactyl_rah/keyboard.json +++ b/keyboards/handwired/dactyl_rah/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/dactyl_tracer/keyboard.json b/keyboards/handwired/dactyl_tracer/keyboard.json index 92a8a2c76b7..f6ec68108d9 100644 --- a/keyboards/handwired/dactyl_tracer/keyboard.json +++ b/keyboards/handwired/dactyl_tracer/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "mousekey": true, "extrakey": true, "nkro": true diff --git a/keyboards/handwired/dactylmacropad/keyboard.json b/keyboards/handwired/dactylmacropad/keyboard.json index 5d40a240a9f..9cfa0bf6423 100644 --- a/keyboards/handwired/dactylmacropad/keyboard.json +++ b/keyboards/handwired/dactylmacropad/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/daskeyboard/daskeyboard4/keyboard.json b/keyboards/handwired/daskeyboard/daskeyboard4/keyboard.json index d40ef0210b2..888ec24e37e 100644 --- a/keyboards/handwired/daskeyboard/daskeyboard4/keyboard.json +++ b/keyboards/handwired/daskeyboard/daskeyboard4/keyboard.json @@ -9,7 +9,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/dc/mc/001/keyboard.json b/keyboards/handwired/dc/mc/001/keyboard.json index c91df1ca8bc..924829ad7d1 100644 --- a/keyboards/handwired/dc/mc/001/keyboard.json +++ b/keyboards/handwired/dc/mc/001/keyboard.json @@ -22,7 +22,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/handwired/ddg_56/keyboard.json b/keyboards/handwired/ddg_56/keyboard.json index 5d4a21bba65..d4154941595 100644 --- a/keyboards/handwired/ddg_56/keyboard.json +++ b/keyboards/handwired/ddg_56/keyboard.json @@ -11,7 +11,6 @@ "audio": true, "bootmagic": true, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": true diff --git a/keyboards/handwired/dmote/keyboard.json b/keyboards/handwired/dmote/keyboard.json index e6514b17ba5..2928f211526 100644 --- a/keyboards/handwired/dmote/keyboard.json +++ b/keyboards/handwired/dmote/keyboard.json @@ -11,7 +11,6 @@ }, "features": { "bootmagic": true, - "console": false, "command": false, "extrakey": true, "mousekey": true, diff --git a/keyboards/handwired/eagleii/keyboard.json b/keyboards/handwired/eagleii/keyboard.json index 43a4d5a2f7d..7f3f2662d83 100644 --- a/keyboards/handwired/eagleii/keyboard.json +++ b/keyboards/handwired/eagleii/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/elrgo_s/keyboard.json b/keyboards/handwired/elrgo_s/keyboard.json index 2a0e57dabee..cc7258ba5e9 100644 --- a/keyboards/handwired/elrgo_s/keyboard.json +++ b/keyboards/handwired/elrgo_s/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/frankie_macropad/keyboard.json b/keyboards/handwired/frankie_macropad/keyboard.json index f994b1fa484..e00291fc525 100644 --- a/keyboards/handwired/frankie_macropad/keyboard.json +++ b/keyboards/handwired/frankie_macropad/keyboard.json @@ -14,7 +14,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "grave_esc": false, diff --git a/keyboards/handwired/freoduo/keyboard.json b/keyboards/handwired/freoduo/keyboard.json index d9f4ad48088..84939fa1ff1 100644 --- a/keyboards/handwired/freoduo/keyboard.json +++ b/keyboards/handwired/freoduo/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/heisenberg/keyboard.json b/keyboards/handwired/heisenberg/keyboard.json index 460018ef1e5..38e98982c7d 100644 --- a/keyboards/handwired/heisenberg/keyboard.json +++ b/keyboards/handwired/heisenberg/keyboard.json @@ -30,7 +30,6 @@ "audio": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/handwired/hnah108/keyboard.json b/keyboards/handwired/hnah108/keyboard.json index b4daac3faba..f1e89a268de 100644 --- a/keyboards/handwired/hnah108/keyboard.json +++ b/keyboards/handwired/hnah108/keyboard.json @@ -57,7 +57,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/handwired/hnah40/keyboard.json b/keyboards/handwired/hnah40/keyboard.json index e80bbdaec51..ba63a984cc5 100644 --- a/keyboards/handwired/hnah40/keyboard.json +++ b/keyboards/handwired/hnah40/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/hnah40rgb/keyboard.json b/keyboards/handwired/hnah40rgb/keyboard.json index 4775259f35d..233613c5901 100644 --- a/keyboards/handwired/hnah40rgb/keyboard.json +++ b/keyboards/handwired/hnah40rgb/keyboard.json @@ -66,7 +66,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": false, diff --git a/keyboards/handwired/hwpm87/keyboard.json b/keyboards/handwired/hwpm87/keyboard.json index 302dc233165..3eb64e28b1e 100644 --- a/keyboards/handwired/hwpm87/keyboard.json +++ b/keyboards/handwired/hwpm87/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/handwired/iso85k/keyboard.json b/keyboards/handwired/iso85k/keyboard.json index 415bcf54f0c..51e5a347c46 100644 --- a/keyboards/handwired/iso85k/keyboard.json +++ b/keyboards/handwired/iso85k/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/handwired/itstleo9/info.json b/keyboards/handwired/itstleo9/info.json index dba1078701f..f80b516028b 100644 --- a/keyboards/handwired/itstleo9/info.json +++ b/keyboards/handwired/itstleo9/info.json @@ -6,7 +6,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/jn68m/keyboard.json b/keyboards/handwired/jn68m/keyboard.json index d2c506c8c9d..267a190fdc4 100644 --- a/keyboards/handwired/jn68m/keyboard.json +++ b/keyboards/handwired/jn68m/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/jopr/keyboard.json b/keyboards/handwired/jopr/keyboard.json index 36aa7276b53..f47f31e6b2b 100644 --- a/keyboards/handwired/jopr/keyboard.json +++ b/keyboards/handwired/jopr/keyboard.json @@ -20,7 +20,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/handwired/jotanck/keyboard.json b/keyboards/handwired/jotanck/keyboard.json index 94ec9c15e57..c8327f6b6c3 100644 --- a/keyboards/handwired/jotanck/keyboard.json +++ b/keyboards/handwired/jotanck/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/jotlily60/keyboard.json b/keyboards/handwired/jotlily60/keyboard.json index 7a8a2a50d91..802584ae3a7 100644 --- a/keyboards/handwired/jotlily60/keyboard.json +++ b/keyboards/handwired/jotlily60/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/juliet/keyboard.json b/keyboards/handwired/juliet/keyboard.json index 49c2489e66e..00630170549 100644 --- a/keyboards/handwired/juliet/keyboard.json +++ b/keyboards/handwired/juliet/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/handwired/k8split/keyboard.json b/keyboards/handwired/k8split/keyboard.json index 186cf804e1d..9d47ebd7bae 100644 --- a/keyboards/handwired/k8split/keyboard.json +++ b/keyboards/handwired/k8split/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/kbod/keyboard.json b/keyboards/handwired/kbod/keyboard.json index a025952119e..ae6481efe64 100644 --- a/keyboards/handwired/kbod/keyboard.json +++ b/keyboards/handwired/kbod/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/ks63/keyboard.json b/keyboards/handwired/ks63/keyboard.json index da0d2e0a3f3..8b5a6c4e4c4 100644 --- a/keyboards/handwired/ks63/keyboard.json +++ b/keyboards/handwired/ks63/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/leftynumpad/keyboard.json b/keyboards/handwired/leftynumpad/keyboard.json index bb178be5be0..a9d7804364a 100644 --- a/keyboards/handwired/leftynumpad/keyboard.json +++ b/keyboards/handwired/leftynumpad/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/lovelive9/keyboard.json b/keyboards/handwired/lovelive9/keyboard.json index f8962bf7618..cf20b13b203 100644 --- a/keyboards/handwired/lovelive9/keyboard.json +++ b/keyboards/handwired/lovelive9/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/marauder/keyboard.json b/keyboards/handwired/marauder/keyboard.json index aa612c1ff00..6fbdcdc66fe 100644 --- a/keyboards/handwired/marauder/keyboard.json +++ b/keyboards/handwired/marauder/keyboard.json @@ -23,7 +23,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/handwired/marek128b/ergosplit44/keyboard.json b/keyboards/handwired/marek128b/ergosplit44/keyboard.json index 7e14cbc172b..aa9574472ae 100644 --- a/keyboards/handwired/marek128b/ergosplit44/keyboard.json +++ b/keyboards/handwired/marek128b/ergosplit44/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/mechboards_micropad/keyboard.json b/keyboards/handwired/mechboards_micropad/keyboard.json index 7f830771c35..87cffe005a5 100644 --- a/keyboards/handwired/mechboards_micropad/keyboard.json +++ b/keyboards/handwired/mechboards_micropad/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/minorca/keyboard.json b/keyboards/handwired/minorca/keyboard.json index 0d27200cb14..32e3c9f92d7 100644 --- a/keyboards/handwired/minorca/keyboard.json +++ b/keyboards/handwired/minorca/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/mutepad/keyboard.json b/keyboards/handwired/mutepad/keyboard.json index f727569c980..072db498ed4 100644 --- a/keyboards/handwired/mutepad/keyboard.json +++ b/keyboards/handwired/mutepad/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/handwired/nicekey/keyboard.json b/keyboards/handwired/nicekey/keyboard.json index 66866de5488..f166d687740 100644 --- a/keyboards/handwired/nicekey/keyboard.json +++ b/keyboards/handwired/nicekey/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/not_so_minidox/keyboard.json b/keyboards/handwired/not_so_minidox/keyboard.json index abd1f43708a..6e5b5932cef 100644 --- a/keyboards/handwired/not_so_minidox/keyboard.json +++ b/keyboards/handwired/not_so_minidox/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/nozbe_macro/keyboard.json b/keyboards/handwired/nozbe_macro/keyboard.json index 494d52d2217..1f219c9d097 100644 --- a/keyboards/handwired/nozbe_macro/keyboard.json +++ b/keyboards/handwired/nozbe_macro/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/obuwunkunubi/spaget/keyboard.json b/keyboards/handwired/obuwunkunubi/spaget/keyboard.json index 44d22e71d68..3926b96db5e 100644 --- a/keyboards/handwired/obuwunkunubi/spaget/keyboard.json +++ b/keyboards/handwired/obuwunkunubi/spaget/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/handwired/oem_ansi_fullsize/keyboard.json b/keyboards/handwired/oem_ansi_fullsize/keyboard.json index e83b2c61d38..eb63c481b14 100644 --- a/keyboards/handwired/oem_ansi_fullsize/keyboard.json +++ b/keyboards/handwired/oem_ansi_fullsize/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/handwired/onekey/info.json b/keyboards/handwired/onekey/info.json index 577cb68a6ba..f09810129fd 100644 --- a/keyboards/handwired/onekey/info.json +++ b/keyboards/handwired/onekey/info.json @@ -11,7 +11,6 @@ "bootmagic": false, "mousekey": false, "extrakey": true, - "console": false, "command": false, "nkro": false }, diff --git a/keyboards/handwired/orbweaver/keyboard.json b/keyboards/handwired/orbweaver/keyboard.json index 5ba08dfc2d5..d6d599a7040 100644 --- a/keyboards/handwired/orbweaver/keyboard.json +++ b/keyboards/handwired/orbweaver/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/ortho5x14/keyboard.json b/keyboards/handwired/ortho5x14/keyboard.json index 281ad1c0e0c..f0b7e923c11 100644 --- a/keyboards/handwired/ortho5x14/keyboard.json +++ b/keyboards/handwired/ortho5x14/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/p65rgb/keyboard.json b/keyboards/handwired/p65rgb/keyboard.json index a0c75b7e4f4..36a4d8671bd 100644 --- a/keyboards/handwired/p65rgb/keyboard.json +++ b/keyboards/handwired/p65rgb/keyboard.json @@ -164,7 +164,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/petruziamini/keyboard.json b/keyboards/handwired/petruziamini/keyboard.json index 1d864d5dbbb..d76643c6be5 100644 --- a/keyboards/handwired/petruziamini/keyboard.json +++ b/keyboards/handwired/petruziamini/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/phantagom/baragon/keyboard.json b/keyboards/handwired/phantagom/baragon/keyboard.json index 390f114dd9f..529ed949e37 100644 --- a/keyboards/handwired/phantagom/baragon/keyboard.json +++ b/keyboards/handwired/phantagom/baragon/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/phantagom/varan/keyboard.json b/keyboards/handwired/phantagom/varan/keyboard.json index a767d45de03..fcc39918d6e 100644 --- a/keyboards/handwired/phantagom/varan/keyboard.json +++ b/keyboards/handwired/phantagom/varan/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/polly40/keyboard.json b/keyboards/handwired/polly40/keyboard.json index fde1b77aab6..5b2438f9993 100644 --- a/keyboards/handwired/polly40/keyboard.json +++ b/keyboards/handwired/polly40/keyboard.json @@ -19,7 +19,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true }, diff --git a/keyboards/handwired/prime_exl/keyboard.json b/keyboards/handwired/prime_exl/keyboard.json index 13993a61b4d..1462b37b968 100644 --- a/keyboards/handwired/prime_exl/keyboard.json +++ b/keyboards/handwired/prime_exl/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/prime_exl_plus/keyboard.json b/keyboards/handwired/prime_exl_plus/keyboard.json index a234bceb02a..47222e0eb2c 100644 --- a/keyboards/handwired/prime_exl_plus/keyboard.json +++ b/keyboards/handwired/prime_exl_plus/keyboard.json @@ -33,7 +33,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/handwired/pteron/keyboard.json b/keyboards/handwired/pteron/keyboard.json index acaa1b7d62a..ee8d85ec7d6 100644 --- a/keyboards/handwired/pteron/keyboard.json +++ b/keyboards/handwired/pteron/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/pteron38/keyboard.json b/keyboards/handwired/pteron38/keyboard.json index f0c219f2e21..ef9f31f50d5 100644 --- a/keyboards/handwired/pteron38/keyboard.json +++ b/keyboards/handwired/pteron38/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/pteron44/keyboard.json b/keyboards/handwired/pteron44/keyboard.json index 497fd95f587..4ad3b223182 100644 --- a/keyboards/handwired/pteron44/keyboard.json +++ b/keyboards/handwired/pteron44/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/qc60/proto/keyboard.json b/keyboards/handwired/qc60/proto/keyboard.json index b9919c44656..d9ee9858ecb 100644 --- a/keyboards/handwired/qc60/proto/keyboard.json +++ b/keyboards/handwired/qc60/proto/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/handwired/rabijl/rotary_numpad/keyboard.json b/keyboards/handwired/rabijl/rotary_numpad/keyboard.json index dafeec0fc01..a5476735c9d 100644 --- a/keyboards/handwired/rabijl/rotary_numpad/keyboard.json +++ b/keyboards/handwired/rabijl/rotary_numpad/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/riblee_split/keyboard.json b/keyboards/handwired/riblee_split/keyboard.json index 9748bf1ec28..b38219d6458 100644 --- a/keyboards/handwired/riblee_split/keyboard.json +++ b/keyboards/handwired/riblee_split/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scotto34/keyboard.json b/keyboards/handwired/scottokeebs/scotto34/keyboard.json index 6fcce38d709..323c1132a72 100644 --- a/keyboards/handwired/scottokeebs/scotto34/keyboard.json +++ b/keyboards/handwired/scottokeebs/scotto34/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scotto36/keyboard.json b/keyboards/handwired/scottokeebs/scotto36/keyboard.json index fe8ecb6629f..c1c748456df 100644 --- a/keyboards/handwired/scottokeebs/scotto36/keyboard.json +++ b/keyboards/handwired/scottokeebs/scotto36/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scotto37/keyboard.json b/keyboards/handwired/scottokeebs/scotto37/keyboard.json index 579840e8d14..7e45ce3ad58 100644 --- a/keyboards/handwired/scottokeebs/scotto37/keyboard.json +++ b/keyboards/handwired/scottokeebs/scotto37/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scotto40/keyboard.json b/keyboards/handwired/scottokeebs/scotto40/keyboard.json index b10f677c4d3..ce47a5f1bf9 100644 --- a/keyboards/handwired/scottokeebs/scotto40/keyboard.json +++ b/keyboards/handwired/scottokeebs/scotto40/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scotto61/keyboard.json b/keyboards/handwired/scottokeebs/scotto61/keyboard.json index cf321a2e976..f0adfd4081d 100644 --- a/keyboards/handwired/scottokeebs/scotto61/keyboard.json +++ b/keyboards/handwired/scottokeebs/scotto61/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scotto9/keyboard.json b/keyboards/handwired/scottokeebs/scotto9/keyboard.json index a42d2063001..e48fd54686c 100644 --- a/keyboards/handwired/scottokeebs/scotto9/keyboard.json +++ b/keyboards/handwired/scottokeebs/scotto9/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scottoalp/keyboard.json b/keyboards/handwired/scottokeebs/scottoalp/keyboard.json index 5bce6ae62c2..fad006c488a 100644 --- a/keyboards/handwired/scottokeebs/scottoalp/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottoalp/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scottocmd/keyboard.json b/keyboards/handwired/scottokeebs/scottocmd/keyboard.json index a26b95c1db4..cd7372855aa 100644 --- a/keyboards/handwired/scottokeebs/scottocmd/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottocmd/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/scottokeebs/scottodeck/keyboard.json b/keyboards/handwired/scottokeebs/scottodeck/keyboard.json index 0607918cae3..50bdf99321e 100644 --- a/keyboards/handwired/scottokeebs/scottodeck/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottodeck/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/handwired/scottokeebs/scottoergo/keyboard.json b/keyboards/handwired/scottokeebs/scottoergo/keyboard.json index 4f6d955271a..12c1495dc05 100644 --- a/keyboards/handwired/scottokeebs/scottoergo/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottoergo/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scottofly/keyboard.json b/keyboards/handwired/scottokeebs/scottofly/keyboard.json index 5255a5baf49..eda03854979 100644 --- a/keyboards/handwired/scottokeebs/scottofly/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottofly/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scottofrog/keyboard.json b/keyboards/handwired/scottokeebs/scottofrog/keyboard.json index 147f2d8aa77..5d50e893a7f 100644 --- a/keyboards/handwired/scottokeebs/scottofrog/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottofrog/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scottogame/keyboard.json b/keyboards/handwired/scottokeebs/scottogame/keyboard.json index 912cfdfaaa2..694f25fbd54 100644 --- a/keyboards/handwired/scottokeebs/scottogame/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottogame/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/scottokeebs/scottohazard/keyboard.json b/keyboards/handwired/scottokeebs/scottohazard/keyboard.json index 45adcec3c85..34915ca7bc1 100644 --- a/keyboards/handwired/scottokeebs/scottohazard/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottohazard/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scottoinvader/keyboard.json b/keyboards/handwired/scottokeebs/scottoinvader/keyboard.json index 2a9054cd4f6..23ab2e7310c 100644 --- a/keyboards/handwired/scottokeebs/scottoinvader/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottoinvader/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scottokatana/keyboard.json b/keyboards/handwired/scottokeebs/scottokatana/keyboard.json index 4b5779b6d91..1b0369968ca 100644 --- a/keyboards/handwired/scottokeebs/scottokatana/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottokatana/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scottolong/keyboard.json b/keyboards/handwired/scottokeebs/scottolong/keyboard.json index 156772d2139..664d0d47c9d 100644 --- a/keyboards/handwired/scottokeebs/scottolong/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottolong/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scottomacrodeck/keyboard.json b/keyboards/handwired/scottokeebs/scottomacrodeck/keyboard.json index f238564c7fb..beb47c013bd 100644 --- a/keyboards/handwired/scottokeebs/scottomacrodeck/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottomacrodeck/keyboard.json @@ -6,7 +6,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scottomouse/keyboard.json b/keyboards/handwired/scottokeebs/scottomouse/keyboard.json index 36f92f48e26..9c19e864729 100644 --- a/keyboards/handwired/scottokeebs/scottomouse/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottomouse/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scottonum/keyboard.json b/keyboards/handwired/scottokeebs/scottonum/keyboard.json index f71f75d62b5..256768fc600 100644 --- a/keyboards/handwired/scottokeebs/scottonum/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottonum/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scottoslant/keyboard.json b/keyboards/handwired/scottokeebs/scottoslant/keyboard.json index 8c9de39cd6d..a6b1566c980 100644 --- a/keyboards/handwired/scottokeebs/scottoslant/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottoslant/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scottosplit/keyboard.json b/keyboards/handwired/scottokeebs/scottosplit/keyboard.json index 66d24db0cd8..9761aec4d4d 100644 --- a/keyboards/handwired/scottokeebs/scottosplit/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottosplit/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scottostarter/keyboard.json b/keyboards/handwired/scottokeebs/scottostarter/keyboard.json index 5e6a70114bb..03b50b5fdb4 100644 --- a/keyboards/handwired/scottokeebs/scottostarter/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottostarter/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/scottokeebs/scottowing/keyboard.json b/keyboards/handwired/scottokeebs/scottowing/keyboard.json index 91bfaa1f92a..f4f0e32e94d 100644 --- a/keyboards/handwired/scottokeebs/scottowing/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottowing/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/handwired/sejin_eat1010r2/keyboard.json b/keyboards/handwired/sejin_eat1010r2/keyboard.json index e31a0063b5c..26abf44dfd6 100644 --- a/keyboards/handwired/sejin_eat1010r2/keyboard.json +++ b/keyboards/handwired/sejin_eat1010r2/keyboard.json @@ -22,7 +22,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/sick_pad/keyboard.json b/keyboards/handwired/sick_pad/keyboard.json index ce76294a0d6..883f26bafbb 100644 --- a/keyboards/handwired/sick_pad/keyboard.json +++ b/keyboards/handwired/sick_pad/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": false diff --git a/keyboards/handwired/skakunm_dactyl/keyboard.json b/keyboards/handwired/skakunm_dactyl/keyboard.json index d14023e6c0b..c004c75c713 100644 --- a/keyboards/handwired/skakunm_dactyl/keyboard.json +++ b/keyboards/handwired/skakunm_dactyl/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/snatchpad/keyboard.json b/keyboards/handwired/snatchpad/keyboard.json index 61a85551359..09cce2b36c5 100644 --- a/keyboards/handwired/snatchpad/keyboard.json +++ b/keyboards/handwired/snatchpad/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "key_lock": true, diff --git a/keyboards/handwired/space_oddity/keyboard.json b/keyboards/handwired/space_oddity/keyboard.json index a432372d97f..c6186b3b205 100644 --- a/keyboards/handwired/space_oddity/keyboard.json +++ b/keyboards/handwired/space_oddity/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dynamic_macro": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/handwired/split65/promicro/keyboard.json b/keyboards/handwired/split65/promicro/keyboard.json index 8b50ea84297..fa17a7ea1b9 100644 --- a/keyboards/handwired/split65/promicro/keyboard.json +++ b/keyboards/handwired/split65/promicro/keyboard.json @@ -2,7 +2,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": false, diff --git a/keyboards/handwired/split89/keyboard.json b/keyboards/handwired/split89/keyboard.json index fdd092745f0..aa87be8e316 100644 --- a/keyboards/handwired/split89/keyboard.json +++ b/keyboards/handwired/split89/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/starrykeebs/dude09/keyboard.json b/keyboards/handwired/starrykeebs/dude09/keyboard.json index 6e91adeb1ea..a28c3198049 100644 --- a/keyboards/handwired/starrykeebs/dude09/keyboard.json +++ b/keyboards/handwired/starrykeebs/dude09/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true }, diff --git a/keyboards/handwired/steamvan/rev1/keyboard.json b/keyboards/handwired/steamvan/rev1/keyboard.json index 575f5f1a7ca..6949652c3ed 100644 --- a/keyboards/handwired/steamvan/rev1/keyboard.json +++ b/keyboards/handwired/steamvan/rev1/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "leader": true, "mousekey": true, diff --git a/keyboards/handwired/stef9998/split_5x7/rev1/keyboard.json b/keyboards/handwired/stef9998/split_5x7/rev1/keyboard.json index 2dc64b445ea..45c5a057bc8 100644 --- a/keyboards/handwired/stef9998/split_5x7/rev1/keyboard.json +++ b/keyboards/handwired/stef9998/split_5x7/rev1/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/stream_cheap/2x3/keyboard.json b/keyboards/handwired/stream_cheap/2x3/keyboard.json index ff62fa8a271..8329fefd884 100644 --- a/keyboards/handwired/stream_cheap/2x3/keyboard.json +++ b/keyboards/handwired/stream_cheap/2x3/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/stream_cheap/2x4/keyboard.json b/keyboards/handwired/stream_cheap/2x4/keyboard.json index 3f058cfbe4c..aa87b4a7654 100644 --- a/keyboards/handwired/stream_cheap/2x4/keyboard.json +++ b/keyboards/handwired/stream_cheap/2x4/keyboard.json @@ -16,7 +16,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/stream_cheap/2x5/keyboard.json b/keyboards/handwired/stream_cheap/2x5/keyboard.json index 8e2de67e627..744a3c92a46 100644 --- a/keyboards/handwired/stream_cheap/2x5/keyboard.json +++ b/keyboards/handwired/stream_cheap/2x5/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/swiftrax/astro65/keyboard.json b/keyboards/handwired/swiftrax/astro65/keyboard.json index c72c0e4b3de..786e25d4ecb 100644 --- a/keyboards/handwired/swiftrax/astro65/keyboard.json +++ b/keyboards/handwired/swiftrax/astro65/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/swiftrax/bebol/keyboard.json b/keyboards/handwired/swiftrax/bebol/keyboard.json index 242d1b99a99..63d1356fcc6 100644 --- a/keyboards/handwired/swiftrax/bebol/keyboard.json +++ b/keyboards/handwired/swiftrax/bebol/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/swiftrax/beegboy/keyboard.json b/keyboards/handwired/swiftrax/beegboy/keyboard.json index 75edd62c1e4..74c82b22e82 100644 --- a/keyboards/handwired/swiftrax/beegboy/keyboard.json +++ b/keyboards/handwired/swiftrax/beegboy/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/handwired/swiftrax/bumblebee/keyboard.json b/keyboards/handwired/swiftrax/bumblebee/keyboard.json index 6dec52b59a4..e280d9155a9 100644 --- a/keyboards/handwired/swiftrax/bumblebee/keyboard.json +++ b/keyboards/handwired/swiftrax/bumblebee/keyboard.json @@ -17,7 +17,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/handwired/swiftrax/cowfish/keyboard.json b/keyboards/handwired/swiftrax/cowfish/keyboard.json index b4387bb94b1..675670d6b79 100644 --- a/keyboards/handwired/swiftrax/cowfish/keyboard.json +++ b/keyboards/handwired/swiftrax/cowfish/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/handwired/swiftrax/digicarp65/keyboard.json b/keyboards/handwired/swiftrax/digicarp65/keyboard.json index 59442c33ecc..41636da219c 100644 --- a/keyboards/handwired/swiftrax/digicarp65/keyboard.json +++ b/keyboards/handwired/swiftrax/digicarp65/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/handwired/swiftrax/digicarpice/keyboard.json b/keyboards/handwired/swiftrax/digicarpice/keyboard.json index 6d857f5998a..cf77a0d6a14 100644 --- a/keyboards/handwired/swiftrax/digicarpice/keyboard.json +++ b/keyboards/handwired/swiftrax/digicarpice/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/swiftrax/equator/keyboard.json b/keyboards/handwired/swiftrax/equator/keyboard.json index 6a539c786af..f5881aad0a7 100644 --- a/keyboards/handwired/swiftrax/equator/keyboard.json +++ b/keyboards/handwired/swiftrax/equator/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/swiftrax/glacier/keyboard.json b/keyboards/handwired/swiftrax/glacier/keyboard.json index d455cbe2664..c126ec6feb7 100644 --- a/keyboards/handwired/swiftrax/glacier/keyboard.json +++ b/keyboards/handwired/swiftrax/glacier/keyboard.json @@ -28,7 +28,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/handwired/swiftrax/joypad/keyboard.json b/keyboards/handwired/swiftrax/joypad/keyboard.json index b894dcbe546..dc167bb863a 100644 --- a/keyboards/handwired/swiftrax/joypad/keyboard.json +++ b/keyboards/handwired/swiftrax/joypad/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/handwired/swiftrax/koalafications/keyboard.json b/keyboards/handwired/swiftrax/koalafications/keyboard.json index 78686a8e70e..6215e4f06a6 100644 --- a/keyboards/handwired/swiftrax/koalafications/keyboard.json +++ b/keyboards/handwired/swiftrax/koalafications/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/handwired/swiftrax/nodu/keyboard.json b/keyboards/handwired/swiftrax/nodu/keyboard.json index 47c604c35fb..93a7b9b6b81 100644 --- a/keyboards/handwired/swiftrax/nodu/keyboard.json +++ b/keyboards/handwired/swiftrax/nodu/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/swiftrax/pandamic/keyboard.json b/keyboards/handwired/swiftrax/pandamic/keyboard.json index 9fce9c80c52..9cf92812cb0 100644 --- a/keyboards/handwired/swiftrax/pandamic/keyboard.json +++ b/keyboards/handwired/swiftrax/pandamic/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/handwired/swiftrax/the_galleon/keyboard.json b/keyboards/handwired/swiftrax/the_galleon/keyboard.json index 1d87ce18933..2efd3eb3822 100644 --- a/keyboards/handwired/swiftrax/the_galleon/keyboard.json +++ b/keyboards/handwired/swiftrax/the_galleon/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/handwired/swiftrax/unsplit/keyboard.json b/keyboards/handwired/swiftrax/unsplit/keyboard.json index bb18c0dea89..3155282317f 100644 --- a/keyboards/handwired/swiftrax/unsplit/keyboard.json +++ b/keyboards/handwired/swiftrax/unsplit/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/swiftrax/walter/keyboard.json b/keyboards/handwired/swiftrax/walter/keyboard.json index cbf603a4ffc..e5c42b2aff7 100644 --- a/keyboards/handwired/swiftrax/walter/keyboard.json +++ b/keyboards/handwired/swiftrax/walter/keyboard.json @@ -29,7 +29,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/handwired/tennie/keyboard.json b/keyboards/handwired/tennie/keyboard.json index 05143c1cb01..2b56ae379ad 100644 --- a/keyboards/handwired/tennie/keyboard.json +++ b/keyboards/handwired/tennie/keyboard.json @@ -32,7 +32,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/handwired/terminus_mini/keyboard.json b/keyboards/handwired/terminus_mini/keyboard.json index 0e1fdcee91a..0d495bf55bc 100644 --- a/keyboards/handwired/terminus_mini/keyboard.json +++ b/keyboards/handwired/terminus_mini/keyboard.json @@ -14,7 +14,6 @@ "features": { "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/tkk/keyboard.json b/keyboards/handwired/tkk/keyboard.json index 3cf67ce24e9..7f95b49a045 100644 --- a/keyboards/handwired/tkk/keyboard.json +++ b/keyboards/handwired/tkk/keyboard.json @@ -6,7 +6,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/traveller/keyboard.json b/keyboards/handwired/traveller/keyboard.json index 31161efe641..65214cd6188 100644 --- a/keyboards/handwired/traveller/keyboard.json +++ b/keyboards/handwired/traveller/keyboard.json @@ -17,7 +17,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/handwired/tsubasa/keyboard.json b/keyboards/handwired/tsubasa/keyboard.json index 31e6bb72ccf..74ae9348f43 100644 --- a/keyboards/handwired/tsubasa/keyboard.json +++ b/keyboards/handwired/tsubasa/keyboard.json @@ -28,7 +28,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/handwired/twig/twig50/keyboard.json b/keyboards/handwired/twig/twig50/keyboard.json index 67054b6795f..8403e62f0b5 100644 --- a/keyboards/handwired/twig/twig50/keyboard.json +++ b/keyboards/handwired/twig/twig50/keyboard.json @@ -15,7 +15,6 @@ "audio": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/uthol/rev1/keyboard.json b/keyboards/handwired/uthol/rev1/keyboard.json index dd5746e884d..c03503bb4d7 100644 --- a/keyboards/handwired/uthol/rev1/keyboard.json +++ b/keyboards/handwired/uthol/rev1/keyboard.json @@ -9,7 +9,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/handwired/uthol/rev2/keyboard.json b/keyboards/handwired/uthol/rev2/keyboard.json index 95ca5946a99..f1ee97ece3f 100644 --- a/keyboards/handwired/uthol/rev2/keyboard.json +++ b/keyboards/handwired/uthol/rev2/keyboard.json @@ -18,7 +18,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/handwired/videowriter/keyboard.json b/keyboards/handwired/videowriter/keyboard.json index f82a0cd07ea..8ffd4a608c6 100644 --- a/keyboards/handwired/videowriter/keyboard.json +++ b/keyboards/handwired/videowriter/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/wwa/helios/keyboard.json b/keyboards/handwired/wwa/helios/keyboard.json index af894cad642..4da75c03894 100644 --- a/keyboards/handwired/wwa/helios/keyboard.json +++ b/keyboards/handwired/wwa/helios/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/wwa/kepler/keyboard.json b/keyboards/handwired/wwa/kepler/keyboard.json index 2b1ac393371..67acae2c7de 100644 --- a/keyboards/handwired/wwa/kepler/keyboard.json +++ b/keyboards/handwired/wwa/kepler/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/wwa/mercury/keyboard.json b/keyboards/handwired/wwa/mercury/keyboard.json index 2a31875b014..a621286b27c 100644 --- a/keyboards/handwired/wwa/mercury/keyboard.json +++ b/keyboards/handwired/wwa/mercury/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/wwa/soyuz/keyboard.json b/keyboards/handwired/wwa/soyuz/keyboard.json index 17837827540..072ed1628b4 100644 --- a/keyboards/handwired/wwa/soyuz/keyboard.json +++ b/keyboards/handwired/wwa/soyuz/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/wwa/soyuzxl/keyboard.json b/keyboards/handwired/wwa/soyuzxl/keyboard.json index 98f4bc649dc..fa67e37ad97 100644 --- a/keyboards/handwired/wwa/soyuzxl/keyboard.json +++ b/keyboards/handwired/wwa/soyuzxl/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/handwired/z150/keyboard.json b/keyboards/handwired/z150/keyboard.json index e3e7b5c7692..f8b9e6451d3 100644 --- a/keyboards/handwired/z150/keyboard.json +++ b/keyboards/handwired/z150/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/handwired/zergo/keyboard.json b/keyboards/handwired/zergo/keyboard.json index 7ee2cd4774e..44bd80c0cdb 100644 --- a/keyboards/handwired/zergo/keyboard.json +++ b/keyboards/handwired/zergo/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": false, "mousekey": false, "nkro": true diff --git a/keyboards/handwired/ziyoulang_k3_mod/keyboard.json b/keyboards/handwired/ziyoulang_k3_mod/keyboard.json index decb70c78ef..855fabeb8f6 100644 --- a/keyboards/handwired/ziyoulang_k3_mod/keyboard.json +++ b/keyboards/handwired/ziyoulang_k3_mod/keyboard.json @@ -9,7 +9,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/hardlineworks/otd_plus/keyboard.json b/keyboards/hardlineworks/otd_plus/keyboard.json index 38d9f40ae8c..f084fabead7 100644 --- a/keyboards/hardlineworks/otd_plus/keyboard.json +++ b/keyboards/hardlineworks/otd_plus/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/hardwareabstraction/handwire/keyboard.json b/keyboards/hardwareabstraction/handwire/keyboard.json index 225712dcc4f..e8753055086 100644 --- a/keyboards/hardwareabstraction/handwire/keyboard.json +++ b/keyboards/hardwareabstraction/handwire/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/heliar/wm1_hotswap/keyboard.json b/keyboards/heliar/wm1_hotswap/keyboard.json index 704710d9489..748c2c53538 100644 --- a/keyboards/heliar/wm1_hotswap/keyboard.json +++ b/keyboards/heliar/wm1_hotswap/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/heliotrope/keyboard.json b/keyboards/heliotrope/keyboard.json index e173c785e08..c1701b07b2f 100644 --- a/keyboards/heliotrope/keyboard.json +++ b/keyboards/heliotrope/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/hfdkb/ac001/keyboard.json b/keyboards/hfdkb/ac001/keyboard.json index b5fd8eb4a99..4317f7071d4 100644 --- a/keyboards/hfdkb/ac001/keyboard.json +++ b/keyboards/hfdkb/ac001/keyboard.json @@ -23,7 +23,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/hhkb_lite_2/keyboard.json b/keyboards/hhkb_lite_2/keyboard.json index df69582b650..f9315e8c83f 100644 --- a/keyboards/hhkb_lite_2/keyboard.json +++ b/keyboards/hhkb_lite_2/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/hidtech/bastyl/keyboard.json b/keyboards/hidtech/bastyl/keyboard.json index 1155caa3203..77f27cf8e6b 100644 --- a/keyboards/hidtech/bastyl/keyboard.json +++ b/keyboards/hidtech/bastyl/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/hifumi/keyboard.json b/keyboards/hifumi/keyboard.json index 457c8a73985..1da0a7a3e0d 100644 --- a/keyboards/hifumi/keyboard.json +++ b/keyboards/hifumi/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": false, diff --git a/keyboards/hineybush/h08_ocelot/keyboard.json b/keyboards/hineybush/h08_ocelot/keyboard.json index 46de9a63f8e..69ef5d22801 100644 --- a/keyboards/hineybush/h08_ocelot/keyboard.json +++ b/keyboards/hineybush/h08_ocelot/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/hineybush/h101/keyboard.json b/keyboards/hineybush/h101/keyboard.json index 7d17c1922f0..92648973995 100644 --- a/keyboards/hineybush/h101/keyboard.json +++ b/keyboards/hineybush/h101/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/hineybush/h60/keyboard.json b/keyboards/hineybush/h60/keyboard.json index 3ee6d66c17f..53fd5175a13 100644 --- a/keyboards/hineybush/h60/keyboard.json +++ b/keyboards/hineybush/h60/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/hineybush/h65/keyboard.json b/keyboards/hineybush/h65/keyboard.json index 0c85733e7d5..838c005bea1 100644 --- a/keyboards/hineybush/h65/keyboard.json +++ b/keyboards/hineybush/h65/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/hineybush/h65_hotswap/keyboard.json b/keyboards/hineybush/h65_hotswap/keyboard.json index 12e7f653300..92937029759 100644 --- a/keyboards/hineybush/h65_hotswap/keyboard.json +++ b/keyboards/hineybush/h65_hotswap/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/hineybush/h660s/keyboard.json b/keyboards/hineybush/h660s/keyboard.json index c1ca43de5bd..c5e28561aa6 100644 --- a/keyboards/hineybush/h660s/keyboard.json +++ b/keyboards/hineybush/h660s/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/hineybush/h75_singa/keyboard.json b/keyboards/hineybush/h75_singa/keyboard.json index 02d2b13d09c..c819d514929 100644 --- a/keyboards/hineybush/h75_singa/keyboard.json +++ b/keyboards/hineybush/h75_singa/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/hineybush/h87_g2/keyboard.json b/keyboards/hineybush/h87_g2/keyboard.json index ae97c5aaddd..8d70fd2e3d3 100644 --- a/keyboards/hineybush/h87_g2/keyboard.json +++ b/keyboards/hineybush/h87_g2/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/hineybush/h87a/keyboard.json b/keyboards/hineybush/h87a/keyboard.json index a03727e4f55..67734ea87d9 100644 --- a/keyboards/hineybush/h87a/keyboard.json +++ b/keyboards/hineybush/h87a/keyboard.json @@ -14,7 +14,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/hineybush/h88/keyboard.json b/keyboards/hineybush/h88/keyboard.json index c623416e7aa..d8cceb2e480 100644 --- a/keyboards/hineybush/h88/keyboard.json +++ b/keyboards/hineybush/h88/keyboard.json @@ -14,7 +14,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/hineybush/h88_g2/keyboard.json b/keyboards/hineybush/h88_g2/keyboard.json index a23216bd86b..f4e19247b4f 100644 --- a/keyboards/hineybush/h88_g2/keyboard.json +++ b/keyboards/hineybush/h88_g2/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/hineybush/ibis/keyboard.json b/keyboards/hineybush/ibis/keyboard.json index 40cba1c8f93..bc8069d74de 100644 --- a/keyboards/hineybush/ibis/keyboard.json +++ b/keyboards/hineybush/ibis/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/hineybush/physix/keyboard.json b/keyboards/hineybush/physix/keyboard.json index ee6c5f39784..cbe073d2d31 100644 --- a/keyboards/hineybush/physix/keyboard.json +++ b/keyboards/hineybush/physix/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/hineybush/sm68/keyboard.json b/keyboards/hineybush/sm68/keyboard.json index f499fa605c2..3224a7906f4 100644 --- a/keyboards/hineybush/sm68/keyboard.json +++ b/keyboards/hineybush/sm68/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/holyswitch/lightweight65/keyboard.json b/keyboards/holyswitch/lightweight65/keyboard.json index bc2fdc9504b..237b40d447b 100644 --- a/keyboards/holyswitch/lightweight65/keyboard.json +++ b/keyboards/holyswitch/lightweight65/keyboard.json @@ -18,7 +18,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true }, diff --git a/keyboards/holyswitch/southpaw75/keyboard.json b/keyboards/holyswitch/southpaw75/keyboard.json index e735895f20a..3215c525a01 100644 --- a/keyboards/holyswitch/southpaw75/keyboard.json +++ b/keyboards/holyswitch/southpaw75/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/horrortroll/caticorn/rev1/hotswap/keyboard.json b/keyboards/horrortroll/caticorn/rev1/hotswap/keyboard.json index ecd3c8a0433..2ec09c45c8c 100644 --- a/keyboards/horrortroll/caticorn/rev1/hotswap/keyboard.json +++ b/keyboards/horrortroll/caticorn/rev1/hotswap/keyboard.json @@ -18,7 +18,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true }, diff --git a/keyboards/horrortroll/caticorn/rev1/solder/keyboard.json b/keyboards/horrortroll/caticorn/rev1/solder/keyboard.json index d14278f9894..673c13b3827 100644 --- a/keyboards/horrortroll/caticorn/rev1/solder/keyboard.json +++ b/keyboards/horrortroll/caticorn/rev1/solder/keyboard.json @@ -18,7 +18,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true }, diff --git a/keyboards/horrortroll/chinese_pcb/black_e65/keyboard.json b/keyboards/horrortroll/chinese_pcb/black_e65/keyboard.json index 6e8f7a00ff2..18405f251f9 100644 --- a/keyboards/horrortroll/chinese_pcb/black_e65/keyboard.json +++ b/keyboards/horrortroll/chinese_pcb/black_e65/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/horrortroll/chinese_pcb/devil68_pro/keyboard.json b/keyboards/horrortroll/chinese_pcb/devil68_pro/keyboard.json index f19a3387210..d157fca7be9 100644 --- a/keyboards/horrortroll/chinese_pcb/devil68_pro/keyboard.json +++ b/keyboards/horrortroll/chinese_pcb/devil68_pro/keyboard.json @@ -60,7 +60,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/horrortroll/nyx/rev1/keyboard.json b/keyboards/horrortroll/nyx/rev1/keyboard.json index f3b859de0a9..2e2d3a02430 100644 --- a/keyboards/horrortroll/nyx/rev1/keyboard.json +++ b/keyboards/horrortroll/nyx/rev1/keyboard.json @@ -18,7 +18,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "rgb_matrix": true diff --git a/keyboards/horrortroll/paws60/keyboard.json b/keyboards/horrortroll/paws60/keyboard.json index fb158d57910..edf59c6ef9e 100644 --- a/keyboards/horrortroll/paws60/keyboard.json +++ b/keyboards/horrortroll/paws60/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/hotdox76v2/keyboard.json b/keyboards/hotdox76v2/keyboard.json index 438099827e9..a2957b21770 100644 --- a/keyboards/hotdox76v2/keyboard.json +++ b/keyboards/hotdox76v2/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/hp69/keyboard.json b/keyboards/hp69/keyboard.json index 577606be5df..f0f079a0ac7 100644 --- a/keyboards/hp69/keyboard.json +++ b/keyboards/hp69/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/hubble/keyboard.json b/keyboards/hubble/keyboard.json index 2b75235cbb1..15f729e5c2a 100644 --- a/keyboards/hubble/keyboard.json +++ b/keyboards/hubble/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/huytbt/h50/keyboard.json b/keyboards/huytbt/h50/keyboard.json index cd62966e58a..d36d18d4b8e 100644 --- a/keyboards/huytbt/h50/keyboard.json +++ b/keyboards/huytbt/h50/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/ianklug/grooveboard/keyboard.json b/keyboards/ianklug/grooveboard/keyboard.json index ce7ac8cc227..a974d172e0d 100644 --- a/keyboards/ianklug/grooveboard/keyboard.json +++ b/keyboards/ianklug/grooveboard/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/ibm/model_m/ashpil_usbc/keyboard.json b/keyboards/ibm/model_m/ashpil_usbc/keyboard.json index a43e16a04c3..c4102166100 100644 --- a/keyboards/ibm/model_m/ashpil_usbc/keyboard.json +++ b/keyboards/ibm/model_m/ashpil_usbc/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/ibm/model_m/modelh/keyboard.json b/keyboards/ibm/model_m/modelh/keyboard.json index 6b9cf20c1d5..0f2f8580763 100644 --- a/keyboards/ibm/model_m/modelh/keyboard.json +++ b/keyboards/ibm/model_m/modelh/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/ibm/model_m/teensy2/keyboard.json b/keyboards/ibm/model_m/teensy2/keyboard.json index 173f9e772f5..297e422fd11 100644 --- a/keyboards/ibm/model_m/teensy2/keyboard.json +++ b/keyboards/ibm/model_m/teensy2/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/ibm/model_m/yugo_m/keyboard.json b/keyboards/ibm/model_m/yugo_m/keyboard.json index 10fe637f03a..a05ae6feff6 100644 --- a/keyboards/ibm/model_m/yugo_m/keyboard.json +++ b/keyboards/ibm/model_m/yugo_m/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/ibm/model_m_ssk/teensypp_ssk/keyboard.json b/keyboards/ibm/model_m_ssk/teensypp_ssk/keyboard.json index 5994d820f45..50ce4031309 100644 --- a/keyboards/ibm/model_m_ssk/teensypp_ssk/keyboard.json +++ b/keyboards/ibm/model_m_ssk/teensypp_ssk/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/ibnuda/alicia_cook/keyboard.json b/keyboards/ibnuda/alicia_cook/keyboard.json index fd3b23285ca..c83a5b43d37 100644 --- a/keyboards/ibnuda/alicia_cook/keyboard.json +++ b/keyboards/ibnuda/alicia_cook/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": false diff --git a/keyboards/ibnuda/gurindam/keyboard.json b/keyboards/ibnuda/gurindam/keyboard.json index 1cf74068b6a..e2693b7f21b 100644 --- a/keyboards/ibnuda/gurindam/keyboard.json +++ b/keyboards/ibnuda/gurindam/keyboard.json @@ -28,7 +28,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/icebreaker/hotswap/keyboard.json b/keyboards/icebreaker/hotswap/keyboard.json index 5102da60c18..29daba253c9 100644 --- a/keyboards/icebreaker/hotswap/keyboard.json +++ b/keyboards/icebreaker/hotswap/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/idank/sweeq/keyboard.json b/keyboards/idank/sweeq/keyboard.json index a9b8d7411ef..36a9ceeb129 100644 --- a/keyboards/idank/sweeq/keyboard.json +++ b/keyboards/idank/sweeq/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/idb/idb_60/keyboard.json b/keyboards/idb/idb_60/keyboard.json index 22ed07b71bc..e739a2dbf40 100644 --- a/keyboards/idb/idb_60/keyboard.json +++ b/keyboards/idb/idb_60/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/idobao/id42/keyboard.json b/keyboards/idobao/id42/keyboard.json index 14db7641eab..96893564009 100644 --- a/keyboards/idobao/id42/keyboard.json +++ b/keyboards/idobao/id42/keyboard.json @@ -8,7 +8,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "rgb_matrix": true diff --git a/keyboards/idobao/id61/keyboard.json b/keyboards/idobao/id61/keyboard.json index cb55f1750dd..b712d276f2b 100644 --- a/keyboards/idobao/id61/keyboard.json +++ b/keyboards/idobao/id61/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/idobao/id63/keyboard.json b/keyboards/idobao/id63/keyboard.json index 1969ca4cf75..f7e5a7743a7 100644 --- a/keyboards/idobao/id63/keyboard.json +++ b/keyboards/idobao/id63/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/idobao/id67/keyboard.json b/keyboards/idobao/id67/keyboard.json index 64c3623fd69..f4cc52495cc 100644 --- a/keyboards/idobao/id67/keyboard.json +++ b/keyboards/idobao/id67/keyboard.json @@ -9,7 +9,6 @@ "mousekey": true, "extrakey": true, "command": false, - "console": false, "nkro": true, "rgb_matrix": true }, diff --git a/keyboards/idobao/id75/v2/keyboard.json b/keyboards/idobao/id75/v2/keyboard.json index 69cbc037c43..053ea68f604 100644 --- a/keyboards/idobao/id75/v2/keyboard.json +++ b/keyboards/idobao/id75/v2/keyboard.json @@ -52,7 +52,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/idobao/id80/v2/info.json b/keyboards/idobao/id80/v2/info.json index 66123fcb2a4..6f063fe32b8 100644 --- a/keyboards/idobao/id80/v2/info.json +++ b/keyboards/idobao/id80/v2/info.json @@ -49,7 +49,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "backlight": true, diff --git a/keyboards/idobao/id80/v3/ansi/keyboard.json b/keyboards/idobao/id80/v3/ansi/keyboard.json index 6200c2e88c9..03d54f5e300 100644 --- a/keyboards/idobao/id80/v3/ansi/keyboard.json +++ b/keyboards/idobao/id80/v3/ansi/keyboard.json @@ -8,7 +8,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "rgb_matrix": true diff --git a/keyboards/idobao/id87/v1/keyboard.json b/keyboards/idobao/id87/v1/keyboard.json index 5ae86f8d5e1..854f3456160 100644 --- a/keyboards/idobao/id87/v1/keyboard.json +++ b/keyboards/idobao/id87/v1/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/idobao/id87/v2/keyboard.json b/keyboards/idobao/id87/v2/keyboard.json index 0ece932274f..f21fd70b7b0 100644 --- a/keyboards/idobao/id87/v2/keyboard.json +++ b/keyboards/idobao/id87/v2/keyboard.json @@ -8,7 +8,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "rgb_matrix": true diff --git a/keyboards/idobao/id96/keyboard.json b/keyboards/idobao/id96/keyboard.json index c06dfdd4542..abd9b61958b 100644 --- a/keyboards/idobao/id96/keyboard.json +++ b/keyboards/idobao/id96/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/idobao/montex/v1/keyboard.json b/keyboards/idobao/montex/v1/keyboard.json index 2d9f503832f..cbece8a3925 100644 --- a/keyboards/idobao/montex/v1/keyboard.json +++ b/keyboards/idobao/montex/v1/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/idobao/montex/v1rgb/keyboard.json b/keyboards/idobao/montex/v1rgb/keyboard.json index f4c18764b13..58369f71692 100755 --- a/keyboards/idobao/montex/v1rgb/keyboard.json +++ b/keyboards/idobao/montex/v1rgb/keyboard.json @@ -38,7 +38,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/idobao/montex/v2/keyboard.json b/keyboards/idobao/montex/v2/keyboard.json index 6c00fd538d5..27f6c02d764 100755 --- a/keyboards/idobao/montex/v2/keyboard.json +++ b/keyboards/idobao/montex/v2/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/idyllic/tinny50_rgb/keyboard.json b/keyboards/idyllic/tinny50_rgb/keyboard.json index b3eb34a4c0c..f7bd204567e 100644 --- a/keyboards/idyllic/tinny50_rgb/keyboard.json +++ b/keyboards/idyllic/tinny50_rgb/keyboard.json @@ -13,7 +13,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "rgb_matrix": true diff --git a/keyboards/igloo/keyboard.json b/keyboards/igloo/keyboard.json index cf64823104f..ceb7a03a753 100644 --- a/keyboards/igloo/keyboard.json +++ b/keyboards/igloo/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/illuminati/is0/keyboard.json b/keyboards/illuminati/is0/keyboard.json index 78bbe029abe..33f7208a47c 100644 --- a/keyboards/illuminati/is0/keyboard.json +++ b/keyboards/illuminati/is0/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/illusion/rosa/keyboard.json b/keyboards/illusion/rosa/keyboard.json index f1077ecdbde..932b1a91d65 100644 --- a/keyboards/illusion/rosa/keyboard.json +++ b/keyboards/illusion/rosa/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/ilumkb/primus75/keyboard.json b/keyboards/ilumkb/primus75/keyboard.json index 52d29820970..44411872542 100644 --- a/keyboards/ilumkb/primus75/keyboard.json +++ b/keyboards/ilumkb/primus75/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ilumkb/simpler61/keyboard.json b/keyboards/ilumkb/simpler61/keyboard.json index a9fc9913c8c..10e182dac82 100644 --- a/keyboards/ilumkb/simpler61/keyboard.json +++ b/keyboards/ilumkb/simpler61/keyboard.json @@ -50,7 +50,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/ilumkb/simpler64/keyboard.json b/keyboards/ilumkb/simpler64/keyboard.json index 30ec37c9779..240d0d67c22 100644 --- a/keyboards/ilumkb/simpler64/keyboard.json +++ b/keyboards/ilumkb/simpler64/keyboard.json @@ -50,7 +50,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/ilumkb/volcano660/keyboard.json b/keyboards/ilumkb/volcano660/keyboard.json index e353c8cce05..616098da019 100644 --- a/keyboards/ilumkb/volcano660/keyboard.json +++ b/keyboards/ilumkb/volcano660/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/inett_studio/sqx/hotswap/keyboard.json b/keyboards/inett_studio/sqx/hotswap/keyboard.json index 6c04e4fbe57..f4b1bcc4ce9 100644 --- a/keyboards/inett_studio/sqx/hotswap/keyboard.json +++ b/keyboards/inett_studio/sqx/hotswap/keyboard.json @@ -66,7 +66,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/inett_studio/sqx/universal/keyboard.json b/keyboards/inett_studio/sqx/universal/keyboard.json index 7c7b4e479e6..7f27ca0cc9f 100644 --- a/keyboards/inett_studio/sqx/universal/keyboard.json +++ b/keyboards/inett_studio/sqx/universal/keyboard.json @@ -66,7 +66,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/inland/mk47/keyboard.json b/keyboards/inland/mk47/keyboard.json index de6f792f6df..a15701db26b 100644 --- a/keyboards/inland/mk47/keyboard.json +++ b/keyboards/inland/mk47/keyboard.json @@ -15,7 +15,6 @@ "bootmagic": true, "mousekey": false, "extrakey": true, - "console": false, "command": false, "nkro": true, "rgb_matrix": true diff --git a/keyboards/inland/v83p/keyboard.json b/keyboards/inland/v83p/keyboard.json index 139cfb693bf..96b6cd95512 100644 --- a/keyboards/inland/v83p/keyboard.json +++ b/keyboards/inland/v83p/keyboard.json @@ -22,7 +22,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/input_club/k_type/keyboard.json b/keyboards/input_club/k_type/keyboard.json index 3769bdae836..cc93783dc91 100644 --- a/keyboards/input_club/k_type/keyboard.json +++ b/keyboards/input_club/k_type/keyboard.json @@ -58,7 +58,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": true diff --git a/keyboards/input_club/whitefox/keyboard.json b/keyboards/input_club/whitefox/keyboard.json index 1d3799b8675..60f2dca4d06 100644 --- a/keyboards/input_club/whitefox/keyboard.json +++ b/keyboards/input_club/whitefox/keyboard.json @@ -113,7 +113,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "led_matrix": true, "mousekey": true, diff --git a/keyboards/io_mini1800/keyboard.json b/keyboards/io_mini1800/keyboard.json index 884d17aa069..d0333c75cf7 100644 --- a/keyboards/io_mini1800/keyboard.json +++ b/keyboards/io_mini1800/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/irene/keyboard.json b/keyboards/irene/keyboard.json index b9189bc864d..7844a663772 100644 --- a/keyboards/irene/keyboard.json +++ b/keyboards/irene/keyboard.json @@ -28,7 +28,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/iriskeyboards/keyboard.json b/keyboards/iriskeyboards/keyboard.json index c568e8e232e..b8c5195ae98 100644 --- a/keyboards/iriskeyboards/keyboard.json +++ b/keyboards/iriskeyboards/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/itstleo/itstleo40/keyboard.json b/keyboards/itstleo/itstleo40/keyboard.json index 637f8e5d7eb..10ffa78e07e 100644 --- a/keyboards/itstleo/itstleo40/keyboard.json +++ b/keyboards/itstleo/itstleo40/keyboard.json @@ -8,7 +8,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "leader": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/j80/keyboard.json b/keyboards/j80/keyboard.json index c7fee838344..91e9683c26a 100644 --- a/keyboards/j80/keyboard.json +++ b/keyboards/j80/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/jacky_studio/s7_elephant/rev1/keyboard.json b/keyboards/jacky_studio/s7_elephant/rev1/keyboard.json index cbbb27ca04c..d96d52514e2 100644 --- a/keyboards/jacky_studio/s7_elephant/rev1/keyboard.json +++ b/keyboards/jacky_studio/s7_elephant/rev1/keyboard.json @@ -32,7 +32,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/jacky_studio/s7_elephant/rev2/keyboard.json b/keyboards/jacky_studio/s7_elephant/rev2/keyboard.json index 23112f5b339..c6c5ef06c58 100644 --- a/keyboards/jacky_studio/s7_elephant/rev2/keyboard.json +++ b/keyboards/jacky_studio/s7_elephant/rev2/keyboard.json @@ -15,7 +15,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/jadookb/jkb65/info.json b/keyboards/jadookb/jkb65/info.json index c4a44a0d744..527016499c2 100644 --- a/keyboards/jadookb/jkb65/info.json +++ b/keyboards/jadookb/jkb65/info.json @@ -8,7 +8,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/janus/keyboard.json b/keyboards/janus/keyboard.json index 8c4f522b861..c50b5ef19ad 100644 --- a/keyboards/janus/keyboard.json +++ b/keyboards/janus/keyboard.json @@ -19,7 +19,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/jaykeeb/aumz_work/info.json b/keyboards/jaykeeb/aumz_work/info.json index 8a1107127a0..2b859584869 100644 --- a/keyboards/jaykeeb/aumz_work/info.json +++ b/keyboards/jaykeeb/aumz_work/info.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/jaykeeb/jk60/keyboard.json b/keyboards/jaykeeb/jk60/keyboard.json index 813f4d1e870..7d0aff2dfd4 100644 --- a/keyboards/jaykeeb/jk60/keyboard.json +++ b/keyboards/jaykeeb/jk60/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/jaykeeb/jk60rgb/keyboard.json b/keyboards/jaykeeb/jk60rgb/keyboard.json index 45a708615ee..1bcbbf05614 100644 --- a/keyboards/jaykeeb/jk60rgb/keyboard.json +++ b/keyboards/jaykeeb/jk60rgb/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/jaykeeb/jk65/keyboard.json b/keyboards/jaykeeb/jk65/keyboard.json index 320725509ee..484e449b260 100644 --- a/keyboards/jaykeeb/jk65/keyboard.json +++ b/keyboards/jaykeeb/jk65/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/jaykeeb/joker/keyboard.json b/keyboards/jaykeeb/joker/keyboard.json index 3d3663d38d4..82df51cbbf7 100644 --- a/keyboards/jaykeeb/joker/keyboard.json +++ b/keyboards/jaykeeb/joker/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/jaykeeb/kamigakushi/keyboard.json b/keyboards/jaykeeb/kamigakushi/keyboard.json index 72c6d19937c..b9011713100 100644 --- a/keyboards/jaykeeb/kamigakushi/keyboard.json +++ b/keyboards/jaykeeb/kamigakushi/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/jaykeeb/orba/keyboard.json b/keyboards/jaykeeb/orba/keyboard.json index 8d6a27d90b2..4af3d6a9c2d 100644 --- a/keyboards/jaykeeb/orba/keyboard.json +++ b/keyboards/jaykeeb/orba/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/jaykeeb/sebelas/keyboard.json b/keyboards/jaykeeb/sebelas/keyboard.json index 4e5dc822b92..d07889fc4f2 100644 --- a/keyboards/jaykeeb/sebelas/keyboard.json +++ b/keyboards/jaykeeb/sebelas/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/jaykeeb/skyline/keyboard.json b/keyboards/jaykeeb/skyline/keyboard.json index 66d3390fc8e..c81c37acab1 100644 --- a/keyboards/jaykeeb/skyline/keyboard.json +++ b/keyboards/jaykeeb/skyline/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/jaykeeb/sriwedari70/keyboard.json b/keyboards/jaykeeb/sriwedari70/keyboard.json index 20f7e00ba41..a1a548901e3 100644 --- a/keyboards/jaykeeb/sriwedari70/keyboard.json +++ b/keyboards/jaykeeb/sriwedari70/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/jaykeeb/tokki/keyboard.json b/keyboards/jaykeeb/tokki/keyboard.json index 82c8056ebc8..48a046e7841 100644 --- a/keyboards/jaykeeb/tokki/keyboard.json +++ b/keyboards/jaykeeb/tokki/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/jc65/v32a/keyboard.json b/keyboards/jc65/v32a/keyboard.json index 4cb14e54d4a..cfdbec86630 100644 --- a/keyboards/jc65/v32a/keyboard.json +++ b/keyboards/jc65/v32a/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/jc65/v32u4/keyboard.json b/keyboards/jc65/v32u4/keyboard.json index 0abdbf6a185..4f681f2d1b5 100644 --- a/keyboards/jc65/v32u4/keyboard.json +++ b/keyboards/jc65/v32u4/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/jd40/keyboard.json b/keyboards/jd40/keyboard.json index 062972d43f4..22badb3508f 100644 --- a/keyboards/jd40/keyboard.json +++ b/keyboards/jd40/keyboard.json @@ -30,7 +30,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/jels/boaty/keyboard.json b/keyboards/jels/boaty/keyboard.json index 6bfcf25f168..3e02a2d9ce6 100644 --- a/keyboards/jels/boaty/keyboard.json +++ b/keyboards/jels/boaty/keyboard.json @@ -14,7 +14,6 @@ "nkro": false, "mousekey": false, "extrakey": true, - "console": false, "command": false }, "qmk": { diff --git a/keyboards/jels/jels60/v1/keyboard.json b/keyboards/jels/jels60/v1/keyboard.json index 1f7b45adef8..87a7667b3d2 100644 --- a/keyboards/jels/jels60/v1/keyboard.json +++ b/keyboards/jels/jels60/v1/keyboard.json @@ -10,7 +10,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": false }, diff --git a/keyboards/jels/jels60/v2/keyboard.json b/keyboards/jels/jels60/v2/keyboard.json index 4ab87eff494..9d8de45cb91 100644 --- a/keyboards/jels/jels60/v2/keyboard.json +++ b/keyboards/jels/jels60/v2/keyboard.json @@ -5,7 +5,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": false }, diff --git a/keyboards/jels/jels88/keyboard.json b/keyboards/jels/jels88/keyboard.json index 430396ccf1a..aa71b5692d0 100644 --- a/keyboards/jels/jels88/keyboard.json +++ b/keyboards/jels/jels88/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/jkdlab/binary_monkey/keyboard.json b/keyboards/jkdlab/binary_monkey/keyboard.json index c1aad15cb43..43ba02e3d55 100644 --- a/keyboards/jkdlab/binary_monkey/keyboard.json +++ b/keyboards/jkdlab/binary_monkey/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/jkeys_design/gentleman65/keyboard.json b/keyboards/jkeys_design/gentleman65/keyboard.json index 150cf4d351a..5f4019a5aad 100644 --- a/keyboards/jkeys_design/gentleman65/keyboard.json +++ b/keyboards/jkeys_design/gentleman65/keyboard.json @@ -29,7 +29,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/jkeys_design/gentleman65_se_s/keyboard.json b/keyboards/jkeys_design/gentleman65_se_s/keyboard.json index cd4570a765e..7b1d10ce43c 100644 --- a/keyboards/jkeys_design/gentleman65_se_s/keyboard.json +++ b/keyboards/jkeys_design/gentleman65_se_s/keyboard.json @@ -29,7 +29,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/jolofsor/denial75/keyboard.json b/keyboards/jolofsor/denial75/keyboard.json index 14fbb073285..f2e8216c21c 100644 --- a/keyboards/jolofsor/denial75/keyboard.json +++ b/keyboards/jolofsor/denial75/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/joshajohnson/hub20/keyboard.json b/keyboards/joshajohnson/hub20/keyboard.json index 44a3361838a..d374e2f4044 100644 --- a/keyboards/joshajohnson/hub20/keyboard.json +++ b/keyboards/joshajohnson/hub20/keyboard.json @@ -33,7 +33,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/jukaie/jk01/keyboard.json b/keyboards/jukaie/jk01/keyboard.json index 3a6845258a8..452d9bf5fa8 100644 --- a/keyboards/jukaie/jk01/keyboard.json +++ b/keyboards/jukaie/jk01/keyboard.json @@ -22,7 +22,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/k34/keyboard.json b/keyboards/k34/keyboard.json index b9a69fb667f..205382cff6e 100644 --- a/keyboards/k34/keyboard.json +++ b/keyboards/k34/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/kabedon/kabedon78s/keyboard.json b/keyboards/kabedon/kabedon78s/keyboard.json index 393dcd4b3ec..dc3ea77791f 100644 --- a/keyboards/kabedon/kabedon78s/keyboard.json +++ b/keyboards/kabedon/kabedon78s/keyboard.json @@ -30,7 +30,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/kabedon/kabedon980/keyboard.json b/keyboards/kabedon/kabedon980/keyboard.json index b8e100ceac0..4209a04fd05 100644 --- a/keyboards/kabedon/kabedon980/keyboard.json +++ b/keyboards/kabedon/kabedon980/keyboard.json @@ -35,7 +35,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/kabedon/kabedon98e/keyboard.json b/keyboards/kabedon/kabedon98e/keyboard.json index 85cc538d7df..3684248dddc 100644 --- a/keyboards/kabedon/kabedon98e/keyboard.json +++ b/keyboards/kabedon/kabedon98e/keyboard.json @@ -30,7 +30,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/kagizaraya/halberd/keyboard.json b/keyboards/kagizaraya/halberd/keyboard.json index da825562718..bf30654d08e 100644 --- a/keyboards/kagizaraya/halberd/keyboard.json +++ b/keyboards/kagizaraya/halberd/keyboard.json @@ -33,7 +33,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/kagizaraya/miniaxe/keyboard.json b/keyboards/kagizaraya/miniaxe/keyboard.json index 52ecbbac5a8..e568cf6effc 100644 --- a/keyboards/kagizaraya/miniaxe/keyboard.json +++ b/keyboards/kagizaraya/miniaxe/keyboard.json @@ -38,7 +38,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/kakunpc/rabbit_capture_plan/keyboard.json b/keyboards/kakunpc/rabbit_capture_plan/keyboard.json index 8bf5d708c9e..de6adc85296 100644 --- a/keyboards/kakunpc/rabbit_capture_plan/keyboard.json +++ b/keyboards/kakunpc/rabbit_capture_plan/keyboard.json @@ -34,7 +34,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/kalakos/bahrnob/keyboard.json b/keyboards/kalakos/bahrnob/keyboard.json index 2e127e555a0..a3a559b8cee 100644 --- a/keyboards/kalakos/bahrnob/keyboard.json +++ b/keyboards/kalakos/bahrnob/keyboard.json @@ -18,7 +18,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "encoder": true diff --git a/keyboards/kaly/kaly42/keyboard.json b/keyboards/kaly/kaly42/keyboard.json index 3115d051dfb..15a4fc6b5b7 100644 --- a/keyboards/kaly/kaly42/keyboard.json +++ b/keyboards/kaly/kaly42/keyboard.json @@ -6,7 +6,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kapcave/arya/keyboard.json b/keyboards/kapcave/arya/keyboard.json index 986e9eec8b9..a3893b44b2f 100644 --- a/keyboards/kapcave/arya/keyboard.json +++ b/keyboards/kapcave/arya/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/kapcave/paladinpad/info.json b/keyboards/kapcave/paladinpad/info.json index 1a639180d01..678f0945241 100644 --- a/keyboards/kapcave/paladinpad/info.json +++ b/keyboards/kapcave/paladinpad/info.json @@ -6,7 +6,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/karn/keyboard.json b/keyboards/karn/keyboard.json index 1ddd8e5a98c..1c2c3a43010 100644 --- a/keyboards/karn/keyboard.json +++ b/keyboards/karn/keyboard.json @@ -5,7 +5,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kb_elmo/67mk_e/keyboard.json b/keyboards/kb_elmo/67mk_e/keyboard.json index 046b08c667b..a2c747d61fa 100644 --- a/keyboards/kb_elmo/67mk_e/keyboard.json +++ b/keyboards/kb_elmo/67mk_e/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/kb_elmo/noah_avr/keyboard.json b/keyboards/kb_elmo/noah_avr/keyboard.json index 48cbb6e5e2f..918adbdd37b 100644 --- a/keyboards/kb_elmo/noah_avr/keyboard.json +++ b/keyboards/kb_elmo/noah_avr/keyboard.json @@ -30,7 +30,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/kb_elmo/qez/keyboard.json b/keyboards/kb_elmo/qez/keyboard.json index fa53745b31c..cefc2e1b518 100644 --- a/keyboards/kb_elmo/qez/keyboard.json +++ b/keyboards/kb_elmo/qez/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/kb_elmo/vertex/keyboard.json b/keyboards/kb_elmo/vertex/keyboard.json index c40e87ad628..b3562e93156 100644 --- a/keyboards/kb_elmo/vertex/keyboard.json +++ b/keyboards/kb_elmo/vertex/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/kbdcraft/adam64/keyboard.json b/keyboards/kbdcraft/adam64/keyboard.json index d7a96fa5779..19e22c37ccc 100644 --- a/keyboards/kbdcraft/adam64/keyboard.json +++ b/keyboards/kbdcraft/adam64/keyboard.json @@ -20,7 +20,6 @@ "mousekey": true, "extrakey": true, "nkro": true, - "console": false, "command": false, "rgb_matrix": true }, diff --git a/keyboards/kbdfans/baguette66/rgb/keyboard.json b/keyboards/kbdfans/baguette66/rgb/keyboard.json index 61579473cd9..1ca4fefb4b5 100644 --- a/keyboards/kbdfans/baguette66/rgb/keyboard.json +++ b/keyboards/kbdfans/baguette66/rgb/keyboard.json @@ -67,7 +67,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/kbdfans/baguette66/soldered/keyboard.json b/keyboards/kbdfans/baguette66/soldered/keyboard.json index f9c87dad06e..45b744cd667 100644 --- a/keyboards/kbdfans/baguette66/soldered/keyboard.json +++ b/keyboards/kbdfans/baguette66/soldered/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/kbdfans/bella/soldered/keyboard.json b/keyboards/kbdfans/bella/soldered/keyboard.json index e99a4fb224a..cbecfa60569 100644 --- a/keyboards/kbdfans/bella/soldered/keyboard.json +++ b/keyboards/kbdfans/bella/soldered/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kbdfans/boop65/rgb/keyboard.json b/keyboards/kbdfans/boop65/rgb/keyboard.json index 6fbd28816b2..5fd5585844e 100644 --- a/keyboards/kbdfans/boop65/rgb/keyboard.json +++ b/keyboards/kbdfans/boop65/rgb/keyboard.json @@ -64,7 +64,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/kbdfans/bounce/75/hotswap/keyboard.json b/keyboards/kbdfans/bounce/75/hotswap/keyboard.json index 478b4bc372e..592ba0de52a 100644 --- a/keyboards/kbdfans/bounce/75/hotswap/keyboard.json +++ b/keyboards/kbdfans/bounce/75/hotswap/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kbdfans/bounce/75/soldered/keyboard.json b/keyboards/kbdfans/bounce/75/soldered/keyboard.json index 73c6d63d3ad..c82833d700c 100644 --- a/keyboards/kbdfans/bounce/75/soldered/keyboard.json +++ b/keyboards/kbdfans/bounce/75/soldered/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kbdfans/bounce/pad/keyboard.json b/keyboards/kbdfans/bounce/pad/keyboard.json index d95010954b9..96a52145519 100644 --- a/keyboards/kbdfans/bounce/pad/keyboard.json +++ b/keyboards/kbdfans/bounce/pad/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kbdfans/d45/v2/keyboard.json b/keyboards/kbdfans/d45/v2/keyboard.json index 6eadfa0860a..95211e097b1 100644 --- a/keyboards/kbdfans/d45/v2/keyboard.json +++ b/keyboards/kbdfans/d45/v2/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kbdfans/epoch80/keyboard.json b/keyboards/kbdfans/epoch80/keyboard.json index 08ed973b927..6e7ce41653e 100644 --- a/keyboards/kbdfans/epoch80/keyboard.json +++ b/keyboards/kbdfans/epoch80/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/kbdfans/kbd19x/keyboard.json b/keyboards/kbdfans/kbd19x/keyboard.json index 080cf82d808..cd57436a117 100644 --- a/keyboards/kbdfans/kbd19x/keyboard.json +++ b/keyboards/kbdfans/kbd19x/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kbdfans/kbd67/mkii_soldered/keyboard.json b/keyboards/kbdfans/kbd67/mkii_soldered/keyboard.json index f4bc2437d95..06f92384839 100644 --- a/keyboards/kbdfans/kbd67/mkii_soldered/keyboard.json +++ b/keyboards/kbdfans/kbd67/mkii_soldered/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v1/keyboard.json b/keyboards/kbdfans/kbd67/mkiirgb/v1/keyboard.json index a90fd8b26b9..e2efb6287b6 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v1/keyboard.json +++ b/keyboards/kbdfans/kbd67/mkiirgb/v1/keyboard.json @@ -45,7 +45,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v2/keyboard.json b/keyboards/kbdfans/kbd67/mkiirgb/v2/keyboard.json index 561c4df2ac0..b43d6344048 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v2/keyboard.json +++ b/keyboards/kbdfans/kbd67/mkiirgb/v2/keyboard.json @@ -42,7 +42,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v4/keyboard.json b/keyboards/kbdfans/kbd67/mkiirgb/v4/keyboard.json index 79853d2d0f4..719d5d3d836 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v4/keyboard.json +++ b/keyboards/kbdfans/kbd67/mkiirgb/v4/keyboard.json @@ -61,7 +61,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/kbdfans/kbd67/rev2/keyboard.json b/keyboards/kbdfans/kbd67/rev2/keyboard.json index 1190d3bd8ac..118da461b67 100644 --- a/keyboards/kbdfans/kbd67/rev2/keyboard.json +++ b/keyboards/kbdfans/kbd67/rev2/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kbdfans/kbd75hs/keyboard.json b/keyboards/kbdfans/kbd75hs/keyboard.json index 3545f2357db..dca52de53d2 100644 --- a/keyboards/kbdfans/kbd75hs/keyboard.json +++ b/keyboards/kbdfans/kbd75hs/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kbdfans/kbd75rgb/keyboard.json b/keyboards/kbdfans/kbd75rgb/keyboard.json index b30fb22126b..1076626ec7c 100644 --- a/keyboards/kbdfans/kbd75rgb/keyboard.json +++ b/keyboards/kbdfans/kbd75rgb/keyboard.json @@ -70,7 +70,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/kbdfans/kbd8x/keyboard.json b/keyboards/kbdfans/kbd8x/keyboard.json index b8d34f8277c..3e6aa88d4d0 100644 --- a/keyboards/kbdfans/kbd8x/keyboard.json +++ b/keyboards/kbdfans/kbd8x/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/kbdfans/kbd8x_mk2/keyboard.json b/keyboards/kbdfans/kbd8x_mk2/keyboard.json index b5d1ee6a258..ff566fd8641 100644 --- a/keyboards/kbdfans/kbd8x_mk2/keyboard.json +++ b/keyboards/kbdfans/kbd8x_mk2/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kbdfans/kbdmini/keyboard.json b/keyboards/kbdfans/kbdmini/keyboard.json index 2f470973092..3cc5a73d17e 100644 --- a/keyboards/kbdfans/kbdmini/keyboard.json +++ b/keyboards/kbdfans/kbdmini/keyboard.json @@ -42,7 +42,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kbdfans/kbdpad/mk1/keyboard.json b/keyboards/kbdfans/kbdpad/mk1/keyboard.json index 10de0d04366..0fa231c3032 100644 --- a/keyboards/kbdfans/kbdpad/mk1/keyboard.json +++ b/keyboards/kbdfans/kbdpad/mk1/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/kbdfans/kbdpad/mk2/keyboard.json b/keyboards/kbdfans/kbdpad/mk2/keyboard.json index c4af51f0344..6c7dba12934 100644 --- a/keyboards/kbdfans/kbdpad/mk2/keyboard.json +++ b/keyboards/kbdfans/kbdpad/mk2/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kbdfans/kbdpad/mk3/keyboard.json b/keyboards/kbdfans/kbdpad/mk3/keyboard.json index 7c741f7633a..726a8c7a088 100644 --- a/keyboards/kbdfans/kbdpad/mk3/keyboard.json +++ b/keyboards/kbdfans/kbdpad/mk3/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kbdfans/maja/keyboard.json b/keyboards/kbdfans/maja/keyboard.json index a1ba96af51d..91c8aec845a 100644 --- a/keyboards/kbdfans/maja/keyboard.json +++ b/keyboards/kbdfans/maja/keyboard.json @@ -47,7 +47,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kbdfans/maja_soldered/keyboard.json b/keyboards/kbdfans/maja_soldered/keyboard.json index 7879fd99620..5864cc445d6 100644 --- a/keyboards/kbdfans/maja_soldered/keyboard.json +++ b/keyboards/kbdfans/maja_soldered/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kbdfans/odin/rgb/keyboard.json b/keyboards/kbdfans/odin/rgb/keyboard.json index f1a0e7b8e82..aadd2cb29fe 100644 --- a/keyboards/kbdfans/odin/rgb/keyboard.json +++ b/keyboards/kbdfans/odin/rgb/keyboard.json @@ -65,7 +65,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kbdfans/odin/soldered/keyboard.json b/keyboards/kbdfans/odin/soldered/keyboard.json index 4832e90096c..60a5c0d3a35 100644 --- a/keyboards/kbdfans/odin/soldered/keyboard.json +++ b/keyboards/kbdfans/odin/soldered/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kbdfans/odin/v2/keyboard.json b/keyboards/kbdfans/odin/v2/keyboard.json index 4ac47226bcf..9136aae1e30 100644 --- a/keyboards/kbdfans/odin/v2/keyboard.json +++ b/keyboards/kbdfans/odin/v2/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kbdfans/odin75/keyboard.json b/keyboards/kbdfans/odin75/keyboard.json index b6fb124c93b..0fd942f5153 100644 --- a/keyboards/kbdfans/odin75/keyboard.json +++ b/keyboards/kbdfans/odin75/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kbdfans/phaseone/keyboard.json b/keyboards/kbdfans/phaseone/keyboard.json index ff6b3fe6d1b..35ce8ab42a7 100644 --- a/keyboards/kbdfans/phaseone/keyboard.json +++ b/keyboards/kbdfans/phaseone/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/kbdfans/tiger80/keyboard.json b/keyboards/kbdfans/tiger80/keyboard.json index ccef4de81a9..ce6a83dd8f3 100644 --- a/keyboards/kbdfans/tiger80/keyboard.json +++ b/keyboards/kbdfans/tiger80/keyboard.json @@ -6,7 +6,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kbnordic/nordic60/rev_a/keyboard.json b/keyboards/kbnordic/nordic60/rev_a/keyboard.json index 0b1da369b36..711b0d5312d 100644 --- a/keyboards/kbnordic/nordic60/rev_a/keyboard.json +++ b/keyboards/kbnordic/nordic60/rev_a/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/kbnordic/nordic65/rev_a/keyboard.json b/keyboards/kbnordic/nordic65/rev_a/keyboard.json index 8cd90949ea9..f636b0ca4e5 100644 --- a/keyboards/kbnordic/nordic65/rev_a/keyboard.json +++ b/keyboards/kbnordic/nordic65/rev_a/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "key_lock": true, "mousekey": false, diff --git a/keyboards/kc60se/keyboard.json b/keyboards/kc60se/keyboard.json index c7c18b4a762..e265667f073 100644 --- a/keyboards/kc60se/keyboard.json +++ b/keyboards/kc60se/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/keebio/bfo9000/keyboard.json b/keyboards/keebio/bfo9000/keyboard.json index 2dcc6076a08..08d9997d435 100644 --- a/keyboards/keebio/bfo9000/keyboard.json +++ b/keyboards/keebio/bfo9000/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/keebio/dilly/keyboard.json b/keyboards/keebio/dilly/keyboard.json index 223228a8e0d..cbd3be1b1cf 100644 --- a/keyboards/keebio/dilly/keyboard.json +++ b/keyboards/keebio/dilly/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/keebio/fourier/keyboard.json b/keyboards/keebio/fourier/keyboard.json index 057598a259a..ae4985787d6 100644 --- a/keyboards/keebio/fourier/keyboard.json +++ b/keyboards/keebio/fourier/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/keebio/iris/rev5/keyboard.json b/keyboards/keebio/iris/rev5/keyboard.json index 043ecdb95e2..cfaeecfeb20 100644 --- a/keyboards/keebio/iris/rev5/keyboard.json +++ b/keyboards/keebio/iris/rev5/keyboard.json @@ -8,7 +8,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/keebio/laplace/keyboard.json b/keyboards/keebio/laplace/keyboard.json index 22cced0ee33..00609eaa12c 100644 --- a/keyboards/keebio/laplace/keyboard.json +++ b/keyboards/keebio/laplace/keyboard.json @@ -29,7 +29,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/keebio/nyquist/rev1/keyboard.json b/keyboards/keebio/nyquist/rev1/keyboard.json index ef20252c53b..f684332bdb7 100644 --- a/keyboards/keebio/nyquist/rev1/keyboard.json +++ b/keyboards/keebio/nyquist/rev1/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/keebio/nyquist/rev2/keyboard.json b/keyboards/keebio/nyquist/rev2/keyboard.json index d327d74599a..627f0cd0031 100644 --- a/keyboards/keebio/nyquist/rev2/keyboard.json +++ b/keyboards/keebio/nyquist/rev2/keyboard.json @@ -8,7 +8,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/keebio/nyquist/rev3/keyboard.json b/keyboards/keebio/nyquist/rev3/keyboard.json index f1aa1522f76..b67ad820b92 100644 --- a/keyboards/keebio/nyquist/rev3/keyboard.json +++ b/keyboards/keebio/nyquist/rev3/keyboard.json @@ -8,7 +8,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/keebio/sinc/info.json b/keyboards/keebio/sinc/info.json index aa1e08f39dd..794eac6a24b 100644 --- a/keyboards/keebio/sinc/info.json +++ b/keyboards/keebio/sinc/info.json @@ -8,7 +8,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/keebio/stick/keyboard.json b/keyboards/keebio/stick/keyboard.json index 2e2b3539abc..dbd5062f74b 100644 --- a/keyboards/keebio/stick/keyboard.json +++ b/keyboards/keebio/stick/keyboard.json @@ -88,7 +88,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keebio/tragicforce68/keyboard.json b/keyboards/keebio/tragicforce68/keyboard.json index f2f27a7194a..f82e1808fb9 100644 --- a/keyboards/keebio/tragicforce68/keyboard.json +++ b/keyboards/keebio/tragicforce68/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/keebio/wtf60/keyboard.json b/keyboards/keebio/wtf60/keyboard.json index 2c14740eff3..8947dac9046 100644 --- a/keyboards/keebio/wtf60/keyboard.json +++ b/keyboards/keebio/wtf60/keyboard.json @@ -35,7 +35,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/keebmonkey/kbmg68/keyboard.json b/keyboards/keebmonkey/kbmg68/keyboard.json index 110da77d376..4de7098b2db 100644 --- a/keyboards/keebmonkey/kbmg68/keyboard.json +++ b/keyboards/keebmonkey/kbmg68/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": false, diff --git a/keyboards/keebsforall/freebird60/keyboard.json b/keyboards/keebsforall/freebird60/keyboard.json index 813275857d0..d97752753a0 100644 --- a/keyboards/keebsforall/freebird60/keyboard.json +++ b/keyboards/keebsforall/freebird60/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/keebsforall/freebird75/keyboard.json b/keyboards/keebsforall/freebird75/keyboard.json index 2bd9579f604..5a4d3deee9a 100644 --- a/keyboards/keebsforall/freebird75/keyboard.json +++ b/keyboards/keebsforall/freebird75/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/keebsforall/freebirdnp/lite/keyboard.json b/keyboards/keebsforall/freebirdnp/lite/keyboard.json index af986614269..21b1aafe42d 100644 --- a/keyboards/keebsforall/freebirdnp/lite/keyboard.json +++ b/keyboards/keebsforall/freebirdnp/lite/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/keebsforall/freebirdnp/pro/keyboard.json b/keyboards/keebsforall/freebirdnp/pro/keyboard.json index 8eae2f89f91..7afbcc4ca26 100644 --- a/keyboards/keebsforall/freebirdnp/pro/keyboard.json +++ b/keyboards/keebsforall/freebirdnp/pro/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keebsforall/freebirdtkl/keyboard.json b/keyboards/keebsforall/freebirdtkl/keyboard.json index 37a6243beb8..e58ce7ac0f8 100644 --- a/keyboards/keebsforall/freebirdtkl/keyboard.json +++ b/keyboards/keebsforall/freebirdtkl/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/keebzdotnet/fme/keyboard.json b/keyboards/keebzdotnet/fme/keyboard.json index 5d6a908a810..e850843cb1a 100644 --- a/keyboards/keebzdotnet/fme/keyboard.json +++ b/keyboards/keebzdotnet/fme/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/keebzdotnet/wazowski/keyboard.json b/keyboards/keebzdotnet/wazowski/keyboard.json index 150fa3c7900..5e64c99180c 100644 --- a/keyboards/keebzdotnet/wazowski/keyboard.json +++ b/keyboards/keebzdotnet/wazowski/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/kegen/gboy/keyboard.json b/keyboards/kegen/gboy/keyboard.json index 8c611d6664f..eeba8f1d0c3 100644 --- a/keyboards/kegen/gboy/keyboard.json +++ b/keyboards/kegen/gboy/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kelwin/utopia88/keyboard.json b/keyboards/kelwin/utopia88/keyboard.json index fb4640e2bbd..86ff707be94 100644 --- a/keyboards/kelwin/utopia88/keyboard.json +++ b/keyboards/kelwin/utopia88/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/kepler_33/proto/keyboard.json b/keyboards/kepler_33/proto/keyboard.json index 1ac13e81f82..e4a0e85576e 100644 --- a/keyboards/kepler_33/proto/keyboard.json +++ b/keyboards/kepler_33/proto/keyboard.json @@ -6,7 +6,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/keybage/radpad/keyboard.json b/keyboards/keybage/radpad/keyboard.json index 6fa5163beee..798a3c49c3e 100644 --- a/keyboards/keybage/radpad/keyboard.json +++ b/keyboards/keybage/radpad/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keybee/keybee65/keyboard.json b/keyboards/keybee/keybee65/keyboard.json index 56c5d331758..8583523f816 100644 --- a/keyboards/keybee/keybee65/keyboard.json +++ b/keyboards/keybee/keybee65/keyboard.json @@ -20,7 +20,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/keycapsss/o4l_5x12/keyboard.json b/keyboards/keycapsss/o4l_5x12/keyboard.json index d83bc58795b..5a516adca09 100644 --- a/keyboards/keycapsss/o4l_5x12/keyboard.json +++ b/keyboards/keycapsss/o4l_5x12/keyboard.json @@ -32,7 +32,6 @@ "features": { "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/keycapsss/plaid_pad/rev1/keyboard.json b/keyboards/keycapsss/plaid_pad/rev1/keyboard.json index e4a8a8d3c80..83fefde3e78 100644 --- a/keyboards/keycapsss/plaid_pad/rev1/keyboard.json +++ b/keyboards/keycapsss/plaid_pad/rev1/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/keycapsss/plaid_pad/rev2/keyboard.json b/keyboards/keycapsss/plaid_pad/rev2/keyboard.json index 8dc84d4ee83..9805679c533 100644 --- a/keyboards/keycapsss/plaid_pad/rev2/keyboard.json +++ b/keyboards/keycapsss/plaid_pad/rev2/keyboard.json @@ -14,7 +14,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/keycapsss/plaid_pad/rev3/keyboard.json b/keyboards/keycapsss/plaid_pad/rev3/keyboard.json index 4e1d0712874..e00cd3a43bb 100644 --- a/keyboards/keycapsss/plaid_pad/rev3/keyboard.json +++ b/keyboards/keycapsss/plaid_pad/rev3/keyboard.json @@ -14,7 +14,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/keychron/c1_pro/info.json b/keyboards/keychron/c1_pro/info.json index e40c2b99604..2c5f1af58f6 100644 --- a/keyboards/keychron/c1_pro/info.json +++ b/keyboards/keychron/c1_pro/info.json @@ -16,7 +16,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/c1_pro_v2/info.json b/keyboards/keychron/c1_pro_v2/info.json index bec58b2a8d2..b25b5d6f88b 100644 --- a/keyboards/keychron/c1_pro_v2/info.json +++ b/keyboards/keychron/c1_pro_v2/info.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/c2_pro/info.json b/keyboards/keychron/c2_pro/info.json index 4b11fc213a4..21ee1d6b2e1 100644 --- a/keyboards/keychron/c2_pro/info.json +++ b/keyboards/keychron/c2_pro/info.json @@ -16,7 +16,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/c2_pro_v2/info.json b/keyboards/keychron/c2_pro_v2/info.json index b2101518005..c981d9ab4ba 100644 --- a/keyboards/keychron/c2_pro_v2/info.json +++ b/keyboards/keychron/c2_pro_v2/info.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/c3_pro/info.json b/keyboards/keychron/c3_pro/info.json index 2bcd155c1bf..1e24b32ceba 100644 --- a/keyboards/keychron/c3_pro/info.json +++ b/keyboards/keychron/c3_pro/info.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/keychron/q0/info.json b/keyboards/keychron/q0/info.json index a3017468311..d5e0ba22e04 100644 --- a/keyboards/keychron/q0/info.json +++ b/keyboards/keychron/q0/info.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/keychron/q11/info.json b/keyboards/keychron/q11/info.json index 73c42338768..75274318f3f 100755 --- a/keyboards/keychron/q11/info.json +++ b/keyboards/keychron/q11/info.json @@ -22,7 +22,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/q1v1/info.json b/keyboards/keychron/q1v1/info.json index 0107c60b9ce..c8db1789526 100644 --- a/keyboards/keychron/q1v1/info.json +++ b/keyboards/keychron/q1v1/info.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/q1v2/info.json b/keyboards/keychron/q1v2/info.json index 7eb7038696c..b7b612b613c 100644 --- a/keyboards/keychron/q1v2/info.json +++ b/keyboards/keychron/q1v2/info.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/keychron/q2/info.json b/keyboards/keychron/q2/info.json index d0bb48d7cbc..87f405cb172 100644 --- a/keyboards/keychron/q2/info.json +++ b/keyboards/keychron/q2/info.json @@ -15,7 +15,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/q3/info.json b/keyboards/keychron/q3/info.json index a07fc670d82..2b8b89dc87f 100644 --- a/keyboards/keychron/q3/info.json +++ b/keyboards/keychron/q3/info.json @@ -15,7 +15,6 @@ "bootmagic": true, "dip_switch": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/keychron/q4/info.json b/keyboards/keychron/q4/info.json index 4b9f246b4c8..b09d4cb790a 100644 --- a/keyboards/keychron/q4/info.json +++ b/keyboards/keychron/q4/info.json @@ -19,7 +19,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/keychron/q5/info.json b/keyboards/keychron/q5/info.json index b35996d3412..2140b8226d8 100644 --- a/keyboards/keychron/q5/info.json +++ b/keyboards/keychron/q5/info.json @@ -15,7 +15,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/q60/ansi/keyboard.json b/keyboards/keychron/q60/ansi/keyboard.json index 4d6f6808905..a98781c9d0c 100644 --- a/keyboards/keychron/q60/ansi/keyboard.json +++ b/keyboards/keychron/q60/ansi/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/q7/info.json b/keyboards/keychron/q7/info.json index 6b8a94ce991..90dd59f3f46 100644 --- a/keyboards/keychron/q7/info.json +++ b/keyboards/keychron/q7/info.json @@ -18,7 +18,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/q8/info.json b/keyboards/keychron/q8/info.json index da4c9c6f79b..626942c1086 100644 --- a/keyboards/keychron/q8/info.json +++ b/keyboards/keychron/q8/info.json @@ -18,7 +18,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/q9/info.json b/keyboards/keychron/q9/info.json index 322fcfa1ade..e92a91cb31f 100644 --- a/keyboards/keychron/q9/info.json +++ b/keyboards/keychron/q9/info.json @@ -15,7 +15,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/q9_plus/info.json b/keyboards/keychron/q9_plus/info.json index 927f5094a6b..7f73c690c8f 100755 --- a/keyboards/keychron/q9_plus/info.json +++ b/keyboards/keychron/q9_plus/info.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "dip_switch": true, diff --git a/keyboards/keychron/s1/ansi/rgb/keyboard.json b/keyboards/keychron/s1/ansi/rgb/keyboard.json index 23ea66071eb..e226473b439 100644 --- a/keyboards/keychron/s1/ansi/rgb/keyboard.json +++ b/keyboards/keychron/s1/ansi/rgb/keyboard.json @@ -38,7 +38,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/s1/ansi/white/keyboard.json b/keyboards/keychron/s1/ansi/white/keyboard.json index 40cc99a23ff..8915afafdfe 100644 --- a/keyboards/keychron/s1/ansi/white/keyboard.json +++ b/keyboards/keychron/s1/ansi/white/keyboard.json @@ -124,7 +124,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dip_switch": true, "extrakey": true, "led_matrix": true, diff --git a/keyboards/keychron/v2/ansi/keyboard.json b/keyboards/keychron/v2/ansi/keyboard.json index 015aae6e3ed..b1377cd60b7 100644 --- a/keyboards/keychron/v2/ansi/keyboard.json +++ b/keyboards/keychron/v2/ansi/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/v2/ansi_encoder/keyboard.json b/keyboards/keychron/v2/ansi_encoder/keyboard.json index ca62bab1484..e23268e60d8 100644 --- a/keyboards/keychron/v2/ansi_encoder/keyboard.json +++ b/keyboards/keychron/v2/ansi_encoder/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dip_switch": true, "encoder": true, "extrakey": true, diff --git a/keyboards/keychron/v2/iso/keyboard.json b/keyboards/keychron/v2/iso/keyboard.json index 827f6132479..118840b2df3 100644 --- a/keyboards/keychron/v2/iso/keyboard.json +++ b/keyboards/keychron/v2/iso/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/v2/iso_encoder/keyboard.json b/keyboards/keychron/v2/iso_encoder/keyboard.json index 10774d6974b..0af482cd832 100644 --- a/keyboards/keychron/v2/iso_encoder/keyboard.json +++ b/keyboards/keychron/v2/iso_encoder/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dip_switch": true, "encoder": true, "extrakey": true, diff --git a/keyboards/keychron/v2/jis/keyboard.json b/keyboards/keychron/v2/jis/keyboard.json index c7759440092..c62a60075df 100644 --- a/keyboards/keychron/v2/jis/keyboard.json +++ b/keyboards/keychron/v2/jis/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/v2/jis_encoder/keyboard.json b/keyboards/keychron/v2/jis_encoder/keyboard.json index c783b3553e2..cf81648ed59 100644 --- a/keyboards/keychron/v2/jis_encoder/keyboard.json +++ b/keyboards/keychron/v2/jis_encoder/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dip_switch": true, "encoder": true, "extrakey": true, diff --git a/keyboards/keychron/v3/ansi/keyboard.json b/keyboards/keychron/v3/ansi/keyboard.json index b8489a43b40..e339ef6fc67 100644 --- a/keyboards/keychron/v3/ansi/keyboard.json +++ b/keyboards/keychron/v3/ansi/keyboard.json @@ -6,7 +6,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/v3/jis/keyboard.json b/keyboards/keychron/v3/jis/keyboard.json index f00716b2db1..b7179af2739 100644 --- a/keyboards/keychron/v3/jis/keyboard.json +++ b/keyboards/keychron/v3/jis/keyboard.json @@ -6,7 +6,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/v4/ansi/keyboard.json b/keyboards/keychron/v4/ansi/keyboard.json index d66eb3f9562..201517128ce 100644 --- a/keyboards/keychron/v4/ansi/keyboard.json +++ b/keyboards/keychron/v4/ansi/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/v4/iso/keyboard.json b/keyboards/keychron/v4/iso/keyboard.json index c7854307e4e..8e906694d2f 100644 --- a/keyboards/keychron/v4/iso/keyboard.json +++ b/keyboards/keychron/v4/iso/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/v7/ansi/keyboard.json b/keyboards/keychron/v7/ansi/keyboard.json index a60b46dc971..7ce47faa04a 100644 --- a/keyboards/keychron/v7/ansi/keyboard.json +++ b/keyboards/keychron/v7/ansi/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/v7/iso/keyboard.json b/keyboards/keychron/v7/iso/keyboard.json index 0022222635b..ee9bd794b30 100644 --- a/keyboards/keychron/v7/iso/keyboard.json +++ b/keyboards/keychron/v7/iso/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/v8/ansi/keyboard.json b/keyboards/keychron/v8/ansi/keyboard.json index 7827270228d..2abc2e8c1ae 100644 --- a/keyboards/keychron/v8/ansi/keyboard.json +++ b/keyboards/keychron/v8/ansi/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/v8/ansi_encoder/keyboard.json b/keyboards/keychron/v8/ansi_encoder/keyboard.json index a5d84021d08..7f88d39a838 100644 --- a/keyboards/keychron/v8/ansi_encoder/keyboard.json +++ b/keyboards/keychron/v8/ansi_encoder/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dip_switch": true, "encoder": true, "extrakey": true, diff --git a/keyboards/keychron/v8/iso/keyboard.json b/keyboards/keychron/v8/iso/keyboard.json index 89310111f55..81d5c41fe39 100644 --- a/keyboards/keychron/v8/iso/keyboard.json +++ b/keyboards/keychron/v8/iso/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dip_switch": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keychron/v8/iso_encoder/keyboard.json b/keyboards/keychron/v8/iso_encoder/keyboard.json index 2e50de74212..a440192b1ba 100644 --- a/keyboards/keychron/v8/iso_encoder/keyboard.json +++ b/keyboards/keychron/v8/iso_encoder/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "dip_switch": true, "encoder": true, "extrakey": true, diff --git a/keyboards/keyhive/absinthe/keyboard.json b/keyboards/keyhive/absinthe/keyboard.json index 82a5ae5631b..e426f63a569 100644 --- a/keyboards/keyhive/absinthe/keyboard.json +++ b/keyboards/keyhive/absinthe/keyboard.json @@ -26,7 +26,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/keyhive/opus/keyboard.json b/keyboards/keyhive/opus/keyboard.json index e92c8604ced..76ec93d2608 100644 --- a/keyboards/keyhive/opus/keyboard.json +++ b/keyboards/keyhive/opus/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/keyhive/smallice/keyboard.json b/keyboards/keyhive/smallice/keyboard.json index f7118ed3cf6..41d2bba12b6 100644 --- a/keyboards/keyhive/smallice/keyboard.json +++ b/keyboards/keyhive/smallice/keyboard.json @@ -32,7 +32,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/keyhive/southpole/keyboard.json b/keyboards/keyhive/southpole/keyboard.json index 38cb349ef99..5cbd091760a 100644 --- a/keyboards/keyhive/southpole/keyboard.json +++ b/keyboards/keyhive/southpole/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/keyhive/ut472/keyboard.json b/keyboards/keyhive/ut472/keyboard.json index 4fc67962dae..f4199408139 100644 --- a/keyboards/keyhive/ut472/keyboard.json +++ b/keyboards/keyhive/ut472/keyboard.json @@ -30,7 +30,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/keyprez/bison/keyboard.json b/keyboards/keyprez/bison/keyboard.json index 1dfe883880e..e4ff719dd68 100644 --- a/keyboards/keyprez/bison/keyboard.json +++ b/keyboards/keyprez/bison/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keyprez/corgi/keyboard.json b/keyboards/keyprez/corgi/keyboard.json index 4dc9af92a22..da046f8d7be 100644 --- a/keyboards/keyprez/corgi/keyboard.json +++ b/keyboards/keyprez/corgi/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keyprez/rhino/keyboard.json b/keyboards/keyprez/rhino/keyboard.json index c00219c1191..0cdd027da5a 100644 --- a/keyboards/keyprez/rhino/keyboard.json +++ b/keyboards/keyprez/rhino/keyboard.json @@ -11,7 +11,6 @@ "audio": true, "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keyprez/unicorn/keyboard.json b/keyboards/keyprez/unicorn/keyboard.json index 9b103510813..a07466f1511 100644 --- a/keyboards/keyprez/unicorn/keyboard.json +++ b/keyboards/keyprez/unicorn/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keyquest/enclave/keyboard.json b/keyboards/keyquest/enclave/keyboard.json index 9b2dbb65191..cc1a9f6a424 100644 --- a/keyboards/keyquest/enclave/keyboard.json +++ b/keyboards/keyquest/enclave/keyboard.json @@ -34,7 +34,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/keysofkings/twokey/keyboard.json b/keyboards/keysofkings/twokey/keyboard.json index 3163a30e6b6..765183426bc 100644 --- a/keyboards/keysofkings/twokey/keyboard.json +++ b/keyboards/keysofkings/twokey/keyboard.json @@ -32,7 +32,6 @@ "audio": true, "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/keyspensory/kp60/keyboard.json b/keyboards/keyspensory/kp60/keyboard.json index 8672cf10e8e..5caa3f178ad 100644 --- a/keyboards/keyspensory/kp60/keyboard.json +++ b/keyboards/keyspensory/kp60/keyboard.json @@ -18,7 +18,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/keystonecaps/gameroyadvance/keyboard.json b/keyboards/keystonecaps/gameroyadvance/keyboard.json index 15cce9afd54..dc590082e5b 100644 --- a/keyboards/keystonecaps/gameroyadvance/keyboard.json +++ b/keyboards/keystonecaps/gameroyadvance/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/keyten/aperture/keyboard.json b/keyboards/keyten/aperture/keyboard.json index 5ed3ecfb8e2..306c73f6fd7 100644 --- a/keyboards/keyten/aperture/keyboard.json +++ b/keyboards/keyten/aperture/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/keyten/diablo/keyboard.json b/keyboards/keyten/diablo/keyboard.json index 3882d4e160b..c63a91295ad 100644 --- a/keyboards/keyten/diablo/keyboard.json +++ b/keyboards/keyten/diablo/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/keyten/kt3700/keyboard.json b/keyboards/keyten/kt3700/keyboard.json index 83df8285d03..b7daf709c19 100644 --- a/keyboards/keyten/kt3700/keyboard.json +++ b/keyboards/keyten/kt3700/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/keyten/kt60_m/keyboard.json b/keyboards/keyten/kt60_m/keyboard.json index 5426bff85ff..3894b5d9159 100644 --- a/keyboards/keyten/kt60_m/keyboard.json +++ b/keyboards/keyten/kt60_m/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/keyten/lisa/keyboard.json b/keyboards/keyten/lisa/keyboard.json index deac0f37408..44e71db705d 100644 --- a/keyboards/keyten/lisa/keyboard.json +++ b/keyboards/keyten/lisa/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kibou/fukuro/keyboard.json b/keyboards/kibou/fukuro/keyboard.json index 97dcaaac4bd..c8ad6cc8087 100644 --- a/keyboards/kibou/fukuro/keyboard.json +++ b/keyboards/kibou/fukuro/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kibou/harbour/keyboard.json b/keyboards/kibou/harbour/keyboard.json index a5417e1ae52..b6ee841d8b3 100644 --- a/keyboards/kibou/harbour/keyboard.json +++ b/keyboards/kibou/harbour/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kibou/suisei/keyboard.json b/keyboards/kibou/suisei/keyboard.json index f212df1bc7c..7b74912e766 100644 --- a/keyboards/kibou/suisei/keyboard.json +++ b/keyboards/kibou/suisei/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kibou/wendy/keyboard.json b/keyboards/kibou/wendy/keyboard.json index 1ab0ca8e7fd..2f78f8f634c 100644 --- a/keyboards/kibou/wendy/keyboard.json +++ b/keyboards/kibou/wendy/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kibou/winter/keyboard.json b/keyboards/kibou/winter/keyboard.json index 47a359ec9b3..5602ae39e6e 100644 --- a/keyboards/kibou/winter/keyboard.json +++ b/keyboards/kibou/winter/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kikkou/keyboard.json b/keyboards/kikkou/keyboard.json index 7e018aa62b3..21c83ef3eae 100644 --- a/keyboards/kikkou/keyboard.json +++ b/keyboards/kikkou/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kikoslab/ellora65/keyboard.json b/keyboards/kikoslab/ellora65/keyboard.json index fdb60e4791f..5f0c4f8d259 100644 --- a/keyboards/kikoslab/ellora65/keyboard.json +++ b/keyboards/kikoslab/ellora65/keyboard.json @@ -14,7 +14,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/kikoslab/kl90/keyboard.json b/keyboards/kikoslab/kl90/keyboard.json index 0a107dfba8e..ededcf280f2 100644 --- a/keyboards/kikoslab/kl90/keyboard.json +++ b/keyboards/kikoslab/kl90/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/kin80/info.json b/keyboards/kin80/info.json index 395742d88b4..c531c329a48 100644 --- a/keyboards/kin80/info.json +++ b/keyboards/kin80/info.json @@ -5,7 +5,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/kindakeyboards/conone65/keyboard.json b/keyboards/kindakeyboards/conone65/keyboard.json index 6786b6a3d5a..9f5f7af4b7e 100644 --- a/keyboards/kindakeyboards/conone65/keyboard.json +++ b/keyboards/kindakeyboards/conone65/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/kinesis/alvicstep/keyboard.json b/keyboards/kinesis/alvicstep/keyboard.json index 951f01203ca..78ea71c0b47 100644 --- a/keyboards/kinesis/alvicstep/keyboard.json +++ b/keyboards/kinesis/alvicstep/keyboard.json @@ -8,7 +8,6 @@ }, "features": { "bootmagic": true, - "console": false, "command": false, "mousekey": true, "extrakey": true, diff --git a/keyboards/kinesis/kint2pp/keyboard.json b/keyboards/kinesis/kint2pp/keyboard.json index 48d77942db0..590ad0fb42d 100644 --- a/keyboards/kinesis/kint2pp/keyboard.json +++ b/keyboards/kinesis/kint2pp/keyboard.json @@ -9,7 +9,6 @@ }, "features": { "bootmagic": true, - "console": false, "command": false, "mousekey": true, "extrakey": true, diff --git a/keyboards/kinesis/kint36/keyboard.json b/keyboards/kinesis/kint36/keyboard.json index 592fade4cb4..a2273a65ba7 100644 --- a/keyboards/kinesis/kint36/keyboard.json +++ b/keyboards/kinesis/kint36/keyboard.json @@ -9,7 +9,6 @@ }, "features": { "bootmagic": true, - "console": false, "command": false, "mousekey": true, "extrakey": true, diff --git a/keyboards/kinesis/kint41/keyboard.json b/keyboards/kinesis/kint41/keyboard.json index c1eb7b84652..e08d75e211c 100644 --- a/keyboards/kinesis/kint41/keyboard.json +++ b/keyboards/kinesis/kint41/keyboard.json @@ -9,7 +9,6 @@ }, "features": { "bootmagic": true, - "console": false, "command": false, "mousekey": true, "extrakey": true, diff --git a/keyboards/kinesis/kintlc/keyboard.json b/keyboards/kinesis/kintlc/keyboard.json index 07c81e1c896..9a40c912f28 100644 --- a/keyboards/kinesis/kintlc/keyboard.json +++ b/keyboards/kinesis/kintlc/keyboard.json @@ -9,7 +9,6 @@ }, "features": { "bootmagic": true, - "console": false, "command": false, "mousekey": true, "extrakey": true, diff --git a/keyboards/kinesis/kintwin/keyboard.json b/keyboards/kinesis/kintwin/keyboard.json index 92727e9ecb9..528a2ca7a28 100644 --- a/keyboards/kinesis/kintwin/keyboard.json +++ b/keyboards/kinesis/kintwin/keyboard.json @@ -14,7 +14,6 @@ }, "features": { "bootmagic": true, - "console": false, "command": false, "mousekey": true, "extrakey": true, diff --git a/keyboards/kinesis/nguyenvietyen/keyboard.json b/keyboards/kinesis/nguyenvietyen/keyboard.json index 68bdd0f767c..f1765183cc8 100644 --- a/keyboards/kinesis/nguyenvietyen/keyboard.json +++ b/keyboards/kinesis/nguyenvietyen/keyboard.json @@ -8,7 +8,6 @@ }, "features": { "bootmagic": true, - "console": false, "command": true, "mousekey": true, "extrakey": true, diff --git a/keyboards/kinesis/stapelberg/keyboard.json b/keyboards/kinesis/stapelberg/keyboard.json index 6ad972d2472..a17fdbf8fec 100644 --- a/keyboards/kinesis/stapelberg/keyboard.json +++ b/keyboards/kinesis/stapelberg/keyboard.json @@ -8,7 +8,6 @@ }, "features": { "bootmagic": true, - "console": false, "command": false, "mousekey": true, "extrakey": true, diff --git a/keyboards/kineticlabs/emu/hotswap/keyboard.json b/keyboards/kineticlabs/emu/hotswap/keyboard.json index a199af4805f..e685ffb5d9a 100644 --- a/keyboards/kineticlabs/emu/hotswap/keyboard.json +++ b/keyboards/kineticlabs/emu/hotswap/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/kineticlabs/emu/soldered/keyboard.json b/keyboards/kineticlabs/emu/soldered/keyboard.json index 59de15184a5..a48048ef2fa 100644 --- a/keyboards/kineticlabs/emu/soldered/keyboard.json +++ b/keyboards/kineticlabs/emu/soldered/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/kingly_keys/ave/ortho/keyboard.json b/keyboards/kingly_keys/ave/ortho/keyboard.json index d945664ba2a..ffb4bf723cf 100644 --- a/keyboards/kingly_keys/ave/ortho/keyboard.json +++ b/keyboards/kingly_keys/ave/ortho/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/kingly_keys/ave/staggered/keyboard.json b/keyboards/kingly_keys/ave/staggered/keyboard.json index 6296e8c8d16..72719811d12 100644 --- a/keyboards/kingly_keys/ave/staggered/keyboard.json +++ b/keyboards/kingly_keys/ave/staggered/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/kingly_keys/little_foot/keyboard.json b/keyboards/kingly_keys/little_foot/keyboard.json index ddbe877b6d8..cea54a01715 100644 --- a/keyboards/kingly_keys/little_foot/keyboard.json +++ b/keyboards/kingly_keys/little_foot/keyboard.json @@ -32,7 +32,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kingly_keys/romac/keyboard.json b/keyboards/kingly_keys/romac/keyboard.json index 8088152db7c..cd3c61bb208 100644 --- a/keyboards/kingly_keys/romac/keyboard.json +++ b/keyboards/kingly_keys/romac/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kingly_keys/romac_plus/keyboard.json b/keyboards/kingly_keys/romac_plus/keyboard.json index 920ed39fa27..847a0f8983b 100644 --- a/keyboards/kingly_keys/romac_plus/keyboard.json +++ b/keyboards/kingly_keys/romac_plus/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/kingly_keys/ropro/keyboard.json b/keyboards/kingly_keys/ropro/keyboard.json index fb22d06a7d9..9fcd31fce9a 100644 --- a/keyboards/kingly_keys/ropro/keyboard.json +++ b/keyboards/kingly_keys/ropro/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/kingly_keys/soap/keyboard.json b/keyboards/kingly_keys/soap/keyboard.json index 615014ffbfa..a8c558bbba2 100644 --- a/keyboards/kingly_keys/soap/keyboard.json +++ b/keyboards/kingly_keys/soap/keyboard.json @@ -29,7 +29,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/kira/kira80/keyboard.json b/keyboards/kira/kira80/keyboard.json index 858b5004087..c66c919a42c 100644 --- a/keyboards/kira/kira80/keyboard.json +++ b/keyboards/kira/kira80/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/kiserdesigns/madeline/keyboard.json b/keyboards/kiserdesigns/madeline/keyboard.json index 8a1a988a6f9..a953f869ef0 100644 --- a/keyboards/kiserdesigns/madeline/keyboard.json +++ b/keyboards/kiserdesigns/madeline/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kiwikeebs/macro/keyboard.json b/keyboards/kiwikeebs/macro/keyboard.json index faaebe88cf1..9e8e9cbf7bb 100644 --- a/keyboards/kiwikeebs/macro/keyboard.json +++ b/keyboards/kiwikeebs/macro/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/kiwikeebs/macro_v2/keyboard.json b/keyboards/kiwikeebs/macro_v2/keyboard.json index 38484579904..51fd39a67ad 100644 --- a/keyboards/kiwikeebs/macro_v2/keyboard.json +++ b/keyboards/kiwikeebs/macro_v2/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/kiwikey/wanderland/keyboard.json b/keyboards/kiwikey/wanderland/keyboard.json index 3dd7c668ac0..3675f8a86e2 100644 --- a/keyboards/kiwikey/wanderland/keyboard.json +++ b/keyboards/kiwikey/wanderland/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/kj_modify/rs40/keyboard.json b/keyboards/kj_modify/rs40/keyboard.json index a869383bd7d..b2ebe8b08c4 100644 --- a/keyboards/kj_modify/rs40/keyboard.json +++ b/keyboards/kj_modify/rs40/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kk/65/keyboard.json b/keyboards/kk/65/keyboard.json index d7fd74ec9f3..fe5296fd5be 100644 --- a/keyboards/kk/65/keyboard.json +++ b/keyboards/kk/65/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kkatano/bakeneko60/keyboard.json b/keyboards/kkatano/bakeneko60/keyboard.json index 094cc71728d..6eff62e1dc2 100644 --- a/keyboards/kkatano/bakeneko60/keyboard.json +++ b/keyboards/kkatano/bakeneko60/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/kkatano/bakeneko65/rev2/keyboard.json b/keyboards/kkatano/bakeneko65/rev2/keyboard.json index 93ac8a5e500..173863f565d 100644 --- a/keyboards/kkatano/bakeneko65/rev2/keyboard.json +++ b/keyboards/kkatano/bakeneko65/rev2/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/kkatano/bakeneko65/rev3/keyboard.json b/keyboards/kkatano/bakeneko65/rev3/keyboard.json index 3892da5d04e..f1d99dac55c 100644 --- a/keyboards/kkatano/bakeneko65/rev3/keyboard.json +++ b/keyboards/kkatano/bakeneko65/rev3/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/kopibeng/mnk60/keyboard.json b/keyboards/kopibeng/mnk60/keyboard.json index 0477ac560db..3daec9131dc 100644 --- a/keyboards/kopibeng/mnk60/keyboard.json +++ b/keyboards/kopibeng/mnk60/keyboard.json @@ -14,7 +14,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kopibeng/mnk60_stm32/keyboard.json b/keyboards/kopibeng/mnk60_stm32/keyboard.json index 8b2278aff07..75d7361aecb 100644 --- a/keyboards/kopibeng/mnk60_stm32/keyboard.json +++ b/keyboards/kopibeng/mnk60_stm32/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kopibeng/mnk65_stm32/keyboard.json b/keyboards/kopibeng/mnk65_stm32/keyboard.json index c71394ba843..e425863d708 100644 --- a/keyboards/kopibeng/mnk65_stm32/keyboard.json +++ b/keyboards/kopibeng/mnk65_stm32/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kopibeng/tgr_lena/keyboard.json b/keyboards/kopibeng/tgr_lena/keyboard.json index 2460b04a5a1..af9568fb8e4 100644 --- a/keyboards/kopibeng/tgr_lena/keyboard.json +++ b/keyboards/kopibeng/tgr_lena/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kopibeng/typ65/keyboard.json b/keyboards/kopibeng/typ65/keyboard.json index 57a23da4ad2..aedb7cb7d91 100644 --- a/keyboards/kopibeng/typ65/keyboard.json +++ b/keyboards/kopibeng/typ65/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kopibeng/xt60/keyboard.json b/keyboards/kopibeng/xt60/keyboard.json index 7b0b74db0e2..8fbd8793a34 100644 --- a/keyboards/kopibeng/xt60/keyboard.json +++ b/keyboards/kopibeng/xt60/keyboard.json @@ -25,7 +25,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kopibeng/xt60_singa/keyboard.json b/keyboards/kopibeng/xt60_singa/keyboard.json index 7f717adf350..a6a27191d48 100644 --- a/keyboards/kopibeng/xt60_singa/keyboard.json +++ b/keyboards/kopibeng/xt60_singa/keyboard.json @@ -25,7 +25,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kopibeng/xt65/keyboard.json b/keyboards/kopibeng/xt65/keyboard.json index 60fff35ca1a..47d1fdeeedd 100644 --- a/keyboards/kopibeng/xt65/keyboard.json +++ b/keyboards/kopibeng/xt65/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kprepublic/bm16a/v1/keyboard.json b/keyboards/kprepublic/bm16a/v1/keyboard.json index fba123ccb71..5c37f26354f 100644 --- a/keyboards/kprepublic/bm16a/v1/keyboard.json +++ b/keyboards/kprepublic/bm16a/v1/keyboard.json @@ -13,7 +13,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "backlight": true, diff --git a/keyboards/kprepublic/bm16a/v2/keyboard.json b/keyboards/kprepublic/bm16a/v2/keyboard.json index ac65e4affb2..92973e875ec 100644 --- a/keyboards/kprepublic/bm16a/v2/keyboard.json +++ b/keyboards/kprepublic/bm16a/v2/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kprepublic/bm16s/keyboard.json b/keyboards/kprepublic/bm16s/keyboard.json index d7b31b5651e..0c339b7d0be 100644 --- a/keyboards/kprepublic/bm16s/keyboard.json +++ b/keyboards/kprepublic/bm16s/keyboard.json @@ -30,7 +30,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kprepublic/bm40hsrgb/rev1/keyboard.json b/keyboards/kprepublic/bm40hsrgb/rev1/keyboard.json index 430d525a71b..f2c80e1781a 100644 --- a/keyboards/kprepublic/bm40hsrgb/rev1/keyboard.json +++ b/keyboards/kprepublic/bm40hsrgb/rev1/keyboard.json @@ -66,7 +66,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/kprepublic/bm40hsrgb/rev2/keyboard.json b/keyboards/kprepublic/bm40hsrgb/rev2/keyboard.json index 21689cb9587..eff8d8eb667 100644 --- a/keyboards/kprepublic/bm40hsrgb/rev2/keyboard.json +++ b/keyboards/kprepublic/bm40hsrgb/rev2/keyboard.json @@ -9,7 +9,6 @@ "rgblight": true, "rgb_matrix": true, "tri_layer": true, - "console": false, "command": false, "nkro": false }, diff --git a/keyboards/kprepublic/bm43hsrgb/keyboard.json b/keyboards/kprepublic/bm43hsrgb/keyboard.json index 9dff2d8ddcf..b69ba814c3e 100755 --- a/keyboards/kprepublic/bm43hsrgb/keyboard.json +++ b/keyboards/kprepublic/bm43hsrgb/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/kprepublic/bm60hsrgb/rev1/keyboard.json b/keyboards/kprepublic/bm60hsrgb/rev1/keyboard.json index 3640dad2a87..82c23ed3efe 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev1/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb/rev1/keyboard.json @@ -68,7 +68,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev1/keyboard.json b/keyboards/kprepublic/bm60hsrgb_ec/rev1/keyboard.json index e93a616c950..42d04a4781b 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev1/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev1/keyboard.json @@ -59,7 +59,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev2/keyboard.json b/keyboards/kprepublic/bm60hsrgb_ec/rev2/keyboard.json index 1f0dffa2608..ac83b152afc 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev2/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev2/keyboard.json @@ -66,7 +66,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev1/keyboard.json b/keyboards/kprepublic/bm60hsrgb_iso/rev1/keyboard.json index 8cdb855aa28..b1daf2e718b 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev1/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev1/keyboard.json @@ -65,7 +65,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keyboard.json b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keyboard.json index d1f5c9fb532..9e5e1ea3e74 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keyboard.json @@ -80,7 +80,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/kprepublic/bm65hsrgb/rev1/keyboard.json b/keyboards/kprepublic/bm65hsrgb/rev1/keyboard.json index c5fa1d90260..060fa19e7e1 100644 --- a/keyboards/kprepublic/bm65hsrgb/rev1/keyboard.json +++ b/keyboards/kprepublic/bm65hsrgb/rev1/keyboard.json @@ -19,7 +19,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kprepublic/bm65hsrgb_iso/rev1/keyboard.json b/keyboards/kprepublic/bm65hsrgb_iso/rev1/keyboard.json index 43d213a1a77..e596453e7ea 100644 --- a/keyboards/kprepublic/bm65hsrgb_iso/rev1/keyboard.json +++ b/keyboards/kprepublic/bm65hsrgb_iso/rev1/keyboard.json @@ -86,7 +86,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kprepublic/bm68hsrgb/rev1/keyboard.json b/keyboards/kprepublic/bm68hsrgb/rev1/keyboard.json index 9b6975bddcd..047f74d32a7 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev1/keyboard.json +++ b/keyboards/kprepublic/bm68hsrgb/rev1/keyboard.json @@ -65,7 +65,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kprepublic/bm68hsrgb/rev2/keyboard.json b/keyboards/kprepublic/bm68hsrgb/rev2/keyboard.json index e294562e0db..e5498204525 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev2/keyboard.json +++ b/keyboards/kprepublic/bm68hsrgb/rev2/keyboard.json @@ -72,7 +72,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/kprepublic/bm80hsrgb/keyboard.json b/keyboards/kprepublic/bm80hsrgb/keyboard.json index 8c51e2ea98a..3bfb9e2d294 100644 --- a/keyboards/kprepublic/bm80hsrgb/keyboard.json +++ b/keyboards/kprepublic/bm80hsrgb/keyboard.json @@ -63,7 +63,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kprepublic/bm80v2/keyboard.json b/keyboards/kprepublic/bm80v2/keyboard.json index e8f061115f4..6982c69f125 100644 --- a/keyboards/kprepublic/bm80v2/keyboard.json +++ b/keyboards/kprepublic/bm80v2/keyboard.json @@ -54,7 +54,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/kprepublic/bm80v2_iso/keyboard.json b/keyboards/kprepublic/bm80v2_iso/keyboard.json index 9143f9df07b..c7210e05ad5 100644 --- a/keyboards/kprepublic/bm80v2_iso/keyboard.json +++ b/keyboards/kprepublic/bm80v2_iso/keyboard.json @@ -54,7 +54,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/kprepublic/bm980hsrgb/keyboard.json b/keyboards/kprepublic/bm980hsrgb/keyboard.json index addd87de4f0..9d9578b9489 100644 --- a/keyboards/kprepublic/bm980hsrgb/keyboard.json +++ b/keyboards/kprepublic/bm980hsrgb/keyboard.json @@ -16,7 +16,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/kprepublic/cospad/keyboard.json b/keyboards/kprepublic/cospad/keyboard.json index 8d65d302715..b7b3682be5b 100644 --- a/keyboards/kprepublic/cospad/keyboard.json +++ b/keyboards/kprepublic/cospad/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/kprepublic/cstc40/info.json b/keyboards/kprepublic/cstc40/info.json index bd79ef2afe7..79b9a0ae63e 100644 --- a/keyboards/kprepublic/cstc40/info.json +++ b/keyboards/kprepublic/cstc40/info.json @@ -8,7 +8,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/kprepublic/jj4x4/keyboard.json b/keyboards/kprepublic/jj4x4/keyboard.json index d7d785b054c..ac28cba94e6 100644 --- a/keyboards/kprepublic/jj4x4/keyboard.json +++ b/keyboards/kprepublic/jj4x4/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/kradoindustries/kousa/keyboard.json b/keyboards/kradoindustries/kousa/keyboard.json index 196e863bf5c..f387d69eefe 100644 --- a/keyboards/kradoindustries/kousa/keyboard.json +++ b/keyboards/kradoindustries/kousa/keyboard.json @@ -14,7 +14,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "encoder": true, diff --git a/keyboards/kradoindustries/krado66/keyboard.json b/keyboards/kradoindustries/krado66/keyboard.json index aefadf12de1..188ac66c604 100644 --- a/keyboards/kradoindustries/krado66/keyboard.json +++ b/keyboards/kradoindustries/krado66/keyboard.json @@ -14,7 +14,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "encoder": true, diff --git a/keyboards/kradoindustries/promenade/keyboard.json b/keyboards/kradoindustries/promenade/keyboard.json index 1de6ef73156..fb0d3809933 100644 --- a/keyboards/kradoindustries/promenade/keyboard.json +++ b/keyboards/kradoindustries/promenade/keyboard.json @@ -15,7 +15,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "rgblight": true diff --git a/keyboards/kradoindustries/promenade_rp24s/keyboard.json b/keyboards/kradoindustries/promenade_rp24s/keyboard.json index c0d4a7f535f..bb68b6ece56 100644 --- a/keyboards/kradoindustries/promenade_rp24s/keyboard.json +++ b/keyboards/kradoindustries/promenade_rp24s/keyboard.json @@ -14,7 +14,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "encoder": true, diff --git a/keyboards/kraken_jones/pteron56/keyboard.json b/keyboards/kraken_jones/pteron56/keyboard.json index 0af1f6b7356..79357e36096 100644 --- a/keyboards/kraken_jones/pteron56/keyboard.json +++ b/keyboards/kraken_jones/pteron56/keyboard.json @@ -18,7 +18,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true }, diff --git a/keyboards/ktec/daisy/keyboard.json b/keyboards/ktec/daisy/keyboard.json index 8ca734534eb..44c3a789a6d 100644 --- a/keyboards/ktec/daisy/keyboard.json +++ b/keyboards/ktec/daisy/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/ktec/staryu/keyboard.json b/keyboards/ktec/staryu/keyboard.json index 9272642c3e3..42adb61df52 100644 --- a/keyboards/ktec/staryu/keyboard.json +++ b/keyboards/ktec/staryu/keyboard.json @@ -40,7 +40,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/kumaokobo/kudox_game/rev1/keyboard.json b/keyboards/kumaokobo/kudox_game/rev1/keyboard.json index 975fbcd5467..bd3d8053ff9 100644 --- a/keyboards/kumaokobo/kudox_game/rev1/keyboard.json +++ b/keyboards/kumaokobo/kudox_game/rev1/keyboard.json @@ -30,7 +30,6 @@ "features": { "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/kumaokobo/kudox_game/rev2/keyboard.json b/keyboards/kumaokobo/kudox_game/rev2/keyboard.json index ac13e1b216b..84f272d7121 100644 --- a/keyboards/kumaokobo/kudox_game/rev2/keyboard.json +++ b/keyboards/kumaokobo/kudox_game/rev2/keyboard.json @@ -30,7 +30,6 @@ "features": { "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/kuro/kuro65/keyboard.json b/keyboards/kuro/kuro65/keyboard.json index 8ca2310692f..09c80d4882c 100644 --- a/keyboards/kuro/kuro65/keyboard.json +++ b/keyboards/kuro/kuro65/keyboard.json @@ -21,7 +21,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "rgb_matrix": true diff --git a/keyboards/kwstudio/pisces/keyboard.json b/keyboards/kwstudio/pisces/keyboard.json index e69993b963b..1dc3b780c3c 100644 --- a/keyboards/kwstudio/pisces/keyboard.json +++ b/keyboards/kwstudio/pisces/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/kwub/bloop/keyboard.json b/keyboards/kwub/bloop/keyboard.json index 2889ef1598c..b20fb706fe2 100644 --- a/keyboards/kwub/bloop/keyboard.json +++ b/keyboards/kwub/bloop/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/labbe/labbeminiv1/keyboard.json b/keyboards/labbe/labbeminiv1/keyboard.json index d976ea5d365..38865f82155 100644 --- a/keyboards/labbe/labbeminiv1/keyboard.json +++ b/keyboards/labbe/labbeminiv1/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": false diff --git a/keyboards/labyrinth75/keyboard.json b/keyboards/labyrinth75/keyboard.json index 99f79b9a2bf..700d3821cb5 100644 --- a/keyboards/labyrinth75/keyboard.json +++ b/keyboards/labyrinth75/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/laneware/lpad/keyboard.json b/keyboards/laneware/lpad/keyboard.json index a42ba2c13f4..b26552ac55e 100644 --- a/keyboards/laneware/lpad/keyboard.json +++ b/keyboards/laneware/lpad/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/laneware/lw67/keyboard.json b/keyboards/laneware/lw67/keyboard.json index d1b85ea50da..280373679ba 100644 --- a/keyboards/laneware/lw67/keyboard.json +++ b/keyboards/laneware/lw67/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/laneware/lw75/keyboard.json b/keyboards/laneware/lw75/keyboard.json index 6aee9461a84..e2c475cb778 100644 --- a/keyboards/laneware/lw75/keyboard.json +++ b/keyboards/laneware/lw75/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/laneware/macro1/keyboard.json b/keyboards/laneware/macro1/keyboard.json index 12fce7b9205..45b6c41a905 100644 --- a/keyboards/laneware/macro1/keyboard.json +++ b/keyboards/laneware/macro1/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/laneware/raindrop/keyboard.json b/keyboards/laneware/raindrop/keyboard.json index 4e5d674b2b4..fd15c219653 100644 --- a/keyboards/laneware/raindrop/keyboard.json +++ b/keyboards/laneware/raindrop/keyboard.json @@ -19,7 +19,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true }, diff --git a/keyboards/large_lad/keyboard.json b/keyboards/large_lad/keyboard.json index 665a2797997..e8f750fcd14 100644 --- a/keyboards/large_lad/keyboard.json +++ b/keyboards/large_lad/keyboard.json @@ -15,7 +15,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/laser_ninja/pumpkinpad/keyboard.json b/keyboards/laser_ninja/pumpkinpad/keyboard.json index 96b4049121a..e254cb76b5f 100644 --- a/keyboards/laser_ninja/pumpkinpad/keyboard.json +++ b/keyboards/laser_ninja/pumpkinpad/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": false, diff --git a/keyboards/latincompass/latin17rgb/keyboard.json b/keyboards/latincompass/latin17rgb/keyboard.json index 934653b6fe5..20d7086d4c6 100644 --- a/keyboards/latincompass/latin17rgb/keyboard.json +++ b/keyboards/latincompass/latin17rgb/keyboard.json @@ -66,7 +66,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/latincompass/latin60rgb/keyboard.json b/keyboards/latincompass/latin60rgb/keyboard.json index 4252387c122..30e64a4f14b 100644 --- a/keyboards/latincompass/latin60rgb/keyboard.json +++ b/keyboards/latincompass/latin60rgb/keyboard.json @@ -110,7 +110,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/latincompass/latinpad/keyboard.json b/keyboards/latincompass/latinpad/keyboard.json index 1e2c8ca90c0..a1dd38e097c 100644 --- a/keyboards/latincompass/latinpad/keyboard.json +++ b/keyboards/latincompass/latinpad/keyboard.json @@ -45,7 +45,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/latincompass/latinpadble/keyboard.json b/keyboards/latincompass/latinpadble/keyboard.json index fe35f74e794..cfdf2714025 100644 --- a/keyboards/latincompass/latinpadble/keyboard.json +++ b/keyboards/latincompass/latinpadble/keyboard.json @@ -12,7 +12,6 @@ "bluetooth": true, "bootmagic": false, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/lazydesigners/bolt/keyboard.json b/keyboards/lazydesigners/bolt/keyboard.json index c155c852df0..e6d44822839 100644 --- a/keyboards/lazydesigners/bolt/keyboard.json +++ b/keyboards/lazydesigners/bolt/keyboard.json @@ -30,7 +30,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/lazydesigners/cassette8/keyboard.json b/keyboards/lazydesigners/cassette8/keyboard.json index 623b804efe0..8cb1428122f 100755 --- a/keyboards/lazydesigners/cassette8/keyboard.json +++ b/keyboards/lazydesigners/cassette8/keyboard.json @@ -30,7 +30,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/lazydesigners/dimpleplus/keyboard.json b/keyboards/lazydesigners/dimpleplus/keyboard.json index afae905c7b8..7fb72608948 100644 --- a/keyboards/lazydesigners/dimpleplus/keyboard.json +++ b/keyboards/lazydesigners/dimpleplus/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/lazydesigners/the30/keyboard.json b/keyboards/lazydesigners/the30/keyboard.json index 64562ada664..bf24fa0e085 100644 --- a/keyboards/lazydesigners/the30/keyboard.json +++ b/keyboards/lazydesigners/the30/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/lazydesigners/the40/keyboard.json b/keyboards/lazydesigners/the40/keyboard.json index 0e06e16ea8b..103d2fa78e7 100644 --- a/keyboards/lazydesigners/the40/keyboard.json +++ b/keyboards/lazydesigners/the40/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/lazydesigners/the50/keyboard.json b/keyboards/lazydesigners/the50/keyboard.json index 1039625f066..55caf81d3ae 100644 --- a/keyboards/lazydesigners/the50/keyboard.json +++ b/keyboards/lazydesigners/the50/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/lazydesigners/the60/rev1/keyboard.json b/keyboards/lazydesigners/the60/rev1/keyboard.json index 815cf8e04d9..7dd1cde022e 100755 --- a/keyboards/lazydesigners/the60/rev1/keyboard.json +++ b/keyboards/lazydesigners/the60/rev1/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/lazydesigners/the60/rev2/keyboard.json b/keyboards/lazydesigners/the60/rev2/keyboard.json index f9a0fd95b50..2d6eb276d84 100755 --- a/keyboards/lazydesigners/the60/rev2/keyboard.json +++ b/keyboards/lazydesigners/the60/rev2/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/leafcutterlabs/bigknob/keyboard.json b/keyboards/leafcutterlabs/bigknob/keyboard.json index 7d1fc6fb726..ca3b7a0e2aa 100644 --- a/keyboards/leafcutterlabs/bigknob/keyboard.json +++ b/keyboards/leafcutterlabs/bigknob/keyboard.json @@ -35,7 +35,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/leeku/finger65/keyboard.json b/keyboards/leeku/finger65/keyboard.json index cdb67f0e367..8cfb94c20b4 100644 --- a/keyboards/leeku/finger65/keyboard.json +++ b/keyboards/leeku/finger65/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": false diff --git a/keyboards/lendunistus/rpneko65/rev1/keyboard.json b/keyboards/lendunistus/rpneko65/rev1/keyboard.json index 29682cf2a77..b28ca4b5fa3 100644 --- a/keyboards/lendunistus/rpneko65/rev1/keyboard.json +++ b/keyboards/lendunistus/rpneko65/rev1/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/lfkeyboards/lfk87/info.json b/keyboards/lfkeyboards/lfk87/info.json index d38a397da3c..a9c3d56f7b1 100644 --- a/keyboards/lfkeyboards/lfk87/info.json +++ b/keyboards/lfkeyboards/lfk87/info.json @@ -6,7 +6,6 @@ "audio": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/lfkeyboards/lfkpad/keyboard.json b/keyboards/lfkeyboards/lfkpad/keyboard.json index f422507a5bf..c78d6e2635c 100644 --- a/keyboards/lfkeyboards/lfkpad/keyboard.json +++ b/keyboards/lfkeyboards/lfkpad/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/lgbtkl/keyboard.json b/keyboards/lgbtkl/keyboard.json index a3f126e8620..11e02f7cf03 100644 --- a/keyboards/lgbtkl/keyboard.json +++ b/keyboards/lgbtkl/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/linworks/dolice/keyboard.json b/keyboards/linworks/dolice/keyboard.json index 6a556db6544..5f47c8af0a7 100644 --- a/keyboards/linworks/dolice/keyboard.json +++ b/keyboards/linworks/dolice/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/linworks/em8/keyboard.json b/keyboards/linworks/em8/keyboard.json index cf17b94a4d5..de096b7b62b 100644 --- a/keyboards/linworks/em8/keyboard.json +++ b/keyboards/linworks/em8/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/linworks/fave104/keyboard.json b/keyboards/linworks/fave104/keyboard.json index 01c49af4c97..34279ec0ba3 100644 --- a/keyboards/linworks/fave104/keyboard.json +++ b/keyboards/linworks/fave104/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/linworks/fave60/keyboard.json b/keyboards/linworks/fave60/keyboard.json index eb72e9c3e2e..ef50543ab71 100644 --- a/keyboards/linworks/fave60/keyboard.json +++ b/keyboards/linworks/fave60/keyboard.json @@ -27,7 +27,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/linworks/fave84h/keyboard.json b/keyboards/linworks/fave84h/keyboard.json index 6b66dd946c5..ee2473c77b9 100644 --- a/keyboards/linworks/fave84h/keyboard.json +++ b/keyboards/linworks/fave84h/keyboard.json @@ -8,7 +8,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/linworks/fave87/keyboard.json b/keyboards/linworks/fave87/keyboard.json index 9083b8c8ece..ec039718a7a 100644 --- a/keyboards/linworks/fave87/keyboard.json +++ b/keyboards/linworks/fave87/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/linworks/whale75/keyboard.json b/keyboards/linworks/whale75/keyboard.json index 88598d8e8c9..e0dc3e1712a 100644 --- a/keyboards/linworks/whale75/keyboard.json +++ b/keyboards/linworks/whale75/keyboard.json @@ -25,7 +25,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/littlealby/mute/keyboard.json b/keyboards/littlealby/mute/keyboard.json index 3bd6ab37479..7686ec174c2 100644 --- a/keyboards/littlealby/mute/keyboard.json +++ b/keyboards/littlealby/mute/keyboard.json @@ -19,7 +19,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/lizard_trick/tenkey_plusplus/keyboard.json b/keyboards/lizard_trick/tenkey_plusplus/keyboard.json index 0877d99885c..e501cbfdc08 100644 --- a/keyboards/lizard_trick/tenkey_plusplus/keyboard.json +++ b/keyboards/lizard_trick/tenkey_plusplus/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/ll3macorn/bongopad/keyboard.json b/keyboards/ll3macorn/bongopad/keyboard.json index 7a6f0ff0430..188cc2527f3 100644 --- a/keyboards/ll3macorn/bongopad/keyboard.json +++ b/keyboards/ll3macorn/bongopad/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/lm_keyboard/lm60n/keyboard.json b/keyboards/lm_keyboard/lm60n/keyboard.json index 317c61aee29..0301e35ae0b 100644 --- a/keyboards/lm_keyboard/lm60n/keyboard.json +++ b/keyboards/lm_keyboard/lm60n/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/longnald/corin/keyboard.json b/keyboards/longnald/corin/keyboard.json index a423348b784..1c32741762e 100644 --- a/keyboards/longnald/corin/keyboard.json +++ b/keyboards/longnald/corin/keyboard.json @@ -28,7 +28,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/lostdotfish/rp2040_orbweaver/keyboard.json b/keyboards/lostdotfish/rp2040_orbweaver/keyboard.json index b711d9c4a89..8d6723c9f68 100644 --- a/keyboards/lostdotfish/rp2040_orbweaver/keyboard.json +++ b/keyboards/lostdotfish/rp2040_orbweaver/keyboard.json @@ -15,7 +15,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/lxxt/keyboard.json b/keyboards/lxxt/keyboard.json index 57c8350b2a1..725b6ee2c2b 100644 --- a/keyboards/lxxt/keyboard.json +++ b/keyboards/lxxt/keyboard.json @@ -46,7 +46,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "rgblight": true, diff --git a/keyboards/lyso1/lefishe/keyboard.json b/keyboards/lyso1/lefishe/keyboard.json index 677fb11e183..4d0cc7842f5 100644 --- a/keyboards/lyso1/lefishe/keyboard.json +++ b/keyboards/lyso1/lefishe/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/m10a/keyboard.json b/keyboards/m10a/keyboard.json index e0ba10e0961..d1799bae55a 100644 --- a/keyboards/m10a/keyboard.json +++ b/keyboards/m10a/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/machine_industries/m4_a/keyboard.json b/keyboards/machine_industries/m4_a/keyboard.json index 04510f92e12..e96e2a6b1aa 100644 --- a/keyboards/machine_industries/m4_a/keyboard.json +++ b/keyboards/machine_industries/m4_a/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/machkeyboards/mach3/keyboard.json b/keyboards/machkeyboards/mach3/keyboard.json index 9f9d492bcce..0679ad7f3cb 100644 --- a/keyboards/machkeyboards/mach3/keyboard.json +++ b/keyboards/machkeyboards/mach3/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/macrocat/keyboard.json b/keyboards/macrocat/keyboard.json index 470ce8973a9..ed0a2d17a58 100644 --- a/keyboards/macrocat/keyboard.json +++ b/keyboards/macrocat/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/madjax_macropad/keyboard.json b/keyboards/madjax_macropad/keyboard.json index ac2802faef2..031e3968664 100644 --- a/keyboards/madjax_macropad/keyboard.json +++ b/keyboards/madjax_macropad/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/makeymakey/keyboard.json b/keyboards/makeymakey/keyboard.json index 8f045350323..81b23f01256 100644 --- a/keyboards/makeymakey/keyboard.json +++ b/keyboards/makeymakey/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": false, "mousekey": true, "nkro": true diff --git a/keyboards/makrosu/keyboard.json b/keyboards/makrosu/keyboard.json index a9790e22d2a..54dcea4cb93 100644 --- a/keyboards/makrosu/keyboard.json +++ b/keyboards/makrosu/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/malevolti/superlyra/rev1/keyboard.json b/keyboards/malevolti/superlyra/rev1/keyboard.json index 4db75583027..56a0edc90e6 100644 --- a/keyboards/malevolti/superlyra/rev1/keyboard.json +++ b/keyboards/malevolti/superlyra/rev1/keyboard.json @@ -16,7 +16,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/manta60/keyboard.json b/keyboards/manta60/keyboard.json index d2f308e89c8..007f0153791 100644 --- a/keyboards/manta60/keyboard.json +++ b/keyboards/manta60/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": false, "mousekey": true, "nkro": false, diff --git a/keyboards/manyboard/macro/keyboard.json b/keyboards/manyboard/macro/keyboard.json index b40861414f3..187e1976fe8 100644 --- a/keyboards/manyboard/macro/keyboard.json +++ b/keyboards/manyboard/macro/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/maple_computing/6ball/keyboard.json b/keyboards/maple_computing/6ball/keyboard.json index 0db90d176ed..61ec5f11316 100644 --- a/keyboards/maple_computing/6ball/keyboard.json +++ b/keyboards/maple_computing/6ball/keyboard.json @@ -28,7 +28,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/maple_computing/the_ruler/keyboard.json b/keyboards/maple_computing/the_ruler/keyboard.json index a6c9304d607..3cca7e577a4 100644 --- a/keyboards/maple_computing/the_ruler/keyboard.json +++ b/keyboards/maple_computing/the_ruler/keyboard.json @@ -29,7 +29,6 @@ "features": { "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/mariorion_v25/prod/keyboard.json b/keyboards/mariorion_v25/prod/keyboard.json index 6c2ba94ec15..b950162618b 100644 --- a/keyboards/mariorion_v25/prod/keyboard.json +++ b/keyboards/mariorion_v25/prod/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/mariorion_v25/proto/keyboard.json b/keyboards/mariorion_v25/proto/keyboard.json index 5e46f647542..2e42fedccfa 100644 --- a/keyboards/mariorion_v25/proto/keyboard.json +++ b/keyboards/mariorion_v25/proto/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/marksard/leftover30/keyboard.json b/keyboards/marksard/leftover30/keyboard.json index ae2250a5f2c..aac594097a2 100644 --- a/keyboards/marksard/leftover30/keyboard.json +++ b/keyboards/marksard/leftover30/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/marksard/treadstone32/info.json b/keyboards/marksard/treadstone32/info.json index d93277472cb..35f72490f0c 100644 --- a/keyboards/marksard/treadstone32/info.json +++ b/keyboards/marksard/treadstone32/info.json @@ -5,7 +5,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": false, "mousekey": true, "nkro": false diff --git a/keyboards/matchstickworks/normiepad/keyboard.json b/keyboards/matchstickworks/normiepad/keyboard.json index 3063b820aa8..de2362f99e0 100644 --- a/keyboards/matchstickworks/normiepad/keyboard.json +++ b/keyboards/matchstickworks/normiepad/keyboard.json @@ -5,7 +5,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/matchstickworks/southpad/rev1/keyboard.json b/keyboards/matchstickworks/southpad/rev1/keyboard.json index 15db9823b1f..c893882b4f3 100644 --- a/keyboards/matchstickworks/southpad/rev1/keyboard.json +++ b/keyboards/matchstickworks/southpad/rev1/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/matchstickworks/southpad/rev2/keyboard.json b/keyboards/matchstickworks/southpad/rev2/keyboard.json index 717b56ef630..1364885d556 100644 --- a/keyboards/matchstickworks/southpad/rev2/keyboard.json +++ b/keyboards/matchstickworks/southpad/rev2/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/matrix/cain_re/keyboard.json b/keyboards/matrix/cain_re/keyboard.json index e806e9a4270..82f8c98525a 100644 --- a/keyboards/matrix/cain_re/keyboard.json +++ b/keyboards/matrix/cain_re/keyboard.json @@ -37,7 +37,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/matrix/falcon/keyboard.json b/keyboards/matrix/falcon/keyboard.json index bf5fc640ced..2dc0e17e26b 100644 --- a/keyboards/matrix/falcon/keyboard.json +++ b/keyboards/matrix/falcon/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/matrix/m12og/rev2/keyboard.json b/keyboards/matrix/m12og/rev2/keyboard.json index 5a04161d1b3..f7fdb5ce63b 100644 --- a/keyboards/matrix/m12og/rev2/keyboard.json +++ b/keyboards/matrix/m12og/rev2/keyboard.json @@ -37,7 +37,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/matrix/me/keyboard.json b/keyboards/matrix/me/keyboard.json index 6abfe38435d..6d4cebb82bb 100644 --- a/keyboards/matrix/me/keyboard.json +++ b/keyboards/matrix/me/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/matthewdias/m3n3van/keyboard.json b/keyboards/matthewdias/m3n3van/keyboard.json index 3fdfb7f61d3..d46949cff5a 100644 --- a/keyboards/matthewdias/m3n3van/keyboard.json +++ b/keyboards/matthewdias/m3n3van/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/matthewdias/minim/keyboard.json b/keyboards/matthewdias/minim/keyboard.json index b9ff70ca408..47d85abdb64 100644 --- a/keyboards/matthewdias/minim/keyboard.json +++ b/keyboards/matthewdias/minim/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/matthewdias/model_v/keyboard.json b/keyboards/matthewdias/model_v/keyboard.json index 00d4c4c0eb2..24c88c8caa1 100644 --- a/keyboards/matthewdias/model_v/keyboard.json +++ b/keyboards/matthewdias/model_v/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/matthewdias/txuu/keyboard.json b/keyboards/matthewdias/txuu/keyboard.json index b4c1597e5fc..4bc078f7e55 100644 --- a/keyboards/matthewdias/txuu/keyboard.json +++ b/keyboards/matthewdias/txuu/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/maxipad/info.json b/keyboards/maxipad/info.json index 73b563edc1f..29d8e3598aa 100644 --- a/keyboards/maxipad/info.json +++ b/keyboards/maxipad/info.json @@ -5,7 +5,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/mazestudio/jocker/keyboard.json b/keyboards/mazestudio/jocker/keyboard.json index 51c09eea320..3b49629aa36 100644 --- a/keyboards/mazestudio/jocker/keyboard.json +++ b/keyboards/mazestudio/jocker/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/mb44/keyboard.json b/keyboards/mb44/keyboard.json index f6ab714a5c6..d8c1216233f 100644 --- a/keyboards/mb44/keyboard.json +++ b/keyboards/mb44/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/mc_76k/keyboard.json b/keyboards/mc_76k/keyboard.json index 18aef48d01c..7be3c8f1ec2 100644 --- a/keyboards/mc_76k/keyboard.json +++ b/keyboards/mc_76k/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/mechanickeys/miniashen40/keyboard.json b/keyboards/mechanickeys/miniashen40/keyboard.json index 8e5821cc296..6ce6d4a2dc2 100644 --- a/keyboards/mechanickeys/miniashen40/keyboard.json +++ b/keyboards/mechanickeys/miniashen40/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/mechanickeys/undead60m/keyboard.json b/keyboards/mechanickeys/undead60m/keyboard.json index 9f88f133463..f54284387c6 100644 --- a/keyboards/mechanickeys/undead60m/keyboard.json +++ b/keyboards/mechanickeys/undead60m/keyboard.json @@ -32,7 +32,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/mechbrewery/mb65h/keyboard.json b/keyboards/mechbrewery/mb65h/keyboard.json index 99d49d698d9..897dfc2b123 100644 --- a/keyboards/mechbrewery/mb65h/keyboard.json +++ b/keyboards/mechbrewery/mb65h/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/mechbrewery/mb65s/keyboard.json b/keyboards/mechbrewery/mb65s/keyboard.json index eeafcaba1a1..aac50f22197 100644 --- a/keyboards/mechbrewery/mb65s/keyboard.json +++ b/keyboards/mechbrewery/mb65s/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/mechkeys/acr60/keyboard.json b/keyboards/mechkeys/acr60/keyboard.json index 0be2ec47c14..5a34ca17c71 100644 --- a/keyboards/mechkeys/acr60/keyboard.json +++ b/keyboards/mechkeys/acr60/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/mechkeys/alu84/keyboard.json b/keyboards/mechkeys/alu84/keyboard.json index 1d7d8cbee2e..21a227e71bb 100644 --- a/keyboards/mechkeys/alu84/keyboard.json +++ b/keyboards/mechkeys/alu84/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/mechkeys/espectro/keyboard.json b/keyboards/mechkeys/espectro/keyboard.json index d9a7dda1654..d9c292d5e5d 100644 --- a/keyboards/mechkeys/espectro/keyboard.json +++ b/keyboards/mechkeys/espectro/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/mechkeys/mk60/keyboard.json b/keyboards/mechkeys/mk60/keyboard.json index bb9a69daf5e..2ef534f2f43 100644 --- a/keyboards/mechkeys/mk60/keyboard.json +++ b/keyboards/mechkeys/mk60/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/mechllama/g35/info.json b/keyboards/mechllama/g35/info.json index 2fa38714051..b223cd6441b 100644 --- a/keyboards/mechllama/g35/info.json +++ b/keyboards/mechllama/g35/info.json @@ -6,7 +6,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": true, diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/keyboard.json b/keyboards/mechlovin/adelais/rgb_led/rev3/keyboard.json index 628eb404a5b..2ae6877f083 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev3/keyboard.json +++ b/keyboards/mechlovin/adelais/rgb_led/rev3/keyboard.json @@ -7,7 +7,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "rgblight": true, diff --git a/keyboards/mechlovin/adelais/standard_led/avr/rev1/keyboard.json b/keyboards/mechlovin/adelais/standard_led/avr/rev1/keyboard.json index 3758a8f085a..e2b3346763f 100644 --- a/keyboards/mechlovin/adelais/standard_led/avr/rev1/keyboard.json +++ b/keyboards/mechlovin/adelais/standard_led/avr/rev1/keyboard.json @@ -7,7 +7,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "backlight": true, diff --git a/keyboards/mechlovin/infinityce/keyboard.json b/keyboards/mechlovin/infinityce/keyboard.json index 2de1bde4999..08981c7cb53 100644 --- a/keyboards/mechlovin/infinityce/keyboard.json +++ b/keyboards/mechlovin/infinityce/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/mechlovin/kanu/keyboard.json b/keyboards/mechlovin/kanu/keyboard.json index 233b82f71ef..2ade6f1962f 100644 --- a/keyboards/mechlovin/kanu/keyboard.json +++ b/keyboards/mechlovin/kanu/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/mechlovin/kay60/keyboard.json b/keyboards/mechlovin/kay60/keyboard.json index b42fd73b881..b666450bd83 100644 --- a/keyboards/mechlovin/kay60/keyboard.json +++ b/keyboards/mechlovin/kay60/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/mechlovin/kay65/keyboard.json b/keyboards/mechlovin/kay65/keyboard.json index d5008ec48f4..fa2fdf0095c 100644 --- a/keyboards/mechlovin/kay65/keyboard.json +++ b/keyboards/mechlovin/kay65/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/mechlovin/pisces/keyboard.json b/keyboards/mechlovin/pisces/keyboard.json index b24afb64657..9dc1e34e0c5 100644 --- a/keyboards/mechlovin/pisces/keyboard.json +++ b/keyboards/mechlovin/pisces/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/mechstudio/dawn/keyboard.json b/keyboards/mechstudio/dawn/keyboard.json index dc1894f4e5f..76d990a677d 100644 --- a/keyboards/mechstudio/dawn/keyboard.json +++ b/keyboards/mechstudio/dawn/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/mechwild/mercutio/keyboard.json b/keyboards/mechwild/mercutio/keyboard.json index 0a7d7581282..aff9485140e 100644 --- a/keyboards/mechwild/mercutio/keyboard.json +++ b/keyboards/mechwild/mercutio/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/mechwild/murphpad/keyboard.json b/keyboards/mechwild/murphpad/keyboard.json index 47d99f78e9d..303f3a9c960 100644 --- a/keyboards/mechwild/murphpad/keyboard.json +++ b/keyboards/mechwild/murphpad/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/mechwild/obe/info.json b/keyboards/mechwild/obe/info.json index 2247f69fac5..ca2709675da 100644 --- a/keyboards/mechwild/obe/info.json +++ b/keyboards/mechwild/obe/info.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/mechwild/sugarglider/f401/keyboard.json b/keyboards/mechwild/sugarglider/f401/keyboard.json index 7bf58c1b45e..bac52694ac1 100644 --- a/keyboards/mechwild/sugarglider/f401/keyboard.json +++ b/keyboards/mechwild/sugarglider/f401/keyboard.json @@ -4,7 +4,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "rgblight": true, diff --git a/keyboards/mechwild/sugarglider/f411/keyboard.json b/keyboards/mechwild/sugarglider/f411/keyboard.json index dd76af1f10e..91c830f3714 100644 --- a/keyboards/mechwild/sugarglider/f411/keyboard.json +++ b/keyboards/mechwild/sugarglider/f411/keyboard.json @@ -4,7 +4,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "rgblight": true, diff --git a/keyboards/mechwild/sugarglider/wide_oled/f401/keyboard.json b/keyboards/mechwild/sugarglider/wide_oled/f401/keyboard.json index 7bf58c1b45e..bac52694ac1 100644 --- a/keyboards/mechwild/sugarglider/wide_oled/f401/keyboard.json +++ b/keyboards/mechwild/sugarglider/wide_oled/f401/keyboard.json @@ -4,7 +4,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "rgblight": true, diff --git a/keyboards/mechwild/sugarglider/wide_oled/f411/keyboard.json b/keyboards/mechwild/sugarglider/wide_oled/f411/keyboard.json index dd76af1f10e..91c830f3714 100644 --- a/keyboards/mechwild/sugarglider/wide_oled/f411/keyboard.json +++ b/keyboards/mechwild/sugarglider/wide_oled/f411/keyboard.json @@ -4,7 +4,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "rgblight": true, diff --git a/keyboards/mehkee96/keyboard.json b/keyboards/mehkee96/keyboard.json index 326e91670d2..4a72232d36f 100644 --- a/keyboards/mehkee96/keyboard.json +++ b/keyboards/mehkee96/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/meletrix/zoom75/keyboard.json b/keyboards/meletrix/zoom75/keyboard.json index 20d7dc064a8..0cf5fd7ee9f 100644 --- a/keyboards/meletrix/zoom75/keyboard.json +++ b/keyboards/meletrix/zoom75/keyboard.json @@ -21,7 +21,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/meletrix/zoom98/keyboard.json b/keyboards/meletrix/zoom98/keyboard.json index b7d56729503..d8f870af85f 100644 --- a/keyboards/meletrix/zoom98/keyboard.json +++ b/keyboards/meletrix/zoom98/keyboard.json @@ -20,7 +20,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "rgb_matrix": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/melgeek/mach80/rev1/keyboard.json b/keyboards/melgeek/mach80/rev1/keyboard.json index 5cb145793db..5c504c4d23b 100644 --- a/keyboards/melgeek/mach80/rev1/keyboard.json +++ b/keyboards/melgeek/mach80/rev1/keyboard.json @@ -5,7 +5,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/melgeek/mach80/rev2/keyboard.json b/keyboards/melgeek/mach80/rev2/keyboard.json index 5cb145793db..5c504c4d23b 100644 --- a/keyboards/melgeek/mach80/rev2/keyboard.json +++ b/keyboards/melgeek/mach80/rev2/keyboard.json @@ -5,7 +5,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/melgeek/mj61/rev1/keyboard.json b/keyboards/melgeek/mj61/rev1/keyboard.json index e0bd315865d..24ca981a329 100644 --- a/keyboards/melgeek/mj61/rev1/keyboard.json +++ b/keyboards/melgeek/mj61/rev1/keyboard.json @@ -2,7 +2,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/melgeek/mj61/rev2/keyboard.json b/keyboards/melgeek/mj61/rev2/keyboard.json index 779cfc091c8..c7310857510 100644 --- a/keyboards/melgeek/mj61/rev2/keyboard.json +++ b/keyboards/melgeek/mj61/rev2/keyboard.json @@ -2,7 +2,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/melgeek/mj63/rev1/keyboard.json b/keyboards/melgeek/mj63/rev1/keyboard.json index e0bd315865d..24ca981a329 100644 --- a/keyboards/melgeek/mj63/rev1/keyboard.json +++ b/keyboards/melgeek/mj63/rev1/keyboard.json @@ -2,7 +2,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/melgeek/mj63/rev2/keyboard.json b/keyboards/melgeek/mj63/rev2/keyboard.json index 779cfc091c8..c7310857510 100644 --- a/keyboards/melgeek/mj63/rev2/keyboard.json +++ b/keyboards/melgeek/mj63/rev2/keyboard.json @@ -2,7 +2,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/melgeek/mj64/rev1/keyboard.json b/keyboards/melgeek/mj64/rev1/keyboard.json index e0bd315865d..24ca981a329 100644 --- a/keyboards/melgeek/mj64/rev1/keyboard.json +++ b/keyboards/melgeek/mj64/rev1/keyboard.json @@ -2,7 +2,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/melgeek/mj64/rev2/keyboard.json b/keyboards/melgeek/mj64/rev2/keyboard.json index e0bd315865d..24ca981a329 100644 --- a/keyboards/melgeek/mj64/rev2/keyboard.json +++ b/keyboards/melgeek/mj64/rev2/keyboard.json @@ -2,7 +2,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/melgeek/mj64/rev3/keyboard.json b/keyboards/melgeek/mj64/rev3/keyboard.json index 779cfc091c8..c7310857510 100644 --- a/keyboards/melgeek/mj64/rev3/keyboard.json +++ b/keyboards/melgeek/mj64/rev3/keyboard.json @@ -2,7 +2,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/melgeek/mj6xy/rev3/keyboard.json b/keyboards/melgeek/mj6xy/rev3/keyboard.json index ae44451236e..7207652c471 100644 --- a/keyboards/melgeek/mj6xy/rev3/keyboard.json +++ b/keyboards/melgeek/mj6xy/rev3/keyboard.json @@ -3,7 +3,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/melgeek/mojo68/rev1/keyboard.json b/keyboards/melgeek/mojo68/rev1/keyboard.json index d6388b089d7..5ea109520a9 100755 --- a/keyboards/melgeek/mojo68/rev1/keyboard.json +++ b/keyboards/melgeek/mojo68/rev1/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/melgeek/mojo75/rev1/keyboard.json b/keyboards/melgeek/mojo75/rev1/keyboard.json index dbc6cbceeef..5b2ab380a73 100644 --- a/keyboards/melgeek/mojo75/rev1/keyboard.json +++ b/keyboards/melgeek/mojo75/rev1/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/melgeek/tegic/rev1/keyboard.json b/keyboards/melgeek/tegic/rev1/keyboard.json index c15a54b39f8..b39f2345fab 100644 --- a/keyboards/melgeek/tegic/rev1/keyboard.json +++ b/keyboards/melgeek/tegic/rev1/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/melgeek/z70ultra/rev1/keyboard.json b/keyboards/melgeek/z70ultra/rev1/keyboard.json index 8f79b395fce..ef59825d70b 100644 --- a/keyboards/melgeek/z70ultra/rev1/keyboard.json +++ b/keyboards/melgeek/z70ultra/rev1/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/meow48/keyboard.json b/keyboards/meow48/keyboard.json index 3bb78af1168..456d2fb58eb 100644 --- a/keyboards/meow48/keyboard.json +++ b/keyboards/meow48/keyboard.json @@ -33,7 +33,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": false, diff --git a/keyboards/meow65/keyboard.json b/keyboards/meow65/keyboard.json index 5870152ee01..f72098cb4ca 100644 --- a/keyboards/meow65/keyboard.json +++ b/keyboards/meow65/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/merge/iso_macro/keyboard.json b/keyboards/merge/iso_macro/keyboard.json index bdf3737906f..087fda9616d 100644 --- a/keyboards/merge/iso_macro/keyboard.json +++ b/keyboards/merge/iso_macro/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/merge/uc1/keyboard.json b/keyboards/merge/uc1/keyboard.json index 85e9b03c64c..84059afdab8 100644 --- a/keyboards/merge/uc1/keyboard.json +++ b/keyboards/merge/uc1/keyboard.json @@ -33,7 +33,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/merge/um70/keyboard.json b/keyboards/merge/um70/keyboard.json index afb52d3d4ff..cd15bc90acd 100644 --- a/keyboards/merge/um70/keyboard.json +++ b/keyboards/merge/um70/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/merge/um80/keyboard.json b/keyboards/merge/um80/keyboard.json index ea233e8f1c8..5ef7c427cdb 100644 --- a/keyboards/merge/um80/keyboard.json +++ b/keyboards/merge/um80/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/mesa/mesa_tkl/keyboard.json b/keyboards/mesa/mesa_tkl/keyboard.json index 85d1c2b5a01..8c9c3425fc4 100644 --- a/keyboards/mesa/mesa_tkl/keyboard.json +++ b/keyboards/mesa/mesa_tkl/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/meson/keyboard.json b/keyboards/meson/keyboard.json index 62640890ca3..81a6140c23d 100644 --- a/keyboards/meson/keyboard.json +++ b/keyboards/meson/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/metamechs/timberwolf/keyboard.json b/keyboards/metamechs/timberwolf/keyboard.json index 262022d2d65..a78af540622 100644 --- a/keyboards/metamechs/timberwolf/keyboard.json +++ b/keyboards/metamechs/timberwolf/keyboard.json @@ -15,7 +15,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/miiiw/blackio83/rev_0100/keyboard.json b/keyboards/miiiw/blackio83/rev_0100/keyboard.json index d3fb31d109f..00f6402ec2d 100644 --- a/keyboards/miiiw/blackio83/rev_0100/keyboard.json +++ b/keyboards/miiiw/blackio83/rev_0100/keyboard.json @@ -8,7 +8,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "deferred_exec": true, "dip_switch": true, "extrakey": true, diff --git a/keyboards/mikeneko65/keyboard.json b/keyboards/mikeneko65/keyboard.json index 873bb7d042b..4b3c5142dea 100644 --- a/keyboards/mikeneko65/keyboard.json +++ b/keyboards/mikeneko65/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/miller/gm862/keyboard.json b/keyboards/miller/gm862/keyboard.json index 210b37b7b00..20aeffe1e60 100644 --- a/keyboards/miller/gm862/keyboard.json +++ b/keyboards/miller/gm862/keyboard.json @@ -44,7 +44,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/millipad/keyboard.json b/keyboards/millipad/keyboard.json index 7230fa750b4..b3970fceb27 100644 --- a/keyboards/millipad/keyboard.json +++ b/keyboards/millipad/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/mincedshon/ecila/keyboard.json b/keyboards/mincedshon/ecila/keyboard.json index 73e52b75904..a5ec2f5a0b5 100644 --- a/keyboards/mincedshon/ecila/keyboard.json +++ b/keyboards/mincedshon/ecila/keyboard.json @@ -33,7 +33,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/mini_elixivy/keyboard.json b/keyboards/mini_elixivy/keyboard.json index 2d45d70cf44..b2b26f99c4c 100644 --- a/keyboards/mini_elixivy/keyboard.json +++ b/keyboards/mini_elixivy/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/mini_ten_key_plus/keyboard.json b/keyboards/mini_ten_key_plus/keyboard.json index 10507fa6e57..da3d467068a 100644 --- a/keyboards/mini_ten_key_plus/keyboard.json +++ b/keyboards/mini_ten_key_plus/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/minimacro5/keyboard.json b/keyboards/minimacro5/keyboard.json index e500efa2518..18d21acc7a6 100644 --- a/keyboards/minimacro5/keyboard.json +++ b/keyboards/minimacro5/keyboard.json @@ -39,7 +39,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/minimon/bartlesplit/keyboard.json b/keyboards/minimon/bartlesplit/keyboard.json index 83f93560b6e..ceae2bb88ee 100644 --- a/keyboards/minimon/bartlesplit/keyboard.json +++ b/keyboards/minimon/bartlesplit/keyboard.json @@ -5,7 +5,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/minimon/index_tab/keyboard.json b/keyboards/minimon/index_tab/keyboard.json index 14e45241145..5fe07014bb0 100644 --- a/keyboards/minimon/index_tab/keyboard.json +++ b/keyboards/minimon/index_tab/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/mint60/keyboard.json b/keyboards/mint60/keyboard.json index 9fa69f5a3cb..85eef9889c4 100644 --- a/keyboards/mint60/keyboard.json +++ b/keyboards/mint60/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": false, diff --git a/keyboards/misonoworks/chocolatebar/keyboard.json b/keyboards/misonoworks/chocolatebar/keyboard.json index cf34557bb12..0ecfa3b660f 100644 --- a/keyboards/misonoworks/chocolatebar/keyboard.json +++ b/keyboards/misonoworks/chocolatebar/keyboard.json @@ -27,7 +27,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/misonoworks/karina/keyboard.json b/keyboards/misonoworks/karina/keyboard.json index 0d9d55d206c..5c095c8957e 100644 --- a/keyboards/misonoworks/karina/keyboard.json +++ b/keyboards/misonoworks/karina/keyboard.json @@ -30,7 +30,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/misterknife/knife66/keyboard.json b/keyboards/misterknife/knife66/keyboard.json index 3670b8a07fe..43e65e66ac3 100644 --- a/keyboards/misterknife/knife66/keyboard.json +++ b/keyboards/misterknife/knife66/keyboard.json @@ -33,7 +33,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/misterknife/knife66_iso/keyboard.json b/keyboards/misterknife/knife66_iso/keyboard.json index 3370afa1b5f..9f02cc4fd56 100644 --- a/keyboards/misterknife/knife66_iso/keyboard.json +++ b/keyboards/misterknife/knife66_iso/keyboard.json @@ -33,7 +33,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/miuni32/keyboard.json b/keyboards/miuni32/keyboard.json index b105d2f2b8c..1ff7d1a39a4 100644 --- a/keyboards/miuni32/keyboard.json +++ b/keyboards/miuni32/keyboard.json @@ -29,7 +29,6 @@ "features": { "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/mk65/keyboard.json b/keyboards/mk65/keyboard.json index 0a768ece5e7..c8cac57e390 100644 --- a/keyboards/mk65/keyboard.json +++ b/keyboards/mk65/keyboard.json @@ -26,7 +26,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "rgblight": true diff --git a/keyboards/ml/gas75/keyboard.json b/keyboards/ml/gas75/keyboard.json index 25289db9c8d..9fe14a6d99c 100644 --- a/keyboards/ml/gas75/keyboard.json +++ b/keyboards/ml/gas75/keyboard.json @@ -59,7 +59,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/mlego/m48/rev1/keyboard.json b/keyboards/mlego/m48/rev1/keyboard.json index efd38882951..951d8713a11 100644 --- a/keyboards/mlego/m48/rev1/keyboard.json +++ b/keyboards/mlego/m48/rev1/keyboard.json @@ -6,7 +6,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/mlego/m60/rev1/keyboard.json b/keyboards/mlego/m60/rev1/keyboard.json index 126338b0c8e..c2bb7df6140 100644 --- a/keyboards/mlego/m60/rev1/keyboard.json +++ b/keyboards/mlego/m60/rev1/keyboard.json @@ -6,7 +6,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/mlego/m65/rev1/keyboard.json b/keyboards/mlego/m65/rev1/keyboard.json index b763c2e2cf3..656128fdfab 100644 --- a/keyboards/mlego/m65/rev1/keyboard.json +++ b/keyboards/mlego/m65/rev1/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/mlego/m65/rev2/keyboard.json b/keyboards/mlego/m65/rev2/keyboard.json index f07f1280a41..f0aa70e90b5 100644 --- a/keyboards/mlego/m65/rev2/keyboard.json +++ b/keyboards/mlego/m65/rev2/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/mlego/m65/rev3/keyboard.json b/keyboards/mlego/m65/rev3/keyboard.json index 168a214a88a..386f929a110 100644 --- a/keyboards/mlego/m65/rev3/keyboard.json +++ b/keyboards/mlego/m65/rev3/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/mmkzoo65/keyboard.json b/keyboards/mmkzoo65/keyboard.json index 6e1c33273cb..d94cf6cf182 100644 --- a/keyboards/mmkzoo65/keyboard.json +++ b/keyboards/mmkzoo65/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/mntre/keyboard.json b/keyboards/mntre/keyboard.json index 26dc66dc48d..258ffca9c46 100644 --- a/keyboards/mntre/keyboard.json +++ b/keyboards/mntre/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": false, diff --git a/keyboards/mode/m256ws/keyboard.json b/keyboards/mode/m256ws/keyboard.json index 3a754fe7dbd..01190c2de51 100644 --- a/keyboards/mode/m256ws/keyboard.json +++ b/keyboards/mode/m256ws/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/mode/m60h/keyboard.json b/keyboards/mode/m60h/keyboard.json index 26095bb828f..c4c1297c191 100644 --- a/keyboards/mode/m60h/keyboard.json +++ b/keyboards/mode/m60h/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/mode/m60h_f/keyboard.json b/keyboards/mode/m60h_f/keyboard.json index 8a9a64ee656..b3a5aa5b3d2 100644 --- a/keyboards/mode/m60h_f/keyboard.json +++ b/keyboards/mode/m60h_f/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/mode/m60s/keyboard.json b/keyboards/mode/m60s/keyboard.json index 4a435967d61..18de64284b1 100644 --- a/keyboards/mode/m60s/keyboard.json +++ b/keyboards/mode/m60s/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/mode/m65ha_alpha/keyboard.json b/keyboards/mode/m65ha_alpha/keyboard.json index acf8845cd7c..2623a6643a2 100644 --- a/keyboards/mode/m65ha_alpha/keyboard.json +++ b/keyboards/mode/m65ha_alpha/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/mode/m65hi_alpha/keyboard.json b/keyboards/mode/m65hi_alpha/keyboard.json index f85e1f37561..db301ccb19c 100644 --- a/keyboards/mode/m65hi_alpha/keyboard.json +++ b/keyboards/mode/m65hi_alpha/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/mode/m65s/keyboard.json b/keyboards/mode/m65s/keyboard.json index bd11e38bf4a..91e39293cbc 100644 --- a/keyboards/mode/m65s/keyboard.json +++ b/keyboards/mode/m65s/keyboard.json @@ -17,7 +17,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/mode/m75h/keyboard.json b/keyboards/mode/m75h/keyboard.json index 6df6f28ab01..39fae0eb3ac 100644 --- a/keyboards/mode/m75h/keyboard.json +++ b/keyboards/mode/m75h/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/mode/m75s/keyboard.json b/keyboards/mode/m75s/keyboard.json index f345874bbfc..18090c8c285 100644 --- a/keyboards/mode/m75s/keyboard.json +++ b/keyboards/mode/m75s/keyboard.json @@ -14,7 +14,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/mode/m80v1/m80h/keyboard.json b/keyboards/mode/m80v1/m80h/keyboard.json index 9b7eeb85d23..5acb6a3fdd0 100644 --- a/keyboards/mode/m80v1/m80h/keyboard.json +++ b/keyboards/mode/m80v1/m80h/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/mode/m80v1/m80s/keyboard.json b/keyboards/mode/m80v1/m80s/keyboard.json index 4f93ef676c6..166d0716405 100644 --- a/keyboards/mode/m80v1/m80s/keyboard.json +++ b/keyboards/mode/m80v1/m80s/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/mode/m80v2/m80v2h/keyboard.json b/keyboards/mode/m80v2/m80v2h/keyboard.json index 1844e0775cd..86e4f563ccf 100644 --- a/keyboards/mode/m80v2/m80v2h/keyboard.json +++ b/keyboards/mode/m80v2/m80v2h/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/mode/m80v2/m80v2s/keyboard.json b/keyboards/mode/m80v2/m80v2s/keyboard.json index d8b4c8ee854..46fde3c1cae 100644 --- a/keyboards/mode/m80v2/m80v2s/keyboard.json +++ b/keyboards/mode/m80v2/m80v2s/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/mokey/ginkgo65/keyboard.json b/keyboards/mokey/ginkgo65/keyboard.json index bdee6ebf80e..fe3e5ad6ef7 100644 --- a/keyboards/mokey/ginkgo65/keyboard.json +++ b/keyboards/mokey/ginkgo65/keyboard.json @@ -14,7 +14,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/mokey/ginkgo65hot/keyboard.json b/keyboards/mokey/ginkgo65hot/keyboard.json index c42c2a87ff9..d11c81be589 100644 --- a/keyboards/mokey/ginkgo65hot/keyboard.json +++ b/keyboards/mokey/ginkgo65hot/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/mokey/ibis80/keyboard.json b/keyboards/mokey/ibis80/keyboard.json index 536de9aab61..2dc9ec4e053 100644 --- a/keyboards/mokey/ibis80/keyboard.json +++ b/keyboards/mokey/ibis80/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/mokey/luckycat70/keyboard.json b/keyboards/mokey/luckycat70/keyboard.json index 81d077f8a53..e0f0ee90292 100644 --- a/keyboards/mokey/luckycat70/keyboard.json +++ b/keyboards/mokey/luckycat70/keyboard.json @@ -12,7 +12,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": false, "rgblight": true diff --git a/keyboards/mokey/mokey63/keyboard.json b/keyboards/mokey/mokey63/keyboard.json index 40b45bcd41f..6374ec508f5 100644 --- a/keyboards/mokey/mokey63/keyboard.json +++ b/keyboards/mokey/mokey63/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/mokey/mokey64/keyboard.json b/keyboards/mokey/mokey64/keyboard.json index fbc50d4fd89..f5b34d69a24 100644 --- a/keyboards/mokey/mokey64/keyboard.json +++ b/keyboards/mokey/mokey64/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/mokey/xox70/keyboard.json b/keyboards/mokey/xox70/keyboard.json index 41980ed4ad1..74c0dcbc86f 100644 --- a/keyboards/mokey/xox70/keyboard.json +++ b/keyboards/mokey/xox70/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/mokey/xox70hot/keyboard.json b/keyboards/mokey/xox70hot/keyboard.json index 011e031ffe9..152839a674b 100644 --- a/keyboards/mokey/xox70hot/keyboard.json +++ b/keyboards/mokey/xox70hot/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/momoka_ergo/keyboard.json b/keyboards/momoka_ergo/keyboard.json index 23e0535d61f..9886dd4d4e4 100644 --- a/keyboards/momoka_ergo/keyboard.json +++ b/keyboards/momoka_ergo/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/momokai/aurora/keyboard.json b/keyboards/momokai/aurora/keyboard.json index 572d302663d..e095daa8b1a 100644 --- a/keyboards/momokai/aurora/keyboard.json +++ b/keyboards/momokai/aurora/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/momokai/tap_duo/keyboard.json b/keyboards/momokai/tap_duo/keyboard.json index 7658a7c5c65..636ed0209c0 100644 --- a/keyboards/momokai/tap_duo/keyboard.json +++ b/keyboards/momokai/tap_duo/keyboard.json @@ -51,7 +51,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/momokai/tap_trio/keyboard.json b/keyboards/momokai/tap_trio/keyboard.json index 9ce41ff5ad8..c0e297a782b 100644 --- a/keyboards/momokai/tap_trio/keyboard.json +++ b/keyboards/momokai/tap_trio/keyboard.json @@ -51,7 +51,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/monoflex60/keyboard.json b/keyboards/monoflex60/keyboard.json index 9be4b39202b..c7ea1130996 100644 --- a/keyboards/monoflex60/keyboard.json +++ b/keyboards/monoflex60/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/monsgeek/m1/keyboard.json b/keyboards/monsgeek/m1/keyboard.json index 1551b2a1137..937961a8665 100644 --- a/keyboards/monsgeek/m1/keyboard.json +++ b/keyboards/monsgeek/m1/keyboard.json @@ -15,7 +15,6 @@ "bootmagic": true, "mousekey": false, "extrakey": true, - "console": false, "command": false, "nkro": true, "encoder": true, diff --git a/keyboards/monsgeek/m3/keyboard.json b/keyboards/monsgeek/m3/keyboard.json index cb7c3abf212..8373271fb3f 100644 --- a/keyboards/monsgeek/m3/keyboard.json +++ b/keyboards/monsgeek/m3/keyboard.json @@ -21,7 +21,6 @@ "features": { "bootmagic": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "rgb_matrix": true diff --git a/keyboards/monsgeek/m5/keyboard.json b/keyboards/monsgeek/m5/keyboard.json index 3927181e2dc..db19740b1af 100644 --- a/keyboards/monsgeek/m5/keyboard.json +++ b/keyboards/monsgeek/m5/keyboard.json @@ -15,7 +15,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "rgb_matrix": true diff --git a/keyboards/monsgeek/m6/keyboard.json b/keyboards/monsgeek/m6/keyboard.json index 12d7def4c77..e770b8d4af0 100644 --- a/keyboards/monsgeek/m6/keyboard.json +++ b/keyboards/monsgeek/m6/keyboard.json @@ -15,7 +15,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "rgb_matrix": true diff --git a/keyboards/monstargear/xo87/rgb/keyboard.json b/keyboards/monstargear/xo87/rgb/keyboard.json index 5571b919907..9ee83deb006 100644 --- a/keyboards/monstargear/xo87/rgb/keyboard.json +++ b/keyboards/monstargear/xo87/rgb/keyboard.json @@ -67,7 +67,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/monstargear/xo87/solderable/keyboard.json b/keyboards/monstargear/xo87/solderable/keyboard.json index a230649b49c..c825b22ac18 100644 --- a/keyboards/monstargear/xo87/solderable/keyboard.json +++ b/keyboards/monstargear/xo87/solderable/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/moondrop/dash75/info.json b/keyboards/moondrop/dash75/info.json index 59f956815ea..7d04d7916eb 100644 --- a/keyboards/moondrop/dash75/info.json +++ b/keyboards/moondrop/dash75/info.json @@ -9,7 +9,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/mountainmechdesigns/teton_78/keyboard.json b/keyboards/mountainmechdesigns/teton_78/keyboard.json index 61ae4ac495e..9385edb8a4e 100644 --- a/keyboards/mountainmechdesigns/teton_78/keyboard.json +++ b/keyboards/mountainmechdesigns/teton_78/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ms_sculpt/keyboard.json b/keyboards/ms_sculpt/keyboard.json index 4fa0dcca483..153668baaff 100644 --- a/keyboards/ms_sculpt/keyboard.json +++ b/keyboards/ms_sculpt/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": false diff --git a/keyboards/mss_studio/m63_rgb/keyboard.json b/keyboards/mss_studio/m63_rgb/keyboard.json index 7647896711e..7ca20ede1b5 100644 --- a/keyboards/mss_studio/m63_rgb/keyboard.json +++ b/keyboards/mss_studio/m63_rgb/keyboard.json @@ -62,7 +62,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/mss_studio/m64_rgb/keyboard.json b/keyboards/mss_studio/m64_rgb/keyboard.json index 885d55055e4..52f0ccc8fc1 100644 --- a/keyboards/mss_studio/m64_rgb/keyboard.json +++ b/keyboards/mss_studio/m64_rgb/keyboard.json @@ -62,7 +62,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/mt/blocked65/keyboard.json b/keyboards/mt/blocked65/keyboard.json index d07ca870aee..da7e4fc6ee6 100644 --- a/keyboards/mt/blocked65/keyboard.json +++ b/keyboards/mt/blocked65/keyboard.json @@ -28,7 +28,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/mt/mt40/keyboard.json b/keyboards/mt/mt40/keyboard.json index e02109b1cc0..6afa3f12a76 100644 --- a/keyboards/mt/mt40/keyboard.json +++ b/keyboards/mt/mt40/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/mt/mt64rgb/keyboard.json b/keyboards/mt/mt64rgb/keyboard.json index bac2c213aa9..a901136e6ec 100644 --- a/keyboards/mt/mt64rgb/keyboard.json +++ b/keyboards/mt/mt64rgb/keyboard.json @@ -139,7 +139,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/mt/mt84/keyboard.json b/keyboards/mt/mt84/keyboard.json index 1f73f1d5a2c..1e17e5681fb 100644 --- a/keyboards/mt/mt84/keyboard.json +++ b/keyboards/mt/mt84/keyboard.json @@ -156,7 +156,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/mt/mt980/keyboard.json b/keyboards/mt/mt980/keyboard.json index 2fa17224cb4..bdf8e9db806 100644 --- a/keyboards/mt/mt980/keyboard.json +++ b/keyboards/mt/mt980/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": true, diff --git a/keyboards/mtbkeys/mtb60/hotswap/keyboard.json b/keyboards/mtbkeys/mtb60/hotswap/keyboard.json index cca7bb726ac..c8ef4316be0 100644 --- a/keyboards/mtbkeys/mtb60/hotswap/keyboard.json +++ b/keyboards/mtbkeys/mtb60/hotswap/keyboard.json @@ -35,7 +35,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/mtbkeys/mtb60/solder/keyboard.json b/keyboards/mtbkeys/mtb60/solder/keyboard.json index e1289816264..b8e3287de7e 100644 --- a/keyboards/mtbkeys/mtb60/solder/keyboard.json +++ b/keyboards/mtbkeys/mtb60/solder/keyboard.json @@ -35,7 +35,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/murcielago/rev1/keyboard.json b/keyboards/murcielago/rev1/keyboard.json index bba7cf90895..2b2aa862e38 100644 --- a/keyboards/murcielago/rev1/keyboard.json +++ b/keyboards/murcielago/rev1/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/mwstudio/alicekk/keyboard.json b/keyboards/mwstudio/alicekk/keyboard.json index 141be9909e3..61f03115d0f 100644 --- a/keyboards/mwstudio/alicekk/keyboard.json +++ b/keyboards/mwstudio/alicekk/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/mwstudio/mw65_black/keyboard.json b/keyboards/mwstudio/mw65_black/keyboard.json index 6ae4b6055ea..c6667671d86 100644 --- a/keyboards/mwstudio/mw65_black/keyboard.json +++ b/keyboards/mwstudio/mw65_black/keyboard.json @@ -18,7 +18,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/mwstudio/mw65_rgb/keyboard.json b/keyboards/mwstudio/mw65_rgb/keyboard.json index 25a33783f5b..e68ed851118 100644 --- a/keyboards/mwstudio/mw65_rgb/keyboard.json +++ b/keyboards/mwstudio/mw65_rgb/keyboard.json @@ -59,7 +59,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/mwstudio/mw660/keyboard.json b/keyboards/mwstudio/mw660/keyboard.json index 629eea28202..3e8fc91eefe 100644 --- a/keyboards/mwstudio/mw660/keyboard.json +++ b/keyboards/mwstudio/mw660/keyboard.json @@ -6,7 +6,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/mwstudio/mw75/keyboard.json b/keyboards/mwstudio/mw75/keyboard.json index 2d826b1c99f..e7169d37a6f 100644 --- a/keyboards/mwstudio/mw75/keyboard.json +++ b/keyboards/mwstudio/mw75/keyboard.json @@ -56,7 +56,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/mwstudio/mw75r2/keyboard.json b/keyboards/mwstudio/mw75r2/keyboard.json index 144a848b18f..2ec31300e9a 100644 --- a/keyboards/mwstudio/mw75r2/keyboard.json +++ b/keyboards/mwstudio/mw75r2/keyboard.json @@ -44,7 +44,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/mwstudio/mw80/keyboard.json b/keyboards/mwstudio/mw80/keyboard.json index 423ec94e0e0..c5d7c8d037f 100644 --- a/keyboards/mwstudio/mw80/keyboard.json +++ b/keyboards/mwstudio/mw80/keyboard.json @@ -6,7 +6,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/mxss/keyboard.json b/keyboards/mxss/keyboard.json index defa0ae6b7e..d6dc4b2a79d 100644 --- a/keyboards/mxss/keyboard.json +++ b/keyboards/mxss/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/mysticworks/wyvern/keyboard.json b/keyboards/mysticworks/wyvern/keyboard.json index 77f2aa19bd4..bccf089120d 100644 --- a/keyboards/mysticworks/wyvern/keyboard.json +++ b/keyboards/mysticworks/wyvern/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/nacly/sodium42/keyboard.json b/keyboards/nacly/sodium42/keyboard.json index 2db83408ac0..a1d7b65ab30 100644 --- a/keyboards/nacly/sodium42/keyboard.json +++ b/keyboards/nacly/sodium42/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/nacly/sodium50/keyboard.json b/keyboards/nacly/sodium50/keyboard.json index b9448c82171..e41495755f4 100644 --- a/keyboards/nacly/sodium50/keyboard.json +++ b/keyboards/nacly/sodium50/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/nacly/sodium62/keyboard.json b/keyboards/nacly/sodium62/keyboard.json index 904fa9568ae..ab16bf45fa1 100644 --- a/keyboards/nacly/sodium62/keyboard.json +++ b/keyboards/nacly/sodium62/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/nacly/splitreus62/keyboard.json b/keyboards/nacly/splitreus62/keyboard.json index e91b4bdc753..d3565786904 100644 --- a/keyboards/nacly/splitreus62/keyboard.json +++ b/keyboards/nacly/splitreus62/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/navi60/keyboard.json b/keyboards/navi60/keyboard.json index 8d41c7a1b3a..8266e9b2b18 100644 --- a/keyboards/navi60/keyboard.json +++ b/keyboards/navi60/keyboard.json @@ -18,7 +18,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true }, diff --git a/keyboards/ncc1701kb/keyboard.json b/keyboards/ncc1701kb/keyboard.json index 753db62d7f8..13e244f7ce6 100644 --- a/keyboards/ncc1701kb/keyboard.json +++ b/keyboards/ncc1701kb/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/neito/keyboard.json b/keyboards/neito/keyboard.json index d79ab685082..7c9934fa65a 100644 --- a/keyboards/neito/keyboard.json +++ b/keyboards/neito/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/neokeys/g67/element_hs/keyboard.json b/keyboards/neokeys/g67/element_hs/keyboard.json index 489e2d90ede..5245fb3fa0d 100644 --- a/keyboards/neokeys/g67/element_hs/keyboard.json +++ b/keyboards/neokeys/g67/element_hs/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "key_lock": true, "mousekey": true, diff --git a/keyboards/neokeys/g67/hotswap/keyboard.json b/keyboards/neokeys/g67/hotswap/keyboard.json index ec28fdabb76..47a1786a5be 100644 --- a/keyboards/neokeys/g67/hotswap/keyboard.json +++ b/keyboards/neokeys/g67/hotswap/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "key_lock": true, "mousekey": true, diff --git a/keyboards/neokeys/g67/soldered/keyboard.json b/keyboards/neokeys/g67/soldered/keyboard.json index 8944ff3d7b9..896673f23ee 100644 --- a/keyboards/neokeys/g67/soldered/keyboard.json +++ b/keyboards/neokeys/g67/soldered/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/neson_design/nico/keyboard.json b/keyboards/neson_design/nico/keyboard.json index 6efa5ee7037..96cfff16ef4 100644 --- a/keyboards/neson_design/nico/keyboard.json +++ b/keyboards/neson_design/nico/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/newgame40/keyboard.json b/keyboards/newgame40/keyboard.json index 63ae114f2ee..0886f556238 100644 --- a/keyboards/newgame40/keyboard.json +++ b/keyboards/newgame40/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/nibiria/stream15/keyboard.json b/keyboards/nibiria/stream15/keyboard.json index 6edcb701833..12f24d41bbb 100644 --- a/keyboards/nibiria/stream15/keyboard.json +++ b/keyboards/nibiria/stream15/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/nightingale_studios/hailey/keyboard.json b/keyboards/nightingale_studios/hailey/keyboard.json index f8c2455958d..564be592a51 100644 --- a/keyboards/nightingale_studios/hailey/keyboard.json +++ b/keyboards/nightingale_studios/hailey/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/nightly_boards/adellein/keyboard.json b/keyboards/nightly_boards/adellein/keyboard.json index 64b345f0733..889270637d9 100644 --- a/keyboards/nightly_boards/adellein/keyboard.json +++ b/keyboards/nightly_boards/adellein/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/nightly_boards/alter/rev1/keyboard.json b/keyboards/nightly_boards/alter/rev1/keyboard.json index 3f4d3055f6d..df3d755ce89 100644 --- a/keyboards/nightly_boards/alter/rev1/keyboard.json +++ b/keyboards/nightly_boards/alter/rev1/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/nightly_boards/alter_lite/keyboard.json b/keyboards/nightly_boards/alter_lite/keyboard.json index 8e51d6ae6b8..01ec32939c1 100644 --- a/keyboards/nightly_boards/alter_lite/keyboard.json +++ b/keyboards/nightly_boards/alter_lite/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/nightly_boards/conde60/keyboard.json b/keyboards/nightly_boards/conde60/keyboard.json index 0c78a269b39..65de34d6d71 100644 --- a/keyboards/nightly_boards/conde60/keyboard.json +++ b/keyboards/nightly_boards/conde60/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/nightly_boards/daily60/keyboard.json b/keyboards/nightly_boards/daily60/keyboard.json index d3614d1b440..8c9f2616ecb 100644 --- a/keyboards/nightly_boards/daily60/keyboard.json +++ b/keyboards/nightly_boards/daily60/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/nightly_boards/jisoo/keyboard.json b/keyboards/nightly_boards/jisoo/keyboard.json index 21b8122497f..c48c006d292 100644 --- a/keyboards/nightly_boards/jisoo/keyboard.json +++ b/keyboards/nightly_boards/jisoo/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/nightly_boards/n2/keyboard.json b/keyboards/nightly_boards/n2/keyboard.json index db52cde6f9c..44b113c574f 100644 --- a/keyboards/nightly_boards/n2/keyboard.json +++ b/keyboards/nightly_boards/n2/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/nightly_boards/n60_s/keyboard.json b/keyboards/nightly_boards/n60_s/keyboard.json index 664ff84c186..4689a631ac3 100644 --- a/keyboards/nightly_boards/n60_s/keyboard.json +++ b/keyboards/nightly_boards/n60_s/keyboard.json @@ -14,7 +14,6 @@ "audio": true, "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/nightly_boards/n87/keyboard.json b/keyboards/nightly_boards/n87/keyboard.json index 150022038c6..327389384aa 100644 --- a/keyboards/nightly_boards/n87/keyboard.json +++ b/keyboards/nightly_boards/n87/keyboard.json @@ -11,7 +11,6 @@ "audio": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/nightly_boards/n9/keyboard.json b/keyboards/nightly_boards/n9/keyboard.json index 23d09fbfb6f..2bf12b196f9 100644 --- a/keyboards/nightly_boards/n9/keyboard.json +++ b/keyboards/nightly_boards/n9/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/nightly_boards/octopad/keyboard.json b/keyboards/nightly_boards/octopad/keyboard.json index 9b0128e3d06..e2263a0ac14 100644 --- a/keyboards/nightly_boards/octopad/keyboard.json +++ b/keyboards/nightly_boards/octopad/keyboard.json @@ -14,7 +14,6 @@ "audio": true, "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/nightly_boards/octopadplus/keyboard.json b/keyboards/nightly_boards/octopadplus/keyboard.json index 5ba2d414b60..78d89ab14c7 100644 --- a/keyboards/nightly_boards/octopadplus/keyboard.json +++ b/keyboards/nightly_boards/octopadplus/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/nightly_boards/paraluman/keyboard.json b/keyboards/nightly_boards/paraluman/keyboard.json index 78fd1e68539..9478617b3b9 100644 --- a/keyboards/nightly_boards/paraluman/keyboard.json +++ b/keyboards/nightly_boards/paraluman/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/nightly_boards/ph_arisu/keyboard.json b/keyboards/nightly_boards/ph_arisu/keyboard.json index 55f9e6e90c7..1c307f0527a 100644 --- a/keyboards/nightly_boards/ph_arisu/keyboard.json +++ b/keyboards/nightly_boards/ph_arisu/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/nimrod/keyboard.json b/keyboards/nimrod/keyboard.json index 08351efb20c..162b13341e0 100644 --- a/keyboards/nimrod/keyboard.json +++ b/keyboards/nimrod/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/ning/tiny_board/tb16_rgb/keyboard.json b/keyboards/ning/tiny_board/tb16_rgb/keyboard.json index 37565377728..260153a6222 100644 --- a/keyboards/ning/tiny_board/tb16_rgb/keyboard.json +++ b/keyboards/ning/tiny_board/tb16_rgb/keyboard.json @@ -6,7 +6,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/nix_studio/lilith/keyboard.json b/keyboards/nix_studio/lilith/keyboard.json index 7fe03ef8063..d41a656d9da 100644 --- a/keyboards/nix_studio/lilith/keyboard.json +++ b/keyboards/nix_studio/lilith/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/nix_studio/oxalys80/keyboard.json b/keyboards/nix_studio/oxalys80/keyboard.json index 8cd4598957c..97d23456af1 100644 --- a/keyboards/nix_studio/oxalys80/keyboard.json +++ b/keyboards/nix_studio/oxalys80/keyboard.json @@ -14,7 +14,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/nixkeyboards/day_off/keyboard.json b/keyboards/nixkeyboards/day_off/keyboard.json index 2edbcdf883b..82719eb1ae1 100644 --- a/keyboards/nixkeyboards/day_off/keyboard.json +++ b/keyboards/nixkeyboards/day_off/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/nopunin10did/jabberwocky/v1/keyboard.json b/keyboards/nopunin10did/jabberwocky/v1/keyboard.json index 6c8b71460e4..277d5bf7751 100644 --- a/keyboards/nopunin10did/jabberwocky/v1/keyboard.json +++ b/keyboards/nopunin10did/jabberwocky/v1/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/nopunin10did/jabberwocky/v2/keyboard.json b/keyboards/nopunin10did/jabberwocky/v2/keyboard.json index 7c688039a37..53c035bc030 100644 --- a/keyboards/nopunin10did/jabberwocky/v2/keyboard.json +++ b/keyboards/nopunin10did/jabberwocky/v2/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/nopunin10did/kastenwagen1840/keyboard.json b/keyboards/nopunin10did/kastenwagen1840/keyboard.json index 771df3d82c7..0118c3a4a89 100644 --- a/keyboards/nopunin10did/kastenwagen1840/keyboard.json +++ b/keyboards/nopunin10did/kastenwagen1840/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/nopunin10did/kastenwagen48/keyboard.json b/keyboards/nopunin10did/kastenwagen48/keyboard.json index 58a9d7c2a80..f7b1264f00a 100644 --- a/keyboards/nopunin10did/kastenwagen48/keyboard.json +++ b/keyboards/nopunin10did/kastenwagen48/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/nopunin10did/railroad/rev0/keyboard.json b/keyboards/nopunin10did/railroad/rev0/keyboard.json index 7dcc17f7620..6e70455d4a0 100644 --- a/keyboards/nopunin10did/railroad/rev0/keyboard.json +++ b/keyboards/nopunin10did/railroad/rev0/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/nopunin10did/styrkatmel/keyboard.json b/keyboards/nopunin10did/styrkatmel/keyboard.json index 98a9597b34d..cc38a59f751 100644 --- a/keyboards/nopunin10did/styrkatmel/keyboard.json +++ b/keyboards/nopunin10did/styrkatmel/keyboard.json @@ -12,7 +12,6 @@ "backlight": false, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/novelkeys/nk1/keyboard.json b/keyboards/novelkeys/nk1/keyboard.json index 0fa15cf9f2a..8df47acb66c 100755 --- a/keyboards/novelkeys/nk1/keyboard.json +++ b/keyboards/novelkeys/nk1/keyboard.json @@ -34,7 +34,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/novelkeys/nk_classic_tkl/keyboard.json b/keyboards/novelkeys/nk_classic_tkl/keyboard.json index 53d10ce32ae..00f2c763d2f 100755 --- a/keyboards/novelkeys/nk_classic_tkl/keyboard.json +++ b/keyboards/novelkeys/nk_classic_tkl/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/novelkeys/nk_classic_tkl_iso/keyboard.json b/keyboards/novelkeys/nk_classic_tkl_iso/keyboard.json index 12085cbacc1..54173de266c 100755 --- a/keyboards/novelkeys/nk_classic_tkl_iso/keyboard.json +++ b/keyboards/novelkeys/nk_classic_tkl_iso/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/novelkeys/nk_plus/keyboard.json b/keyboards/novelkeys/nk_plus/keyboard.json index b823d2808b8..a7e065e4f5e 100755 --- a/keyboards/novelkeys/nk_plus/keyboard.json +++ b/keyboards/novelkeys/nk_plus/keyboard.json @@ -16,7 +16,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/noxary/268_2/keyboard.json b/keyboards/noxary/268_2/keyboard.json index 378d216f29a..ee37cb28007 100644 --- a/keyboards/noxary/268_2/keyboard.json +++ b/keyboards/noxary/268_2/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/noxary/268_2_rgb/keyboard.json b/keyboards/noxary/268_2_rgb/keyboard.json index a36c5308630..7db5f23050a 100644 --- a/keyboards/noxary/268_2_rgb/keyboard.json +++ b/keyboards/noxary/268_2_rgb/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/noxary/378/keyboard.json b/keyboards/noxary/378/keyboard.json index 7c66448832f..2927dc1f3da 100644 --- a/keyboards/noxary/378/keyboard.json +++ b/keyboards/noxary/378/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/noxary/valhalla/keyboard.json b/keyboards/noxary/valhalla/keyboard.json index 817a46ed29a..9d5a521fb53 100644 --- a/keyboards/noxary/valhalla/keyboard.json +++ b/keyboards/noxary/valhalla/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/noxary/valhalla_v2/keyboard.json b/keyboards/noxary/valhalla_v2/keyboard.json index 88ae2b89976..cf187e5ba0a 100644 --- a/keyboards/noxary/valhalla_v2/keyboard.json +++ b/keyboards/noxary/valhalla_v2/keyboard.json @@ -15,7 +15,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "backlight": true, "nkro": true }, diff --git a/keyboards/noxary/vulcan/keyboard.json b/keyboards/noxary/vulcan/keyboard.json index 821cb000b59..18dab7063d4 100644 --- a/keyboards/noxary/vulcan/keyboard.json +++ b/keyboards/noxary/vulcan/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/noxary/x268/keyboard.json b/keyboards/noxary/x268/keyboard.json index bc690815a63..2de3163fcc8 100644 --- a/keyboards/noxary/x268/keyboard.json +++ b/keyboards/noxary/x268/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/np12/keyboard.json b/keyboards/np12/keyboard.json index d7f6f8cfb7c..f21ef00d083 100644 --- a/keyboards/np12/keyboard.json +++ b/keyboards/np12/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/null/st110r2/keyboard.json b/keyboards/null/st110r2/keyboard.json index b83e9746e13..7a3589cdcb7 100644 --- a/keyboards/null/st110r2/keyboard.json +++ b/keyboards/null/st110r2/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/nyhxis/nfr_70/keyboard.json b/keyboards/nyhxis/nfr_70/keyboard.json index 0fbb4681d8a..993beb0332f 100644 --- a/keyboards/nyhxis/nfr_70/keyboard.json +++ b/keyboards/nyhxis/nfr_70/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/obosob/arch_36/keyboard.json b/keyboards/obosob/arch_36/keyboard.json index d24bab73347..625eec4a456 100644 --- a/keyboards/obosob/arch_36/keyboard.json +++ b/keyboards/obosob/arch_36/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/obosob/steal_this_keyboard/keyboard.json b/keyboards/obosob/steal_this_keyboard/keyboard.json index cc99431b5aa..38d79365367 100644 --- a/keyboards/obosob/steal_this_keyboard/keyboard.json +++ b/keyboards/obosob/steal_this_keyboard/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/ocean/addon/keyboard.json b/keyboards/ocean/addon/keyboard.json index b7502a28b69..9a7ad772728 100644 --- a/keyboards/ocean/addon/keyboard.json +++ b/keyboards/ocean/addon/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ocean/gin_v2/keyboard.json b/keyboards/ocean/gin_v2/keyboard.json index 9485af7df6d..9c5ae278b20 100644 --- a/keyboards/ocean/gin_v2/keyboard.json +++ b/keyboards/ocean/gin_v2/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ocean/slamz/keyboard.json b/keyboards/ocean/slamz/keyboard.json index 56344963f17..53fc0f609e4 100644 --- a/keyboards/ocean/slamz/keyboard.json +++ b/keyboards/ocean/slamz/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ocean/stealth/keyboard.json b/keyboards/ocean/stealth/keyboard.json index f5ed562fab0..6232c641fbb 100644 --- a/keyboards/ocean/stealth/keyboard.json +++ b/keyboards/ocean/stealth/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ocean/sus/keyboard.json b/keyboards/ocean/sus/keyboard.json index ea2b1e326a1..0bfdaa7b45f 100644 --- a/keyboards/ocean/sus/keyboard.json +++ b/keyboards/ocean/sus/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ocean/wang_ergo/keyboard.json b/keyboards/ocean/wang_ergo/keyboard.json index 758544e5221..ef329649373 100644 --- a/keyboards/ocean/wang_ergo/keyboard.json +++ b/keyboards/ocean/wang_ergo/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ocean/wang_v2/keyboard.json b/keyboards/ocean/wang_v2/keyboard.json index 1507d8634b5..c5913f25b22 100644 --- a/keyboards/ocean/wang_v2/keyboard.json +++ b/keyboards/ocean/wang_v2/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ocean/yuri/keyboard.json b/keyboards/ocean/yuri/keyboard.json index 6542de2cdae..ec0a7f60e2a 100644 --- a/keyboards/ocean/yuri/keyboard.json +++ b/keyboards/ocean/yuri/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/odelia/keyboard.json b/keyboards/odelia/keyboard.json index 671d750e4e3..373fea5f06c 100644 --- a/keyboards/odelia/keyboard.json +++ b/keyboards/odelia/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/ogre/ergo_single/keyboard.json b/keyboards/ogre/ergo_single/keyboard.json index 9fbc54db428..a79046cdae4 100644 --- a/keyboards/ogre/ergo_single/keyboard.json +++ b/keyboards/ogre/ergo_single/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": false, diff --git a/keyboards/ogre/ergo_split/keyboard.json b/keyboards/ogre/ergo_split/keyboard.json index 5c5d750add8..fbe2204bcc5 100644 --- a/keyboards/ogre/ergo_split/keyboard.json +++ b/keyboards/ogre/ergo_split/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": false, diff --git a/keyboards/ok60/keyboard.json b/keyboards/ok60/keyboard.json index 98d19c77b74..7aea8463d8c 100644 --- a/keyboards/ok60/keyboard.json +++ b/keyboards/ok60/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/onekeyco/dango40/keyboard.json b/keyboards/onekeyco/dango40/keyboard.json index 8a41f253253..5ff823a9812 100644 --- a/keyboards/onekeyco/dango40/keyboard.json +++ b/keyboards/onekeyco/dango40/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/orange75/keyboard.json b/keyboards/orange75/keyboard.json index e7941d242fd..7da52e27955 100644 --- a/keyboards/orange75/keyboard.json +++ b/keyboards/orange75/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/org60/keyboard.json b/keyboards/org60/keyboard.json index d5c52607009..e0a735d2d94 100644 --- a/keyboards/org60/keyboard.json +++ b/keyboards/org60/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/ortho5by12/keyboard.json b/keyboards/ortho5by12/keyboard.json index 5bcd1e00fcd..cb0fec114ca 100644 --- a/keyboards/ortho5by12/keyboard.json +++ b/keyboards/ortho5by12/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/orthograph/keyboard.json b/keyboards/orthograph/keyboard.json index a3fbf634e52..7215a133d5a 100644 --- a/keyboards/orthograph/keyboard.json +++ b/keyboards/orthograph/keyboard.json @@ -17,7 +17,6 @@ "rgb_matrix": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/owlab/jelly_epoch/hotswap/keyboard.json b/keyboards/owlab/jelly_epoch/hotswap/keyboard.json index 38db4c965b3..a92fa1212bf 100644 --- a/keyboards/owlab/jelly_epoch/hotswap/keyboard.json +++ b/keyboards/owlab/jelly_epoch/hotswap/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/owlab/jelly_epoch/soldered/keyboard.json b/keyboards/owlab/jelly_epoch/soldered/keyboard.json index 5a12cdf0e9e..29a963b1b9c 100644 --- a/keyboards/owlab/jelly_epoch/soldered/keyboard.json +++ b/keyboards/owlab/jelly_epoch/soldered/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/owlab/spring/keyboard.json b/keyboards/owlab/spring/keyboard.json index 7e2ce90bd43..8716d2f80f5 100644 --- a/keyboards/owlab/spring/keyboard.json +++ b/keyboards/owlab/spring/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/owlab/suit80/ansi/keyboard.json b/keyboards/owlab/suit80/ansi/keyboard.json index c76c9d16dd9..00f54e6656a 100644 --- a/keyboards/owlab/suit80/ansi/keyboard.json +++ b/keyboards/owlab/suit80/ansi/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/owlab/suit80/iso/keyboard.json b/keyboards/owlab/suit80/iso/keyboard.json index 5bdd1cbacc9..f3c6afb79cf 100644 --- a/keyboards/owlab/suit80/iso/keyboard.json +++ b/keyboards/owlab/suit80/iso/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/owlab/voice65/hotswap/keyboard.json b/keyboards/owlab/voice65/hotswap/keyboard.json index 088cde40016..e85d4b69ec6 100644 --- a/keyboards/owlab/voice65/hotswap/keyboard.json +++ b/keyboards/owlab/voice65/hotswap/keyboard.json @@ -67,7 +67,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/owlab/voice65/soldered/keyboard.json b/keyboards/owlab/voice65/soldered/keyboard.json index 7aab520f761..a1de099f435 100644 --- a/keyboards/owlab/voice65/soldered/keyboard.json +++ b/keyboards/owlab/voice65/soldered/keyboard.json @@ -67,7 +67,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/p3d/glitch/keyboard.json b/keyboards/p3d/glitch/keyboard.json index 5de1405f4ff..7dd6eff6f0d 100644 --- a/keyboards/p3d/glitch/keyboard.json +++ b/keyboards/p3d/glitch/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/p3d/q4z/keyboard.json b/keyboards/p3d/q4z/keyboard.json index 0ba3ff129b5..6e5ef8bd802 100644 --- a/keyboards/p3d/q4z/keyboard.json +++ b/keyboards/p3d/q4z/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/p3d/spacey/keyboard.json b/keyboards/p3d/spacey/keyboard.json index 07e1ebf818f..e3f1350a83d 100644 --- a/keyboards/p3d/spacey/keyboard.json +++ b/keyboards/p3d/spacey/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/p3d/synapse/keyboard.json b/keyboards/p3d/synapse/keyboard.json index a73b3d4315a..4cb0f843824 100644 --- a/keyboards/p3d/synapse/keyboard.json +++ b/keyboards/p3d/synapse/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/p3d/tw40/keyboard.json b/keyboards/p3d/tw40/keyboard.json index 459e187533d..d5a6ac3292c 100644 --- a/keyboards/p3d/tw40/keyboard.json +++ b/keyboards/p3d/tw40/keyboard.json @@ -29,7 +29,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/pabile/p18/keyboard.json b/keyboards/pabile/p18/keyboard.json index 4bc6047ec06..5c3bc11fd6d 100644 --- a/keyboards/pabile/p18/keyboard.json +++ b/keyboards/pabile/p18/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/pabile/p20/ver1/keyboard.json b/keyboards/pabile/p20/ver1/keyboard.json index e909617faa7..1a970456914 100644 --- a/keyboards/pabile/p20/ver1/keyboard.json +++ b/keyboards/pabile/p20/ver1/keyboard.json @@ -6,7 +6,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/pabile/p20/ver2/keyboard.json b/keyboards/pabile/p20/ver2/keyboard.json index b6688d870eb..a69c7b14a1e 100644 --- a/keyboards/pabile/p20/ver2/keyboard.json +++ b/keyboards/pabile/p20/ver2/keyboard.json @@ -6,7 +6,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/pabile/p40/keyboard.json b/keyboards/pabile/p40/keyboard.json index 980da54a06a..4eedf0e7a8c 100644 --- a/keyboards/pabile/p40/keyboard.json +++ b/keyboards/pabile/p40/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/pabile/p40_ortho/keyboard.json b/keyboards/pabile/p40_ortho/keyboard.json index 305c0ad3312..cea0e6fb36e 100644 --- a/keyboards/pabile/p40_ortho/keyboard.json +++ b/keyboards/pabile/p40_ortho/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/pabile/p42/keyboard.json b/keyboards/pabile/p42/keyboard.json index 70dcb097444..4c16123bd69 100644 --- a/keyboards/pabile/p42/keyboard.json +++ b/keyboards/pabile/p42/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/panc40/keyboard.json b/keyboards/panc40/keyboard.json index 9aef199fb36..4c89f6132f9 100644 --- a/keyboards/panc40/keyboard.json +++ b/keyboards/panc40/keyboard.json @@ -30,7 +30,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/panc60/keyboard.json b/keyboards/panc60/keyboard.json index a1e61b7999d..5dbfe257e98 100644 --- a/keyboards/panc60/keyboard.json +++ b/keyboards/panc60/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/pangorin/tan67/keyboard.json b/keyboards/pangorin/tan67/keyboard.json index 5b36fd7a400..aef7b607651 100644 --- a/keyboards/pangorin/tan67/keyboard.json +++ b/keyboards/pangorin/tan67/keyboard.json @@ -18,7 +18,6 @@ "bootmagic": true, "mousekey": false, "extrakey": true, - "console": false, "command": false, "nkro": true, "rgb_matrix": true diff --git a/keyboards/papercranekeyboards/gerald65/keyboard.json b/keyboards/papercranekeyboards/gerald65/keyboard.json index 55d42eb93c1..dd57037b026 100644 --- a/keyboards/papercranekeyboards/gerald65/keyboard.json +++ b/keyboards/papercranekeyboards/gerald65/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/paprikman/albacore/keyboard.json b/keyboards/paprikman/albacore/keyboard.json index 1ee4b998f7a..579b4b37e3e 100644 --- a/keyboards/paprikman/albacore/keyboard.json +++ b/keyboards/paprikman/albacore/keyboard.json @@ -19,7 +19,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/parallel/parallel_65/hotswap/keyboard.json b/keyboards/parallel/parallel_65/hotswap/keyboard.json index 8b1e31191f9..f9ce4752bc5 100644 --- a/keyboards/parallel/parallel_65/hotswap/keyboard.json +++ b/keyboards/parallel/parallel_65/hotswap/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/parallel/parallel_65/soldered/keyboard.json b/keyboards/parallel/parallel_65/soldered/keyboard.json index 2e8d049dbf6..d854960f682 100644 --- a/keyboards/parallel/parallel_65/soldered/keyboard.json +++ b/keyboards/parallel/parallel_65/soldered/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/pauperboards/brick/keyboard.json b/keyboards/pauperboards/brick/keyboard.json index d1267f08918..53678f0f40e 100644 --- a/keyboards/pauperboards/brick/keyboard.json +++ b/keyboards/pauperboards/brick/keyboard.json @@ -18,7 +18,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/pearl/keyboard.json b/keyboards/pearl/keyboard.json index 60c5bb3a375..c839c54e194 100644 --- a/keyboards/pearl/keyboard.json +++ b/keyboards/pearl/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/pearlboards/pandora/keyboard.json b/keyboards/pearlboards/pandora/keyboard.json index 59dc1ed9557..5cedcaa6303 100644 --- a/keyboards/pearlboards/pandora/keyboard.json +++ b/keyboards/pearlboards/pandora/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "dip_switch": true, "encoder": true, "extrakey": true, diff --git a/keyboards/pearlboards/zeuspad/keyboard.json b/keyboards/pearlboards/zeuspad/keyboard.json index 0e1c6267822..686636f427a 100644 --- a/keyboards/pearlboards/zeuspad/keyboard.json +++ b/keyboards/pearlboards/zeuspad/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/peej/lumberjack/keyboard.json b/keyboards/peej/lumberjack/keyboard.json index c94cb008be8..79dc4e4b226 100644 --- a/keyboards/peej/lumberjack/keyboard.json +++ b/keyboards/peej/lumberjack/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/peej/tripel/info.json b/keyboards/peej/tripel/info.json index 8e357205f96..7a5c12461a7 100644 --- a/keyboards/peej/tripel/info.json +++ b/keyboards/peej/tripel/info.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/pegasus/keyboard.json b/keyboards/pegasus/keyboard.json index 9c12de8ea05..50579bf86ab 100644 --- a/keyboards/pegasus/keyboard.json +++ b/keyboards/pegasus/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/percent/canoe/keyboard.json b/keyboards/percent/canoe/keyboard.json index d88225c656e..354b1164d93 100644 --- a/keyboards/percent/canoe/keyboard.json +++ b/keyboards/percent/canoe/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/percent/skog/keyboard.json b/keyboards/percent/skog/keyboard.json index 56751e56b70..da210410efa 100644 --- a/keyboards/percent/skog/keyboard.json +++ b/keyboards/percent/skog/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/percent/skog_lite/keyboard.json b/keyboards/percent/skog_lite/keyboard.json index 798ed34a5db..f1e925d2ead 100644 --- a/keyboards/percent/skog_lite/keyboard.json +++ b/keyboards/percent/skog_lite/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/phantom/keyboard.json b/keyboards/phantom/keyboard.json index 6f2b99b2b11..79d94cce6e2 100644 --- a/keyboards/phantom/keyboard.json +++ b/keyboards/phantom/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/phdesign/phac/keyboard.json b/keyboards/phdesign/phac/keyboard.json index 5e5db876c00..615232791f1 100644 --- a/keyboards/phdesign/phac/keyboard.json +++ b/keyboards/phdesign/phac/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/phrygian/ph100/keyboard.json b/keyboards/phrygian/ph100/keyboard.json index 3d0c611862c..927b31e7978 100644 --- a/keyboards/phrygian/ph100/keyboard.json +++ b/keyboards/phrygian/ph100/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/piantoruv44/keyboard.json b/keyboards/piantoruv44/keyboard.json index e2374dca6da..96267e18e8b 100644 --- a/keyboards/piantoruv44/keyboard.json +++ b/keyboards/piantoruv44/keyboard.json @@ -9,7 +9,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/pica40/rev1/keyboard.json b/keyboards/pica40/rev1/keyboard.json index fdb4cb09b36..2f4e15aaa18 100644 --- a/keyboards/pica40/rev1/keyboard.json +++ b/keyboards/pica40/rev1/keyboard.json @@ -9,7 +9,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "mousekey": true, "extrakey": true, "encoder": true, diff --git a/keyboards/pica40/rev2/keyboard.json b/keyboards/pica40/rev2/keyboard.json index 64b043f274e..52cc64f39e0 100644 --- a/keyboards/pica40/rev2/keyboard.json +++ b/keyboards/pica40/rev2/keyboard.json @@ -15,7 +15,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "mousekey": true, "extrakey": true, "encoder": true, diff --git a/keyboards/picolab/frusta_fundamental/keyboard.json b/keyboards/picolab/frusta_fundamental/keyboard.json index 56c145e03c6..b171e593189 100644 --- a/keyboards/picolab/frusta_fundamental/keyboard.json +++ b/keyboards/picolab/frusta_fundamental/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/pimentoso/paddino02/rev1/keyboard.json b/keyboards/pimentoso/paddino02/rev1/keyboard.json index 20c144c795d..37cbd3cd730 100644 --- a/keyboards/pimentoso/paddino02/rev1/keyboard.json +++ b/keyboards/pimentoso/paddino02/rev1/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/pimentoso/paddino02/rev2/left/keyboard.json b/keyboards/pimentoso/paddino02/rev2/left/keyboard.json index 00447c549ba..86aa9c91ac0 100644 --- a/keyboards/pimentoso/paddino02/rev2/left/keyboard.json +++ b/keyboards/pimentoso/paddino02/rev2/left/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/pimentoso/paddino02/rev2/right/keyboard.json b/keyboards/pimentoso/paddino02/rev2/right/keyboard.json index 4c12bc23fae..f43ced53e8f 100644 --- a/keyboards/pimentoso/paddino02/rev2/right/keyboard.json +++ b/keyboards/pimentoso/paddino02/rev2/right/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/pimentoso/touhoupad/keyboard.json b/keyboards/pimentoso/touhoupad/keyboard.json index 3e4655abfb9..2deeb6d763a 100644 --- a/keyboards/pimentoso/touhoupad/keyboard.json +++ b/keyboards/pimentoso/touhoupad/keyboard.json @@ -26,7 +26,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/pisces/keyboard.json b/keyboards/pisces/keyboard.json index 1601cbc3a99..792ec0b48a6 100644 --- a/keyboards/pisces/keyboard.json +++ b/keyboards/pisces/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/pixelspace/capsule65i/keyboard.json b/keyboards/pixelspace/capsule65i/keyboard.json index f23f36018ad..01210de4416 100644 --- a/keyboards/pixelspace/capsule65i/keyboard.json +++ b/keyboards/pixelspace/capsule65i/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/pizzakeyboards/pizza65/keyboard.json b/keyboards/pizzakeyboards/pizza65/keyboard.json index ee0a68dea5c..cf5efa62815 100644 --- a/keyboards/pizzakeyboards/pizza65/keyboard.json +++ b/keyboards/pizzakeyboards/pizza65/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/pjb/eros/keyboard.json b/keyboards/pjb/eros/keyboard.json index 888a6aa02c0..4cca23be948 100644 --- a/keyboards/pjb/eros/keyboard.json +++ b/keyboards/pjb/eros/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/pkb65/keyboard.json b/keyboards/pkb65/keyboard.json index 394401328e4..4a1e02fcc13 100644 --- a/keyboards/pkb65/keyboard.json +++ b/keyboards/pkb65/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/playkbtw/ca66/keyboard.json b/keyboards/playkbtw/ca66/keyboard.json index e28876fb9a7..edce25cb10d 100644 --- a/keyboards/playkbtw/ca66/keyboard.json +++ b/keyboards/playkbtw/ca66/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/playkbtw/helen80/keyboard.json b/keyboards/playkbtw/helen80/keyboard.json index be01d21da25..ba6c2f60dfd 100644 --- a/keyboards/playkbtw/helen80/keyboard.json +++ b/keyboards/playkbtw/helen80/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/playkbtw/pk60/keyboard.json b/keyboards/playkbtw/pk60/keyboard.json index de4f7a23f32..68c956239bf 100644 --- a/keyboards/playkbtw/pk60/keyboard.json +++ b/keyboards/playkbtw/pk60/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/playkbtw/pk64rgb/keyboard.json b/keyboards/playkbtw/pk64rgb/keyboard.json index 49ef2f57b2d..4bcf40315c9 100644 --- a/keyboards/playkbtw/pk64rgb/keyboard.json +++ b/keyboards/playkbtw/pk64rgb/keyboard.json @@ -89,7 +89,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/pluckey/keyboard.json b/keyboards/pluckey/keyboard.json index 57f6b2467f9..a6cad0a56c2 100644 --- a/keyboards/pluckey/keyboard.json +++ b/keyboards/pluckey/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/plum47/keyboard.json b/keyboards/plum47/keyboard.json index 81b87e92db4..426a062db26 100644 --- a/keyboards/plum47/keyboard.json +++ b/keyboards/plum47/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/plume/plume65/keyboard.json b/keyboards/plume/plume65/keyboard.json index 9828a766f62..f4aea137654 100644 --- a/keyboards/plume/plume65/keyboard.json +++ b/keyboards/plume/plume65/keyboard.json @@ -28,7 +28,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/plut0nium/0x3e/keyboard.json b/keyboards/plut0nium/0x3e/keyboard.json index fe9c43ce4b3..d331921d801 100644 --- a/keyboards/plut0nium/0x3e/keyboard.json +++ b/keyboards/plut0nium/0x3e/keyboard.json @@ -14,7 +14,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/plx/keyboard.json b/keyboards/plx/keyboard.json index dd47ce70370..c7a82961ec5 100644 --- a/keyboards/plx/keyboard.json +++ b/keyboards/plx/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": false diff --git a/keyboards/plywrks/ahgase/keyboard.json b/keyboards/plywrks/ahgase/keyboard.json index 05ed4e6ff28..9e5d8baed69 100644 --- a/keyboards/plywrks/ahgase/keyboard.json +++ b/keyboards/plywrks/ahgase/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/plywrks/allaro/keyboard.json b/keyboards/plywrks/allaro/keyboard.json index ca94fc83183..abf1b8773d1 100644 --- a/keyboards/plywrks/allaro/keyboard.json +++ b/keyboards/plywrks/allaro/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/plywrks/ji_eun/keyboard.json b/keyboards/plywrks/ji_eun/keyboard.json index 59355277f77..e94b3ad6b0a 100644 --- a/keyboards/plywrks/ji_eun/keyboard.json +++ b/keyboards/plywrks/ji_eun/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/plywrks/lune/keyboard.json b/keyboards/plywrks/lune/keyboard.json index fa05b5110b5..7ec645b1b19 100644 --- a/keyboards/plywrks/lune/keyboard.json +++ b/keyboards/plywrks/lune/keyboard.json @@ -28,7 +28,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/plywrks/ply8x/solder/keyboard.json b/keyboards/plywrks/ply8x/solder/keyboard.json index 435319dec8b..f05b34e13bd 100644 --- a/keyboards/plywrks/ply8x/solder/keyboard.json +++ b/keyboards/plywrks/ply8x/solder/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/pmk/posey_split/v4/keyboard.json b/keyboards/pmk/posey_split/v4/keyboard.json index e27991783dc..533ba818672 100644 --- a/keyboards/pmk/posey_split/v4/keyboard.json +++ b/keyboards/pmk/posey_split/v4/keyboard.json @@ -11,7 +11,6 @@ "bootmagic": true, "rgblight": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/pmk/posey_split/v5/keyboard.json b/keyboards/pmk/posey_split/v5/keyboard.json index 02c04dbba22..341a8cd9be2 100644 --- a/keyboards/pmk/posey_split/v5/keyboard.json +++ b/keyboards/pmk/posey_split/v5/keyboard.json @@ -11,7 +11,6 @@ "bootmagic": true, "rgblight": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/pohjolaworks/louhi/keyboard.json b/keyboards/pohjolaworks/louhi/keyboard.json index 90d7a964336..b0bca3e0ed4 100644 --- a/keyboards/pohjolaworks/louhi/keyboard.json +++ b/keyboards/pohjolaworks/louhi/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/poker87c/keyboard.json b/keyboards/poker87c/keyboard.json index 08355d8a2b0..02e0906562d 100644 --- a/keyboards/poker87c/keyboard.json +++ b/keyboards/poker87c/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/poker87d/keyboard.json b/keyboards/poker87d/keyboard.json index 7e6f08d82cf..e52b5a4149e 100644 --- a/keyboards/poker87d/keyboard.json +++ b/keyboards/poker87d/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/polilla/rev1/keyboard.json b/keyboards/polilla/rev1/keyboard.json index 27132202d2c..52c1b7fab81 100644 --- a/keyboards/polilla/rev1/keyboard.json +++ b/keyboards/polilla/rev1/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/polycarbdiet/s20/keyboard.json b/keyboards/polycarbdiet/s20/keyboard.json index 07cc8acc48c..678327f1676 100644 --- a/keyboards/polycarbdiet/s20/keyboard.json +++ b/keyboards/polycarbdiet/s20/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/pom_keyboards/tnln95/keyboard.json b/keyboards/pom_keyboards/tnln95/keyboard.json index 09b3f71f7c0..9f2983b5419 100644 --- a/keyboards/pom_keyboards/tnln95/keyboard.json +++ b/keyboards/pom_keyboards/tnln95/keyboard.json @@ -15,7 +15,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/portal_66/hotswap/keyboard.json b/keyboards/portal_66/hotswap/keyboard.json index 266ca516ece..67179ad1857 100644 --- a/keyboards/portal_66/hotswap/keyboard.json +++ b/keyboards/portal_66/hotswap/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/portal_66/soldered/keyboard.json b/keyboards/portal_66/soldered/keyboard.json index 369a6efa13b..349184cbabf 100644 --- a/keyboards/portal_66/soldered/keyboard.json +++ b/keyboards/portal_66/soldered/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/pos78/keyboard.json b/keyboards/pos78/keyboard.json index 0a6a8141554..6519f1ba5c4 100644 --- a/keyboards/pos78/keyboard.json +++ b/keyboards/pos78/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/preonic/rev1/keyboard.json b/keyboards/preonic/rev1/keyboard.json index 648dafe5760..ddd1d684267 100644 --- a/keyboards/preonic/rev1/keyboard.json +++ b/keyboards/preonic/rev1/keyboard.json @@ -14,7 +14,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/primekb/prime_e/info.json b/keyboards/primekb/prime_e/info.json index e7ed77e403a..01208f70b8b 100644 --- a/keyboards/primekb/prime_e/info.json +++ b/keyboards/primekb/prime_e/info.json @@ -8,7 +8,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/primekb/prime_l/info.json b/keyboards/primekb/prime_l/info.json index ed905f2b0b8..2403dec9636 100644 --- a/keyboards/primekb/prime_l/info.json +++ b/keyboards/primekb/prime_l/info.json @@ -5,7 +5,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/primekb/prime_m/keyboard.json b/keyboards/primekb/prime_m/keyboard.json index eb06dcdb7ea..f9d72061c50 100644 --- a/keyboards/primekb/prime_m/keyboard.json +++ b/keyboards/primekb/prime_m/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/primekb/prime_o/keyboard.json b/keyboards/primekb/prime_o/keyboard.json index 04da8ab1343..159ed92d7a8 100644 --- a/keyboards/primekb/prime_o/keyboard.json +++ b/keyboards/primekb/prime_o/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/primekb/prime_r/keyboard.json b/keyboards/primekb/prime_r/keyboard.json index d92903b8977..cc2fe7a0c70 100644 --- a/keyboards/primekb/prime_r/keyboard.json +++ b/keyboards/primekb/prime_r/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/printedpad/keyboard.json b/keyboards/printedpad/keyboard.json index d9fc996f33e..5441df5e7c7 100644 --- a/keyboards/printedpad/keyboard.json +++ b/keyboards/printedpad/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/projectcain/vault45/keyboard.json b/keyboards/projectcain/vault45/keyboard.json index 66199a620d2..a66aea94e2c 100644 --- a/keyboards/projectcain/vault45/keyboard.json +++ b/keyboards/projectcain/vault45/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/projectd/65/projectd_65_ansi/keyboard.json b/keyboards/projectd/65/projectd_65_ansi/keyboard.json index 1e1f5cce2a5..a0113302b18 100644 --- a/keyboards/projectd/65/projectd_65_ansi/keyboard.json +++ b/keyboards/projectd/65/projectd_65_ansi/keyboard.json @@ -20,7 +20,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/projectd/75/ansi/keyboard.json b/keyboards/projectd/75/ansi/keyboard.json index 3040981378e..16995c697cd 100644 --- a/keyboards/projectd/75/ansi/keyboard.json +++ b/keyboards/projectd/75/ansi/keyboard.json @@ -20,7 +20,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/projectd/75/iso/keyboard.json b/keyboards/projectd/75/iso/keyboard.json index a4d5e909c14..871efba1da2 100644 --- a/keyboards/projectd/75/iso/keyboard.json +++ b/keyboards/projectd/75/iso/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/projectkb/signature65/keyboard.json b/keyboards/projectkb/signature65/keyboard.json index b72ff9926c0..7393fc280d1 100644 --- a/keyboards/projectkb/signature65/keyboard.json +++ b/keyboards/projectkb/signature65/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/prototypist/allison/keyboard.json b/keyboards/prototypist/allison/keyboard.json index ea80e853bf2..5fc003a93c7 100644 --- a/keyboards/prototypist/allison/keyboard.json +++ b/keyboards/prototypist/allison/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/prototypist/allison_numpad/keyboard.json b/keyboards/prototypist/allison_numpad/keyboard.json index a995cd6bbf2..56c08df27d4 100644 --- a/keyboards/prototypist/allison_numpad/keyboard.json +++ b/keyboards/prototypist/allison_numpad/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/prototypist/j01/keyboard.json b/keyboards/prototypist/j01/keyboard.json index 68296e1b776..2cf6753cc56 100644 --- a/keyboards/prototypist/j01/keyboard.json +++ b/keyboards/prototypist/j01/keyboard.json @@ -15,7 +15,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/prototypist/pt60/keyboard.json b/keyboards/prototypist/pt60/keyboard.json index 2ae193c9242..688559e093d 100644 --- a/keyboards/prototypist/pt60/keyboard.json +++ b/keyboards/prototypist/pt60/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/prototypist/pt80/keyboard.json b/keyboards/prototypist/pt80/keyboard.json index af7d6093cb3..aacb53bdb6e 100644 --- a/keyboards/prototypist/pt80/keyboard.json +++ b/keyboards/prototypist/pt80/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/protozoa/event_horizon/keyboard.json b/keyboards/protozoa/event_horizon/keyboard.json index 42482c09ba2..1b622e3a4ef 100644 --- a/keyboards/protozoa/event_horizon/keyboard.json +++ b/keyboards/protozoa/event_horizon/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/psuieee/pluto12/keyboard.json b/keyboards/psuieee/pluto12/keyboard.json index 382d9fe030e..22c91841c4c 100644 --- a/keyboards/psuieee/pluto12/keyboard.json +++ b/keyboards/psuieee/pluto12/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/pteron36/keyboard.json b/keyboards/pteron36/keyboard.json index 25c4dc8c547..711dabf986d 100644 --- a/keyboards/pteron36/keyboard.json +++ b/keyboards/pteron36/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/pteropus/keyboard.json b/keyboards/pteropus/keyboard.json index 09356d1a99c..c4660a537f3 100644 --- a/keyboards/pteropus/keyboard.json +++ b/keyboards/pteropus/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/puck/keyboard.json b/keyboards/puck/keyboard.json index e69c7755d37..5c843e3249c 100644 --- a/keyboards/puck/keyboard.json +++ b/keyboards/puck/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/purin/keyboard.json b/keyboards/purin/keyboard.json index 8da928ed030..820e285ccc3 100644 --- a/keyboards/purin/keyboard.json +++ b/keyboards/purin/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/qck75/v1/keyboard.json b/keyboards/qck75/v1/keyboard.json index 04cc5dc3c15..56ffa17dd36 100644 --- a/keyboards/qck75/v1/keyboard.json +++ b/keyboards/qck75/v1/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/qpockets/eggman/keyboard.json b/keyboards/qpockets/eggman/keyboard.json index b784c6aec34..53fd05758e9 100644 --- a/keyboards/qpockets/eggman/keyboard.json +++ b/keyboards/qpockets/eggman/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/qpockets/wanten/keyboard.json b/keyboards/qpockets/wanten/keyboard.json index e1c21b5d0fa..3404308b52a 100644 --- a/keyboards/qpockets/wanten/keyboard.json +++ b/keyboards/qpockets/wanten/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/quad_h/lb75/keyboard.json b/keyboards/quad_h/lb75/keyboard.json index 3dc43bdb696..d205ecbc271 100644 --- a/keyboards/quad_h/lb75/keyboard.json +++ b/keyboards/quad_h/lb75/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/quarkeys/z40/keyboard.json b/keyboards/quarkeys/z40/keyboard.json index fb945dba5a5..cb5e1f97644 100644 --- a/keyboards/quarkeys/z40/keyboard.json +++ b/keyboards/quarkeys/z40/keyboard.json @@ -55,7 +55,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/quarkeys/z60/hotswap/keyboard.json b/keyboards/quarkeys/z60/hotswap/keyboard.json index c586d62ef46..5e08fa1c1d0 100644 --- a/keyboards/quarkeys/z60/hotswap/keyboard.json +++ b/keyboards/quarkeys/z60/hotswap/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/quarkeys/z60/solder/keyboard.json b/keyboards/quarkeys/z60/solder/keyboard.json index e85f7e6dc8c..8e2c0392ba0 100644 --- a/keyboards/quarkeys/z60/solder/keyboard.json +++ b/keyboards/quarkeys/z60/solder/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/quarkeys/z67/hotswap/keyboard.json b/keyboards/quarkeys/z67/hotswap/keyboard.json index 266a9a879e0..03c83fea906 100644 --- a/keyboards/quarkeys/z67/hotswap/keyboard.json +++ b/keyboards/quarkeys/z67/hotswap/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/quarkeys/z67/solder/keyboard.json b/keyboards/quarkeys/z67/solder/keyboard.json index c1e1412d217..380aa187d45 100644 --- a/keyboards/quarkeys/z67/solder/keyboard.json +++ b/keyboards/quarkeys/z67/solder/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/qvex/lynepad/keyboard.json b/keyboards/qvex/lynepad/keyboard.json index 65afceb26ab..6b6e765869b 100644 --- a/keyboards/qvex/lynepad/keyboard.json +++ b/keyboards/qvex/lynepad/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/qwertlekeys/calice/keyboard.json b/keyboards/qwertlekeys/calice/keyboard.json index 6e57f37892a..21ad107e46d 100644 --- a/keyboards/qwertlekeys/calice/keyboard.json +++ b/keyboards/qwertlekeys/calice/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/qwertykeys/qk65/hotswap/keyboard.json b/keyboards/qwertykeys/qk65/hotswap/keyboard.json index a641e3cc7ad..78d7e0753f3 100644 --- a/keyboards/qwertykeys/qk65/hotswap/keyboard.json +++ b/keyboards/qwertykeys/qk65/hotswap/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/qwertykeys/qk65/solder/keyboard.json b/keyboards/qwertykeys/qk65/solder/keyboard.json index deb2c987b59..2797309c950 100644 --- a/keyboards/qwertykeys/qk65/solder/keyboard.json +++ b/keyboards/qwertykeys/qk65/solder/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/rad/keyboard.json b/keyboards/rad/keyboard.json index 0d86f25275d..a6636951ac3 100644 --- a/keyboards/rad/keyboard.json +++ b/keyboards/rad/keyboard.json @@ -9,7 +9,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/rainkeebs/delilah/keyboard.json b/keyboards/rainkeebs/delilah/keyboard.json index bd3d142741c..b14d7b871d1 100644 --- a/keyboards/rainkeebs/delilah/keyboard.json +++ b/keyboards/rainkeebs/delilah/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/rainkeebs/rainkeeb/keyboard.json b/keyboards/rainkeebs/rainkeeb/keyboard.json index af6021bc1a9..55224de473d 100644 --- a/keyboards/rainkeebs/rainkeeb/keyboard.json +++ b/keyboards/rainkeebs/rainkeeb/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/rainkeebs/yasui/keyboard.json b/keyboards/rainkeebs/yasui/keyboard.json index 43bbc46fae5..75d8297090e 100644 --- a/keyboards/rainkeebs/yasui/keyboard.json +++ b/keyboards/rainkeebs/yasui/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/ramlord/witf/keyboard.json b/keyboards/ramlord/witf/keyboard.json index 2e8b05eee9b..983941c3163 100644 --- a/keyboards/ramlord/witf/keyboard.json +++ b/keyboards/ramlord/witf/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/rart/rart45/keyboard.json b/keyboards/rart/rart45/keyboard.json index a1cf03341e5..52af4d77ef3 100644 --- a/keyboards/rart/rart45/keyboard.json +++ b/keyboards/rart/rart45/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/rart/rart4x4/keyboard.json b/keyboards/rart/rart4x4/keyboard.json index edd5ed12fe5..c693ea977da 100644 --- a/keyboards/rart/rart4x4/keyboard.json +++ b/keyboards/rart/rart4x4/keyboard.json @@ -32,7 +32,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/rart/rart67m/keyboard.json b/keyboards/rart/rart67m/keyboard.json index 83ff7f30a12..338f63b808a 100644 --- a/keyboards/rart/rart67m/keyboard.json +++ b/keyboards/rart/rart67m/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/rart/rart75m/keyboard.json b/keyboards/rart/rart75m/keyboard.json index 3af82c9bc5f..f87f24aada7 100644 --- a/keyboards/rart/rart75m/keyboard.json +++ b/keyboards/rart/rart75m/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/rart/rartand/keyboard.json b/keyboards/rart/rartand/keyboard.json index 57ff3f068fb..f97820bb066 100644 --- a/keyboards/rart/rartand/keyboard.json +++ b/keyboards/rart/rartand/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/rart/rartlite/keyboard.json b/keyboards/rart/rartlite/keyboard.json index baf65530d61..f1d3af3c722 100644 --- a/keyboards/rart/rartlite/keyboard.json +++ b/keyboards/rart/rartlite/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/rart/rartpad/keyboard.json b/keyboards/rart/rartpad/keyboard.json index dd4f778e267..18b5081dac0 100644 --- a/keyboards/rart/rartpad/keyboard.json +++ b/keyboards/rart/rartpad/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/rate/pistachio_mp/keyboard.json b/keyboards/rate/pistachio_mp/keyboard.json index dc016ffecb4..0252db6f5db 100644 --- a/keyboards/rate/pistachio_mp/keyboard.json +++ b/keyboards/rate/pistachio_mp/keyboard.json @@ -18,7 +18,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/rationalist/ratio65_hotswap/rev_a/keyboard.json b/keyboards/rationalist/ratio65_hotswap/rev_a/keyboard.json index eb8da169c48..7b5f27e07a5 100644 --- a/keyboards/rationalist/ratio65_hotswap/rev_a/keyboard.json +++ b/keyboards/rationalist/ratio65_hotswap/rev_a/keyboard.json @@ -30,7 +30,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/rationalist/ratio65_solder/rev_a/keyboard.json b/keyboards/rationalist/ratio65_solder/rev_a/keyboard.json index 384760e535b..ee9687192ac 100644 --- a/keyboards/rationalist/ratio65_solder/rev_a/keyboard.json +++ b/keyboards/rationalist/ratio65_solder/rev_a/keyboard.json @@ -30,7 +30,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/recompile_keys/cocoa40/keyboard.json b/keyboards/recompile_keys/cocoa40/keyboard.json index 45f0cba2ffc..5386bbe9e0d 100644 --- a/keyboards/recompile_keys/cocoa40/keyboard.json +++ b/keyboards/recompile_keys/cocoa40/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/recompile_keys/mio/keyboard.json b/keyboards/recompile_keys/mio/keyboard.json index 700bb09c071..1a2467f6ee3 100644 --- a/keyboards/recompile_keys/mio/keyboard.json +++ b/keyboards/recompile_keys/mio/keyboard.json @@ -32,7 +32,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/rect44/keyboard.json b/keyboards/rect44/keyboard.json index fd543f52992..b90b6a7e695 100644 --- a/keyboards/rect44/keyboard.json +++ b/keyboards/rect44/keyboard.json @@ -28,7 +28,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/redox/rev1/info.json b/keyboards/redox/rev1/info.json index b5df0799695..c205548e216 100644 --- a/keyboards/redox/rev1/info.json +++ b/keyboards/redox/rev1/info.json @@ -10,7 +10,6 @@ "features":{ "bootmagic": true, "command": true, - "console": false, "mousekey": true, "extrakey": true, "nkro": true, diff --git a/keyboards/redscarf_i/keyboard.json b/keyboards/redscarf_i/keyboard.json index 0e5dbd76a8f..531ee382c75 100644 --- a/keyboards/redscarf_i/keyboard.json +++ b/keyboards/redscarf_i/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/retro_75/keyboard.json b/keyboards/retro_75/keyboard.json index 1e29a5a0fc9..efd13cfcc50 100644 --- a/keyboards/retro_75/keyboard.json +++ b/keyboards/retro_75/keyboard.json @@ -28,7 +28,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/reviung/reviung33/keyboard.json b/keyboards/reviung/reviung33/keyboard.json index ab0df0195b1..509debb9cbc 100644 --- a/keyboards/reviung/reviung33/keyboard.json +++ b/keyboards/reviung/reviung33/keyboard.json @@ -32,7 +32,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": false, diff --git a/keyboards/reviung/reviung46/keyboard.json b/keyboards/reviung/reviung46/keyboard.json index cdf9a24e177..3c0dc096a16 100644 --- a/keyboards/reviung/reviung46/keyboard.json +++ b/keyboards/reviung/reviung46/keyboard.json @@ -32,7 +32,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/reviung/reviung5/keyboard.json b/keyboards/reviung/reviung5/keyboard.json index 78c37f49925..4eee8550917 100644 --- a/keyboards/reviung/reviung5/keyboard.json +++ b/keyboards/reviung/reviung5/keyboard.json @@ -32,7 +32,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/reviung/reviung53/keyboard.json b/keyboards/reviung/reviung53/keyboard.json index dfa2866f129..010743c2b80 100644 --- a/keyboards/reviung/reviung53/keyboard.json +++ b/keyboards/reviung/reviung53/keyboard.json @@ -32,7 +32,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/rico/phoenix_project_no1/keyboard.json b/keyboards/rico/phoenix_project_no1/keyboard.json index 4d354ce0af7..692b7c98289 100644 --- a/keyboards/rico/phoenix_project_no1/keyboard.json +++ b/keyboards/rico/phoenix_project_no1/keyboard.json @@ -8,7 +8,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/rmi_kb/equator/keyboard.json b/keyboards/rmi_kb/equator/keyboard.json index 4eccede5558..051ab84e4b8 100644 --- a/keyboards/rmi_kb/equator/keyboard.json +++ b/keyboards/rmi_kb/equator/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/rmi_kb/squishyfrl/keyboard.json b/keyboards/rmi_kb/squishyfrl/keyboard.json index 5f5d305c6f6..65a56e61f06 100644 --- a/keyboards/rmi_kb/squishyfrl/keyboard.json +++ b/keyboards/rmi_kb/squishyfrl/keyboard.json @@ -28,7 +28,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/rmi_kb/squishytkl/keyboard.json b/keyboards/rmi_kb/squishytkl/keyboard.json index 6fc61e6b3ce..30c32edd27d 100644 --- a/keyboards/rmi_kb/squishytkl/keyboard.json +++ b/keyboards/rmi_kb/squishytkl/keyboard.json @@ -28,7 +28,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/rmi_kb/tkl_ff/info.json b/keyboards/rmi_kb/tkl_ff/info.json index 96bbeb81592..239d664ff3c 100644 --- a/keyboards/rmi_kb/tkl_ff/info.json +++ b/keyboards/rmi_kb/tkl_ff/info.json @@ -9,7 +9,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/rmkeebs/rm_fullsize/keyboard.json b/keyboards/rmkeebs/rm_fullsize/keyboard.json index a7e6ff99cbe..60b73110c75 100644 --- a/keyboards/rmkeebs/rm_fullsize/keyboard.json +++ b/keyboards/rmkeebs/rm_fullsize/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/rmkeebs/rm_numpad/keyboard.json b/keyboards/rmkeebs/rm_numpad/keyboard.json index eb3d11ca86d..4885d56f371 100644 --- a/keyboards/rmkeebs/rm_numpad/keyboard.json +++ b/keyboards/rmkeebs/rm_numpad/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/rose75/keyboard.json b/keyboards/rose75/keyboard.json index 9306cb211b6..4b45a3d845e 100644 --- a/keyboards/rose75/keyboard.json +++ b/keyboards/rose75/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/roseslite/keyboard.json b/keyboards/roseslite/keyboard.json index 88b8c7a2057..4c1849dc7df 100644 --- a/keyboards/roseslite/keyboard.json +++ b/keyboards/roseslite/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/rot13labs/h4ckb0ard/keyboard.json b/keyboards/rot13labs/h4ckb0ard/keyboard.json index 4ac783774de..cd028f08c84 100644 --- a/keyboards/rot13labs/h4ckb0ard/keyboard.json +++ b/keyboards/rot13labs/h4ckb0ard/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/rot13labs/rotc0n/keyboard.json b/keyboards/rot13labs/rotc0n/keyboard.json index a340c37d62b..2ee71daa186 100644 --- a/keyboards/rot13labs/rotc0n/keyboard.json +++ b/keyboards/rot13labs/rotc0n/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/rot13labs/veilid_sao/keyboard.json b/keyboards/rot13labs/veilid_sao/keyboard.json index 0a0d8eecab8..38271afbe9b 100644 --- a/keyboards/rot13labs/veilid_sao/keyboard.json +++ b/keyboards/rot13labs/veilid_sao/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": false, diff --git a/keyboards/rotr/keyboard.json b/keyboards/rotr/keyboard.json index cb1a7e923d2..6d3599a506c 100644 --- a/keyboards/rotr/keyboard.json +++ b/keyboards/rotr/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/runes/vaengr/keyboard.json b/keyboards/runes/vaengr/keyboard.json index 42389043d4e..c962d198921 100644 --- a/keyboards/runes/vaengr/keyboard.json +++ b/keyboards/runes/vaengr/keyboard.json @@ -32,7 +32,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/ryanbaekr/rb1/keyboard.json b/keyboards/ryanbaekr/rb1/keyboard.json index dd54bd29981..19ddbb94024 100644 --- a/keyboards/ryanbaekr/rb1/keyboard.json +++ b/keyboards/ryanbaekr/rb1/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/ryanbaekr/rb18/keyboard.json b/keyboards/ryanbaekr/rb18/keyboard.json index cf9539c4622..4485bdff003 100644 --- a/keyboards/ryanbaekr/rb18/keyboard.json +++ b/keyboards/ryanbaekr/rb18/keyboard.json @@ -28,7 +28,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/ryanbaekr/rb69/keyboard.json b/keyboards/ryanbaekr/rb69/keyboard.json index 3a5fd3fee38..ffe4ba16747 100644 --- a/keyboards/ryanbaekr/rb69/keyboard.json +++ b/keyboards/ryanbaekr/rb69/keyboard.json @@ -28,7 +28,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/ryanbaekr/rb87/keyboard.json b/keyboards/ryanbaekr/rb87/keyboard.json index 42114b29d89..8c3bffdbfe1 100644 --- a/keyboards/ryanbaekr/rb87/keyboard.json +++ b/keyboards/ryanbaekr/rb87/keyboard.json @@ -30,7 +30,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/ryloo_studio/m0110/keyboard.json b/keyboards/ryloo_studio/m0110/keyboard.json index 9eb4662e366..ae9535173a8 100644 --- a/keyboards/ryloo_studio/m0110/keyboard.json +++ b/keyboards/ryloo_studio/m0110/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/s_ol/0xc_pad/keyboard.json b/keyboards/s_ol/0xc_pad/keyboard.json index 4eb4bd9055c..6623effb7a0 100644 --- a/keyboards/s_ol/0xc_pad/keyboard.json +++ b/keyboards/s_ol/0xc_pad/keyboard.json @@ -8,7 +8,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/salane/starryfrl/keyboard.json b/keyboards/salane/starryfrl/keyboard.json index fa8bd1224bf..9ca8cf81bce 100644 --- a/keyboards/salane/starryfrl/keyboard.json +++ b/keyboards/salane/starryfrl/keyboard.json @@ -18,7 +18,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": false, "rgblight": true, diff --git a/keyboards/salicylic_acid3/7splus/keyboard.json b/keyboards/salicylic_acid3/7splus/keyboard.json index d04b8ad45bc..aa04293c9cb 100644 --- a/keyboards/salicylic_acid3/7splus/keyboard.json +++ b/keyboards/salicylic_acid3/7splus/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/salicylic_acid3/ajisai74/keyboard.json b/keyboards/salicylic_acid3/ajisai74/keyboard.json index 62d475d9df4..c104c5a854a 100644 --- a/keyboards/salicylic_acid3/ajisai74/keyboard.json +++ b/keyboards/salicylic_acid3/ajisai74/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/salicylic_acid3/ergoarrows/keyboard.json b/keyboards/salicylic_acid3/ergoarrows/keyboard.json index 122d2e0ee67..a5ad1de718c 100644 --- a/keyboards/salicylic_acid3/ergoarrows/keyboard.json +++ b/keyboards/salicylic_acid3/ergoarrows/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/salicylic_acid3/guide68/keyboard.json b/keyboards/salicylic_acid3/guide68/keyboard.json index 8bdb68f8c13..b7e6a81d5c8 100644 --- a/keyboards/salicylic_acid3/guide68/keyboard.json +++ b/keyboards/salicylic_acid3/guide68/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "rgblight": true, diff --git a/keyboards/salicylic_acid3/nafuda/keyboard.json b/keyboards/salicylic_acid3/nafuda/keyboard.json index 87dceed05f2..e3c84885cf6 100644 --- a/keyboards/salicylic_acid3/nafuda/keyboard.json +++ b/keyboards/salicylic_acid3/nafuda/keyboard.json @@ -30,7 +30,6 @@ "features": { "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/salicylic_acid3/nknl7en/keyboard.json b/keyboards/salicylic_acid3/nknl7en/keyboard.json index 554430f6c4e..c047a34b77e 100644 --- a/keyboards/salicylic_acid3/nknl7en/keyboard.json +++ b/keyboards/salicylic_acid3/nknl7en/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/salicylic_acid3/nknl7jp/keyboard.json b/keyboards/salicylic_acid3/nknl7jp/keyboard.json index b8a9196f88d..496ac96a86f 100644 --- a/keyboards/salicylic_acid3/nknl7jp/keyboard.json +++ b/keyboards/salicylic_acid3/nknl7jp/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/sam/s80/keyboard.json b/keyboards/sam/s80/keyboard.json index 846ae198dd7..ee2e7c2a5d4 100644 --- a/keyboards/sam/s80/keyboard.json +++ b/keyboards/sam/s80/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/sam/sg81m/keyboard.json b/keyboards/sam/sg81m/keyboard.json index 4909a625699..f509504d0a2 100644 --- a/keyboards/sam/sg81m/keyboard.json +++ b/keyboards/sam/sg81m/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/sanctified/dystopia/keyboard.json b/keyboards/sanctified/dystopia/keyboard.json index a7ae1a8ebbd..cebf2554165 100644 --- a/keyboards/sanctified/dystopia/keyboard.json +++ b/keyboards/sanctified/dystopia/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/sandwich/keeb68/keyboard.json b/keyboards/sandwich/keeb68/keyboard.json index cb03d5a2569..4d509d4a8bd 100644 --- a/keyboards/sandwich/keeb68/keyboard.json +++ b/keyboards/sandwich/keeb68/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/sapuseven/macropad12/keyboard.json b/keyboards/sapuseven/macropad12/keyboard.json index 28e8c19bf81..93f535215c8 100644 --- a/keyboards/sapuseven/macropad12/keyboard.json +++ b/keyboards/sapuseven/macropad12/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/sauce/mild/keyboard.json b/keyboards/sauce/mild/keyboard.json index 125fee67340..d2ecd024a15 100644 --- a/keyboards/sauce/mild/keyboard.json +++ b/keyboards/sauce/mild/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/sawnsprojects/eclipse/eclipse60/keyboard.json b/keyboards/sawnsprojects/eclipse/eclipse60/keyboard.json index 7647131d9a6..6035920a2f5 100644 --- a/keyboards/sawnsprojects/eclipse/eclipse60/keyboard.json +++ b/keyboards/sawnsprojects/eclipse/eclipse60/keyboard.json @@ -18,7 +18,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": false, "rgblight": true diff --git a/keyboards/sawnsprojects/eclipse/tinyneko/keyboard.json b/keyboards/sawnsprojects/eclipse/tinyneko/keyboard.json index 360b42ead99..25d7e4ac52c 100644 --- a/keyboards/sawnsprojects/eclipse/tinyneko/keyboard.json +++ b/keyboards/sawnsprojects/eclipse/tinyneko/keyboard.json @@ -18,7 +18,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": false, "rgblight": true diff --git a/keyboards/sawnsprojects/plaque80/keyboard.json b/keyboards/sawnsprojects/plaque80/keyboard.json index 6e7784e090d..623f1459f9f 100644 --- a/keyboards/sawnsprojects/plaque80/keyboard.json +++ b/keyboards/sawnsprojects/plaque80/keyboard.json @@ -18,7 +18,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": false, "rgblight": true diff --git a/keyboards/sawnsprojects/re65/keyboard.json b/keyboards/sawnsprojects/re65/keyboard.json index 04f050cfe55..a2d29894c38 100644 --- a/keyboards/sawnsprojects/re65/keyboard.json +++ b/keyboards/sawnsprojects/re65/keyboard.json @@ -13,7 +13,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "rgblight": true, diff --git a/keyboards/sawnsprojects/satxri6key/keyboard.json b/keyboards/sawnsprojects/satxri6key/keyboard.json index 717ea2c1f4c..3fc2f96eb0c 100644 --- a/keyboards/sawnsprojects/satxri6key/keyboard.json +++ b/keyboards/sawnsprojects/satxri6key/keyboard.json @@ -83,7 +83,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/scatter42/keyboard.json b/keyboards/scatter42/keyboard.json index 7bb7a63ffe6..16471f9e2bb 100644 --- a/keyboards/scatter42/keyboard.json +++ b/keyboards/scatter42/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/scottokeebs/scotto34/keyboard.json b/keyboards/scottokeebs/scotto34/keyboard.json index ecf3fed933f..8b0dee86945 100644 --- a/keyboards/scottokeebs/scotto34/keyboard.json +++ b/keyboards/scottokeebs/scotto34/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/scottokeebs/scotto69/keyboard.json b/keyboards/scottokeebs/scotto69/keyboard.json index 144e7b3a7e5..48c145abc3f 100644 --- a/keyboards/scottokeebs/scotto69/keyboard.json +++ b/keyboards/scottokeebs/scotto69/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/scottokeebs/scottowing/keyboard.json b/keyboards/scottokeebs/scottowing/keyboard.json index 770e2fd18ec..41693bd7cc4 100644 --- a/keyboards/scottokeebs/scottowing/keyboard.json +++ b/keyboards/scottokeebs/scottowing/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/sendyyeah/75pixels/keyboard.json b/keyboards/sendyyeah/75pixels/keyboard.json index a9300bb19a5..e72f6793a39 100644 --- a/keyboards/sendyyeah/75pixels/keyboard.json +++ b/keyboards/sendyyeah/75pixels/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/sendyyeah/bevi/keyboard.json b/keyboards/sendyyeah/bevi/keyboard.json index e0c54f03dbc..2e59d930b33 100644 --- a/keyboards/sendyyeah/bevi/keyboard.json +++ b/keyboards/sendyyeah/bevi/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/sendyyeah/pix/keyboard.json b/keyboards/sendyyeah/pix/keyboard.json index 6a9864cc351..d71fdff7c65 100644 --- a/keyboards/sendyyeah/pix/keyboard.json +++ b/keyboards/sendyyeah/pix/keyboard.json @@ -39,7 +39,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/senselessclay/ck60/keyboard.json b/keyboards/senselessclay/ck60/keyboard.json index 0208ea24bcd..66f0dafba75 100644 --- a/keyboards/senselessclay/ck60/keyboard.json +++ b/keyboards/senselessclay/ck60/keyboard.json @@ -42,7 +42,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/senselessclay/ck65/keyboard.json b/keyboards/senselessclay/ck65/keyboard.json index 150479177d3..b492cfa558a 100644 --- a/keyboards/senselessclay/ck65/keyboard.json +++ b/keyboards/senselessclay/ck65/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/senselessclay/gos65/keyboard.json b/keyboards/senselessclay/gos65/keyboard.json index ee6bb5727aa..f7f5ffa7667 100644 --- a/keyboards/senselessclay/gos65/keyboard.json +++ b/keyboards/senselessclay/gos65/keyboard.json @@ -34,7 +34,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/senselessclay/had60/keyboard.json b/keyboards/senselessclay/had60/keyboard.json index 03ace8014b9..0dba4faf3ca 100644 --- a/keyboards/senselessclay/had60/keyboard.json +++ b/keyboards/senselessclay/had60/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/sentraq/s60_x/default/keyboard.json b/keyboards/sentraq/s60_x/default/keyboard.json index 1f65b907750..799c5c16c0f 100644 --- a/keyboards/sentraq/s60_x/default/keyboard.json +++ b/keyboards/sentraq/s60_x/default/keyboard.json @@ -3,7 +3,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/sentraq/s60_x/rgb/keyboard.json b/keyboards/sentraq/s60_x/rgb/keyboard.json index c2be7f43564..226f5eecb42 100644 --- a/keyboards/sentraq/s60_x/rgb/keyboard.json +++ b/keyboards/sentraq/s60_x/rgb/keyboard.json @@ -4,7 +4,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/sentraq/s65_plus/keyboard.json b/keyboards/sentraq/s65_plus/keyboard.json index c3f8851144b..afd14f84552 100644 --- a/keyboards/sentraq/s65_plus/keyboard.json +++ b/keyboards/sentraq/s65_plus/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/sentraq/s65_x/keyboard.json b/keyboards/sentraq/s65_x/keyboard.json index 0329d36a49a..74f0aaffbdc 100644 --- a/keyboards/sentraq/s65_x/keyboard.json +++ b/keyboards/sentraq/s65_x/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/sets3n/kk980/keyboard.json b/keyboards/sets3n/kk980/keyboard.json index 1589b0a7b4a..1211f84f52a 100644 --- a/keyboards/sets3n/kk980/keyboard.json +++ b/keyboards/sets3n/kk980/keyboard.json @@ -32,7 +32,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/sha/keyboard.json b/keyboards/sha/keyboard.json index 8bb4091843a..5e7b2e3960e 100644 --- a/keyboards/sha/keyboard.json +++ b/keyboards/sha/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/shambles/keyboard.json b/keyboards/shambles/keyboard.json index 5f0e296ee87..157360237c2 100644 --- a/keyboards/shambles/keyboard.json +++ b/keyboards/shambles/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/shandoncodes/flygone60/rev3/keyboard.json b/keyboards/shandoncodes/flygone60/rev3/keyboard.json index 6e2e62701f8..04015cc4885 100644 --- a/keyboards/shandoncodes/flygone60/rev3/keyboard.json +++ b/keyboards/shandoncodes/flygone60/rev3/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/shandoncodes/mino/hotswap/keyboard.json b/keyboards/shandoncodes/mino/hotswap/keyboard.json index 5bd0b933cef..52ed12f39bc 100644 --- a/keyboards/shandoncodes/mino/hotswap/keyboard.json +++ b/keyboards/shandoncodes/mino/hotswap/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/shandoncodes/mino_plus/hotswap/keyboard.json b/keyboards/shandoncodes/mino_plus/hotswap/keyboard.json index e06f1adf7db..b15a8e6316b 100644 --- a/keyboards/shandoncodes/mino_plus/hotswap/keyboard.json +++ b/keyboards/shandoncodes/mino_plus/hotswap/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/shandoncodes/mino_plus/soldered/keyboard.json b/keyboards/shandoncodes/mino_plus/soldered/keyboard.json index ef145046ef8..b4c78ad28ba 100644 --- a/keyboards/shandoncodes/mino_plus/soldered/keyboard.json +++ b/keyboards/shandoncodes/mino_plus/soldered/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/shandoncodes/riot_pad/keyboard.json b/keyboards/shandoncodes/riot_pad/keyboard.json index 8a019115d32..d68a0da3905 100644 --- a/keyboards/shandoncodes/riot_pad/keyboard.json +++ b/keyboards/shandoncodes/riot_pad/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "nkro": true, "rgblight": true, "extrakey": true diff --git a/keyboards/sharkoon/skiller_sgk50_s2/keyboard.json b/keyboards/sharkoon/skiller_sgk50_s2/keyboard.json index f98fd659c33..70b08ee880b 100644 --- a/keyboards/sharkoon/skiller_sgk50_s2/keyboard.json +++ b/keyboards/sharkoon/skiller_sgk50_s2/keyboard.json @@ -14,7 +14,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/sharkoon/skiller_sgk50_s3/keyboard.json b/keyboards/sharkoon/skiller_sgk50_s3/keyboard.json index cfc24397e98..e739b3775a0 100644 --- a/keyboards/sharkoon/skiller_sgk50_s3/keyboard.json +++ b/keyboards/sharkoon/skiller_sgk50_s3/keyboard.json @@ -14,7 +14,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/sharkoon/skiller_sgk50_s4/keyboard.json b/keyboards/sharkoon/skiller_sgk50_s4/keyboard.json index d6e42880acb..9686cb15c3f 100644 --- a/keyboards/sharkoon/skiller_sgk50_s4/keyboard.json +++ b/keyboards/sharkoon/skiller_sgk50_s4/keyboard.json @@ -14,7 +14,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/shk9/keyboard.json b/keyboards/shk9/keyboard.json index 968f2d91f7d..fc769aaec49 100644 --- a/keyboards/shk9/keyboard.json +++ b/keyboards/shk9/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/shoc/keyboard.json b/keyboards/shoc/keyboard.json index f044ab1b4e8..5b98bb6dadc 100644 --- a/keyboards/shoc/keyboard.json +++ b/keyboards/shoc/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": false, diff --git a/keyboards/sidderskb/majbritt/rev2/keyboard.json b/keyboards/sidderskb/majbritt/rev2/keyboard.json index 69c24b08abd..0fcde53bc42 100644 --- a/keyboards/sidderskb/majbritt/rev2/keyboard.json +++ b/keyboards/sidderskb/majbritt/rev2/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/singa/keyboard.json b/keyboards/singa/keyboard.json index ef9176211ba..12962eedfea 100644 --- a/keyboards/singa/keyboard.json +++ b/keyboards/singa/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/skeletn87/hotswap/keyboard.json b/keyboards/skeletn87/hotswap/keyboard.json index f90716fcbf2..663236018cb 100644 --- a/keyboards/skeletn87/hotswap/keyboard.json +++ b/keyboards/skeletn87/hotswap/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/skeletn87/soldered/keyboard.json b/keyboards/skeletn87/soldered/keyboard.json index a50eeb8b68f..22486837f7d 100644 --- a/keyboards/skeletn87/soldered/keyboard.json +++ b/keyboards/skeletn87/soldered/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/skeletonkbd/frost68/keyboard.json b/keyboards/skeletonkbd/frost68/keyboard.json index 28b819e0d01..127c695aed1 100644 --- a/keyboards/skeletonkbd/frost68/keyboard.json +++ b/keyboards/skeletonkbd/frost68/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/skeletonkbd/skeletonnumpad/keyboard.json b/keyboards/skeletonkbd/skeletonnumpad/keyboard.json index cd007f81b64..4d6a7edea94 100644 --- a/keyboards/skeletonkbd/skeletonnumpad/keyboard.json +++ b/keyboards/skeletonkbd/skeletonnumpad/keyboard.json @@ -32,7 +32,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/skme/zeno/keyboard.json b/keyboards/skme/zeno/keyboard.json index bbea513ed59..e5c7142cc98 100644 --- a/keyboards/skme/zeno/keyboard.json +++ b/keyboards/skme/zeno/keyboard.json @@ -20,7 +20,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true }, diff --git a/keyboards/skmt/15k/keyboard.json b/keyboards/skmt/15k/keyboard.json index 9cf215f4d48..c16a970d1ef 100644 --- a/keyboards/skmt/15k/keyboard.json +++ b/keyboards/skmt/15k/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/skyloong/dt40/keyboard.json b/keyboards/skyloong/dt40/keyboard.json index a79b48289a8..1f15227a195 100644 --- a/keyboards/skyloong/dt40/keyboard.json +++ b/keyboards/skyloong/dt40/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/skyloong/gk61/pro/keyboard.json b/keyboards/skyloong/gk61/pro/keyboard.json index 5a2302a92c4..67fa3be066f 100644 --- a/keyboards/skyloong/gk61/pro/keyboard.json +++ b/keyboards/skyloong/gk61/pro/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/skyloong/gk61/pro_48/keyboard.json b/keyboards/skyloong/gk61/pro_48/keyboard.json index 0c7065ec489..399de2f5b02 100644 --- a/keyboards/skyloong/gk61/pro_48/keyboard.json +++ b/keyboards/skyloong/gk61/pro_48/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/skyloong/gk61/v1/keyboard.json b/keyboards/skyloong/gk61/v1/keyboard.json index 0bafe1bd4ef..3d93d6355e2 100644 --- a/keyboards/skyloong/gk61/v1/keyboard.json +++ b/keyboards/skyloong/gk61/v1/keyboard.json @@ -10,7 +10,6 @@ "mousekey": true, "nkro": true, "command": false, - "console": false, "rgb_matrix": true }, "processor": "STM32F103", diff --git a/keyboards/skyloong/qk21/v1/keyboard.json b/keyboards/skyloong/qk21/v1/keyboard.json index 3f22fc0ccbc..31f90acb52a 100644 --- a/keyboards/skyloong/qk21/v1/keyboard.json +++ b/keyboards/skyloong/qk21/v1/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/slz40/keyboard.json b/keyboards/slz40/keyboard.json index 138c7d21cf5..ba67dc7fc1b 100644 --- a/keyboards/slz40/keyboard.json +++ b/keyboards/slz40/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/smithrune/iron180v2/v2h/keyboard.json b/keyboards/smithrune/iron180v2/v2h/keyboard.json index cf2d7163eda..fae25b8c65a 100644 --- a/keyboards/smithrune/iron180v2/v2h/keyboard.json +++ b/keyboards/smithrune/iron180v2/v2h/keyboard.json @@ -14,7 +14,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/smithrune/iron180v2/v2s/keyboard.json b/keyboards/smithrune/iron180v2/v2s/keyboard.json index 2e21e17f28b..3489d8f1776 100644 --- a/keyboards/smithrune/iron180v2/v2s/keyboard.json +++ b/keyboards/smithrune/iron180v2/v2s/keyboard.json @@ -15,7 +15,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/smithrune/magnus/m75h/keyboard.json b/keyboards/smithrune/magnus/m75h/keyboard.json index c8b2e47069f..4b5c0974c19 100644 --- a/keyboards/smithrune/magnus/m75h/keyboard.json +++ b/keyboards/smithrune/magnus/m75h/keyboard.json @@ -18,7 +18,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/smithrune/magnus/m75s/keyboard.json b/keyboards/smithrune/magnus/m75s/keyboard.json index a678c7eeaa8..911f3ff7d8b 100644 --- a/keyboards/smithrune/magnus/m75s/keyboard.json +++ b/keyboards/smithrune/magnus/m75s/keyboard.json @@ -19,7 +19,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/smk60/keyboard.json b/keyboards/smk60/keyboard.json index 13c81a21de5..484b76ad050 100644 --- a/keyboards/smk60/keyboard.json +++ b/keyboards/smk60/keyboard.json @@ -30,7 +30,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/smoll/lefty/info.json b/keyboards/smoll/lefty/info.json index c34e264176f..0cfe860ded9 100644 --- a/keyboards/smoll/lefty/info.json +++ b/keyboards/smoll/lefty/info.json @@ -9,7 +9,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/sneakbox/aliceclone/keyboard.json b/keyboards/sneakbox/aliceclone/keyboard.json index bb0cd8e4b85..0cde1275c4e 100644 --- a/keyboards/sneakbox/aliceclone/keyboard.json +++ b/keyboards/sneakbox/aliceclone/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/sneakbox/aliceclonergb/keyboard.json b/keyboards/sneakbox/aliceclonergb/keyboard.json index be3d48fa878..539404b338a 100644 --- a/keyboards/sneakbox/aliceclonergb/keyboard.json +++ b/keyboards/sneakbox/aliceclonergb/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/sneakbox/ava/keyboard.json b/keyboards/sneakbox/ava/keyboard.json index 41712f7e953..94369ad467c 100644 --- a/keyboards/sneakbox/ava/keyboard.json +++ b/keyboards/sneakbox/ava/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/sneakbox/disarray/ortho/keyboard.json b/keyboards/sneakbox/disarray/ortho/keyboard.json index 31a201e0d24..994b0cd115a 100644 --- a/keyboards/sneakbox/disarray/ortho/keyboard.json +++ b/keyboards/sneakbox/disarray/ortho/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/sneakbox/disarray/staggered/keyboard.json b/keyboards/sneakbox/disarray/staggered/keyboard.json index 46317951309..a03c80948c9 100644 --- a/keyboards/sneakbox/disarray/staggered/keyboard.json +++ b/keyboards/sneakbox/disarray/staggered/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/soup10/keyboard.json b/keyboards/soup10/keyboard.json index f4e19476529..df8cfcc2c4d 100644 --- a/keyboards/soup10/keyboard.json +++ b/keyboards/soup10/keyboard.json @@ -14,7 +14,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/sowbug/68keys/keyboard.json b/keyboards/sowbug/68keys/keyboard.json index 7143f341b5c..e031da1bb9c 100644 --- a/keyboards/sowbug/68keys/keyboard.json +++ b/keyboards/sowbug/68keys/keyboard.json @@ -64,7 +64,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/sowbug/ansi_tkl/keyboard.json b/keyboards/sowbug/ansi_tkl/keyboard.json index 837e08a59e3..9cbc13dce0a 100644 --- a/keyboards/sowbug/ansi_tkl/keyboard.json +++ b/keyboards/sowbug/ansi_tkl/keyboard.json @@ -64,7 +64,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/soy20/keyboard.json b/keyboards/soy20/keyboard.json index 3a61743326c..901aa9e8685 100644 --- a/keyboards/soy20/keyboard.json +++ b/keyboards/soy20/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/spaceholdings/nebula12b/keyboard.json b/keyboards/spaceholdings/nebula12b/keyboard.json index 38320bd1ea6..f9e9b960d70 100755 --- a/keyboards/spaceholdings/nebula12b/keyboard.json +++ b/keyboards/spaceholdings/nebula12b/keyboard.json @@ -65,7 +65,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/spaceholdings/nebula68b/info.json b/keyboards/spaceholdings/nebula68b/info.json index b41a21f9714..9c8274a8ed3 100644 --- a/keyboards/spaceholdings/nebula68b/info.json +++ b/keyboards/spaceholdings/nebula68b/info.json @@ -65,7 +65,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/sparrow62/keyboard.json b/keyboards/sparrow62/keyboard.json index 96447b6a361..e9c83a03563 100644 --- a/keyboards/sparrow62/keyboard.json +++ b/keyboards/sparrow62/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/splitish/keyboard.json b/keyboards/splitish/keyboard.json index 9b9701a853f..986a08709f2 100644 --- a/keyboards/splitish/keyboard.json +++ b/keyboards/splitish/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/splitography/keyboard.json b/keyboards/splitography/keyboard.json index 947622096c9..698ded2e95c 100644 --- a/keyboards/splitography/keyboard.json +++ b/keyboards/splitography/keyboard.json @@ -10,7 +10,6 @@ "bootmagic": true, "mousekey": false, "extrakey": true, - "console": false, "command": false }, "qmk": { diff --git a/keyboards/sporewoh/banime40/keyboard.json b/keyboards/sporewoh/banime40/keyboard.json index dfe71070a14..62a814e1c28 100644 --- a/keyboards/sporewoh/banime40/keyboard.json +++ b/keyboards/sporewoh/banime40/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/star75/keyboard.json b/keyboards/star75/keyboard.json index e4ea684a0f2..155481d7536 100644 --- a/keyboards/star75/keyboard.json +++ b/keyboards/star75/keyboard.json @@ -35,7 +35,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/stello65/beta/keyboard.json b/keyboards/stello65/beta/keyboard.json index d6bf574b9ac..e8c23a1d4d4 100644 --- a/keyboards/stello65/beta/keyboard.json +++ b/keyboards/stello65/beta/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/stello65/hs_rev1/keyboard.json b/keyboards/stello65/hs_rev1/keyboard.json index bf502de5638..ec5db7023e5 100644 --- a/keyboards/stello65/hs_rev1/keyboard.json +++ b/keyboards/stello65/hs_rev1/keyboard.json @@ -28,7 +28,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/stello65/sl_rev1/keyboard.json b/keyboards/stello65/sl_rev1/keyboard.json index e8ac4ea7de6..453fe742c45 100644 --- a/keyboards/stello65/sl_rev1/keyboard.json +++ b/keyboards/stello65/sl_rev1/keyboard.json @@ -28,7 +28,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/stenokeyboards/the_uni/pro_micro/keyboard.json b/keyboards/stenokeyboards/the_uni/pro_micro/keyboard.json index 03466935b0d..eeadba93900 100644 --- a/keyboards/stenokeyboards/the_uni/pro_micro/keyboard.json +++ b/keyboards/stenokeyboards/the_uni/pro_micro/keyboard.json @@ -6,7 +6,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": true, diff --git a/keyboards/stenokeyboards/the_uni/rp_2040/keyboard.json b/keyboards/stenokeyboards/the_uni/rp_2040/keyboard.json index 1ca94185ab5..e54f31703f1 100644 --- a/keyboards/stenokeyboards/the_uni/rp_2040/keyboard.json +++ b/keyboards/stenokeyboards/the_uni/rp_2040/keyboard.json @@ -6,7 +6,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/stenokeyboards/the_uni/usb_c/keyboard.json b/keyboards/stenokeyboards/the_uni/usb_c/keyboard.json index efe3b979bef..2ed5532bda8 100644 --- a/keyboards/stenokeyboards/the_uni/usb_c/keyboard.json +++ b/keyboards/stenokeyboards/the_uni/usb_c/keyboard.json @@ -6,7 +6,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": true, diff --git a/keyboards/sthlmkb/lagom/keyboard.json b/keyboards/sthlmkb/lagom/keyboard.json index e30455109df..423605b17f3 100644 --- a/keyboards/sthlmkb/lagom/keyboard.json +++ b/keyboards/sthlmkb/lagom/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "debug": false, "mousekey": false, diff --git a/keyboards/sthlmkb/litl/keyboard.json b/keyboards/sthlmkb/litl/keyboard.json index 50960dd6d0a..d9208b53f10 100644 --- a/keyboards/sthlmkb/litl/keyboard.json +++ b/keyboards/sthlmkb/litl/keyboard.json @@ -8,7 +8,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "debug": false, "mousekey": false, diff --git a/keyboards/stratos/keyboard.json b/keyboards/stratos/keyboard.json index 20a057ba882..984f488ebdf 100644 --- a/keyboards/stratos/keyboard.json +++ b/keyboards/stratos/keyboard.json @@ -32,7 +32,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/strech/soulstone/keyboard.json b/keyboards/strech/soulstone/keyboard.json index 32671eba11a..27773b88f20 100644 --- a/keyboards/strech/soulstone/keyboard.json +++ b/keyboards/strech/soulstone/keyboard.json @@ -13,7 +13,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true }, diff --git a/keyboards/stront/keyboard.json b/keyboards/stront/keyboard.json index 573730a12b4..250d5b56e13 100644 --- a/keyboards/stront/keyboard.json +++ b/keyboards/stront/keyboard.json @@ -85,7 +85,6 @@ "features": { "backlight": true, "bootmagic": true, - "console": false, "encoder": true, "extrakey": true, "nkro": false, diff --git a/keyboards/studiokestra/bourgeau/keyboard.json b/keyboards/studiokestra/bourgeau/keyboard.json index 3e0111a6188..22e4235415f 100644 --- a/keyboards/studiokestra/bourgeau/keyboard.json +++ b/keyboards/studiokestra/bourgeau/keyboard.json @@ -32,7 +32,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/studiokestra/cascade/keyboard.json b/keyboards/studiokestra/cascade/keyboard.json index 8e7673da0ec..b6a11688c23 100644 --- a/keyboards/studiokestra/cascade/keyboard.json +++ b/keyboards/studiokestra/cascade/keyboard.json @@ -32,7 +32,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/studiokestra/fairholme/keyboard.json b/keyboards/studiokestra/fairholme/keyboard.json index f789c2059bb..13170ce65cd 100644 --- a/keyboards/studiokestra/fairholme/keyboard.json +++ b/keyboards/studiokestra/fairholme/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/studiokestra/frl84/keyboard.json b/keyboards/studiokestra/frl84/keyboard.json index 3bb51c7606f..c4dda59ddd6 100644 --- a/keyboards/studiokestra/frl84/keyboard.json +++ b/keyboards/studiokestra/frl84/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/studiokestra/galatea/rev1/keyboard.json b/keyboards/studiokestra/galatea/rev1/keyboard.json index 320b381e827..63a073fc568 100644 --- a/keyboards/studiokestra/galatea/rev1/keyboard.json +++ b/keyboards/studiokestra/galatea/rev1/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/studiokestra/galatea/rev2/keyboard.json b/keyboards/studiokestra/galatea/rev2/keyboard.json index 6d59e14e648..fa2911a7eb4 100644 --- a/keyboards/studiokestra/galatea/rev2/keyboard.json +++ b/keyboards/studiokestra/galatea/rev2/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/studiokestra/galatea/rev3/keyboard.json b/keyboards/studiokestra/galatea/rev3/keyboard.json index 1b948f426dc..d5dd8e3e879 100644 --- a/keyboards/studiokestra/galatea/rev3/keyboard.json +++ b/keyboards/studiokestra/galatea/rev3/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/studiokestra/line_friends_tkl/keyboard.json b/keyboards/studiokestra/line_friends_tkl/keyboard.json index d8902e2a2f7..d7e050315d7 100644 --- a/keyboards/studiokestra/line_friends_tkl/keyboard.json +++ b/keyboards/studiokestra/line_friends_tkl/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/subatomic/keyboard.json b/keyboards/subatomic/keyboard.json index 20313a13180..a69e18efa21 100644 --- a/keyboards/subatomic/keyboard.json +++ b/keyboards/subatomic/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "midi": true, "mousekey": false, diff --git a/keyboards/subrezon/la_nc/keyboard.json b/keyboards/subrezon/la_nc/keyboard.json index 471bf090518..9a9a511fbfb 100644 --- a/keyboards/subrezon/la_nc/keyboard.json +++ b/keyboards/subrezon/la_nc/keyboard.json @@ -9,7 +9,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/subrezon/lancer/keyboard.json b/keyboards/subrezon/lancer/keyboard.json index cf678c84bc3..43e80edff1a 100644 --- a/keyboards/subrezon/lancer/keyboard.json +++ b/keyboards/subrezon/lancer/keyboard.json @@ -15,7 +15,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/suikagiken/suika15tone/keyboard.json b/keyboards/suikagiken/suika15tone/keyboard.json index de3c8f33f31..985c3f98453 100644 --- a/keyboards/suikagiken/suika15tone/keyboard.json +++ b/keyboards/suikagiken/suika15tone/keyboard.json @@ -8,7 +8,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "midi": true, "mousekey": true, diff --git a/keyboards/suikagiken/suika27melo/keyboard.json b/keyboards/suikagiken/suika27melo/keyboard.json index cba25611296..8b58362db17 100644 --- a/keyboards/suikagiken/suika27melo/keyboard.json +++ b/keyboards/suikagiken/suika27melo/keyboard.json @@ -8,7 +8,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "midi": true, "mousekey": true, diff --git a/keyboards/suikagiken/suika83opti/keyboard.json b/keyboards/suikagiken/suika83opti/keyboard.json index d9876434fe1..b3b8a975bca 100644 --- a/keyboards/suikagiken/suika83opti/keyboard.json +++ b/keyboards/suikagiken/suika83opti/keyboard.json @@ -8,7 +8,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/suikagiken/suika85ergo/keyboard.json b/keyboards/suikagiken/suika85ergo/keyboard.json index e0514dfab85..0bca9ab578a 100644 --- a/keyboards/suikagiken/suika85ergo/keyboard.json +++ b/keyboards/suikagiken/suika85ergo/keyboard.json @@ -8,7 +8,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/supersplit/keyboard.json b/keyboards/supersplit/keyboard.json index 3950d2bbcea..efce5060d97 100644 --- a/keyboards/supersplit/keyboard.json +++ b/keyboards/supersplit/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/superuser/ext/keyboard.json b/keyboards/superuser/ext/keyboard.json index 5a0ac65d644..f0aebb65143 100644 --- a/keyboards/superuser/ext/keyboard.json +++ b/keyboards/superuser/ext/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/superuser/frl/keyboard.json b/keyboards/superuser/frl/keyboard.json index d540622b69b..e02d785a7c9 100644 --- a/keyboards/superuser/frl/keyboard.json +++ b/keyboards/superuser/frl/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/superuser/tkl/keyboard.json b/keyboards/superuser/tkl/keyboard.json index ecf8dc713be..8c947d33d03 100644 --- a/keyboards/superuser/tkl/keyboard.json +++ b/keyboards/superuser/tkl/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/swiftrax/retropad/keyboard.json b/keyboards/swiftrax/retropad/keyboard.json index c8dd0e33274..97ffc5b6fe2 100644 --- a/keyboards/swiftrax/retropad/keyboard.json +++ b/keyboards/swiftrax/retropad/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/swiss/keyboard.json b/keyboards/swiss/keyboard.json index 74f9ff23e30..5d40df4225b 100644 --- a/keyboards/swiss/keyboard.json +++ b/keyboards/swiss/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/switchplate/southpaw_fullsize/keyboard.json b/keyboards/switchplate/southpaw_fullsize/keyboard.json index 9f61bc9abcf..96724e58706 100644 --- a/keyboards/switchplate/southpaw_fullsize/keyboard.json +++ b/keyboards/switchplate/southpaw_fullsize/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/switchplate/switchplate910/keyboard.json b/keyboards/switchplate/switchplate910/keyboard.json index 43150834f5d..f9c3d8eaf11 100644 --- a/keyboards/switchplate/switchplate910/keyboard.json +++ b/keyboards/switchplate/switchplate910/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/synthandkeys/bento_box/keyboard.json b/keyboards/synthandkeys/bento_box/keyboard.json index 3fb784da75f..90dbc71a1fc 100644 --- a/keyboards/synthandkeys/bento_box/keyboard.json +++ b/keyboards/synthandkeys/bento_box/keyboard.json @@ -17,7 +17,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/synthandkeys/the_debit_card/keyboard.json b/keyboards/synthandkeys/the_debit_card/keyboard.json index 1d3798291b3..95a74a5138e 100644 --- a/keyboards/synthandkeys/the_debit_card/keyboard.json +++ b/keyboards/synthandkeys/the_debit_card/keyboard.json @@ -6,7 +6,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/synthlabs/060/keyboard.json b/keyboards/synthlabs/060/keyboard.json index 1094d430e6e..70437bb4aad 100644 --- a/keyboards/synthlabs/060/keyboard.json +++ b/keyboards/synthlabs/060/keyboard.json @@ -9,7 +9,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/synthlabs/065/keyboard.json b/keyboards/synthlabs/065/keyboard.json index d8d0d96c3f1..575fc18b589 100644 --- a/keyboards/synthlabs/065/keyboard.json +++ b/keyboards/synthlabs/065/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/synthlabs/solo/keyboard.json b/keyboards/synthlabs/solo/keyboard.json index 1aedf981855..da17217ad38 100644 --- a/keyboards/synthlabs/solo/keyboard.json +++ b/keyboards/synthlabs/solo/keyboard.json @@ -8,7 +8,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/tacworks/tac_k1/keyboard.json b/keyboards/tacworks/tac_k1/keyboard.json index cf098291be8..9c4463bb535 100644 --- a/keyboards/tacworks/tac_k1/keyboard.json +++ b/keyboards/tacworks/tac_k1/keyboard.json @@ -14,7 +14,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/takashicompany/baumkuchen/keyboard.json b/keyboards/takashicompany/baumkuchen/keyboard.json index 2cb3566703b..946238ab1d9 100644 --- a/keyboards/takashicompany/baumkuchen/keyboard.json +++ b/keyboards/takashicompany/baumkuchen/keyboard.json @@ -15,7 +15,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/takashicompany/center_enter/keyboard.json b/keyboards/takashicompany/center_enter/keyboard.json index 7d660eaca86..7780f014d8c 100644 --- a/keyboards/takashicompany/center_enter/keyboard.json +++ b/keyboards/takashicompany/center_enter/keyboard.json @@ -30,7 +30,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/takashicompany/ejectix/keyboard.json b/keyboards/takashicompany/ejectix/keyboard.json index 4767be03a6f..e4597fc6427 100644 --- a/keyboards/takashicompany/ejectix/keyboard.json +++ b/keyboards/takashicompany/ejectix/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/takashicompany/endzone34/keyboard.json b/keyboards/takashicompany/endzone34/keyboard.json index 3549d2c0893..a54fe8a88df 100644 --- a/keyboards/takashicompany/endzone34/keyboard.json +++ b/keyboards/takashicompany/endzone34/keyboard.json @@ -32,7 +32,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/takashicompany/ergomirage/keyboard.json b/keyboards/takashicompany/ergomirage/keyboard.json index 9bcff45e764..6527e24c876 100644 --- a/keyboards/takashicompany/ergomirage/keyboard.json +++ b/keyboards/takashicompany/ergomirage/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/takashicompany/goat51/keyboard.json b/keyboards/takashicompany/goat51/keyboard.json index 8ef4c543436..562b9d10b08 100644 --- a/keyboards/takashicompany/goat51/keyboard.json +++ b/keyboards/takashicompany/goat51/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/takashicompany/jourkey/keyboard.json b/keyboards/takashicompany/jourkey/keyboard.json index 4201969219a..7ea3fad0836 100644 --- a/keyboards/takashicompany/jourkey/keyboard.json +++ b/keyboards/takashicompany/jourkey/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/takashicompany/klec_01/keyboard.json b/keyboards/takashicompany/klec_01/keyboard.json index b04f43ed1f0..137201d5609 100644 --- a/keyboards/takashicompany/klec_01/keyboard.json +++ b/keyboards/takashicompany/klec_01/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/takashicompany/klec_02/keyboard.json b/keyboards/takashicompany/klec_02/keyboard.json index 22cea40ec79..751144aa3b9 100644 --- a/keyboards/takashicompany/klec_02/keyboard.json +++ b/keyboards/takashicompany/klec_02/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/takashicompany/minidivide/keyboard.json b/keyboards/takashicompany/minidivide/keyboard.json index 5ac4dd7e9bb..4ccbed98b31 100644 --- a/keyboards/takashicompany/minidivide/keyboard.json +++ b/keyboards/takashicompany/minidivide/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/takashicompany/minidivide_max/keyboard.json b/keyboards/takashicompany/minidivide_max/keyboard.json index 73f941c896c..679000cafe3 100644 --- a/keyboards/takashicompany/minidivide_max/keyboard.json +++ b/keyboards/takashicompany/minidivide_max/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/takashicompany/palmslave/keyboard.json b/keyboards/takashicompany/palmslave/keyboard.json index 4b452d678a3..3a1ea6ed91e 100644 --- a/keyboards/takashicompany/palmslave/keyboard.json +++ b/keyboards/takashicompany/palmslave/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/takashicompany/qoolee/keyboard.json b/keyboards/takashicompany/qoolee/keyboard.json index bce23352936..011f9e5e425 100644 --- a/keyboards/takashicompany/qoolee/keyboard.json +++ b/keyboards/takashicompany/qoolee/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/takashicompany/radialex/keyboard.json b/keyboards/takashicompany/radialex/keyboard.json index 34ef3d2f1fc..c4f991f3939 100644 --- a/keyboards/takashicompany/radialex/keyboard.json +++ b/keyboards/takashicompany/radialex/keyboard.json @@ -32,7 +32,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/takashicompany/rookey/keyboard.json b/keyboards/takashicompany/rookey/keyboard.json index 94733454090..22903a5bab3 100644 --- a/keyboards/takashicompany/rookey/keyboard.json +++ b/keyboards/takashicompany/rookey/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/takashicompany/tightwriter/keyboard.json b/keyboards/takashicompany/tightwriter/keyboard.json index c3684d9cf63..a3388c05742 100644 --- a/keyboards/takashicompany/tightwriter/keyboard.json +++ b/keyboards/takashicompany/tightwriter/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/taleguers/taleguers75/keyboard.json b/keyboards/taleguers/taleguers75/keyboard.json index 0798ea96374..853b1747ebd 100644 --- a/keyboards/taleguers/taleguers75/keyboard.json +++ b/keyboards/taleguers/taleguers75/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/tanuki/keyboard.json b/keyboards/tanuki/keyboard.json index 2bc01addb61..dc9affe3a77 100644 --- a/keyboards/tanuki/keyboard.json +++ b/keyboards/tanuki/keyboard.json @@ -30,7 +30,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/teahouse/ayleen/keyboard.json b/keyboards/teahouse/ayleen/keyboard.json index 4b64ba96d18..55a795d09c7 100644 --- a/keyboards/teahouse/ayleen/keyboard.json +++ b/keyboards/teahouse/ayleen/keyboard.json @@ -10,7 +10,6 @@ "rgblight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/team0110/p1800fl/keyboard.json b/keyboards/team0110/p1800fl/keyboard.json index 681482db5bc..621f5821c32 100644 --- a/keyboards/team0110/p1800fl/keyboard.json +++ b/keyboards/team0110/p1800fl/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/teleport/native/info.json b/keyboards/teleport/native/info.json index 756764ff6f0..d3630a0ee37 100644 --- a/keyboards/teleport/native/info.json +++ b/keyboards/teleport/native/info.json @@ -35,7 +35,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/teleport/numpad/keyboard.json b/keyboards/teleport/numpad/keyboard.json index ace8e949e00..572f01fd266 100644 --- a/keyboards/teleport/numpad/keyboard.json +++ b/keyboards/teleport/numpad/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/teleport/tkl/keyboard.json b/keyboards/teleport/tkl/keyboard.json index 9fb88acb745..6d16d8a9e7c 100644 --- a/keyboards/teleport/tkl/keyboard.json +++ b/keyboards/teleport/tkl/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/tempo_turtle/bradpad/keyboard.json b/keyboards/tempo_turtle/bradpad/keyboard.json index 374dbeaaaf6..e8a86526d63 100644 --- a/keyboards/tempo_turtle/bradpad/keyboard.json +++ b/keyboards/tempo_turtle/bradpad/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/tender/macrowo_pad/keyboard.json b/keyboards/tender/macrowo_pad/keyboard.json index 53e22289f60..680fe6b13b0 100644 --- a/keyboards/tender/macrowo_pad/keyboard.json +++ b/keyboards/tender/macrowo_pad/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/tenki/keyboard.json b/keyboards/tenki/keyboard.json index 628e2068bae..b90c61470fc 100644 --- a/keyboards/tenki/keyboard.json +++ b/keyboards/tenki/keyboard.json @@ -33,7 +33,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/terrazzo/keyboard.json b/keyboards/terrazzo/keyboard.json index d2ea20b51a4..735ccf19ece 100644 --- a/keyboards/terrazzo/keyboard.json +++ b/keyboards/terrazzo/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "led_matrix": true, diff --git a/keyboards/tetris/keyboard.json b/keyboards/tetris/keyboard.json index 3702172518a..eae9c39ec42 100644 --- a/keyboards/tetris/keyboard.json +++ b/keyboards/tetris/keyboard.json @@ -35,7 +35,6 @@ "audio": true, "bootmagic": false, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/tg4x/keyboard.json b/keyboards/tg4x/keyboard.json index 31c16ee08d7..93c620393e4 100644 --- a/keyboards/tg4x/keyboard.json +++ b/keyboards/tg4x/keyboard.json @@ -34,7 +34,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/tgr/910/keyboard.json b/keyboards/tgr/910/keyboard.json index 7277c89b38f..dad6cb8bd02 100644 --- a/keyboards/tgr/910/keyboard.json +++ b/keyboards/tgr/910/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/tgr/910ce/keyboard.json b/keyboards/tgr/910ce/keyboard.json index 088eed218bd..4df67dfc2df 100644 --- a/keyboards/tgr/910ce/keyboard.json +++ b/keyboards/tgr/910ce/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/tgr/alice/keyboard.json b/keyboards/tgr/alice/keyboard.json index 83902990d1a..c477d52e047 100644 --- a/keyboards/tgr/alice/keyboard.json +++ b/keyboards/tgr/alice/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/tgr/jane/v2/keyboard.json b/keyboards/tgr/jane/v2/keyboard.json index efa3a88b3f4..3028064cd1a 100644 --- a/keyboards/tgr/jane/v2/keyboard.json +++ b/keyboards/tgr/jane/v2/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/tgr/jane/v2ce/keyboard.json b/keyboards/tgr/jane/v2ce/keyboard.json index 62f6a378572..66dcb9fd259 100644 --- a/keyboards/tgr/jane/v2ce/keyboard.json +++ b/keyboards/tgr/jane/v2ce/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/tgr/tris/keyboard.json b/keyboards/tgr/tris/keyboard.json index 5ce2fbe568e..13f2eef8a1b 100644 --- a/keyboards/tgr/tris/keyboard.json +++ b/keyboards/tgr/tris/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/the_royal/liminal/keyboard.json b/keyboards/the_royal/liminal/keyboard.json index 66a61eceea4..2023a8b6e13 100644 --- a/keyboards/the_royal/liminal/keyboard.json +++ b/keyboards/the_royal/liminal/keyboard.json @@ -19,7 +19,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/the_royal/schwann/keyboard.json b/keyboards/the_royal/schwann/keyboard.json index 800d45b83af..0db2bc2075a 100644 --- a/keyboards/the_royal/schwann/keyboard.json +++ b/keyboards/the_royal/schwann/keyboard.json @@ -32,7 +32,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/themadnoodle/ncc1701kb/v2/keyboard.json b/keyboards/themadnoodle/ncc1701kb/v2/keyboard.json index c67262c562d..151ec831735 100644 --- a/keyboards/themadnoodle/ncc1701kb/v2/keyboard.json +++ b/keyboards/themadnoodle/ncc1701kb/v2/keyboard.json @@ -8,7 +8,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/themadnoodle/noodlepad/info.json b/keyboards/themadnoodle/noodlepad/info.json index 8ad698df387..dde8ae08a77 100644 --- a/keyboards/themadnoodle/noodlepad/info.json +++ b/keyboards/themadnoodle/noodlepad/info.json @@ -9,7 +9,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/themadnoodle/noodlepad_micro/keyboard.json b/keyboards/themadnoodle/noodlepad_micro/keyboard.json index fe7ab9ea751..c20b70493cc 100644 --- a/keyboards/themadnoodle/noodlepad_micro/keyboard.json +++ b/keyboards/themadnoodle/noodlepad_micro/keyboard.json @@ -8,7 +8,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/themadnoodle/udon13/keyboard.json b/keyboards/themadnoodle/udon13/keyboard.json index b0ece11612f..10d4bff834d 100644 --- a/keyboards/themadnoodle/udon13/keyboard.json +++ b/keyboards/themadnoodle/udon13/keyboard.json @@ -8,7 +8,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "encoder": true, "mousekey": true, diff --git a/keyboards/theone/keyboard.json b/keyboards/theone/keyboard.json index 3b4fc99d052..a2eff3c015f 100644 --- a/keyboards/theone/keyboard.json +++ b/keyboards/theone/keyboard.json @@ -9,7 +9,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "key_lock": true, "mousekey": true, diff --git a/keyboards/thepanduuh/degenpad/keyboard.json b/keyboards/thepanduuh/degenpad/keyboard.json index 7a0edc21243..9fa02bae90a 100644 --- a/keyboards/thepanduuh/degenpad/keyboard.json +++ b/keyboards/thepanduuh/degenpad/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/thevankeyboards/jetvan/keyboard.json b/keyboards/thevankeyboards/jetvan/keyboard.json index e8a8605bf6d..4d73b04537d 100644 --- a/keyboards/thevankeyboards/jetvan/keyboard.json +++ b/keyboards/thevankeyboards/jetvan/keyboard.json @@ -28,7 +28,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/thevankeyboards/minivan/keyboard.json b/keyboards/thevankeyboards/minivan/keyboard.json index 554cbe01547..547762a7f4d 100644 --- a/keyboards/thevankeyboards/minivan/keyboard.json +++ b/keyboards/thevankeyboards/minivan/keyboard.json @@ -17,7 +17,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/thevankeyboards/roadkit/keyboard.json b/keyboards/thevankeyboards/roadkit/keyboard.json index a5ad593cc2b..b6933d677d1 100644 --- a/keyboards/thevankeyboards/roadkit/keyboard.json +++ b/keyboards/thevankeyboards/roadkit/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/tkc/california/keyboard.json b/keyboards/tkc/california/keyboard.json index 5052b48f92c..304e9fcb8e1 100644 --- a/keyboards/tkc/california/keyboard.json +++ b/keyboards/tkc/california/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/tkc/candybar/lefty/keyboard.json b/keyboards/tkc/candybar/lefty/keyboard.json index 988338a0950..46aeefcde38 100644 --- a/keyboards/tkc/candybar/lefty/keyboard.json +++ b/keyboards/tkc/candybar/lefty/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/tkc/candybar/lefty_r3/keyboard.json b/keyboards/tkc/candybar/lefty_r3/keyboard.json index 22ddc2f1256..fc18aa46fe1 100644 --- a/keyboards/tkc/candybar/lefty_r3/keyboard.json +++ b/keyboards/tkc/candybar/lefty_r3/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/tkc/candybar/righty/keyboard.json b/keyboards/tkc/candybar/righty/keyboard.json index 1f10532a784..e351ffd2931 100644 --- a/keyboards/tkc/candybar/righty/keyboard.json +++ b/keyboards/tkc/candybar/righty/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/tkc/candybar/righty_r3/keyboard.json b/keyboards/tkc/candybar/righty_r3/keyboard.json index 81da5f1e20a..15c52701bc6 100644 --- a/keyboards/tkc/candybar/righty_r3/keyboard.json +++ b/keyboards/tkc/candybar/righty_r3/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/tkc/godspeed75/keyboard.json b/keyboards/tkc/godspeed75/keyboard.json index b078a09efd1..9d823c0cf87 100644 --- a/keyboards/tkc/godspeed75/keyboard.json +++ b/keyboards/tkc/godspeed75/keyboard.json @@ -28,7 +28,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/tkc/portico68v2/keyboard.json b/keyboards/tkc/portico68v2/keyboard.json index 5b9e5e3324a..087713f3a2d 100644 --- a/keyboards/tkc/portico68v2/keyboard.json +++ b/keyboards/tkc/portico68v2/keyboard.json @@ -62,7 +62,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/tkc/tkc1800/keyboard.json b/keyboards/tkc/tkc1800/keyboard.json index 1b98e8e0909..49c56735e43 100644 --- a/keyboards/tkc/tkc1800/keyboard.json +++ b/keyboards/tkc/tkc1800/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/tkc/tkl_ab87/keyboard.json b/keyboards/tkc/tkl_ab87/keyboard.json index c8f96318274..a7bbbc3664d 100644 --- a/keyboards/tkc/tkl_ab87/keyboard.json +++ b/keyboards/tkc/tkl_ab87/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/tmo50/keyboard.json b/keyboards/tmo50/keyboard.json index 5398595d566..c7d9170894c 100644 --- a/keyboards/tmo50/keyboard.json +++ b/keyboards/tmo50/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/toad/keyboard.json b/keyboards/toad/keyboard.json index 52b7c263871..b8177692cc3 100644 --- a/keyboards/toad/keyboard.json +++ b/keyboards/toad/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/toffee_studio/blueberry/keyboard.json b/keyboards/toffee_studio/blueberry/keyboard.json index 1b2308c3da6..56b0bf22010 100644 --- a/keyboards/toffee_studio/blueberry/keyboard.json +++ b/keyboards/toffee_studio/blueberry/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/tokyokeyboard/tokyo60/keyboard.json b/keyboards/tokyokeyboard/tokyo60/keyboard.json index b590946a3a8..90734f16afb 100644 --- a/keyboards/tokyokeyboard/tokyo60/keyboard.json +++ b/keyboards/tokyokeyboard/tokyo60/keyboard.json @@ -13,7 +13,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/tominabox1/adalyn/keyboard.json b/keyboards/tominabox1/adalyn/keyboard.json index 113ef690ede..ea05cffa882 100644 --- a/keyboards/tominabox1/adalyn/keyboard.json +++ b/keyboards/tominabox1/adalyn/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/tominabox1/bigboy/keyboard.json b/keyboards/tominabox1/bigboy/keyboard.json index 4862e216dfa..4e00f6d65a8 100644 --- a/keyboards/tominabox1/bigboy/keyboard.json +++ b/keyboards/tominabox1/bigboy/keyboard.json @@ -36,7 +36,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/tominabox1/qaz/keyboard.json b/keyboards/tominabox1/qaz/keyboard.json index 9e3ea95ad48..d7df86716d4 100644 --- a/keyboards/tominabox1/qaz/keyboard.json +++ b/keyboards/tominabox1/qaz/keyboard.json @@ -30,7 +30,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/tr60w/keyboard.json b/keyboards/tr60w/keyboard.json index dcfc8f48d61..aadc568626c 100644 --- a/keyboards/tr60w/keyboard.json +++ b/keyboards/tr60w/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/trainpad/keyboard.json b/keyboards/trainpad/keyboard.json index 346fd54027f..79b80b04cea 100644 --- a/keyboards/trainpad/keyboard.json +++ b/keyboards/trainpad/keyboard.json @@ -11,7 +11,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": false }, diff --git a/keyboards/trashman/ketch/keyboard.json b/keyboards/trashman/ketch/keyboard.json index 8f0a638e63e..3db7f58ad99 100644 --- a/keyboards/trashman/ketch/keyboard.json +++ b/keyboards/trashman/ketch/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/treasure/type9s2/keyboard.json b/keyboards/treasure/type9s2/keyboard.json index 94cc0dec958..dd43c38e8bf 100644 --- a/keyboards/treasure/type9s2/keyboard.json +++ b/keyboards/treasure/type9s2/keyboard.json @@ -15,7 +15,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/treasure/type9s3/keyboard.json b/keyboards/treasure/type9s3/keyboard.json index 350746e00ca..a285925a464 100644 --- a/keyboards/treasure/type9s3/keyboard.json +++ b/keyboards/treasure/type9s3/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/trkeyboards/trk1/keyboard.json b/keyboards/trkeyboards/trk1/keyboard.json index c3190a5eee8..851ba638e92 100644 --- a/keyboards/trkeyboards/trk1/keyboard.json +++ b/keyboards/trkeyboards/trk1/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/trnthsn/e8ghty/info.json b/keyboards/trnthsn/e8ghty/info.json index bce77e0a5f9..47460abb8d0 100644 --- a/keyboards/trnthsn/e8ghty/info.json +++ b/keyboards/trnthsn/e8ghty/info.json @@ -6,7 +6,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/trnthsn/e8ghtyneo/info.json b/keyboards/trnthsn/e8ghtyneo/info.json index eb1244c9cb2..e393624ecf4 100644 --- a/keyboards/trnthsn/e8ghtyneo/info.json +++ b/keyboards/trnthsn/e8ghtyneo/info.json @@ -6,7 +6,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/trnthsn/s6xty/keyboard.json b/keyboards/trnthsn/s6xty/keyboard.json index ef1f5113bfa..e6c9a1c3597 100644 --- a/keyboards/trnthsn/s6xty/keyboard.json +++ b/keyboards/trnthsn/s6xty/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/trnthsn/s6xty5neor2/info.json b/keyboards/trnthsn/s6xty5neor2/info.json index 47f09623cce..ca2869778cb 100644 --- a/keyboards/trnthsn/s6xty5neor2/info.json +++ b/keyboards/trnthsn/s6xty5neor2/info.json @@ -6,7 +6,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/trojan_pinata/model_b/rev0/keyboard.json b/keyboards/trojan_pinata/model_b/rev0/keyboard.json index 82d712d6fcc..20b89fb71c9 100644 --- a/keyboards/trojan_pinata/model_b/rev0/keyboard.json +++ b/keyboards/trojan_pinata/model_b/rev0/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/tunks/ergo33/keyboard.json b/keyboards/tunks/ergo33/keyboard.json index 2bace9cf009..85304d61534 100644 --- a/keyboards/tunks/ergo33/keyboard.json +++ b/keyboards/tunks/ergo33/keyboard.json @@ -28,7 +28,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/tweetydabird/lbs4/keyboard.json b/keyboards/tweetydabird/lbs4/keyboard.json index e223289a3c0..709a1a875d0 100644 --- a/keyboards/tweetydabird/lbs4/keyboard.json +++ b/keyboards/tweetydabird/lbs4/keyboard.json @@ -8,7 +8,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/tweetydabird/lbs6/keyboard.json b/keyboards/tweetydabird/lbs6/keyboard.json index 57be9289f86..3e5e3e5ef31 100644 --- a/keyboards/tweetydabird/lbs6/keyboard.json +++ b/keyboards/tweetydabird/lbs6/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/tweetydabird/lotus58/info.json b/keyboards/tweetydabird/lotus58/info.json index 2c3f85cdd9f..dfc75fe4071 100644 --- a/keyboards/tweetydabird/lotus58/info.json +++ b/keyboards/tweetydabird/lotus58/info.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/ubest/vn/keyboard.json b/keyboards/ubest/vn/keyboard.json index 477c16fb968..c44824a95b3 100644 --- a/keyboards/ubest/vn/keyboard.json +++ b/keyboards/ubest/vn/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/uk78/keyboard.json b/keyboards/uk78/keyboard.json index ea1e030b2c9..1a9bbb689d5 100644 --- a/keyboards/uk78/keyboard.json +++ b/keyboards/uk78/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/ungodly/nines/keyboard.json b/keyboards/ungodly/nines/keyboard.json index 5e5418e14d4..0e7ff76b998 100644 --- a/keyboards/ungodly/nines/keyboard.json +++ b/keyboards/ungodly/nines/keyboard.json @@ -19,7 +19,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/unikeyboard/diverge3/keyboard.json b/keyboards/unikeyboard/diverge3/keyboard.json index e50bdfa129c..53c5f55fcdb 100644 --- a/keyboards/unikeyboard/diverge3/keyboard.json +++ b/keyboards/unikeyboard/diverge3/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/unikeyboard/divergetm2/keyboard.json b/keyboards/unikeyboard/divergetm2/keyboard.json index 8a7b5bb2df5..3dc19772fa7 100644 --- a/keyboards/unikeyboard/divergetm2/keyboard.json +++ b/keyboards/unikeyboard/divergetm2/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/unikeyboard/felix/keyboard.json b/keyboards/unikeyboard/felix/keyboard.json index 8daef4227e0..5ab1e71c1a6 100644 --- a/keyboards/unikeyboard/felix/keyboard.json +++ b/keyboards/unikeyboard/felix/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/unikorn/keyboard.json b/keyboards/unikorn/keyboard.json index 77eaa81cbf4..7ba06098f3b 100644 --- a/keyboards/unikorn/keyboard.json +++ b/keyboards/unikorn/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/utd80/keyboard.json b/keyboards/utd80/keyboard.json index 7c618e96b16..1167b84da49 100644 --- a/keyboards/utd80/keyboard.json +++ b/keyboards/utd80/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/v60_type_r/keyboard.json b/keyboards/v60_type_r/keyboard.json index c186167ff23..90c7e9bb882 100644 --- a/keyboards/v60_type_r/keyboard.json +++ b/keyboards/v60_type_r/keyboard.json @@ -14,7 +14,6 @@ "backlight": true, "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/vagrant_10/keyboard.json b/keyboards/vagrant_10/keyboard.json index 26b68b69234..262bfc65818 100644 --- a/keyboards/vagrant_10/keyboard.json +++ b/keyboards/vagrant_10/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/vertex/angler2/keyboard.json b/keyboards/vertex/angler2/keyboard.json index 02541f6c866..e55805827b2 100644 --- a/keyboards/vertex/angler2/keyboard.json +++ b/keyboards/vertex/angler2/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/vertex/cycle7/keyboard.json b/keyboards/vertex/cycle7/keyboard.json index 9d55b63fecd..865e8b604e9 100644 --- a/keyboards/vertex/cycle7/keyboard.json +++ b/keyboards/vertex/cycle7/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/vertex/cycle8/keyboard.json b/keyboards/vertex/cycle8/keyboard.json index 6531e0f6fa0..8f90597e873 100644 --- a/keyboards/vertex/cycle8/keyboard.json +++ b/keyboards/vertex/cycle8/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/viendi8l/keyboard.json b/keyboards/viendi8l/keyboard.json index f6df59e08b6..a96c0926e2e 100644 --- a/keyboards/viendi8l/keyboard.json +++ b/keyboards/viendi8l/keyboard.json @@ -21,7 +21,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/viktus/at101_bh/keyboard.json b/keyboards/viktus/at101_bh/keyboard.json index a315288cac4..02769b47e36 100644 --- a/keyboards/viktus/at101_bh/keyboard.json +++ b/keyboards/viktus/at101_bh/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/viktus/minne/keyboard.json b/keyboards/viktus/minne/keyboard.json index bfb3f8a8a6c..e87e2cbbcfd 100644 --- a/keyboards/viktus/minne/keyboard.json +++ b/keyboards/viktus/minne/keyboard.json @@ -14,7 +14,6 @@ "rgblight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/viktus/minne_topre/keyboard.json b/keyboards/viktus/minne_topre/keyboard.json index 6919e7f9ccd..5a4186c3bc7 100644 --- a/keyboards/viktus/minne_topre/keyboard.json +++ b/keyboards/viktus/minne_topre/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/viktus/omnikey_bh/keyboard.json b/keyboards/viktus/omnikey_bh/keyboard.json index af2b596bf8a..780b91ace32 100644 --- a/keyboards/viktus/omnikey_bh/keyboard.json +++ b/keyboards/viktus/omnikey_bh/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/viktus/osav2/keyboard.json b/keyboards/viktus/osav2/keyboard.json index 34c20891810..27bbc729d8d 100644 --- a/keyboards/viktus/osav2/keyboard.json +++ b/keyboards/viktus/osav2/keyboard.json @@ -15,7 +15,6 @@ "rgblight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/viktus/osav2_numpad/keyboard.json b/keyboards/viktus/osav2_numpad/keyboard.json index 941d65f3678..7e4e19dd687 100644 --- a/keyboards/viktus/osav2_numpad/keyboard.json +++ b/keyboards/viktus/osav2_numpad/keyboard.json @@ -14,7 +14,6 @@ "rgblight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/viktus/osav2_numpad_topre/keyboard.json b/keyboards/viktus/osav2_numpad_topre/keyboard.json index 55ca939e3f4..2b4961aed2f 100644 --- a/keyboards/viktus/osav2_numpad_topre/keyboard.json +++ b/keyboards/viktus/osav2_numpad_topre/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/viktus/osav2_topre/keyboard.json b/keyboards/viktus/osav2_topre/keyboard.json index 1f2120ed57e..d5bbd8b92ec 100644 --- a/keyboards/viktus/osav2_topre/keyboard.json +++ b/keyboards/viktus/osav2_topre/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/viktus/smolka/keyboard.json b/keyboards/viktus/smolka/keyboard.json index a5f5735e098..f07b1472ca3 100644 --- a/keyboards/viktus/smolka/keyboard.json +++ b/keyboards/viktus/smolka/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/viktus/sp111_v2/keyboard.json b/keyboards/viktus/sp111_v2/keyboard.json index 63c531ee448..79f76f2c90f 100644 --- a/keyboards/viktus/sp111_v2/keyboard.json +++ b/keyboards/viktus/sp111_v2/keyboard.json @@ -8,7 +8,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/viktus/sp_mini/keyboard.json b/keyboards/viktus/sp_mini/keyboard.json index 6b9627b462c..0b8854b1b98 100644 --- a/keyboards/viktus/sp_mini/keyboard.json +++ b/keyboards/viktus/sp_mini/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/viktus/styrka/keyboard.json b/keyboards/viktus/styrka/keyboard.json index 98d46bc81a0..ce40b10e1ad 100644 --- a/keyboards/viktus/styrka/keyboard.json +++ b/keyboards/viktus/styrka/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/viktus/styrka_topre/keyboard.json b/keyboards/viktus/styrka_topre/keyboard.json index 7095a8f4849..fc3f044660c 100644 --- a/keyboards/viktus/styrka_topre/keyboard.json +++ b/keyboards/viktus/styrka_topre/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/viktus/vkr94/keyboard.json b/keyboards/viktus/vkr94/keyboard.json index a3f4ff35a23..0a41e6bda9c 100644 --- a/keyboards/viktus/vkr94/keyboard.json +++ b/keyboards/viktus/vkr94/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/viktus/z150_bh/keyboard.json b/keyboards/viktus/z150_bh/keyboard.json index bbd7c1c1c3c..b952864f708 100644 --- a/keyboards/viktus/z150_bh/keyboard.json +++ b/keyboards/viktus/z150_bh/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/vinhcatba/uncertainty/keyboard.json b/keyboards/vinhcatba/uncertainty/keyboard.json index 004e9989661..d2b21a3b5d4 100644 --- a/keyboards/vinhcatba/uncertainty/keyboard.json +++ b/keyboards/vinhcatba/uncertainty/keyboard.json @@ -15,7 +15,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "wpm": true, "encoder": true, "extrakey": true, diff --git a/keyboards/vitamins_included/info.json b/keyboards/vitamins_included/info.json index d293e7c9402..2934c2cb716 100644 --- a/keyboards/vitamins_included/info.json +++ b/keyboards/vitamins_included/info.json @@ -9,7 +9,6 @@ "audio": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/void/voidhhkb_hotswap/keyboard.json b/keyboards/void/voidhhkb_hotswap/keyboard.json index 1e29c220dc5..61d2591d955 100644 --- a/keyboards/void/voidhhkb_hotswap/keyboard.json +++ b/keyboards/void/voidhhkb_hotswap/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/vt40/keyboard.json b/keyboards/vt40/keyboard.json index 4a8178b8d59..9afb32f7d11 100644 --- a/keyboards/vt40/keyboard.json +++ b/keyboards/vt40/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/walletburner/cajal/keyboard.json b/keyboards/walletburner/cajal/keyboard.json index e11c62ec876..3e0b4e785e3 100644 --- a/keyboards/walletburner/cajal/keyboard.json +++ b/keyboards/walletburner/cajal/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/walletburner/neuron/keyboard.json b/keyboards/walletburner/neuron/keyboard.json index 1d9ce893878..e514e8d62b1 100644 --- a/keyboards/walletburner/neuron/keyboard.json +++ b/keyboards/walletburner/neuron/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/wavtype/foundation/keyboard.json b/keyboards/wavtype/foundation/keyboard.json index d8e9782f7e8..3be6a9ee0d7 100644 --- a/keyboards/wavtype/foundation/keyboard.json +++ b/keyboards/wavtype/foundation/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/wavtype/p01_ultra/keyboard.json b/keyboards/wavtype/p01_ultra/keyboard.json index 73633ee460b..899fc805a4c 100644 --- a/keyboards/wavtype/p01_ultra/keyboard.json +++ b/keyboards/wavtype/p01_ultra/keyboard.json @@ -30,7 +30,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/weirdo/geminate60/keyboard.json b/keyboards/weirdo/geminate60/keyboard.json index 336f25fdc8b..c8471db914e 100644 --- a/keyboards/weirdo/geminate60/keyboard.json +++ b/keyboards/weirdo/geminate60/keyboard.json @@ -16,7 +16,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/weirdo/kelowna/rgb64/keyboard.json b/keyboards/weirdo/kelowna/rgb64/keyboard.json index d4d3294f50b..149c2375b90 100644 --- a/keyboards/weirdo/kelowna/rgb64/keyboard.json +++ b/keyboards/weirdo/kelowna/rgb64/keyboard.json @@ -16,7 +16,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/weirdo/ls_60/keyboard.json b/keyboards/weirdo/ls_60/keyboard.json index 3325dc057d4..aa82bcf00c6 100644 --- a/keyboards/weirdo/ls_60/keyboard.json +++ b/keyboards/weirdo/ls_60/keyboard.json @@ -16,7 +16,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/weirdo/naiping/np64/keyboard.json b/keyboards/weirdo/naiping/np64/keyboard.json index f7cdff55b51..7cd14a1bfa5 100644 --- a/keyboards/weirdo/naiping/np64/keyboard.json +++ b/keyboards/weirdo/naiping/np64/keyboard.json @@ -16,7 +16,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/weirdo/naiping/nphhkb/keyboard.json b/keyboards/weirdo/naiping/nphhkb/keyboard.json index ed5485d9de6..3bb4bd62caf 100644 --- a/keyboards/weirdo/naiping/nphhkb/keyboard.json +++ b/keyboards/weirdo/naiping/nphhkb/keyboard.json @@ -16,7 +16,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/weirdo/naiping/npminila/keyboard.json b/keyboards/weirdo/naiping/npminila/keyboard.json index e5ed93e193b..9bb791a2b1e 100644 --- a/keyboards/weirdo/naiping/npminila/keyboard.json +++ b/keyboards/weirdo/naiping/npminila/keyboard.json @@ -16,7 +16,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/wekey/polaris/keyboard.json b/keyboards/wekey/polaris/keyboard.json index 4fd5b5f46dd..93a56385fdd 100644 --- a/keyboards/wekey/polaris/keyboard.json +++ b/keyboards/wekey/polaris/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/werk_technica/one/keyboard.json b/keyboards/werk_technica/one/keyboard.json index 4933c7fd7cd..b856c089dfa 100644 --- a/keyboards/werk_technica/one/keyboard.json +++ b/keyboards/werk_technica/one/keyboard.json @@ -15,7 +15,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/westfoxtrot/aanzee/keyboard.json b/keyboards/westfoxtrot/aanzee/keyboard.json index 303ead3367b..72e1447ab17 100644 --- a/keyboards/westfoxtrot/aanzee/keyboard.json +++ b/keyboards/westfoxtrot/aanzee/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/westfoxtrot/cyclops/keyboard.json b/keyboards/westfoxtrot/cyclops/keyboard.json index bf08026551f..8c665aa03ba 100644 --- a/keyboards/westfoxtrot/cyclops/keyboard.json +++ b/keyboards/westfoxtrot/cyclops/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/westfoxtrot/cypher/rev1/keyboard.json b/keyboards/westfoxtrot/cypher/rev1/keyboard.json index 30dcc625de0..509ecff384b 100644 --- a/keyboards/westfoxtrot/cypher/rev1/keyboard.json +++ b/keyboards/westfoxtrot/cypher/rev1/keyboard.json @@ -10,7 +10,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/westfoxtrot/cypher/rev5/keyboard.json b/keyboards/westfoxtrot/cypher/rev5/keyboard.json index 278ff94b06e..e9c6f0606e3 100644 --- a/keyboards/westfoxtrot/cypher/rev5/keyboard.json +++ b/keyboards/westfoxtrot/cypher/rev5/keyboard.json @@ -10,7 +10,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/westfoxtrot/prophet/keyboard.json b/keyboards/westfoxtrot/prophet/keyboard.json index 50a75837369..74bd1b821b3 100644 --- a/keyboards/westfoxtrot/prophet/keyboard.json +++ b/keyboards/westfoxtrot/prophet/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/wilba_tech/rama_works_m10_b/keyboard.json b/keyboards/wilba_tech/rama_works_m10_b/keyboard.json index 157baa1c5a3..edcf24f62e8 100644 --- a/keyboards/wilba_tech/rama_works_m10_b/keyboard.json +++ b/keyboards/wilba_tech/rama_works_m10_b/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wilba_tech/rama_works_m50_ax/keyboard.json b/keyboards/wilba_tech/rama_works_m50_ax/keyboard.json index c44032f97ce..82bfe552d55 100644 --- a/keyboards/wilba_tech/rama_works_m50_ax/keyboard.json +++ b/keyboards/wilba_tech/rama_works_m50_ax/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wilba_tech/wt60_g/keyboard.json b/keyboards/wilba_tech/wt60_g/keyboard.json index 526a6a9d727..21a84eff27d 100644 --- a/keyboards/wilba_tech/wt60_g/keyboard.json +++ b/keyboards/wilba_tech/wt60_g/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wilba_tech/wt60_g2/keyboard.json b/keyboards/wilba_tech/wt60_g2/keyboard.json index 5f62d9d52bb..6bfbe13132e 100644 --- a/keyboards/wilba_tech/wt60_g2/keyboard.json +++ b/keyboards/wilba_tech/wt60_g2/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wilba_tech/wt60_h1/keyboard.json b/keyboards/wilba_tech/wt60_h1/keyboard.json index 2832cf3cd78..17a783f3160 100644 --- a/keyboards/wilba_tech/wt60_h1/keyboard.json +++ b/keyboards/wilba_tech/wt60_h1/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wilba_tech/wt60_h2/keyboard.json b/keyboards/wilba_tech/wt60_h2/keyboard.json index f48e03940c8..ddce1d8b44c 100644 --- a/keyboards/wilba_tech/wt60_h2/keyboard.json +++ b/keyboards/wilba_tech/wt60_h2/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wilba_tech/wt60_h3/keyboard.json b/keyboards/wilba_tech/wt60_h3/keyboard.json index 9078fa92421..42cc613dea5 100644 --- a/keyboards/wilba_tech/wt60_h3/keyboard.json +++ b/keyboards/wilba_tech/wt60_h3/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wilba_tech/wt60_xt/keyboard.json b/keyboards/wilba_tech/wt60_xt/keyboard.json index ba8e8000dbb..de8572180dd 100644 --- a/keyboards/wilba_tech/wt60_xt/keyboard.json +++ b/keyboards/wilba_tech/wt60_xt/keyboard.json @@ -12,7 +12,6 @@ "audio": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wilba_tech/wt65_d/keyboard.json b/keyboards/wilba_tech/wt65_d/keyboard.json index 3754b3788b4..2985d5df76b 100644 --- a/keyboards/wilba_tech/wt65_d/keyboard.json +++ b/keyboards/wilba_tech/wt65_d/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wilba_tech/wt65_f/keyboard.json b/keyboards/wilba_tech/wt65_f/keyboard.json index fb798565789..29c76d2ac2f 100644 --- a/keyboards/wilba_tech/wt65_f/keyboard.json +++ b/keyboards/wilba_tech/wt65_f/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wilba_tech/wt65_fx/keyboard.json b/keyboards/wilba_tech/wt65_fx/keyboard.json index f53332b6af6..9907439d631 100644 --- a/keyboards/wilba_tech/wt65_fx/keyboard.json +++ b/keyboards/wilba_tech/wt65_fx/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wilba_tech/wt65_g/keyboard.json b/keyboards/wilba_tech/wt65_g/keyboard.json index e0974770742..07cd120bc29 100644 --- a/keyboards/wilba_tech/wt65_g/keyboard.json +++ b/keyboards/wilba_tech/wt65_g/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wilba_tech/wt65_g2/keyboard.json b/keyboards/wilba_tech/wt65_g2/keyboard.json index 8a7862dcbee..e7124f917e7 100644 --- a/keyboards/wilba_tech/wt65_g2/keyboard.json +++ b/keyboards/wilba_tech/wt65_g2/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wilba_tech/wt65_h1/keyboard.json b/keyboards/wilba_tech/wt65_h1/keyboard.json index d56321ce5fc..60a76351c4f 100644 --- a/keyboards/wilba_tech/wt65_h1/keyboard.json +++ b/keyboards/wilba_tech/wt65_h1/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wilba_tech/wt65_xt/keyboard.json b/keyboards/wilba_tech/wt65_xt/keyboard.json index 53318562693..4ab03353c80 100644 --- a/keyboards/wilba_tech/wt65_xt/keyboard.json +++ b/keyboards/wilba_tech/wt65_xt/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wilba_tech/wt65_xtx/keyboard.json b/keyboards/wilba_tech/wt65_xtx/keyboard.json index 7d60043b910..6c15054d656 100644 --- a/keyboards/wilba_tech/wt65_xtx/keyboard.json +++ b/keyboards/wilba_tech/wt65_xtx/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wilba_tech/wt70_jb/keyboard.json b/keyboards/wilba_tech/wt70_jb/keyboard.json index f9228106009..1e47da790b7 100644 --- a/keyboards/wilba_tech/wt70_jb/keyboard.json +++ b/keyboards/wilba_tech/wt70_jb/keyboard.json @@ -34,7 +34,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/wilba_tech/wt80_g/keyboard.json b/keyboards/wilba_tech/wt80_g/keyboard.json index cc148a9fa00..38065aa0875 100644 --- a/keyboards/wilba_tech/wt80_g/keyboard.json +++ b/keyboards/wilba_tech/wt80_g/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/willoucom/keypad/keyboard.json b/keyboards/willoucom/keypad/keyboard.json index dc517ccc164..ede4a18ff52 100644 --- a/keyboards/willoucom/keypad/keyboard.json +++ b/keyboards/willoucom/keypad/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/winkeyless/b87/keyboard.json b/keyboards/winkeyless/b87/keyboard.json index 5977058d447..ab7a82056ed 100644 --- a/keyboards/winkeyless/b87/keyboard.json +++ b/keyboards/winkeyless/b87/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/winkeyless/bface/keyboard.json b/keyboards/winkeyless/bface/keyboard.json index d6599722c9a..1f9685c98f0 100644 --- a/keyboards/winkeyless/bface/keyboard.json +++ b/keyboards/winkeyless/bface/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/winkeyless/bmini/keyboard.json b/keyboards/winkeyless/bmini/keyboard.json index f5bf8d40cf3..644870e8bc3 100644 --- a/keyboards/winkeyless/bmini/keyboard.json +++ b/keyboards/winkeyless/bmini/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/winkeyless/bminiex/keyboard.json b/keyboards/winkeyless/bminiex/keyboard.json index 9e213bd1f86..2dc9ccd60d3 100644 --- a/keyboards/winkeyless/bminiex/keyboard.json +++ b/keyboards/winkeyless/bminiex/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/winkeys/mini_winni/keyboard.json b/keyboards/winkeys/mini_winni/keyboard.json index 8f80960f247..e9a3ebca80f 100644 --- a/keyboards/winkeys/mini_winni/keyboard.json +++ b/keyboards/winkeys/mini_winni/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/winry/winry25tc/keyboard.json b/keyboards/winry/winry25tc/keyboard.json index 2f9f88ea4a0..d2d12854dd9 100644 --- a/keyboards/winry/winry25tc/keyboard.json +++ b/keyboards/winry/winry25tc/keyboard.json @@ -22,7 +22,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "key_lock": true, "mousekey": false, diff --git a/keyboards/winry/winry315/keyboard.json b/keyboards/winry/winry315/keyboard.json index 3f57dbe8021..cad810e64f3 100644 --- a/keyboards/winry/winry315/keyboard.json +++ b/keyboards/winry/winry315/keyboard.json @@ -84,7 +84,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/wolf/frogpad/keyboard.json b/keyboards/wolf/frogpad/keyboard.json index 061b9221a78..040554a9217 100644 --- a/keyboards/wolf/frogpad/keyboard.json +++ b/keyboards/wolf/frogpad/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/wolf/m60_b/keyboard.json b/keyboards/wolf/m60_b/keyboard.json index ba25ebaa92e..bd3233871f4 100644 --- a/keyboards/wolf/m60_b/keyboard.json +++ b/keyboards/wolf/m60_b/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/wolf/m6_c/keyboard.json b/keyboards/wolf/m6_c/keyboard.json index 8c1d361f8c9..3d4b326684f 100644 --- a/keyboards/wolf/m6_c/keyboard.json +++ b/keyboards/wolf/m6_c/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/wolf/neely65/keyboard.json b/keyboards/wolf/neely65/keyboard.json index 5e55bf7bfca..07c087b8ac6 100644 --- a/keyboards/wolf/neely65/keyboard.json +++ b/keyboards/wolf/neely65/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/wolf/silhouette/keyboard.json b/keyboards/wolf/silhouette/keyboard.json index 83c2d039991..ba3a637ec8c 100644 --- a/keyboards/wolf/silhouette/keyboard.json +++ b/keyboards/wolf/silhouette/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/wolf/twilight/keyboard.json b/keyboards/wolf/twilight/keyboard.json index 8a90b3656e4..a296c76700a 100644 --- a/keyboards/wolf/twilight/keyboard.json +++ b/keyboards/wolf/twilight/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/wolf/ziggurat/keyboard.json b/keyboards/wolf/ziggurat/keyboard.json index 32627b479fd..800db68b2ab 100644 --- a/keyboards/wolf/ziggurat/keyboard.json +++ b/keyboards/wolf/ziggurat/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/woodkeys/scarletbandana/keyboard.json b/keyboards/woodkeys/scarletbandana/keyboard.json index 155ca508e7f..3d9e8c97ad1 100644 --- a/keyboards/woodkeys/scarletbandana/keyboard.json +++ b/keyboards/woodkeys/scarletbandana/keyboard.json @@ -32,7 +32,6 @@ "audio": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/work_louder/micro/keyboard.json b/keyboards/work_louder/micro/keyboard.json index b9ba6227bd7..75789388e5e 100644 --- a/keyboards/work_louder/micro/keyboard.json +++ b/keyboards/work_louder/micro/keyboard.json @@ -6,7 +6,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/work_louder/numpad/keyboard.json b/keyboards/work_louder/numpad/keyboard.json index 08bf7295dac..4ec9a8564cd 100644 --- a/keyboards/work_louder/numpad/keyboard.json +++ b/keyboards/work_louder/numpad/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/wsk/alpha9/keyboard.json b/keyboards/wsk/alpha9/keyboard.json index 79c01c4c2ab..891fc09eedf 100644 --- a/keyboards/wsk/alpha9/keyboard.json +++ b/keyboards/wsk/alpha9/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/wsk/g4m3ralpha/keyboard.json b/keyboards/wsk/g4m3ralpha/keyboard.json index d2ba034be19..4415d8aee5a 100644 --- a/keyboards/wsk/g4m3ralpha/keyboard.json +++ b/keyboards/wsk/g4m3ralpha/keyboard.json @@ -35,7 +35,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/wsk/houndstooth/keyboard.json b/keyboards/wsk/houndstooth/keyboard.json index 2be2b369688..dc651e89b59 100644 --- a/keyboards/wsk/houndstooth/keyboard.json +++ b/keyboards/wsk/houndstooth/keyboard.json @@ -14,7 +14,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/wsk/jerkin/keyboard.json b/keyboards/wsk/jerkin/keyboard.json index 43fc8d107d1..dca3af23782 100644 --- a/keyboards/wsk/jerkin/keyboard.json +++ b/keyboards/wsk/jerkin/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/wsk/kodachi50/keyboard.json b/keyboards/wsk/kodachi50/keyboard.json index 3f5843fd1af..5888fe00fb5 100644 --- a/keyboards/wsk/kodachi50/keyboard.json +++ b/keyboards/wsk/kodachi50/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/wsk/pain27/keyboard.json b/keyboards/wsk/pain27/keyboard.json index a01e887e99f..02345d04db3 100644 --- a/keyboards/wsk/pain27/keyboard.json +++ b/keyboards/wsk/pain27/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/wsk/sl40/keyboard.json b/keyboards/wsk/sl40/keyboard.json index aba29855dd6..ab592a69678 100644 --- a/keyboards/wsk/sl40/keyboard.json +++ b/keyboards/wsk/sl40/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/wsk/tkl30/keyboard.json b/keyboards/wsk/tkl30/keyboard.json index 909f72d4cfc..f69d9b54498 100644 --- a/keyboards/wsk/tkl30/keyboard.json +++ b/keyboards/wsk/tkl30/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/wuque/creek70/keyboard.json b/keyboards/wuque/creek70/keyboard.json index e7227ace8e5..d7b64f88ce3 100644 --- a/keyboards/wuque/creek70/keyboard.json +++ b/keyboards/wuque/creek70/keyboard.json @@ -8,7 +8,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/wuque/ikki68/keyboard.json b/keyboards/wuque/ikki68/keyboard.json index d666b0b5dec..942e290bd5e 100644 --- a/keyboards/wuque/ikki68/keyboard.json +++ b/keyboards/wuque/ikki68/keyboard.json @@ -37,7 +37,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/wuque/nemui65/keyboard.json b/keyboards/wuque/nemui65/keyboard.json index 239fe991bb8..3579ec40368 100644 --- a/keyboards/wuque/nemui65/keyboard.json +++ b/keyboards/wuque/nemui65/keyboard.json @@ -14,7 +14,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/wuque/tata80/wk/keyboard.json b/keyboards/wuque/tata80/wk/keyboard.json index 957a635dcb0..a078e0b2a3d 100644 --- a/keyboards/wuque/tata80/wk/keyboard.json +++ b/keyboards/wuque/tata80/wk/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/wuque/tata80/wkl/keyboard.json b/keyboards/wuque/tata80/wkl/keyboard.json index 4613f97f670..b91a7a5ac49 100644 --- a/keyboards/wuque/tata80/wkl/keyboard.json +++ b/keyboards/wuque/tata80/wkl/keyboard.json @@ -12,7 +12,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false diff --git a/keyboards/x16/keyboard.json b/keyboards/x16/keyboard.json index d8aa2468ca0..17d28e8a5cb 100644 --- a/keyboards/x16/keyboard.json +++ b/keyboards/x16/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/xbows/knight/keyboard.json b/keyboards/xbows/knight/keyboard.json index b5adc0b9463..ab888e6f233 100644 --- a/keyboards/xbows/knight/keyboard.json +++ b/keyboards/xbows/knight/keyboard.json @@ -35,7 +35,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/xbows/knight_plus/keyboard.json b/keyboards/xbows/knight_plus/keyboard.json index b3c43645d99..b1da324626a 100644 --- a/keyboards/xbows/knight_plus/keyboard.json +++ b/keyboards/xbows/knight_plus/keyboard.json @@ -35,7 +35,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/xbows/nature/keyboard.json b/keyboards/xbows/nature/keyboard.json index 7f23e781d2e..49c2b323e7a 100644 --- a/keyboards/xbows/nature/keyboard.json +++ b/keyboards/xbows/nature/keyboard.json @@ -35,7 +35,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/xbows/numpad/keyboard.json b/keyboards/xbows/numpad/keyboard.json index 7be91ae2a4e..b0bba80ec23 100644 --- a/keyboards/xbows/numpad/keyboard.json +++ b/keyboards/xbows/numpad/keyboard.json @@ -35,7 +35,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/xbows/ranger/keyboard.json b/keyboards/xbows/ranger/keyboard.json index c5a47413ec7..fc1077d39a6 100644 --- a/keyboards/xbows/ranger/keyboard.json +++ b/keyboards/xbows/ranger/keyboard.json @@ -35,7 +35,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/xelus/dharma/keyboard.json b/keyboards/xelus/dharma/keyboard.json index 0e5fd1217b3..83f6d955817 100644 --- a/keyboards/xelus/dharma/keyboard.json +++ b/keyboards/xelus/dharma/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/xelus/pachi/mini_32u4/keyboard.json b/keyboards/xelus/pachi/mini_32u4/keyboard.json index c3144bca157..78069d56b06 100644 --- a/keyboards/xelus/pachi/mini_32u4/keyboard.json +++ b/keyboards/xelus/pachi/mini_32u4/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/xelus/pachi/rev1/keyboard.json b/keyboards/xelus/pachi/rev1/keyboard.json index fff3be76467..4dc35075d5d 100644 --- a/keyboards/xelus/pachi/rev1/keyboard.json +++ b/keyboards/xelus/pachi/rev1/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/xelus/snap96/keyboard.json b/keyboards/xelus/snap96/keyboard.json index e32b7db4e02..5a5f1d8c420 100644 --- a/keyboards/xelus/snap96/keyboard.json +++ b/keyboards/xelus/snap96/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/xelus/valor/rev1/keyboard.json b/keyboards/xelus/valor/rev1/keyboard.json index e85f9b2aaa3..c5a7fe8113a 100644 --- a/keyboards/xelus/valor/rev1/keyboard.json +++ b/keyboards/xelus/valor/rev1/keyboard.json @@ -32,7 +32,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/xelus/valor_frl_tkl/rev2_0/keyboard.json b/keyboards/xelus/valor_frl_tkl/rev2_0/keyboard.json index 36db1d4398e..7afc25deeed 100644 --- a/keyboards/xelus/valor_frl_tkl/rev2_0/keyboard.json +++ b/keyboards/xelus/valor_frl_tkl/rev2_0/keyboard.json @@ -9,7 +9,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/xelus/valor_frl_tkl/rev2_1/keyboard.json b/keyboards/xelus/valor_frl_tkl/rev2_1/keyboard.json index 376d73a4299..21ef5b6920f 100644 --- a/keyboards/xelus/valor_frl_tkl/rev2_1/keyboard.json +++ b/keyboards/xelus/valor_frl_tkl/rev2_1/keyboard.json @@ -9,7 +9,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/xiudi/xd004/v1/keyboard.json b/keyboards/xiudi/xd004/v1/keyboard.json index a6211edfec5..4a134dd5efe 100644 --- a/keyboards/xiudi/xd004/v1/keyboard.json +++ b/keyboards/xiudi/xd004/v1/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/xiudi/xd60/rev2/keyboard.json b/keyboards/xiudi/xd60/rev2/keyboard.json index 8e03fdba20a..9f25023bb9a 100644 --- a/keyboards/xiudi/xd60/rev2/keyboard.json +++ b/keyboards/xiudi/xd60/rev2/keyboard.json @@ -7,7 +7,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/xiudi/xd60/rev3/keyboard.json b/keyboards/xiudi/xd60/rev3/keyboard.json index 09af3681af3..defbd93592a 100644 --- a/keyboards/xiudi/xd60/rev3/keyboard.json +++ b/keyboards/xiudi/xd60/rev3/keyboard.json @@ -7,7 +7,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/xiudi/xd68/keyboard.json b/keyboards/xiudi/xd68/keyboard.json index 35fc7f61ddb..828aa1888df 100644 --- a/keyboards/xiudi/xd68/keyboard.json +++ b/keyboards/xiudi/xd68/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/xiudi/xd75/keyboard.json b/keyboards/xiudi/xd75/keyboard.json index 95aaa6f182f..4644c9f826b 100644 --- a/keyboards/xiudi/xd75/keyboard.json +++ b/keyboards/xiudi/xd75/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/xiudi/xd84pro/keyboard.json b/keyboards/xiudi/xd84pro/keyboard.json index 070dd323964..e5dc56c29b6 100644 --- a/keyboards/xiudi/xd84pro/keyboard.json +++ b/keyboards/xiudi/xd84pro/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/xmmx/keyboard.json b/keyboards/xmmx/keyboard.json index bb8d7e09770..12cb6ad0fc5 100644 --- a/keyboards/xmmx/keyboard.json +++ b/keyboards/xmmx/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/yandrstudio/nz64/keyboard.json b/keyboards/yandrstudio/nz64/keyboard.json index 8169449a107..a017b06f589 100644 --- a/keyboards/yandrstudio/nz64/keyboard.json +++ b/keyboards/yandrstudio/nz64/keyboard.json @@ -65,7 +65,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/yandrstudio/zhou65/keyboard.json b/keyboards/yandrstudio/zhou65/keyboard.json index f15cdfb0a2e..1c5f368262f 100644 --- a/keyboards/yandrstudio/zhou65/keyboard.json +++ b/keyboards/yandrstudio/zhou65/keyboard.json @@ -8,7 +8,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/yatara/drink_me/keyboard.json b/keyboards/yatara/drink_me/keyboard.json index 970aa4f5d34..523d0d916a4 100644 --- a/keyboards/yatara/drink_me/keyboard.json +++ b/keyboards/yatara/drink_me/keyboard.json @@ -13,7 +13,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": false diff --git a/keyboards/ydkb/chili/keyboard.json b/keyboards/ydkb/chili/keyboard.json index 13b46d8b121..114b022ac6e 100644 --- a/keyboards/ydkb/chili/keyboard.json +++ b/keyboards/ydkb/chili/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ydkb/yd68/keyboard.json b/keyboards/ydkb/yd68/keyboard.json index 439272a9274..bb906ee1468 100644 --- a/keyboards/ydkb/yd68/keyboard.json +++ b/keyboards/ydkb/yd68/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/ydkb/ydpm40/keyboard.json b/keyboards/ydkb/ydpm40/keyboard.json index f19139d5664..5d016e389ba 100644 --- a/keyboards/ydkb/ydpm40/keyboard.json +++ b/keyboards/ydkb/ydpm40/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": false diff --git a/keyboards/yeehaw/keyboard.json b/keyboards/yeehaw/keyboard.json index aa20239c9d3..d2555a32017 100644 --- a/keyboards/yeehaw/keyboard.json +++ b/keyboards/yeehaw/keyboard.json @@ -39,7 +39,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/ymdk/bface/keyboard.json b/keyboards/ymdk/bface/keyboard.json index 9662adaba26..42c5ef54610 100644 --- a/keyboards/ymdk/bface/keyboard.json +++ b/keyboards/ymdk/bface/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": false, "command": true, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/ymdk/melody96/hotswap/keyboard.json b/keyboards/ymdk/melody96/hotswap/keyboard.json index 901afc8651e..1b22f1fdeee 100644 --- a/keyboards/ymdk/melody96/hotswap/keyboard.json +++ b/keyboards/ymdk/melody96/hotswap/keyboard.json @@ -16,7 +16,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/ymdk/np21/keyboard.json b/keyboards/ymdk/np21/keyboard.json index a1997161ee9..8527fc5596b 100644 --- a/keyboards/ymdk/np21/keyboard.json +++ b/keyboards/ymdk/np21/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/ymdk/np24/u4rgb6/keyboard.json b/keyboards/ymdk/np24/u4rgb6/keyboard.json index 3dcd9d63b3e..cc00595cc11 100644 --- a/keyboards/ymdk/np24/u4rgb6/keyboard.json +++ b/keyboards/ymdk/np24/u4rgb6/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": false, diff --git a/keyboards/ymdk/wings/keyboard.json b/keyboards/ymdk/wings/keyboard.json index 30c8439b45e..9036872c663 100644 --- a/keyboards/ymdk/wings/keyboard.json +++ b/keyboards/ymdk/wings/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/ymdk/wingshs/keyboard.json b/keyboards/ymdk/wingshs/keyboard.json index 487d61cc2e1..252884dc758 100644 --- a/keyboards/ymdk/wingshs/keyboard.json +++ b/keyboards/ymdk/wingshs/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/ymdk/yd60mq/info.json b/keyboards/ymdk/yd60mq/info.json index d5a3a20c718..11997ba50ea 100644 --- a/keyboards/ymdk/yd60mq/info.json +++ b/keyboards/ymdk/yd60mq/info.json @@ -10,7 +10,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/ymdk/ym68/keyboard.json b/keyboards/ymdk/ym68/keyboard.json index 032774b282e..a6185e58916 100644 --- a/keyboards/ymdk/ym68/keyboard.json +++ b/keyboards/ymdk/ym68/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/ymdk/ymd09/keyboard.json b/keyboards/ymdk/ymd09/keyboard.json index 571aa8c45f6..226502b093e 100644 --- a/keyboards/ymdk/ymd09/keyboard.json +++ b/keyboards/ymdk/ymd09/keyboard.json @@ -19,7 +19,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "rgb_matrix": true diff --git a/keyboards/ymdk/ymd21/v2/keyboard.json b/keyboards/ymdk/ymd21/v2/keyboard.json index d7c4b75855c..7e09f04fdf2 100644 --- a/keyboards/ymdk/ymd21/v2/keyboard.json +++ b/keyboards/ymdk/ymd21/v2/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/ymdk/ymd67/keyboard.json b/keyboards/ymdk/ymd67/keyboard.json index 5f9ba275f97..4818a79b501 100644 --- a/keyboards/ymdk/ymd67/keyboard.json +++ b/keyboards/ymdk/ymd67/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "mousekey": false, "nkro": true, diff --git a/keyboards/ymdk/ymd75/rev1/keyboard.json b/keyboards/ymdk/ymd75/rev1/keyboard.json index fd46bf0d991..3c9022ccdbf 100644 --- a/keyboards/ymdk/ymd75/rev1/keyboard.json +++ b/keyboards/ymdk/ymd75/rev1/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "key_lock": true, "mousekey": false, diff --git a/keyboards/ymdk/ymd75/rev2/keyboard.json b/keyboards/ymdk/ymd75/rev2/keyboard.json index 3bee673ceb5..8bfebf0207b 100644 --- a/keyboards/ymdk/ymd75/rev2/keyboard.json +++ b/keyboards/ymdk/ymd75/rev2/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "key_lock": true, "mousekey": false, diff --git a/keyboards/ymdk/ymd75/rev3/keyboard.json b/keyboards/ymdk/ymd75/rev3/keyboard.json index 4377fbd742b..eb5979c566b 100644 --- a/keyboards/ymdk/ymd75/rev3/keyboard.json +++ b/keyboards/ymdk/ymd75/rev3/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": true, - "console": false, "extrakey": true, "key_lock": true, "mousekey": false, diff --git a/keyboards/ymdk/ymd75/rev4/iso/keyboard.json b/keyboards/ymdk/ymd75/rev4/iso/keyboard.json index 21c688bc824..44c43e8d854 100644 --- a/keyboards/ymdk/ymd75/rev4/iso/keyboard.json +++ b/keyboards/ymdk/ymd75/rev4/iso/keyboard.json @@ -18,7 +18,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/ymdk/ymd96/keyboard.json b/keyboards/ymdk/ymd96/keyboard.json index 7ff17de0c2b..cd5b6509f4d 100644 --- a/keyboards/ymdk/ymd96/keyboard.json +++ b/keyboards/ymdk/ymd96/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": false, "command": false, - "console": false, "extrakey": true, "key_lock": true, "mousekey": false, diff --git a/keyboards/yncognito/batpad/keyboard.json b/keyboards/yncognito/batpad/keyboard.json index 6e962aefce7..4d42442b6f6 100644 --- a/keyboards/yncognito/batpad/keyboard.json +++ b/keyboards/yncognito/batpad/keyboard.json @@ -65,7 +65,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/yoichiro/lunakey_macro/keyboard.json b/keyboards/yoichiro/lunakey_macro/keyboard.json index 3742a4d467d..e5c693e9cd6 100644 --- a/keyboards/yoichiro/lunakey_macro/keyboard.json +++ b/keyboards/yoichiro/lunakey_macro/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": false, "mousekey": false, "nkro": false diff --git a/keyboards/yoichiro/lunakey_pico/keyboard.json b/keyboards/yoichiro/lunakey_pico/keyboard.json index a6db26fde0e..5f04d1b3f97 100644 --- a/keyboards/yoichiro/lunakey_pico/keyboard.json +++ b/keyboards/yoichiro/lunakey_pico/keyboard.json @@ -8,7 +8,6 @@ "bootmagic": false, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": false, "rgblight": true diff --git a/keyboards/yynmt/dozen0/keyboard.json b/keyboards/yynmt/dozen0/keyboard.json index 1ad2b13be05..6cdbe0a28da 100644 --- a/keyboards/yynmt/dozen0/keyboard.json +++ b/keyboards/yynmt/dozen0/keyboard.json @@ -31,7 +31,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false, diff --git a/keyboards/zeix/eden/keyboard.json b/keyboards/zeix/eden/keyboard.json index 3d44a663b9b..76bfdaee2aa 100644 --- a/keyboards/zeix/eden/keyboard.json +++ b/keyboards/zeix/eden/keyboard.json @@ -13,7 +13,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true }, diff --git a/keyboards/zeix/qwertyqop60hs/keyboard.json b/keyboards/zeix/qwertyqop60hs/keyboard.json index 6397551ff70..d477dcc44e7 100644 --- a/keyboards/zeix/qwertyqop60hs/keyboard.json +++ b/keyboards/zeix/qwertyqop60hs/keyboard.json @@ -13,7 +13,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true }, diff --git a/keyboards/zicodia/tklfrlnrlmlao/keyboard.json b/keyboards/zicodia/tklfrlnrlmlao/keyboard.json index e7c7322f7ee..e29f3ca8cbd 100644 --- a/keyboards/zicodia/tklfrlnrlmlao/keyboard.json +++ b/keyboards/zicodia/tklfrlnrlmlao/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ziggurat/keyboard.json b/keyboards/ziggurat/keyboard.json index ef86511b368..21ba5772c40 100644 --- a/keyboards/ziggurat/keyboard.json +++ b/keyboards/ziggurat/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": false diff --git a/keyboards/zigotica/z12/keyboard.json b/keyboards/zigotica/z12/keyboard.json index 2d3e92d6e2c..d7b2090c57a 100644 --- a/keyboards/zigotica/z12/keyboard.json +++ b/keyboards/zigotica/z12/keyboard.json @@ -22,7 +22,6 @@ "features": { "bootmagic": false, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": false, diff --git a/keyboards/ziptyze/lets_split_v3/keyboard.json b/keyboards/ziptyze/lets_split_v3/keyboard.json index ca53b422407..7d110bd7ff5 100644 --- a/keyboards/ziptyze/lets_split_v3/keyboard.json +++ b/keyboards/ziptyze/lets_split_v3/keyboard.json @@ -8,7 +8,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "rgb_matrix": true diff --git a/keyboards/zj68/keyboard.json b/keyboards/zj68/keyboard.json index 9273b81cd5a..f59c5b7fbbd 100644 --- a/keyboards/zj68/keyboard.json +++ b/keyboards/zj68/keyboard.json @@ -11,7 +11,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": false, "nkro": true diff --git a/keyboards/zoo/wampus/keyboard.json b/keyboards/zoo/wampus/keyboard.json index 3e65c502319..9260795690b 100644 --- a/keyboards/zoo/wampus/keyboard.json +++ b/keyboards/zoo/wampus/keyboard.json @@ -12,7 +12,6 @@ "backlight": true, "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true, diff --git a/keyboards/zos/65s/keyboard.json b/keyboards/zos/65s/keyboard.json index eaf8a97f861..3a478332351 100644 --- a/keyboards/zos/65s/keyboard.json +++ b/keyboards/zos/65s/keyboard.json @@ -7,7 +7,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/ztboards/after/keyboard.json b/keyboards/ztboards/after/keyboard.json index 1b023908377..3cccec283a1 100644 --- a/keyboards/ztboards/after/keyboard.json +++ b/keyboards/ztboards/after/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "encoder": true, "extrakey": true, "mousekey": true, diff --git a/keyboards/ztboards/noon/keyboard.json b/keyboards/ztboards/noon/keyboard.json index a3f9912acc4..5caf694aaa3 100644 --- a/keyboards/ztboards/noon/keyboard.json +++ b/keyboards/ztboards/noon/keyboard.json @@ -11,7 +11,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/zwag/zwag75/keyboard.json b/keyboards/zwag/zwag75/keyboard.json index 899e21dfa59..08ea4b6e563 100644 --- a/keyboards/zwag/zwag75/keyboard.json +++ b/keyboards/zwag/zwag75/keyboard.json @@ -18,7 +18,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": false, "rgblight": true diff --git a/keyboards/zwerg/keyboard.json b/keyboards/zwerg/keyboard.json index a039d0fa392..6ec594a472a 100644 --- a/keyboards/zwerg/keyboard.json +++ b/keyboards/zwerg/keyboard.json @@ -10,7 +10,6 @@ "features": { "bootmagic": true, "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true diff --git a/keyboards/zykrah/fuyu/keyboard.json b/keyboards/zykrah/fuyu/keyboard.json index 01053d48212..9fe6e6ed341 100644 --- a/keyboards/zykrah/fuyu/keyboard.json +++ b/keyboards/zykrah/fuyu/keyboard.json @@ -13,7 +13,6 @@ "bootmagic": false, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true, "rgb_matrix": true diff --git a/keyboards/zykrah/slime88/keyboard.json b/keyboards/zykrah/slime88/keyboard.json index 8b15524ccac..d0538facf54 100644 --- a/keyboards/zykrah/slime88/keyboard.json +++ b/keyboards/zykrah/slime88/keyboard.json @@ -13,7 +13,6 @@ "bootmagic": true, "mousekey": true, "extrakey": true, - "console": false, "command": false, "nkro": true }, From da2e897f55a85bf6175f0d6ce9d63a7fe9b09202 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 23 Apr 2025 03:10:14 +0100 Subject: [PATCH 362/365] Update 'qmk generate-api' to only publish pure DD keymaps (#24782) --- lib/python/qmk/cli/generate/api.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/python/qmk/cli/generate/api.py b/lib/python/qmk/cli/generate/api.py index 83118184764..7f7c05f6e23 100755 --- a/lib/python/qmk/cli/generate/api.py +++ b/lib/python/qmk/cli/generate/api.py @@ -131,6 +131,11 @@ def generate_api(cli): if keymap_rel is None: cli.log.debug('Skipping keymap %s (not in qmk_firmware)', keymap) continue + + if (keymap_rel / 'keymap.c').exists(): + cli.log.debug('Skipping keymap %s (not pure dd keymap)', keymap) + continue + kb_json['keymaps'][keymap.name] = { # TODO: deprecate 'url' as consumer needs to know its potentially hjson 'url': f'https://raw.githubusercontent.com/qmk/qmk_firmware/master/{keymap_rel}/keymap.json', From 11cb5cf347489be1b21cee2d8173fb751edd57ac Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 23 Apr 2025 03:11:28 +0100 Subject: [PATCH 363/365] Remove more duplication of defaults (#25189) --- keyboards/cipulot/ec_980c/keyboard.json | 3 +-- keyboards/custommk/evo70_r2/keyboard.json | 1 - keyboards/darmoshark/k3/keyboard.json | 3 +-- keyboards/dnworks/frltkl/keyboard.json | 3 +-- keyboards/dnworks/sbl/keyboard.json | 3 +-- keyboards/dnworks/tkl87/keyboard.json | 3 +-- keyboards/ebastler/e80_1800/keyboard.json | 3 +-- keyboards/handwired/daskeyboard/daskeyboard4/keyboard.json | 3 +-- keyboards/kbdfans/odin75/keyboard.json | 3 +-- keyboards/kbdfans/tiger80/keyboard.json | 1 - keyboards/meetlab/kafkasplit/keyboard.json | 3 +-- keyboards/studiokestra/fairholme/keyboard.json | 3 +-- keyboards/studiokestra/line_friends_tkl/keyboard.json | 1 - keyboards/yandrstudio/transition80/keyboard.json | 3 +-- keyboards/zeix/eden/keyboard.json | 3 +-- 15 files changed, 12 insertions(+), 27 deletions(-) diff --git a/keyboards/cipulot/ec_980c/keyboard.json b/keyboards/cipulot/ec_980c/keyboard.json index 9be58d294ce..823a7617359 100644 --- a/keyboards/cipulot/ec_980c/keyboard.json +++ b/keyboards/cipulot/ec_980c/keyboard.json @@ -38,8 +38,7 @@ {"matrix": [0, 16], "x": 17, "y": 1, "flags": 4}, {"matrix": [0, 17], "x": 18, "y": 1, "flags": 4} ], - "led_count": 3, - "max_brightness": 255 + "led_count": 3 }, "usb": { "device_version": "0.0.1", diff --git a/keyboards/custommk/evo70_r2/keyboard.json b/keyboards/custommk/evo70_r2/keyboard.json index 7fb79f3a7e6..6cd1fc12d99 100644 --- a/keyboards/custommk/evo70_r2/keyboard.json +++ b/keyboards/custommk/evo70_r2/keyboard.json @@ -60,7 +60,6 @@ "backlight": { "driver": "pwm", "breathing": true, - "breathing_period": 6, "levels": 17, "pin": "A6" }, diff --git a/keyboards/darmoshark/k3/keyboard.json b/keyboards/darmoshark/k3/keyboard.json index d3fb3794276..b645a18dc6a 100644 --- a/keyboards/darmoshark/k3/keyboard.json +++ b/keyboards/darmoshark/k3/keyboard.json @@ -31,8 +31,7 @@ "cols": ["B1", "C7", "C13", "B9"] }, "indicators": { - "num_lock": "C5", - "on_state": 1 + "num_lock": "C5" }, "ws2812": { "pin": "A8" diff --git a/keyboards/dnworks/frltkl/keyboard.json b/keyboards/dnworks/frltkl/keyboard.json index 88a9db338ba..d30a0134eb0 100644 --- a/keyboards/dnworks/frltkl/keyboard.json +++ b/keyboards/dnworks/frltkl/keyboard.json @@ -17,8 +17,7 @@ "nkro": true }, "indicators": { - "caps_lock": "GP27", - "on_state": 1 + "caps_lock": "GP27" }, "diode_direction": "COL2ROW", "matrix_pins": { diff --git a/keyboards/dnworks/sbl/keyboard.json b/keyboards/dnworks/sbl/keyboard.json index 44cb250533f..8ded6856a80 100644 --- a/keyboards/dnworks/sbl/keyboard.json +++ b/keyboards/dnworks/sbl/keyboard.json @@ -17,8 +17,7 @@ "nkro": true }, "indicators": { - "caps_lock": "GP29", - "on_state": 1 + "caps_lock": "GP29" }, "diode_direction": "COL2ROW", "matrix_pins": { diff --git a/keyboards/dnworks/tkl87/keyboard.json b/keyboards/dnworks/tkl87/keyboard.json index 6b56435ae3f..af912ae25d5 100644 --- a/keyboards/dnworks/tkl87/keyboard.json +++ b/keyboards/dnworks/tkl87/keyboard.json @@ -17,8 +17,7 @@ }, "indicators": { "caps_lock": "GP27", - "scroll_lock": "GP1", - "on_state": 1 + "scroll_lock": "GP1" }, "diode_direction": "COL2ROW", "matrix_pins": { diff --git a/keyboards/ebastler/e80_1800/keyboard.json b/keyboards/ebastler/e80_1800/keyboard.json index 1e10fd45c47..2ae34934887 100644 --- a/keyboards/ebastler/e80_1800/keyboard.json +++ b/keyboards/ebastler/e80_1800/keyboard.json @@ -26,8 +26,7 @@ "backlight": { "breathing": true, "levels": 5, - "pin": "A9", - "on_state": 1 + "pin": "A9" }, "indicators": { "num_lock": "B6", diff --git a/keyboards/handwired/daskeyboard/daskeyboard4/keyboard.json b/keyboards/handwired/daskeyboard/daskeyboard4/keyboard.json index 888ec24e37e..7a8326278c6 100644 --- a/keyboards/handwired/daskeyboard/daskeyboard4/keyboard.json +++ b/keyboards/handwired/daskeyboard/daskeyboard4/keyboard.json @@ -31,8 +31,7 @@ "indicators": { "num_lock": "C13", "caps_lock": "B14", - "scroll_lock": "B2", - "on_state": 1 + "scroll_lock": "B2" }, "encoder": { "rotary": [ diff --git a/keyboards/kbdfans/odin75/keyboard.json b/keyboards/kbdfans/odin75/keyboard.json index 0fd942f5153..a5a6a51aa6f 100644 --- a/keyboards/kbdfans/odin75/keyboard.json +++ b/keyboards/kbdfans/odin75/keyboard.json @@ -14,8 +14,7 @@ "wpm": true }, "indicators": { - "caps_lock": "GP29", - "on_state": 1 + "caps_lock": "GP29" }, "matrix_pins": { "cols": ["GP19", "GP18", "GP17", "GP16", "GP15", "GP14", "GP13", "GP12", "GP11", "GP10", "GP9", "GP8", "GP7", "GP6", "GP3", "GP4"], diff --git a/keyboards/kbdfans/tiger80/keyboard.json b/keyboards/kbdfans/tiger80/keyboard.json index ce6a83dd8f3..66be74d6101 100644 --- a/keyboards/kbdfans/tiger80/keyboard.json +++ b/keyboards/kbdfans/tiger80/keyboard.json @@ -18,7 +18,6 @@ "diode_direction": "COL2ROW", "indicators": { "caps_lock": "C7", - "on_state": 1, "scroll_lock": "B2" }, "processor": "atmega32u4", diff --git a/keyboards/meetlab/kafkasplit/keyboard.json b/keyboards/meetlab/kafkasplit/keyboard.json index 0ac90a56fb7..77e5ec3e135 100644 --- a/keyboards/meetlab/kafkasplit/keyboard.json +++ b/keyboards/meetlab/kafkasplit/keyboard.json @@ -14,8 +14,7 @@ "wpm": true }, "indicators": { - "caps_lock": "GP25", - "on_state": 1 + "caps_lock": "GP25" }, "matrix_pins": { "cols": ["GP2", "GP3", "GP6", "GP7", "GP10", "GP11"], diff --git a/keyboards/studiokestra/fairholme/keyboard.json b/keyboards/studiokestra/fairholme/keyboard.json index 13170ce65cd..d70934187c1 100644 --- a/keyboards/studiokestra/fairholme/keyboard.json +++ b/keyboards/studiokestra/fairholme/keyboard.json @@ -22,8 +22,7 @@ "vid": "0x7C10" }, "indicators": { - "caps_lock": "B10", - "on_state": 1 + "caps_lock": "B10" }, "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_ansi_tsangan_split_bs_rshift", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"], "layouts": { diff --git a/keyboards/studiokestra/line_friends_tkl/keyboard.json b/keyboards/studiokestra/line_friends_tkl/keyboard.json index d7e050315d7..40a7d0894ed 100644 --- a/keyboards/studiokestra/line_friends_tkl/keyboard.json +++ b/keyboards/studiokestra/line_friends_tkl/keyboard.json @@ -19,7 +19,6 @@ }, "indicators": { "caps_lock": "B6", - "on_state": 1, "scroll_lock": "D2" }, "matrix_pins": { diff --git a/keyboards/yandrstudio/transition80/keyboard.json b/keyboards/yandrstudio/transition80/keyboard.json index 7f9364a18fd..e0a9eb7588f 100644 --- a/keyboards/yandrstudio/transition80/keyboard.json +++ b/keyboards/yandrstudio/transition80/keyboard.json @@ -22,8 +22,7 @@ }, "indicators": { "caps_lock": "A15", - "scroll_lock": "B14", - "on_state": 1 + "scroll_lock": "B14" }, "layout_aliases": { "LAYOUT": "LAYOUT_all" diff --git a/keyboards/zeix/eden/keyboard.json b/keyboards/zeix/eden/keyboard.json index 76bfdaee2aa..182d8ceb62a 100644 --- a/keyboards/zeix/eden/keyboard.json +++ b/keyboards/zeix/eden/keyboard.json @@ -17,8 +17,7 @@ "nkro": true }, "indicators": { - "caps_lock": "GP29", - "on_state": 1 + "caps_lock": "GP29" }, "diode_direction": "COL2ROW", "matrix_pins": { From ce1801aeda3e2234a0f8a6109d2a4a798899691d Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 23 Apr 2025 03:14:11 +0100 Subject: [PATCH 364/365] Align `new-keyboard` template to current standards (#25191) --- data/templates/keyboard/keyboard.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/data/templates/keyboard/keyboard.json b/data/templates/keyboard/keyboard.json index 94085d7f5a2..87aa853cbbb 100644 --- a/data/templates/keyboard/keyboard.json +++ b/data/templates/keyboard/keyboard.json @@ -14,8 +14,6 @@ }, "features": { "bootmagic": true, - "command": false, - "console": false, "extrakey": true, "mousekey": true, "nkro": true From e5466df800044b267d881f94a1791759e654f095 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Apr 2025 12:25:47 +1000 Subject: [PATCH 365/365] Bump vite from 5.4.15 to 5.4.18 in /builddefs/docsgen (#25192) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- builddefs/docsgen/package.json | 2 +- builddefs/docsgen/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/builddefs/docsgen/package.json b/builddefs/docsgen/package.json index a798207d77d..c2e5412a063 100644 --- a/builddefs/docsgen/package.json +++ b/builddefs/docsgen/package.json @@ -1,7 +1,7 @@ { "license": "GPL-2.0-or-later", "devDependencies": { - "vite": "^5.4.15", + "vite": "^5.4.18", "vitepress": "^1.1.0", "vitepress-plugin-tabs": "^0.5.0", "vue": "^3.4.24" diff --git a/builddefs/docsgen/yarn.lock b/builddefs/docsgen/yarn.lock index eda99772c4c..a096b8d5c02 100644 --- a/builddefs/docsgen/yarn.lock +++ b/builddefs/docsgen/yarn.lock @@ -766,10 +766,10 @@ tabbable@^6.2.0: resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== -vite@^5.2.9, vite@^5.4.15: - version "5.4.15" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.15.tgz#2941547f10ebb4bf9b0fa0da863c06711eb7e5e5" - integrity sha512-6ANcZRivqL/4WtwPGTKNaosuNJr5tWiftOC7liM7G9+rMb8+oeJeyzymDu4rTN93seySBmbjSfsS3Vzr19KNtA== +vite@^5.2.9, vite@^5.4.18: + version "5.4.18" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.18.tgz#b5af357f9d5ebb2e0c085779b7a37a77f09168a4" + integrity sha512-1oDcnEp3lVyHCuQ2YFelM4Alm2o91xNoMncRm1U7S+JdYfYOvbiGZ3/CxGttrOu2M/KcGz7cRC2DoNUA6urmMA== dependencies: esbuild "^0.21.3" postcss "^8.4.43"