From 16cca527a6b46c2aa365428d7d1e214509068c4a Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 24 Apr 2024 19:33:52 +0100 Subject: [PATCH 01/55] Fix WAIT_FOR_USB handling (#23598) --- data/mappings/info_rules.hjson | 2 +- data/schemas/keyboard.jsonschema | 2 +- docs/config_options.md | 2 +- docs/ja/config_options.md | 2 +- docs/reference_info_json.md | 2 +- keyboards/converter/hp_46010a/keyboard.json | 3 ++- keyboards/converter/hp_46010a/rules.mk | 1 - keyboards/geekboards/macropad_v2/config.h | 2 -- keyboards/geekboards/macropad_v2/keyboard.json | 3 ++- keyboards/ristretto/keyboard.json | 3 ++- keyboards/ristretto/rules.mk | 1 - tmk_core/protocol.mk | 4 ++++ tmk_core/protocol/chibios/chibios.c | 7 ++++++- tmk_core/protocol/lufa/lufa.c | 7 ++++++- 14 files changed, 27 insertions(+), 14 deletions(-) delete mode 100644 keyboards/ristretto/rules.mk diff --git a/data/mappings/info_rules.hjson b/data/mappings/info_rules.hjson index 35e2e8dfc0d..5d08be2fc1a 100644 --- a/data/mappings/info_rules.hjson +++ b/data/mappings/info_rules.hjson @@ -44,7 +44,7 @@ "SPLIT_TRANSPORT": {"info_key": "split.transport.protocol", "to_c": false}, "STENO_ENABLE": {"info_key": "stenography.enabled", "value_type": "bool"}, "STENO_PROTOCOL": {"info_key": "stenography.protocol"}, - "WAIT_FOR_USB": {"info_key": "usb.wait_for", "value_type": "bool"}, + "USB_WAIT_FOR_ENUMERATION": {"info_key": "usb.wait_for_enumeration", "value_type": "bool"}, "WEAR_LEVELING_DRIVER": {"info_key": "eeprom.wear_leveling.driver"}, "WS2812_DRIVER": {"info_key": "ws2812.driver"}, diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index f3116fd2710..24f7fec9ab3 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -894,7 +894,7 @@ } }, "suspend_wakeup_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"}, - "wait_for": {"type": "boolean"} + "wait_for_enumeration": {"type": "boolean"} } }, "qmk": { diff --git a/docs/config_options.md b/docs/config_options.md index 045d9c07479..fca80e54fde 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -446,7 +446,7 @@ Use these to enable or disable building certain features. The more you have enab * Allows replacing the standard matrix scanning routine with a custom one. * `DEBOUNCE_TYPE` * Allows replacing the standard key debouncing routine with an alternative or custom one. -* `WAIT_FOR_USB` +* `USB_WAIT_FOR_ENUMERATION` * Forces the keyboard to wait for a USB connection to be established before it starts up * `NO_USB_STARTUP_CHECK` * Disables usb suspend check after keyboard startup. Usually the keyboard waits for the host to wake it up before any tasks are performed. This is useful for split keyboards as one half will not get a wakeup call but must send commands to the master. diff --git a/docs/ja/config_options.md b/docs/ja/config_options.md index a349081d6a2..6cc1b6bfcd7 100644 --- a/docs/ja/config_options.md +++ b/docs/ja/config_options.md @@ -378,7 +378,7 @@ QMK での全ての利用可能な設定にはデフォルトがあります。 * 標準マトリックス走査ルーチンを独自のものに置き換えることができます。 * `DEBOUNCE_TYPE` * 標準キーデバウンスルーチンを代替または独自のものに置き換えることができます。 -* `WAIT_FOR_USB` +* `USB_WAIT_FOR_ENUMERATION` * キーボードが起動する前に、USB 接続が確立されるのをキーボードに待機させます * `NO_USB_STARTUP_CHECK` * キーボードの起動後の usb サスペンドチェックを無効にします。通常、キーボードはタスクが実行される前にホストがウェイク アップするのを待ちます。分割キーボードは半分はウェイクアップコールを取得できませんが、マスタにコマンドを送信する必要があるため、役に立ちます。 diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index e6bc34e79ec..6f0b84c414b 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -833,7 +833,7 @@ Configures the [Stenography](feature_stenography.md) feature. * `suspend_wakeup_delay` * The amount of time to wait after sending a wakeup packet, in milliseconds. * Default: `0` (disabled) - * `wait_for` + * `wait_for_enumeration` * Force the keyboard to wait for USB enumeration before starting up. * Default: `false` diff --git a/keyboards/converter/hp_46010a/keyboard.json b/keyboards/converter/hp_46010a/keyboard.json index 0296bda5e98..45193069813 100644 --- a/keyboards/converter/hp_46010a/keyboard.json +++ b/keyboards/converter/hp_46010a/keyboard.json @@ -6,7 +6,8 @@ "usb": { "vid": "0xFEED", "pid": "0x6060", - "device_version": "0.0.1" + "device_version": "0.0.1", + "wait_for_enumeration": true }, "processor": "atmega32u4", "bootloader": "halfkay", diff --git a/keyboards/converter/hp_46010a/rules.mk b/keyboards/converter/hp_46010a/rules.mk index 3c6124d20ab..857395fb404 100644 --- a/keyboards/converter/hp_46010a/rules.mk +++ b/keyboards/converter/hp_46010a/rules.mk @@ -1,4 +1,3 @@ -WAIT_FOR_USB = yes CUSTOM_MATRIX = yes SRC = matrix.c diff --git a/keyboards/geekboards/macropad_v2/config.h b/keyboards/geekboards/macropad_v2/config.h index dca98f0c954..e452c886f69 100644 --- a/keyboards/geekboards/macropad_v2/config.h +++ b/keyboards/geekboards/macropad_v2/config.h @@ -21,5 +21,3 @@ #define WS2812_PWM_PAL_MODE 1 #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3 #define WS2812_PWM_DMA_CHANNEL 3 - -#define WAIT_FOR_USB diff --git a/keyboards/geekboards/macropad_v2/keyboard.json b/keyboards/geekboards/macropad_v2/keyboard.json index 035a83c157d..54d779570a6 100644 --- a/keyboards/geekboards/macropad_v2/keyboard.json +++ b/keyboards/geekboards/macropad_v2/keyboard.json @@ -6,7 +6,8 @@ "usb": { "vid": "0x0483", "pid": "0xA372", - "device_version": "0.0.2" + "device_version": "0.0.2", + "wait_for_enumeration": true }, "qmk": { "tap_keycode_delay": 10 diff --git a/keyboards/ristretto/keyboard.json b/keyboards/ristretto/keyboard.json index b28f3c1dc10..e8e812b7d2f 100644 --- a/keyboards/ristretto/keyboard.json +++ b/keyboards/ristretto/keyboard.json @@ -6,7 +6,8 @@ "usb": { "vid": "0x666B", "pid": "0x7273", - "device_version": "0.0.1" + "device_version": "0.0.1", + "wait_for_enumeration": true }, "features": { "bootmagic": false, diff --git a/keyboards/ristretto/rules.mk b/keyboards/ristretto/rules.mk deleted file mode 100644 index 908e5e972ec..00000000000 --- a/keyboards/ristretto/rules.mk +++ /dev/null @@ -1 +0,0 @@ -WAIT_FOR_USB = yes diff --git a/tmk_core/protocol.mk b/tmk_core/protocol.mk index fd5342d637e..796b4e87871 100644 --- a/tmk_core/protocol.mk +++ b/tmk_core/protocol.mk @@ -66,6 +66,10 @@ ifeq ($(strip $(NO_USB_STARTUP_CHECK)), yes) OPT_DEFS += -DNO_USB_STARTUP_CHECK endif +ifeq ($(strip $(USB_WAIT_FOR_ENUMERATION)), yes) + OPT_DEFS += -DUSB_WAIT_FOR_ENUMERATION +endif + ifeq ($(strip $(JOYSTICK_SHARED_EP)), yes) OPT_DEFS += -DJOYSTICK_SHARED_EP SHARED_EP_ENABLE = yes diff --git a/tmk_core/protocol/chibios/chibios.c b/tmk_core/protocol/chibios/chibios.c index a02097785f4..a249af8d38c 100644 --- a/tmk_core/protocol/chibios/chibios.c +++ b/tmk_core/protocol/chibios/chibios.c @@ -51,6 +51,11 @@ #define USB_GETSTATUS_REMOTE_WAKEUP_ENABLED (2U) +#ifdef WAIT_FOR_USB +// TODO: Remove backwards compatibility with old define +# define USB_WAIT_FOR_ENUMERATION +#endif + /* ------------------------- * TMK host driver defs * ------------------------- @@ -143,7 +148,7 @@ void protocol_pre_init(void) { /* Wait until USB is active */ while (true) { -#if defined(WAIT_FOR_USB) +#if defined(USB_WAIT_FOR_ENUMERATION) if (USB_DRIVER.state == USB_ACTIVE) { driver = &chibios_driver; break; diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c index d6f0c69b6b0..2142b04460a 100644 --- a/tmk_core/protocol/lufa/lufa.c +++ b/tmk_core/protocol/lufa/lufa.c @@ -67,6 +67,11 @@ # include "raw_hid.h" #endif +#ifdef WAIT_FOR_USB +// TODO: Remove backwards compatibility with old define +# define USB_WAIT_FOR_ENUMERATION +#endif + uint8_t keyboard_idle = 0; /* 0: Boot Protocol, 1: Report Protocol(default) */ uint8_t keyboard_protocol = 1; @@ -807,7 +812,7 @@ void protocol_pre_init(void) { /* wait for USB startup & debug output */ -#ifdef WAIT_FOR_USB +#ifdef USB_WAIT_FOR_ENUMERATION while (USB_DeviceState != DEVICE_STATE_Configured) { # if defined(INTERRUPT_CONTROL_ENDPOINT) ; From 861a9049240fcced58e15b2593964bcfca95b0d8 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 24 Apr 2024 22:53:58 +0100 Subject: [PATCH 02/55] Align NO_SUSPEND_POWER_DOWN keyboard config (#23606) --- keyboards/hs60/v1/rules.mk | 2 +- keyboards/hs60/v2/ansi/rules.mk | 4 ++-- keyboards/hs60/v2/hhkb/rules.mk | 4 ++-- keyboards/hs60/v2/iso/rules.mk | 4 ++-- keyboards/keebwerk/mega/ansi/rules.mk | 4 ++-- keyboards/novelkeys/nk65/rules.mk | 2 +- keyboards/novelkeys/nk87/rules.mk | 2 +- keyboards/spaceholdings/nebula12/rules.mk | 2 +- keyboards/spaceholdings/nebula68/rules.mk | 2 +- keyboards/wilba_tech/rama_works_kara/rules.mk | 2 +- keyboards/wilba_tech/rama_works_koyu/rules.mk | 2 +- keyboards/wilba_tech/rama_works_m10_c/rules.mk | 2 +- keyboards/wilba_tech/rama_works_m50_a/rules.mk | 2 +- keyboards/wilba_tech/rama_works_m60_a/rules.mk | 2 +- keyboards/wilba_tech/rama_works_m65_b/rules.mk | 2 +- keyboards/wilba_tech/rama_works_m65_bx/rules.mk | 2 +- keyboards/wilba_tech/rama_works_m6_a/rules.mk | 2 +- keyboards/wilba_tech/rama_works_m6_b/rules.mk | 2 +- keyboards/wilba_tech/wt60_b/rules.mk | 2 +- keyboards/wilba_tech/wt60_bx/rules.mk | 2 +- keyboards/wilba_tech/wt60_c/rules.mk | 2 +- keyboards/wilba_tech/zeal60/rules.mk | 2 +- keyboards/wilba_tech/zeal65/rules.mk | 2 +- keyboards/xelus/dawn60/rev1/rules.mk | 2 +- keyboards/xelus/dawn60/rev1_qmk/rules.mk | 2 +- 25 files changed, 29 insertions(+), 29 deletions(-) diff --git a/keyboards/hs60/v1/rules.mk b/keyboards/hs60/v1/rules.mk index 806a82e12af..5cde06a483e 100644 --- a/keyboards/hs60/v1/rules.mk +++ b/keyboards/hs60/v1/rules.mk @@ -1,4 +1,4 @@ # Do not put the microcontroller into power saving mode # when we get USB suspend event. We want it to keep updating # backlight effects. -OPT_DEFS += -DNO_SUSPEND_POWER_DOWN +NO_SUSPEND_POWER_DOWN = yes diff --git a/keyboards/hs60/v2/ansi/rules.mk b/keyboards/hs60/v2/ansi/rules.mk index 611bb888bac..3b7a32713c3 100644 --- a/keyboards/hs60/v2/ansi/rules.mk +++ b/keyboards/hs60/v2/ansi/rules.mk @@ -1,13 +1,13 @@ # Do not put the microcontroller into power saving mode # when we get USB suspend event. We want it to keep updating # backlight effects. -OPT_DEFS += -DNO_SUSPEND_POWER_DOWN +NO_SUSPEND_POWER_DOWN = yes CIE1931_CURVE = yes +I2C_DRIVER_REQUIRED = yes # project specific files SRC = keyboards/wilba_tech/wt_main.c \ keyboards/wilba_tech/wt_rgb_backlight.c \ drivers/led/issi/is31fl3733.c \ quantum/color.c -I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/hs60/v2/hhkb/rules.mk b/keyboards/hs60/v2/hhkb/rules.mk index 611bb888bac..3b7a32713c3 100644 --- a/keyboards/hs60/v2/hhkb/rules.mk +++ b/keyboards/hs60/v2/hhkb/rules.mk @@ -1,13 +1,13 @@ # Do not put the microcontroller into power saving mode # when we get USB suspend event. We want it to keep updating # backlight effects. -OPT_DEFS += -DNO_SUSPEND_POWER_DOWN +NO_SUSPEND_POWER_DOWN = yes CIE1931_CURVE = yes +I2C_DRIVER_REQUIRED = yes # project specific files SRC = keyboards/wilba_tech/wt_main.c \ keyboards/wilba_tech/wt_rgb_backlight.c \ drivers/led/issi/is31fl3733.c \ quantum/color.c -I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/hs60/v2/iso/rules.mk b/keyboards/hs60/v2/iso/rules.mk index 611bb888bac..3b7a32713c3 100644 --- a/keyboards/hs60/v2/iso/rules.mk +++ b/keyboards/hs60/v2/iso/rules.mk @@ -1,13 +1,13 @@ # Do not put the microcontroller into power saving mode # when we get USB suspend event. We want it to keep updating # backlight effects. -OPT_DEFS += -DNO_SUSPEND_POWER_DOWN +NO_SUSPEND_POWER_DOWN = yes CIE1931_CURVE = yes +I2C_DRIVER_REQUIRED = yes # project specific files SRC = keyboards/wilba_tech/wt_main.c \ keyboards/wilba_tech/wt_rgb_backlight.c \ drivers/led/issi/is31fl3733.c \ quantum/color.c -I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/keebwerk/mega/ansi/rules.mk b/keyboards/keebwerk/mega/ansi/rules.mk index ba2c38618a2..60dc97f0586 100755 --- a/keyboards/keebwerk/mega/ansi/rules.mk +++ b/keyboards/keebwerk/mega/ansi/rules.mk @@ -1,13 +1,13 @@ # Do not put the microcontroller into power saving mode # when we get USB suspend event. We want it to keep updating # backlight effects. -OPT_DEFS += -DNO_SUSPEND_POWER_DOWN +NO_SUSPEND_POWER_DOWN = yes CIE1931_CURVE = yes +I2C_DRIVER_REQUIRED = yes # project specific files SRC += keyboards/wilba_tech/wt_main.c \ keyboards/wilba_tech/wt_rgb_backlight.c \ drivers/led/issi/is31fl3733.c \ quantum/color.c -I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/novelkeys/nk65/rules.mk b/keyboards/novelkeys/nk65/rules.mk index 9fe973310c1..c0d789a5a6c 100755 --- a/keyboards/novelkeys/nk65/rules.mk +++ b/keyboards/novelkeys/nk65/rules.mk @@ -1,7 +1,7 @@ # Do not put the microcontroller into power saving mode # when we get USB suspend event. We want it to keep updating # backlight effects. -OPT_DEFS += -DNO_SUSPEND_POWER_DOWN +NO_SUSPEND_POWER_DOWN = yes CIE1931_CURVE = yes I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/novelkeys/nk87/rules.mk b/keyboards/novelkeys/nk87/rules.mk index ef378d1ec25..3b7a32713c3 100755 --- a/keyboards/novelkeys/nk87/rules.mk +++ b/keyboards/novelkeys/nk87/rules.mk @@ -1,7 +1,7 @@ # Do not put the microcontroller into power saving mode # when we get USB suspend event. We want it to keep updating # backlight effects. -OPT_DEFS += -DNO_SUSPEND_POWER_DOWN +NO_SUSPEND_POWER_DOWN = yes CIE1931_CURVE = yes I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/spaceholdings/nebula12/rules.mk b/keyboards/spaceholdings/nebula12/rules.mk index dd548eee148..edd7b800ef2 100755 --- a/keyboards/spaceholdings/nebula12/rules.mk +++ b/keyboards/spaceholdings/nebula12/rules.mk @@ -1,7 +1,7 @@ # Do not put the microcontroller into power saving mode # when we get USB suspend event. We want it to keep updating # backlight effects. -OPT_DEFS += -DNO_SUSPEND_POWER_DOWN +NO_SUSPEND_POWER_DOWN = yes CIE1931_CURVE = yes I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/spaceholdings/nebula68/rules.mk b/keyboards/spaceholdings/nebula68/rules.mk index c2507bf03df..60dc97f0586 100755 --- a/keyboards/spaceholdings/nebula68/rules.mk +++ b/keyboards/spaceholdings/nebula68/rules.mk @@ -1,7 +1,7 @@ # Do not put the microcontroller into power saving mode # when we get USB suspend event. We want it to keep updating # backlight effects. -OPT_DEFS += -DNO_SUSPEND_POWER_DOWN +NO_SUSPEND_POWER_DOWN = yes CIE1931_CURVE = yes I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/wilba_tech/rama_works_kara/rules.mk b/keyboards/wilba_tech/rama_works_kara/rules.mk index 34e6eaa45b8..cab0ca57e8c 100644 --- a/keyboards/wilba_tech/rama_works_kara/rules.mk +++ b/keyboards/wilba_tech/rama_works_kara/rules.mk @@ -1,7 +1,7 @@ # Do not put the microcontroller into power saving mode # when we get USB suspend event. We want it to keep updating # backlight effects. -OPT_DEFS += -DNO_SUSPEND_POWER_DOWN +NO_SUSPEND_POWER_DOWN = yes CIE1931_CURVE = yes I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/wilba_tech/rama_works_koyu/rules.mk b/keyboards/wilba_tech/rama_works_koyu/rules.mk index 34e6eaa45b8..cab0ca57e8c 100644 --- a/keyboards/wilba_tech/rama_works_koyu/rules.mk +++ b/keyboards/wilba_tech/rama_works_koyu/rules.mk @@ -1,7 +1,7 @@ # Do not put the microcontroller into power saving mode # when we get USB suspend event. We want it to keep updating # backlight effects. -OPT_DEFS += -DNO_SUSPEND_POWER_DOWN +NO_SUSPEND_POWER_DOWN = yes CIE1931_CURVE = yes I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/wilba_tech/rama_works_m10_c/rules.mk b/keyboards/wilba_tech/rama_works_m10_c/rules.mk index 34e6eaa45b8..cab0ca57e8c 100644 --- a/keyboards/wilba_tech/rama_works_m10_c/rules.mk +++ b/keyboards/wilba_tech/rama_works_m10_c/rules.mk @@ -1,7 +1,7 @@ # Do not put the microcontroller into power saving mode # when we get USB suspend event. We want it to keep updating # backlight effects. -OPT_DEFS += -DNO_SUSPEND_POWER_DOWN +NO_SUSPEND_POWER_DOWN = yes CIE1931_CURVE = yes I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/wilba_tech/rama_works_m50_a/rules.mk b/keyboards/wilba_tech/rama_works_m50_a/rules.mk index 34e6eaa45b8..cab0ca57e8c 100644 --- a/keyboards/wilba_tech/rama_works_m50_a/rules.mk +++ b/keyboards/wilba_tech/rama_works_m50_a/rules.mk @@ -1,7 +1,7 @@ # Do not put the microcontroller into power saving mode # when we get USB suspend event. We want it to keep updating # backlight effects. -OPT_DEFS += -DNO_SUSPEND_POWER_DOWN +NO_SUSPEND_POWER_DOWN = yes CIE1931_CURVE = yes I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/wilba_tech/rama_works_m60_a/rules.mk b/keyboards/wilba_tech/rama_works_m60_a/rules.mk index 34e6eaa45b8..cab0ca57e8c 100644 --- a/keyboards/wilba_tech/rama_works_m60_a/rules.mk +++ b/keyboards/wilba_tech/rama_works_m60_a/rules.mk @@ -1,7 +1,7 @@ # Do not put the microcontroller into power saving mode # when we get USB suspend event. We want it to keep updating # backlight effects. -OPT_DEFS += -DNO_SUSPEND_POWER_DOWN +NO_SUSPEND_POWER_DOWN = yes CIE1931_CURVE = yes I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/wilba_tech/rama_works_m65_b/rules.mk b/keyboards/wilba_tech/rama_works_m65_b/rules.mk index 34e6eaa45b8..cab0ca57e8c 100644 --- a/keyboards/wilba_tech/rama_works_m65_b/rules.mk +++ b/keyboards/wilba_tech/rama_works_m65_b/rules.mk @@ -1,7 +1,7 @@ # Do not put the microcontroller into power saving mode # when we get USB suspend event. We want it to keep updating # backlight effects. -OPT_DEFS += -DNO_SUSPEND_POWER_DOWN +NO_SUSPEND_POWER_DOWN = yes CIE1931_CURVE = yes I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/wilba_tech/rama_works_m65_bx/rules.mk b/keyboards/wilba_tech/rama_works_m65_bx/rules.mk index 34e6eaa45b8..cab0ca57e8c 100644 --- a/keyboards/wilba_tech/rama_works_m65_bx/rules.mk +++ b/keyboards/wilba_tech/rama_works_m65_bx/rules.mk @@ -1,7 +1,7 @@ # Do not put the microcontroller into power saving mode # when we get USB suspend event. We want it to keep updating # backlight effects. -OPT_DEFS += -DNO_SUSPEND_POWER_DOWN +NO_SUSPEND_POWER_DOWN = yes CIE1931_CURVE = yes I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/wilba_tech/rama_works_m6_a/rules.mk b/keyboards/wilba_tech/rama_works_m6_a/rules.mk index 806a82e12af..5cde06a483e 100644 --- a/keyboards/wilba_tech/rama_works_m6_a/rules.mk +++ b/keyboards/wilba_tech/rama_works_m6_a/rules.mk @@ -1,4 +1,4 @@ # Do not put the microcontroller into power saving mode # when we get USB suspend event. We want it to keep updating # backlight effects. -OPT_DEFS += -DNO_SUSPEND_POWER_DOWN +NO_SUSPEND_POWER_DOWN = yes diff --git a/keyboards/wilba_tech/rama_works_m6_b/rules.mk b/keyboards/wilba_tech/rama_works_m6_b/rules.mk index 4650d7a6ea2..67495c9835f 100644 --- a/keyboards/wilba_tech/rama_works_m6_b/rules.mk +++ b/keyboards/wilba_tech/rama_works_m6_b/rules.mk @@ -1,7 +1,7 @@ # Do not put the microcontroller into power saving mode # when we get USB suspend event. We want it to keep updating # backlight effects. -OPT_DEFS += -DNO_SUSPEND_POWER_DOWN +NO_SUSPEND_POWER_DOWN = yes CIE1931_CURVE = yes I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/wilba_tech/wt60_b/rules.mk b/keyboards/wilba_tech/wt60_b/rules.mk index 34e6eaa45b8..cab0ca57e8c 100644 --- a/keyboards/wilba_tech/wt60_b/rules.mk +++ b/keyboards/wilba_tech/wt60_b/rules.mk @@ -1,7 +1,7 @@ # Do not put the microcontroller into power saving mode # when we get USB suspend event. We want it to keep updating # backlight effects. -OPT_DEFS += -DNO_SUSPEND_POWER_DOWN +NO_SUSPEND_POWER_DOWN = yes CIE1931_CURVE = yes I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/wilba_tech/wt60_bx/rules.mk b/keyboards/wilba_tech/wt60_bx/rules.mk index 34e6eaa45b8..cab0ca57e8c 100644 --- a/keyboards/wilba_tech/wt60_bx/rules.mk +++ b/keyboards/wilba_tech/wt60_bx/rules.mk @@ -1,7 +1,7 @@ # Do not put the microcontroller into power saving mode # when we get USB suspend event. We want it to keep updating # backlight effects. -OPT_DEFS += -DNO_SUSPEND_POWER_DOWN +NO_SUSPEND_POWER_DOWN = yes CIE1931_CURVE = yes I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/wilba_tech/wt60_c/rules.mk b/keyboards/wilba_tech/wt60_c/rules.mk index 34e6eaa45b8..cab0ca57e8c 100644 --- a/keyboards/wilba_tech/wt60_c/rules.mk +++ b/keyboards/wilba_tech/wt60_c/rules.mk @@ -1,7 +1,7 @@ # Do not put the microcontroller into power saving mode # when we get USB suspend event. We want it to keep updating # backlight effects. -OPT_DEFS += -DNO_SUSPEND_POWER_DOWN +NO_SUSPEND_POWER_DOWN = yes CIE1931_CURVE = yes I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/wilba_tech/zeal60/rules.mk b/keyboards/wilba_tech/zeal60/rules.mk index 34e6eaa45b8..cab0ca57e8c 100644 --- a/keyboards/wilba_tech/zeal60/rules.mk +++ b/keyboards/wilba_tech/zeal60/rules.mk @@ -1,7 +1,7 @@ # Do not put the microcontroller into power saving mode # when we get USB suspend event. We want it to keep updating # backlight effects. -OPT_DEFS += -DNO_SUSPEND_POWER_DOWN +NO_SUSPEND_POWER_DOWN = yes CIE1931_CURVE = yes I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/wilba_tech/zeal65/rules.mk b/keyboards/wilba_tech/zeal65/rules.mk index 34e6eaa45b8..cab0ca57e8c 100644 --- a/keyboards/wilba_tech/zeal65/rules.mk +++ b/keyboards/wilba_tech/zeal65/rules.mk @@ -1,7 +1,7 @@ # Do not put the microcontroller into power saving mode # when we get USB suspend event. We want it to keep updating # backlight effects. -OPT_DEFS += -DNO_SUSPEND_POWER_DOWN +NO_SUSPEND_POWER_DOWN = yes CIE1931_CURVE = yes I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/xelus/dawn60/rev1/rules.mk b/keyboards/xelus/dawn60/rev1/rules.mk index 879710e8e7a..69c283a207d 100644 --- a/keyboards/xelus/dawn60/rev1/rules.mk +++ b/keyboards/xelus/dawn60/rev1/rules.mk @@ -1,7 +1,7 @@ # Do not put the microcontroller into power saving mode # when we get USB suspend event. We want it to keep updating # backlight effects. -OPT_DEFS += -DNO_SUSPEND_POWER_DOWN +NO_SUSPEND_POWER_DOWN = yes CIE1931_CURVE = yes I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/xelus/dawn60/rev1_qmk/rules.mk b/keyboards/xelus/dawn60/rev1_qmk/rules.mk index 5a17af39fcd..16816a5bdf0 100644 --- a/keyboards/xelus/dawn60/rev1_qmk/rules.mk +++ b/keyboards/xelus/dawn60/rev1_qmk/rules.mk @@ -1,7 +1,7 @@ # Do not put the microcontroller into power saving mode # when we get USB suspend event. We want it to keep updating # backlight effects. -OPT_DEFS += -DNO_SUSPEND_POWER_DOWN +NO_SUSPEND_POWER_DOWN = yes I2C_DRIVER_REQUIRED = yes WS2812_DRIVER_REQUIRED = yes From b6d5cfe5751f9dba6d06b9fce110ed8c6160576c Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 25 Apr 2024 00:59:13 +0100 Subject: [PATCH 03/55] Migrate build target markers to keyboard.json - L (#23607) --- .../latin47ble/{info.json => keyboard.json} | 0 .../latin64ble/{info.json => keyboard.json} | 0 .../latinpadble/{info.json => keyboard.json} | 0 .../dimple/ortho/{info.json => keyboard.json} | 6 ++++++ keyboards/lazydesigners/dimple/ortho/rules.mk | 1 + keyboards/lazydesigners/dimple/rules.mk | 16 ---------------- .../{rev2/info.json => rev1/keyboard.json} | 11 +++++++++++ .../lazydesigners/dimple/staggered/rev1/rules.mk | 3 +-- .../{rev1/info.json => rev2/keyboard.json} | 8 +++++--- .../lazydesigners/dimple/staggered/rev2/rules.mk | 3 +-- .../staggered/rev3/{info.json => keyboard.json} | 7 +++++++ .../lazydesigners/dimple/staggered/rev3/rules.mk | 3 +-- .../lets_split/rev2/{info.json => keyboard.json} | 0 .../sockets/{info.json => keyboard.json} | 0 .../fave65h/{info.json => keyboard.json} | 0 .../fave84h/{info.json => keyboard.json} | 0 .../fave87h/{info.json => keyboard.json} | 0 keyboards/loki65/{info.json => keyboard.json} | 0 .../lucid/alexa/{info.json => keyboard.json} | 0 .../alexa_solder/{info.json => keyboard.json} | 0 .../lucid/kbd8x_hs/{info.json => keyboard.json} | 0 .../phantom_hs/{info.json => keyboard.json} | 0 .../phantom_solder/{info.json => keyboard.json} | 0 .../lucid/scarlet/{info.json => keyboard.json} | 0 .../velvet_hotswap/{info.json => keyboard.json} | 0 .../velvet_solder/{info.json => keyboard.json} | 0 .../lyso1/lck75/{info.json => keyboard.json} | 0 .../lz/erghost/{info.json => keyboard.json} | 0 28 files changed, 33 insertions(+), 25 deletions(-) rename keyboards/latincompass/latin47ble/{info.json => keyboard.json} (100%) rename keyboards/latincompass/latin64ble/{info.json => keyboard.json} (100%) rename keyboards/latincompass/latinpadble/{info.json => keyboard.json} (100%) rename keyboards/lazydesigners/dimple/ortho/{info.json => keyboard.json} (98%) rename keyboards/lazydesigners/dimple/staggered/{rev2/info.json => rev1/keyboard.json} (93%) rename keyboards/lazydesigners/dimple/staggered/{rev1/info.json => rev2/keyboard.json} (96%) rename keyboards/lazydesigners/dimple/staggered/rev3/{info.json => keyboard.json} (98%) rename keyboards/lets_split/rev2/{info.json => keyboard.json} (100%) rename keyboards/lets_split/sockets/{info.json => keyboard.json} (100%) rename keyboards/linworks/fave65h/{info.json => keyboard.json} (100%) rename keyboards/linworks/fave84h/{info.json => keyboard.json} (100%) rename keyboards/linworks/fave87h/{info.json => keyboard.json} (100%) rename keyboards/loki65/{info.json => keyboard.json} (100%) rename keyboards/lucid/alexa/{info.json => keyboard.json} (100%) rename keyboards/lucid/alexa_solder/{info.json => keyboard.json} (100%) rename keyboards/lucid/kbd8x_hs/{info.json => keyboard.json} (100%) rename keyboards/lucid/phantom_hs/{info.json => keyboard.json} (100%) rename keyboards/lucid/phantom_solder/{info.json => keyboard.json} (100%) rename keyboards/lucid/scarlet/{info.json => keyboard.json} (100%) rename keyboards/lucid/velvet_hotswap/{info.json => keyboard.json} (100%) rename keyboards/lucid/velvet_solder/{info.json => keyboard.json} (100%) rename keyboards/lyso1/lck75/{info.json => keyboard.json} (100%) rename keyboards/lz/erghost/{info.json => keyboard.json} (100%) diff --git a/keyboards/latincompass/latin47ble/info.json b/keyboards/latincompass/latin47ble/keyboard.json similarity index 100% rename from keyboards/latincompass/latin47ble/info.json rename to keyboards/latincompass/latin47ble/keyboard.json diff --git a/keyboards/latincompass/latin64ble/info.json b/keyboards/latincompass/latin64ble/keyboard.json similarity index 100% rename from keyboards/latincompass/latin64ble/info.json rename to keyboards/latincompass/latin64ble/keyboard.json diff --git a/keyboards/latincompass/latinpadble/info.json b/keyboards/latincompass/latinpadble/keyboard.json similarity index 100% rename from keyboards/latincompass/latinpadble/info.json rename to keyboards/latincompass/latinpadble/keyboard.json diff --git a/keyboards/lazydesigners/dimple/ortho/info.json b/keyboards/lazydesigners/dimple/ortho/keyboard.json similarity index 98% rename from keyboards/lazydesigners/dimple/ortho/info.json rename to keyboards/lazydesigners/dimple/ortho/keyboard.json index 7328cfca79e..f5c0cf3ad0f 100644 --- a/keyboards/lazydesigners/dimple/ortho/info.json +++ b/keyboards/lazydesigners/dimple/ortho/keyboard.json @@ -8,6 +8,12 @@ "pid": "0x0040", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, "matrix_pins": { "cols": ["B0", "B1", "B2", "B3", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7"], "rows": ["D0", "D1", "D2", "D3"] diff --git a/keyboards/lazydesigners/dimple/ortho/rules.mk b/keyboards/lazydesigners/dimple/ortho/rules.mk index 902a3d4bbc7..dcedd7449b5 100644 --- a/keyboards/lazydesigners/dimple/ortho/rules.mk +++ b/keyboards/lazydesigners/dimple/ortho/rules.mk @@ -1,3 +1,4 @@ # Disable unsupported hardware BACKLIGHT_SUPPORTED = no RGBLIGHT_ENABLE = no +AUDIO_SUPPORTED = no diff --git a/keyboards/lazydesigners/dimple/rules.mk b/keyboards/lazydesigners/dimple/rules.mk index 5316d1bc7e1..cd05623d841 100644 --- a/keyboards/lazydesigners/dimple/rules.mk +++ b/keyboards/lazydesigners/dimple/rules.mk @@ -1,17 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - - -# Disable unsupported hardware -AUDIO_SUPPORTED = no DEFAULT_FOLDER = lazydesigners/dimple/staggered/rev1 diff --git a/keyboards/lazydesigners/dimple/staggered/rev2/info.json b/keyboards/lazydesigners/dimple/staggered/rev1/keyboard.json similarity index 93% rename from keyboards/lazydesigners/dimple/staggered/rev2/info.json rename to keyboards/lazydesigners/dimple/staggered/rev1/keyboard.json index 5109d49d3c8..bc5822214ab 100644 --- a/keyboards/lazydesigners/dimple/staggered/rev2/info.json +++ b/keyboards/lazydesigners/dimple/staggered/rev1/keyboard.json @@ -1,4 +1,15 @@ { + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "indicators": { + "caps_lock": "E6", + "on_state": 0 + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/lazydesigners/dimple/staggered/rev1/rules.mk b/keyboards/lazydesigners/dimple/staggered/rev1/rules.mk index 2fdb308d164..623023fdb63 100644 --- a/keyboards/lazydesigners/dimple/staggered/rev1/rules.mk +++ b/keyboards/lazydesigners/dimple/staggered/rev1/rules.mk @@ -1,4 +1,3 @@ -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow - # Disable unsupported hardware BACKLIGHT_SUPPORTED = no +AUDIO_SUPPORTED = no diff --git a/keyboards/lazydesigners/dimple/staggered/rev1/info.json b/keyboards/lazydesigners/dimple/staggered/rev2/keyboard.json similarity index 96% rename from keyboards/lazydesigners/dimple/staggered/rev1/info.json rename to keyboards/lazydesigners/dimple/staggered/rev2/keyboard.json index 65e559b252d..d8b051db650 100644 --- a/keyboards/lazydesigners/dimple/staggered/rev1/info.json +++ b/keyboards/lazydesigners/dimple/staggered/rev2/keyboard.json @@ -1,7 +1,9 @@ { - "indicators": { - "caps_lock": "E6", - "on_state": 0 + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true }, "layouts": { "LAYOUT": { diff --git a/keyboards/lazydesigners/dimple/staggered/rev2/rules.mk b/keyboards/lazydesigners/dimple/staggered/rev2/rules.mk index 1961392f2db..748a459f785 100644 --- a/keyboards/lazydesigners/dimple/staggered/rev2/rules.mk +++ b/keyboards/lazydesigners/dimple/staggered/rev2/rules.mk @@ -1,4 +1,3 @@ -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality - # Disable unsupported hardware RGBLIGHT_ENABLE = no +AUDIO_SUPPORTED = no diff --git a/keyboards/lazydesigners/dimple/staggered/rev3/info.json b/keyboards/lazydesigners/dimple/staggered/rev3/keyboard.json similarity index 98% rename from keyboards/lazydesigners/dimple/staggered/rev3/info.json rename to keyboards/lazydesigners/dimple/staggered/rev3/keyboard.json index 332a554610d..9262048c8ab 100644 --- a/keyboards/lazydesigners/dimple/staggered/rev3/info.json +++ b/keyboards/lazydesigners/dimple/staggered/rev3/keyboard.json @@ -1,4 +1,11 @@ { + "features": { + "backlight": true, + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, "backlight": { "pin": "B7" }, diff --git a/keyboards/lazydesigners/dimple/staggered/rev3/rules.mk b/keyboards/lazydesigners/dimple/staggered/rev3/rules.mk index b3b1cc58a19..748a459f785 100644 --- a/keyboards/lazydesigners/dimple/staggered/rev3/rules.mk +++ b/keyboards/lazydesigners/dimple/staggered/rev3/rules.mk @@ -1,4 +1,3 @@ -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality - # Disable unsupported hardware RGBLIGHT_ENABLE = no +AUDIO_SUPPORTED = no diff --git a/keyboards/lets_split/rev2/info.json b/keyboards/lets_split/rev2/keyboard.json similarity index 100% rename from keyboards/lets_split/rev2/info.json rename to keyboards/lets_split/rev2/keyboard.json diff --git a/keyboards/lets_split/sockets/info.json b/keyboards/lets_split/sockets/keyboard.json similarity index 100% rename from keyboards/lets_split/sockets/info.json rename to keyboards/lets_split/sockets/keyboard.json diff --git a/keyboards/linworks/fave65h/info.json b/keyboards/linworks/fave65h/keyboard.json similarity index 100% rename from keyboards/linworks/fave65h/info.json rename to keyboards/linworks/fave65h/keyboard.json diff --git a/keyboards/linworks/fave84h/info.json b/keyboards/linworks/fave84h/keyboard.json similarity index 100% rename from keyboards/linworks/fave84h/info.json rename to keyboards/linworks/fave84h/keyboard.json diff --git a/keyboards/linworks/fave87h/info.json b/keyboards/linworks/fave87h/keyboard.json similarity index 100% rename from keyboards/linworks/fave87h/info.json rename to keyboards/linworks/fave87h/keyboard.json diff --git a/keyboards/loki65/info.json b/keyboards/loki65/keyboard.json similarity index 100% rename from keyboards/loki65/info.json rename to keyboards/loki65/keyboard.json diff --git a/keyboards/lucid/alexa/info.json b/keyboards/lucid/alexa/keyboard.json similarity index 100% rename from keyboards/lucid/alexa/info.json rename to keyboards/lucid/alexa/keyboard.json diff --git a/keyboards/lucid/alexa_solder/info.json b/keyboards/lucid/alexa_solder/keyboard.json similarity index 100% rename from keyboards/lucid/alexa_solder/info.json rename to keyboards/lucid/alexa_solder/keyboard.json diff --git a/keyboards/lucid/kbd8x_hs/info.json b/keyboards/lucid/kbd8x_hs/keyboard.json similarity index 100% rename from keyboards/lucid/kbd8x_hs/info.json rename to keyboards/lucid/kbd8x_hs/keyboard.json diff --git a/keyboards/lucid/phantom_hs/info.json b/keyboards/lucid/phantom_hs/keyboard.json similarity index 100% rename from keyboards/lucid/phantom_hs/info.json rename to keyboards/lucid/phantom_hs/keyboard.json diff --git a/keyboards/lucid/phantom_solder/info.json b/keyboards/lucid/phantom_solder/keyboard.json similarity index 100% rename from keyboards/lucid/phantom_solder/info.json rename to keyboards/lucid/phantom_solder/keyboard.json diff --git a/keyboards/lucid/scarlet/info.json b/keyboards/lucid/scarlet/keyboard.json similarity index 100% rename from keyboards/lucid/scarlet/info.json rename to keyboards/lucid/scarlet/keyboard.json diff --git a/keyboards/lucid/velvet_hotswap/info.json b/keyboards/lucid/velvet_hotswap/keyboard.json similarity index 100% rename from keyboards/lucid/velvet_hotswap/info.json rename to keyboards/lucid/velvet_hotswap/keyboard.json diff --git a/keyboards/lucid/velvet_solder/info.json b/keyboards/lucid/velvet_solder/keyboard.json similarity index 100% rename from keyboards/lucid/velvet_solder/info.json rename to keyboards/lucid/velvet_solder/keyboard.json diff --git a/keyboards/lyso1/lck75/info.json b/keyboards/lyso1/lck75/keyboard.json similarity index 100% rename from keyboards/lyso1/lck75/info.json rename to keyboards/lyso1/lck75/keyboard.json diff --git a/keyboards/lz/erghost/info.json b/keyboards/lz/erghost/keyboard.json similarity index 100% rename from keyboards/lz/erghost/info.json rename to keyboards/lz/erghost/keyboard.json From 3d83b3e7c5dc18b77d82798fdad9d7552487cfe4 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 25 Apr 2024 08:42:48 +0100 Subject: [PATCH 04/55] Migrate build target markers to keyboard.json - Misc (#23609) --- .../tide65/{info.json => keyboard.json} | 0 keyboards/epomaker/tide65/rules.mk | 1 - .../keyten/lisa/{info.json => keyboard.json} | 0 keyboards/keyten/lisa/rules.mk | 0 keyboards/maple_computing/jnao/config.h | 24 ---------------- .../jnao/{info.json => keyboard.json} | 6 ++++ .../{lets_split_eh.c => eh/eh.c} | 0 .../eh/{info.json => keyboard.json} | 0 .../rev2/{info.json => keyboard.json} | 0 keyboards/marksard/treadstone48/rev2/rules.mk | 0 .../massdrop/alt/{info.json => keyboard.json} | 0 .../ctrl/{info.json => keyboard.json} | 0 .../matrix/abelx/{info.json => keyboard.json} | 2 ++ keyboards/matrix/abelx/rules.mk | 28 +------------------ .../m12og/rev1/{info.json => keyboard.json} | 2 ++ keyboards/matrix/m12og/rev1/rev1.c | 2 ++ keyboards/matrix/m12og/rev1/rules.mk | 8 +----- keyboards/matrix/m12og/rev2/rev2.c | 4 ++- .../m20add/{info.json => keyboard.json} | 2 ++ keyboards/matrix/m20add/rules.mk | 13 +-------- .../matrix/noah/{info.json => keyboard.json} | 2 ++ keyboards/matrix/noah/rules.mk | 13 +-------- .../pan/rev1/32a/{info.json => keyboard.json} | 0 .../sol/rev1/{info.json => keyboard.json} | 0 .../sol/rev2/{info.json => keyboard.json} | 0 .../zen/rev2/{info.json => keyboard.json} | 0 keyboards/splitkb/kyria/rev1/info.json | 9 ++++++ .../proton_c/{info.json => keyboard.json} | 0 keyboards/splitkb/kyria/rev1/rules.mk | 14 +--------- keyboards/splitkb/kyria/rev2/info.json | 9 ++++++ .../proton_c/{info.json => keyboard.json} | 0 keyboards/splitkb/kyria/rev2/rules.mk | 14 +--------- .../suika85ergo/{info.json => keyboard.json} | 0 keyboards/suikagiken/suika85ergo/rules.mk | 1 - keyboards/yushakobo/navpad/10/info.json | 8 ++++++ keyboards/yushakobo/navpad/10/rev0/rules.mk | 1 + keyboards/yushakobo/navpad/10/rev1/rules.mk | 1 + keyboards/yushakobo/navpad/10/rules.mk | 16 ----------- .../10_helix_r/{info.json => keyboard.json} | 8 ++++++ .../yushakobo/navpad/10_helix_r/rules.mk | 15 ---------- .../quick17/{info.json => keyboard.json} | 8 ++++++ keyboards/yushakobo/quick17/rules.mk | 15 ---------- .../zsa/voyager/{info.json => keyboard.json} | 0 43 files changed, 69 insertions(+), 157 deletions(-) rename keyboards/epomaker/tide65/{info.json => keyboard.json} (100%) delete mode 100644 keyboards/epomaker/tide65/rules.mk rename keyboards/keyten/lisa/{info.json => keyboard.json} (100%) delete mode 100644 keyboards/keyten/lisa/rules.mk delete mode 100644 keyboards/maple_computing/jnao/config.h rename keyboards/maple_computing/jnao/{info.json => keyboard.json} (98%) rename keyboards/maple_computing/lets_split_eh/{lets_split_eh.c => eh/eh.c} (100%) rename keyboards/maple_computing/lets_split_eh/eh/{info.json => keyboard.json} (100%) rename keyboards/marksard/treadstone48/rev2/{info.json => keyboard.json} (100%) delete mode 100644 keyboards/marksard/treadstone48/rev2/rules.mk rename keyboards/massdrop/alt/{info.json => keyboard.json} (100%) rename keyboards/massdrop/ctrl/{info.json => keyboard.json} (100%) rename keyboards/matrix/abelx/{info.json => keyboard.json} (99%) rename keyboards/matrix/m12og/rev1/{info.json => keyboard.json} (99%) rename keyboards/matrix/m20add/{info.json => keyboard.json} (99%) rename keyboards/matrix/noah/{info.json => keyboard.json} (99%) rename keyboards/rgbkb/pan/rev1/32a/{info.json => keyboard.json} (100%) rename keyboards/rgbkb/sol/rev1/{info.json => keyboard.json} (100%) rename keyboards/rgbkb/sol/rev2/{info.json => keyboard.json} (100%) rename keyboards/rgbkb/zen/rev2/{info.json => keyboard.json} (100%) rename keyboards/splitkb/kyria/rev1/proton_c/{info.json => keyboard.json} (100%) rename keyboards/splitkb/kyria/rev2/proton_c/{info.json => keyboard.json} (100%) rename keyboards/suikagiken/suika85ergo/{info.json => keyboard.json} (100%) delete mode 100644 keyboards/suikagiken/suika85ergo/rules.mk create mode 100644 keyboards/yushakobo/navpad/10/rev0/rules.mk create mode 100644 keyboards/yushakobo/navpad/10/rev1/rules.mk rename keyboards/yushakobo/navpad/10_helix_r/{info.json => keyboard.json} (96%) rename keyboards/yushakobo/quick17/{info.json => keyboard.json} (92%) rename keyboards/zsa/voyager/{info.json => keyboard.json} (100%) diff --git a/keyboards/epomaker/tide65/info.json b/keyboards/epomaker/tide65/keyboard.json similarity index 100% rename from keyboards/epomaker/tide65/info.json rename to keyboards/epomaker/tide65/keyboard.json diff --git a/keyboards/epomaker/tide65/rules.mk b/keyboards/epomaker/tide65/rules.mk deleted file mode 100644 index 6e7633bfe01..00000000000 --- a/keyboards/epomaker/tide65/rules.mk +++ /dev/null @@ -1 +0,0 @@ -# This file intentionally left blank diff --git a/keyboards/keyten/lisa/info.json b/keyboards/keyten/lisa/keyboard.json similarity index 100% rename from keyboards/keyten/lisa/info.json rename to keyboards/keyten/lisa/keyboard.json diff --git a/keyboards/keyten/lisa/rules.mk b/keyboards/keyten/lisa/rules.mk deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/keyboards/maple_computing/jnao/config.h b/keyboards/maple_computing/jnao/config.h deleted file mode 100644 index c2949ab3a7a..00000000000 --- a/keyboards/maple_computing/jnao/config.h +++ /dev/null @@ -1,24 +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 . -*/ - -#pragma once - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - diff --git a/keyboards/maple_computing/jnao/info.json b/keyboards/maple_computing/jnao/keyboard.json similarity index 98% rename from keyboards/maple_computing/jnao/info.json rename to keyboards/maple_computing/jnao/keyboard.json index 861baa95b94..97b51a7680f 100644 --- a/keyboards/maple_computing/jnao/info.json +++ b/keyboards/maple_computing/jnao/keyboard.json @@ -27,6 +27,12 @@ "command": true, "backlight": true }, + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, "community_layouts": ["ortho_5x12", "ortho_4x12"], "layouts": { "LAYOUT_ortho_5x12": { diff --git a/keyboards/maple_computing/lets_split_eh/lets_split_eh.c b/keyboards/maple_computing/lets_split_eh/eh/eh.c similarity index 100% rename from keyboards/maple_computing/lets_split_eh/lets_split_eh.c rename to keyboards/maple_computing/lets_split_eh/eh/eh.c diff --git a/keyboards/maple_computing/lets_split_eh/eh/info.json b/keyboards/maple_computing/lets_split_eh/eh/keyboard.json similarity index 100% rename from keyboards/maple_computing/lets_split_eh/eh/info.json rename to keyboards/maple_computing/lets_split_eh/eh/keyboard.json diff --git a/keyboards/marksard/treadstone48/rev2/info.json b/keyboards/marksard/treadstone48/rev2/keyboard.json similarity index 100% rename from keyboards/marksard/treadstone48/rev2/info.json rename to keyboards/marksard/treadstone48/rev2/keyboard.json diff --git a/keyboards/marksard/treadstone48/rev2/rules.mk b/keyboards/marksard/treadstone48/rev2/rules.mk deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/keyboards/massdrop/alt/info.json b/keyboards/massdrop/alt/keyboard.json similarity index 100% rename from keyboards/massdrop/alt/info.json rename to keyboards/massdrop/alt/keyboard.json diff --git a/keyboards/massdrop/ctrl/info.json b/keyboards/massdrop/ctrl/keyboard.json similarity index 100% rename from keyboards/massdrop/ctrl/info.json rename to keyboards/massdrop/ctrl/keyboard.json diff --git a/keyboards/matrix/abelx/info.json b/keyboards/matrix/abelx/keyboard.json similarity index 99% rename from keyboards/matrix/abelx/info.json rename to keyboards/matrix/abelx/keyboard.json index d62ddf53e22..7fcad281da2 100644 --- a/keyboards/matrix/abelx/info.json +++ b/keyboards/matrix/abelx/keyboard.json @@ -34,6 +34,8 @@ "extrakey": true, "rgblight": true }, + "processor": "STM32F411", + "bootloader": "custom", "layouts": { "LAYOUT_tkl_ansi": { "layout": [ diff --git a/keyboards/matrix/abelx/rules.mk b/keyboards/matrix/abelx/rules.mk index 00a63f4a279..ee9c23c0864 100644 --- a/keyboards/matrix/abelx/rules.mk +++ b/keyboards/matrix/abelx/rules.mk @@ -1,33 +1,7 @@ -# -# - the next two should match the directories in -# /os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) -MCU_FAMILY = STM32 -MCU_SERIES = STM32F4xx - -# Linker script to use -# - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ -# or /ld/ +# custom bootloader MCU_LDSCRIPT = abelx_boot - -# Startup code to use -# - it should exist in /os/common/startup/ARMCMx/compilers/GCC/mk/ -MCU_STARTUP = stm32f4xx - -# Board: it should exist either in /os/hal/boards/ -# or /boards BOARD = abelx_bd -# Cortex version -MCU = cortex-m4 - -# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 -ARMV = 7 - -USE_FPU = yes - -# Bootloader selection -BOOTLOADER = custom - CUSTOM_MATRIX = lite # project specific files SRC += matrix.c tca6424.c aw9523b.c diff --git a/keyboards/matrix/m12og/rev1/info.json b/keyboards/matrix/m12og/rev1/keyboard.json similarity index 99% rename from keyboards/matrix/m12og/rev1/info.json rename to keyboards/matrix/m12og/rev1/keyboard.json index d5ee589cc17..c956720a8d0 100644 --- a/keyboards/matrix/m12og/rev1/info.json +++ b/keyboards/matrix/m12og/rev1/keyboard.json @@ -40,6 +40,8 @@ "build": { "lto": true }, + "bootloader": "custom", + "processor": "STM32F103", "layout_aliases": { "LAYOUT_all": "LAYOUT_tkl_ansi_tsangan" }, diff --git a/keyboards/matrix/m12og/rev1/rev1.c b/keyboards/matrix/m12og/rev1/rev1.c index 702d3857c4b..f517703c605 100644 --- a/keyboards/matrix/m12og/rev1/rev1.c +++ b/keyboards/matrix/m12og/rev1/rev1.c @@ -29,4 +29,6 @@ void keyboard_post_init_kb(void) { rgblight_enable_noeeprom(); rgblight_sethsv_noeeprom(5, 255, 255); rgblight_mode_noeeprom(37); + + keyboard_post_init_user(); } diff --git a/keyboards/matrix/m12og/rev1/rules.mk b/keyboards/matrix/m12og/rev1/rules.mk index bc406d1cba4..077011cdc16 100644 --- a/keyboards/matrix/m12og/rev1/rules.mk +++ b/keyboards/matrix/m12og/rev1/rules.mk @@ -1,12 +1,6 @@ -# MCU name -MCU = STM32F103 - +# custom bootloader MCU_LDSCRIPT = m12og_v1 - BOARD = m12og_v1 -# Bootloader selection -BOOTLOADER = custom - CUSTOM_MATRIX = lite SRC += matrix.c diff --git a/keyboards/matrix/m12og/rev2/rev2.c b/keyboards/matrix/m12og/rev2/rev2.c index 1a35dff7a90..fb424b164fb 100644 --- a/keyboards/matrix/m12og/rev2/rev2.c +++ b/keyboards/matrix/m12og/rev2/rev2.c @@ -4,10 +4,12 @@ #include "quantum.h" -void matrix_init_user(void) { +void matrix_init_kb(void) { setPinOutput(C6); setPinOutput(B2); setPinOutput(B1); + + matrix_init_user(); } bool led_update_kb(led_t led_state) { diff --git a/keyboards/matrix/m20add/info.json b/keyboards/matrix/m20add/keyboard.json similarity index 99% rename from keyboards/matrix/m20add/info.json rename to keyboards/matrix/m20add/keyboard.json index 5a999bb4847..fc58d242e60 100644 --- a/keyboards/matrix/m20add/info.json +++ b/keyboards/matrix/m20add/keyboard.json @@ -34,6 +34,8 @@ "extrakey": true, "rgblight": true }, + "processor": "STM32F411", + "bootloader": "custom", "layouts": { "LAYOUT_tkl_ansi_tsangan": { "layout": [ diff --git a/keyboards/matrix/m20add/rules.mk b/keyboards/matrix/m20add/rules.mk index 150bd24e30e..980cf9518bd 100644 --- a/keyboards/matrix/m20add/rules.mk +++ b/keyboards/matrix/m20add/rules.mk @@ -1,18 +1,7 @@ -# MCU name -MCU = STM32F411 - -# Linker script to use -# - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ -# or /ld/ +# custom bootloader MCU_LDSCRIPT = m20add_boot - -# Board: it should exist either in /os/hal/boards/ -# or /boards BOARD = ST_NUCLEO64_F411RE -# Bootloader selection -BOOTLOADER = custom - CUSTOM_MATRIX = lite # project specific files SRC += matrix.c tca6424.c rgb_ring.c drivers/led/issi/is31fl3731.c diff --git a/keyboards/matrix/noah/info.json b/keyboards/matrix/noah/keyboard.json similarity index 99% rename from keyboards/matrix/noah/info.json rename to keyboards/matrix/noah/keyboard.json index 959c3c8c9c9..eb13e16aa2b 100644 --- a/keyboards/matrix/noah/info.json +++ b/keyboards/matrix/noah/keyboard.json @@ -83,6 +83,8 @@ "rgblight": true, "rgb_matrix": true }, + "processor": "STM32F411", + "bootloader": "custom", "community_layouts": ["65_iso_blocker"], "layouts": { "LAYOUT_default": { diff --git a/keyboards/matrix/noah/rules.mk b/keyboards/matrix/noah/rules.mk index d1c19f36ffe..407c120a524 100644 --- a/keyboards/matrix/noah/rules.mk +++ b/keyboards/matrix/noah/rules.mk @@ -1,18 +1,7 @@ -# MCU name -MCU = STM32F411 - -# Linker script to use -# - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ -# or /ld/ +# custom bootloader MCU_LDSCRIPT = noah_boot - -# Board: it should exist either in /os/hal/boards/ -# or /boards BOARD = ST_NUCLEO64_F411RE -# Bootloader selection -BOOTLOADER = custom - WS2812_DRIVER_REQUIRED = yes CUSTOM_MATRIX = yes diff --git a/keyboards/rgbkb/pan/rev1/32a/info.json b/keyboards/rgbkb/pan/rev1/32a/keyboard.json similarity index 100% rename from keyboards/rgbkb/pan/rev1/32a/info.json rename to keyboards/rgbkb/pan/rev1/32a/keyboard.json diff --git a/keyboards/rgbkb/sol/rev1/info.json b/keyboards/rgbkb/sol/rev1/keyboard.json similarity index 100% rename from keyboards/rgbkb/sol/rev1/info.json rename to keyboards/rgbkb/sol/rev1/keyboard.json diff --git a/keyboards/rgbkb/sol/rev2/info.json b/keyboards/rgbkb/sol/rev2/keyboard.json similarity index 100% rename from keyboards/rgbkb/sol/rev2/info.json rename to keyboards/rgbkb/sol/rev2/keyboard.json diff --git a/keyboards/rgbkb/zen/rev2/info.json b/keyboards/rgbkb/zen/rev2/keyboard.json similarity index 100% rename from keyboards/rgbkb/zen/rev2/info.json rename to keyboards/rgbkb/zen/rev2/keyboard.json diff --git a/keyboards/splitkb/kyria/rev1/info.json b/keyboards/splitkb/kyria/rev1/info.json index 38a2e6bf3fa..3d84b37b311 100644 --- a/keyboards/splitkb/kyria/rev1/info.json +++ b/keyboards/splitkb/kyria/rev1/info.json @@ -4,6 +4,15 @@ "pid": "0x9D9D", "device_version": "0.0.1" }, + "features": { + "bootmagic": false, + "encoder": true, + "extrakey": true, + "mousekey": false, + "nkro": false, + "oled": true, + "rgblight": true + }, "rgblight": { "led_count": 20, "split_count": [10, 10] diff --git a/keyboards/splitkb/kyria/rev1/proton_c/info.json b/keyboards/splitkb/kyria/rev1/proton_c/keyboard.json similarity index 100% rename from keyboards/splitkb/kyria/rev1/proton_c/info.json rename to keyboards/splitkb/kyria/rev1/proton_c/keyboard.json diff --git a/keyboards/splitkb/kyria/rev1/rules.mk b/keyboards/splitkb/kyria/rev1/rules.mk index c4c82d05aa4..3a8bfbe0896 100644 --- a/keyboards/splitkb/kyria/rev1/rules.mk +++ b/keyboards/splitkb/kyria/rev1/rules.mk @@ -1,13 +1 @@ -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -AUDIO_ENABLE = no # Audio output - -OLED_ENABLE = yes # Enables the use of OLED displays -ENCODER_ENABLE = yes # Enables the use of one or more encoders -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -RGB_MATRIX_ENABLE = no # Enable keyboard RGB matrix (do not use together with RGBLIGHT_ENABLE) +DEFAULT_FOLDER = splitkb/kyria/rev1/base diff --git a/keyboards/splitkb/kyria/rev2/info.json b/keyboards/splitkb/kyria/rev2/info.json index 0290153f4ad..80f801e3d15 100644 --- a/keyboards/splitkb/kyria/rev2/info.json +++ b/keyboards/splitkb/kyria/rev2/info.json @@ -4,6 +4,15 @@ "pid": "0x9D9D", "device_version": "0.0.2" }, + "features": { + "bootmagic": false, + "encoder": true, + "extrakey": true, + "mousekey": false, + "nkro": false, + "oled": true, + "rgblight": true + }, "rgblight": { "led_count": 20, "split_count": [10, 10] diff --git a/keyboards/splitkb/kyria/rev2/proton_c/info.json b/keyboards/splitkb/kyria/rev2/proton_c/keyboard.json similarity index 100% rename from keyboards/splitkb/kyria/rev2/proton_c/info.json rename to keyboards/splitkb/kyria/rev2/proton_c/keyboard.json diff --git a/keyboards/splitkb/kyria/rev2/rules.mk b/keyboards/splitkb/kyria/rev2/rules.mk index c4c82d05aa4..fb808070bf8 100644 --- a/keyboards/splitkb/kyria/rev2/rules.mk +++ b/keyboards/splitkb/kyria/rev2/rules.mk @@ -1,13 +1 @@ -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -AUDIO_ENABLE = no # Audio output - -OLED_ENABLE = yes # Enables the use of OLED displays -ENCODER_ENABLE = yes # Enables the use of one or more encoders -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -RGB_MATRIX_ENABLE = no # Enable keyboard RGB matrix (do not use together with RGBLIGHT_ENABLE) +DEFAULT_FOLDER = splitkb/kyria/rev2/base diff --git a/keyboards/suikagiken/suika85ergo/info.json b/keyboards/suikagiken/suika85ergo/keyboard.json similarity index 100% rename from keyboards/suikagiken/suika85ergo/info.json rename to keyboards/suikagiken/suika85ergo/keyboard.json diff --git a/keyboards/suikagiken/suika85ergo/rules.mk b/keyboards/suikagiken/suika85ergo/rules.mk deleted file mode 100644 index 6e7633bfe01..00000000000 --- a/keyboards/suikagiken/suika85ergo/rules.mk +++ /dev/null @@ -1 +0,0 @@ -# This file intentionally left blank diff --git a/keyboards/yushakobo/navpad/10/info.json b/keyboards/yushakobo/navpad/10/info.json index ef0cdf5cbed..e28a2e2cb17 100644 --- a/keyboards/yushakobo/navpad/10/info.json +++ b/keyboards/yushakobo/navpad/10/info.json @@ -7,6 +7,14 @@ "vid": "0x3265", "pid": "0x0008" }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": false, + "rgblight": true + }, "encoder": { "rotary": [ {"pin_a": "B5", "pin_b": "B6"} diff --git a/keyboards/yushakobo/navpad/10/rev0/rules.mk b/keyboards/yushakobo/navpad/10/rev0/rules.mk new file mode 100644 index 00000000000..e8ffcca7a6d --- /dev/null +++ b/keyboards/yushakobo/navpad/10/rev0/rules.mk @@ -0,0 +1 @@ +SRC += navpad_prefs.c diff --git a/keyboards/yushakobo/navpad/10/rev1/rules.mk b/keyboards/yushakobo/navpad/10/rev1/rules.mk new file mode 100644 index 00000000000..e8ffcca7a6d --- /dev/null +++ b/keyboards/yushakobo/navpad/10/rev1/rules.mk @@ -0,0 +1 @@ +SRC += navpad_prefs.c diff --git a/keyboards/yushakobo/navpad/10/rules.mk b/keyboards/yushakobo/navpad/10/rules.mk index 61cbbf351dc..32daeef814d 100644 --- a/keyboards/yushakobo/navpad/10/rules.mk +++ b/keyboards/yushakobo/navpad/10/rules.mk @@ -1,17 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - -ENCODER_ENABLE = yes - -SRC += navpad_prefs.c DEFAULT_FOLDER = yushakobo/navpad/10/rev1 diff --git a/keyboards/yushakobo/navpad/10_helix_r/info.json b/keyboards/yushakobo/navpad/10_helix_r/keyboard.json similarity index 96% rename from keyboards/yushakobo/navpad/10_helix_r/info.json rename to keyboards/yushakobo/navpad/10_helix_r/keyboard.json index 8084f1f7bd8..81854128da5 100644 --- a/keyboards/yushakobo/navpad/10_helix_r/info.json +++ b/keyboards/yushakobo/navpad/10_helix_r/keyboard.json @@ -8,6 +8,14 @@ "pid": "0x0008", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": false, + "rgblight": true + }, "matrix_pins": { "cols": ["F5", "F6", "B2", "B3", "B1", "F7", null], "rows": ["D4", "C6", "D7", "E6", "B4", "F4"] diff --git a/keyboards/yushakobo/navpad/10_helix_r/rules.mk b/keyboards/yushakobo/navpad/10_helix_r/rules.mk index f30c00650ce..e8ffcca7a6d 100644 --- a/keyboards/yushakobo/navpad/10_helix_r/rules.mk +++ b/keyboards/yushakobo/navpad/10_helix_r/rules.mk @@ -1,16 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - -ENCODER_ENABLE = yes - SRC += navpad_prefs.c diff --git a/keyboards/yushakobo/quick17/info.json b/keyboards/yushakobo/quick17/keyboard.json similarity index 92% rename from keyboards/yushakobo/quick17/info.json rename to keyboards/yushakobo/quick17/keyboard.json index 51c41a6e82a..aa0d39756d9 100644 --- a/keyboards/yushakobo/quick17/info.json +++ b/keyboards/yushakobo/quick17/keyboard.json @@ -8,6 +8,14 @@ "pid": "0x0006", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": false, + "rgb_matrix": true + }, "rgb_matrix": { "driver": "ws2812", "max_brightness": 150, diff --git a/keyboards/yushakobo/quick17/rules.mk b/keyboards/yushakobo/quick17/rules.mk index 70ab5e27442..083da9448c6 100644 --- a/keyboards/yushakobo/quick17/rules.mk +++ b/keyboards/yushakobo/quick17/rules.mk @@ -1,18 +1,3 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -ENCODER_ENABLE = yes - -RGB_MATRIX_ENABLE = yes RGB_MATRIX_CUSTOM_KB = yes SRC += quick17_prefs.c diff --git a/keyboards/zsa/voyager/info.json b/keyboards/zsa/voyager/keyboard.json similarity index 100% rename from keyboards/zsa/voyager/info.json rename to keyboards/zsa/voyager/keyboard.json From e9b8929357abd35f62aae211d3edec434299b021 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 25 Apr 2024 18:37:44 +0100 Subject: [PATCH 05/55] Migrate build target markers to keyboard.json - Misc (#23612) --- keyboards/converter/usb_usb/info.json | 7 +++++++ keyboards/converter/usb_usb/matrix.c | 1 - keyboards/converter/usb_usb/rules.mk | 13 ------------- keyboards/hhkb/ansi/32u2/keyboard.json | 8 +++++++- keyboards/hhkb/ansi/32u2/rules.mk | 2 -- keyboards/hhkb/ansi/32u4/keyboard.json | 10 +++++++++- keyboards/hhkb/ansi/rules.mk | 19 +------------------ .../model_m/mschwingen/led_ffc/keyboard.json | 2 ++ .../ibm/model_m/mschwingen/led_ffc/rules.mk | 1 - .../mschwingen/led_wired/keyboard.json | 2 ++ .../ibm/model_m/mschwingen/led_wired/rules.mk | 1 - .../mschwingen/led_ws2812/keyboard.json | 2 ++ .../ibm/model_m/mschwingen/post_rules.mk | 2 ++ keyboards/ibm/model_m/mschwingen/rules.mk | 2 -- .../salicylic_acid3/7skb/rev1/keyboard.json | 8 ++++++++ keyboards/salicylic_acid3/7skb/rules.mk | 13 ------------- .../getta25/rev1/keyboard.json | 8 ++++++++ keyboards/salicylic_acid3/getta25/rules.mk | 14 -------------- .../jisplit89/rev1/keyboard.json | 8 ++++++++ keyboards/salicylic_acid3/jisplit89/rules.mk | 13 ------------- .../naked48/rev1/keyboard.json | 7 +++++++ keyboards/salicylic_acid3/naked48/rules.mk | 14 -------------- .../naked60/rev1/keyboard.json | 6 ++++++ keyboards/salicylic_acid3/naked60/rules.mk | 13 ------------- .../naked64/rev1/keyboard.json | 8 ++++++++ keyboards/salicylic_acid3/naked64/rules.mk | 15 --------------- .../setta21/rev1/keyboard.json | 7 +++++++ keyboards/salicylic_acid3/setta21/rules.mk | 16 ---------------- keyboards/stront/keyboard.json | 8 +++++--- keyboards/stront/rules.mk | 2 -- keyboards/teleport/native/info.json | 3 ++- keyboards/teleport/native/rules.mk | 1 - keyboards/tkw/grandiceps/rev2/config.h | 1 - keyboards/tkw/grandiceps/rev2/keyboard.json | 8 ++++++++ keyboards/tkw/grandiceps/rev2/rules.mk | 1 - keyboards/westm/westm68/info.json | 9 +++++++++ keyboards/westm/westm68/rules.mk | 13 ------------- keyboards/westm/westm9/info.json | 8 ++++++++ keyboards/westm/westm9/rules.mk | 15 --------------- .../woodkeys/meira/featherble/keyboard.json | 3 +++ keyboards/woodkeys/meira/featherble/rules.mk | 2 -- keyboards/work_louder/loop/info.json | 12 ++++++++++++ keyboards/work_louder/loop/rules.mk | 18 ------------------ keyboards/yanghu/unicorne/info.json | 10 ++++++++++ keyboards/yanghu/unicorne/rules.mk | 17 ----------------- 45 files changed, 141 insertions(+), 212 deletions(-) delete mode 100644 keyboards/converter/usb_usb/matrix.c delete mode 100644 keyboards/hhkb/ansi/32u2/rules.mk create mode 100644 keyboards/ibm/model_m/mschwingen/led_ffc/keyboard.json delete mode 100644 keyboards/ibm/model_m/mschwingen/led_ffc/rules.mk create mode 100644 keyboards/ibm/model_m/mschwingen/led_wired/keyboard.json delete mode 100644 keyboards/ibm/model_m/mschwingen/led_wired/rules.mk create mode 100644 keyboards/ibm/model_m/mschwingen/led_ws2812/keyboard.json diff --git a/keyboards/converter/usb_usb/info.json b/keyboards/converter/usb_usb/info.json index 63c02322a2e..747fd497828 100644 --- a/keyboards/converter/usb_usb/info.json +++ b/keyboards/converter/usb_usb/info.json @@ -8,6 +8,13 @@ "pid": "0x005B", "device_version": "0.0.1" }, + "features": { + "bootmagic": false, + "extrakey": true, + "mousekey": false, + "nkro": false, + "usb_hid": true + }, "processor": "atmega32u4", "community_layouts": ["fullsize_ansi", "fullsize_iso", "fullsize_jis"], "layouts": { diff --git a/keyboards/converter/usb_usb/matrix.c b/keyboards/converter/usb_usb/matrix.c deleted file mode 100644 index b077febd74d..00000000000 --- a/keyboards/converter/usb_usb/matrix.c +++ /dev/null @@ -1 +0,0 @@ -// Intentionally left empty. This file must exist for this board to build. diff --git a/keyboards/converter/usb_usb/rules.mk b/keyboards/converter/usb_usb/rules.mk index 97aebc9349b..1e278514f68 100644 --- a/keyboards/converter/usb_usb/rules.mk +++ b/keyboards/converter/usb_usb/rules.mk @@ -1,16 +1,3 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -USB_HID_ENABLE = yes CUSTOM_MATRIX = yes SRC += custom_matrix.cpp diff --git a/keyboards/hhkb/ansi/32u2/keyboard.json b/keyboards/hhkb/ansi/32u2/keyboard.json index dd190d18ee0..d210808d984 100644 --- a/keyboards/hhkb/ansi/32u2/keyboard.json +++ b/keyboards/hhkb/ansi/32u2/keyboard.json @@ -1,4 +1,10 @@ { "processor": "atmega32u2", - "bootloader": "atmel-dfu" + "bootloader": "atmel-dfu", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": false + } } diff --git a/keyboards/hhkb/ansi/32u2/rules.mk b/keyboards/hhkb/ansi/32u2/rules.mk deleted file mode 100644 index 95a1d66061d..00000000000 --- a/keyboards/hhkb/ansi/32u2/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration diff --git a/keyboards/hhkb/ansi/32u4/keyboard.json b/keyboards/hhkb/ansi/32u4/keyboard.json index 042c41f34d6..1e47ddd20fe 100644 --- a/keyboards/hhkb/ansi/32u4/keyboard.json +++ b/keyboards/hhkb/ansi/32u4/keyboard.json @@ -1,4 +1,12 @@ { "processor": "atmega32u4", - "bootloader": "atmel-dfu" + "bootloader": "atmel-dfu", + "features": { + "bootmagic": true, + "command": true, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": false + } } diff --git a/keyboards/hhkb/ansi/rules.mk b/keyboards/hhkb/ansi/rules.mk index f5a147ccb9a..841565b8465 100644 --- a/keyboards/hhkb/ansi/rules.mk +++ b/keyboards/hhkb/ansi/rules.mk @@ -1,23 +1,6 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -CUSTOM_MATRIX = yes # Custom matrix file for the HHKB -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +CUSTOM_MATRIX = yes # project specific files SRC = matrix.c -# debug-on: EXTRAFLAGS += -DDEBUG -DDEBUG_ACTION -# debug-on: all - -# debug-off: EXTRAFLAGS += -DNO_DEBUG -DNO_PRINT -# debug-off: OPT_DEFS := $(filter-out -DCONSOLE_ENABLE,$(OPT_DEFS)) -# debug-off: all - DEFAULT_FOLDER = hhkb/ansi/32u4 diff --git a/keyboards/ibm/model_m/mschwingen/led_ffc/keyboard.json b/keyboards/ibm/model_m/mschwingen/led_ffc/keyboard.json new file mode 100644 index 00000000000..2c63c085104 --- /dev/null +++ b/keyboards/ibm/model_m/mschwingen/led_ffc/keyboard.json @@ -0,0 +1,2 @@ +{ +} diff --git a/keyboards/ibm/model_m/mschwingen/led_ffc/rules.mk b/keyboards/ibm/model_m/mschwingen/led_ffc/rules.mk deleted file mode 100644 index 6e7633bfe01..00000000000 --- a/keyboards/ibm/model_m/mschwingen/led_ffc/rules.mk +++ /dev/null @@ -1 +0,0 @@ -# This file intentionally left blank diff --git a/keyboards/ibm/model_m/mschwingen/led_wired/keyboard.json b/keyboards/ibm/model_m/mschwingen/led_wired/keyboard.json new file mode 100644 index 00000000000..2c63c085104 --- /dev/null +++ b/keyboards/ibm/model_m/mschwingen/led_wired/keyboard.json @@ -0,0 +1,2 @@ +{ +} diff --git a/keyboards/ibm/model_m/mschwingen/led_wired/rules.mk b/keyboards/ibm/model_m/mschwingen/led_wired/rules.mk deleted file mode 100644 index 6e7633bfe01..00000000000 --- a/keyboards/ibm/model_m/mschwingen/led_wired/rules.mk +++ /dev/null @@ -1 +0,0 @@ -# This file intentionally left blank diff --git a/keyboards/ibm/model_m/mschwingen/led_ws2812/keyboard.json b/keyboards/ibm/model_m/mschwingen/led_ws2812/keyboard.json new file mode 100644 index 00000000000..2c63c085104 --- /dev/null +++ b/keyboards/ibm/model_m/mschwingen/led_ws2812/keyboard.json @@ -0,0 +1,2 @@ +{ +} diff --git a/keyboards/ibm/model_m/mschwingen/post_rules.mk b/keyboards/ibm/model_m/mschwingen/post_rules.mk index a1c2040f4c5..025068e057d 100644 --- a/keyboards/ibm/model_m/mschwingen/post_rules.mk +++ b/keyboards/ibm/model_m/mschwingen/post_rules.mk @@ -1,3 +1,5 @@ +UART_DEBUG ?= no + ifeq ($(strip $(UART_DEBUG)), yes) OPT_DEFS += -DUART_DEBUG endif diff --git a/keyboards/ibm/model_m/mschwingen/rules.mk b/keyboards/ibm/model_m/mschwingen/rules.mk index c86801e4090..65761bcf9a2 100644 --- a/keyboards/ibm/model_m/mschwingen/rules.mk +++ b/keyboards/ibm/model_m/mschwingen/rules.mk @@ -1,7 +1,5 @@ CUSTOM_MATRIX = lite -UART_DEBUG = no - SRC += matrix.c UART_DRIVER_REQUIRED = yes SPI_DRIVER_REQUIRED = yes diff --git a/keyboards/salicylic_acid3/7skb/rev1/keyboard.json b/keyboards/salicylic_acid3/7skb/rev1/keyboard.json index 3ea79da589d..5b5e63b7ca2 100644 --- a/keyboards/salicylic_acid3/7skb/rev1/keyboard.json +++ b/keyboards/salicylic_acid3/7skb/rev1/keyboard.json @@ -8,6 +8,14 @@ "pid": "0xEB5F", "device_version": "0.0.7" }, + "features": { + "bootmagic": false, + "command": true, + "extrakey": true, + "mousekey": true, + "nkro": false, + "rgblight": true + }, "matrix_pins": { "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B5"], "rows": ["D4", "C6", "D7", "E6", "B4"] diff --git a/keyboards/salicylic_acid3/7skb/rules.mk b/keyboards/salicylic_acid3/7skb/rules.mk index 09cad7556c4..15364c29a51 100644 --- a/keyboards/salicylic_acid3/7skb/rules.mk +++ b/keyboards/salicylic_acid3/7skb/rules.mk @@ -1,14 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -AUDIO_ENABLE = no # Audio output -RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. - DEFAULT_FOLDER = salicylic_acid3/7skb/rev1 diff --git a/keyboards/salicylic_acid3/getta25/rev1/keyboard.json b/keyboards/salicylic_acid3/getta25/rev1/keyboard.json index e2148f9302a..3399f9e081b 100644 --- a/keyboards/salicylic_acid3/getta25/rev1/keyboard.json +++ b/keyboards/salicylic_acid3/getta25/rev1/keyboard.json @@ -8,6 +8,14 @@ "pid": "0x3060", "device_version": "0.1.3" }, + "features": { + "bootmagic": false, + "command": true, + "extrakey": true, + "mousekey": false, + "nkro": false, + "rgblight": true + }, "rgblight": { "hue_steps": 10, "led_count": 9, diff --git a/keyboards/salicylic_acid3/getta25/rules.mk b/keyboards/salicylic_acid3/getta25/rules.mk index dae9b6ae3bd..069fe74b142 100644 --- a/keyboards/salicylic_acid3/getta25/rules.mk +++ b/keyboards/salicylic_acid3/getta25/rules.mk @@ -1,15 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -AUDIO_ENABLE = no # Audio output -RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. -OLED_ENABLE = no - DEFAULT_FOLDER = salicylic_acid3/getta25/rev1 diff --git a/keyboards/salicylic_acid3/jisplit89/rev1/keyboard.json b/keyboards/salicylic_acid3/jisplit89/rev1/keyboard.json index ccfe99ad18f..7c72c9b17aa 100644 --- a/keyboards/salicylic_acid3/jisplit89/rev1/keyboard.json +++ b/keyboards/salicylic_acid3/jisplit89/rev1/keyboard.json @@ -8,6 +8,14 @@ "pid": "0xEB4F", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "command": true, + "extrakey": true, + "mousekey": false, + "nkro": false, + "rgblight": true + }, "matrix_pins": { "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B5"], "rows": ["D1", "D0", "D4", "C6", "D7", "E6", "B4"] diff --git a/keyboards/salicylic_acid3/jisplit89/rules.mk b/keyboards/salicylic_acid3/jisplit89/rules.mk index f90f3d9c07c..d54d2ccef4d 100644 --- a/keyboards/salicylic_acid3/jisplit89/rules.mk +++ b/keyboards/salicylic_acid3/jisplit89/rules.mk @@ -1,14 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - DEFAULT_FOLDER = salicylic_acid3/jisplit89/rev1 diff --git a/keyboards/salicylic_acid3/naked48/rev1/keyboard.json b/keyboards/salicylic_acid3/naked48/rev1/keyboard.json index da82c1a16c1..f390db51f14 100644 --- a/keyboards/salicylic_acid3/naked48/rev1/keyboard.json +++ b/keyboards/salicylic_acid3/naked48/rev1/keyboard.json @@ -8,6 +8,13 @@ "pid": "0xE8BA", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": false, + "rgblight": true + }, "rgb_matrix": { "driver": "ws2812" }, diff --git a/keyboards/salicylic_acid3/naked48/rules.mk b/keyboards/salicylic_acid3/naked48/rules.mk index fd9a93f5030..dadfa7a2579 100644 --- a/keyboards/salicylic_acid3/naked48/rules.mk +++ b/keyboards/salicylic_acid3/naked48/rules.mk @@ -1,15 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -RGB_MATRIX_ENABLE = no - DEFAULT_FOLDER = salicylic_acid3/naked48/rev1 diff --git a/keyboards/salicylic_acid3/naked60/rev1/keyboard.json b/keyboards/salicylic_acid3/naked60/rev1/keyboard.json index f5d53c001d4..1916b01eb21 100644 --- a/keyboards/salicylic_acid3/naked60/rev1/keyboard.json +++ b/keyboards/salicylic_acid3/naked60/rev1/keyboard.json @@ -8,6 +8,12 @@ "pid": "0xEB5C", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": false + }, "matrix_pins": { "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "D7", "E6", "B4", "B5", "D3"], "rows": ["B6", "D1", "D0", "D4", "C6"] diff --git a/keyboards/salicylic_acid3/naked60/rules.mk b/keyboards/salicylic_acid3/naked60/rules.mk index 2210ae765c9..904309ea356 100644 --- a/keyboards/salicylic_acid3/naked60/rules.mk +++ b/keyboards/salicylic_acid3/naked60/rules.mk @@ -1,14 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - DEFAULT_FOLDER = salicylic_acid3/naked60/rev1 diff --git a/keyboards/salicylic_acid3/naked64/rev1/keyboard.json b/keyboards/salicylic_acid3/naked64/rev1/keyboard.json index 2034b7d9ab4..8dc9a49c7a6 100644 --- a/keyboards/salicylic_acid3/naked64/rev1/keyboard.json +++ b/keyboards/salicylic_acid3/naked64/rev1/keyboard.json @@ -8,6 +8,14 @@ "pid": "0x3060", "device_version": "0.0.3" }, + "features": { + "bootmagic": false, + "command": true, + "extrakey": true, + "mousekey": true, + "nkro": false, + "rgblight": true + }, "matrix_pins": { "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "D3"], "rows": ["D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5"] diff --git a/keyboards/salicylic_acid3/naked64/rules.mk b/keyboards/salicylic_acid3/naked64/rules.mk index 03a0fe22c08..0ac8d83bfcc 100644 --- a/keyboards/salicylic_acid3/naked64/rules.mk +++ b/keyboards/salicylic_acid3/naked64/rules.mk @@ -1,16 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -AUDIO_ENABLE = no # Audio output -RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. -OLED_ENABLE = no -USE_I2C = no - DEFAULT_FOLDER = salicylic_acid3/naked64/rev1 diff --git a/keyboards/salicylic_acid3/setta21/rev1/keyboard.json b/keyboards/salicylic_acid3/setta21/rev1/keyboard.json index d510c2c3b2a..0d20c99f269 100644 --- a/keyboards/salicylic_acid3/setta21/rev1/keyboard.json +++ b/keyboards/salicylic_acid3/setta21/rev1/keyboard.json @@ -8,6 +8,13 @@ "pid": "0x3060", "device_version": "0.1.1" }, + "features": { + "bootmagic": false, + "extrakey": false, + "mousekey": false, + "nkro": false, + "rgblight": true + }, "rgblight": { "hue_steps": 10, "led_count": 21, diff --git a/keyboards/salicylic_acid3/setta21/rules.mk b/keyboards/salicylic_acid3/setta21/rules.mk index d4aab3ee3f0..02e68b57487 100644 --- a/keyboards/salicylic_acid3/setta21/rules.mk +++ b/keyboards/salicylic_acid3/setta21/rules.mk @@ -1,17 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = no # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -AUDIO_ENABLE = no # Audio output -RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. -OLED_ENABLE = no -USE_I2C = no -RGB_MATRIX_ENABLE = no - DEFAULT_FOLDER = salicylic_acid3/setta21/rev1 diff --git a/keyboards/stront/keyboard.json b/keyboards/stront/keyboard.json index d2726c85f0e..5055a4fb30e 100644 --- a/keyboards/stront/keyboard.json +++ b/keyboards/stront/keyboard.json @@ -80,13 +80,15 @@ ] }, "features": { + "backlight": true, "bootmagic": true, "console": false, "encoder": true, - "backlight": true, "extrakey": true, - "rgb_matrix": true, - "nkro": false + "nkro": false, + "pointing_device": true, + "quantum_painter": true, + "rgb_matrix": true }, "backlight": { "pin": "GP14" diff --git a/keyboards/stront/rules.mk b/keyboards/stront/rules.mk index c6cdeb5bfca..61d59017cb7 100644 --- a/keyboards/stront/rules.mk +++ b/keyboards/stront/rules.mk @@ -1,9 +1,7 @@ SERIAL_DRIVER = vendor -POINTING_DEVICE_ENABLE = yes POINTING_DEVICE_DRIVER = cirque_pinnacle_spi -QUANTUM_PAINTER_ENABLE = yes QUANTUM_PAINTER_DRIVERS += st7789_spi QUANTUM_PAINTER_LVGL_INTEGRATION = yes diff --git a/keyboards/teleport/native/info.json b/keyboards/teleport/native/info.json index 3cd857a55dc..756764ff6f0 100644 --- a/keyboards/teleport/native/info.json +++ b/keyboards/teleport/native/info.json @@ -38,7 +38,8 @@ "console": false, "extrakey": true, "mousekey": true, - "nkro": true + "nkro": true, + "rgb_matrix": true }, "diode_direction": "ROW2COL", "matrix_pins": { diff --git a/keyboards/teleport/native/rules.mk b/keyboards/teleport/native/rules.mk index 2a3743fa755..53dc2b17475 100644 --- a/keyboards/teleport/native/rules.mk +++ b/keyboards/teleport/native/rules.mk @@ -1,4 +1,3 @@ -RGB_MATRIX_ENABLE = yes RGB_MATRIX_CUSTOM_KB = yes DEFAULT_FOLDER = teleport/native/iso diff --git a/keyboards/tkw/grandiceps/rev2/config.h b/keyboards/tkw/grandiceps/rev2/config.h index 5810fe75bc9..83f1b561574 100644 --- a/keyboards/tkw/grandiceps/rev2/config.h +++ b/keyboards/tkw/grandiceps/rev2/config.h @@ -15,5 +15,4 @@ */ #pragma once -#define SPLIT_HAND_PIN B3 #define EEPROM_I2C_24LC64 diff --git a/keyboards/tkw/grandiceps/rev2/keyboard.json b/keyboards/tkw/grandiceps/rev2/keyboard.json index cd809481965..b0f9970bcdc 100644 --- a/keyboards/tkw/grandiceps/rev2/keyboard.json +++ b/keyboards/tkw/grandiceps/rev2/keyboard.json @@ -5,5 +5,13 @@ }, "eeprom": { "driver": "i2c" + }, + "features": { + "pointing_device": true + }, + "split": { + "handedness": { + "pin": "B3" + } } } diff --git a/keyboards/tkw/grandiceps/rev2/rules.mk b/keyboards/tkw/grandiceps/rev2/rules.mk index 20f28719241..0cac88f7f7d 100644 --- a/keyboards/tkw/grandiceps/rev2/rules.mk +++ b/keyboards/tkw/grandiceps/rev2/rules.mk @@ -1,2 +1 @@ -POINTING_DEVICE_ENABLE = yes POINTING_DEVICE_DRIVER = pimoroni_trackball diff --git a/keyboards/westm/westm68/info.json b/keyboards/westm/westm68/info.json index c71d47a41d8..85dd61bf86b 100644 --- a/keyboards/westm/westm68/info.json +++ b/keyboards/westm/westm68/info.json @@ -7,6 +7,15 @@ "vid": "0x574D", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "command": true, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, "matrix_pins": { "cols": ["B14", "B13", "B12", "B11", "B10", "B2", "B1", "B8", "B7", "B6", "B5", "B4", "B3", "A15", "A14"], "rows": ["A13", "B9", "F1", "A10", "A9"] diff --git a/keyboards/westm/westm68/rules.mk b/keyboards/westm/westm68/rules.mk index 6174653422b..2a716f41c4a 100644 --- a/keyboards/westm/westm68/rules.mk +++ b/keyboards/westm/westm68/rules.mk @@ -1,17 +1,4 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - DEFAULT_FOLDER = westm/westm68/rev2 diff --git a/keyboards/westm/westm9/info.json b/keyboards/westm/westm9/info.json index 1a132137911..43f12b17add 100644 --- a/keyboards/westm/westm9/info.json +++ b/keyboards/westm/westm9/info.json @@ -7,6 +7,14 @@ "vid": "0x574D", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "oled": true, + "rgblight": true + }, "matrix_pins": { "cols": ["B8", "B5", "B4"], "rows": ["A14", "A15", "B3"] diff --git a/keyboards/westm/westm9/rules.mk b/keyboards/westm/westm9/rules.mk index e522c525602..3ff78857b35 100644 --- a/keyboards/westm/westm9/rules.mk +++ b/keyboards/westm/westm9/rules.mk @@ -1,19 +1,4 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - -OLED_ENABLE = yes # Enable the OLED feature - DEFAULT_FOLDER = westm/westm9/rev2 diff --git a/keyboards/woodkeys/meira/featherble/keyboard.json b/keyboards/woodkeys/meira/featherble/keyboard.json index 8dc946dd571..416b788c904 100644 --- a/keyboards/woodkeys/meira/featherble/keyboard.json +++ b/keyboards/woodkeys/meira/featherble/keyboard.json @@ -3,5 +3,8 @@ "bootloader": "caterina", "bluetooth": { "driver": "bluefruit_le" + }, + "features": { + "bluetooth": true } } diff --git a/keyboards/woodkeys/meira/featherble/rules.mk b/keyboards/woodkeys/meira/featherble/rules.mk index 174947ff399..3437a35bdf1 100644 --- a/keyboards/woodkeys/meira/featherble/rules.mk +++ b/keyboards/woodkeys/meira/featherble/rules.mk @@ -1,4 +1,2 @@ # Processor frequency F_CPU = 8000000 - -BLUETOOTH_ENABLE = yes diff --git a/keyboards/work_louder/loop/info.json b/keyboards/work_louder/loop/info.json index 3c395e057a1..771a31d105c 100644 --- a/keyboards/work_louder/loop/info.json +++ b/keyboards/work_louder/loop/info.json @@ -8,6 +8,18 @@ "pid": "0x1DF9", "max_power": 100 }, + "build": { + "lto": true + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true, + "rgblight": true + }, "rgb_matrix": { "animations": { "alphas_mods": true, diff --git a/keyboards/work_louder/loop/rules.mk b/keyboards/work_louder/loop/rules.mk index b68ae20d145..53c3227972d 100644 --- a/keyboards/work_louder/loop/rules.mk +++ b/keyboards/work_louder/loop/rules.mk @@ -1,21 +1,3 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -ENCODER_ENABLE = yes -LTO_ENABLE = yes - -RGB_MATRIX_ENABLE = yes -LTO_ENABLE = yes - SRC += rgb_functions.c DEFAULT_FOLDER = work_louder/loop/rev3 diff --git a/keyboards/yanghu/unicorne/info.json b/keyboards/yanghu/unicorne/info.json index 26d54c2c827..504df68fb06 100644 --- a/keyboards/yanghu/unicorne/info.json +++ b/keyboards/yanghu/unicorne/info.json @@ -8,6 +8,16 @@ "pid": "0x0204", "device_version": "0.0.1" }, + "features": { + "audio": true, + "bootmagic": false, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "oled": true, + "rgblight": true + }, "rgblight": { "led_count": 8, "animations": { diff --git a/keyboards/yanghu/unicorne/rules.mk b/keyboards/yanghu/unicorne/rules.mk index 014f5d4d422..13cbb6b1e7d 100644 --- a/keyboards/yanghu/unicorne/rules.mk +++ b/keyboards/yanghu/unicorne/rules.mk @@ -1,20 +1,3 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = yes # Audio output -ENCODER_ENABLE = yes -OLED_ENABLE = yes - AUDIO_DRIVER = pwm_hardware -RGB_MATRIX_ENABLE = no # Do not enable with RGBLIGHT - DEFAULT_FOLDER = yanghu/unicorne/f411 From 2893038fda6cd19ef84d92afa4ae8c4615698e38 Mon Sep 17 00:00:00 2001 From: Jay Greco Date: Thu, 25 Apr 2024 17:02:48 -0700 Subject: [PATCH 06/55] nullbitsco/snap: once again reduce size of bongo_reactive (#23284) --- keyboards/nullbitsco/snap/keymaps/bongo_reactive/config.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/keyboards/nullbitsco/snap/keymaps/bongo_reactive/config.h b/keyboards/nullbitsco/snap/keymaps/bongo_reactive/config.h index d4f07051e5c..b2c161d40ac 100644 --- a/keyboards/nullbitsco/snap/keymaps/bongo_reactive/config.h +++ b/keyboards/nullbitsco/snap/keymaps/bongo_reactive/config.h @@ -28,8 +28,11 @@ // Selectively undefine to save space // VIA support won't fit otherwise #ifdef RGBLIGHT_ENABLE -#undef RGBLIGHT_EFFECT_TWINKLE +#undef RGBLIGHT_EFFECT_ALTERNATING +#undef RGBLIGHT_EFFECT_CHRISTMAS #undef RGBLIGHT_EFFECT_RGB_TEST +#undef RGBLIGHT_EFFECT_SNAKE +#undef RGBLIGHT_EFFECT_TWINKLE #endif //RGB LIGHT_ENABLE // Split Options From 42f61611e8be856c65efa0e9cf56b19fe18c519e Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 25 Apr 2024 21:41:09 -0700 Subject: [PATCH 07/55] Data-Driven Keyboard Conversions: M, Part 3 (#23614) --- keyboards/mitosis/info.json | 9 +++++++++ keyboards/mitosis/rules.mk | 13 ------------- keyboards/mlego/m60_split/rev1/info.json | 8 ++++++++ keyboards/mlego/m60_split/rev1/rules.mk | 14 -------------- keyboards/mlego/m60_split/rev2/info.json | 8 ++++++++ keyboards/mlego/m60_split/rev2/rules.mk | 13 ------------- keyboards/molecule/info.json | 6 ++++++ keyboards/molecule/rules.mk | 14 -------------- keyboards/monokei/mnk1800s/info.json | 6 ++++++ keyboards/monokei/mnk1800s/rules.mk | 13 ------------- keyboards/monokei/mnk50/info.json | 6 ++++++ keyboards/monokei/mnk50/rules.mk | 13 ------------- keyboards/monokei/mnk75/info.json | 6 ++++++ keyboards/monokei/mnk75/rules.mk | 13 ------------- .../rebound/rev1/{info.json => keyboard.json} | 7 +++++++ keyboards/montsinger/rebound/rev1/rules.mk | 12 ------------ .../rebound/rev2/{info.json => keyboard.json} | 8 ++++++++ keyboards/montsinger/rebound/rev2/rules.mk | 13 ------------- .../rebound/rev3/{info.json => keyboard.json} | 8 ++++++++ keyboards/montsinger/rebound/rev3/rules.mk | 13 ------------- keyboards/montsinger/rebound/rev4/info.json | 8 ++++++++ keyboards/montsinger/rebound/rev4/rules.mk | 14 -------------- keyboards/moon/info.json | 9 +++++++++ keyboards/moon/rules.mk | 13 ------------- .../mt/ncr80/hotswap/{info.json => keyboard.json} | 6 ++++++ keyboards/mt/ncr80/hotswap/rules.mk | 12 ------------ .../mt/ncr80/solder/{info.json => keyboard.json} | 7 +++++++ keyboards/mt/ncr80/solder/rules.mk | 12 ------------ keyboards/mt/split75/info.json | 7 +++++++ keyboards/mt/split75/rules.mk | 11 ----------- 30 files changed, 109 insertions(+), 193 deletions(-) rename keyboards/montsinger/rebound/rev1/{info.json => keyboard.json} (95%) delete mode 100644 keyboards/montsinger/rebound/rev1/rules.mk rename keyboards/montsinger/rebound/rev2/{info.json => keyboard.json} (97%) delete mode 100644 keyboards/montsinger/rebound/rev2/rules.mk rename keyboards/montsinger/rebound/rev3/{info.json => keyboard.json} (97%) delete mode 100644 keyboards/montsinger/rebound/rev3/rules.mk rename keyboards/mt/ncr80/hotswap/{info.json => keyboard.json} (97%) delete mode 100644 keyboards/mt/ncr80/hotswap/rules.mk rename keyboards/mt/ncr80/solder/{info.json => keyboard.json} (99%) delete mode 100644 keyboards/mt/ncr80/solder/rules.mk diff --git a/keyboards/mitosis/info.json b/keyboards/mitosis/info.json index feab60b7fb8..c69d1d30cd4 100644 --- a/keyboards/mitosis/info.json +++ b/keyboards/mitosis/info.json @@ -8,6 +8,15 @@ "pid": "0x6060", "device_version": "0.0.1" }, + "features": { + "bootmagic": false, + "mousekey": true, + "extrakey": true, + "console": true, + "command": true, + "nkro": true, + "unicode": true + }, "processor": "atmega32u4", "bootloader": "caterina", "layouts": { diff --git a/keyboards/mitosis/rules.mk b/keyboards/mitosis/rules.mk index 539a2d1004b..18d234d62a0 100644 --- a/keyboards/mitosis/rules.mk +++ b/keyboards/mitosis/rules.mk @@ -1,16 +1,3 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -UNICODE_ENABLE = yes CUSTOM_MATRIX = lite # project specific files diff --git a/keyboards/mlego/m60_split/rev1/info.json b/keyboards/mlego/m60_split/rev1/info.json index 83e66ce2ccf..9be9708081e 100644 --- a/keyboards/mlego/m60_split/rev1/info.json +++ b/keyboards/mlego/m60_split/rev1/info.json @@ -3,6 +3,14 @@ "pid": "0x6361", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "nkro": true, + "rgblight": true, + "encoder": true + }, "matrix_pins": { "cols": ["B14", "A10", "A15", "B3", "B4", "B5"], "rows": ["B0", "A6", "A7", "B1", "A5"] diff --git a/keyboards/mlego/m60_split/rev1/rules.mk b/keyboards/mlego/m60_split/rev1/rules.mk index c38e4335e89..c6e29883213 100644 --- a/keyboards/mlego/m60_split/rev1/rules.mk +++ b/keyboards/mlego/m60_split/rev1/rules.mk @@ -1,15 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output SERIAL_DRIVER = usart -ENCODER_ENABLE = yes # Enable encoder - diff --git a/keyboards/mlego/m60_split/rev2/info.json b/keyboards/mlego/m60_split/rev2/info.json index b4b18a91d69..5185a2e6456 100644 --- a/keyboards/mlego/m60_split/rev2/info.json +++ b/keyboards/mlego/m60_split/rev2/info.json @@ -3,6 +3,14 @@ "pid": "0x6362", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "nkro": true, + "rgblight": true, + "encoder": true + }, "matrix_pins": { "cols": ["B14", "A10", "A15", "B3", "B4", "B5"], "rows": ["B0", "A6", "A7", "B1", "A5"] diff --git a/keyboards/mlego/m60_split/rev2/rules.mk b/keyboards/mlego/m60_split/rev2/rules.mk index f3ecf1b52cb..c6e29883213 100644 --- a/keyboards/mlego/m60_split/rev2/rules.mk +++ b/keyboards/mlego/m60_split/rev2/rules.mk @@ -1,14 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output SERIAL_DRIVER = usart -ENCODER_ENABLE = yes # Enable encoder diff --git a/keyboards/molecule/info.json b/keyboards/molecule/info.json index 51ca67c2820..f3bd818122c 100755 --- a/keyboards/molecule/info.json +++ b/keyboards/molecule/info.json @@ -8,6 +8,12 @@ "pid": "0x0000", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "pointing_device": true + }, "matrix_pins": { "cols": ["D3", "D2", "D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5"], "rows": ["F4", "F5", "F6", "B6"] diff --git a/keyboards/molecule/rules.mk b/keyboards/molecule/rules.mk index 06a8f490ee7..3272be5a9b3 100755 --- a/keyboards/molecule/rules.mk +++ b/keyboards/molecule/rules.mk @@ -1,18 +1,4 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - # Add trackball support -POINTING_DEVICE_ENABLE = yes POINTING_DEVICE_DRIVER = custom SRC += adns.c SPI_DRIVER_REQUIRED = yes diff --git a/keyboards/monokei/mnk1800s/info.json b/keyboards/monokei/mnk1800s/info.json index 9cf4f0f122c..b11038fcd3e 100755 --- a/keyboards/monokei/mnk1800s/info.json +++ b/keyboards/monokei/mnk1800s/info.json @@ -8,6 +8,12 @@ "pid": "0x3138", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "nkro": true + }, "matrix_pins": { "cols": ["B10", "B2", "B1", "B0", "B14", "B15", "A8", "A9", "A10", "B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15", "A14"], "rows": ["B13", "B12", "A7", "A6", "A5"] diff --git a/keyboards/monokei/mnk1800s/rules.mk b/keyboards/monokei/mnk1800s/rules.mk index 7c0709f41e6..0ab54aaaf71 100644 --- a/keyboards/monokei/mnk1800s/rules.mk +++ b/keyboards/monokei/mnk1800s/rules.mk @@ -1,15 +1,2 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output diff --git a/keyboards/monokei/mnk50/info.json b/keyboards/monokei/mnk50/info.json index 3d4c98edc7f..e5d72096dca 100755 --- a/keyboards/monokei/mnk50/info.json +++ b/keyboards/monokei/mnk50/info.json @@ -8,6 +8,12 @@ "pid": "0x4D35", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "nkro": true + }, "matrix_pins": { "cols": ["B14", "B15", "A8", "A9", "A13", "A14", "A15", "B3", "B4", "B5", "B6", "B7", "B8", "B9"], "rows": ["B12", "B13", "A10", "A6"] diff --git a/keyboards/monokei/mnk50/rules.mk b/keyboards/monokei/mnk50/rules.mk index 7c0709f41e6..0ab54aaaf71 100644 --- a/keyboards/monokei/mnk50/rules.mk +++ b/keyboards/monokei/mnk50/rules.mk @@ -1,15 +1,2 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output diff --git a/keyboards/monokei/mnk75/info.json b/keyboards/monokei/mnk75/info.json index 421e830a1bd..d9d7d6a8c8b 100755 --- a/keyboards/monokei/mnk75/info.json +++ b/keyboards/monokei/mnk75/info.json @@ -8,6 +8,12 @@ "pid": "0x4D37", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "nkro": true + }, "matrix_pins": { "cols": ["A1", "B9", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "B2", "B10", "B11", "B12", "B13", "B14"], "rows": ["A2", "A14", "A15", "B3", "B4", "B5"] diff --git a/keyboards/monokei/mnk75/rules.mk b/keyboards/monokei/mnk75/rules.mk index 50f3a3d1511..0ab54aaaf71 100644 --- a/keyboards/monokei/mnk75/rules.mk +++ b/keyboards/monokei/mnk75/rules.mk @@ -1,15 +1,2 @@ # Wildcard to allow APM32 MCU DFU_SUFFIX_ARGS = -v FFFF -p FFFF - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output diff --git a/keyboards/montsinger/rebound/rev1/info.json b/keyboards/montsinger/rebound/rev1/keyboard.json similarity index 95% rename from keyboards/montsinger/rebound/rev1/info.json rename to keyboards/montsinger/rebound/rev1/keyboard.json index be323b6f65c..66ed41a6740 100644 --- a/keyboards/montsinger/rebound/rev1/info.json +++ b/keyboards/montsinger/rebound/rev1/keyboard.json @@ -8,6 +8,13 @@ "pid": "0x552F", "device_version": "0.0.2" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": true, + "command": true + }, "matrix_pins": { "cols": ["D0", "D4", "C6", "D7", "E6", "B4", "B3", "B1", "F7", "F6", "F5", "F4"], "rows": ["D1", "B5", "B2", "B6"] diff --git a/keyboards/montsinger/rebound/rev1/rules.mk b/keyboards/montsinger/rebound/rev1/rules.mk deleted file mode 100644 index 309e55c9f4c..00000000000 --- a/keyboards/montsinger/rebound/rev1/rules.mk +++ /dev/null @@ -1,12 +0,0 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output diff --git a/keyboards/montsinger/rebound/rev2/info.json b/keyboards/montsinger/rebound/rev2/keyboard.json similarity index 97% rename from keyboards/montsinger/rebound/rev2/info.json rename to keyboards/montsinger/rebound/rev2/keyboard.json index f09cb7f75f0..a3a99247ab3 100644 --- a/keyboards/montsinger/rebound/rev2/info.json +++ b/keyboards/montsinger/rebound/rev2/keyboard.json @@ -8,6 +8,14 @@ "pid": "0x552F", "device_version": "0.0.2" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": true, + "command": true, + "encoder": true + }, "matrix_pins": { "cols": ["D0", "D4", "C6", "D7", "E6", "B4", "B3", "B1", "F7", "F6", "F5", "F4"], "rows": ["D1", "B5", "B2", "B6", "B0"] diff --git a/keyboards/montsinger/rebound/rev2/rules.mk b/keyboards/montsinger/rebound/rev2/rules.mk deleted file mode 100644 index f957b56f253..00000000000 --- a/keyboards/montsinger/rebound/rev2/rules.mk +++ /dev/null @@ -1,13 +0,0 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -ENCODER_ENABLE = yes diff --git a/keyboards/montsinger/rebound/rev3/info.json b/keyboards/montsinger/rebound/rev3/keyboard.json similarity index 97% rename from keyboards/montsinger/rebound/rev3/info.json rename to keyboards/montsinger/rebound/rev3/keyboard.json index b898407f828..630761b4013 100644 --- a/keyboards/montsinger/rebound/rev3/info.json +++ b/keyboards/montsinger/rebound/rev3/keyboard.json @@ -8,6 +8,14 @@ "pid": "0x552F", "device_version": "0.0.2" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": true, + "command": true, + "encoder": true + }, "matrix_pins": { "cols": ["D4", "C6", "D7", "E6", "B4", "B5", "B6", "B2", "B3", "B1", "F7", "F6"], "rows": ["F4", "F5", "D1", "D0", "B0"] diff --git a/keyboards/montsinger/rebound/rev3/rules.mk b/keyboards/montsinger/rebound/rev3/rules.mk deleted file mode 100644 index f957b56f253..00000000000 --- a/keyboards/montsinger/rebound/rev3/rules.mk +++ /dev/null @@ -1,13 +0,0 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -ENCODER_ENABLE = yes diff --git a/keyboards/montsinger/rebound/rev4/info.json b/keyboards/montsinger/rebound/rev4/info.json index 565e56701f9..ad17ca423ea 100644 --- a/keyboards/montsinger/rebound/rev4/info.json +++ b/keyboards/montsinger/rebound/rev4/info.json @@ -8,6 +8,14 @@ "pid": "0x0001", "device_version": "0.0.2" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": true, + "command": true, + "encoder": true + }, "matrix_pins": { "cols": ["D7", "E6", "B4", "B5", "B2", "B3", "B1"], "rows": ["D1", "D0", "D4", "C6", "F7", "F6", "F5", "F4"] diff --git a/keyboards/montsinger/rebound/rev4/rules.mk b/keyboards/montsinger/rebound/rev4/rules.mk index 643c971d472..4df55cd2206 100644 --- a/keyboards/montsinger/rebound/rev4/rules.mk +++ b/keyboards/montsinger/rebound/rev4/rules.mk @@ -1,17 +1,3 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -ENCODER_ENABLE = yes - # Disable unsupported hardware AUDIO_SUPPORTED = no BACKLIGHT_SUPPORTED = no diff --git a/keyboards/moon/info.json b/keyboards/moon/info.json index a89caf86d2d..4c66cb51a9b 100644 --- a/keyboards/moon/info.json +++ b/keyboards/moon/info.json @@ -8,6 +8,15 @@ "pid": "0xFCB8", "device_version": "0.0.1" }, + "features": { + "bootmagic": false, + "mousekey": true, + "extrakey": true, + "console": true, + "command": true, + "nkro": true, + "backlight": true + }, "backlight": { "pin": "C6" }, diff --git a/keyboards/moon/rules.mk b/keyboards/moon/rules.mk index 676f0971a2e..aee52dfee13 100644 --- a/keyboards/moon/rules.mk +++ b/keyboards/moon/rules.mk @@ -1,16 +1,3 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - # custom matrix setup CUSTOM_MATRIX = yes diff --git a/keyboards/mt/ncr80/hotswap/info.json b/keyboards/mt/ncr80/hotswap/keyboard.json similarity index 97% rename from keyboards/mt/ncr80/hotswap/info.json rename to keyboards/mt/ncr80/hotswap/keyboard.json index b79a30709f3..6f82bb0e786 100644 --- a/keyboards/mt/ncr80/hotswap/info.json +++ b/keyboards/mt/ncr80/hotswap/keyboard.json @@ -8,6 +8,12 @@ "pid": "0x2002", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "nkro": true + }, "matrix_pins": { "cols": ["D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4"], "rows": ["E6", "B0", "B1", "B2", "B3", "B7", "F7", "F6", "F5", "F4", "F1"] diff --git a/keyboards/mt/ncr80/hotswap/rules.mk b/keyboards/mt/ncr80/hotswap/rules.mk deleted file mode 100644 index e82e95f7843..00000000000 --- a/keyboards/mt/ncr80/hotswap/rules.mk +++ /dev/null @@ -1,12 +0,0 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output diff --git a/keyboards/mt/ncr80/solder/info.json b/keyboards/mt/ncr80/solder/keyboard.json similarity index 99% rename from keyboards/mt/ncr80/solder/info.json rename to keyboards/mt/ncr80/solder/keyboard.json index ead9ed409d1..fac59abadd0 100644 --- a/keyboards/mt/ncr80/solder/info.json +++ b/keyboards/mt/ncr80/solder/keyboard.json @@ -8,6 +8,13 @@ "pid": "0x2001", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "nkro": true, + "backlight": true + }, "matrix_pins": { "cols": ["D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4"], "rows": ["E6", "B0", "B1", "B2", "B3", "B7", "F7", "F6", "F5", "F4", "F1"] diff --git a/keyboards/mt/ncr80/solder/rules.mk b/keyboards/mt/ncr80/solder/rules.mk deleted file mode 100644 index 9032f3e4b8f..00000000000 --- a/keyboards/mt/ncr80/solder/rules.mk +++ /dev/null @@ -1,12 +0,0 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output diff --git a/keyboards/mt/split75/info.json b/keyboards/mt/split75/info.json index e03d528a2a4..c13fa28b800 100644 --- a/keyboards/mt/split75/info.json +++ b/keyboards/mt/split75/info.json @@ -8,6 +8,13 @@ "pid": "0x0001", "device_version": "0.0.1" }, + "features": { + "bootmagic": false, + "mousekey": false, + "extrakey": true, + "backlight": true, + "rgblight": true + }, "backlight": { "pin": "D4" }, diff --git a/keyboards/mt/split75/rules.mk b/keyboards/mt/split75/rules.mk index b0c02543b19..bbfc7cbbf72 100644 --- a/keyboards/mt/split75/rules.mk +++ b/keyboards/mt/split75/rules.mk @@ -1,14 +1,3 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow - # custom matrix setup CUSTOM_MATRIX = lite SRC = matrix.c From d333a25868039292a327a141dc90c0015b7fd017 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 26 Apr 2024 05:41:22 +0100 Subject: [PATCH 08/55] Add audio driver to keyboard.json schema (#23616) --- data/mappings/info_rules.hjson | 1 + data/schemas/keyboard.jsonschema | 4 ++++ docs/reference_info_json.md | 2 ++ keyboards/adafruit/macropad/keyboard.json | 1 + keyboards/adafruit/macropad/rules.mk | 1 - keyboards/arrowmechanics/wings/keyboard.json | 3 +++ keyboards/arrowmechanics/wings/rules.mk | 1 - keyboards/boardsource/equals/48/keyboard.json | 3 +++ keyboards/boardsource/equals/48/rules.mk | 1 - keyboards/boardsource/equals/60/keyboard.json | 3 +++ keyboards/boardsource/equals/60/rules.mk | 1 - keyboards/boardsource/unicorne/keyboard.json | 3 +++ keyboards/boardsource/unicorne/rules.mk | 1 - keyboards/custommk/cmk11/keyboard.json | 3 +++ keyboards/custommk/cmk11/rules.mk | 1 - keyboards/custommk/ergostrafer/keyboard.json | 3 +++ keyboards/custommk/ergostrafer/rules.mk | 1 - keyboards/custommk/evo70_r2/keyboard.json | 3 +++ keyboards/custommk/evo70_r2/rules.mk | 2 -- keyboards/handwired/macroboard/f411/keyboard.json | 3 +++ keyboards/handwired/macroboard/f411/rules.mk | 1 - .../handwired/tractyl_manuform/5x6_right/f303/keyboard.json | 3 +++ keyboards/handwired/tractyl_manuform/5x6_right/f303/rules.mk | 1 - .../handwired/tractyl_manuform/5x6_right/f411/keyboard.json | 3 +++ keyboards/handwired/tractyl_manuform/5x6_right/f411/rules.mk | 1 - keyboards/nack/keyboard.json | 3 +++ keyboards/nack/rules.mk | 1 - keyboards/planck/ez/info.json | 3 +++ keyboards/planck/ez/rules.mk | 2 -- keyboards/quokka/keyboard.json | 3 +++ keyboards/quokka/rules.mk | 1 - keyboards/rgbkb/sol3/rev1/keyboard.json | 3 +++ keyboards/rgbkb/sol3/rules.mk | 1 - keyboards/tzarc/djinn/info.json | 3 +++ keyboards/tzarc/djinn/rules.mk | 2 -- keyboards/yanghu/unicorne/info.json | 3 +++ keyboards/yanghu/unicorne/rules.mk | 2 -- keyboards/zsa/moonlander/keyboard.json | 3 +++ keyboards/zsa/moonlander/rules.mk | 1 - 39 files changed, 59 insertions(+), 22 deletions(-) delete mode 100644 keyboards/custommk/cmk11/rules.mk delete mode 100644 keyboards/custommk/ergostrafer/rules.mk delete mode 100644 keyboards/handwired/macroboard/f411/rules.mk delete mode 100644 keyboards/nack/rules.mk diff --git a/data/mappings/info_rules.hjson b/data/mappings/info_rules.hjson index 5d08be2fc1a..97611bcf587 100644 --- a/data/mappings/info_rules.hjson +++ b/data/mappings/info_rules.hjson @@ -11,6 +11,7 @@ // invalid: Default `false`. Set to `true` to generate errors when a value exists // replace_with: use with a key marked deprecated or invalid to designate a replacement + "AUDIO_DRIVER": {"info_key": "audio.driver"}, "BACKLIGHT_DRIVER": {"info_key": "backlight.driver"}, "BLUETOOTH_DRIVER": {"info_key": "bluetooth.driver"}, "BOARD": {"info_key": "board"}, diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 24f7fec9ab3..585c64777f2 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -133,6 +133,10 @@ "clicky": {"type": "boolean"} } }, + "driver": { + "type": "string", + "enum": ["dac_additive", "dac_basic", "pwm_software", "pwm_hardware"] + }, "macro_beep": {"type": "boolean"}, "pins": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}, "power_control": { diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index 6f0b84c414b..d1dc5d3beac 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -118,6 +118,8 @@ Configures the [Audio](feature_audio.md) feature. * `clicky` * The default audio clicky enabled state. * Default: `true` + * `driver` + * The driver to use. Must be one of `dac_additive`, `dac_basic`, `pwm_software`, `pwm_hardware`. * `macro_beep` * Play a short beep for `\a` (ASCII `BEL`) characters in Send String macros. * Default: `false` diff --git a/keyboards/adafruit/macropad/keyboard.json b/keyboards/adafruit/macropad/keyboard.json index 86601c0167f..94f2673f98f 100644 --- a/keyboards/adafruit/macropad/keyboard.json +++ b/keyboards/adafruit/macropad/keyboard.json @@ -19,6 +19,7 @@ "oled": true }, "audio": { + "driver": "pwm_hardware", "power_control": { "pin": "GP14" } diff --git a/keyboards/adafruit/macropad/rules.mk b/keyboards/adafruit/macropad/rules.mk index 1630b74ceae..d7ca5b3b90f 100644 --- a/keyboards/adafruit/macropad/rules.mk +++ b/keyboards/adafruit/macropad/rules.mk @@ -1,2 +1 @@ -AUDIO_DRIVER = pwm_hardware OLED_TRANSPORT = spi diff --git a/keyboards/arrowmechanics/wings/keyboard.json b/keyboards/arrowmechanics/wings/keyboard.json index fca38314c9b..0f1e6696f75 100644 --- a/keyboards/arrowmechanics/wings/keyboard.json +++ b/keyboards/arrowmechanics/wings/keyboard.json @@ -17,6 +17,9 @@ "mousekey": true, "rgb_matrix": true }, + "audio": { + "driver": "pwm_hardware" + }, "matrix_pins": { "cols": ["GP8", "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15", "GP16"], "rows": ["GP22", "GP21", "GP20", "GP19", "GP18", "GP17"] diff --git a/keyboards/arrowmechanics/wings/rules.mk b/keyboards/arrowmechanics/wings/rules.mk index 22ce54190c8..161ec22b16e 100644 --- a/keyboards/arrowmechanics/wings/rules.mk +++ b/keyboards/arrowmechanics/wings/rules.mk @@ -1,2 +1 @@ SERIAL_DRIVER = vendor -AUDIO_DRIVER = pwm_hardware diff --git a/keyboards/boardsource/equals/48/keyboard.json b/keyboards/boardsource/equals/48/keyboard.json index 5b633559313..13bc0d80ab7 100644 --- a/keyboards/boardsource/equals/48/keyboard.json +++ b/keyboards/boardsource/equals/48/keyboard.json @@ -10,6 +10,9 @@ "cols": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9", "GP10", "GP11"], "rows": ["GP12", "GP13", "GP16", "GP17"] }, + "audio": { + "driver": "pwm_hardware" + }, "ws2812": { "driver": "vendor", "pin": "GP21" diff --git a/keyboards/boardsource/equals/48/rules.mk b/keyboards/boardsource/equals/48/rules.mk index 2f75fc139fc..ec94c118ee1 100644 --- a/keyboards/boardsource/equals/48/rules.mk +++ b/keyboards/boardsource/equals/48/rules.mk @@ -1,2 +1 @@ -AUDIO_DRIVER = pwm_hardware QUANTUM_PAINTER_DRIVERS += st7735_spi diff --git a/keyboards/boardsource/equals/60/keyboard.json b/keyboards/boardsource/equals/60/keyboard.json index 3bc1f49be38..63cb4717e57 100644 --- a/keyboards/boardsource/equals/60/keyboard.json +++ b/keyboards/boardsource/equals/60/keyboard.json @@ -10,6 +10,9 @@ "cols": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9", "GP10", "GP11"], "rows": ["GP12", "GP13", "GP16", "GP17", "GP18"] }, + "audio": { + "driver": "pwm_hardware" + }, "ws2812": { "driver": "vendor", "pin": "GP21" diff --git a/keyboards/boardsource/equals/60/rules.mk b/keyboards/boardsource/equals/60/rules.mk index 2f75fc139fc..ec94c118ee1 100644 --- a/keyboards/boardsource/equals/60/rules.mk +++ b/keyboards/boardsource/equals/60/rules.mk @@ -1,2 +1 @@ -AUDIO_DRIVER = pwm_hardware QUANTUM_PAINTER_DRIVERS += st7735_spi diff --git a/keyboards/boardsource/unicorne/keyboard.json b/keyboards/boardsource/unicorne/keyboard.json index 6afbcc044cb..4fb63de9e32 100644 --- a/keyboards/boardsource/unicorne/keyboard.json +++ b/keyboards/boardsource/unicorne/keyboard.json @@ -32,6 +32,9 @@ "pid": "0x7563", "vid": "0x4273" }, + "audio": { + "driver": "pwm_hardware" + }, "ws2812": { "driver": "vendor", "pin": "GP29" diff --git a/keyboards/boardsource/unicorne/rules.mk b/keyboards/boardsource/unicorne/rules.mk index d123b2a2fa8..48b30dcd51a 100644 --- a/keyboards/boardsource/unicorne/rules.mk +++ b/keyboards/boardsource/unicorne/rules.mk @@ -1,3 +1,2 @@ SERIAL_DRIVER = vendor -AUDIO_DRIVER = pwm_hardware POINTING_DEVICE_DRIVER = analog_joystick diff --git a/keyboards/custommk/cmk11/keyboard.json b/keyboards/custommk/cmk11/keyboard.json index d831351aa78..9a853063ba3 100644 --- a/keyboards/custommk/cmk11/keyboard.json +++ b/keyboards/custommk/cmk11/keyboard.json @@ -18,6 +18,9 @@ "nkro": true, "rgb_matrix": true }, + "audio": { + "driver": "pwm_hardware" + }, "matrix_pins": { "cols": ["B0", "A1", "A2", "A3", "A6", "B10"], "rows": ["A5", "A4"] diff --git a/keyboards/custommk/cmk11/rules.mk b/keyboards/custommk/cmk11/rules.mk deleted file mode 100644 index 72f75f4367e..00000000000 --- a/keyboards/custommk/cmk11/rules.mk +++ /dev/null @@ -1 +0,0 @@ -AUDIO_DRIVER = pwm_hardware diff --git a/keyboards/custommk/ergostrafer/keyboard.json b/keyboards/custommk/ergostrafer/keyboard.json index a1283114c8e..4f23417415d 100644 --- a/keyboards/custommk/ergostrafer/keyboard.json +++ b/keyboards/custommk/ergostrafer/keyboard.json @@ -17,6 +17,9 @@ "encoder": true, "audio": true }, + "audio": { + "driver": "pwm_hardware" + }, "matrix_pins": { "cols": ["B0", "A1", "A2", "A3", "A6", "B6", "B10"], "rows": ["C13", "C14", "C15", "B1", "A7", "A5"] diff --git a/keyboards/custommk/ergostrafer/rules.mk b/keyboards/custommk/ergostrafer/rules.mk deleted file mode 100644 index 72f75f4367e..00000000000 --- a/keyboards/custommk/ergostrafer/rules.mk +++ /dev/null @@ -1 +0,0 @@ -AUDIO_DRIVER = pwm_hardware diff --git a/keyboards/custommk/evo70_r2/keyboard.json b/keyboards/custommk/evo70_r2/keyboard.json index dea56ed2570..5f10d6705d9 100644 --- a/keyboards/custommk/evo70_r2/keyboard.json +++ b/keyboards/custommk/evo70_r2/keyboard.json @@ -51,6 +51,9 @@ "twinkle": true } }, + "audio": { + "driver": "pwm_hardware" + }, "ws2812": { "driver": "pwm", "pin": "A10" diff --git a/keyboards/custommk/evo70_r2/rules.mk b/keyboards/custommk/evo70_r2/rules.mk index 193fe4f1a43..3961343ce4b 100644 --- a/keyboards/custommk/evo70_r2/rules.mk +++ b/keyboards/custommk/evo70_r2/rules.mk @@ -1,5 +1,3 @@ -AUDIO_DRIVER = pwm_hardware - # project specific files SRC += matrix.c diff --git a/keyboards/handwired/macroboard/f411/keyboard.json b/keyboards/handwired/macroboard/f411/keyboard.json index 03a8aadc1b9..8b1155d7740 100644 --- a/keyboards/handwired/macroboard/f411/keyboard.json +++ b/keyboards/handwired/macroboard/f411/keyboard.json @@ -9,6 +9,9 @@ "rows": ["A15", "B3", "B4", "B5", "B7"] }, "diode_direction": "COL2ROW", + "audio": { + "driver": "pwm_hardware" + }, "ws2812": { "driver": "pwm" }, diff --git a/keyboards/handwired/macroboard/f411/rules.mk b/keyboards/handwired/macroboard/f411/rules.mk deleted file mode 100644 index 72f75f4367e..00000000000 --- a/keyboards/handwired/macroboard/f411/rules.mk +++ /dev/null @@ -1 +0,0 @@ -AUDIO_DRIVER = pwm_hardware diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f303/keyboard.json b/keyboards/handwired/tractyl_manuform/5x6_right/f303/keyboard.json index 000d8f0dd77..499390c6107 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f303/keyboard.json +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f303/keyboard.json @@ -12,6 +12,9 @@ "led_count": 20, "split_count": [10, 10] }, + "audio": { + "driver": "dac_additive" + }, "ws2812": { "pin": "A6", "driver": "pwm" diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f303/rules.mk b/keyboards/handwired/tractyl_manuform/5x6_right/f303/rules.mk index 23f790a1ad4..22915ec0001 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f303/rules.mk +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f303/rules.mk @@ -1,4 +1,3 @@ # KEYBOARD_SHARED_EP = yes SERIAL_DRIVER = usart -AUDIO_DRIVER = dac_additive diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f411/keyboard.json b/keyboards/handwired/tractyl_manuform/5x6_right/f411/keyboard.json index 73c13e8e318..7182ee17012 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f411/keyboard.json +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f411/keyboard.json @@ -15,6 +15,9 @@ "build": { "debounce_type": "asym_eager_defer_pk" }, + "audio": { + "driver": "pwm_hardware" + }, "ws2812": { "pin": "A1", "driver": "pwm" diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f411/rules.mk b/keyboards/handwired/tractyl_manuform/5x6_right/f411/rules.mk index e75692030f7..f26cbbced12 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f411/rules.mk +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f411/rules.mk @@ -2,4 +2,3 @@ KEYBOARD_SHARED_EP = yes MOUSE_SHARED_EP = yes SERIAL_DRIVER = usart -AUDIO_DRIVER = pwm_hardware diff --git a/keyboards/nack/keyboard.json b/keyboards/nack/keyboard.json index 6a3b6db3ade..cd08aac0af4 100644 --- a/keyboards/nack/keyboard.json +++ b/keyboards/nack/keyboard.json @@ -17,6 +17,9 @@ "rgb_matrix": true, "unicode": true }, + "audio": { + "driver": "dac_basic" + }, "ws2812": { "pin": "B5", "driver": "spi" diff --git a/keyboards/nack/rules.mk b/keyboards/nack/rules.mk deleted file mode 100644 index 72354402a6b..00000000000 --- a/keyboards/nack/rules.mk +++ /dev/null @@ -1 +0,0 @@ -AUDIO_DRIVER = dac_basic diff --git a/keyboards/planck/ez/info.json b/keyboards/planck/ez/info.json index 4244b4d83d8..f7b2a8f8a1f 100644 --- a/keyboards/planck/ez/info.json +++ b/keyboards/planck/ez/info.json @@ -75,6 +75,9 @@ "rows": ["A10", "A9", "A8", "B15", "C13", "C14", "C15", "A2"] }, "diode_direction": "COL2ROW", + "audio": { + "driver": "dac_additive" + }, "encoder": { "rotary": [ {"pin_a": "B12", "pin_b": "B13"} diff --git a/keyboards/planck/ez/rules.mk b/keyboards/planck/ez/rules.mk index 6cdb6ed4c29..ef20f95b652 100644 --- a/keyboards/planck/ez/rules.mk +++ b/keyboards/planck/ez/rules.mk @@ -1,5 +1,3 @@ -AUDIO_DRIVER = dac_additive - RGBLIGHT_SUPPORTED = no BAKCLIGHT_SUPPORTED = no diff --git a/keyboards/quokka/keyboard.json b/keyboards/quokka/keyboard.json index 0c34b0ee65f..094e3e496eb 100644 --- a/keyboards/quokka/keyboard.json +++ b/keyboards/quokka/keyboard.json @@ -13,6 +13,9 @@ "oled": true, "rgb_matrix": true }, + "audio": { + "driver": "pwm_hardware" + }, "matrix_pins": { "cols": ["GP8", "GP7", "GP6", "GP5", "GP4"], "rows": ["GP10", "GP19", "GP20", "GP18"] diff --git a/keyboards/quokka/rules.mk b/keyboards/quokka/rules.mk index c53818be735..161ec22b16e 100644 --- a/keyboards/quokka/rules.mk +++ b/keyboards/quokka/rules.mk @@ -1,2 +1 @@ -AUDIO_DRIVER = pwm_hardware SERIAL_DRIVER = vendor diff --git a/keyboards/rgbkb/sol3/rev1/keyboard.json b/keyboards/rgbkb/sol3/rev1/keyboard.json index 3b8b7d060c8..83e0a7a9275 100644 --- a/keyboards/rgbkb/sol3/rev1/keyboard.json +++ b/keyboards/rgbkb/sol3/rev1/keyboard.json @@ -24,6 +24,9 @@ "twinkle": true } }, + "audio": { + "driver": "dac_additive" + }, "ws2812": { "pin": "B5", "driver": "pwm" diff --git a/keyboards/rgbkb/sol3/rules.mk b/keyboards/rgbkb/sol3/rules.mk index bf22130a55a..0c48b5d30e4 100644 --- a/keyboards/rgbkb/sol3/rules.mk +++ b/keyboards/rgbkb/sol3/rules.mk @@ -14,7 +14,6 @@ CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = yes # Enable N-Key Rollover AUDIO_ENABLE = yes # Audio output -AUDIO_DRIVER = dac_additive DYNAMIC_MACRO_ENABLE = yes DIP_SWITCH_ENABLE = yes diff --git a/keyboards/tzarc/djinn/info.json b/keyboards/tzarc/djinn/info.json index fddee1c21fd..be0710ebef4 100644 --- a/keyboards/tzarc/djinn/info.json +++ b/keyboards/tzarc/djinn/info.json @@ -31,6 +31,9 @@ "rows": ["B13", "B14", "B15", "C6", "C7", "C8"], "cols": ["C0", "C1", "C2", "C3", "A0", "A1", "A2"] }, + "audio": { + "driver": "pwm_software" + }, "backlight": { "pin": "A7", "levels": 4 diff --git a/keyboards/tzarc/djinn/rules.mk b/keyboards/tzarc/djinn/rules.mk index 5a4589a86fe..78912d16d05 100644 --- a/keyboards/tzarc/djinn/rules.mk +++ b/keyboards/tzarc/djinn/rules.mk @@ -4,8 +4,6 @@ SERIAL_DRIVER = usart CIE1931_CURVE = yes -AUDIO_DRIVER = pwm_software - QUANTUM_PAINTER_DRIVERS = ili9341_spi SRC += \ diff --git a/keyboards/yanghu/unicorne/info.json b/keyboards/yanghu/unicorne/info.json index 504df68fb06..1b890dcabaf 100644 --- a/keyboards/yanghu/unicorne/info.json +++ b/keyboards/yanghu/unicorne/info.json @@ -18,6 +18,9 @@ "oled": true, "rgblight": true }, + "audio": { + "driver": "pwm_hardware" + }, "rgblight": { "led_count": 8, "animations": { diff --git a/keyboards/yanghu/unicorne/rules.mk b/keyboards/yanghu/unicorne/rules.mk index 13cbb6b1e7d..96852c8abfe 100644 --- a/keyboards/yanghu/unicorne/rules.mk +++ b/keyboards/yanghu/unicorne/rules.mk @@ -1,3 +1 @@ -AUDIO_DRIVER = pwm_hardware - DEFAULT_FOLDER = yanghu/unicorne/f411 diff --git a/keyboards/zsa/moonlander/keyboard.json b/keyboards/zsa/moonlander/keyboard.json index 233cb46bba7..08864fe2d77 100644 --- a/keyboards/zsa/moonlander/keyboard.json +++ b/keyboards/zsa/moonlander/keyboard.json @@ -22,6 +22,9 @@ "rgb_matrix": true, "swap_hands": true }, + "audio": { + "driver": "dac_additive" + }, "dynamic_keymap": { "layer_count": 8 }, diff --git a/keyboards/zsa/moonlander/rules.mk b/keyboards/zsa/moonlander/rules.mk index 46375584890..10928ea0611 100644 --- a/keyboards/zsa/moonlander/rules.mk +++ b/keyboards/zsa/moonlander/rules.mk @@ -1,4 +1,3 @@ -AUDIO_DRIVER = dac_additive CUSTOM_MATRIX = lite # project specific files From 2224a768d598fe30bbfb80e11cac6d7704680371 Mon Sep 17 00:00:00 2001 From: Sergey Vlasov Date: Sat, 27 Apr 2024 02:28:29 +0300 Subject: [PATCH 09/55] Fix encoder breakage with 4 or more encoders (#23595) --- quantum/encoder.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quantum/encoder.c b/quantum/encoder.c index 0a48ac9a07b..2ddbf3ee1e0 100644 --- a/quantum/encoder.c +++ b/quantum/encoder.c @@ -83,7 +83,7 @@ bool encoder_task(void) { } bool encoder_queue_full_advanced(encoder_events_t *events) { - return events->head == (events->tail - 1) % MAX_QUEUED_ENCODER_EVENTS; + return events->tail == (events->head + 1) % MAX_QUEUED_ENCODER_EVENTS; } bool encoder_queue_full(void) { From 0ab77cf2e5b8edd78d3ad7bba0f0326bf934ab39 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 26 Apr 2024 19:17:40 -0700 Subject: [PATCH 10/55] Data-Driven Keyboard Conversions: M, Part 2 (#23601) --- .../mechmini/v1/{info.json => keyboard.json} | 8 +++++++ keyboards/mechkeys/mechmini/v1/rules.mk | 10 --------- .../mechmini/v2/{info.json => keyboard.json} | 8 +++++++ keyboards/mechkeys/mechmini/v2/rules.mk | 12 ----------- keyboards/mechstudio/ud_40_ortho/info.json | 6 ++++++ keyboards/mechstudio/ud_40_ortho/rules.mk | 13 ------------ keyboards/mechwild/bde/info.json | 10 --------- keyboards/mechwild/bde/lefty/keyboard.json | 7 +++++++ .../bde/rev2/{info.json => keyboard.json} | 9 ++++++++ keyboards/mechwild/bde/rev2/rules.mk | 2 -- keyboards/mechwild/bde/righty/keyboard.json | 7 +++++++ .../mirrored/{info.json => keyboard.json} | 8 +++++++ keyboards/mechwild/mokulua/mirrored/rules.mk | 14 ------------- .../standard/{info.json => keyboard.json} | 10 ++++++++- keyboards/mechwild/mokulua/standard/rules.mk | 14 ------------- keyboards/mechwild/puckbuddy/info.json | 11 ++++++++++ keyboards/mechwild/puckbuddy/rules.mk | 21 +------------------ .../mechwild/sugarglider/f401/keyboard.json | 17 ++++++++++++++- .../mechwild/sugarglider/f411/keyboard.json | 17 ++++++++++++++- keyboards/mechwild/sugarglider/info.json | 17 ++++----------- keyboards/mechwild/sugarglider/rules.mk | 10 --------- .../sugarglider/wide_oled/f401/keyboard.json | 17 ++++++++++++++- .../sugarglider/wide_oled/f411/keyboard.json | 17 ++++++++++++++- .../mechwild/sugarglider/wide_oled/rules.mk | 2 +- .../merge/uma/{info.json => keyboard.json} | 12 +++++++++++ keyboards/merge/uma/rules.mk | 15 ------------- keyboards/mexsistor/ludmila/info.json | 7 +++++++ keyboards/mexsistor/ludmila/rules.mk | 13 ------------ 28 files changed, 162 insertions(+), 152 deletions(-) rename keyboards/mechkeys/mechmini/v1/{info.json => keyboard.json} (96%) delete mode 100644 keyboards/mechkeys/mechmini/v1/rules.mk rename keyboards/mechkeys/mechmini/v2/{info.json => keyboard.json} (98%) delete mode 100755 keyboards/mechkeys/mechmini/v2/rules.mk rename keyboards/mechwild/bde/rev2/{info.json => keyboard.json} (94%) delete mode 100644 keyboards/mechwild/bde/rev2/rules.mk rename keyboards/mechwild/mokulua/mirrored/{info.json => keyboard.json} (96%) delete mode 100644 keyboards/mechwild/mokulua/mirrored/rules.mk rename keyboards/mechwild/mokulua/standard/{info.json => keyboard.json} (96%) delete mode 100644 keyboards/mechwild/mokulua/standard/rules.mk rename keyboards/merge/uma/{info.json => keyboard.json} (99%) delete mode 100644 keyboards/merge/uma/rules.mk diff --git a/keyboards/mechkeys/mechmini/v1/info.json b/keyboards/mechkeys/mechmini/v1/keyboard.json similarity index 96% rename from keyboards/mechkeys/mechmini/v1/info.json rename to keyboards/mechkeys/mechmini/v1/keyboard.json index 7dda26af254..8d3a4a9b84a 100644 --- a/keyboards/mechkeys/mechmini/v1/info.json +++ b/keyboards/mechkeys/mechmini/v1/keyboard.json @@ -8,6 +8,14 @@ "pid": "0xCA40", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "command": true, + "backlight": true, + "rgblight": true + }, "matrix_pins": { "cols": ["A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "C7", "C6", "C5", "C4"], "rows": ["B0", "B1", "B2", "B3"] diff --git a/keyboards/mechkeys/mechmini/v1/rules.mk b/keyboards/mechkeys/mechmini/v1/rules.mk deleted file mode 100644 index e1dfc317217..00000000000 --- a/keyboards/mechkeys/mechmini/v1/rules.mk +++ /dev/null @@ -1,10 +0,0 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes -EXTRAKEY_ENABLE = yes -CONSOLE_ENABLE = no -COMMAND_ENABLE = yes -BACKLIGHT_ENABLE = yes -RGBLIGHT_ENABLE = yes diff --git a/keyboards/mechkeys/mechmini/v2/info.json b/keyboards/mechkeys/mechmini/v2/keyboard.json similarity index 98% rename from keyboards/mechkeys/mechmini/v2/info.json rename to keyboards/mechkeys/mechmini/v2/keyboard.json index 26d0b930001..da53e842038 100644 --- a/keyboards/mechkeys/mechmini/v2/info.json +++ b/keyboards/mechkeys/mechmini/v2/keyboard.json @@ -8,6 +8,14 @@ "pid": "0xCA40", "device_version": "0.0.2" }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "nkro": true, + "backlight": true, + "rgblight": true + }, "matrix_pins": { "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "B3", "B1", "B0", "D5", "B7", "C7"], "rows": ["D0", "D1", "D2", "D3"] diff --git a/keyboards/mechkeys/mechmini/v2/rules.mk b/keyboards/mechkeys/mechmini/v2/rules.mk deleted file mode 100755 index 3a899c4650b..00000000000 --- a/keyboards/mechkeys/mechmini/v2/rules.mk +++ /dev/null @@ -1,12 +0,0 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -AUDIO_ENABLE = no -RGBLIGHT_ENABLE = yes diff --git a/keyboards/mechstudio/ud_40_ortho/info.json b/keyboards/mechstudio/ud_40_ortho/info.json index 6b301e69e40..31955239f5f 100644 --- a/keyboards/mechstudio/ud_40_ortho/info.json +++ b/keyboards/mechstudio/ud_40_ortho/info.json @@ -8,6 +8,12 @@ "pid": "0x0002", "device_version": "0.0.2" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgblight": true + }, "matrix_pins": { "cols": ["C5", "D0", "B3", "B2", "B1", "B0", "D6", "D5", "D4", "D3", "D2", "D1"], "rows": ["C2", "B4", "B5", "B6"] diff --git a/keyboards/mechstudio/ud_40_ortho/rules.mk b/keyboards/mechstudio/ud_40_ortho/rules.mk index 585ce414dcd..4df55cd2206 100644 --- a/keyboards/mechstudio/ud_40_ortho/rules.mk +++ b/keyboards/mechstudio/ud_40_ortho/rules.mk @@ -1,16 +1,3 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - # Disable unsupported hardware AUDIO_SUPPORTED = no BACKLIGHT_SUPPORTED = no diff --git a/keyboards/mechwild/bde/info.json b/keyboards/mechwild/bde/info.json index e2389455633..918c792aa70 100644 --- a/keyboards/mechwild/bde/info.json +++ b/keyboards/mechwild/bde/info.json @@ -8,16 +8,6 @@ "build": { "lto": true }, - "features": { - "bootmagic": true, - "command": false, - "console": false, - "debug": false, - "extrakey": true, - "mousekey": true, - "rgblight": true, - "nkro": true - }, "development_board": "promicro", "rgblight": { "sleep": true, diff --git a/keyboards/mechwild/bde/lefty/keyboard.json b/keyboards/mechwild/bde/lefty/keyboard.json index c9bcd051954..751a65b1a45 100644 --- a/keyboards/mechwild/bde/lefty/keyboard.json +++ b/keyboards/mechwild/bde/lefty/keyboard.json @@ -4,6 +4,13 @@ "pid": "0x1701", "device_version": "2.0.3" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "nkro": true, + "rgblight": true + }, "matrix_pins": { "rows": ["D1", "D7", "D3"], "cols": ["F7", "B1", "B6", "B2", "B3", "F6", "F5", "F4", "D0", "D4", "C6", "E6", "B5", "B4"] diff --git a/keyboards/mechwild/bde/rev2/info.json b/keyboards/mechwild/bde/rev2/keyboard.json similarity index 94% rename from keyboards/mechwild/bde/rev2/info.json rename to keyboards/mechwild/bde/rev2/keyboard.json index b8b7fc39d06..beb2624f3e3 100644 --- a/keyboards/mechwild/bde/rev2/info.json +++ b/keyboards/mechwild/bde/rev2/keyboard.json @@ -4,6 +4,15 @@ "pid": "0x170A", "device_version": "1.0.1" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "nkro": true, + "rgblight": true, + "encoder": true, + "oled": true + }, "encoder": { "rotary": [ {"pin_a": "D2", "pin_b": "D3"} diff --git a/keyboards/mechwild/bde/rev2/rules.mk b/keyboards/mechwild/bde/rev2/rules.mk deleted file mode 100644 index bade0749fc9..00000000000 --- a/keyboards/mechwild/bde/rev2/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -ENCODER_ENABLE = yes # Enable encoder -OLED_ENABLE = yes # Enable OLED Screen diff --git a/keyboards/mechwild/bde/righty/keyboard.json b/keyboards/mechwild/bde/righty/keyboard.json index 3f254da2861..54a7a4459f0 100644 --- a/keyboards/mechwild/bde/righty/keyboard.json +++ b/keyboards/mechwild/bde/righty/keyboard.json @@ -4,6 +4,13 @@ "pid": "0x1702", "device_version": "2.0.3" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "nkro": true, + "rgblight": true + }, "matrix_pins": { "rows": ["D1", "D7", "D3"], "cols": ["B4", "B5", "E6", "C6", "D4", "D0", "F4", "F5", "F6", "B3", "B2", "B6", "B1", "F7"] diff --git a/keyboards/mechwild/mokulua/mirrored/info.json b/keyboards/mechwild/mokulua/mirrored/keyboard.json similarity index 96% rename from keyboards/mechwild/mokulua/mirrored/info.json rename to keyboards/mechwild/mokulua/mirrored/keyboard.json index ccc2d02b637..be74fabbd32 100644 --- a/keyboards/mechwild/mokulua/mirrored/info.json +++ b/keyboards/mechwild/mokulua/mirrored/keyboard.json @@ -8,6 +8,14 @@ "pid": "0x170C", "device_version": "1.0.3" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgblight": true, + "encoder": true, + "oled": true + }, "matrix_pins": { "cols": ["D4", "C6", "D7", "E6", "B4", "B5"], "rows": ["F4", "F5", "F6", "F7", "B1", "B3"] diff --git a/keyboards/mechwild/mokulua/mirrored/rules.mk b/keyboards/mechwild/mokulua/mirrored/rules.mk deleted file mode 100644 index 1a9045155ba..00000000000 --- a/keyboards/mechwild/mokulua/mirrored/rules.mk +++ /dev/null @@ -1,14 +0,0 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -ENCODER_ENABLE = yes # Enable encoder -OLED_ENABLE = yes # Enable OLED Screen diff --git a/keyboards/mechwild/mokulua/standard/info.json b/keyboards/mechwild/mokulua/standard/keyboard.json similarity index 96% rename from keyboards/mechwild/mokulua/standard/info.json rename to keyboards/mechwild/mokulua/standard/keyboard.json index 5b22023cce3..044573d82c5 100644 --- a/keyboards/mechwild/mokulua/standard/info.json +++ b/keyboards/mechwild/mokulua/standard/keyboard.json @@ -8,6 +8,14 @@ "pid": "0x170B", "device_version": "1.0.3" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgblight": true, + "encoder": true, + "oled": true + }, "matrix_pins": { "cols": ["D4", "C6", "D7", "E6", "B4", "B5"], "rows": ["F4", "F5", "F6", "F7", "B1", "B3"] @@ -22,7 +30,7 @@ "tap_keycode_delay": 10 }, "split": { - "enabled": true + "enabled": true, "soft_serial_pin": "D3", "transport": { "sync": { diff --git a/keyboards/mechwild/mokulua/standard/rules.mk b/keyboards/mechwild/mokulua/standard/rules.mk deleted file mode 100644 index 1a9045155ba..00000000000 --- a/keyboards/mechwild/mokulua/standard/rules.mk +++ /dev/null @@ -1,14 +0,0 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -ENCODER_ENABLE = yes # Enable encoder -OLED_ENABLE = yes # Enable OLED Screen diff --git a/keyboards/mechwild/puckbuddy/info.json b/keyboards/mechwild/puckbuddy/info.json index b430c4af450..4e827d1ba87 100644 --- a/keyboards/mechwild/puckbuddy/info.json +++ b/keyboards/mechwild/puckbuddy/info.json @@ -8,6 +8,17 @@ "pid": "0x170F", "device_version": "1.0.0" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgblight": true, + "encoder": true, + "oled": true, + "dip_switch": true, + "pointing_device": true, + "dynamic_tapping_term": true + }, "matrix_pins": { "cols": ["B10", "A8", "B4", "B5"], "rows": ["B12", "B13", "B14", "B15"] diff --git a/keyboards/mechwild/puckbuddy/rules.mk b/keyboards/mechwild/puckbuddy/rules.mk index 980fe281cff..fb5d6497359 100644 --- a/keyboards/mechwild/puckbuddy/rules.mk +++ b/keyboards/mechwild/puckbuddy/rules.mk @@ -1,20 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -ENCODER_ENABLE = yes # Encoder Enabled -OLED_ENABLE = yes # OLED Enabled -DIP_SWITCH_ENABLE = yes # Dip Switch Enabled - -POINTING_DEVICE_ENABLE = yes # Pointing Device Enabled -POINTING_DEVICE_DRIVER = cirque_pinnacle_spi # Pointing Device Driver - -DYNAMIC_TAPPING_TERM_ENABLE = yes # Enable Dynamic Tapping Term to control the Tap term for the Cirque Pad easily +POINTING_DEVICE_DRIVER = cirque_pinnacle_spi diff --git a/keyboards/mechwild/sugarglider/f401/keyboard.json b/keyboards/mechwild/sugarglider/f401/keyboard.json index 797e9900595..7bf58c1b45e 100644 --- a/keyboards/mechwild/sugarglider/f401/keyboard.json +++ b/keyboards/mechwild/sugarglider/f401/keyboard.json @@ -1,3 +1,18 @@ { - "development_board": "blackpill_f401" + "development_board": "blackpill_f401", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true, + "rgblight": true, + "encoder": true, + "dip_switch": true, + "steno": true, + "oled": true, + "pointing_device": true, + "dynamic_tapping_term": true + } } diff --git a/keyboards/mechwild/sugarglider/f411/keyboard.json b/keyboards/mechwild/sugarglider/f411/keyboard.json index a41c5f4dd14..dd76af1f10e 100644 --- a/keyboards/mechwild/sugarglider/f411/keyboard.json +++ b/keyboards/mechwild/sugarglider/f411/keyboard.json @@ -1,3 +1,18 @@ { - "development_board": "blackpill_f411" + "development_board": "blackpill_f411", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true, + "rgblight": true, + "encoder": true, + "dip_switch": true, + "steno": true, + "oled": true, + "pointing_device": true, + "dynamic_tapping_term": true + } } diff --git a/keyboards/mechwild/sugarglider/info.json b/keyboards/mechwild/sugarglider/info.json index 749b0952cbd..80004f35d14 100644 --- a/keyboards/mechwild/sugarglider/info.json +++ b/keyboards/mechwild/sugarglider/info.json @@ -3,23 +3,14 @@ "keyboard_name": "Sugar Glider", "maintainer": "kylemccreery", "url": "https://mechwild.com/product/sugar-glider/", - "features": { - "bootmagic": true, - "command": false, - "console": false, - "extrakey": true, - "mousekey": true, - "nkro": true, - "encoder": true, - "rgblight": true, - "dip_switch": true, - "steno": true - }, "usb": { "vid": "0x6D77", "pid": "0x1710", "device_version": "0.2.0", - "force_nkro": true + "force_nkro": true, + "shared_endpoint": { + "keyboard": true + } }, "diode_direction": "COL2ROW", "dynamic_keymap": { diff --git a/keyboards/mechwild/sugarglider/rules.mk b/keyboards/mechwild/sugarglider/rules.mk index 6fd0836a733..a01a95a8685 100644 --- a/keyboards/mechwild/sugarglider/rules.mk +++ b/keyboards/mechwild/sugarglider/rules.mk @@ -1,12 +1,5 @@ -# Build Options -# change yes to no to disable -# -OLED_ENABLE = yes # OLED Enabled - # Cirque touchpad settings -POINTING_DEVICE_ENABLE = yes # Pointing Device Enabled POINTING_DEVICE_DRIVER = cirque_pinnacle_spi # Pointing Device Driver -DYNAMIC_TAPPING_TERM_ENABLE = yes # Enable Dynamic Tapping Term to control the Tap term for the Cirque Pad easily # Custom matrix setup CUSTOM_MATRIX = lite @@ -16,6 +9,3 @@ SRC += mcp23018.c matrix.c I2C_DRIVER_REQUIRED = yes DEFAULT_FOLDER = mechwild/sugarglider/wide_oled - -# Necessary for stenography functionality -KEYBOARD_SHARED_EP = yes # Needed to free up an endpoint in blackpill diff --git a/keyboards/mechwild/sugarglider/wide_oled/f401/keyboard.json b/keyboards/mechwild/sugarglider/wide_oled/f401/keyboard.json index 797e9900595..7bf58c1b45e 100644 --- a/keyboards/mechwild/sugarglider/wide_oled/f401/keyboard.json +++ b/keyboards/mechwild/sugarglider/wide_oled/f401/keyboard.json @@ -1,3 +1,18 @@ { - "development_board": "blackpill_f401" + "development_board": "blackpill_f401", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true, + "rgblight": true, + "encoder": true, + "dip_switch": true, + "steno": true, + "oled": true, + "pointing_device": true, + "dynamic_tapping_term": true + } } diff --git a/keyboards/mechwild/sugarglider/wide_oled/f411/keyboard.json b/keyboards/mechwild/sugarglider/wide_oled/f411/keyboard.json index a41c5f4dd14..dd76af1f10e 100644 --- a/keyboards/mechwild/sugarglider/wide_oled/f411/keyboard.json +++ b/keyboards/mechwild/sugarglider/wide_oled/f411/keyboard.json @@ -1,3 +1,18 @@ { - "development_board": "blackpill_f411" + "development_board": "blackpill_f411", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true, + "rgblight": true, + "encoder": true, + "dip_switch": true, + "steno": true, + "oled": true, + "pointing_device": true, + "dynamic_tapping_term": true + } } diff --git a/keyboards/mechwild/sugarglider/wide_oled/rules.mk b/keyboards/mechwild/sugarglider/wide_oled/rules.mk index 193169239b2..23e6cab873a 100644 --- a/keyboards/mechwild/sugarglider/wide_oled/rules.mk +++ b/keyboards/mechwild/sugarglider/wide_oled/rules.mk @@ -3,4 +3,4 @@ # WIDE_OLED_ENABLE = yes -DEFAULT_FOLDER = mechwild/sugarglider/wide_oled/f401 \ No newline at end of file +DEFAULT_FOLDER = mechwild/sugarglider/wide_oled/f401 diff --git a/keyboards/merge/uma/info.json b/keyboards/merge/uma/keyboard.json similarity index 99% rename from keyboards/merge/uma/info.json rename to keyboards/merge/uma/keyboard.json index 6413480391e..d5fea75fb49 100644 --- a/keyboards/merge/uma/info.json +++ b/keyboards/merge/uma/keyboard.json @@ -8,6 +8,18 @@ "pid": "0x3232", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "nkro": true, + "backlight": true, + "encoder": true, + "oled": true + }, + "build": { + "lto": true + }, "matrix_pins": { "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "D6", "D4"], "rows": ["B0", "B1", "B2", "B3", "B7"] diff --git a/keyboards/merge/uma/rules.mk b/keyboards/merge/uma/rules.mk deleted file mode 100644 index e146f96ce6f..00000000000 --- a/keyboards/merge/uma/rules.mk +++ /dev/null @@ -1,15 +0,0 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -ENCODER_ENABLE = yes -LTO_ENABLE = yes -OLED_ENABLE = yes diff --git a/keyboards/mexsistor/ludmila/info.json b/keyboards/mexsistor/ludmila/info.json index 6e44d33913c..71202208c5f 100644 --- a/keyboards/mexsistor/ludmila/info.json +++ b/keyboards/mexsistor/ludmila/info.json @@ -8,6 +8,13 @@ "pid": "0x6BF6", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgblight": true, + "encoder": true + }, "encoder": { "rotary": [ {"pin_a": "F6", "pin_b": "F5"} diff --git a/keyboards/mexsistor/ludmila/rules.mk b/keyboards/mexsistor/ludmila/rules.mk index 547c4ad49c9..73766740561 100644 --- a/keyboards/mexsistor/ludmila/rules.mk +++ b/keyboards/mexsistor/ludmila/rules.mk @@ -1,15 +1,2 @@ -# Build Options -# change yes to no to disable -# CUSTOM_MATRIX = lite SRC = matrix.c -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output -ENCODER_ENABLE = yes From 569be5951e94c59138a172871f4213ec802e6877 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat, 27 Apr 2024 05:26:23 -0700 Subject: [PATCH 11/55] Data-Driven Keyboard Conversions: BastardKB (#23622) --- .../charybdis/3x5/blackpill/info.json | 12 +++++++++++- .../charybdis/3x5/blackpill/rules.mk | 17 ----------------- .../charybdis/3x5/v1/elitec/info.json | 10 ++++++++++ .../charybdis/3x5/v1/elitec/rules.mk | 19 ------------------- .../charybdis/3x5/v2/elitec/info.json | 10 ++++++++++ .../charybdis/3x5/v2/elitec/rules.mk | 19 ------------------- .../charybdis/3x5/v2/splinky_2/info.json | 7 +++++++ .../charybdis/3x5/v2/splinky_2/rules.mk | 15 --------------- .../charybdis/3x5/v2/splinky_3/info.json | 7 +++++++ .../charybdis/3x5/v2/splinky_3/rules.mk | 15 --------------- .../charybdis/3x5/v2/stemcell/info.json | 12 +++++++++++- .../charybdis/3x5/v2/stemcell/rules.mk | 16 ---------------- .../charybdis/3x6/blackpill/info.json | 12 +++++++++++- .../charybdis/3x6/blackpill/rules.mk | 16 ---------------- .../charybdis/3x6/v1/elitec/info.json | 10 ++++++++++ .../charybdis/3x6/v1/elitec/rules.mk | 19 ------------------- .../charybdis/3x6/v2/elitec/info.json | 10 ++++++++++ .../charybdis/3x6/v2/elitec/rules.mk | 19 ------------------- .../charybdis/3x6/v2/splinky_2/info.json | 7 +++++++ .../charybdis/3x6/v2/splinky_2/rules.mk | 15 --------------- .../charybdis/3x6/v2/splinky_3/info.json | 7 +++++++ .../charybdis/3x6/v2/splinky_3/rules.mk | 15 --------------- .../charybdis/3x6/v2/stemcell/info.json | 12 +++++++++++- .../charybdis/3x6/v2/stemcell/rules.mk | 16 ---------------- .../charybdis/4x6/blackpill/info.json | 12 +++++++++++- .../charybdis/4x6/blackpill/rules.mk | 16 ---------------- .../charybdis/4x6/v1/elitec/info.json | 10 ++++++++++ .../charybdis/4x6/v1/elitec/rules.mk | 19 ------------------- .../charybdis/4x6/v2/elitec/info.json | 10 ++++++++++ .../charybdis/4x6/v2/elitec/rules.mk | 19 ------------------- .../charybdis/4x6/v2/splinky_2/info.json | 7 +++++++ .../charybdis/4x6/v2/splinky_2/rules.mk | 15 --------------- .../charybdis/4x6/v2/splinky_3/info.json | 7 +++++++ .../charybdis/4x6/v2/splinky_3/rules.mk | 15 --------------- .../charybdis/4x6/v2/stemcell/info.json | 12 +++++++++++- .../charybdis/4x6/v2/stemcell/rules.mk | 16 ---------------- .../dilemma/3x5_2/assembled/info.json | 6 ++++++ .../dilemma/3x5_2/assembled/rules.mk | 15 --------------- .../bastardkb/dilemma/3x5_2/splinky/info.json | 6 ++++++ .../bastardkb/dilemma/3x5_2/splinky/rules.mk | 15 --------------- keyboards/bastardkb/dilemma/3x5_3/info.json | 1 + keyboards/bastardkb/dilemma/3x5_3/rules.mk | 1 - keyboards/bastardkb/dilemma/4x6_4/info.json | 1 + keyboards/bastardkb/dilemma/4x6_4/rules.mk | 1 - .../bastardkb/scylla/blackpill/info.json | 11 ++++++++++- keyboards/bastardkb/scylla/blackpill/rules.mk | 15 --------------- .../bastardkb/scylla/v1/elitec/info.json | 6 ++++++ keyboards/bastardkb/scylla/v1/elitec/rules.mk | 14 -------------- .../bastardkb/scylla/v2/elitec/info.json | 6 ++++++ keyboards/bastardkb/scylla/v2/elitec/rules.mk | 14 -------------- .../bastardkb/scylla/v2/splinky_2/info.json | 6 ++++++ .../bastardkb/scylla/v2/splinky_2/rules.mk | 14 -------------- .../bastardkb/scylla/v2/splinky_3/info.json | 6 ++++++ .../bastardkb/scylla/v2/splinky_3/rules.mk | 14 -------------- .../bastardkb/scylla/v2/stemcell/info.json | 6 ++++++ .../bastardkb/scylla/v2/stemcell/rules.mk | 14 -------------- .../bastardkb/skeletyl/blackpill/info.json | 11 ++++++++++- .../bastardkb/skeletyl/blackpill/rules.mk | 15 --------------- .../bastardkb/skeletyl/v1/elitec/info.json | 6 ++++++ .../bastardkb/skeletyl/v1/elitec/rules.mk | 14 -------------- .../bastardkb/skeletyl/v2/elitec/info.json | 6 ++++++ .../bastardkb/skeletyl/v2/elitec/rules.mk | 14 -------------- .../bastardkb/skeletyl/v2/splinky_2/info.json | 6 ++++++ .../bastardkb/skeletyl/v2/splinky_2/rules.mk | 14 -------------- .../bastardkb/skeletyl/v2/splinky_3/info.json | 6 ++++++ .../bastardkb/skeletyl/v2/splinky_3/rules.mk | 14 -------------- .../bastardkb/skeletyl/v2/stemcell/info.json | 6 ++++++ .../bastardkb/skeletyl/v2/stemcell/rules.mk | 14 -------------- .../bastardkb/tbkmini/blackpill/info.json | 11 ++++++++++- .../bastardkb/tbkmini/blackpill/rules.mk | 15 --------------- .../bastardkb/tbkmini/v1/elitec/info.json | 6 ++++++ .../bastardkb/tbkmini/v1/elitec/rules.mk | 14 -------------- .../bastardkb/tbkmini/v2/elitec/info.json | 6 ++++++ .../bastardkb/tbkmini/v2/elitec/rules.mk | 14 -------------- .../bastardkb/tbkmini/v2/splinky_2/info.json | 6 ++++++ .../bastardkb/tbkmini/v2/splinky_2/rules.mk | 14 -------------- .../bastardkb/tbkmini/v2/splinky_3/info.json | 6 ++++++ .../bastardkb/tbkmini/v2/splinky_3/rules.mk | 14 -------------- .../bastardkb/tbkmini/v2/stemcell/info.json | 6 ++++++ .../bastardkb/tbkmini/v2/stemcell/rules.mk | 14 -------------- 80 files changed, 302 insertions(+), 597 deletions(-) diff --git a/keyboards/bastardkb/charybdis/3x5/blackpill/info.json b/keyboards/bastardkb/charybdis/3x5/blackpill/info.json index 1af57cca9a4..bcc57981b51 100644 --- a/keyboards/bastardkb/charybdis/3x5/blackpill/info.json +++ b/keyboards/bastardkb/charybdis/3x5/blackpill/info.json @@ -1,7 +1,17 @@ { "keyboard_name": "Charybdis Nano (3x5) Blackpill", "usb": { - "device_version": "1.0.0" + "device_version": "1.0.0", + "shared_endpoint": { + "keyboard": true + } + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true }, "eeprom": { "driver": "spi" diff --git a/keyboards/bastardkb/charybdis/3x5/blackpill/rules.mk b/keyboards/bastardkb/charybdis/3x5/blackpill/rules.mk index d6eda5c2d10..c8d355efb78 100644 --- a/keyboards/bastardkb/charybdis/3x5/blackpill/rules.mk +++ b/keyboards/bastardkb/charybdis/3x5/blackpill/rules.mk @@ -1,22 +1,5 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality -POINTING_DEVICE_ENABLE = yes # Enable trackball POINTING_DEVICE_DRIVER = pmw3360 MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint -KEYBOARD_SHARED_EP = yes - SERIAL_DRIVER = usart diff --git a/keyboards/bastardkb/charybdis/3x5/v1/elitec/info.json b/keyboards/bastardkb/charybdis/3x5/v1/elitec/info.json index 05be6acde22..4a94d023d46 100644 --- a/keyboards/bastardkb/charybdis/3x5/v1/elitec/info.json +++ b/keyboards/bastardkb/charybdis/3x5/v1/elitec/info.json @@ -3,6 +3,16 @@ "usb": { "device_version": "1.0.0" }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true + }, + "build": { + "lto": true + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/bastardkb/charybdis/3x5/v1/elitec/rules.mk b/keyboards/bastardkb/charybdis/3x5/v1/elitec/rules.mk index 7f2338227af..17dae28bd1c 100644 --- a/keyboards/bastardkb/charybdis/3x5/v1/elitec/rules.mk +++ b/keyboards/bastardkb/charybdis/3x5/v1/elitec/rules.mk @@ -1,23 +1,4 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality -POINTING_DEVICE_ENABLE = yes # Enable trackball POINTING_DEVICE_DRIVER = pmw3360 MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint - -# Enable link-time optimization by default. The Charybdis packs a lot of -# features (RGB, Via, trackball) in a small atmega32u4 package. -LTO_ENABLE = yes diff --git a/keyboards/bastardkb/charybdis/3x5/v2/elitec/info.json b/keyboards/bastardkb/charybdis/3x5/v2/elitec/info.json index 61d953ec8f6..bc95061ced9 100644 --- a/keyboards/bastardkb/charybdis/3x5/v2/elitec/info.json +++ b/keyboards/bastardkb/charybdis/3x5/v2/elitec/info.json @@ -3,6 +3,16 @@ "usb": { "device_version": "2.0.0" }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true + }, + "build": { + "lto": true + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/bastardkb/charybdis/3x5/v2/elitec/rules.mk b/keyboards/bastardkb/charybdis/3x5/v2/elitec/rules.mk index 7f2338227af..17dae28bd1c 100644 --- a/keyboards/bastardkb/charybdis/3x5/v2/elitec/rules.mk +++ b/keyboards/bastardkb/charybdis/3x5/v2/elitec/rules.mk @@ -1,23 +1,4 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality -POINTING_DEVICE_ENABLE = yes # Enable trackball POINTING_DEVICE_DRIVER = pmw3360 MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint - -# Enable link-time optimization by default. The Charybdis packs a lot of -# features (RGB, Via, trackball) in a small atmega32u4 package. -LTO_ENABLE = yes diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/info.json b/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/info.json index f7dd9d2c7e2..cc990d3f210 100644 --- a/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/info.json +++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/info.json @@ -3,6 +3,13 @@ "usb": { "device_version": "2.0.0" }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true + }, "rgb_matrix": { "driver": "ws2812" }, diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/rules.mk b/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/rules.mk index 8753565dfbc..db29cb6789b 100644 --- a/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/rules.mk +++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/rules.mk @@ -1,20 +1,5 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality -POINTING_DEVICE_ENABLE = yes # Enable trackball POINTING_DEVICE_DRIVER = pmw3360 SERIAL_DRIVER = vendor diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/info.json b/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/info.json index 33fda9c2a47..6719b211968 100644 --- a/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/info.json +++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/info.json @@ -3,6 +3,13 @@ "usb": { "device_version": "2.0.0" }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true + }, "rgb_matrix": { "driver": "ws2812" }, diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/rules.mk b/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/rules.mk index 8753565dfbc..db29cb6789b 100644 --- a/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/rules.mk +++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/rules.mk @@ -1,20 +1,5 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality -POINTING_DEVICE_ENABLE = yes # Enable trackball POINTING_DEVICE_DRIVER = pmw3360 SERIAL_DRIVER = vendor diff --git a/keyboards/bastardkb/charybdis/3x5/v2/stemcell/info.json b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/info.json index cf9cf2eb62d..2de77b07f0c 100644 --- a/keyboards/bastardkb/charybdis/3x5/v2/stemcell/info.json +++ b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/info.json @@ -1,7 +1,17 @@ { "keyboard_name": "Charybdis Nano (3x5) STeMCell", "usb": { - "device_version": "2.0.0" + "device_version": "2.0.0", + "shared_endpoint": { + "keyboard": true + } + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true }, "rgb_matrix": { "driver": "ws2812" diff --git a/keyboards/bastardkb/charybdis/3x5/v2/stemcell/rules.mk b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/rules.mk index d6eda5c2d10..4373b9c33d2 100644 --- a/keyboards/bastardkb/charybdis/3x5/v2/stemcell/rules.mk +++ b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/rules.mk @@ -1,22 +1,6 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality -POINTING_DEVICE_ENABLE = yes # Enable trackball POINTING_DEVICE_DRIVER = pmw3360 MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint -KEYBOARD_SHARED_EP = yes SERIAL_DRIVER = usart diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/info.json b/keyboards/bastardkb/charybdis/3x6/blackpill/info.json index 51f9c5dbea5..ecefbbeb999 100644 --- a/keyboards/bastardkb/charybdis/3x6/blackpill/info.json +++ b/keyboards/bastardkb/charybdis/3x6/blackpill/info.json @@ -1,7 +1,17 @@ { "keyboard_name": "Charybdis Mini (3x6) Blackpill", "usb": { - "device_version": "1.0.0" + "device_version": "1.0.0", + "shared_endpoint": { + "keyboard": true + } + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true }, "eeprom": { "driver": "spi" diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/rules.mk b/keyboards/bastardkb/charybdis/3x6/blackpill/rules.mk index d6eda5c2d10..4373b9c33d2 100644 --- a/keyboards/bastardkb/charybdis/3x6/blackpill/rules.mk +++ b/keyboards/bastardkb/charybdis/3x6/blackpill/rules.mk @@ -1,22 +1,6 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality -POINTING_DEVICE_ENABLE = yes # Enable trackball POINTING_DEVICE_DRIVER = pmw3360 MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint -KEYBOARD_SHARED_EP = yes SERIAL_DRIVER = usart diff --git a/keyboards/bastardkb/charybdis/3x6/v1/elitec/info.json b/keyboards/bastardkb/charybdis/3x6/v1/elitec/info.json index 8bc6a86eaf1..dcc454366c6 100644 --- a/keyboards/bastardkb/charybdis/3x6/v1/elitec/info.json +++ b/keyboards/bastardkb/charybdis/3x6/v1/elitec/info.json @@ -3,6 +3,16 @@ "usb": { "device_version": "1.0.0" }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true + }, + "build": { + "lto": true + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/bastardkb/charybdis/3x6/v1/elitec/rules.mk b/keyboards/bastardkb/charybdis/3x6/v1/elitec/rules.mk index 7f2338227af..17dae28bd1c 100644 --- a/keyboards/bastardkb/charybdis/3x6/v1/elitec/rules.mk +++ b/keyboards/bastardkb/charybdis/3x6/v1/elitec/rules.mk @@ -1,23 +1,4 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality -POINTING_DEVICE_ENABLE = yes # Enable trackball POINTING_DEVICE_DRIVER = pmw3360 MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint - -# Enable link-time optimization by default. The Charybdis packs a lot of -# features (RGB, Via, trackball) in a small atmega32u4 package. -LTO_ENABLE = yes diff --git a/keyboards/bastardkb/charybdis/3x6/v2/elitec/info.json b/keyboards/bastardkb/charybdis/3x6/v2/elitec/info.json index 13283d5b8fa..ce74b2dc6df 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/elitec/info.json +++ b/keyboards/bastardkb/charybdis/3x6/v2/elitec/info.json @@ -3,6 +3,16 @@ "usb": { "device_version": "2.0.0" }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true + }, + "build": { + "lto": true + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/bastardkb/charybdis/3x6/v2/elitec/rules.mk b/keyboards/bastardkb/charybdis/3x6/v2/elitec/rules.mk index 7f2338227af..17dae28bd1c 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/elitec/rules.mk +++ b/keyboards/bastardkb/charybdis/3x6/v2/elitec/rules.mk @@ -1,23 +1,4 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality -POINTING_DEVICE_ENABLE = yes # Enable trackball POINTING_DEVICE_DRIVER = pmw3360 MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint - -# Enable link-time optimization by default. The Charybdis packs a lot of -# features (RGB, Via, trackball) in a small atmega32u4 package. -LTO_ENABLE = yes diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/info.json b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/info.json index 8dcc8187abb..825508475c9 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/info.json +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/info.json @@ -3,6 +3,13 @@ "usb": { "device_version": "2.0.0" }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true + }, "rgb_matrix": { "driver": "ws2812" }, diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/rules.mk b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/rules.mk index 8753565dfbc..db29cb6789b 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/rules.mk +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/rules.mk @@ -1,20 +1,5 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality -POINTING_DEVICE_ENABLE = yes # Enable trackball POINTING_DEVICE_DRIVER = pmw3360 SERIAL_DRIVER = vendor diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/info.json b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/info.json index 288e08b9ee9..4d9cfb616d8 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/info.json +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/info.json @@ -3,6 +3,13 @@ "usb": { "device_version": "2.0.0" }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true + }, "rgb_matrix": { "driver": "ws2812" }, diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/rules.mk b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/rules.mk index 8753565dfbc..db29cb6789b 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/rules.mk +++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/rules.mk @@ -1,20 +1,5 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality -POINTING_DEVICE_ENABLE = yes # Enable trackball POINTING_DEVICE_DRIVER = pmw3360 SERIAL_DRIVER = vendor diff --git a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/info.json b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/info.json index c09c9c90ca0..05d82b2445b 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/info.json +++ b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/info.json @@ -1,7 +1,17 @@ { "keyboard_name": "Charybdis Mini (3x6) STeMCell", "usb": { - "device_version": "2.0.0" + "device_version": "2.0.0", + "shared_endpoint": { + "keyboard": true + } + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true }, "rgb_matrix": { "driver": "ws2812" diff --git a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/rules.mk b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/rules.mk index d6eda5c2d10..4373b9c33d2 100644 --- a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/rules.mk +++ b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/rules.mk @@ -1,22 +1,6 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality -POINTING_DEVICE_ENABLE = yes # Enable trackball POINTING_DEVICE_DRIVER = pmw3360 MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint -KEYBOARD_SHARED_EP = yes SERIAL_DRIVER = usart diff --git a/keyboards/bastardkb/charybdis/4x6/blackpill/info.json b/keyboards/bastardkb/charybdis/4x6/blackpill/info.json index 86df4839fc9..b55dc29445b 100644 --- a/keyboards/bastardkb/charybdis/4x6/blackpill/info.json +++ b/keyboards/bastardkb/charybdis/4x6/blackpill/info.json @@ -1,7 +1,17 @@ { "keyboard_name": "Charybdis (4x6) Blackpill", "usb": { - "device_version": "1.0.0" + "device_version": "1.0.0", + "shared_endpoint": { + "keyboard": true + } + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true }, "eeprom": { "driver": "spi" diff --git a/keyboards/bastardkb/charybdis/4x6/blackpill/rules.mk b/keyboards/bastardkb/charybdis/4x6/blackpill/rules.mk index 9e797122a74..3caafdef92b 100644 --- a/keyboards/bastardkb/charybdis/4x6/blackpill/rules.mk +++ b/keyboards/bastardkb/charybdis/4x6/blackpill/rules.mk @@ -1,22 +1,6 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported. -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality -POINTING_DEVICE_ENABLE = yes # Enable trackball POINTING_DEVICE_DRIVER = pmw3360 MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint -KEYBOARD_SHARED_EP = yes SERIAL_DRIVER = usart diff --git a/keyboards/bastardkb/charybdis/4x6/v1/elitec/info.json b/keyboards/bastardkb/charybdis/4x6/v1/elitec/info.json index 3419eaea8b7..b90b144c8b8 100644 --- a/keyboards/bastardkb/charybdis/4x6/v1/elitec/info.json +++ b/keyboards/bastardkb/charybdis/4x6/v1/elitec/info.json @@ -3,6 +3,16 @@ "usb": { "device_version": "1.0.0" }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true + }, + "build": { + "lto": true + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/bastardkb/charybdis/4x6/v1/elitec/rules.mk b/keyboards/bastardkb/charybdis/4x6/v1/elitec/rules.mk index 808675da02b..0e4d15d5bc8 100644 --- a/keyboards/bastardkb/charybdis/4x6/v1/elitec/rules.mk +++ b/keyboards/bastardkb/charybdis/4x6/v1/elitec/rules.mk @@ -1,23 +1,4 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported. -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality -POINTING_DEVICE_ENABLE = yes # Enable trackball POINTING_DEVICE_DRIVER = pmw3360 MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint - -# Enable link-time optimization by default. The Charybdis packs a lot of -# features (RGB, Via, trackball) in a small atmega32u4 package. -LTO_ENABLE = yes diff --git a/keyboards/bastardkb/charybdis/4x6/v2/elitec/info.json b/keyboards/bastardkb/charybdis/4x6/v2/elitec/info.json index bb892c4e6ec..8ae66d083b4 100644 --- a/keyboards/bastardkb/charybdis/4x6/v2/elitec/info.json +++ b/keyboards/bastardkb/charybdis/4x6/v2/elitec/info.json @@ -3,6 +3,16 @@ "usb": { "device_version": "2.0.0" }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true + }, + "build": { + "lto": true + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/bastardkb/charybdis/4x6/v2/elitec/rules.mk b/keyboards/bastardkb/charybdis/4x6/v2/elitec/rules.mk index 808675da02b..0e4d15d5bc8 100644 --- a/keyboards/bastardkb/charybdis/4x6/v2/elitec/rules.mk +++ b/keyboards/bastardkb/charybdis/4x6/v2/elitec/rules.mk @@ -1,23 +1,4 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported. -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality -POINTING_DEVICE_ENABLE = yes # Enable trackball POINTING_DEVICE_DRIVER = pmw3360 MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint - -# Enable link-time optimization by default. The Charybdis packs a lot of -# features (RGB, Via, trackball) in a small atmega32u4 package. -LTO_ENABLE = yes diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/info.json b/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/info.json index 48a2eb51584..b0c98389f7f 100644 --- a/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/info.json +++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/info.json @@ -3,6 +3,13 @@ "usb": { "device_version": "2.0.0" }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true + }, "rgb_matrix": { "driver": "ws2812" }, diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/rules.mk b/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/rules.mk index 8753565dfbc..db29cb6789b 100644 --- a/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/rules.mk +++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/rules.mk @@ -1,20 +1,5 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality -POINTING_DEVICE_ENABLE = yes # Enable trackball POINTING_DEVICE_DRIVER = pmw3360 SERIAL_DRIVER = vendor diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/info.json b/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/info.json index 72aa8b59c6e..1e072db85b0 100644 --- a/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/info.json +++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/info.json @@ -3,6 +3,13 @@ "usb": { "device_version": "2.0.0" }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true + }, "rgb_matrix": { "driver": "ws2812" }, diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/rules.mk b/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/rules.mk index 8753565dfbc..db29cb6789b 100644 --- a/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/rules.mk +++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/rules.mk @@ -1,20 +1,5 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality -POINTING_DEVICE_ENABLE = yes # Enable trackball POINTING_DEVICE_DRIVER = pmw3360 SERIAL_DRIVER = vendor diff --git a/keyboards/bastardkb/charybdis/4x6/v2/stemcell/info.json b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/info.json index d49755a861a..ab145e0f95c 100644 --- a/keyboards/bastardkb/charybdis/4x6/v2/stemcell/info.json +++ b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/info.json @@ -1,7 +1,17 @@ { "keyboard_name": "Charybdis (4x6) STeMCell", "usb": { - "device_version": "2.0.0" + "device_version": "2.0.0", + "shared_endpoint": { + "keyboard": true + } + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true, + "pointing_device": true }, "rgb_matrix": { "driver": "ws2812" diff --git a/keyboards/bastardkb/charybdis/4x6/v2/stemcell/rules.mk b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/rules.mk index d6eda5c2d10..4373b9c33d2 100644 --- a/keyboards/bastardkb/charybdis/4x6/v2/stemcell/rules.mk +++ b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/rules.mk @@ -1,22 +1,6 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality -POINTING_DEVICE_ENABLE = yes # Enable trackball POINTING_DEVICE_DRIVER = pmw3360 MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint -KEYBOARD_SHARED_EP = yes SERIAL_DRIVER = usart diff --git a/keyboards/bastardkb/dilemma/3x5_2/assembled/info.json b/keyboards/bastardkb/dilemma/3x5_2/assembled/info.json index 2190d542c2c..ac52a86eb51 100644 --- a/keyboards/bastardkb/dilemma/3x5_2/assembled/info.json +++ b/keyboards/bastardkb/dilemma/3x5_2/assembled/info.json @@ -1,5 +1,11 @@ { "keyboard_name": "Dilemma (3x5+2) Assembled", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "pointing_device": true + }, "matrix_pins": { "cols": ["GP8", "GP9", "GP7", "GP6", "GP27"], "rows": ["GP4", "GP5", "GP28", "GP26"] diff --git a/keyboards/bastardkb/dilemma/3x5_2/assembled/rules.mk b/keyboards/bastardkb/dilemma/3x5_2/assembled/rules.mk index b54403222b4..48216ee8b71 100644 --- a/keyboards/bastardkb/dilemma/3x5_2/assembled/rules.mk +++ b/keyboards/bastardkb/dilemma/3x5_2/assembled/rules.mk @@ -1,22 +1,7 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported RGB_MATRIX_SUPPORTED = no # RGB matrix is supported and enabled by default RGBLIGHT_SUPPORTED = no # RGB underglow is supported, but not enabled by default -RGB_MATRIX_ENABLE = no # Enable keyboard RGB matrix functionality SERIAL_DRIVER = vendor -POINTING_DEVICE_ENABLE = yes POINTING_DEVICE_DRIVER = cirque_pinnacle_spi # Assembled version uses SPI. diff --git a/keyboards/bastardkb/dilemma/3x5_2/splinky/info.json b/keyboards/bastardkb/dilemma/3x5_2/splinky/info.json index 9e07843788f..3c4c559cb6e 100644 --- a/keyboards/bastardkb/dilemma/3x5_2/splinky/info.json +++ b/keyboards/bastardkb/dilemma/3x5_2/splinky/info.json @@ -1,5 +1,11 @@ { "keyboard_name": "Dilemma (3x5+2) Splinky", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "pointing_device": true + }, "matrix_pins": { "cols": ["GP8", "GP9", "GP7", "GP6", "GP27"], "rows": ["GP4", "GP5", "GP28", "GP26"] diff --git a/keyboards/bastardkb/dilemma/3x5_2/splinky/rules.mk b/keyboards/bastardkb/dilemma/3x5_2/splinky/rules.mk index 0de2c9a8071..942028da2c0 100644 --- a/keyboards/bastardkb/dilemma/3x5_2/splinky/rules.mk +++ b/keyboards/bastardkb/dilemma/3x5_2/splinky/rules.mk @@ -1,22 +1,7 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported RGB_MATRIX_SUPPORTED = no # RGB matrix is supported and enabled by default RGBLIGHT_SUPPORTED = no # RGB underglow is supported, but not enabled by default -RGB_MATRIX_ENABLE = no # Enable keyboard RGB matrix functionality SERIAL_DRIVER = vendor -POINTING_DEVICE_ENABLE = yes POINTING_DEVICE_DRIVER = cirque_pinnacle_i2c # DIY version uses I2C. diff --git a/keyboards/bastardkb/dilemma/3x5_3/info.json b/keyboards/bastardkb/dilemma/3x5_3/info.json index 2da4f1785e2..12e336f023b 100644 --- a/keyboards/bastardkb/dilemma/3x5_3/info.json +++ b/keyboards/bastardkb/dilemma/3x5_3/info.json @@ -38,6 +38,7 @@ "mousekey": true, "nkro": true, "rgb_matrix": true, + "pointing_device": true, "caps_word": true, "tri_layer": true }, diff --git a/keyboards/bastardkb/dilemma/3x5_3/rules.mk b/keyboards/bastardkb/dilemma/3x5_3/rules.mk index 4923c2c84a5..60776009483 100644 --- a/keyboards/bastardkb/dilemma/3x5_3/rules.mk +++ b/keyboards/bastardkb/dilemma/3x5_3/rules.mk @@ -1,4 +1,3 @@ SERIAL_DRIVER = vendor -POINTING_DEVICE_ENABLE = yes POINTING_DEVICE_DRIVER = cirque_pinnacle_spi diff --git a/keyboards/bastardkb/dilemma/4x6_4/info.json b/keyboards/bastardkb/dilemma/4x6_4/info.json index cc8c30b5105..7e40208a5db 100644 --- a/keyboards/bastardkb/dilemma/4x6_4/info.json +++ b/keyboards/bastardkb/dilemma/4x6_4/info.json @@ -38,6 +38,7 @@ "mousekey": true, "nkro": true, "rgb_matrix": true, + "pointing_device": true, "caps_word": true, "tri_layer": true }, diff --git a/keyboards/bastardkb/dilemma/4x6_4/rules.mk b/keyboards/bastardkb/dilemma/4x6_4/rules.mk index 4923c2c84a5..60776009483 100644 --- a/keyboards/bastardkb/dilemma/4x6_4/rules.mk +++ b/keyboards/bastardkb/dilemma/4x6_4/rules.mk @@ -1,4 +1,3 @@ SERIAL_DRIVER = vendor -POINTING_DEVICE_ENABLE = yes POINTING_DEVICE_DRIVER = cirque_pinnacle_spi diff --git a/keyboards/bastardkb/scylla/blackpill/info.json b/keyboards/bastardkb/scylla/blackpill/info.json index 167c979f4b9..5294976fd34 100644 --- a/keyboards/bastardkb/scylla/blackpill/info.json +++ b/keyboards/bastardkb/scylla/blackpill/info.json @@ -1,7 +1,16 @@ { "keyboard_name": "Scylla Blackpill", "usb": { - "device_version": "1.0.0" + "device_version": "1.0.0", + "shared_endpoint": { + "keyboard": true + } + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true }, "eeprom": { "driver": "spi" diff --git a/keyboards/bastardkb/scylla/blackpill/rules.mk b/keyboards/bastardkb/scylla/blackpill/rules.mk index 0875a191c5d..48c904dd644 100644 --- a/keyboards/bastardkb/scylla/blackpill/rules.mk +++ b/keyboards/bastardkb/scylla/blackpill/rules.mk @@ -1,20 +1,5 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint -KEYBOARD_SHARED_EP = yes SERIAL_DRIVER = usart diff --git a/keyboards/bastardkb/scylla/v1/elitec/info.json b/keyboards/bastardkb/scylla/v1/elitec/info.json index 4b7e5092199..17b6b7fc367 100644 --- a/keyboards/bastardkb/scylla/v1/elitec/info.json +++ b/keyboards/bastardkb/scylla/v1/elitec/info.json @@ -3,6 +3,12 @@ "usb": { "device_version": "1.0.0" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true + }, "ws2812": { "pin": "D2" }, diff --git a/keyboards/bastardkb/scylla/v1/elitec/rules.mk b/keyboards/bastardkb/scylla/v1/elitec/rules.mk index a8a3e3d5873..1868c4bb027 100644 --- a/keyboards/bastardkb/scylla/v1/elitec/rules.mk +++ b/keyboards/bastardkb/scylla/v1/elitec/rules.mk @@ -1,15 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix (do not use together with RGBLIGHT_ENABLE) diff --git a/keyboards/bastardkb/scylla/v2/elitec/info.json b/keyboards/bastardkb/scylla/v2/elitec/info.json index a7c68fb628a..7bfb7ff5a4e 100644 --- a/keyboards/bastardkb/scylla/v2/elitec/info.json +++ b/keyboards/bastardkb/scylla/v2/elitec/info.json @@ -3,6 +3,12 @@ "usb": { "device_version": "2.0.0" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/bastardkb/scylla/v2/elitec/rules.mk b/keyboards/bastardkb/scylla/v2/elitec/rules.mk index a8a3e3d5873..1868c4bb027 100644 --- a/keyboards/bastardkb/scylla/v2/elitec/rules.mk +++ b/keyboards/bastardkb/scylla/v2/elitec/rules.mk @@ -1,15 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix (do not use together with RGBLIGHT_ENABLE) diff --git a/keyboards/bastardkb/scylla/v2/splinky_2/info.json b/keyboards/bastardkb/scylla/v2/splinky_2/info.json index 83cfd06ca79..2b9022d24ef 100644 --- a/keyboards/bastardkb/scylla/v2/splinky_2/info.json +++ b/keyboards/bastardkb/scylla/v2/splinky_2/info.json @@ -3,6 +3,12 @@ "usb": { "device_version": "2.0.0" }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true + }, "rgb_matrix": { "driver": "ws2812" }, diff --git a/keyboards/bastardkb/scylla/v2/splinky_2/rules.mk b/keyboards/bastardkb/scylla/v2/splinky_2/rules.mk index d5f1d335c89..077573eb763 100644 --- a/keyboards/bastardkb/scylla/v2/splinky_2/rules.mk +++ b/keyboards/bastardkb/scylla/v2/splinky_2/rules.mk @@ -1,17 +1,3 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality SERIAL_DRIVER = vendor diff --git a/keyboards/bastardkb/scylla/v2/splinky_3/info.json b/keyboards/bastardkb/scylla/v2/splinky_3/info.json index 14386303dc5..cd4da3ac415 100644 --- a/keyboards/bastardkb/scylla/v2/splinky_3/info.json +++ b/keyboards/bastardkb/scylla/v2/splinky_3/info.json @@ -3,6 +3,12 @@ "usb": { "device_version": "2.0.0" }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true + }, "rgb_matrix": { "driver": "ws2812" }, diff --git a/keyboards/bastardkb/scylla/v2/splinky_3/rules.mk b/keyboards/bastardkb/scylla/v2/splinky_3/rules.mk index d5f1d335c89..077573eb763 100644 --- a/keyboards/bastardkb/scylla/v2/splinky_3/rules.mk +++ b/keyboards/bastardkb/scylla/v2/splinky_3/rules.mk @@ -1,17 +1,3 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality SERIAL_DRIVER = vendor diff --git a/keyboards/bastardkb/scylla/v2/stemcell/info.json b/keyboards/bastardkb/scylla/v2/stemcell/info.json index d6bea6463ac..06bfeda7d28 100644 --- a/keyboards/bastardkb/scylla/v2/stemcell/info.json +++ b/keyboards/bastardkb/scylla/v2/stemcell/info.json @@ -3,6 +3,12 @@ "usb": { "device_version": "2.0.0" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true + }, "rgb_matrix": { "driver": "ws2812" }, diff --git a/keyboards/bastardkb/scylla/v2/stemcell/rules.mk b/keyboards/bastardkb/scylla/v2/stemcell/rules.mk index 3834385af03..3fe3e4ffbea 100644 --- a/keyboards/bastardkb/scylla/v2/stemcell/rules.mk +++ b/keyboards/bastardkb/scylla/v2/stemcell/rules.mk @@ -1,17 +1,3 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality SERIAL_DRIVER = usart diff --git a/keyboards/bastardkb/skeletyl/blackpill/info.json b/keyboards/bastardkb/skeletyl/blackpill/info.json index c0e5d4e2c85..16fa2b24121 100644 --- a/keyboards/bastardkb/skeletyl/blackpill/info.json +++ b/keyboards/bastardkb/skeletyl/blackpill/info.json @@ -1,7 +1,16 @@ { "keyboard_name": "Skeletyl Blackpill", "usb": { - "device_version": "1.0.0" + "device_version": "1.0.0", + "shared_endpoint": { + "keyboard": true + } + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true }, "eeprom": { "driver": "spi" diff --git a/keyboards/bastardkb/skeletyl/blackpill/rules.mk b/keyboards/bastardkb/skeletyl/blackpill/rules.mk index 0875a191c5d..48c904dd644 100644 --- a/keyboards/bastardkb/skeletyl/blackpill/rules.mk +++ b/keyboards/bastardkb/skeletyl/blackpill/rules.mk @@ -1,20 +1,5 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint -KEYBOARD_SHARED_EP = yes SERIAL_DRIVER = usart diff --git a/keyboards/bastardkb/skeletyl/v1/elitec/info.json b/keyboards/bastardkb/skeletyl/v1/elitec/info.json index cc5d2adfadd..2910d80b2f5 100644 --- a/keyboards/bastardkb/skeletyl/v1/elitec/info.json +++ b/keyboards/bastardkb/skeletyl/v1/elitec/info.json @@ -3,6 +3,12 @@ "usb": { "device_version": "1.0.0" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true + }, "ws2812": { "pin": "D2" }, diff --git a/keyboards/bastardkb/skeletyl/v1/elitec/rules.mk b/keyboards/bastardkb/skeletyl/v1/elitec/rules.mk index a8a3e3d5873..1868c4bb027 100644 --- a/keyboards/bastardkb/skeletyl/v1/elitec/rules.mk +++ b/keyboards/bastardkb/skeletyl/v1/elitec/rules.mk @@ -1,15 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix (do not use together with RGBLIGHT_ENABLE) diff --git a/keyboards/bastardkb/skeletyl/v2/elitec/info.json b/keyboards/bastardkb/skeletyl/v2/elitec/info.json index 4f245663bce..dec2537b65c 100644 --- a/keyboards/bastardkb/skeletyl/v2/elitec/info.json +++ b/keyboards/bastardkb/skeletyl/v2/elitec/info.json @@ -3,6 +3,12 @@ "usb": { "device_version": "2.0.0" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/bastardkb/skeletyl/v2/elitec/rules.mk b/keyboards/bastardkb/skeletyl/v2/elitec/rules.mk index a8a3e3d5873..1868c4bb027 100644 --- a/keyboards/bastardkb/skeletyl/v2/elitec/rules.mk +++ b/keyboards/bastardkb/skeletyl/v2/elitec/rules.mk @@ -1,15 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix (do not use together with RGBLIGHT_ENABLE) diff --git a/keyboards/bastardkb/skeletyl/v2/splinky_2/info.json b/keyboards/bastardkb/skeletyl/v2/splinky_2/info.json index fa15c27148e..897f195a315 100644 --- a/keyboards/bastardkb/skeletyl/v2/splinky_2/info.json +++ b/keyboards/bastardkb/skeletyl/v2/splinky_2/info.json @@ -3,6 +3,12 @@ "usb": { "device_version": "2.0.0" }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true + }, "rgb_matrix": { "driver": "ws2812" }, diff --git a/keyboards/bastardkb/skeletyl/v2/splinky_2/rules.mk b/keyboards/bastardkb/skeletyl/v2/splinky_2/rules.mk index d5f1d335c89..077573eb763 100644 --- a/keyboards/bastardkb/skeletyl/v2/splinky_2/rules.mk +++ b/keyboards/bastardkb/skeletyl/v2/splinky_2/rules.mk @@ -1,17 +1,3 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality SERIAL_DRIVER = vendor diff --git a/keyboards/bastardkb/skeletyl/v2/splinky_3/info.json b/keyboards/bastardkb/skeletyl/v2/splinky_3/info.json index b34581757ba..06a93dfbeb7 100644 --- a/keyboards/bastardkb/skeletyl/v2/splinky_3/info.json +++ b/keyboards/bastardkb/skeletyl/v2/splinky_3/info.json @@ -3,6 +3,12 @@ "usb": { "device_version": "2.0.0" }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true + }, "rgb_matrix": { "driver": "ws2812" }, diff --git a/keyboards/bastardkb/skeletyl/v2/splinky_3/rules.mk b/keyboards/bastardkb/skeletyl/v2/splinky_3/rules.mk index d5f1d335c89..077573eb763 100644 --- a/keyboards/bastardkb/skeletyl/v2/splinky_3/rules.mk +++ b/keyboards/bastardkb/skeletyl/v2/splinky_3/rules.mk @@ -1,17 +1,3 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality SERIAL_DRIVER = vendor diff --git a/keyboards/bastardkb/skeletyl/v2/stemcell/info.json b/keyboards/bastardkb/skeletyl/v2/stemcell/info.json index d7b1fc5cdb4..6dd86bcc126 100644 --- a/keyboards/bastardkb/skeletyl/v2/stemcell/info.json +++ b/keyboards/bastardkb/skeletyl/v2/stemcell/info.json @@ -3,6 +3,12 @@ "usb": { "device_version": "2.0.0" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true + }, "rgb_matrix": { "driver": "ws2812" }, diff --git a/keyboards/bastardkb/skeletyl/v2/stemcell/rules.mk b/keyboards/bastardkb/skeletyl/v2/stemcell/rules.mk index 3834385af03..3fe3e4ffbea 100644 --- a/keyboards/bastardkb/skeletyl/v2/stemcell/rules.mk +++ b/keyboards/bastardkb/skeletyl/v2/stemcell/rules.mk @@ -1,17 +1,3 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality SERIAL_DRIVER = usart diff --git a/keyboards/bastardkb/tbkmini/blackpill/info.json b/keyboards/bastardkb/tbkmini/blackpill/info.json index 62301b1f2bc..61d0e741fef 100644 --- a/keyboards/bastardkb/tbkmini/blackpill/info.json +++ b/keyboards/bastardkb/tbkmini/blackpill/info.json @@ -1,7 +1,16 @@ { "keyboard_name": "TBK Mini Blackpill", "usb": { - "device_version": "1.0.0" + "device_version": "1.0.0", + "shared_endpoint": { + "keyboard": true + } + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true }, "eeprom": { "driver": "spi" diff --git a/keyboards/bastardkb/tbkmini/blackpill/rules.mk b/keyboards/bastardkb/tbkmini/blackpill/rules.mk index 0875a191c5d..48c904dd644 100644 --- a/keyboards/bastardkb/tbkmini/blackpill/rules.mk +++ b/keyboards/bastardkb/tbkmini/blackpill/rules.mk @@ -1,20 +1,5 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint -KEYBOARD_SHARED_EP = yes SERIAL_DRIVER = usart diff --git a/keyboards/bastardkb/tbkmini/v1/elitec/info.json b/keyboards/bastardkb/tbkmini/v1/elitec/info.json index 54433f39bf3..59988074baa 100644 --- a/keyboards/bastardkb/tbkmini/v1/elitec/info.json +++ b/keyboards/bastardkb/tbkmini/v1/elitec/info.json @@ -3,6 +3,12 @@ "usb": { "device_version": "1.0.0" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true + }, "ws2812": { "pin": "D2" }, diff --git a/keyboards/bastardkb/tbkmini/v1/elitec/rules.mk b/keyboards/bastardkb/tbkmini/v1/elitec/rules.mk index a8a3e3d5873..1868c4bb027 100644 --- a/keyboards/bastardkb/tbkmini/v1/elitec/rules.mk +++ b/keyboards/bastardkb/tbkmini/v1/elitec/rules.mk @@ -1,15 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix (do not use together with RGBLIGHT_ENABLE) diff --git a/keyboards/bastardkb/tbkmini/v2/elitec/info.json b/keyboards/bastardkb/tbkmini/v2/elitec/info.json index 57c7399c01d..01679bcff9f 100644 --- a/keyboards/bastardkb/tbkmini/v2/elitec/info.json +++ b/keyboards/bastardkb/tbkmini/v2/elitec/info.json @@ -3,6 +3,12 @@ "usb": { "device_version": "2.0.0" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/bastardkb/tbkmini/v2/elitec/rules.mk b/keyboards/bastardkb/tbkmini/v2/elitec/rules.mk index a8a3e3d5873..1868c4bb027 100644 --- a/keyboards/bastardkb/tbkmini/v2/elitec/rules.mk +++ b/keyboards/bastardkb/tbkmini/v2/elitec/rules.mk @@ -1,15 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix (do not use together with RGBLIGHT_ENABLE) diff --git a/keyboards/bastardkb/tbkmini/v2/splinky_2/info.json b/keyboards/bastardkb/tbkmini/v2/splinky_2/info.json index 2f64d2b51bf..2048db62515 100644 --- a/keyboards/bastardkb/tbkmini/v2/splinky_2/info.json +++ b/keyboards/bastardkb/tbkmini/v2/splinky_2/info.json @@ -3,6 +3,12 @@ "usb": { "device_version": "2.0.0" }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true + }, "rgb_matrix": { "driver": "ws2812" }, diff --git a/keyboards/bastardkb/tbkmini/v2/splinky_2/rules.mk b/keyboards/bastardkb/tbkmini/v2/splinky_2/rules.mk index d5f1d335c89..077573eb763 100644 --- a/keyboards/bastardkb/tbkmini/v2/splinky_2/rules.mk +++ b/keyboards/bastardkb/tbkmini/v2/splinky_2/rules.mk @@ -1,17 +1,3 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality SERIAL_DRIVER = vendor diff --git a/keyboards/bastardkb/tbkmini/v2/splinky_3/info.json b/keyboards/bastardkb/tbkmini/v2/splinky_3/info.json index b67bc1d744c..8dd21b75910 100644 --- a/keyboards/bastardkb/tbkmini/v2/splinky_3/info.json +++ b/keyboards/bastardkb/tbkmini/v2/splinky_3/info.json @@ -3,6 +3,12 @@ "usb": { "device_version": "2.0.0" }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true + }, "rgb_matrix": { "driver": "ws2812" }, diff --git a/keyboards/bastardkb/tbkmini/v2/splinky_3/rules.mk b/keyboards/bastardkb/tbkmini/v2/splinky_3/rules.mk index d5f1d335c89..077573eb763 100644 --- a/keyboards/bastardkb/tbkmini/v2/splinky_3/rules.mk +++ b/keyboards/bastardkb/tbkmini/v2/splinky_3/rules.mk @@ -1,17 +1,3 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality SERIAL_DRIVER = vendor diff --git a/keyboards/bastardkb/tbkmini/v2/stemcell/info.json b/keyboards/bastardkb/tbkmini/v2/stemcell/info.json index d08c89ec574..41abba96cb9 100644 --- a/keyboards/bastardkb/tbkmini/v2/stemcell/info.json +++ b/keyboards/bastardkb/tbkmini/v2/stemcell/info.json @@ -3,6 +3,12 @@ "usb": { "device_version": "2.0.0" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "rgb_matrix": true + }, "rgb_matrix": { "driver": "ws2812" }, diff --git a/keyboards/bastardkb/tbkmini/v2/stemcell/rules.mk b/keyboards/bastardkb/tbkmini/v2/stemcell/rules.mk index 3834385af03..3fe3e4ffbea 100644 --- a/keyboards/bastardkb/tbkmini/v2/stemcell/rules.mk +++ b/keyboards/bastardkb/tbkmini/v2/stemcell/rules.mk @@ -1,17 +1,3 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - AUDIO_SUPPORTED = no # Audio is not supported -RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix functionality SERIAL_DRIVER = usart From 8f8fffc1740be81fbfe4a07a74e9f03962c1062a Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat, 27 Apr 2024 05:58:04 -0700 Subject: [PATCH 12/55] Data-Driven Keyboard Conversions: Mechlovin (#23624) --- keyboards/mechlovin/adelais/info.json | 8 -------- .../rgb_led/rev1/{info.json => keyboard.json} | 9 +++++++++ keyboards/mechlovin/adelais/rgb_led/rev1/rules.mk | 1 - .../rgb_led/rev2/{info.json => keyboard.json} | 11 +++++++++++ keyboards/mechlovin/adelais/rgb_led/rev2/rules.mk | 3 --- .../rgb_led/rev3/{info.json => keyboard.json} | 11 +++++++++++ keyboards/mechlovin/adelais/rgb_led/rev3/rules.mk | 8 -------- keyboards/mechlovin/adelais/rgb_led/rules.mk | 4 +--- .../adelais/standard_led/arm/rev2/keyboard.json | 10 ++++++++++ .../arm/rev3/{info.json => keyboard.json} | 11 +++++++++++ .../adelais/standard_led/arm/rev3/rules.mk | 1 - .../standard_led/arm/rev4/apm32f103/keyboard.json | 13 ++++++++++++- .../adelais/standard_led/arm/rev4/info.json | 9 --------- .../standard_led/arm/rev4/stm32f303/keyboard.json | 13 ++++++++++++- .../avr/rev1/{info.json => keyboard.json} | 10 ++++++++++ .../adelais/standard_led/avr/rev1/rules.mk | 4 ---- keyboards/mechlovin/adelais/standard_led/rules.mk | 4 ---- keyboards/mechlovin/delphine/info.json | 8 -------- .../delphine/mono_led/{info.json => keyboard.json} | 8 ++++++++ keyboards/mechlovin/delphine/mono_led/rules.mk | 2 -- .../delphine/rgb_led/{info.json => keyboard.json} | 7 +++++++ keyboards/mechlovin/delphine/rgb_led/rules.mk | 2 -- .../hannah60rgb/rev1/{info.json => keyboard.json} | 9 +++++++++ keyboards/mechlovin/hannah60rgb/rev1/rules.mk | 1 - .../hannah60rgb/rev2/{info.json => keyboard.json} | 10 ++++++++++ keyboards/mechlovin/hannah60rgb/rev2/rules.mk | 2 -- keyboards/mechlovin/hannah60rgb/rules.mk | 12 ------------ keyboards/mechlovin/hannah65/info.json | 9 --------- .../mechlovin/hannah65/rev1/haus/keyboard.json | 9 +++++++++ .../hannah910/rev1/{info.json => keyboard.json} | 7 +++++++ keyboards/mechlovin/hannah910/rev1/rules.mk | 12 ------------ .../hannah910/rev2/{info.json => keyboard.json} | 7 +++++++ keyboards/mechlovin/hannah910/rev2/rules.mk | 12 ------------ .../hannah910/rev3/{info.json => keyboard.json} | 7 +++++++ keyboards/mechlovin/hannah910/rev3/rules.mk | 12 ------------ keyboards/mechlovin/hex4b/rev1/info.json | 6 ++++++ keyboards/mechlovin/hex4b/rev1/rules.mk | 13 ------------- .../hex4b/rev2/{info.json => keyboard.json} | 9 +++++++++ keyboards/mechlovin/hex4b/rev2/rules.mk | 12 ------------ keyboards/mechlovin/infinity87/rev1/info.json | 9 --------- .../infinity87/rev1/rogue87/keyboard.json | 6 ++++++ .../infinity87/rev1/rouge87/keyboard.json | 6 ++++++ .../rev1/standard/{info.json => keyboard.json} | 10 ++++++++++ .../mechlovin/infinity87/rev1/standard/rules.mk | 1 - keyboards/mechlovin/infinity87/rev2/info.json | 8 ++++++++ keyboards/mechlovin/infinity87/rev2/rules.mk | 8 -------- .../rgb_rev1/{info.json => keyboard.json} | 9 +++++++++ keyboards/mechlovin/infinity87/rgb_rev1/rules.mk | 1 - keyboards/mechlovin/infinity87/rules.mk | 14 -------------- keyboards/mechlovin/infinity875/info.json | 6 ++++++ keyboards/mechlovin/infinity875/rules.mk | 13 ------------- keyboards/mechlovin/jay60/info.json | 5 +++++ keyboards/mechlovin/jay60/rules.mk | 13 ------------- keyboards/mechlovin/mechlovin9/info.json | 8 -------- .../mechlovin9/rev1/{info.json => keyboard.json} | 12 +++++++++--- keyboards/mechlovin/mechlovin9/rev1/rules.mk | 6 ------ keyboards/mechlovin/mechlovin9/rev2/info.json | 3 +++ keyboards/mechlovin/mechlovin9/rev3/keyboard.json | 5 +++++ keyboards/mechlovin/olly/bb/info.json | 7 +++++++ keyboards/mechlovin/olly/bb/rules.mk | 13 ------------- keyboards/mechlovin/olly/jf/info.json | 9 --------- keyboards/mechlovin/olly/jf/rev1/info.json | 6 +++++- keyboards/mechlovin/olly/jf/rev2/keyboard.json | 10 +++++++--- keyboards/mechlovin/serratus/info.json | 8 ++++++++ keyboards/mechlovin/serratus/rules.mk | 12 ------------ keyboards/mechlovin/th1800/info.json | 5 +++++ keyboards/mechlovin/th1800/rules.mk | 13 ------------- keyboards/mechlovin/zed1800/info.json | 9 --------- keyboards/mechlovin/zed1800/oreum/keyboard.json | 8 ++++++++ keyboards/mechlovin/zed1800/rules.mk | 2 +- keyboards/mechlovin/zed1800/saber/keyboard.json | 8 ++++++++ keyboards/mechlovin/zed1800/zepsody/keyboard.json | 8 ++++++++ keyboards/mechlovin/zed65/910/keyboard.json | 5 +++++ keyboards/mechlovin/zed65/info.json | 9 +-------- .../zed65/mono_led/{info.json => keyboard.json} | 10 ++++++++++ keyboards/mechlovin/zed65/mono_led/rules.mk | 4 ---- .../retro66/{info.json => keyboard.json} | 8 ++++++++ .../mechlovin/zed65/no_backlight/retro66/rules.mk | 1 - keyboards/mechlovin/zed65/no_backlight/rules.mk | 2 -- .../wearhaus66/{info.json => keyboard.json} | 8 ++++++++ .../zed65/no_backlight/wearhaus66/rules.mk | 1 - keyboards/mechlovin/zed65/rev1/keyboard.json | 5 +++++ 82 files changed, 327 insertions(+), 293 deletions(-) rename keyboards/mechlovin/adelais/rgb_led/rev1/{info.json => keyboard.json} (98%) delete mode 100644 keyboards/mechlovin/adelais/rgb_led/rev1/rules.mk rename keyboards/mechlovin/adelais/rgb_led/rev2/{info.json => keyboard.json} (98%) delete mode 100644 keyboards/mechlovin/adelais/rgb_led/rev2/rules.mk rename keyboards/mechlovin/adelais/rgb_led/rev3/{info.json => keyboard.json} (98%) delete mode 100644 keyboards/mechlovin/adelais/rgb_led/rev3/rules.mk rename keyboards/mechlovin/adelais/standard_led/arm/rev3/{info.json => keyboard.json} (98%) delete mode 100644 keyboards/mechlovin/adelais/standard_led/arm/rev3/rules.mk rename keyboards/mechlovin/adelais/standard_led/avr/rev1/{info.json => keyboard.json} (98%) rename keyboards/mechlovin/delphine/mono_led/{info.json => keyboard.json} (78%) delete mode 100644 keyboards/mechlovin/delphine/mono_led/rules.mk rename keyboards/mechlovin/delphine/rgb_led/{info.json => keyboard.json} (93%) delete mode 100644 keyboards/mechlovin/delphine/rgb_led/rules.mk rename keyboards/mechlovin/hannah60rgb/rev1/{info.json => keyboard.json} (98%) delete mode 100644 keyboards/mechlovin/hannah60rgb/rev1/rules.mk rename keyboards/mechlovin/hannah60rgb/rev2/{info.json => keyboard.json} (98%) delete mode 100644 keyboards/mechlovin/hannah60rgb/rev2/rules.mk rename keyboards/mechlovin/hannah910/rev1/{info.json => keyboard.json} (98%) delete mode 100644 keyboards/mechlovin/hannah910/rev1/rules.mk rename keyboards/mechlovin/hannah910/rev2/{info.json => keyboard.json} (98%) delete mode 100644 keyboards/mechlovin/hannah910/rev2/rules.mk rename keyboards/mechlovin/hannah910/rev3/{info.json => keyboard.json} (98%) delete mode 100644 keyboards/mechlovin/hannah910/rev3/rules.mk rename keyboards/mechlovin/hex4b/rev2/{info.json => keyboard.json} (75%) delete mode 100644 keyboards/mechlovin/hex4b/rev2/rules.mk rename keyboards/mechlovin/infinity87/rev1/standard/{info.json => keyboard.json} (99%) delete mode 100644 keyboards/mechlovin/infinity87/rev1/standard/rules.mk rename keyboards/mechlovin/infinity87/rgb_rev1/{info.json => keyboard.json} (99%) delete mode 100644 keyboards/mechlovin/infinity87/rgb_rev1/rules.mk rename keyboards/mechlovin/mechlovin9/rev1/{info.json => keyboard.json} (80%) delete mode 100644 keyboards/mechlovin/mechlovin9/rev1/rules.mk rename keyboards/mechlovin/zed65/mono_led/{info.json => keyboard.json} (98%) delete mode 100644 keyboards/mechlovin/zed65/mono_led/rules.mk rename keyboards/mechlovin/zed65/no_backlight/retro66/{info.json => keyboard.json} (97%) delete mode 100644 keyboards/mechlovin/zed65/no_backlight/retro66/rules.mk rename keyboards/mechlovin/zed65/no_backlight/wearhaus66/{info.json => keyboard.json} (98%) delete mode 100644 keyboards/mechlovin/zed65/no_backlight/wearhaus66/rules.mk diff --git a/keyboards/mechlovin/adelais/info.json b/keyboards/mechlovin/adelais/info.json index d8aae5a8da7..42b16d63984 100644 --- a/keyboards/mechlovin/adelais/info.json +++ b/keyboards/mechlovin/adelais/info.json @@ -2,14 +2,6 @@ "manufacturer": "Team.Mechlovin", "url": "", "maintainer": "mechlovin", - "features": { - "bootmagic": true, - "command": true, - "console": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, "usb": { "vid": "0x4D4C", "device_version": "0.0.1" diff --git a/keyboards/mechlovin/adelais/rgb_led/rev1/info.json b/keyboards/mechlovin/adelais/rgb_led/rev1/keyboard.json similarity index 98% rename from keyboards/mechlovin/adelais/rgb_led/rev1/info.json rename to keyboards/mechlovin/adelais/rgb_led/rev1/keyboard.json index af68bb84574..01232b07e80 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev1/info.json +++ b/keyboards/mechlovin/adelais/rgb_led/rev1/keyboard.json @@ -3,6 +3,15 @@ "usb": { "pid": "0xAEC1" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": true, + "command": true, + "nkro": true, + "rgb_matrix": true + }, "rgb_matrix": { "animations": { "alphas_mods": true, diff --git a/keyboards/mechlovin/adelais/rgb_led/rev1/rules.mk b/keyboards/mechlovin/adelais/rgb_led/rev1/rules.mk deleted file mode 100644 index aad92997d0f..00000000000 --- a/keyboards/mechlovin/adelais/rgb_led/rev1/rules.mk +++ /dev/null @@ -1 +0,0 @@ -RGB_MATRIX_ENABLE = yes diff --git a/keyboards/mechlovin/adelais/rgb_led/rev2/info.json b/keyboards/mechlovin/adelais/rgb_led/rev2/keyboard.json similarity index 98% rename from keyboards/mechlovin/adelais/rgb_led/rev2/info.json rename to keyboards/mechlovin/adelais/rgb_led/rev2/keyboard.json index fb88cb359db..a8633af5da2 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev2/info.json +++ b/keyboards/mechlovin/adelais/rgb_led/rev2/keyboard.json @@ -3,6 +3,17 @@ "usb": { "pid": "0xAEC2" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": true, + "command": true, + "nkro": true, + "rgblight": true, + "rgb_matrix": true, + "encoder": true + }, "rgb_matrix": { "animations": { "alphas_mods": true, diff --git a/keyboards/mechlovin/adelais/rgb_led/rev2/rules.mk b/keyboards/mechlovin/adelais/rgb_led/rev2/rules.mk deleted file mode 100644 index e79b2862e60..00000000000 --- a/keyboards/mechlovin/adelais/rgb_led/rev2/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -RGB_MATRIX_ENABLE = yes -RGBLIGHT_ENABLE = yes -ENCODER_ENABLE = yes diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/info.json b/keyboards/mechlovin/adelais/rgb_led/rev3/keyboard.json similarity index 98% rename from keyboards/mechlovin/adelais/rgb_led/rev3/info.json rename to keyboards/mechlovin/adelais/rgb_led/rev3/keyboard.json index 62acf349c05..628eb404a5b 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev3/info.json +++ b/keyboards/mechlovin/adelais/rgb_led/rev3/keyboard.json @@ -3,6 +3,17 @@ "usb": { "pid": "0xAEC3" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true, + "rgblight": true, + "rgb_matrix": true, + "encoder": true + }, "rgb_matrix": { "animations": { "alphas_mods": true, diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/rules.mk b/keyboards/mechlovin/adelais/rgb_led/rev3/rules.mk deleted file mode 100644 index e144301381d..00000000000 --- a/keyboards/mechlovin/adelais/rgb_led/rev3/rules.mk +++ /dev/null @@ -1,8 +0,0 @@ -# Build Options -# change yes to no to disable -# -RGB_MATRIX_ENABLE = yes -RGBLIGHT_ENABLE = yes -ENCODER_ENABLE = yes -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration diff --git a/keyboards/mechlovin/adelais/rgb_led/rules.mk b/keyboards/mechlovin/adelais/rgb_led/rules.mk index 8a9bdd433d6..18047f12c7e 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rules.mk +++ b/keyboards/mechlovin/adelais/rgb_led/rules.mk @@ -1,3 +1 @@ - - -DEFAULT_FOLDER = mechlovin/adelais/rgb_led/rev1 \ No newline at end of file +DEFAULT_FOLDER = mechlovin/adelais/rgb_led/rev1 diff --git a/keyboards/mechlovin/adelais/standard_led/arm/rev2/keyboard.json b/keyboards/mechlovin/adelais/standard_led/arm/rev2/keyboard.json index 9a2a280c10b..53005dfa339 100644 --- a/keyboards/mechlovin/adelais/standard_led/arm/rev2/keyboard.json +++ b/keyboards/mechlovin/adelais/standard_led/arm/rev2/keyboard.json @@ -2,6 +2,16 @@ "usb": { "pid": "0xAD01" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": true, + "command": true, + "nkro": true, + "backlight": true, + "rgblight": true + }, "processor": "STM32F303", "board": "QMK_PROTON_C", "bootloader": "stm32-dfu", diff --git a/keyboards/mechlovin/adelais/standard_led/arm/rev3/info.json b/keyboards/mechlovin/adelais/standard_led/arm/rev3/keyboard.json similarity index 98% rename from keyboards/mechlovin/adelais/standard_led/arm/rev3/info.json rename to keyboards/mechlovin/adelais/standard_led/arm/rev3/keyboard.json index 46907dc7a9d..11295007902 100644 --- a/keyboards/mechlovin/adelais/standard_led/arm/rev3/info.json +++ b/keyboards/mechlovin/adelais/standard_led/arm/rev3/keyboard.json @@ -2,6 +2,17 @@ "usb": { "pid": "0xAD02" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": true, + "command": true, + "nkro": true, + "backlight": true, + "rgblight": true, + "encoder": true + }, "encoder": { "rotary": [ {"pin_a": "A6", "pin_b": "A5"}, diff --git a/keyboards/mechlovin/adelais/standard_led/arm/rev3/rules.mk b/keyboards/mechlovin/adelais/standard_led/arm/rev3/rules.mk deleted file mode 100644 index 5af1ba85367..00000000000 --- a/keyboards/mechlovin/adelais/standard_led/arm/rev3/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_ENABLE = yes diff --git a/keyboards/mechlovin/adelais/standard_led/arm/rev4/apm32f103/keyboard.json b/keyboards/mechlovin/adelais/standard_led/arm/rev4/apm32f103/keyboard.json index cf993be2471..f6b79e35d0d 100644 --- a/keyboards/mechlovin/adelais/standard_led/arm/rev4/apm32f103/keyboard.json +++ b/keyboards/mechlovin/adelais/standard_led/arm/rev4/apm32f103/keyboard.json @@ -1,4 +1,15 @@ { "processor": "STM32F103", - "bootloader": "stm32duino" + "bootloader": "stm32duino", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": true, + "command": true, + "nkro": true, + "backlight": true, + "rgblight": true, + "encoder": true + } } diff --git a/keyboards/mechlovin/adelais/standard_led/arm/rev4/info.json b/keyboards/mechlovin/adelais/standard_led/arm/rev4/info.json index 17cf63fecf3..f0d10942adc 100644 --- a/keyboards/mechlovin/adelais/standard_led/arm/rev4/info.json +++ b/keyboards/mechlovin/adelais/standard_led/arm/rev4/info.json @@ -1,13 +1,4 @@ { - "features": { - "bootmagic": false, - "command": false, - "console": false, - "encoder": true, - "extrakey": false, - "mousekey": false, - "nkro": false - }, "usb": { "pid": "0xAD03" }, diff --git a/keyboards/mechlovin/adelais/standard_led/arm/rev4/stm32f303/keyboard.json b/keyboards/mechlovin/adelais/standard_led/arm/rev4/stm32f303/keyboard.json index 774c3dcf317..9e9748fa93a 100644 --- a/keyboards/mechlovin/adelais/standard_led/arm/rev4/stm32f303/keyboard.json +++ b/keyboards/mechlovin/adelais/standard_led/arm/rev4/stm32f303/keyboard.json @@ -1,5 +1,16 @@ { "processor": "STM32F303", "board": "QMK_PROTON_C", - "bootloader": "stm32-dfu" + "bootloader": "stm32-dfu", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": true, + "command": true, + "nkro": true, + "backlight": true, + "rgblight": true, + "encoder": true + } } diff --git a/keyboards/mechlovin/adelais/standard_led/avr/rev1/info.json b/keyboards/mechlovin/adelais/standard_led/avr/rev1/keyboard.json similarity index 98% rename from keyboards/mechlovin/adelais/standard_led/avr/rev1/info.json rename to keyboards/mechlovin/adelais/standard_led/avr/rev1/keyboard.json index 95aac7b0d41..3758a8f085a 100644 --- a/keyboards/mechlovin/adelais/standard_led/avr/rev1/info.json +++ b/keyboards/mechlovin/adelais/standard_led/avr/rev1/keyboard.json @@ -3,6 +3,16 @@ "usb": { "pid": "0xAD04" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true, + "backlight": true, + "rgblight": true + }, "encoder": { "rotary": [ {"pin_a": "D3", "pin_b": "D2"}, diff --git a/keyboards/mechlovin/adelais/standard_led/avr/rev1/rules.mk b/keyboards/mechlovin/adelais/standard_led/avr/rev1/rules.mk index c807f2ad095..179d02c3c68 100644 --- a/keyboards/mechlovin/adelais/standard_led/avr/rev1/rules.mk +++ b/keyboards/mechlovin/adelais/standard_led/avr/rev1/rules.mk @@ -1,7 +1,3 @@ -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow CUSTOM_MATRIX = lite SRC += matrix.c diff --git a/keyboards/mechlovin/adelais/standard_led/rules.mk b/keyboards/mechlovin/adelais/standard_led/rules.mk index 271c6a9179e..a1d2ba038de 100644 --- a/keyboards/mechlovin/adelais/standard_led/rules.mk +++ b/keyboards/mechlovin/adelais/standard_led/rules.mk @@ -1,5 +1 @@ - -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow DEFAULT_FOLDER = mechlovin/adelais/standard_led/arm/rev2 diff --git a/keyboards/mechlovin/delphine/info.json b/keyboards/mechlovin/delphine/info.json index e8f39b8d6d1..baeeab6f186 100644 --- a/keyboards/mechlovin/delphine/info.json +++ b/keyboards/mechlovin/delphine/info.json @@ -6,14 +6,6 @@ "usb": { "vid": "0x4D4C" }, - "features": { - "bootmagic": true, - "command": false, - "console": false, - "extrakey": true, - "mousekey": true, - "nkro": true - }, "matrix_pins": { "cols": ["F7", "D7", "D6", "D2"], "rows": ["F0", "F1", "F4", "F5", "F6", "D3"] diff --git a/keyboards/mechlovin/delphine/mono_led/info.json b/keyboards/mechlovin/delphine/mono_led/keyboard.json similarity index 78% rename from keyboards/mechlovin/delphine/mono_led/info.json rename to keyboards/mechlovin/delphine/mono_led/keyboard.json index e1b90d1191b..06fa071159e 100644 --- a/keyboards/mechlovin/delphine/mono_led/info.json +++ b/keyboards/mechlovin/delphine/mono_led/keyboard.json @@ -3,6 +3,14 @@ "pid": "0xDEF1", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "nkro": true, + "backlight": true, + "rgblight": true + }, "rgblight": { "saturation_steps": 8, "brightness_steps": 8, diff --git a/keyboards/mechlovin/delphine/mono_led/rules.mk b/keyboards/mechlovin/delphine/mono_led/rules.mk deleted file mode 100644 index ed572b0bbfc..00000000000 --- a/keyboards/mechlovin/delphine/mono_led/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow \ No newline at end of file diff --git a/keyboards/mechlovin/delphine/rgb_led/info.json b/keyboards/mechlovin/delphine/rgb_led/keyboard.json similarity index 93% rename from keyboards/mechlovin/delphine/rgb_led/info.json rename to keyboards/mechlovin/delphine/rgb_led/keyboard.json index 6a0b8df2cf0..35a163c05f8 100644 --- a/keyboards/mechlovin/delphine/rgb_led/info.json +++ b/keyboards/mechlovin/delphine/rgb_led/keyboard.json @@ -3,6 +3,13 @@ "pid": "0xDEF2", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "nkro": true, + "rgb_matrix": true + }, "rgblight": { "saturation_steps": 8, "brightness_steps": 8, diff --git a/keyboards/mechlovin/delphine/rgb_led/rules.mk b/keyboards/mechlovin/delphine/rgb_led/rules.mk deleted file mode 100644 index 5c624bc68f6..00000000000 --- a/keyboards/mechlovin/delphine/rgb_led/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -RGB_MATRIX_ENABLE = yes # Use RGB matrix diff --git a/keyboards/mechlovin/hannah60rgb/rev1/info.json b/keyboards/mechlovin/hannah60rgb/rev1/keyboard.json similarity index 98% rename from keyboards/mechlovin/hannah60rgb/rev1/info.json rename to keyboards/mechlovin/hannah60rgb/rev1/keyboard.json index 6a3510c7dfc..4fb4dc2eef5 100644 --- a/keyboards/mechlovin/hannah60rgb/rev1/info.json +++ b/keyboards/mechlovin/hannah60rgb/rev1/keyboard.json @@ -8,6 +8,15 @@ "pid": "0x6001", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": true, + "command": true, + "nkro": true, + "rgb_matrix": true + }, "ws2812": { "pin": "A15" }, diff --git a/keyboards/mechlovin/hannah60rgb/rev1/rules.mk b/keyboards/mechlovin/hannah60rgb/rev1/rules.mk deleted file mode 100644 index aad92997d0f..00000000000 --- a/keyboards/mechlovin/hannah60rgb/rev1/rules.mk +++ /dev/null @@ -1 +0,0 @@ -RGB_MATRIX_ENABLE = yes diff --git a/keyboards/mechlovin/hannah60rgb/rev2/info.json b/keyboards/mechlovin/hannah60rgb/rev2/keyboard.json similarity index 98% rename from keyboards/mechlovin/hannah60rgb/rev2/info.json rename to keyboards/mechlovin/hannah60rgb/rev2/keyboard.json index e6be250311c..06bb71a3482 100644 --- a/keyboards/mechlovin/hannah60rgb/rev2/info.json +++ b/keyboards/mechlovin/hannah60rgb/rev2/keyboard.json @@ -8,6 +8,16 @@ "pid": "0x6002", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": true, + "command": true, + "nkro": true, + "rgblight": true, + "rgb_matrix": true + }, "rgblight": { "saturation_steps": 8, "brightness_steps": 8, diff --git a/keyboards/mechlovin/hannah60rgb/rev2/rules.mk b/keyboards/mechlovin/hannah60rgb/rev2/rules.mk deleted file mode 100644 index e1f93c75251..00000000000 --- a/keyboards/mechlovin/hannah60rgb/rev2/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -RGB_MATRIX_ENABLE = yes diff --git a/keyboards/mechlovin/hannah60rgb/rules.mk b/keyboards/mechlovin/hannah60rgb/rules.mk index 65e5f070fb7..e876a56afb5 100644 --- a/keyboards/mechlovin/hannah60rgb/rules.mk +++ b/keyboards/mechlovin/hannah60rgb/rules.mk @@ -1,13 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -AUDIO_ENABLE = no # Audio output - DEFAULT_FOLDER = mechlovin/hannah60rgb/rev1 diff --git a/keyboards/mechlovin/hannah65/info.json b/keyboards/mechlovin/hannah65/info.json index f9adc729660..88a3f397192 100644 --- a/keyboards/mechlovin/hannah65/info.json +++ b/keyboards/mechlovin/hannah65/info.json @@ -3,15 +3,6 @@ "pin": "B8", "breathing": true }, - "features": { - "backlight": true, - "bootmagic": true, - "command": true, - "console": true, - "extrakey": true, - "mousekey": true, - "nkro": true - }, "matrix_pins": { "cols": ["B11", "B10", "B2", "B1", "B0", "A7", "A6", "A0", "C15", "B4", "B5", "B3", "C13", "C14", "A13"], "rows": ["A4", "A5", "A3", "A2", "A1"] diff --git a/keyboards/mechlovin/hannah65/rev1/haus/keyboard.json b/keyboards/mechlovin/hannah65/rev1/haus/keyboard.json index ac97de5f180..7a935fc1a53 100644 --- a/keyboards/mechlovin/hannah65/rev1/haus/keyboard.json +++ b/keyboards/mechlovin/hannah65/rev1/haus/keyboard.json @@ -8,6 +8,15 @@ "pid": "0x6500", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": true, + "command": true, + "nkro": true, + "backlight": true + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/mechlovin/hannah910/rev1/info.json b/keyboards/mechlovin/hannah910/rev1/keyboard.json similarity index 98% rename from keyboards/mechlovin/hannah910/rev1/info.json rename to keyboards/mechlovin/hannah910/rev1/keyboard.json index af20cffd4fb..8f01f6f39b1 100644 --- a/keyboards/mechlovin/hannah910/rev1/info.json +++ b/keyboards/mechlovin/hannah910/rev1/keyboard.json @@ -8,6 +8,13 @@ "pid": "0x9101", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "backlight": true, + "rgblight": true + }, "matrix_pins": { "cols": ["E6", "B1", "B3", "F0", "F1", "F4", "F5", "F6", "F7", "D5", "D4", "B4", "D6", "D7", "B0"], "rows": ["B5", "B6", "D3", "C6", "C7"] diff --git a/keyboards/mechlovin/hannah910/rev1/rules.mk b/keyboards/mechlovin/hannah910/rev1/rules.mk deleted file mode 100644 index 8a6e2c7b715..00000000000 --- a/keyboards/mechlovin/hannah910/rev1/rules.mk +++ /dev/null @@ -1,12 +0,0 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output diff --git a/keyboards/mechlovin/hannah910/rev2/info.json b/keyboards/mechlovin/hannah910/rev2/keyboard.json similarity index 98% rename from keyboards/mechlovin/hannah910/rev2/info.json rename to keyboards/mechlovin/hannah910/rev2/keyboard.json index a9cfe5f66be..c6fe19c34d1 100644 --- a/keyboards/mechlovin/hannah910/rev2/info.json +++ b/keyboards/mechlovin/hannah910/rev2/keyboard.json @@ -8,6 +8,13 @@ "pid": "0x9102", "device_version": "0.0.2" }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "backlight": true, + "rgblight": true + }, "matrix_pins": { "cols": ["E6", "B1", "B3", "F0", "F1", "F4", "F5", "F6", "F7", "D5", "D4", "B4", "D6", "D7", "B0"], "rows": ["B5", "B6", "D3", "C6", "C7"] diff --git a/keyboards/mechlovin/hannah910/rev2/rules.mk b/keyboards/mechlovin/hannah910/rev2/rules.mk deleted file mode 100644 index 8a6e2c7b715..00000000000 --- a/keyboards/mechlovin/hannah910/rev2/rules.mk +++ /dev/null @@ -1,12 +0,0 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output diff --git a/keyboards/mechlovin/hannah910/rev3/info.json b/keyboards/mechlovin/hannah910/rev3/keyboard.json similarity index 98% rename from keyboards/mechlovin/hannah910/rev3/info.json rename to keyboards/mechlovin/hannah910/rev3/keyboard.json index abeaa1e1824..8a6ea4d1234 100644 --- a/keyboards/mechlovin/hannah910/rev3/info.json +++ b/keyboards/mechlovin/hannah910/rev3/keyboard.json @@ -8,6 +8,13 @@ "pid": "0x9103", "device_version": "0.0.2" }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "backlight": true, + "rgblight": true + }, "matrix_pins": { "cols": ["E6", "B1", "B3", "F0", "F1", "F4", "F5", "F6", "F7", "D5", "D4", "B4", "D6", "D7", "B0"], "rows": ["B5", "B6", "D3", "C6", "C7"] diff --git a/keyboards/mechlovin/hannah910/rev3/rules.mk b/keyboards/mechlovin/hannah910/rev3/rules.mk deleted file mode 100644 index 8a6e2c7b715..00000000000 --- a/keyboards/mechlovin/hannah910/rev3/rules.mk +++ /dev/null @@ -1,12 +0,0 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output diff --git a/keyboards/mechlovin/hex4b/rev1/info.json b/keyboards/mechlovin/hex4b/rev1/info.json index 1e9a7d57762..d3251f5808e 100644 --- a/keyboards/mechlovin/hex4b/rev1/info.json +++ b/keyboards/mechlovin/hex4b/rev1/info.json @@ -3,6 +3,12 @@ "usb": { "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "backlight": true + }, "matrix_pins": { "cols": ["B6", "B5", "B3", "B2", "B1", "B0", "A0", "A6", "A7", "C7", "C6", "C5", "C4", "D1", "D0"], "rows": ["B7", "A2", "A1", "A3", "A4", "A5"] diff --git a/keyboards/mechlovin/hex4b/rev1/rules.mk b/keyboards/mechlovin/hex4b/rev1/rules.mk index 15d473397d4..c2ee0bc86f9 100644 --- a/keyboards/mechlovin/hex4b/rev1/rules.mk +++ b/keyboards/mechlovin/hex4b/rev1/rules.mk @@ -1,15 +1,2 @@ # Processor frequency F_CPU = 16000000 - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output diff --git a/keyboards/mechlovin/hex4b/rev2/info.json b/keyboards/mechlovin/hex4b/rev2/keyboard.json similarity index 75% rename from keyboards/mechlovin/hex4b/rev2/info.json rename to keyboards/mechlovin/hex4b/rev2/keyboard.json index 8609be01c31..1bdda81c5ab 100644 --- a/keyboards/mechlovin/hex4b/rev2/info.json +++ b/keyboards/mechlovin/hex4b/rev2/keyboard.json @@ -3,6 +3,15 @@ "usb": { "device_version": "0.0.2" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": true, + "command": true, + "nkro": true, + "backlight": true + }, "matrix_pins": { "cols": ["B11", "B10", "B2", "B1", "B0", "A7", "A6", "A5", "A3", "C13", "B7", "B6", "B5", "B4", "B3"], "rows": ["A4", "B12", "B13", "B14", "B15", "A1"] diff --git a/keyboards/mechlovin/hex4b/rev2/rules.mk b/keyboards/mechlovin/hex4b/rev2/rules.mk deleted file mode 100644 index a5089d51a5b..00000000000 --- a/keyboards/mechlovin/hex4b/rev2/rules.mk +++ /dev/null @@ -1,12 +0,0 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output diff --git a/keyboards/mechlovin/infinity87/rev1/info.json b/keyboards/mechlovin/infinity87/rev1/info.json index 249bbd5cb47..dbe7cb83f99 100644 --- a/keyboards/mechlovin/infinity87/rev1/info.json +++ b/keyboards/mechlovin/infinity87/rev1/info.json @@ -1,13 +1,4 @@ { - "features": { - "backlight": true, - "bootmagic": false, - "command": false, - "console": false, - "extrakey": false, - "mousekey": false, - "nkro": false - }, "matrix_pins": { "cols": ["C13", "B9", "B4", "B7", "B8", "B5", "B6", "A9", "A5", "A6", "A7", "B1", "B2", "B10", "B3", "B14", "B15"], "rows": ["A10", "B13", "B12", "B11", "C14", "C15"] diff --git a/keyboards/mechlovin/infinity87/rev1/rogue87/keyboard.json b/keyboards/mechlovin/infinity87/rev1/rogue87/keyboard.json index 6fdc9d6e5d3..2ac0510dbf3 100644 --- a/keyboards/mechlovin/infinity87/rev1/rogue87/keyboard.json +++ b/keyboards/mechlovin/infinity87/rev1/rogue87/keyboard.json @@ -8,6 +8,12 @@ "pid": "0x8704", "device_version": "0.0.1" }, + "features": { + "bootmagic": false, + "mousekey": false, + "extrakey": false, + "backlight": true + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/mechlovin/infinity87/rev1/rouge87/keyboard.json b/keyboards/mechlovin/infinity87/rev1/rouge87/keyboard.json index 39a9f169258..6b947f0f1f1 100644 --- a/keyboards/mechlovin/infinity87/rev1/rouge87/keyboard.json +++ b/keyboards/mechlovin/infinity87/rev1/rouge87/keyboard.json @@ -8,6 +8,12 @@ "pid": "0x8703", "device_version": "0.0.1" }, + "features": { + "bootmagic": false, + "mousekey": false, + "extrakey": false, + "backlight": true + }, "community_layouts": [ "tkl_ansi_tsangan", "tkl_iso_tsangan" diff --git a/keyboards/mechlovin/infinity87/rev1/standard/info.json b/keyboards/mechlovin/infinity87/rev1/standard/keyboard.json similarity index 99% rename from keyboards/mechlovin/infinity87/rev1/standard/info.json rename to keyboards/mechlovin/infinity87/rev1/standard/keyboard.json index 964a7a8cb9a..a0cb10fac22 100644 --- a/keyboards/mechlovin/infinity87/rev1/standard/info.json +++ b/keyboards/mechlovin/infinity87/rev1/standard/keyboard.json @@ -8,6 +8,16 @@ "pid": "0x8701", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": true, + "command": true, + "nkro": true, + "backlight": true, + "rgblight": true + }, "rgblight": { "led_count": 26, "sleep": true, diff --git a/keyboards/mechlovin/infinity87/rev1/standard/rules.mk b/keyboards/mechlovin/infinity87/rev1/standard/rules.mk deleted file mode 100644 index 1e3cebb1451..00000000000 --- a/keyboards/mechlovin/infinity87/rev1/standard/rules.mk +++ /dev/null @@ -1 +0,0 @@ -RGBLIGHT_ENABLE = yes diff --git a/keyboards/mechlovin/infinity87/rev2/info.json b/keyboards/mechlovin/infinity87/rev2/info.json index 42db9894ca1..fdc66869889 100644 --- a/keyboards/mechlovin/infinity87/rev2/info.json +++ b/keyboards/mechlovin/infinity87/rev2/info.json @@ -8,6 +8,14 @@ "pid": "0x8702", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "nkro": true, + "backlight": true, + "rgblight": true + }, "backlight": { "pin": "B6", "breathing": true diff --git a/keyboards/mechlovin/infinity87/rev2/rules.mk b/keyboards/mechlovin/infinity87/rev2/rules.mk index ea7804f1585..179d02c3c68 100644 --- a/keyboards/mechlovin/infinity87/rev2/rules.mk +++ b/keyboards/mechlovin/infinity87/rev2/rules.mk @@ -1,11 +1,3 @@ -# Build Options -# change yes to no to disable -# -CONSOLE_ENABLE = no -COMMAND_ENABLE = no -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = yes -RGBLIGHT_ENABLE = yes CUSTOM_MATRIX = lite SRC += matrix.c diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/info.json b/keyboards/mechlovin/infinity87/rgb_rev1/keyboard.json similarity index 99% rename from keyboards/mechlovin/infinity87/rgb_rev1/info.json rename to keyboards/mechlovin/infinity87/rgb_rev1/keyboard.json index 27a7b441e32..2d177949dc1 100644 --- a/keyboards/mechlovin/infinity87/rgb_rev1/info.json +++ b/keyboards/mechlovin/infinity87/rgb_rev1/keyboard.json @@ -8,6 +8,15 @@ "pid": "0x8710", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": true, + "command": true, + "nkro": true, + "rgb_matrix": true + }, "rgb_matrix": { "animations": { "alphas_mods": true, diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/rules.mk b/keyboards/mechlovin/infinity87/rgb_rev1/rules.mk deleted file mode 100644 index e408bde91c4..00000000000 --- a/keyboards/mechlovin/infinity87/rgb_rev1/rules.mk +++ /dev/null @@ -1 +0,0 @@ -RGB_MATRIX_ENABLE = yes # Use RGB matrix diff --git a/keyboards/mechlovin/infinity87/rules.mk b/keyboards/mechlovin/infinity87/rules.mk index 251f8440aab..4aa072cae75 100644 --- a/keyboards/mechlovin/infinity87/rules.mk +++ b/keyboards/mechlovin/infinity87/rules.mk @@ -1,15 +1 @@ - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - DEFAULT_FOLDER = mechlovin/infinity87/rgb_rev1 diff --git a/keyboards/mechlovin/infinity875/info.json b/keyboards/mechlovin/infinity875/info.json index cb8154a713e..73bdb0af130 100644 --- a/keyboards/mechlovin/infinity875/info.json +++ b/keyboards/mechlovin/infinity875/info.json @@ -8,6 +8,12 @@ "pid": "0x0875", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "mousekey": false, + "extrakey": true, + "rgb_matrix": true + }, "rgb_matrix": { "driver": "ws2812", "max_brightness": 200, diff --git a/keyboards/mechlovin/infinity875/rules.mk b/keyboards/mechlovin/infinity875/rules.mk index 33f549f3aef..179d02c3c68 100644 --- a/keyboards/mechlovin/infinity875/rules.mk +++ b/keyboards/mechlovin/infinity875/rules.mk @@ -1,16 +1,3 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output CUSTOM_MATRIX = lite -RGB_MATRIX_ENABLE = yes SRC += matrix.c diff --git a/keyboards/mechlovin/jay60/info.json b/keyboards/mechlovin/jay60/info.json index 1f8d68a5411..37f25f36fe8 100644 --- a/keyboards/mechlovin/jay60/info.json +++ b/keyboards/mechlovin/jay60/info.json @@ -8,6 +8,11 @@ "pid": "0x0600", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true + }, "matrix_pins": { "cols": ["B6", "B5", "B3", "B2", "B1", "B0", "A0", "A6", "A7", "C7", "C6", "C5", "C4", "C3"], "rows": ["C2", "C1", "C0", "D7", "A1"] diff --git a/keyboards/mechlovin/jay60/rules.mk b/keyboards/mechlovin/jay60/rules.mk index 1e9f9255447..c2ee0bc86f9 100644 --- a/keyboards/mechlovin/jay60/rules.mk +++ b/keyboards/mechlovin/jay60/rules.mk @@ -1,15 +1,2 @@ # Processor frequency F_CPU = 16000000 - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output diff --git a/keyboards/mechlovin/mechlovin9/info.json b/keyboards/mechlovin/mechlovin9/info.json index a5439f56a9d..41133813ef7 100644 --- a/keyboards/mechlovin/mechlovin9/info.json +++ b/keyboards/mechlovin/mechlovin9/info.json @@ -2,14 +2,6 @@ "manufacturer": "Mechlovin Studio", "url": "", "maintainer": "Team Mechlovin", - "features": { - "bootmagic": true, - "command": false, - "console": false, - "extrakey": true, - "mousekey": true, - "nkro": false - }, "usb": { "vid": "0x4D4C" }, diff --git a/keyboards/mechlovin/mechlovin9/rev1/info.json b/keyboards/mechlovin/mechlovin9/rev1/keyboard.json similarity index 80% rename from keyboards/mechlovin/mechlovin9/rev1/info.json rename to keyboards/mechlovin/mechlovin9/rev1/keyboard.json index 1ece8fc52d2..2aebe566398 100644 --- a/keyboards/mechlovin/mechlovin9/rev1/info.json +++ b/keyboards/mechlovin/mechlovin9/rev1/keyboard.json @@ -4,14 +4,20 @@ "pid": "0x6509", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": true, + "command": true, + "nkro": true, + "backlight": true + }, "matrix_pins": { "cols": ["B11", "B10", "B2", "B1", "B0", "A7", "A6", "A0", "C15", "B4", "B5", "B3", "C13", "C14", "A13"], "rows": ["A4", "A5", "A3", "A2", "A1"] }, "diode_direction": "COL2ROW", - "features": { - "backlight": true - }, "backlight": { "pin": "B8", "breathing": true diff --git a/keyboards/mechlovin/mechlovin9/rev1/rules.mk b/keyboards/mechlovin/mechlovin9/rev1/rules.mk deleted file mode 100644 index d6fa8455698..00000000000 --- a/keyboards/mechlovin/mechlovin9/rev1/rules.mk +++ /dev/null @@ -1,6 +0,0 @@ -# Build Options -# change yes to no to disable -# -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover diff --git a/keyboards/mechlovin/mechlovin9/rev2/info.json b/keyboards/mechlovin/mechlovin9/rev2/info.json index 01e8d59579b..a9b45df59dd 100644 --- a/keyboards/mechlovin/mechlovin9/rev2/info.json +++ b/keyboards/mechlovin/mechlovin9/rev2/info.json @@ -10,6 +10,9 @@ }, "diode_direction": "COL2ROW", "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, "backlight": true }, "backlight": { diff --git a/keyboards/mechlovin/mechlovin9/rev3/keyboard.json b/keyboards/mechlovin/mechlovin9/rev3/keyboard.json index faa4cf0a877..aa2787c34c7 100644 --- a/keyboards/mechlovin/mechlovin9/rev3/keyboard.json +++ b/keyboards/mechlovin/mechlovin9/rev3/keyboard.json @@ -6,6 +6,11 @@ "pid": "0x6509", "device_version": "0.0.3" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true + }, "bootmagic": { "matrix": [0, 13] }, diff --git a/keyboards/mechlovin/olly/bb/info.json b/keyboards/mechlovin/olly/bb/info.json index fddb8931136..ac08e94c3ce 100644 --- a/keyboards/mechlovin/olly/bb/info.json +++ b/keyboards/mechlovin/olly/bb/info.json @@ -8,6 +8,13 @@ "pid": "0xD181", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "backlight": true, + "rgblight": true + }, "backlight": { "pin": "D4", "breathing": true diff --git a/keyboards/mechlovin/olly/bb/rules.mk b/keyboards/mechlovin/olly/bb/rules.mk index 1d15495eef5..73681d1f1e0 100644 --- a/keyboards/mechlovin/olly/bb/rules.mk +++ b/keyboards/mechlovin/olly/bb/rules.mk @@ -1,18 +1,5 @@ # Processor frequency F_CPU = 16000000 - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output CUSTOM_MATRIX = lite SRC += matrix.c diff --git a/keyboards/mechlovin/olly/jf/info.json b/keyboards/mechlovin/olly/jf/info.json index b67551a111b..315191e8408 100644 --- a/keyboards/mechlovin/olly/jf/info.json +++ b/keyboards/mechlovin/olly/jf/info.json @@ -5,15 +5,6 @@ "usb": { "vid": "0x4D4C" }, - "features": { - "nkro": false, - "bootmagic": true, - "command": false, - "console": false, - "extrakey": true, - "mousekey": true, - "rgblight": true - }, "diode_direction": "ROW2COL", "rgblight": { "led_count": 27, diff --git a/keyboards/mechlovin/olly/jf/rev1/info.json b/keyboards/mechlovin/olly/jf/rev1/info.json index 0b6aec094f8..69f092af07e 100644 --- a/keyboards/mechlovin/olly/jf/rev1/info.json +++ b/keyboards/mechlovin/olly/jf/rev1/info.json @@ -5,7 +5,11 @@ "device_version": "0.0.1" }, "features": { - "backlight": true + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "backlight": true, + "rgblight": true }, "matrix_pins": { "cols": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null], diff --git a/keyboards/mechlovin/olly/jf/rev2/keyboard.json b/keyboards/mechlovin/olly/jf/rev2/keyboard.json index 600bf8a3af3..3771188638b 100644 --- a/keyboards/mechlovin/olly/jf/rev2/keyboard.json +++ b/keyboards/mechlovin/olly/jf/rev2/keyboard.json @@ -7,10 +7,14 @@ } }, "features": { - "command": true, + "bootmagic": true, + "mousekey": true, + "extrakey": true, "console": true, + "command": true, + "nkro": true, "led_matrix": true, - "nkro": true + "rgblight": true }, "led_matrix": { "animations": { @@ -704,4 +708,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/mechlovin/serratus/info.json b/keyboards/mechlovin/serratus/info.json index 780a369cb81..c283c48a350 100644 --- a/keyboards/mechlovin/serratus/info.json +++ b/keyboards/mechlovin/serratus/info.json @@ -8,6 +8,14 @@ "pid": "0x0870", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "nkro": true, + "backlight": true, + "rgblight": true + }, "backlight": { "pin": "B6", "breathing": true diff --git a/keyboards/mechlovin/serratus/rules.mk b/keyboards/mechlovin/serratus/rules.mk index 03ea2f1bda0..179d02c3c68 100644 --- a/keyboards/mechlovin/serratus/rules.mk +++ b/keyboards/mechlovin/serratus/rules.mk @@ -1,15 +1,3 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output CUSTOM_MATRIX = lite SRC += matrix.c diff --git a/keyboards/mechlovin/th1800/info.json b/keyboards/mechlovin/th1800/info.json index 001c73f6839..66b74875454 100644 --- a/keyboards/mechlovin/th1800/info.json +++ b/keyboards/mechlovin/th1800/info.json @@ -8,6 +8,11 @@ "pid": "0x1800", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true + }, "matrix_pins": { "cols": ["A3", "D7", "C0", "C1", "C2", "C3", "C4", "C5", "C6", "C7", "A7", "A6", "A5", "A4", "B3", "B2", "B0", "B1"], "rows": ["B6", "B7", "D0", "D1", "D5", "D6"] diff --git a/keyboards/mechlovin/th1800/rules.mk b/keyboards/mechlovin/th1800/rules.mk index 1e9f9255447..c2ee0bc86f9 100644 --- a/keyboards/mechlovin/th1800/rules.mk +++ b/keyboards/mechlovin/th1800/rules.mk @@ -1,15 +1,2 @@ # Processor frequency F_CPU = 16000000 - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output diff --git a/keyboards/mechlovin/zed1800/info.json b/keyboards/mechlovin/zed1800/info.json index 41179a6ef14..9de42c24424 100644 --- a/keyboards/mechlovin/zed1800/info.json +++ b/keyboards/mechlovin/zed1800/info.json @@ -17,15 +17,6 @@ "backing_size": 4096 } }, - "features": { - "bootmagic": true, - "command": true, - "console": true, - "extrakey": true, - "mousekey": true, - "rgblight": true, - "audio": false - }, "rgblight": { "sleep": true, "animations": { diff --git a/keyboards/mechlovin/zed1800/oreum/keyboard.json b/keyboards/mechlovin/zed1800/oreum/keyboard.json index 4a15f61ce49..c5652213d62 100644 --- a/keyboards/mechlovin/zed1800/oreum/keyboard.json +++ b/keyboards/mechlovin/zed1800/oreum/keyboard.json @@ -3,6 +3,14 @@ "usb": { "pid": "0x1802" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": true, + "command": true, + "rgblight": true + }, "matrix_pins": { "cols": ["A8", "B15", "B14", "B13", "B12", "B11", "B10", "B2", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C13"], "rows": ["B8", "B7", "B6", "B5", "B4", "B3"] diff --git a/keyboards/mechlovin/zed1800/rules.mk b/keyboards/mechlovin/zed1800/rules.mk index d007da3fa20..e0088c95c39 100644 --- a/keyboards/mechlovin/zed1800/rules.mk +++ b/keyboards/mechlovin/zed1800/rules.mk @@ -1 +1 @@ -DEFAULT_FOLDER = mechlovin/zed1800/saber \ No newline at end of file +DEFAULT_FOLDER = mechlovin/zed1800/saber diff --git a/keyboards/mechlovin/zed1800/saber/keyboard.json b/keyboards/mechlovin/zed1800/saber/keyboard.json index d921d95a950..a3d236e5112 100644 --- a/keyboards/mechlovin/zed1800/saber/keyboard.json +++ b/keyboards/mechlovin/zed1800/saber/keyboard.json @@ -3,6 +3,14 @@ "usb": { "pid": "0x1803" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": true, + "command": true, + "rgblight": true + }, "matrix_pins": { "cols": ["A8", "A15", "B14", "B13", "B12", "B11", "B10", "B2", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C13"], "rows": ["B8", "B7", "B6", "B5", "B4", "B3"] diff --git a/keyboards/mechlovin/zed1800/zepsody/keyboard.json b/keyboards/mechlovin/zed1800/zepsody/keyboard.json index dab92b26d7e..8a973d181fa 100644 --- a/keyboards/mechlovin/zed1800/zepsody/keyboard.json +++ b/keyboards/mechlovin/zed1800/zepsody/keyboard.json @@ -3,6 +3,14 @@ "usb": { "pid": "0x1801" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": true, + "command": true, + "rgblight": true + }, "matrix_pins": { "cols": ["A10", "A9", "A8", "A15", "B14", "B13", "B12", "B11", "B10", "B2", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0"], "rows": ["B8", "B7", "B6", "B5", "B4", "B3"] diff --git a/keyboards/mechlovin/zed65/910/keyboard.json b/keyboards/mechlovin/zed65/910/keyboard.json index 3b1472014d7..36f1a1ed3bc 100644 --- a/keyboards/mechlovin/zed65/910/keyboard.json +++ b/keyboards/mechlovin/zed65/910/keyboard.json @@ -9,6 +9,11 @@ "device_version": "0.0.1" }, "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": true, + "command": true, "nkro": true, "rgblight": true }, diff --git a/keyboards/mechlovin/zed65/info.json b/keyboards/mechlovin/zed65/info.json index c255dd23c6e..cf993be2471 100644 --- a/keyboards/mechlovin/zed65/info.json +++ b/keyboards/mechlovin/zed65/info.json @@ -1,11 +1,4 @@ { "processor": "STM32F103", - "bootloader": "stm32duino", - "features": { - "bootmagic": true, - "command": true, - "console": true, - "extrakey": true, - "mousekey": true - }, + "bootloader": "stm32duino" } diff --git a/keyboards/mechlovin/zed65/mono_led/info.json b/keyboards/mechlovin/zed65/mono_led/keyboard.json similarity index 98% rename from keyboards/mechlovin/zed65/mono_led/info.json rename to keyboards/mechlovin/zed65/mono_led/keyboard.json index aa46b1bd8bc..0cf13002d9a 100644 --- a/keyboards/mechlovin/zed65/mono_led/info.json +++ b/keyboards/mechlovin/zed65/mono_led/keyboard.json @@ -8,6 +8,16 @@ "pid": "0x6503", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": true, + "command": true, + "nkro": true, + "led_matrix": true, + "rgblight": true + }, "rgblight": { "saturation_steps": 8, "brightness_steps": 8, diff --git a/keyboards/mechlovin/zed65/mono_led/rules.mk b/keyboards/mechlovin/zed65/mono_led/rules.mk deleted file mode 100644 index 55d38a7b91d..00000000000 --- a/keyboards/mechlovin/zed65/mono_led/rules.mk +++ /dev/null @@ -1,4 +0,0 @@ - -NKRO_ENABLE = yes # Enable N-Key Rollover -LED_MATRIX_ENABLE = yes -RGBLIGHT_ENABLE = yes \ No newline at end of file diff --git a/keyboards/mechlovin/zed65/no_backlight/retro66/info.json b/keyboards/mechlovin/zed65/no_backlight/retro66/keyboard.json similarity index 97% rename from keyboards/mechlovin/zed65/no_backlight/retro66/info.json rename to keyboards/mechlovin/zed65/no_backlight/retro66/keyboard.json index 0709014f76b..49ed44f0a1f 100644 --- a/keyboards/mechlovin/zed65/no_backlight/retro66/info.json +++ b/keyboards/mechlovin/zed65/no_backlight/retro66/keyboard.json @@ -8,6 +8,14 @@ "pid": "0x6601", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": true, + "command": true, + "encoder": true + }, "matrix_pins": { "cols": ["B11", "B12", "B10", "B2", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "B3", "A15", "B5"], "rows": ["B13", "B14", "A8", "A1", "A0"] diff --git a/keyboards/mechlovin/zed65/no_backlight/retro66/rules.mk b/keyboards/mechlovin/zed65/no_backlight/retro66/rules.mk deleted file mode 100644 index 5af1ba85367..00000000000 --- a/keyboards/mechlovin/zed65/no_backlight/retro66/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_ENABLE = yes diff --git a/keyboards/mechlovin/zed65/no_backlight/rules.mk b/keyboards/mechlovin/zed65/no_backlight/rules.mk index b0b388db500..a699765498b 100644 --- a/keyboards/mechlovin/zed65/no_backlight/rules.mk +++ b/keyboards/mechlovin/zed65/no_backlight/rules.mk @@ -1,3 +1 @@ -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality - DEFAULT_FOLDER = mechlovin/zed65/no_backlight/wearhaus66 diff --git a/keyboards/mechlovin/zed65/no_backlight/wearhaus66/info.json b/keyboards/mechlovin/zed65/no_backlight/wearhaus66/keyboard.json similarity index 98% rename from keyboards/mechlovin/zed65/no_backlight/wearhaus66/info.json rename to keyboards/mechlovin/zed65/no_backlight/wearhaus66/keyboard.json index 5b0df671dfc..c9c9e0ddb1e 100644 --- a/keyboards/mechlovin/zed65/no_backlight/wearhaus66/info.json +++ b/keyboards/mechlovin/zed65/no_backlight/wearhaus66/keyboard.json @@ -8,6 +8,14 @@ "pid": "0x6602", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": true, + "command": true, + "rgblight": true + }, "matrix_pins": { "cols": ["B11", "B12", "B10", "B2", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "B3", "A15", "B5"], "rows": ["B13", "B14", "A8", "A1", "A0"] diff --git a/keyboards/mechlovin/zed65/no_backlight/wearhaus66/rules.mk b/keyboards/mechlovin/zed65/no_backlight/wearhaus66/rules.mk deleted file mode 100644 index 84ef473c02e..00000000000 --- a/keyboards/mechlovin/zed65/no_backlight/wearhaus66/rules.mk +++ /dev/null @@ -1 +0,0 @@ -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow diff --git a/keyboards/mechlovin/zed65/rev1/keyboard.json b/keyboards/mechlovin/zed65/rev1/keyboard.json index 20f04dbe655..99de5d53f2a 100644 --- a/keyboards/mechlovin/zed65/rev1/keyboard.json +++ b/keyboards/mechlovin/zed65/rev1/keyboard.json @@ -9,6 +9,11 @@ "device_version": "0.0.1" }, "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": true, + "command": true, "nkro": true, "rgblight": true }, From 0ff53b24984e88f385638e47ea076b4d2945c0c6 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 28 Apr 2024 00:36:54 +1000 Subject: [PATCH 13/55] Rename `RGBW` define to `WS2812_RGBW` (#23585) --- data/mappings/info_config.hjson | 3 ++- data/schemas/keyboard.jsonschema | 6 ++++- docs/config_options.md | 2 +- docs/feature_rgblight.md | 2 +- docs/reference_info_json.md | 6 ++--- docs/ws2812_driver.md | 22 +++++++++++++++++++ keyboards/ergodox_ez/config.h | 2 -- keyboards/ergodox_ez/info.json | 3 ++- keyboards/ergodox_ez/shine/rgblight_custom.c | 4 ++-- keyboards/handwired/tennie/config.h | 2 -- keyboards/handwired/tennie/keyboard.json | 3 ++- keyboards/oddforge/vea/ws2812_custom.c | 2 +- keyboards/rgbkb/pan/pan.c | 2 +- keyboards/westfoxtrot/aanzee/config.h | 2 -- keyboards/westfoxtrot/aanzee/keyboard.json | 3 ++- platforms/avr/drivers/ws2812_i2c.c | 2 +- .../drivers/vendor/RP/RP2040/ws2812_vendor.c | 6 ++--- platforms/chibios/drivers/ws2812_bitbang.c | 2 +- platforms/chibios/drivers/ws2812_pwm.c | 8 +++---- platforms/chibios/drivers/ws2812_spi.c | 4 ++-- quantum/color.c | 2 +- quantum/color.h | 4 ++-- quantum/rgb_matrix/rgb_matrix_drivers.c | 2 +- quantum/rgblight/rgblight.c | 18 +++++++-------- 24 files changed, 68 insertions(+), 44 deletions(-) diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson index c0417b88396..b61ca040714 100644 --- a/data/mappings/info_config.hjson +++ b/data/mappings/info_config.hjson @@ -164,7 +164,6 @@ "RGBLIGHT_DEFAULT_SAT": {"info_key": "rgblight.default.sat", "value_type": "int"}, "RGBLIGHT_DEFAULT_VAL": {"info_key": "rgblight.default.val", "value_type": "int"}, "RGBLIGHT_DEFAULT_SPD": {"info_key": "rgblight.default.speed", "value_type": "int"}, - "RGBW": {"info_key": "rgblight.rgbw", "value_type": "flag"}, // Secure "SECURE_IDLE_TIMEOUT": {"info_key": "secure.idle_timeout", "value_type": "int"}, @@ -215,6 +214,7 @@ "WS2812_DI_PIN": {"info_key": "ws2812.pin"}, "WS2812_I2C_ADDRESS": {"info_key": "ws2812.i2c_address", "value_type": "hex"}, "WS2812_I2C_TIMEOUT": {"info_key": "ws2812.i2c_timeout", "value_type": "int"}, + "WS2812_RGBW": {"info_key": "ws2812.rgbw", "value_type": "flag"}, "LAYOUTS": {"info_key": "layout_aliases", "value_type": "mapping"}, @@ -229,6 +229,7 @@ "PREVENT_STUCK_MODIFIERS": {"info_key": "_invalid.prevent_stuck_mods", "invalid": true}, "QMK_KEYS_PER_SCAN": {"info_key": "qmk.keys_per_scan", "value_type": "int", "deprecated": true}, "RGB_DI_PIN": {"info_key": "rgblight.pin", "invalid": true, "replace_with": "WS2812_DI_PIN or APA102_DI_PIN"}, + "RGBW": {"info_key": "rgblight.rgbw", "invalid": true, "replace_with": "WS2812_RGBW"}, "RGB_DISABLE_WHEN_USB_SUSPENDED": {"info_key": "_invalid.rgb_matrix_sleep", "invalid": true, "replace_with": "RGB_MATRIX_SLEEP"}, "RGBLIGHT_ANIMATIONS": {"info_key": "_invalid.rgblight.animations.all", "value_type": "flag", "invalid": true}, "TAPPING_FORCE_HOLD": {"info_key": "tapping.force_hold", "value_type": "flag", "deprecated": true}, diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 585c64777f2..de01809b43d 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -661,7 +661,10 @@ "$ref": "qmk.definitions.v1#/mcu_pin", "$comment": "Deprecated: use ws2812.pin instead" }, - "rgbw": {"type": "boolean"}, + "rgbw": { + "type": "boolean", + "$comment": "Deprecated: use ws2812.rgbw instead" + }, "saturation_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "sleep": {"type": "boolean"}, "split": {"type": "boolean"}, @@ -937,6 +940,7 @@ "enum": ["bitbang", "custom", "i2c", "pwm", "spi", "vendor"] }, "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}, + "rgbw": {"type": "boolean"}, "i2c_address": {"$ref": "qmk.definitions.v1#/hex_number_2d"}, "i2c_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"} } diff --git a/docs/config_options.md b/docs/config_options.md index fca80e54fde..046429a5875 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -237,7 +237,7 @@ If you define these options you will enable the associated feature, which may in * units to step when in/decreasing saturation * `#define RGBLIGHT_VAL_STEP 12` * units to step when in/decreasing value (brightness) -* `#define RGBW` +* `#define WS2812_RGBW` * Enables RGBW LED support ## Mouse Key Options diff --git a/docs/feature_rgblight.md b/docs/feature_rgblight.md index a6a89d1d00c..ae37ceca92f 100644 --- a/docs/feature_rgblight.md +++ b/docs/feature_rgblight.md @@ -6,7 +6,7 @@ QMK has the ability to control RGB LEDs attached to your keyboard. This is commo Some keyboards come with RGB LEDs preinstalled. Others must have them installed after the fact. See the [Hardware Modification](#hardware-modification) section for information on adding RGB lighting to your keyboard. -Currently QMK supports the following addressable LEDs (however, the white LED in RGBW variants is not supported): +Currently QMK supports the following addressable LEDs: * WS2811, WS2812, WS2812B, WS2812C, etc. * SK6812, SK6812MINI, SK6805 diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index d1dc5d3beac..5b06e9a3268 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -588,9 +588,6 @@ Configures the [RGB Lighting](feature_rgblight.md) feature. * `max_brightness` * The maximum value which the HSV "V" component is scaled to, from 0 to 255. * Default: `255` - * `rgbw` - * Enable RGBW LEDs. - * Default: `false` * `saturation_steps` * The number of saturation adjustment steps. * Default: `17` @@ -855,3 +852,6 @@ Configures the [WS2812](ws2812_driver.md) driver. * `i2c_timeout` * The I²C timeout in milliseconds (`i2c` driver only). * Default: `100` (100 ms) + * `rgbw` + * Enable RGBW LEDs. + * Default: `false` diff --git a/docs/ws2812_driver.md b/docs/ws2812_driver.md index 006529cc8ae..8851c042f04 100644 --- a/docs/ws2812_driver.md +++ b/docs/ws2812_driver.md @@ -33,6 +33,7 @@ Add the following to your `config.h`: |`WS2812_T0H` |`350` |The length of a "0" bit's high phase in nanoseconds | |`WS2812_TRST_US` |`280` |The length of the reset phase in microseconds | |`WS2812_BYTE_ORDER`|`WS2812_BYTE_ORDER_GRB`|The byte order of the RGB data | +|`WS2812_RGBW` |*Not defined* |Enables RGBW support (except `i2c` driver) | ### Timing Adjustment :id=timing-adjustment @@ -58,6 +59,27 @@ Where the byte order may be one of: |`RGB` |WS2812B-2020 | |`BGR` |TM1812 | +### RGBW Support :id=rgbw-support + +Rendering the color white with RGB LEDs is typically inconsistent due to inherent variations between each individual LED die. However, some WS2812 variants (such as SK6812RGBW) also possess a white LED along with the red, green, and blue channels, which allows for a more accurate white to be displayed. + +QMK can automatically convert the RGB data to be sent to the LEDs to mix in the white channel: + +``` +w = min(r, g, b) +r -= w +g -= w +b -= w +``` + +Thus, an RGB triplet of `255,255,255` will simply turn on the white LED fully (`0,0,0,255`). + +To enable RGBW conversion, add the following to your `config.h`: + +```c +#define WS2812_RGBW +``` + ## Driver Configuration :id=driver-configuration Driver selection can be configured in `rules.mk` as `WS2812_DRIVER`, or in `info.json` as `ws2812.driver`. Valid values are `bitbang` (default), `i2c`, `spi`, `pwm`, `vendor`, or `custom`. See below for information on individual drivers. diff --git a/keyboards/ergodox_ez/config.h b/keyboards/ergodox_ez/config.h index 8209c21dba5..3688e007854 100644 --- a/keyboards/ergodox_ez/config.h +++ b/keyboards/ergodox_ez/config.h @@ -73,8 +73,6 @@ along with this program. If not, see . /* fix space cadet rollover issue */ #define DISABLE_SPACE_CADET_ROLLOVER -#define RGBW - /* * The debounce filtering reports a key/switch change directly, * without any extra delay. After that the debounce logic will filter diff --git a/keyboards/ergodox_ez/info.json b/keyboards/ergodox_ez/info.json index f2495a409c3..a560e97a0b5 100644 --- a/keyboards/ergodox_ez/info.json +++ b/keyboards/ergodox_ez/info.json @@ -27,7 +27,8 @@ "debounce_type": "sym_eager_pr" }, "ws2812": { - "pin": "D7" + "pin": "D7", + "rgbw": true }, "rgb_matrix": { "animations": { diff --git a/keyboards/ergodox_ez/shine/rgblight_custom.c b/keyboards/ergodox_ez/shine/rgblight_custom.c index feac50cba08..29060e76fce 100644 --- a/keyboards/ergodox_ez/shine/rgblight_custom.c +++ b/keyboards/ergodox_ez/shine/rgblight_custom.c @@ -25,7 +25,7 @@ void setleds_custom(rgb_led_t *led, uint16_t led_num) { uint16_t length = 0; int i = 0; int j = 0; -# ifdef RGBW +# ifdef WS2812_RGBW int bytes_per_led = 4; # else int bytes_per_led = 3; @@ -52,7 +52,7 @@ void setleds_custom(rgb_led_t *led, uint16_t led_num) { data[j++] = data_byte[0]; data[j++] = data_byte[1]; data[j++] = data_byte[2]; -#ifdef RGBW +#ifdef WS2812_RGBW data[j++] = data_byte[3]; #endif } diff --git a/keyboards/handwired/tennie/config.h b/keyboards/handwired/tennie/config.h index 7c77f53a82d..dcbcfeaaa8c 100644 --- a/keyboards/handwired/tennie/config.h +++ b/keyboards/handwired/tennie/config.h @@ -17,8 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBW - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/handwired/tennie/keyboard.json b/keyboards/handwired/tennie/keyboard.json index 34e6676c953..36c1266d50b 100644 --- a/keyboards/handwired/tennie/keyboard.json +++ b/keyboards/handwired/tennie/keyboard.json @@ -26,7 +26,8 @@ } }, "ws2812": { - "pin": "D1" + "pin": "D1", + "rgbw": true }, "features": { "bootmagic": true, diff --git a/keyboards/oddforge/vea/ws2812_custom.c b/keyboards/oddforge/vea/ws2812_custom.c index a037b88b3e6..317f98130b1 100644 --- a/keyboards/oddforge/vea/ws2812_custom.c +++ b/keyboards/oddforge/vea/ws2812_custom.c @@ -1,7 +1,7 @@ #include "ws2812.h" #include "i2c_master.h" -#ifdef RGBW +#ifdef WS2812_RGBW # error "RGBW not supported" #endif diff --git a/keyboards/rgbkb/pan/pan.c b/keyboards/rgbkb/pan/pan.c index 191ff1ac1fb..401831e0e20 100644 --- a/keyboards/rgbkb/pan/pan.c +++ b/keyboards/rgbkb/pan/pan.c @@ -42,7 +42,7 @@ static inline void setled(int i, uint8_t r, uint8_t g, uint8_t b) { rgb_matrix_ws2812_array[i].g = g; rgb_matrix_ws2812_array[i].b = b; } -# ifdef RGBW +# ifdef WS2812_RGBW convert_rgb_to_rgbw(&rgb_matrix_ws2812_array[i]); # endif } diff --git a/keyboards/westfoxtrot/aanzee/config.h b/keyboards/westfoxtrot/aanzee/config.h index c024f9d8d91..cd1f84bc1fc 100644 --- a/keyboards/westfoxtrot/aanzee/config.h +++ b/keyboards/westfoxtrot/aanzee/config.h @@ -17,8 +17,6 @@ along with this program. If not, see . #pragma once -#define RGBW - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ diff --git a/keyboards/westfoxtrot/aanzee/keyboard.json b/keyboards/westfoxtrot/aanzee/keyboard.json index 7a12a3e52e3..898fe9e62b3 100644 --- a/keyboards/westfoxtrot/aanzee/keyboard.json +++ b/keyboards/westfoxtrot/aanzee/keyboard.json @@ -52,7 +52,8 @@ } }, "ws2812": { - "pin": "E6" + "pin": "E6", + "rgbw": true }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/platforms/avr/drivers/ws2812_i2c.c b/platforms/avr/drivers/ws2812_i2c.c index 60b466c32a9..86a5ac8394e 100644 --- a/platforms/avr/drivers/ws2812_i2c.c +++ b/platforms/avr/drivers/ws2812_i2c.c @@ -1,7 +1,7 @@ #include "ws2812.h" #include "i2c_master.h" -#ifdef RGBW +#ifdef WS2812_RGBW # error "RGBW not supported" #endif diff --git a/platforms/chibios/drivers/vendor/RP/RP2040/ws2812_vendor.c b/platforms/chibios/drivers/vendor/RP/RP2040/ws2812_vendor.c index 95a827e4b8a..41a5311719f 100644 --- a/platforms/chibios/drivers/vendor/RP/RP2040/ws2812_vendor.c +++ b/platforms/chibios/drivers/vendor/RP/RP2040/ws2812_vendor.c @@ -161,7 +161,7 @@ static void ws2812_dma_callback(void* p, uint32_t ct) { // FIFO is already empty. rtcnt_t time_to_completion = (pio_sm_get_tx_fifo_level(pio, STATE_MACHINE) + 1) * MAX(WS2812_T1H + WS2812_T1L, WS2812_T0H + WS2812_T0L); -#if defined(RGBW) +#if defined(WS2812_RGBW) time_to_completion *= 32; #else time_to_completion *= 24; @@ -222,7 +222,7 @@ void ws2812_init(void) { sm_config_set_sideset(&config, 1, false, false); #endif -#if defined(RGBW) +#if defined(WS2812_RGBW) sm_config_set_out_shift(&config, false, true, 32); #else sm_config_set_out_shift(&config, false, true, 24); @@ -270,7 +270,7 @@ void ws2812_setleds(rgb_led_t* ledarray, uint16_t leds) { sync_ws2812_transfer(); for (int i = 0; i < leds; i++) { -#if defined(RGBW) +#if defined(WS2812_RGBW) WS2812_BUFFER[i] = rgbw8888_to_u32(ledarray[i].r, ledarray[i].g, ledarray[i].b, ledarray[i].w); #else WS2812_BUFFER[i] = rgbw8888_to_u32(ledarray[i].r, ledarray[i].g, ledarray[i].b, 0); diff --git a/platforms/chibios/drivers/ws2812_bitbang.c b/platforms/chibios/drivers/ws2812_bitbang.c index 9ed6bacd5ad..96378ec0ac5 100644 --- a/platforms/chibios/drivers/ws2812_bitbang.c +++ b/platforms/chibios/drivers/ws2812_bitbang.c @@ -101,7 +101,7 @@ void ws2812_setleds(rgb_led_t *ledarray, uint16_t leds) { sendByte(ledarray[i].r); #endif -#ifdef RGBW +#ifdef WS2812_RGBW sendByte(ledarray[i].w); #endif } diff --git a/platforms/chibios/drivers/ws2812_pwm.c b/platforms/chibios/drivers/ws2812_pwm.c index 7dc3414eade..1e9d2ebb410 100644 --- a/platforms/chibios/drivers/ws2812_pwm.c +++ b/platforms/chibios/drivers/ws2812_pwm.c @@ -16,7 +16,7 @@ /* Adapted from https://github.com/joewa/WS2812-LED-Driver_ChibiOS/ */ -#ifdef RGBW +#ifdef WS2812_RGBW # define WS2812_CHANNELS 4 #else # define WS2812_CHANNELS 3 @@ -262,7 +262,7 @@ # define WS2812_BLUE_BIT(led, bit) WS2812_BIT((led), 0, (bit)) #endif -#ifdef RGBW +#ifdef WS2812_RGBW /** * @brief Determine the index in @ref ws2812_frame_buffer "the frame buffer" of a given white bit * @@ -381,7 +381,7 @@ void ws2812_write_led_rgbw(uint16_t led_number, uint8_t r, uint8_t g, uint8_t b, ws2812_frame_buffer[WS2812_RED_BIT(led_number, bit)] = ((r >> bit) & 0x01) ? WS2812_DUTYCYCLE_1 : WS2812_DUTYCYCLE_0; ws2812_frame_buffer[WS2812_GREEN_BIT(led_number, bit)] = ((g >> bit) & 0x01) ? WS2812_DUTYCYCLE_1 : WS2812_DUTYCYCLE_0; ws2812_frame_buffer[WS2812_BLUE_BIT(led_number, bit)] = ((b >> bit) & 0x01) ? WS2812_DUTYCYCLE_1 : WS2812_DUTYCYCLE_0; -#ifdef RGBW +#ifdef WS2812_RGBW ws2812_frame_buffer[WS2812_WHITE_BIT(led_number, bit)] = ((w >> bit) & 0x01) ? WS2812_DUTYCYCLE_1 : WS2812_DUTYCYCLE_0; #endif } @@ -390,7 +390,7 @@ void ws2812_write_led_rgbw(uint16_t led_number, uint8_t r, uint8_t g, uint8_t b, // Setleds for standard RGB void ws2812_setleds(rgb_led_t* ledarray, uint16_t leds) { for (uint16_t i = 0; i < leds; i++) { -#ifdef RGBW +#ifdef WS2812_RGBW ws2812_write_led_rgbw(i, ledarray[i].r, ledarray[i].g, ledarray[i].b, ledarray[i].w); #else ws2812_write_led(i, ledarray[i].r, ledarray[i].g, ledarray[i].b); diff --git a/platforms/chibios/drivers/ws2812_spi.c b/platforms/chibios/drivers/ws2812_spi.c index 5b990ccaa06..ad2e87781c4 100644 --- a/platforms/chibios/drivers/ws2812_spi.c +++ b/platforms/chibios/drivers/ws2812_spi.c @@ -76,7 +76,7 @@ #endif #define BYTES_FOR_LED_BYTE 4 -#ifdef RGBW +#ifdef WS2812_RGBW # define WS2812_CHANNELS 4 #else # define WS2812_CHANNELS 3 @@ -131,7 +131,7 @@ static void set_led_color_rgb(rgb_led_t color, int pos) { for (int j = 0; j < 4; j++) tx_start[BYTES_FOR_LED * pos + BYTES_FOR_LED_BYTE * 2 + j] = get_protocol_eq(color.r, j); #endif -#ifdef RGBW +#ifdef WS2812_RGBW for (int j = 0; j < 4; j++) tx_start[BYTES_FOR_LED * pos + BYTES_FOR_LED_BYTE * 4 + j] = get_protocol_eq(color.w, j); #endif diff --git a/quantum/color.c b/quantum/color.c index 395383f428e..96d548a33cc 100644 --- a/quantum/color.c +++ b/quantum/color.c @@ -109,7 +109,7 @@ RGB hsv_to_rgb_nocie(HSV hsv) { return hsv_to_rgb_impl(hsv, false); } -#ifdef RGBW +#ifdef WS2812_RGBW void convert_rgb_to_rgbw(rgb_led_t *led) { // Determine lowest value in all three colors, put that into // the white channel and then shift all colors by that amount diff --git a/quantum/color.h b/quantum/color.h index 00a3bfb3f84..b6a9dd0641c 100644 --- a/quantum/color.h +++ b/quantum/color.h @@ -96,7 +96,7 @@ typedef struct PACKED rgb_led_t { uint8_t g; uint8_t r; #endif -#ifdef RGBW +#ifdef WS2812_RGBW uint8_t w; #endif } rgb_led_t; @@ -111,6 +111,6 @@ typedef struct PACKED HSV { RGB hsv_to_rgb(HSV hsv); RGB hsv_to_rgb_nocie(HSV hsv); -#ifdef RGBW +#ifdef WS2812_RGBW void convert_rgb_to_rgbw(rgb_led_t *led); #endif diff --git a/quantum/rgb_matrix/rgb_matrix_drivers.c b/quantum/rgb_matrix/rgb_matrix_drivers.c index 4370996d0e1..db3a2ef9e02 100644 --- a/quantum/rgb_matrix/rgb_matrix_drivers.c +++ b/quantum/rgb_matrix/rgb_matrix_drivers.c @@ -185,7 +185,7 @@ static inline void setled(int i, uint8_t r, uint8_t g, uint8_t b) { rgb_matrix_ws2812_array[i].r = r; rgb_matrix_ws2812_array[i].g = g; rgb_matrix_ws2812_array[i].b = b; -# ifdef RGBW +# ifdef WS2812_RGBW convert_rgb_to_rgbw(&rgb_matrix_ws2812_array[i]); # endif } diff --git a/quantum/rgblight/rgblight.c b/quantum/rgblight/rgblight.c index 62137c020bd..b0f2dfdc1d8 100644 --- a/quantum/rgblight/rgblight.c +++ b/quantum/rgblight/rgblight.c @@ -149,7 +149,7 @@ void setrgb(uint8_t r, uint8_t g, uint8_t b, rgb_led_t *led1) { led1->r = r; led1->g = g; led1->b = b; -#ifdef RGBW +#ifdef WS2812_RGBW led1->w = 0; #endif } @@ -652,7 +652,7 @@ void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b) { led[i].r = r; led[i].g = g; led[i].b = b; -#ifdef RGBW +#ifdef WS2812_RGBW led[i].w = 0; #endif } @@ -667,7 +667,7 @@ void rgblight_setrgb_at(uint8_t r, uint8_t g, uint8_t b, uint8_t index) { led[index].r = r; led[index].g = g; led[index].b = b; -#ifdef RGBW +#ifdef WS2812_RGBW led[index].w = 0; #endif rgblight_set(); @@ -704,7 +704,7 @@ void rgblight_setrgb_range(uint8_t r, uint8_t g, uint8_t b, uint8_t start, uint8 led[i].r = r; led[i].g = g; led[i].b = b; -#ifdef RGBW +#ifdef WS2812_RGBW led[i].w = 0; #endif } @@ -905,7 +905,7 @@ void rgblight_set(void) { led[i].r = 0; led[i].g = 0; led[i].b = 0; -#ifdef RGBW +#ifdef WS2812_RGBW led[i].w = 0; #endif } @@ -933,7 +933,7 @@ void rgblight_set(void) { start_led = led + rgblight_ranges.clipping_start_pos; #endif -#ifdef RGBW +#ifdef WS2812_RGBW for (uint8_t i = 0; i < num_leds; i++) { convert_rgb_to_rgbw(&start_led[i]); } @@ -1263,7 +1263,7 @@ void rgblight_effect_snake(animation_status_t *anim) { ledp->r = 0; ledp->g = 0; ledp->b = 0; -# ifdef RGBW +# ifdef WS2812_RGBW ledp->w = 0; # endif for (j = 0; j < RGBLIGHT_EFFECT_SNAKE_LENGTH; j++) { @@ -1323,7 +1323,7 @@ void rgblight_effect_knight(animation_status_t *anim) { led[i].r = 0; led[i].g = 0; led[i].b = 0; -# ifdef RGBW +# ifdef WS2812_RGBW led[i].w = 0; # endif } @@ -1337,7 +1337,7 @@ void rgblight_effect_knight(animation_status_t *anim) { led[cur].r = 0; led[cur].g = 0; led[cur].b = 0; -# ifdef RGBW +# ifdef WS2812_RGBW led[cur].w = 0; # endif } From a65818d929f415cc1b13ef06769a143579c91c67 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sat, 27 Apr 2024 19:40:36 +0100 Subject: [PATCH 14/55] Migrate build target markers to keyboard.json - BM (#23627) --- .../charybdis/3x5/blackpill/{info.json => keyboard.json} | 0 .../charybdis/3x5/v1/elitec/{info.json => keyboard.json} | 0 .../charybdis/3x5/v2/elitec/{info.json => keyboard.json} | 0 .../charybdis/3x5/v2/splinky_2/{info.json => keyboard.json} | 0 .../charybdis/3x5/v2/splinky_3/{info.json => keyboard.json} | 0 .../charybdis/3x5/v2/stemcell/{info.json => keyboard.json} | 0 .../charybdis/3x6/blackpill/{info.json => keyboard.json} | 0 .../charybdis/3x6/v1/elitec/{info.json => keyboard.json} | 0 .../charybdis/3x6/v2/elitec/{info.json => keyboard.json} | 0 .../charybdis/3x6/v2/splinky_2/{info.json => keyboard.json} | 0 .../charybdis/3x6/v2/splinky_3/{info.json => keyboard.json} | 0 .../charybdis/3x6/v2/stemcell/{info.json => keyboard.json} | 0 .../charybdis/4x6/blackpill/{info.json => keyboard.json} | 0 .../charybdis/4x6/v1/elitec/{info.json => keyboard.json} | 0 .../charybdis/4x6/v2/elitec/{info.json => keyboard.json} | 0 .../charybdis/4x6/v2/splinky_2/{info.json => keyboard.json} | 0 .../charybdis/4x6/v2/splinky_3/{info.json => keyboard.json} | 0 .../charybdis/4x6/v2/stemcell/{info.json => keyboard.json} | 0 .../dilemma/3x5_2/assembled/{info.json => keyboard.json} | 0 .../bastardkb/dilemma/3x5_2/splinky/{info.json => keyboard.json} | 0 keyboards/bastardkb/dilemma/3x5_3/{info.json => keyboard.json} | 0 keyboards/bastardkb/dilemma/4x6_4/{info.json => keyboard.json} | 0 keyboards/bastardkb/scylla/blackpill/{info.json => keyboard.json} | 0 keyboards/bastardkb/scylla/v1/elitec/{info.json => keyboard.json} | 0 keyboards/bastardkb/scylla/v2/elitec/{info.json => keyboard.json} | 0 .../bastardkb/scylla/v2/splinky_2/{info.json => keyboard.json} | 0 .../bastardkb/scylla/v2/splinky_3/{info.json => keyboard.json} | 0 .../bastardkb/scylla/v2/stemcell/{info.json => keyboard.json} | 0 .../bastardkb/skeletyl/blackpill/{info.json => keyboard.json} | 0 .../bastardkb/skeletyl/v1/elitec/{info.json => keyboard.json} | 0 .../bastardkb/skeletyl/v2/elitec/{info.json => keyboard.json} | 0 .../bastardkb/skeletyl/v2/splinky_2/{info.json => keyboard.json} | 0 .../bastardkb/skeletyl/v2/splinky_3/{info.json => keyboard.json} | 0 .../bastardkb/skeletyl/v2/stemcell/{info.json => keyboard.json} | 0 .../bastardkb/tbkmini/blackpill/{info.json => keyboard.json} | 0 .../bastardkb/tbkmini/v1/elitec/{info.json => keyboard.json} | 0 .../bastardkb/tbkmini/v2/elitec/{info.json => keyboard.json} | 0 .../bastardkb/tbkmini/v2/splinky_2/{info.json => keyboard.json} | 0 .../bastardkb/tbkmini/v2/splinky_3/{info.json => keyboard.json} | 0 .../bastardkb/tbkmini/v2/stemcell/{info.json => keyboard.json} | 0 keyboards/mechlovin/hex4b/rev1/{info.json => keyboard.json} | 0 keyboards/mechlovin/infinity87/rev2/{info.json => keyboard.json} | 0 keyboards/mechlovin/infinity875/{info.json => keyboard.json} | 0 keyboards/mechlovin/jay60/{info.json => keyboard.json} | 0 keyboards/mechlovin/mechlovin9/rev2/{info.json => keyboard.json} | 0 keyboards/mechlovin/olly/bb/{info.json => keyboard.json} | 0 keyboards/mechlovin/olly/jf/rev1/{info.json => keyboard.json} | 0 keyboards/mechlovin/serratus/{info.json => keyboard.json} | 0 keyboards/mechlovin/th1800/{info.json => keyboard.json} | 0 keyboards/mechstudio/chapter1/{info.json => keyboard.json} | 0 keyboards/mechstudio/ud_40_ortho/{info.json => keyboard.json} | 0 keyboards/mechwild/bbs/{info.json => keyboard.json} | 0 keyboards/mechwild/puckbuddy/{info.json => keyboard.json} | 0 keyboards/mecxlabs/mp1/{info.json => keyboard.json} | 0 keyboards/meetlab/kafkasplit/{info.json => keyboard.json} | 0 keyboards/mexsistor/ludmila/{info.json => keyboard.json} | 0 keyboards/minimon/bartlesplit/{info.json => keyboard.json} | 0 keyboards/mitosis/{info.json => keyboard.json} | 0 keyboards/mkh_studio/bully/{info.json => keyboard.json} | 0 keyboards/mlego/m60_split/rev1/{info.json => keyboard.json} | 0 keyboards/mlego/m60_split/rev2/{info.json => keyboard.json} | 0 keyboards/molecule/{info.json => keyboard.json} | 0 keyboards/monokei/mnk1800s/{info.json => keyboard.json} | 0 keyboards/monokei/mnk50/{info.json => keyboard.json} | 0 keyboards/monokei/mnk75/{info.json => keyboard.json} | 0 keyboards/montsinger/rebound/rev4/{info.json => keyboard.json} | 0 keyboards/moon/{info.json => keyboard.json} | 0 keyboards/mt/split75/{info.json => keyboard.json} | 0 68 files changed, 0 insertions(+), 0 deletions(-) rename keyboards/bastardkb/charybdis/3x5/blackpill/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/charybdis/3x5/v1/elitec/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/charybdis/3x5/v2/elitec/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/charybdis/3x5/v2/splinky_2/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/charybdis/3x5/v2/splinky_3/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/charybdis/3x5/v2/stemcell/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/charybdis/3x6/blackpill/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/charybdis/3x6/v1/elitec/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/charybdis/3x6/v2/elitec/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/charybdis/3x6/v2/splinky_2/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/charybdis/3x6/v2/splinky_3/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/charybdis/3x6/v2/stemcell/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/charybdis/4x6/blackpill/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/charybdis/4x6/v1/elitec/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/charybdis/4x6/v2/elitec/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/charybdis/4x6/v2/splinky_2/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/charybdis/4x6/v2/splinky_3/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/charybdis/4x6/v2/stemcell/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/dilemma/3x5_2/assembled/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/dilemma/3x5_2/splinky/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/dilemma/3x5_3/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/dilemma/4x6_4/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/scylla/blackpill/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/scylla/v1/elitec/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/scylla/v2/elitec/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/scylla/v2/splinky_2/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/scylla/v2/splinky_3/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/scylla/v2/stemcell/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/skeletyl/blackpill/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/skeletyl/v1/elitec/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/skeletyl/v2/elitec/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/skeletyl/v2/splinky_2/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/skeletyl/v2/splinky_3/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/skeletyl/v2/stemcell/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/tbkmini/blackpill/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/tbkmini/v1/elitec/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/tbkmini/v2/elitec/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/tbkmini/v2/splinky_2/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/tbkmini/v2/splinky_3/{info.json => keyboard.json} (100%) rename keyboards/bastardkb/tbkmini/v2/stemcell/{info.json => keyboard.json} (100%) rename keyboards/mechlovin/hex4b/rev1/{info.json => keyboard.json} (100%) rename keyboards/mechlovin/infinity87/rev2/{info.json => keyboard.json} (100%) rename keyboards/mechlovin/infinity875/{info.json => keyboard.json} (100%) rename keyboards/mechlovin/jay60/{info.json => keyboard.json} (100%) rename keyboards/mechlovin/mechlovin9/rev2/{info.json => keyboard.json} (100%) rename keyboards/mechlovin/olly/bb/{info.json => keyboard.json} (100%) rename keyboards/mechlovin/olly/jf/rev1/{info.json => keyboard.json} (100%) rename keyboards/mechlovin/serratus/{info.json => keyboard.json} (100%) rename keyboards/mechlovin/th1800/{info.json => keyboard.json} (100%) rename keyboards/mechstudio/chapter1/{info.json => keyboard.json} (100%) rename keyboards/mechstudio/ud_40_ortho/{info.json => keyboard.json} (100%) rename keyboards/mechwild/bbs/{info.json => keyboard.json} (100%) rename keyboards/mechwild/puckbuddy/{info.json => keyboard.json} (100%) rename keyboards/mecxlabs/mp1/{info.json => keyboard.json} (100%) rename keyboards/meetlab/kafkasplit/{info.json => keyboard.json} (100%) rename keyboards/mexsistor/ludmila/{info.json => keyboard.json} (100%) rename keyboards/minimon/bartlesplit/{info.json => keyboard.json} (100%) rename keyboards/mitosis/{info.json => keyboard.json} (100%) rename keyboards/mkh_studio/bully/{info.json => keyboard.json} (100%) rename keyboards/mlego/m60_split/rev1/{info.json => keyboard.json} (100%) rename keyboards/mlego/m60_split/rev2/{info.json => keyboard.json} (100%) rename keyboards/molecule/{info.json => keyboard.json} (100%) rename keyboards/monokei/mnk1800s/{info.json => keyboard.json} (100%) rename keyboards/monokei/mnk50/{info.json => keyboard.json} (100%) rename keyboards/monokei/mnk75/{info.json => keyboard.json} (100%) rename keyboards/montsinger/rebound/rev4/{info.json => keyboard.json} (100%) rename keyboards/moon/{info.json => keyboard.json} (100%) rename keyboards/mt/split75/{info.json => keyboard.json} (100%) diff --git a/keyboards/bastardkb/charybdis/3x5/blackpill/info.json b/keyboards/bastardkb/charybdis/3x5/blackpill/keyboard.json similarity index 100% rename from keyboards/bastardkb/charybdis/3x5/blackpill/info.json rename to keyboards/bastardkb/charybdis/3x5/blackpill/keyboard.json diff --git a/keyboards/bastardkb/charybdis/3x5/v1/elitec/info.json b/keyboards/bastardkb/charybdis/3x5/v1/elitec/keyboard.json similarity index 100% rename from keyboards/bastardkb/charybdis/3x5/v1/elitec/info.json rename to keyboards/bastardkb/charybdis/3x5/v1/elitec/keyboard.json diff --git a/keyboards/bastardkb/charybdis/3x5/v2/elitec/info.json b/keyboards/bastardkb/charybdis/3x5/v2/elitec/keyboard.json similarity index 100% rename from keyboards/bastardkb/charybdis/3x5/v2/elitec/info.json rename to keyboards/bastardkb/charybdis/3x5/v2/elitec/keyboard.json diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/info.json b/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/keyboard.json similarity index 100% rename from keyboards/bastardkb/charybdis/3x5/v2/splinky_2/info.json rename to keyboards/bastardkb/charybdis/3x5/v2/splinky_2/keyboard.json diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/info.json b/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/keyboard.json similarity index 100% rename from keyboards/bastardkb/charybdis/3x5/v2/splinky_3/info.json rename to keyboards/bastardkb/charybdis/3x5/v2/splinky_3/keyboard.json diff --git a/keyboards/bastardkb/charybdis/3x5/v2/stemcell/info.json b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/keyboard.json similarity index 100% rename from keyboards/bastardkb/charybdis/3x5/v2/stemcell/info.json rename to keyboards/bastardkb/charybdis/3x5/v2/stemcell/keyboard.json diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/info.json b/keyboards/bastardkb/charybdis/3x6/blackpill/keyboard.json similarity index 100% rename from keyboards/bastardkb/charybdis/3x6/blackpill/info.json rename to keyboards/bastardkb/charybdis/3x6/blackpill/keyboard.json diff --git a/keyboards/bastardkb/charybdis/3x6/v1/elitec/info.json b/keyboards/bastardkb/charybdis/3x6/v1/elitec/keyboard.json similarity index 100% rename from keyboards/bastardkb/charybdis/3x6/v1/elitec/info.json rename to keyboards/bastardkb/charybdis/3x6/v1/elitec/keyboard.json diff --git a/keyboards/bastardkb/charybdis/3x6/v2/elitec/info.json b/keyboards/bastardkb/charybdis/3x6/v2/elitec/keyboard.json similarity index 100% rename from keyboards/bastardkb/charybdis/3x6/v2/elitec/info.json rename to keyboards/bastardkb/charybdis/3x6/v2/elitec/keyboard.json diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/info.json b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/keyboard.json similarity index 100% rename from keyboards/bastardkb/charybdis/3x6/v2/splinky_2/info.json rename to keyboards/bastardkb/charybdis/3x6/v2/splinky_2/keyboard.json diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/info.json b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/keyboard.json similarity index 100% rename from keyboards/bastardkb/charybdis/3x6/v2/splinky_3/info.json rename to keyboards/bastardkb/charybdis/3x6/v2/splinky_3/keyboard.json diff --git a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/info.json b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/keyboard.json similarity index 100% rename from keyboards/bastardkb/charybdis/3x6/v2/stemcell/info.json rename to keyboards/bastardkb/charybdis/3x6/v2/stemcell/keyboard.json diff --git a/keyboards/bastardkb/charybdis/4x6/blackpill/info.json b/keyboards/bastardkb/charybdis/4x6/blackpill/keyboard.json similarity index 100% rename from keyboards/bastardkb/charybdis/4x6/blackpill/info.json rename to keyboards/bastardkb/charybdis/4x6/blackpill/keyboard.json diff --git a/keyboards/bastardkb/charybdis/4x6/v1/elitec/info.json b/keyboards/bastardkb/charybdis/4x6/v1/elitec/keyboard.json similarity index 100% rename from keyboards/bastardkb/charybdis/4x6/v1/elitec/info.json rename to keyboards/bastardkb/charybdis/4x6/v1/elitec/keyboard.json diff --git a/keyboards/bastardkb/charybdis/4x6/v2/elitec/info.json b/keyboards/bastardkb/charybdis/4x6/v2/elitec/keyboard.json similarity index 100% rename from keyboards/bastardkb/charybdis/4x6/v2/elitec/info.json rename to keyboards/bastardkb/charybdis/4x6/v2/elitec/keyboard.json diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/info.json b/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/keyboard.json similarity index 100% rename from keyboards/bastardkb/charybdis/4x6/v2/splinky_2/info.json rename to keyboards/bastardkb/charybdis/4x6/v2/splinky_2/keyboard.json diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/info.json b/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/keyboard.json similarity index 100% rename from keyboards/bastardkb/charybdis/4x6/v2/splinky_3/info.json rename to keyboards/bastardkb/charybdis/4x6/v2/splinky_3/keyboard.json diff --git a/keyboards/bastardkb/charybdis/4x6/v2/stemcell/info.json b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/keyboard.json similarity index 100% rename from keyboards/bastardkb/charybdis/4x6/v2/stemcell/info.json rename to keyboards/bastardkb/charybdis/4x6/v2/stemcell/keyboard.json diff --git a/keyboards/bastardkb/dilemma/3x5_2/assembled/info.json b/keyboards/bastardkb/dilemma/3x5_2/assembled/keyboard.json similarity index 100% rename from keyboards/bastardkb/dilemma/3x5_2/assembled/info.json rename to keyboards/bastardkb/dilemma/3x5_2/assembled/keyboard.json diff --git a/keyboards/bastardkb/dilemma/3x5_2/splinky/info.json b/keyboards/bastardkb/dilemma/3x5_2/splinky/keyboard.json similarity index 100% rename from keyboards/bastardkb/dilemma/3x5_2/splinky/info.json rename to keyboards/bastardkb/dilemma/3x5_2/splinky/keyboard.json diff --git a/keyboards/bastardkb/dilemma/3x5_3/info.json b/keyboards/bastardkb/dilemma/3x5_3/keyboard.json similarity index 100% rename from keyboards/bastardkb/dilemma/3x5_3/info.json rename to keyboards/bastardkb/dilemma/3x5_3/keyboard.json diff --git a/keyboards/bastardkb/dilemma/4x6_4/info.json b/keyboards/bastardkb/dilemma/4x6_4/keyboard.json similarity index 100% rename from keyboards/bastardkb/dilemma/4x6_4/info.json rename to keyboards/bastardkb/dilemma/4x6_4/keyboard.json diff --git a/keyboards/bastardkb/scylla/blackpill/info.json b/keyboards/bastardkb/scylla/blackpill/keyboard.json similarity index 100% rename from keyboards/bastardkb/scylla/blackpill/info.json rename to keyboards/bastardkb/scylla/blackpill/keyboard.json diff --git a/keyboards/bastardkb/scylla/v1/elitec/info.json b/keyboards/bastardkb/scylla/v1/elitec/keyboard.json similarity index 100% rename from keyboards/bastardkb/scylla/v1/elitec/info.json rename to keyboards/bastardkb/scylla/v1/elitec/keyboard.json diff --git a/keyboards/bastardkb/scylla/v2/elitec/info.json b/keyboards/bastardkb/scylla/v2/elitec/keyboard.json similarity index 100% rename from keyboards/bastardkb/scylla/v2/elitec/info.json rename to keyboards/bastardkb/scylla/v2/elitec/keyboard.json diff --git a/keyboards/bastardkb/scylla/v2/splinky_2/info.json b/keyboards/bastardkb/scylla/v2/splinky_2/keyboard.json similarity index 100% rename from keyboards/bastardkb/scylla/v2/splinky_2/info.json rename to keyboards/bastardkb/scylla/v2/splinky_2/keyboard.json diff --git a/keyboards/bastardkb/scylla/v2/splinky_3/info.json b/keyboards/bastardkb/scylla/v2/splinky_3/keyboard.json similarity index 100% rename from keyboards/bastardkb/scylla/v2/splinky_3/info.json rename to keyboards/bastardkb/scylla/v2/splinky_3/keyboard.json diff --git a/keyboards/bastardkb/scylla/v2/stemcell/info.json b/keyboards/bastardkb/scylla/v2/stemcell/keyboard.json similarity index 100% rename from keyboards/bastardkb/scylla/v2/stemcell/info.json rename to keyboards/bastardkb/scylla/v2/stemcell/keyboard.json diff --git a/keyboards/bastardkb/skeletyl/blackpill/info.json b/keyboards/bastardkb/skeletyl/blackpill/keyboard.json similarity index 100% rename from keyboards/bastardkb/skeletyl/blackpill/info.json rename to keyboards/bastardkb/skeletyl/blackpill/keyboard.json diff --git a/keyboards/bastardkb/skeletyl/v1/elitec/info.json b/keyboards/bastardkb/skeletyl/v1/elitec/keyboard.json similarity index 100% rename from keyboards/bastardkb/skeletyl/v1/elitec/info.json rename to keyboards/bastardkb/skeletyl/v1/elitec/keyboard.json diff --git a/keyboards/bastardkb/skeletyl/v2/elitec/info.json b/keyboards/bastardkb/skeletyl/v2/elitec/keyboard.json similarity index 100% rename from keyboards/bastardkb/skeletyl/v2/elitec/info.json rename to keyboards/bastardkb/skeletyl/v2/elitec/keyboard.json diff --git a/keyboards/bastardkb/skeletyl/v2/splinky_2/info.json b/keyboards/bastardkb/skeletyl/v2/splinky_2/keyboard.json similarity index 100% rename from keyboards/bastardkb/skeletyl/v2/splinky_2/info.json rename to keyboards/bastardkb/skeletyl/v2/splinky_2/keyboard.json diff --git a/keyboards/bastardkb/skeletyl/v2/splinky_3/info.json b/keyboards/bastardkb/skeletyl/v2/splinky_3/keyboard.json similarity index 100% rename from keyboards/bastardkb/skeletyl/v2/splinky_3/info.json rename to keyboards/bastardkb/skeletyl/v2/splinky_3/keyboard.json diff --git a/keyboards/bastardkb/skeletyl/v2/stemcell/info.json b/keyboards/bastardkb/skeletyl/v2/stemcell/keyboard.json similarity index 100% rename from keyboards/bastardkb/skeletyl/v2/stemcell/info.json rename to keyboards/bastardkb/skeletyl/v2/stemcell/keyboard.json diff --git a/keyboards/bastardkb/tbkmini/blackpill/info.json b/keyboards/bastardkb/tbkmini/blackpill/keyboard.json similarity index 100% rename from keyboards/bastardkb/tbkmini/blackpill/info.json rename to keyboards/bastardkb/tbkmini/blackpill/keyboard.json diff --git a/keyboards/bastardkb/tbkmini/v1/elitec/info.json b/keyboards/bastardkb/tbkmini/v1/elitec/keyboard.json similarity index 100% rename from keyboards/bastardkb/tbkmini/v1/elitec/info.json rename to keyboards/bastardkb/tbkmini/v1/elitec/keyboard.json diff --git a/keyboards/bastardkb/tbkmini/v2/elitec/info.json b/keyboards/bastardkb/tbkmini/v2/elitec/keyboard.json similarity index 100% rename from keyboards/bastardkb/tbkmini/v2/elitec/info.json rename to keyboards/bastardkb/tbkmini/v2/elitec/keyboard.json diff --git a/keyboards/bastardkb/tbkmini/v2/splinky_2/info.json b/keyboards/bastardkb/tbkmini/v2/splinky_2/keyboard.json similarity index 100% rename from keyboards/bastardkb/tbkmini/v2/splinky_2/info.json rename to keyboards/bastardkb/tbkmini/v2/splinky_2/keyboard.json diff --git a/keyboards/bastardkb/tbkmini/v2/splinky_3/info.json b/keyboards/bastardkb/tbkmini/v2/splinky_3/keyboard.json similarity index 100% rename from keyboards/bastardkb/tbkmini/v2/splinky_3/info.json rename to keyboards/bastardkb/tbkmini/v2/splinky_3/keyboard.json diff --git a/keyboards/bastardkb/tbkmini/v2/stemcell/info.json b/keyboards/bastardkb/tbkmini/v2/stemcell/keyboard.json similarity index 100% rename from keyboards/bastardkb/tbkmini/v2/stemcell/info.json rename to keyboards/bastardkb/tbkmini/v2/stemcell/keyboard.json diff --git a/keyboards/mechlovin/hex4b/rev1/info.json b/keyboards/mechlovin/hex4b/rev1/keyboard.json similarity index 100% rename from keyboards/mechlovin/hex4b/rev1/info.json rename to keyboards/mechlovin/hex4b/rev1/keyboard.json diff --git a/keyboards/mechlovin/infinity87/rev2/info.json b/keyboards/mechlovin/infinity87/rev2/keyboard.json similarity index 100% rename from keyboards/mechlovin/infinity87/rev2/info.json rename to keyboards/mechlovin/infinity87/rev2/keyboard.json diff --git a/keyboards/mechlovin/infinity875/info.json b/keyboards/mechlovin/infinity875/keyboard.json similarity index 100% rename from keyboards/mechlovin/infinity875/info.json rename to keyboards/mechlovin/infinity875/keyboard.json diff --git a/keyboards/mechlovin/jay60/info.json b/keyboards/mechlovin/jay60/keyboard.json similarity index 100% rename from keyboards/mechlovin/jay60/info.json rename to keyboards/mechlovin/jay60/keyboard.json diff --git a/keyboards/mechlovin/mechlovin9/rev2/info.json b/keyboards/mechlovin/mechlovin9/rev2/keyboard.json similarity index 100% rename from keyboards/mechlovin/mechlovin9/rev2/info.json rename to keyboards/mechlovin/mechlovin9/rev2/keyboard.json diff --git a/keyboards/mechlovin/olly/bb/info.json b/keyboards/mechlovin/olly/bb/keyboard.json similarity index 100% rename from keyboards/mechlovin/olly/bb/info.json rename to keyboards/mechlovin/olly/bb/keyboard.json diff --git a/keyboards/mechlovin/olly/jf/rev1/info.json b/keyboards/mechlovin/olly/jf/rev1/keyboard.json similarity index 100% rename from keyboards/mechlovin/olly/jf/rev1/info.json rename to keyboards/mechlovin/olly/jf/rev1/keyboard.json diff --git a/keyboards/mechlovin/serratus/info.json b/keyboards/mechlovin/serratus/keyboard.json similarity index 100% rename from keyboards/mechlovin/serratus/info.json rename to keyboards/mechlovin/serratus/keyboard.json diff --git a/keyboards/mechlovin/th1800/info.json b/keyboards/mechlovin/th1800/keyboard.json similarity index 100% rename from keyboards/mechlovin/th1800/info.json rename to keyboards/mechlovin/th1800/keyboard.json diff --git a/keyboards/mechstudio/chapter1/info.json b/keyboards/mechstudio/chapter1/keyboard.json similarity index 100% rename from keyboards/mechstudio/chapter1/info.json rename to keyboards/mechstudio/chapter1/keyboard.json diff --git a/keyboards/mechstudio/ud_40_ortho/info.json b/keyboards/mechstudio/ud_40_ortho/keyboard.json similarity index 100% rename from keyboards/mechstudio/ud_40_ortho/info.json rename to keyboards/mechstudio/ud_40_ortho/keyboard.json diff --git a/keyboards/mechwild/bbs/info.json b/keyboards/mechwild/bbs/keyboard.json similarity index 100% rename from keyboards/mechwild/bbs/info.json rename to keyboards/mechwild/bbs/keyboard.json diff --git a/keyboards/mechwild/puckbuddy/info.json b/keyboards/mechwild/puckbuddy/keyboard.json similarity index 100% rename from keyboards/mechwild/puckbuddy/info.json rename to keyboards/mechwild/puckbuddy/keyboard.json diff --git a/keyboards/mecxlabs/mp1/info.json b/keyboards/mecxlabs/mp1/keyboard.json similarity index 100% rename from keyboards/mecxlabs/mp1/info.json rename to keyboards/mecxlabs/mp1/keyboard.json diff --git a/keyboards/meetlab/kafkasplit/info.json b/keyboards/meetlab/kafkasplit/keyboard.json similarity index 100% rename from keyboards/meetlab/kafkasplit/info.json rename to keyboards/meetlab/kafkasplit/keyboard.json diff --git a/keyboards/mexsistor/ludmila/info.json b/keyboards/mexsistor/ludmila/keyboard.json similarity index 100% rename from keyboards/mexsistor/ludmila/info.json rename to keyboards/mexsistor/ludmila/keyboard.json diff --git a/keyboards/minimon/bartlesplit/info.json b/keyboards/minimon/bartlesplit/keyboard.json similarity index 100% rename from keyboards/minimon/bartlesplit/info.json rename to keyboards/minimon/bartlesplit/keyboard.json diff --git a/keyboards/mitosis/info.json b/keyboards/mitosis/keyboard.json similarity index 100% rename from keyboards/mitosis/info.json rename to keyboards/mitosis/keyboard.json diff --git a/keyboards/mkh_studio/bully/info.json b/keyboards/mkh_studio/bully/keyboard.json similarity index 100% rename from keyboards/mkh_studio/bully/info.json rename to keyboards/mkh_studio/bully/keyboard.json diff --git a/keyboards/mlego/m60_split/rev1/info.json b/keyboards/mlego/m60_split/rev1/keyboard.json similarity index 100% rename from keyboards/mlego/m60_split/rev1/info.json rename to keyboards/mlego/m60_split/rev1/keyboard.json diff --git a/keyboards/mlego/m60_split/rev2/info.json b/keyboards/mlego/m60_split/rev2/keyboard.json similarity index 100% rename from keyboards/mlego/m60_split/rev2/info.json rename to keyboards/mlego/m60_split/rev2/keyboard.json diff --git a/keyboards/molecule/info.json b/keyboards/molecule/keyboard.json similarity index 100% rename from keyboards/molecule/info.json rename to keyboards/molecule/keyboard.json diff --git a/keyboards/monokei/mnk1800s/info.json b/keyboards/monokei/mnk1800s/keyboard.json similarity index 100% rename from keyboards/monokei/mnk1800s/info.json rename to keyboards/monokei/mnk1800s/keyboard.json diff --git a/keyboards/monokei/mnk50/info.json b/keyboards/monokei/mnk50/keyboard.json similarity index 100% rename from keyboards/monokei/mnk50/info.json rename to keyboards/monokei/mnk50/keyboard.json diff --git a/keyboards/monokei/mnk75/info.json b/keyboards/monokei/mnk75/keyboard.json similarity index 100% rename from keyboards/monokei/mnk75/info.json rename to keyboards/monokei/mnk75/keyboard.json diff --git a/keyboards/montsinger/rebound/rev4/info.json b/keyboards/montsinger/rebound/rev4/keyboard.json similarity index 100% rename from keyboards/montsinger/rebound/rev4/info.json rename to keyboards/montsinger/rebound/rev4/keyboard.json diff --git a/keyboards/moon/info.json b/keyboards/moon/keyboard.json similarity index 100% rename from keyboards/moon/info.json rename to keyboards/moon/keyboard.json diff --git a/keyboards/mt/split75/info.json b/keyboards/mt/split75/keyboard.json similarity index 100% rename from keyboards/mt/split75/info.json rename to keyboards/mt/split75/keyboard.json From e99b7f240aacd4d9a0182396533a3e972ea1f9a8 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sun, 28 Apr 2024 21:12:14 +1000 Subject: [PATCH 15/55] Remove broken CI workflow (#23631) --- .github/workflows/ci_builds.yml | 74 --------------------------------- 1 file changed, 74 deletions(-) delete mode 100644 .github/workflows/ci_builds.yml diff --git a/.github/workflows/ci_builds.yml b/.github/workflows/ci_builds.yml deleted file mode 100644 index 7fa07fe09d9..00000000000 --- a/.github/workflows/ci_builds.yml +++ /dev/null @@ -1,74 +0,0 @@ -name: CI Builds - -permissions: - contents: read - -on: - push: - branches: [master, develop] - workflow_dispatch: - inputs: - branch: - type: choice - description: 'Branch to build' - options: [master, develop] - -concurrency: ci_build-${{ github.event.inputs.branch || github.ref_name }} - -jobs: - ci_builds: - if: github.repository == 'qmk/qmk_firmware' - name: "CI Build" - runs-on: self-hosted - timeout-minutes: 1380 - - strategy: - fail-fast: false - matrix: - keymap: [default, via] - - container: ghcr.io/qmk/qmk_cli - - steps: - - name: Disable safe.directory check - run : git config --global --add safe.directory '*' - - - uses: actions/checkout@v4 - with: - submodules: recursive - ref: ${{ github.event.inputs.branch || github.ref }} - - - name: Install dependencies - run: pip3 install -r requirements.txt - - - name: Run `qmk mass-compile` (keymap ${{ matrix.keymap }}) - run: | - export NCPUS=$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null) - qmk mass-compile -t -j $NCPUS -km ${{ matrix.keymap }} -e DUMP_CI_METADATA=yes || touch .failed - # Generate the step summary markdown - ./util/ci/generate_failure_markdown.sh > $GITHUB_STEP_SUMMARY || true - # Truncate to a maximum of 1MB to deal with GitHub workflow limit - truncate --size='<960K' $GITHUB_STEP_SUMMARY || true - # Exit with failure if the compilation stage failed - [ ! -f .failed ] || exit 1 - - - name: 'Upload artifacts' - uses: actions/upload-artifact@v4 - if: always() - with: - name: artifacts-${{ github.event.inputs.branch || github.ref_name }}-${{ matrix.keymap }} - if-no-files-found: ignore - path: | - *.bin - *.hex - *.uf2 - .build/failed.* - - - name: 'CI Discord Notification' - if: always() - working-directory: util/ci/ - env: - DISCORD_WEBHOOK: ${{ secrets.CI_DISCORD_WEBHOOK }} - run: | - python3 -m pip install -r requirements.txt - python3 ./discord-results.py --branch ${{ github.event.inputs.branch || github.ref_name }} --keymap ${{ matrix.keymap }} --url ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} From 78a76b6c1e60e606eebc7cf571ee4251fc47d92a Mon Sep 17 00:00:00 2001 From: Danny Date: Mon, 29 Apr 2024 18:45:58 -0400 Subject: [PATCH 16/55] Iris keymap update (#23635) --- .../keebio/iris/keymaps/default/keymap.c | 115 ------------------ .../keebio/iris/keymaps/default/keymap.json | 29 +++++ keyboards/keebio/iris/keymaps/via/keymap.c | 29 ++--- 3 files changed, 36 insertions(+), 137 deletions(-) delete mode 100644 keyboards/keebio/iris/keymaps/default/keymap.c create mode 100644 keyboards/keebio/iris/keymaps/default/keymap.json diff --git a/keyboards/keebio/iris/keymaps/default/keymap.c b/keyboards/keebio/iris/keymaps/default/keymap.c deleted file mode 100644 index e1e050ab1d3..00000000000 --- a/keyboards/keebio/iris/keymaps/default/keymap.c +++ /dev/null @@ -1,115 +0,0 @@ -// Copyright 2023 Danny Nguyen (@nooges) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -#define _QWERTY 0 -#define _LOWER 1 -#define _RAISE 2 -#define _ADJUST 3 - -enum custom_keycodes { - QWERTY = SAFE_RANGE, - LOWER, - RAISE, - ADJUST, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_QWERTY] = LAYOUT( - //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ - KC_ESC, 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_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_HOME, KC_END, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ - KC_LGUI, LOWER, KC_ENT, KC_SPC, RAISE, KC_RALT - // └────────┴────────┴────────┘ └────────┴────────┴────────┘ - ), - - [_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_BSPC, - //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ - QK_BOOT, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, - //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ - KC_DEL, _______, KC_LEFT, KC_RGHT, KC_UP, KC_LBRC, KC_RBRC, KC_P4, KC_P5, KC_P6, KC_PLUS, KC_PIPE, - //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ - BL_STEP, _______, _______, _______, KC_DOWN, KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_P1, KC_P2, KC_P3, KC_MINS, _______, - //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ - _______, _______, KC_DEL, KC_DEL, _______, KC_P0 - // └────────┴────────┴────────┘ └────────┴────────┴────────┘ - ), - - [_RAISE] = 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, - //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ - RGB_TOG, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, - //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ - 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, _______, - //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ - _______, _______, _______, _______, _______, _______ - // └────────┴────────┴────────┘ └────────┴────────┴────────┘ - ), - - [_ADJUST] = LAYOUT( - //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ - _______, _______, _______, _______, _______, _______ - // └────────┴────────┴────────┘ └────────┴────────┴────────┘ - ) -}; - -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); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - case 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; - break; - case ADJUST: - if (record->event.pressed) { - layer_on(_ADJUST); - } else { - layer_off(_ADJUST); - } - return false; - break; - } - return true; -} diff --git a/keyboards/keebio/iris/keymaps/default/keymap.json b/keyboards/keebio/iris/keymaps/default/keymap.json new file mode 100644 index 00000000000..8b141d992fd --- /dev/null +++ b/keyboards/keebio/iris/keymaps/default/keymap.json @@ -0,0 +1,29 @@ +{ + "config": { "features": {"tri_layer": true} }, + "keyboard": "keebio/iris", + "keymap": "default", + "layout": "LAYOUT", + "layers": [ + [ + "QK_GESC", "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_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_HOME", "KC_END" , "KC_N" , "KC_M" , "KC_COMM", "KC_DOT" , "KC_SLSH", "KC_RSFT", + "KC_LGUI", "TL_LOWR", "KC_ENT" , "KC_SPC" , "TL_UPPR", "KC_RALT" + ], + [ + "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", "_______", + "_______", "_______", "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" , + "_______", "_______", "_______", "_______", "_______", "_______" + ] + ] +} diff --git a/keyboards/keebio/iris/keymaps/via/keymap.c b/keyboards/keebio/iris/keymaps/via/keymap.c index c2753da2a45..04ebf000b8b 100644 --- a/keyboards/keebio/iris/keymaps/via/keymap.c +++ b/keyboards/keebio/iris/keymaps/via/keymap.c @@ -7,14 +7,13 @@ enum custom_layer { _MAIN, _FN1, _FN2, - _FN3, }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_MAIN] = LAYOUT( //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + QK_GESC, 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, //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ @@ -28,13 +27,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FN1] = 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_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PGUP, //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ - QK_BOOT, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + KC_GRV, _______, KC_UP, _______, QK_BOOT, _______, _______, KC_P7, KC_P8, KC_P9, KC_P0, KC_PGDN, //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ - KC_DEL, _______, KC_LEFT, KC_RGHT, KC_UP, KC_LBRC, KC_RBRC, KC_P4, KC_P5, KC_P6, KC_PLUS, KC_PIPE, + KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_LBRC, KC_RBRC, KC_P4, KC_P5, KC_P6, KC_PLUS, KC_PIPE, //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ - BL_STEP, _______, _______, _______, KC_DOWN, KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_P1, KC_P2, KC_P3, KC_MINS, _______, + RGB_MOD, EE_CLR, _______, _______, _______, KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_P1, KC_P2, KC_P3, KC_MINS, _______, //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ _______, _______, KC_DEL, KC_DEL, _______, KC_P0 // └────────┴────────┴────────┘ └────────┴────────┴────────┘ @@ -44,25 +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, _______, + 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, _______, - //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ - _______, _______, _______, _______, _______, _______ - // └────────┴────────┴────────┘ └────────┴────────┴────────┘ - ), - - [_FN3] = LAYOUT( - //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + 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, //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ _______, _______, _______, _______, _______, _______ // └────────┴────────┴────────┘ └────────┴────────┴────────┘ From b4b222a6e3b103df201ca098cb7ddecc99993b1e Mon Sep 17 00:00:00 2001 From: chalex <68408520+gaclee3b@users.noreply.github.com> Date: Mon, 29 Apr 2024 21:36:10 -0400 Subject: [PATCH 17/55] gh80_3000 - Enable indicator LED functionality (#23633) Co-authored-by: chalex --- keyboards/gh80_3000/config.h | 7 ----- keyboards/gh80_3000/keyboard.json | 12 +++++++++ keyboards/gh80_3000/keymaps/ansi_std/keymap.c | 27 ------------------- keyboards/gh80_3000/keymaps/ansi_wkl/keymap.c | 26 ------------------ keyboards/gh80_3000/keymaps/default/keymap.c | 26 ------------------ .../gh80_3000/keymaps/iso_default/keymap.c | 26 ------------------ keyboards/gh80_3000/keymaps/iso_std/keymap.c | 26 ------------------ keyboards/gh80_3000/keymaps/iso_wkl/keymap.c | 26 ------------------ 8 files changed, 12 insertions(+), 164 deletions(-) delete mode 100644 keyboards/gh80_3000/config.h diff --git a/keyboards/gh80_3000/config.h b/keyboards/gh80_3000/config.h deleted file mode 100644 index 5f360813239..00000000000 --- a/keyboards/gh80_3000/config.h +++ /dev/null @@ -1,7 +0,0 @@ -#pragma once - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE - -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/gh80_3000/keyboard.json b/keyboards/gh80_3000/keyboard.json index f5f4ba75332..c88f5c8232c 100644 --- a/keyboards/gh80_3000/keyboard.json +++ b/keyboards/gh80_3000/keyboard.json @@ -16,6 +16,18 @@ "mousekey": false, "nkro": true }, + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "indicators": { + "num_lock": "B5", + "caps_lock": "B6", + "scroll_lock": "B7", + "on_state": 0 + }, "matrix_pins": { "cols": ["C7", "C6", "B4", "D7", "B3", "B2", "B0", "E6", "B1", "D1", "D6"], "rows": ["F4", "F1", "F0", "F5", "F6", "F7", "D4", "D5", "D3", "D2", "D0"] diff --git a/keyboards/gh80_3000/keymaps/ansi_std/keymap.c b/keyboards/gh80_3000/keymaps/ansi_std/keymap.c index f99d522ead4..2f1e410656f 100644 --- a/keyboards/gh80_3000/keymaps/ansi_std/keymap.c +++ b/keyboards/gh80_3000/keymaps/ansi_std/keymap.c @@ -11,30 +11,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 ) }; - -bool led_update_user(led_t led_state) { - if (led_state.num_lock) { - DDRB |= (1 << 5); - PORTB &= ~(1 << 5); - } else { - DDRB &= ~(1 << 5); - PORTB &= ~(1 << 5); - } - - if (led_state.caps_lock) { - DDRB |= (1 << 6); - PORTB &= ~(1 << 6); - } else { - DDRB &= ~(1 << 6); - PORTB &= ~(1 << 6); - } - - if (led_state.scroll_lock) { - DDRB |= (1 << 7); - PORTB &= ~(1 << 7); - } else { - DDRB &= ~(1 << 7); - PORTB &= ~(1 << 7); - } - return false; -} diff --git a/keyboards/gh80_3000/keymaps/ansi_wkl/keymap.c b/keyboards/gh80_3000/keymaps/ansi_wkl/keymap.c index b3f2426e88a..a949b11941e 100644 --- a/keyboards/gh80_3000/keymaps/ansi_wkl/keymap.c +++ b/keyboards/gh80_3000/keymaps/ansi_wkl/keymap.c @@ -12,29 +12,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -bool led_update_user(led_t led_state) { - if (led_state.num_lock) { - DDRB |= (1 << 5); - PORTB &= ~(1 << 5); - } else { - DDRB &= ~(1 << 5); - PORTB &= ~(1 << 5); - } - - if (led_state.caps_lock) { - DDRB |= (1 << 6); - PORTB &= ~(1 << 6); - } else { - DDRB &= ~(1 << 6); - PORTB &= ~(1 << 6); - } - - if (led_state.scroll_lock) { - DDRB |= (1 << 7); - PORTB &= ~(1 << 7); - } else { - DDRB &= ~(1 << 7); - PORTB &= ~(1 << 7); - } - return false; -} diff --git a/keyboards/gh80_3000/keymaps/default/keymap.c b/keyboards/gh80_3000/keymaps/default/keymap.c index b74127fc5e1..08f43c1d685 100644 --- a/keyboards/gh80_3000/keymaps/default/keymap.c +++ b/keyboards/gh80_3000/keymaps/default/keymap.c @@ -12,29 +12,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -bool led_update_user(led_t led_state) { - if (led_state.num_lock) { - DDRB |= (1 << 5); - PORTB &= ~(1 << 5); - } else { - DDRB &= ~(1 << 5); - PORTB &= ~(1 << 5); - } - - if (led_state.caps_lock) { - DDRB |= (1 << 6); - PORTB &= ~(1 << 6); - } else { - DDRB &= ~(1 << 6); - PORTB &= ~(1 << 6); - } - - if (led_state.scroll_lock) { - DDRB |= (1 << 7); - PORTB &= ~(1 << 7); - } else { - DDRB &= ~(1 << 7); - PORTB &= ~(1 << 7); - } - return false; -} diff --git a/keyboards/gh80_3000/keymaps/iso_default/keymap.c b/keyboards/gh80_3000/keymaps/iso_default/keymap.c index 4c4b10f458a..ff2b373a544 100644 --- a/keyboards/gh80_3000/keymaps/iso_default/keymap.c +++ b/keyboards/gh80_3000/keymaps/iso_default/keymap.c @@ -12,29 +12,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -bool led_update_user(led_t led_state) { - if (led_state.num_lock) { - DDRB |= (1 << 5); - PORTB &= ~(1 << 5); - } else { - DDRB &= ~(1 << 5); - PORTB &= ~(1 << 5); - } - - if (led_state.caps_lock) { - DDRB |= (1 << 6); - PORTB &= ~(1 << 6); - } else { - DDRB &= ~(1 << 6); - PORTB &= ~(1 << 6); - } - - if (led_state.scroll_lock) { - DDRB |= (1 << 7); - PORTB &= ~(1 << 7); - } else { - DDRB &= ~(1 << 7); - PORTB &= ~(1 << 7); - } - return false; -} diff --git a/keyboards/gh80_3000/keymaps/iso_std/keymap.c b/keyboards/gh80_3000/keymaps/iso_std/keymap.c index 9559bde1194..7783aae0a9f 100644 --- a/keyboards/gh80_3000/keymaps/iso_std/keymap.c +++ b/keyboards/gh80_3000/keymaps/iso_std/keymap.c @@ -12,29 +12,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -bool led_update_user(led_t led_state) { - if (led_state.num_lock) { - DDRB |= (1 << 5); - PORTB &= ~(1 << 5); - } else { - DDRB &= ~(1 << 5); - PORTB &= ~(1 << 5); - } - - if (led_state.caps_lock) { - DDRB |= (1 << 6); - PORTB &= ~(1 << 6); - } else { - DDRB &= ~(1 << 6); - PORTB &= ~(1 << 6); - } - - if (led_state.scroll_lock) { - DDRB |= (1 << 7); - PORTB &= ~(1 << 7); - } else { - DDRB &= ~(1 << 7); - PORTB &= ~(1 << 7); - } - return false; -} diff --git a/keyboards/gh80_3000/keymaps/iso_wkl/keymap.c b/keyboards/gh80_3000/keymaps/iso_wkl/keymap.c index 86054ba1fd5..9108f6aba41 100644 --- a/keyboards/gh80_3000/keymaps/iso_wkl/keymap.c +++ b/keyboards/gh80_3000/keymaps/iso_wkl/keymap.c @@ -12,29 +12,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -bool led_update_user(led_t led_state) { - if (led_state.num_lock) { - DDRB |= (1 << 5); - PORTB &= ~(1 << 5); - } else { - DDRB &= ~(1 << 5); - PORTB &= ~(1 << 5); - } - - if (led_state.caps_lock) { - DDRB |= (1 << 6); - PORTB &= ~(1 << 6); - } else { - DDRB &= ~(1 << 6); - PORTB &= ~(1 << 6); - } - - if (led_state.scroll_lock) { - DDRB |= (1 << 7); - PORTB &= ~(1 << 7); - } else { - DDRB &= ~(1 << 7); - PORTB &= ~(1 << 7); - } - return false; -} From 4f087591a8773664e587ac3450e95119f3d586d4 Mon Sep 17 00:00:00 2001 From: Richard Dawe Date: Tue, 30 Apr 2024 02:36:32 +0100 Subject: [PATCH 18/55] Add YMDK YMD62 ISO PCB (#23629) --- keyboards/ymdk/ymd62/config.h | 11 + keyboards/ymdk/ymd62/halconf.h | 8 + keyboards/ymdk/ymd62/info.json | 217 ++++++++++++++++++ keyboards/ymdk/ymd62/keymaps/default/keymap.c | 19 ++ keyboards/ymdk/ymd62/mcuconf.h | 9 + keyboards/ymdk/ymd62/readme.md | 28 +++ keyboards/ymdk/ymd62/rules.mk | 2 + 7 files changed, 294 insertions(+) create mode 100644 keyboards/ymdk/ymd62/config.h create mode 100644 keyboards/ymdk/ymd62/halconf.h create mode 100644 keyboards/ymdk/ymd62/info.json create mode 100644 keyboards/ymdk/ymd62/keymaps/default/keymap.c create mode 100644 keyboards/ymdk/ymd62/mcuconf.h create mode 100644 keyboards/ymdk/ymd62/readme.md create mode 100644 keyboards/ymdk/ymd62/rules.mk diff --git a/keyboards/ymdk/ymd62/config.h b/keyboards/ymdk/ymd62/config.h new file mode 100644 index 00000000000..5f1f3f3a2a5 --- /dev/null +++ b/keyboards/ymdk/ymd62/config.h @@ -0,0 +1,11 @@ +// Copyright 2021 Mike Tsao +// Copyright 2024 Richard Dawe (@richdawe) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define WS2812_PWM_DRIVER PWMD4 +#define WS2812_PWM_CHANNEL 4 +#define WS2812_PWM_PAL_MODE 2 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM7 +#define WS2812_DMA_CHANNEL 7 \ No newline at end of file diff --git a/keyboards/ymdk/ymd62/halconf.h b/keyboards/ymdk/ymd62/halconf.h new file mode 100644 index 00000000000..89073b2f3c1 --- /dev/null +++ b/keyboards/ymdk/ymd62/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2024 Richard Dawe (@richdawe) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/ymdk/ymd62/info.json b/keyboards/ymdk/ymd62/info.json new file mode 100644 index 00000000000..92ed13d2606 --- /dev/null +++ b/keyboards/ymdk/ymd62/info.json @@ -0,0 +1,217 @@ +{ + "manufacturer": "YMDK", + "keyboard_name": "YMD62 ISO QMK", + "maintainer": "richdawe", + "bootloader": "uf2boot", + "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["A7", "B0", "B1", "B2", "B10", "B11", "A5", "A15", "B3", "B12", "B13", "B14", "B15", "A8"], + "rows": ["A4", "A3", "A2", "A1", "A0"] + }, + "processor": "STM32F103", + "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, + "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, + "pixel_flow": true, + "pixel_fractal": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "riverflow": true, + "starlight": true, + "starlight_dual_hue": true, + "starlight_dual_sat": true + }, + "default": { + "animation": "rainbow_moving_chevron" + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 1, "y": 1, "flags": 4}, + {"matrix": [0, 1], "x": 14, "y": 1, "flags": 4}, + {"matrix": [0, 2], "x": 28, "y": 1, "flags": 4}, + {"matrix": [0, 3], "x": 44, "y": 1, "flags": 4}, + {"matrix": [0, 4], "x": 58, "y": 1, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 1, "flags": 4}, + {"matrix": [0, 6], "x": 89, "y": 1, "flags": 4}, + {"matrix": [0, 7], "x": 103, "y": 1, "flags": 4}, + {"matrix": [0, 8], "x": 117, "y": 1, "flags": 4}, + {"matrix": [0, 9], "x": 129, "y": 1, "flags": 4}, + {"matrix": [0, 10], "x": 147, "y": 1, "flags": 4}, + {"matrix": [0, 11], "x": 167, "y": 1, "flags": 4}, + {"matrix": [0, 12], "x": 183, "y": 1, "flags": 4}, + {"matrix": [0, 13], "x": 200, "y": 1, "flags": 4}, + {"matrix": [1, 0], "x": 3, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 33, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 47, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 60, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 77, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 91, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 106, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 131, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 149, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 169, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 185, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 205, "y": 26, "flags": 4}, + {"matrix": [2, 0], "x": 5, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 20, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 35, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 49, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 62, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 79, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 93, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 122, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 133, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 151, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 171, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 199, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 8, "y": 49, "flags": 4}, + {"matrix": [3, 1], "x": 23, "y": 49, "flags": 4}, + {"matrix": [3, 2], "x": 38, "y": 49, "flags": 4}, + {"matrix": [3, 3], "x": 51, "y": 49, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 49, "flags": 4}, + {"matrix": [3, 5], "x": 81, "y": 49, "flags": 4}, + {"matrix": [3, 6], "x": 95, "y": 49, "flags": 4}, + {"matrix": [3, 7], "x": 110, "y": 49, "flags": 4}, + {"matrix": [3, 8], "x": 124, "y": 49, "flags": 4}, + {"matrix": [3, 9], "x": 135, "y": 49, "flags": 4}, + {"matrix": [3, 10], "x": 153, "y": 49, "flags": 4}, + {"matrix": [3, 11], "x": 189, "y": 49, "flags": 4}, + {"matrix": [3, 13], "x": 212, "y": 49, "flags": 4}, + {"matrix": [4, 0], "x": 2, "y": 63, "flags": 4}, + {"matrix": [4, 1], "x": 15, "y": 63, "flags": 4}, + {"matrix": [4, 2], "x": 33, "y": 63, "flags": 4}, + {"matrix": [4, 6], "x": 92, "y": 63, "flags": 4}, + {"matrix": [4, 9], "x": 149, "y": 63, "flags": 4}, + {"matrix": [4, 10], "x": 170, "y": 63, "flags": 4}, + {"matrix": [4, 11], "x": 188, "y": 63, "flags": 4}, + {"matrix": [4, 13], "x": 200, "y": 63, "flags": 4}, + {"x": 60, "y": 5, "flags": 2}, + {"x": 90, "y": 5, "flags": 2}, + {"x": 120, "y": 5, "flags": 2}, + {"x": 150, "y": 5, "flags": 2}, + {"x": 180, "y": 5, "flags": 2}, + {"x": 210, "y": 5, "flags": 2}, + {"x": 210, "y": 60, "flags": 2}, + {"x": 180, "y": 60, "flags": 2}, + {"x": 150, "y": 60, "flags": 2}, + {"x": 120, "y": 60, "flags": 2}, + {"x": 90, "y": 60, "flags": 2}, + {"x": 60, "y": 60, "flags": 2} + ], + "max_brightness": 128 + }, + "url": "https://ymdkey.com/products/ymd62-iso-rgb-hot-swap-pcb-fully-programmable-support-via-vial", + "usb": { + "device_version": "0.0.4", + "pid": "0x0062", + "vid": "0x45D4" + }, + "ws2812": { + "driver": "pwm", + "pin": "B9" + }, + "community_layouts": ["60_iso"], + "layouts": { + "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": [1, 13], "x": 13.5, "y": 1, "w": 1.5, "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": [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, 9], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + } + } +} diff --git a/keyboards/ymdk/ymd62/keymaps/default/keymap.c b/keyboards/ymdk/ymd62/keymaps/default/keymap.c new file mode 100644 index 00000000000..79c128295ef --- /dev/null +++ b/keyboards/ymdk/ymd62/keymaps/default/keymap.c @@ -0,0 +1,19 @@ +// Copyright 2024 Richard Dawe (@richdawe) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT_60_iso( /* 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_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_60_iso( /* 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_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_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/ymd62/mcuconf.h b/keyboards/ymdk/ymd62/mcuconf.h new file mode 100644 index 00000000000..3c076403711 --- /dev/null +++ b/keyboards/ymdk/ymd62/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2024 Richard Dawe (@richdawe) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef STM32_PWM_USE_TIM4 +#define STM32_PWM_USE_TIM4 TRUE \ No newline at end of file diff --git a/keyboards/ymdk/ymd62/readme.md b/keyboards/ymdk/ymd62/readme.md new file mode 100644 index 00000000000..73eeed3dbb9 --- /dev/null +++ b/keyboards/ymdk/ymd62/readme.md @@ -0,0 +1,28 @@ +# YMDK YMD62 ISO + +A 60% PCB supporting the ISO layout, with hotswap sockets, backlit keys and underglow. + +* Keyboard Maintainer: [Richard Dawe](https://github.com/richdawe) +* Hardware Supported: YMD62 PCB +* Hardware Availability: [YMDK](https://ymdkey.com/products/ymd62-iso-rgb-hot-swap-pcb-fully-programmable-support-via-vial) + +Make example for this keyboard (after setting up your build environment): + + make ymdk/ymd62:default + +Flashing example for this keyboard: + + make ymdk/ymd62: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**: Double-tap the reset button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available + +Note: The device does not reconnect automatically after the QMK firmware has been flashed. +Wait for the USB device to disappear after writing firmware, then unplug and re-plug it. \ No newline at end of file diff --git a/keyboards/ymdk/ymd62/rules.mk b/keyboards/ymdk/ymd62/rules.mk new file mode 100644 index 00000000000..ef4364b06ac --- /dev/null +++ b/keyboards/ymdk/ymd62/rules.mk @@ -0,0 +1,2 @@ +# Configure for 128K flash +MCU_LDSCRIPT = STM32F103xB \ No newline at end of file From fd32861c9f9c27d0a577d54dacf10a6267f794e5 Mon Sep 17 00:00:00 2001 From: Ming-Gih Lam Date: Mon, 29 Apr 2024 18:39:29 -0700 Subject: [PATCH 19/55] Masonry keyboard support (#23597) --- keyboards/dcpedit/masonry/info.json | 79 +++++++++++++++++++ .../masonry/keymaps/default/keymap.json | 21 +++++ .../dcpedit/masonry/keymaps/via/keymap.json | 26 ++++++ keyboards/dcpedit/masonry/readme.md | 27 +++++++ keyboards/dcpedit/masonry/rules.mk | 1 + 5 files changed, 154 insertions(+) create mode 100644 keyboards/dcpedit/masonry/info.json create mode 100644 keyboards/dcpedit/masonry/keymaps/default/keymap.json create mode 100644 keyboards/dcpedit/masonry/keymaps/via/keymap.json create mode 100644 keyboards/dcpedit/masonry/readme.md create mode 100644 keyboards/dcpedit/masonry/rules.mk diff --git a/keyboards/dcpedit/masonry/info.json b/keyboards/dcpedit/masonry/info.json new file mode 100644 index 00000000000..2d25f726219 --- /dev/null +++ b/keyboards/dcpedit/masonry/info.json @@ -0,0 +1,79 @@ +{ + "manufacturer": "dcpedit", + "keyboard_name": "Masonry", + "maintainer": "dcpedit", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 2 + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true + }, + "matrix_pins": { + "cols": ["A8", "B15", "B14", "B13", "B12", "A2"], + "rows": ["A9", "A0", "F0", "C15", "A10", "F1", "A1", "C14"] + }, + "processor": "STM32F072", + "url": "https://github.com/dcpedit/masonry", + "usb": { + "device_version": "1.0.0", + "pid": "0x177A", + "vid": "0xDC9E" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "0,0", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "4,0", "matrix": [4, 0], "x": 1, "y": 0}, + {"label": "0,1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "4,1", "matrix": [4, 1], "x": 3, "y": 0}, + {"label": "0,2", "matrix": [0, 2], "x": 4, "y": 0}, + {"label": "4,2", "matrix": [4, 2], "x": 5, "y": 0}, + {"label": "0,3", "matrix": [0, 3], "x": 6, "y": 0}, + {"label": "4,3", "matrix": [4, 3], "x": 7, "y": 0}, + {"label": "0,4", "matrix": [0, 4], "x": 8, "y": 0}, + {"label": "4,4", "matrix": [4, 4], "x": 9, "y": 0}, + {"label": "0,5", "matrix": [0, 5], "x": 10, "y": 0}, + {"label": "4,5", "matrix": [4, 5], "x": 11, "y": 0}, + + {"label": "1,0", "matrix": [1, 0], "x": 0, "y": 1.75}, + {"label": "5,0", "matrix": [5, 0], "x": 1, "y": 1.5}, + {"label": "1,1", "matrix": [1, 1], "x": 2, "y": 1.25}, + {"label": "5,1", "matrix": [5, 1], "x": 3, "y": 1}, + {"label": "1,2", "matrix": [1, 2], "x": 4, "y": 1.25}, + {"label": "5,2", "matrix": [5, 2], "x": 5, "y": 1.25}, + {"label": "1,3", "matrix": [1, 3], "x": 6, "y": 1.25}, + {"label": "5,3", "matrix": [5, 3], "x": 7, "y": 1.25}, + {"label": "1,4", "matrix": [1, 4], "x": 8, "y": 1}, + {"label": "5,4", "matrix": [5, 4], "x": 9, "y": 1.25}, + {"label": "1,5", "matrix": [1, 5], "x": 10, "y": 1.5}, + {"label": "5,5", "matrix": [5, 5], "x": 11, "y": 1.75}, + + {"label": "2,0", "matrix": [2, 0], "x": 0, "y": 2.75}, + {"label": "6,0", "matrix": [6, 0], "x": 1, "y": 2.5}, + {"label": "2,1", "matrix": [2, 1], "x": 2, "y": 2.25}, + {"label": "6,1", "matrix": [6, 1], "x": 3, "y": 2}, + {"label": "2,2", "matrix": [2, 2], "x": 4, "y": 2.25}, + {"label": "6,2", "matrix": [6, 2], "x": 5, "y": 2.25}, + {"label": "2,3", "matrix": [2, 3], "x": 6, "y": 2.25}, + {"label": "6,3", "matrix": [6, 3], "x": 7, "y": 2.25}, + {"label": "2,4", "matrix": [2, 4], "x": 8, "y": 2}, + {"label": "6,4", "matrix": [6, 4], "x": 9, "y": 2.25}, + {"label": "2,5", "matrix": [2, 5], "x": 10, "y": 2.5}, + {"label": "6,5", "matrix": [6, 5], "x": 11, "y": 2.75}, + + {"label": "3,1", "matrix": [3, 1], "x": 2, "y": 3.25}, + {"label": "7,1", "matrix": [7, 1], "x": 3, "y": 3.25}, + {"label": "3,2", "matrix": [3, 2], "x": 4, "y": 3.25}, + {"label": "7,2", "matrix": [7, 2], "x": 5, "y": 3.25}, + {"label": "3,3", "matrix": [3, 3], "x": 6, "y": 3.25}, + {"label": "7,3", "matrix": [7, 3], "x": 7, "y": 3.25}, + {"label": "3,4", "matrix": [3, 4], "x": 8, "y": 3.25}, + {"label": "7,4", "matrix": [7, 4], "x": 9, "y": 3.25} + ] + } + } +} diff --git a/keyboards/dcpedit/masonry/keymaps/default/keymap.json b/keyboards/dcpedit/masonry/keymaps/default/keymap.json new file mode 100644 index 00000000000..6da346bb917 --- /dev/null +++ b/keyboards/dcpedit/masonry/keymaps/default/keymap.json @@ -0,0 +1,21 @@ +{ + "keyboard": "dcpedit/masonry", + "keymap": "default", + "author": "dcpedit", + "version": 1, + "layout": "LAYOUT", + "layers": [ + [ + "KC_ESC", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_QUOT", + "KC_TAB", "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_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", "LT(1,KC_BSPC)", "KC_BSPC", "KC_SPC", "LT(1,KC_SPC)", "KC_RALT", "KC_RGUI" + ], + [ + "KC_GRV" , "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_RGUI", + "KC_LCTL", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RGHT", "KC_HOME", "KC_END", "KC_MINS", "KC_EQL", "KC_LBRC", "KC_RBRC", "KC_RALT", + "_______", "_______", "_______", "_______", "_______", "_______", "KC_PGDN", "KC_PGUP", "_______", "_______", "KC_BSLS", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______" + ] + ] +} \ No newline at end of file diff --git a/keyboards/dcpedit/masonry/keymaps/via/keymap.json b/keyboards/dcpedit/masonry/keymaps/via/keymap.json new file mode 100644 index 00000000000..76dfde65659 --- /dev/null +++ b/keyboards/dcpedit/masonry/keymaps/via/keymap.json @@ -0,0 +1,26 @@ +{ + "keyboard": "dcpedit/masonry", + "keymap": "default", + "author": "dcpedit", + "version": 1, + "config": { + "features": { + "via": true + } + }, + "layout": "LAYOUT", + "layers": [ + [ + "KC_ESC", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_QUOT", + "KC_TAB", "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_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", "LT(1,KC_BSPC)", "KC_BSPC", "KC_SPC", "LT(1,KC_SPC)", "KC_RALT", "KC_RGUI" + ], + [ + "KC_GRV" , "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_RGUI", + "KC_LCTL", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RGHT", "KC_HOME", "KC_END", "KC_MINS", "KC_EQL", "KC_LBRC", "KC_RBRC", "KC_RALT", + "_______", "_______", "_______", "_______", "_______", "_______", "KC_PGDN", "KC_PGUP", "_______", "_______", "KC_BSLS", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______" + ] + ] +} \ No newline at end of file diff --git a/keyboards/dcpedit/masonry/readme.md b/keyboards/dcpedit/masonry/readme.md new file mode 100644 index 00000000000..9ba7a1597e5 --- /dev/null +++ b/keyboards/dcpedit/masonry/readme.md @@ -0,0 +1,27 @@ +# Masonry + +![Masonry](https://i.imgur.com/gqx2FZW.jpg) + +Masonry is a 40% ergoish columnar keyboard projected on a rectangular keyboard shape. + +* Keyboard Maintainer: [dcpedit](https://github.com/dcpedit) +* Hardware Supported: STM32F072 +* Hardware Availability: https://github.com/dcpedit/masonry + +Make example for this keyboard (after setting up your build environment): + + make dcpedit/masonry:default + +Flashing example for this keyboard: + + make dcpedit/masonry: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 ESC key (top-left key) and plug in the keyboard +* **Physical reset button**: On the PCB, while holding down the BOOT button, press and release the RESET button +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/dcpedit/masonry/rules.mk b/keyboards/dcpedit/masonry/rules.mk new file mode 100644 index 00000000000..cfa2d9632f9 --- /dev/null +++ b/keyboards/dcpedit/masonry/rules.mk @@ -0,0 +1 @@ +# Intentionally left blank \ No newline at end of file From cc35aaadbf18da8f6145adfe8b135fc0f9ee26a1 Mon Sep 17 00:00:00 2001 From: Florent Linguenheld Date: Tue, 30 Apr 2024 03:40:01 +0200 Subject: [PATCH 20/55] Add Chew keyboard (#23628) --- keyboards/chew/config.h | 11 ++++ keyboards/chew/info.json | 84 +++++++++++++++++++++++++ keyboards/chew/keymaps/default/keymap.c | 27 ++++++++ keyboards/chew/readme.md | 38 +++++++++++ keyboards/chew/rules.mk | 1 + 5 files changed, 161 insertions(+) create mode 100644 keyboards/chew/config.h create mode 100644 keyboards/chew/info.json create mode 100644 keyboards/chew/keymaps/default/keymap.c create mode 100644 keyboards/chew/readme.md create mode 100644 keyboards/chew/rules.mk diff --git a/keyboards/chew/config.h b/keyboards/chew/config.h new file mode 100644 index 00000000000..22b43cf799d --- /dev/null +++ b/keyboards/chew/config.h @@ -0,0 +1,11 @@ +// Copyright 2024 Florent (@FLinguenheld) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* Flash */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // In ms in which the double tap can occur + +#define EE_HANDS +#define SERIAL_USART_TX_PIN GP11 diff --git a/keyboards/chew/info.json b/keyboards/chew/info.json new file mode 100644 index 00000000000..f6ddaa627d8 --- /dev/null +++ b/keyboards/chew/info.json @@ -0,0 +1,84 @@ +{ + "manufacturer": "florent@linguenheld.fr", + "keyboard_name": "chew", + "maintainer": "florent@linguenheld.fr", + "bootloader": "rp2040", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "direct": [ + ["GP4", "GP3", "GP2", "GP1", "GP0"], + ["GP15", "GP26", "GP27", "GP28", "GP29"], + ["GP14", "GP13", "GP9", "GP8", "NO_PIN"], + ["GP7", "GP6", "GP5", "NO_PIN", "NO_PIN"] + ] + }, + "processor": "RP2040", + "split": { + "enabled": true, + "matrix_pins": { + "right": { + "direct": [ + ["GP0", "GP1", "GP2", "GP3", "GP4"], + ["GP29", "GP28", "GP27", "GP26", "GP15"], + ["GP8", "GP9", "GP13", "GP14", "NO_PIN"], + ["GP5", "GP6", "GP7", "NO_PIN", "NO_PIN"] + ] + } + }, + "transport": { + "watchdog": true + } + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.25}, + {"matrix": [0, 1], "x": 1, "y": 0.125}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0.125}, + {"matrix": [0, 4], "x": 4, "y": 0.25}, + {"matrix": [4, 0], "x": 7, "y": 0.25}, + {"matrix": [4, 1], "x": 8, "y": 0.125}, + {"matrix": [4, 2], "x": 9, "y": 0}, + {"matrix": [4, 3], "x": 10, "y": 0.125}, + {"matrix": [4, 4], "x": 11, "y": 0.25}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.125}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1.125}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [5, 0], "x": 7, "y": 1.25}, + {"matrix": [5, 1], "x": 8, "y": 1.125}, + {"matrix": [5, 2], "x": 9, "y": 1}, + {"matrix": [5, 3], "x": 10, "y": 1.125}, + {"matrix": [5, 4], "x": 11, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25}, + {"matrix": [2, 1], "x": 1, "y": 2.125}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2.125}, + {"matrix": [6, 0], "x": 8, "y": 2.125}, + {"matrix": [6, 1], "x": 9, "y": 2}, + {"matrix": [6, 2], "x": 10, "y": 2.125}, + {"matrix": [6, 3], "x": 11, "y": 2.25}, + {"matrix": [3, 0], "x": 2.5, "y": 3.25}, + {"matrix": [3, 1], "x": 3.5, "y": 3.5}, + {"matrix": [3, 2], "x": 4.5, "y": 3.75}, + {"matrix": [7, 0], "x": 6.5, "y": 3.75}, + {"matrix": [7, 1], "x": 7.5, "y": 3.5}, + {"matrix": [7, 2], "x": 8.5, "y": 3.25} + ] + } + } +} diff --git a/keyboards/chew/keymaps/default/keymap.c b/keyboards/chew/keymaps/default/keymap.c new file mode 100644 index 00000000000..541ddbdf1c3 --- /dev/null +++ b/keyboards/chew/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +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 │ │ M │ , │ . │ / │ + * └───┴───┴───┴───┘ └───┴───┴───┴───┘ + * ┌───┐ ┌───┐ + * │ B ├───┐ ┌───┤ N │ + * └───┤Bsp├───┐ ┌───┤Ent├───┘ + * └───┤Alt│ │ ├───┘ + * └───┘ └───┘ + */ + [0] = LAYOUT( + 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, + KC_Z, KC_X, KC_C, KC_V, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_B, KC_BSPC, KC_RALT, KC_SPC, KC_ENT, KC_N + ) +}; diff --git a/keyboards/chew/readme.md b/keyboards/chew/readme.md new file mode 100644 index 00000000000..a08398ea0fa --- /dev/null +++ b/keyboards/chew/readme.md @@ -0,0 +1,38 @@ +## Chew + +![Chew front photo](https://live.staticflickr.com/65535/53681212617_90e4eebaf9_o.jpg) +![Chew front photo](https://live.staticflickr.com/65535/53682442119_1fcea26fef_o.jpg) + +A humble 34 key choc-spaced keyboard. + +- Keyboard Maintainer: [Florent Linguenheld](https://github.com/flinguenheld/) +- Visit the repository to get the last release: [Chew](https://github.com/flinguenheld/chew) +- Read the wiki to have some help or information: [Chew wiki](https://github.com/flinguenheld/chew/wiki) + + +![squirrel](https://github.com/flinguenheld/chew/blob/main/images/squirrel_brown.png?raw=true) + +### Requirements + +- 2x PCB +- 2x MCU board [RP2040-Zero](https://www.waveshare.com/wiki/RP2040-Zero) +- 2x TRRS jack +- 34 switches Choc V1 **only** +- 34 keycaps Choc V1 + +Optional: +- 23 [Mill Max sockets](https://splitkb.com/collections/keyboard-parts/products/mill-max-low-profile-sockets) +- 34 [kailh hotswap sockets](https://cdn.shopify.com/s/files/1/0588/1108/9090/files/5118-Choc-Socket.pdf?v=1686715063) +- 2x Back PCB + screws and bolts +- 2x [Tenting pucks](https://splitkb.com/collections/keyboard-parts/products/tenting-puck) +- 2x [Tripods](https://www.manfrotto.com/us-en/pocket-support-large-black-mp3-bk/) + +### Bootloader + +The controller has two buttons, so you can enter the bootloader in 2 ways: + +- Maintain the **boot** button and plug the usb cable in. +- Press twice the **reset** button. + +![hazelnuts](https://github.com/flinguenheld/chew/blob/main/images/hazelnuts.png?raw=true) +![Chew back photo](https://live.staticflickr.com/65535/53682442124_677ffa6cb5_o.jpg) diff --git a/keyboards/chew/rules.mk b/keyboards/chew/rules.mk new file mode 100644 index 00000000000..161ec22b16e --- /dev/null +++ b/keyboards/chew/rules.mk @@ -0,0 +1 @@ +SERIAL_DRIVER = vendor From c94c6fcc25cdf3a5eb16ba5609d2ef1b3e3a2916 Mon Sep 17 00:00:00 2001 From: Stephon Parker Date: Mon, 29 Apr 2024 21:46:48 -0400 Subject: [PATCH 21/55] [Keyboard] Add MECHWILD BB65 (#23581) Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Duncan Sutherland --- keyboards/mechwild/bb65/config.h | 10 + keyboards/mechwild/bb65/f401/info.json | 3 + keyboards/mechwild/bb65/f401/rules.mk | 1 + keyboards/mechwild/bb65/f411/info.json | 3 + keyboards/mechwild/bb65/f411/rules.mk | 1 + keyboards/mechwild/bb65/halconf.h | 8 + keyboards/mechwild/bb65/info.json | 192 ++++++++++++++++++ .../mechwild/bb65/keymaps/default/keymap.json | 31 +++ .../mechwild/bb65/keymaps/via/keymap.json | 32 +++ keyboards/mechwild/bb65/mcuconf.h | 9 + keyboards/mechwild/bb65/readme.md | 23 +++ 11 files changed, 313 insertions(+) create mode 100644 keyboards/mechwild/bb65/config.h create mode 100644 keyboards/mechwild/bb65/f401/info.json create mode 100644 keyboards/mechwild/bb65/f401/rules.mk create mode 100644 keyboards/mechwild/bb65/f411/info.json create mode 100644 keyboards/mechwild/bb65/f411/rules.mk create mode 100644 keyboards/mechwild/bb65/halconf.h create mode 100644 keyboards/mechwild/bb65/info.json create mode 100644 keyboards/mechwild/bb65/keymaps/default/keymap.json create mode 100644 keyboards/mechwild/bb65/keymaps/via/keymap.json create mode 100644 keyboards/mechwild/bb65/mcuconf.h create mode 100644 keyboards/mechwild/bb65/readme.md diff --git a/keyboards/mechwild/bb65/config.h b/keyboards/mechwild/bb65/config.h new file mode 100644 index 00000000000..0792ca7f590 --- /dev/null +++ b/keyboards/mechwild/bb65/config.h @@ -0,0 +1,10 @@ +// Copyright 2023 Kyle McCreery (@kylemccreery) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define WS2812_PWM_DRIVER PWMD5 +#define WS2812_PWM_CHANNEL 2 +#define WS2812_PWM_PAL_MODE 2 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM6 +#define WS2812_DMA_CHANNEL 6 diff --git a/keyboards/mechwild/bb65/f401/info.json b/keyboards/mechwild/bb65/f401/info.json new file mode 100644 index 00000000000..797e9900595 --- /dev/null +++ b/keyboards/mechwild/bb65/f401/info.json @@ -0,0 +1,3 @@ +{ + "development_board": "blackpill_f401" +} diff --git a/keyboards/mechwild/bb65/f401/rules.mk b/keyboards/mechwild/bb65/f401/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/mechwild/bb65/f401/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/mechwild/bb65/f411/info.json b/keyboards/mechwild/bb65/f411/info.json new file mode 100644 index 00000000000..a41c5f4dd14 --- /dev/null +++ b/keyboards/mechwild/bb65/f411/info.json @@ -0,0 +1,3 @@ +{ + "development_board": "blackpill_f411" +} diff --git a/keyboards/mechwild/bb65/f411/rules.mk b/keyboards/mechwild/bb65/f411/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/mechwild/bb65/f411/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/mechwild/bb65/halconf.h b/keyboards/mechwild/bb65/halconf.h new file mode 100644 index 00000000000..d9ca9492565 --- /dev/null +++ b/keyboards/mechwild/bb65/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2023 Kyle McCreery (@kylemccreery) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/mechwild/bb65/info.json b/keyboards/mechwild/bb65/info.json new file mode 100644 index 00000000000..a9d812d827f --- /dev/null +++ b/keyboards/mechwild/bb65/info.json @@ -0,0 +1,192 @@ +{ + "manufacturer": "MechWild", + "keyboard_name": "BB65", + "bootloader_instructions": "Hold down the BOOT button, then tap the NRST button on the BlackPill. Avoid touching the A11 and A12 pins.", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "A3", "pin_b": "A2"} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["B14", "B15", "A8", "A15", "B4", "B5", "B8", "B9", "B0"], + "rows": ["B13", "B3", "B10", "A7", "A6", "B12", "B1", "A5"] + }, + "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, + "led_count": 10, + "saturation_steps": 8 + }, + "url": "https://mechwild.com/product/bb65/", + "usb": { + "device_version": "1.0.0", + "pid": "0x1712", + "vid": "0x6D77" + }, + "ws2812": { + "driver": "pwm", + "pin": "A1" + }, + "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": [5, 8], "x": 9, "y": 0}, + {"matrix": [5, 7], "x": 10, "y": 0}, + {"matrix": [5, 6], "x": 11, "y": 0}, + {"matrix": [5, 5], "x": 12, "y": 0}, + {"matrix": [5, 4], "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": [6, 8], "x": 9.5, "y": 1}, + {"matrix": [6, 7], "x": 10.5, "y": 1}, + {"matrix": [6, 6], "x": 11.5, "y": 1}, + {"matrix": [6, 5], "x": 12.5, "y": 1}, + {"matrix": [6, 4], "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": [7, 0], "x": 9.75, "y": 2}, + {"matrix": [6, 0], "x": 10.75, "y": 2}, + {"matrix": [6, 1], "x": 11.75, "y": 2}, + {"matrix": [6, 2], "x": 12.75, "y": 2}, + {"matrix": [6, 3], "x": 13.75, "y": 2, "w": 1.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": [7, 8], "x": 9.25, "y": 3}, + {"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": [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": 6.25}, + {"matrix": [4, 3], "x": 10, "y": 4}, + {"matrix": [4, 4], "x": 11, "y": 4}, + {"matrix": [4, 6], "x": 12, "y": 4}, + {"matrix": [4, 7], "x": 13.25, "y": 4.25}, + {"matrix": [4, 8], "x": 14.25, "y": 4.25}, + {"matrix": [7, 2], "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": [5, 8], "x": 9, "y": 0}, + {"matrix": [5, 7], "x": 10, "y": 0}, + {"matrix": [5, 6], "x": 11, "y": 0}, + {"matrix": [5, 5], "x": 12, "y": 0}, + {"matrix": [5, 4], "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": [6, 8], "x": 9.5, "y": 1}, + {"matrix": [6, 7], "x": 10.5, "y": 1}, + {"matrix": [6, 6], "x": 11.5, "y": 1}, + {"matrix": [6, 5], "x": 12.5, "y": 1}, + {"matrix": [6, 4], "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": [7, 0], "x": 9.75, "y": 2}, + {"matrix": [6, 0], "x": 10.75, "y": 2}, + {"matrix": [6, 1], "x": 11.75, "y": 2}, + {"matrix": [6, 3], "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": [7, 8], "x": 9.25, "y": 3}, + {"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": [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": 6.25}, + {"matrix": [4, 3], "x": 10, "y": 4}, + {"matrix": [4, 4], "x": 11, "y": 4}, + {"matrix": [4, 6], "x": 12, "y": 4}, + {"matrix": [4, 7], "x": 13.25, "y": 4.25}, + {"matrix": [4, 8], "x": 14.25, "y": 4.25}, + {"matrix": [7, 2], "x": 15.25, "y": 4.25} + ] + } + } +} diff --git a/keyboards/mechwild/bb65/keymaps/default/keymap.json b/keyboards/mechwild/bb65/keymaps/default/keymap.json new file mode 100644 index 00000000000..31d55e5f95a --- /dev/null +++ b/keyboards/mechwild/bb65/keymaps/default/keymap.json @@ -0,0 +1,31 @@ +{ + "keyboard": "mechwild/bb65/f401", + "keymap": "default", + "version": 1, + "layout": "LAYOUT_all", + "layers": [ + [ + "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", + "MO(1)", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_TRNS", "KC_ENT", + "KC_LSFT", "KC_TRNS", "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", + "RGB_RMOD", "KC_LGUI", "RGB_MOD", "KC_SPC", "KC_RALT", "KC_RGUI", "KC_RCTL", "KC_LEFT", "KC_DOWN", "KC_RGHT" + ], + [ + "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_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "KC_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_HOME", "KC_PGDN", "KC_END" + ] + ], + "config": { + "features": { + "encoder_map": true + } + }, + "encoders": [ + [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}], + [{"ccw": "KC_TRNS", "cw": "KC_TRNS"}] + ] +} diff --git a/keyboards/mechwild/bb65/keymaps/via/keymap.json b/keyboards/mechwild/bb65/keymaps/via/keymap.json new file mode 100644 index 00000000000..1e6ebcb717c --- /dev/null +++ b/keyboards/mechwild/bb65/keymaps/via/keymap.json @@ -0,0 +1,32 @@ +{ + "keyboard": "mechwild/bb65/f401", + "keymap": "via", + "version": 1, + "layout": "LAYOUT_all", + "layers": [ + [ + "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", + "MO(1)", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_TRNS", "KC_ENT", + "KC_LSFT", "KC_TRNS", "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", + "RGB_RMOD", "KC_LGUI", "RGB_MOD", "KC_SPC", "KC_RALT", "KC_RGUI", "KC_RCTL", "KC_LEFT", "KC_DOWN", "KC_RGHT" + ], + [ + "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_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "KC_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_HOME", "KC_PGDN", "KC_END" + ] + ], + "config": { + "features": { + "encoder_map": true, + "via": true + } + }, + "encoders": [ + [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}], + [{"ccw": "KC_TRNS", "cw": "KC_TRNS"}] + ] +} diff --git a/keyboards/mechwild/bb65/mcuconf.h b/keyboards/mechwild/bb65/mcuconf.h new file mode 100644 index 00000000000..f9e61e737de --- /dev/null +++ b/keyboards/mechwild/bb65/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2023 Kyle McCreery (@kylemccreery) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef STM32_PWM_USE_TIM5 +#define STM32_PWM_USE_TIM5 TRUE diff --git a/keyboards/mechwild/bb65/readme.md b/keyboards/mechwild/bb65/readme.md new file mode 100644 index 00000000000..43416f90c1b --- /dev/null +++ b/keyboards/mechwild/bb65/readme.md @@ -0,0 +1,23 @@ +# BB65 + +![bb65](https://i.imgur.com/0PrDjuS.png) + +BB65 is a completely normal BlackPill-powered 65% DIY kit. It’s got all the letters, a number row, and arrow keys. Basic as it can be. + +The `f401` version is the standard for this kit, using an STM32F401 BlackPill. The `f411` version will not run on an STM32F401 BlackPill; if in doubt, use `f401`. + +* Keyboard Maintainer: [Kyle McCreery](https://github.com/kylemccreery) +* Hardware Supported: BB65 v1.0 +* Hardware Availability: [BB65 on MechWild](https://mechwild.com/product/bb65/) + +Make example for this keyboard (after setting up your build environment): + + make mechwild/bb65/f401:default + make mechwild/bb65/f411:default + +Flashing example for this keyboard: + + make mechwild/bb65/f401:default:flash + make mechwild/bb65/f411: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 ae8458e12dfdf34906443f6793e69436e78b1802 Mon Sep 17 00:00:00 2001 From: era <73109780+eerraa@users.noreply.github.com> Date: Tue, 30 Apr 2024 11:32:43 +0900 Subject: [PATCH 22/55] [Keyboard] Add SIRIND TOMAK (#23554) Co-authored-by: Joel Challis Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> --- keyboards/era/sirind/tomak/config.h | 16 + keyboards/era/sirind/tomak/info.json | 710 ++++++++++++++++++ .../era/sirind/tomak/keymaps/default/keymap.c | 25 + .../tomak/keymaps/default_ansi/keymap.c | 25 + .../keymaps/default_ansi_split_bs/keymap.c | 25 + .../default_ansi_split_rshift/keymap.c | 25 + .../default_ansi_split_rshift_bs/keymap.c | 25 + .../era/sirind/tomak/keymaps/via/keymap.c | 25 + .../era/sirind/tomak/keymaps/via/rules.mk | 1 + keyboards/era/sirind/tomak/readme.md | 27 + keyboards/era/sirind/tomak/rules.mk | 1 + keyboards/era/sirind/tomak/tomak.c | 16 + 12 files changed, 921 insertions(+) create mode 100644 keyboards/era/sirind/tomak/config.h create mode 100644 keyboards/era/sirind/tomak/info.json create mode 100644 keyboards/era/sirind/tomak/keymaps/default/keymap.c create mode 100644 keyboards/era/sirind/tomak/keymaps/default_ansi/keymap.c create mode 100644 keyboards/era/sirind/tomak/keymaps/default_ansi_split_bs/keymap.c create mode 100644 keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift/keymap.c create mode 100644 keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift_bs/keymap.c create mode 100644 keyboards/era/sirind/tomak/keymaps/via/keymap.c create mode 100644 keyboards/era/sirind/tomak/keymaps/via/rules.mk create mode 100644 keyboards/era/sirind/tomak/readme.md create mode 100644 keyboards/era/sirind/tomak/rules.mk create mode 100644 keyboards/era/sirind/tomak/tomak.c diff --git a/keyboards/era/sirind/tomak/config.h b/keyboards/era/sirind/tomak/config.h new file mode 100644 index 00000000000..7bb56107054 --- /dev/null +++ b/keyboards/era/sirind/tomak/config.h @@ -0,0 +1,16 @@ +// Copyright 2023 Hyojin Bak (@eerraa) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* Split configuration */ +#define SPLIT_HAND_PIN GP21 +#define USB_VBUS_PIN GP29 +#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 2000U \ No newline at end of file diff --git a/keyboards/era/sirind/tomak/info.json b/keyboards/era/sirind/tomak/info.json new file mode 100644 index 00000000000..da7d12e94d1 --- /dev/null +++ b/keyboards/era/sirind/tomak/info.json @@ -0,0 +1,710 @@ +{ + "manufacturer": "SIRIND", + "keyboard_name": "Tomak", + "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": ["GP16", "GP9", "GP8", "GP6", "GP5", "GP4", "GP3", "GP2", null, null, null], + "rows": ["GP27", "GP10", "GP11", "GP12", "GP13", "GP14"] + }, + "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": [0, 0], "x": 2, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 19, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 31, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 43, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 55, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 73, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 85, "y": 0, "flags": 4}, + {"matrix": [1, 7], "x": 87, "y": 13, "flags": 4}, + {"matrix": [1, 6], "x": 74, "y": 13, "flags": 4}, + {"matrix": [1, 5], "x": 62, "y": 13, "flags": 4}, + {"matrix": [1, 4], "x": 50, "y": 13, "flags": 4}, + {"matrix": [1, 3], "x": 38, "y": 13, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 13, "flags": 4}, + {"matrix": [1, 1], "x": 14, "y": 13, "flags": 4}, + {"matrix": [1, 0], "x": 2, "y": 13, "flags": 4}, + {"matrix": [2, 0], "x": 5, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 20, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 44, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 68, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 71, "y": 26, "flags": 4}, + {"matrix": [3, 6], "x": 84, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 71, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 59, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 47, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 35, "y": 38, "flags": 4}, + {"matrix": [3, 1], "x": 23, "y": 38, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 38, "flags": 1}, + {"matrix": [4, 0], "x": 9, "y": 51, "flags": 1}, + {"matrix": [4, 1], "x": 29, "y": 51, "flags": 4}, + {"matrix": [4, 2], "x": 41, "y": 51, "flags": 4}, + {"matrix": [4, 3], "x": 53, "y": 51, "flags": 4}, + {"matrix": [4, 4], "x": 65, "y": 51, "flags": 4}, + {"matrix": [4, 5], "x": 77, "y": 51, "flags": 4}, + {"matrix": [5, 5], "x": 84, "y": 64, "flags": 1}, + {"matrix": [5, 4], "x": 61, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 35, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 20, "y": 64, "flags": 1}, + {"matrix": [5, 0], "x": 5, "y": 64, "flags": 1}, + {"matrix": [6, 10], "x": 224, "y": 0, "flags": 4}, + {"matrix": [6, 9], "x": 212, "y": 0, "flags": 4}, + {"matrix": [6, 8], "x": 200, "y": 0, "flags": 4}, + {"matrix": [6, 7], "x": 184, "y": 0, "flags": 4}, + {"matrix": [6, 5], "x": 167, "y": 0, "flags": 4}, + {"matrix": [6, 4], "x": 155, "y": 0, "flags": 4}, + {"matrix": [6, 3], "x": 143, "y": 0, "flags": 4}, + {"matrix": [6, 2], "x": 131, "y": 0, "flags": 4}, + {"matrix": [6, 1], "x": 113, "y": 0, "flags": 4}, + {"matrix": [6, 0], "x": 101, "y": 0, "flags": 4}, + {"matrix": [7, 0], "x": 99, "y": 13, "flags": 4}, + {"matrix": [7, 1], "x": 112, "y": 13, "flags": 4}, + {"matrix": [7, 2], "x": 124, "y": 13, "flags": 4}, + {"matrix": [7, 3], "x": 136, "y": 13, "flags": 4}, + {"matrix": [7, 4], "x": 148, "y": 13, "flags": 4}, + {"matrix": [7, 5], "x": 160, "y": 13, "flags": 4}, + {"matrix": [7, 7], "x": 178, "y": 13, "flags": 1}, + {"matrix": [7, 8], "x": 200, "y": 13, "flags": 4}, + {"matrix": [7, 9], "x": 212, "y": 13, "flags": 4}, + {"matrix": [7, 10], "x": 224, "y": 13, "flags": 4}, + {"matrix": [8, 10], "x": 224, "y": 26, "flags": 4}, + {"matrix": [8, 9], "x": 212, "y": 26, "flags": 4}, + {"matrix": [8, 8], "x": 200, "y": 26, "flags": 4}, + {"matrix": [8, 7], "x": 181, "y": 26, "flags": 4}, + {"matrix": [8, 6], "x": 166, "y": 26, "flags": 4}, + {"matrix": [8, 5], "x": 154, "y": 26, "flags": 4}, + {"matrix": [8, 4], "x": 142, "y": 26, "flags": 4}, + {"matrix": [8, 3], "x": 130, "y": 26, "flags": 4}, + {"matrix": [8, 2], "x": 118, "y": 26, "flags": 4}, + {"matrix": [8, 1], "x": 105, "y": 26, "flags": 4}, + {"matrix": [8, 0], "x": 93, "y": 26, "flags": 4}, + {"matrix": [9, 0], "x": 96, "y": 38, "flags": 4}, + {"matrix": [9, 1], "x": 109, "y": 38, "flags": 4}, + {"matrix": [9, 2], "x": 121, "y": 38, "flags": 4}, + {"matrix": [9, 3], "x": 133, "y": 38, "flags": 4}, + {"matrix": [9, 4], "x": 145, "y": 38, "flags": 4}, + {"matrix": [9, 5], "x": 157, "y": 38, "flags": 4}, + {"matrix": [9, 7], "x": 177, "y": 38, "flags": 1}, + {"matrix": [10, 9], "x": 212, "y": 51, "flags": 4}, + {"matrix": [10, 7], "x": 184, "y": 45, "flags": 1}, + {"matrix": [10, 6], "x": 174, "y": 51, "flags": 1}, + {"matrix": [10, 5], "x": 151, "y": 51, "flags": 4}, + {"matrix": [10, 4], "x": 139, "y": 51, "flags": 4}, + {"matrix": [10, 3], "x": 127, "y": 51, "flags": 4}, + {"matrix": [10, 2], "x": 115, "y": 51, "flags": 4}, + {"matrix": [10, 1], "x": 102, "y": 51, "flags": 4}, + {"matrix": [10, 0], "x": 90, "y": 51, "flags": 4}, + {"matrix": [11, 1], "x": 96, "y": 64, "flags": 1}, + {"matrix": [11, 2], "x": 110, "y": 64, "flags": 4}, + {"matrix": [11, 4], "x": 137, "y": 64, "flags": 1}, + {"matrix": [11, 5], "x": 153, "y": 64, "flags": 1}, + {"matrix": [11, 6], "x": 168, "y": 64, "flags": 1}, + {"matrix": [11, 7], "x": 183, "y": 64, "flags": 1}, + {"matrix": [11, 8], "x": 200, "y": 64, "flags": 1}, + {"matrix": [11, 9], "x": 212, "y": 64, "flags": 1}, + {"matrix": [11, 10], "x": 224, "y": 64, "flags": 1}, + {"x": 224, "y": 40, "flags": 8}, + {"x": 224, "y": 45, "flags": 8}, + {"x": 224, "y": 50, "flags": 8} + ], + "max_brightness": 120, + "sleep": true, + "split_count": [40, 59] + }, + "split": { + "bootmagic": { + "matrix": [6, 0] + }, + "enabled": true, + "matrix_pins": { + "right": { + "cols": ["GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9", "GP27", "GP17", "GP13"], + "rows": ["GP10", "GP11", "GP12", "GP28", "GP19", "GP16"] + } + }, + "transport": { + "protocol": "serial_usart", + "sync": { + "indicators": true, + "layer_state": true, + "matrix_state": true + } + } + }, + "url": "", + "usb": { + "device_version": "1.0.2", + "pid": "0x0006", + "vid": "0x4552" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP20" + }, + "layout_aliases": { + "LAYOUT_all": "LAYOUT_split_tkl_ansi_split_rshift_bs_rspace", + "LAYOUT_ansi": "LAYOUT_split_tkl_ansi", + "LAYOUT_ansi_split_bs": "LAYOUT_split_tkl_ansi_split_bs", + "LAYOUT_ansi_split_rshift": "LAYOUT_split_tkl_ansi_split_rshift", + "LAYOUT_ansi_split_rshift_bs": "LAYOUT_split_tkl_ansi_split_rshift_bs" + }, + "layouts": { + "LAYOUT_split_tkl_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": [6, 9], "x": 18.75, "y": 0}, + {"matrix": [6, 10], "x": 19.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": [7, 0], "x": 9.5, "y": 1.5}, + {"matrix": [7, 1], "x": 10.5, "y": 1.5}, + {"matrix": [7, 2], "x": 11.5, "y": 1.5}, + {"matrix": [7, 3], "x": 12.5, "y": 1.5}, + {"matrix": [7, 4], "x": 13.5, "y": 1.5}, + {"matrix": [7, 5], "x": 14.5, "y": 1.5}, + {"matrix": [7, 7], "x": 15.5, "y": 1.5, "w": 2}, + {"matrix": [7, 8], "x": 17.75, "y": 1.5}, + {"matrix": [7, 9], "x": 18.75, "y": 1.5}, + {"matrix": [7, 10], "x": 19.75, "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": [8, 0], "x": 9, "y": 2.5}, + {"matrix": [8, 1], "x": 10, "y": 2.5}, + {"matrix": [8, 2], "x": 11, "y": 2.5}, + {"matrix": [8, 3], "x": 12, "y": 2.5}, + {"matrix": [8, 4], "x": 13, "y": 2.5}, + {"matrix": [8, 5], "x": 14, "y": 2.5}, + {"matrix": [8, 6], "x": 15, "y": 2.5}, + {"matrix": [8, 7], "x": 16.25, "y": 2.5, "w": 1.25}, + {"matrix": [8, 8], "x": 17.75, "y": 2.5}, + {"matrix": [8, 9], "x": 18.75, "y": 2.5}, + {"matrix": [8, 10], "x": 19.75, "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": [9, 0], "x": 9.25, "y": 3.5}, + {"matrix": [9, 1], "x": 10.25, "y": 3.5}, + {"matrix": [9, 2], "x": 11.25, "y": 3.5}, + {"matrix": [9, 3], "x": 12.25, "y": 3.5}, + {"matrix": [9, 4], "x": 13.25, "y": 3.5}, + {"matrix": [9, 5], "x": 14.25, "y": 3.5}, + {"matrix": [9, 7], "x": 15.25, "y": 3.5, "w": 2.25}, + {"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": [10, 0], "x": 8.75, "y": 4.5}, + {"matrix": [10, 1], "x": 9.75, "y": 4.5}, + {"matrix": [10, 2], "x": 10.75, "y": 4.5}, + {"matrix": [10, 3], "x": 11.75, "y": 4.5}, + {"matrix": [10, 4], "x": 12.75, "y": 4.5}, + {"matrix": [10, 5], "x": 13.75, "y": 4.5}, + {"matrix": [10, 6], "x": 14.75, "y": 4.5, "w": 2.75}, + {"matrix": [10, 9], "x": 18.75, "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, 4], "x": 4, "y": 5.5, "w": 2.75}, + {"matrix": [5, 5], "x": 6.75, "y": 5.5}, + {"matrix": [11, 2], "x": 9.25, "y": 5.5, "w": 3.25}, + {"matrix": [11, 4], "x": 12.5, "y": 5.5, "w": 1.25}, + {"matrix": [11, 5], "x": 13.75, "y": 5.5, "w": 1.25}, + {"matrix": [11, 6], "x": 15, "y": 5.5, "w": 1.25}, + {"matrix": [11, 7], "x": 16.25, "y": 5.5, "w": 1.25}, + {"matrix": [11, 8], "x": 17.75, "y": 5.5}, + {"matrix": [11, 9], "x": 18.75, "y": 5.5}, + {"matrix": [11, 10], "x": 19.75, "y": 5.5} + ] + }, + "LAYOUT_split_tkl_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": [6, 9], "x": 18.75, "y": 0}, + {"matrix": [6, 10], "x": 19.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": [7, 0], "x": 9.5, "y": 1.5}, + {"matrix": [7, 1], "x": 10.5, "y": 1.5}, + {"matrix": [7, 2], "x": 11.5, "y": 1.5}, + {"matrix": [7, 3], "x": 12.5, "y": 1.5}, + {"matrix": [7, 4], "x": 13.5, "y": 1.5}, + {"matrix": [7, 5], "x": 14.5, "y": 1.5}, + {"matrix": [7, 6], "x": 15.5, "y": 1.5}, + {"matrix": [7, 7], "x": 16.5, "y": 1.5}, + {"matrix": [7, 8], "x": 17.75, "y": 1.5}, + {"matrix": [7, 9], "x": 18.75, "y": 1.5}, + {"matrix": [7, 10], "x": 19.75, "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": [8, 0], "x": 9, "y": 2.5}, + {"matrix": [8, 1], "x": 10, "y": 2.5}, + {"matrix": [8, 2], "x": 11, "y": 2.5}, + {"matrix": [8, 3], "x": 12, "y": 2.5}, + {"matrix": [8, 4], "x": 13, "y": 2.5}, + {"matrix": [8, 5], "x": 14, "y": 2.5}, + {"matrix": [8, 6], "x": 15, "y": 2.5}, + {"matrix": [8, 7], "x": 16.25, "y": 2.5, "w": 1.25}, + {"matrix": [8, 8], "x": 17.75, "y": 2.5}, + {"matrix": [8, 9], "x": 18.75, "y": 2.5}, + {"matrix": [8, 10], "x": 19.75, "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": [9, 0], "x": 9.25, "y": 3.5}, + {"matrix": [9, 1], "x": 10.25, "y": 3.5}, + {"matrix": [9, 2], "x": 11.25, "y": 3.5}, + {"matrix": [9, 3], "x": 12.25, "y": 3.5}, + {"matrix": [9, 4], "x": 13.25, "y": 3.5}, + {"matrix": [9, 5], "x": 14.25, "y": 3.5}, + {"matrix": [9, 7], "x": 15.25, "y": 3.5, "w": 2.25}, + {"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": [10, 0], "x": 8.75, "y": 4.5}, + {"matrix": [10, 1], "x": 9.75, "y": 4.5}, + {"matrix": [10, 2], "x": 10.75, "y": 4.5}, + {"matrix": [10, 3], "x": 11.75, "y": 4.5}, + {"matrix": [10, 4], "x": 12.75, "y": 4.5}, + {"matrix": [10, 5], "x": 13.75, "y": 4.5}, + {"matrix": [10, 6], "x": 14.75, "y": 4.5, "w": 2.75}, + {"matrix": [10, 9], "x": 18.75, "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, 4], "x": 4, "y": 5.5, "w": 2.75}, + {"matrix": [5, 5], "x": 6.75, "y": 5.5}, + {"matrix": [11, 2], "x": 9.25, "y": 5.5, "w": 3.25}, + {"matrix": [11, 4], "x": 12.5, "y": 5.5, "w": 1.25}, + {"matrix": [11, 5], "x": 13.75, "y": 5.5, "w": 1.25}, + {"matrix": [11, 6], "x": 15, "y": 5.5, "w": 1.25}, + {"matrix": [11, 7], "x": 16.25, "y": 5.5, "w": 1.25}, + {"matrix": [11, 8], "x": 17.75, "y": 5.5}, + {"matrix": [11, 9], "x": 18.75, "y": 5.5}, + {"matrix": [11, 10], "x": 19.75, "y": 5.5} + ] + }, + "LAYOUT_split_tkl_ansi_split_rshift": { + "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": [6, 9], "x": 18.75, "y": 0}, + {"matrix": [6, 10], "x": 19.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": [7, 0], "x": 9.5, "y": 1.5}, + {"matrix": [7, 1], "x": 10.5, "y": 1.5}, + {"matrix": [7, 2], "x": 11.5, "y": 1.5}, + {"matrix": [7, 3], "x": 12.5, "y": 1.5}, + {"matrix": [7, 4], "x": 13.5, "y": 1.5}, + {"matrix": [7, 5], "x": 14.5, "y": 1.5}, + {"matrix": [7, 6], "x": 15.5, "y": 1.5, "w": 2}, + {"matrix": [7, 8], "x": 17.75, "y": 1.5}, + {"matrix": [7, 9], "x": 18.75, "y": 1.5}, + {"matrix": [7, 10], "x": 19.75, "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": [8, 0], "x": 9, "y": 2.5}, + {"matrix": [8, 1], "x": 10, "y": 2.5}, + {"matrix": [8, 2], "x": 11, "y": 2.5}, + {"matrix": [8, 3], "x": 12, "y": 2.5}, + {"matrix": [8, 4], "x": 13, "y": 2.5}, + {"matrix": [8, 5], "x": 14, "y": 2.5}, + {"matrix": [8, 6], "x": 15, "y": 2.5}, + {"matrix": [8, 7], "x": 16.25, "y": 2.5, "w": 1.25}, + {"matrix": [8, 8], "x": 17.75, "y": 2.5}, + {"matrix": [8, 9], "x": 18.75, "y": 2.5}, + {"matrix": [8, 10], "x": 19.75, "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": [9, 0], "x": 9.25, "y": 3.5}, + {"matrix": [9, 1], "x": 10.25, "y": 3.5}, + {"matrix": [9, 2], "x": 11.25, "y": 3.5}, + {"matrix": [9, 3], "x": 12.25, "y": 3.5}, + {"matrix": [9, 4], "x": 13.25, "y": 3.5}, + {"matrix": [9, 5], "x": 14.25, "y": 3.5}, + {"matrix": [9, 7], "x": 15.25, "y": 3.5, "w": 2.25}, + {"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": [10, 0], "x": 8.75, "y": 4.5}, + {"matrix": [10, 1], "x": 9.75, "y": 4.5}, + {"matrix": [10, 2], "x": 10.75, "y": 4.5}, + {"matrix": [10, 3], "x": 11.75, "y": 4.5}, + {"matrix": [10, 4], "x": 12.75, "y": 4.5}, + {"matrix": [10, 5], "x": 13.75, "y": 4.5}, + {"matrix": [10, 6], "x": 14.75, "y": 4.5, "w": 1.75}, + {"matrix": [10, 7], "x": 16.5, "y": 4.5}, + {"matrix": [10, 9], "x": 18.75, "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, 4], "x": 4, "y": 5.5, "w": 2.75}, + {"matrix": [5, 5], "x": 6.75, "y": 5.5}, + {"matrix": [11, 2], "x": 9.25, "y": 5.5, "w": 3.25}, + {"matrix": [11, 4], "x": 12.5, "y": 5.5, "w": 1.25}, + {"matrix": [11, 5], "x": 13.75, "y": 5.5, "w": 1.25}, + {"matrix": [11, 6], "x": 15, "y": 5.5, "w": 1.25}, + {"matrix": [11, 7], "x": 16.25, "y": 5.5, "w": 1.25}, + {"matrix": [11, 8], "x": 17.75, "y": 5.5}, + {"matrix": [11, 9], "x": 18.75, "y": 5.5}, + {"matrix": [11, 10], "x": 19.75, "y": 5.5} + ] + }, + "LAYOUT_split_tkl_ansi_split_rshift_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": [6, 9], "x": 18.75, "y": 0}, + {"matrix": [6, 10], "x": 19.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": [7, 0], "x": 9.5, "y": 1.5}, + {"matrix": [7, 1], "x": 10.5, "y": 1.5}, + {"matrix": [7, 2], "x": 11.5, "y": 1.5}, + {"matrix": [7, 3], "x": 12.5, "y": 1.5}, + {"matrix": [7, 4], "x": 13.5, "y": 1.5}, + {"matrix": [7, 5], "x": 14.5, "y": 1.5}, + {"matrix": [7, 6], "x": 15.5, "y": 1.5}, + {"matrix": [7, 7], "x": 16.5, "y": 1.5}, + {"matrix": [7, 8], "x": 17.75, "y": 1.5}, + {"matrix": [7, 9], "x": 18.75, "y": 1.5}, + {"matrix": [7, 10], "x": 19.75, "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": [8, 0], "x": 9, "y": 2.5}, + {"matrix": [8, 1], "x": 10, "y": 2.5}, + {"matrix": [8, 2], "x": 11, "y": 2.5}, + {"matrix": [8, 3], "x": 12, "y": 2.5}, + {"matrix": [8, 4], "x": 13, "y": 2.5}, + {"matrix": [8, 5], "x": 14, "y": 2.5}, + {"matrix": [8, 6], "x": 15, "y": 2.5}, + {"matrix": [8, 7], "x": 16.25, "y": 2.5, "w": 1.25}, + {"matrix": [8, 8], "x": 17.75, "y": 2.5}, + {"matrix": [8, 9], "x": 18.75, "y": 2.5}, + {"matrix": [8, 10], "x": 19.75, "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": [9, 0], "x": 9.25, "y": 3.5}, + {"matrix": [9, 1], "x": 10.25, "y": 3.5}, + {"matrix": [9, 2], "x": 11.25, "y": 3.5}, + {"matrix": [9, 3], "x": 12.25, "y": 3.5}, + {"matrix": [9, 4], "x": 13.25, "y": 3.5}, + {"matrix": [9, 5], "x": 14.25, "y": 3.5}, + {"matrix": [9, 7], "x": 15.25, "y": 3.5, "w": 2.25}, + {"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": [10, 0], "x": 8.75, "y": 4.5}, + {"matrix": [10, 1], "x": 9.75, "y": 4.5}, + {"matrix": [10, 2], "x": 10.75, "y": 4.5}, + {"matrix": [10, 3], "x": 11.75, "y": 4.5}, + {"matrix": [10, 4], "x": 12.75, "y": 4.5}, + {"matrix": [10, 5], "x": 13.75, "y": 4.5}, + {"matrix": [10, 6], "x": 14.75, "y": 4.5, "w": 1.75}, + {"matrix": [10, 7], "x": 16.5, "y": 4.5}, + {"matrix": [10, 9], "x": 18.75, "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, 4], "x": 4, "y": 5.5, "w": 2.75}, + {"matrix": [5, 5], "x": 6.75, "y": 5.5}, + {"matrix": [11, 2], "x": 9.25, "y": 5.5, "w": 3.25}, + {"matrix": [11, 4], "x": 12.5, "y": 5.5, "w": 1.25}, + {"matrix": [11, 5], "x": 13.75, "y": 5.5, "w": 1.25}, + {"matrix": [11, 6], "x": 15, "y": 5.5, "w": 1.25}, + {"matrix": [11, 7], "x": 16.25, "y": 5.5, "w": 1.25}, + {"matrix": [11, 8], "x": 17.75, "y": 5.5}, + {"matrix": [11, 9], "x": 18.75, "y": 5.5}, + {"matrix": [11, 10], "x": 19.75, "y": 5.5} + ] + }, + "LAYOUT_split_tkl_ansi_split_rshift_bs_rspace": { + "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": [6, 9], "x": 18.75, "y": 0}, + {"matrix": [6, 10], "x": 19.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": [7, 0], "x": 9.5, "y": 1.5}, + {"matrix": [7, 1], "x": 10.5, "y": 1.5}, + {"matrix": [7, 2], "x": 11.5, "y": 1.5}, + {"matrix": [7, 3], "x": 12.5, "y": 1.5}, + {"matrix": [7, 4], "x": 13.5, "y": 1.5}, + {"matrix": [7, 5], "x": 14.5, "y": 1.5}, + {"matrix": [7, 6], "x": 15.5, "y": 1.5}, + {"matrix": [7, 7], "x": 16.5, "y": 1.5}, + {"matrix": [7, 8], "x": 17.75, "y": 1.5}, + {"matrix": [7, 9], "x": 18.75, "y": 1.5}, + {"matrix": [7, 10], "x": 19.75, "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": [8, 0], "x": 9, "y": 2.5}, + {"matrix": [8, 1], "x": 10, "y": 2.5}, + {"matrix": [8, 2], "x": 11, "y": 2.5}, + {"matrix": [8, 3], "x": 12, "y": 2.5}, + {"matrix": [8, 4], "x": 13, "y": 2.5}, + {"matrix": [8, 5], "x": 14, "y": 2.5}, + {"matrix": [8, 6], "x": 15, "y": 2.5}, + {"matrix": [8, 7], "x": 16.25, "y": 2.5, "w": 1.25}, + {"matrix": [8, 8], "x": 17.75, "y": 2.5}, + {"matrix": [8, 9], "x": 18.75, "y": 2.5}, + {"matrix": [8, 10], "x": 19.75, "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": [9, 0], "x": 9.25, "y": 3.5}, + {"matrix": [9, 1], "x": 10.25, "y": 3.5}, + {"matrix": [9, 2], "x": 11.25, "y": 3.5}, + {"matrix": [9, 3], "x": 12.25, "y": 3.5}, + {"matrix": [9, 4], "x": 13.25, "y": 3.5}, + {"matrix": [9, 5], "x": 14.25, "y": 3.5}, + {"matrix": [9, 7], "x": 15.25, "y": 3.5, "w": 2.25}, + {"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": [10, 0], "x": 8.75, "y": 4.5}, + {"matrix": [10, 1], "x": 9.75, "y": 4.5}, + {"matrix": [10, 2], "x": 10.75, "y": 4.5}, + {"matrix": [10, 3], "x": 11.75, "y": 4.5}, + {"matrix": [10, 4], "x": 12.75, "y": 4.5}, + {"matrix": [10, 5], "x": 13.75, "y": 4.5}, + {"matrix": [10, 6], "x": 14.75, "y": 4.5, "w": 1.75}, + {"matrix": [10, 7], "x": 16.5, "y": 4.5}, + {"matrix": [10, 9], "x": 18.75, "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, 4], "x": 4, "y": 5.5, "w": 2.75}, + {"matrix": [5, 5], "x": 6.75, "y": 5.5}, + {"matrix": [11, 1], "x": 9.25, "y": 5.5}, + {"matrix": [11, 2], "x": 10.25, "y": 5.5, "w": 2.25}, + {"matrix": [11, 4], "x": 12.5, "y": 5.5, "w": 1.25}, + {"matrix": [11, 5], "x": 13.75, "y": 5.5, "w": 1.25}, + {"matrix": [11, 6], "x": 15, "y": 5.5, "w": 1.25}, + {"matrix": [11, 7], "x": 16.25, "y": 5.5, "w": 1.25}, + {"matrix": [11, 8], "x": 17.75, "y": 5.5}, + {"matrix": [11, 9], "x": 18.75, "y": 5.5}, + {"matrix": [11, 10], "x": 19.75, "y": 5.5} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/era/sirind/tomak/keymaps/default/keymap.c b/keyboards/era/sirind/tomak/keymaps/default/keymap.c new file mode 100644 index 00000000000..62941ff8b7a --- /dev/null +++ b/keyboards/era/sirind/tomak/keymaps/default/keymap.c @@ -0,0 +1,25 @@ +// 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_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_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_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_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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), MO(1), KC_SPC, KC_RALT, KC_RGUI, KC_MENU, 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, 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, KC_TRNS, 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 new file mode 100644 index 00000000000..3823cc69c36 --- /dev/null +++ b/keyboards/era/sirind/tomak/keymaps/default_ansi/keymap.c @@ -0,0 +1,25 @@ +// 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_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_F13, KC_PSCR, KC_SCRL, KC_PAUS, + 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_INS, KC_HOME, KC_PGUP, + 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_END, KC_PGDN, + 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_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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_ansi( + 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, 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 new file mode 100644 index 00000000000..87f3072a9e1 --- /dev/null +++ b/keyboards/era/sirind/tomak/keymaps/default_ansi_split_bs/keymap.c @@ -0,0 +1,25 @@ +// 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_ansi_split_bs( + 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_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_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_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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_ansi_split_bs( + 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, 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 new file mode 100644 index 00000000000..6b8fb56e339 --- /dev/null +++ b/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift/keymap.c @@ -0,0 +1,25 @@ +// 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_ansi_split_rshift( + 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_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_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_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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_ansi_split_rshift( + 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, 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 new file mode 100644 index 00000000000..380689dd46b --- /dev/null +++ b/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift_bs/keymap.c @@ -0,0 +1,25 @@ +// 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_ansi_split_rshift_bs( + 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_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_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_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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_ansi_split_rshift_bs( + 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, 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/via/keymap.c b/keyboards/era/sirind/tomak/keymaps/via/keymap.c new file mode 100644 index 00000000000..62941ff8b7a --- /dev/null +++ b/keyboards/era/sirind/tomak/keymaps/via/keymap.c @@ -0,0 +1,25 @@ +// 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_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_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_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_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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), MO(1), KC_SPC, KC_RALT, KC_RGUI, KC_MENU, 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, 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, KC_TRNS, 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/via/rules.mk b/keyboards/era/sirind/tomak/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/era/sirind/tomak/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/era/sirind/tomak/readme.md b/keyboards/era/sirind/tomak/readme.md new file mode 100644 index 00000000000..0834dfd6a87 --- /dev/null +++ b/keyboards/era/sirind/tomak/readme.md @@ -0,0 +1,27 @@ +# Tomak + +![Tomak](https://i.imgur.com/CmVR0G1.jpeg) + +Ergonomics Split Keyboard powered by RP2040. + +* Keyboard Maintainer: [ERA](https://github.com/eerraa) +* Hardware supported: SIRIND Tomak +* Hardware availability: [Syryan](https://srind.mysoho.com/) + +Make example for this keyboard (after setting up your build environment): + + make era/sirind/tomak:default + +Flashing example for this keyboard: + + make era/sirind/tomak: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/tomak/rules.mk b/keyboards/era/sirind/tomak/rules.mk new file mode 100644 index 00000000000..743228e94b6 --- /dev/null +++ b/keyboards/era/sirind/tomak/rules.mk @@ -0,0 +1 @@ +SERIAL_DRIVER = vendor \ No newline at end of file diff --git a/keyboards/era/sirind/tomak/tomak.c b/keyboards/era/sirind/tomak/tomak.c new file mode 100644 index 00000000000..8533cd4a737 --- /dev/null +++ b/keyboards/era/sirind/tomak/tomak.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) { + rgb_matrix_set_color(96, 0, 128, 128); + rgb_matrix_set_color(97, 0, 128, 128); + rgb_matrix_set_color(98, 0, 128, 128); + } + return true; +} \ No newline at end of file From 284e29d4a1edcdd4bcaeb9a41d824d471369ceaf Mon Sep 17 00:00:00 2001 From: Alabahuy Date: Tue, 30 Apr 2024 09:42:32 +0700 Subject: [PATCH 23/55] [Keyboard] add jaykeeb jk65 (#23536) --- keyboards/jaykeeb/jk65/info.json | 410 ++++++++++++++++++ .../jaykeeb/jk65/keymaps/default/keymap.c | 22 + keyboards/jaykeeb/jk65/keymaps/via/keymap.c | 21 + keyboards/jaykeeb/jk65/keymaps/via/rules.mk | 1 + keyboards/jaykeeb/jk65/matrix_diagram.md | 24 + keyboards/jaykeeb/jk65/readme.md | 27 ++ keyboards/jaykeeb/jk65/rules.mk | 1 + 7 files changed, 506 insertions(+) create mode 100644 keyboards/jaykeeb/jk65/info.json create mode 100644 keyboards/jaykeeb/jk65/keymaps/default/keymap.c create mode 100644 keyboards/jaykeeb/jk65/keymaps/via/keymap.c create mode 100644 keyboards/jaykeeb/jk65/keymaps/via/rules.mk create mode 100644 keyboards/jaykeeb/jk65/matrix_diagram.md create mode 100644 keyboards/jaykeeb/jk65/readme.md create mode 100644 keyboards/jaykeeb/jk65/rules.mk diff --git a/keyboards/jaykeeb/jk65/info.json b/keyboards/jaykeeb/jk65/info.json new file mode 100644 index 00000000000..0be07caacdc --- /dev/null +++ b/keyboards/jaykeeb/jk65/info.json @@ -0,0 +1,410 @@ +{ + "manufacturer": "Jaykeeb Studio", + "keyboard_name": "JK65", + "maintainer": "Alabahuy", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP24", "GP14", "GP13", "GP12", "GP11", "GP10", "GP9", "GP8", "GP7", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1"], + "rows": ["GP29", "GP0", "GP15", "GP26", "GP27"] + }, + "indicators": { + "caps_lock": "GP25", + "on_state": 0 + }, + "processor": "RP2040", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x7765", + "vid": "0x414C" + }, + "community_layouts": ["65_ansi_blocker", "65_ansi_blocker_split_bs", "65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs"], + "layouts": { + "LAYOUT_all": { + "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": "Delete", "matrix": [1, 13], "x": 14, "y": 0}, + {"label": "Home", "matrix": [0, 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": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "End", "matrix": [1, 14], "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": "Page Up", "matrix": [2, 14], "x": 15, "y": 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": "\u2191", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "Page Down", "matrix": [3, 14], "x": 15, "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, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 12], "x": 13, "y": 4}, + {"label": "\u2193", "matrix": [4, 13], "x": 14, "y": 4}, + {"label": "\u2192", "matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker": { + "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": "Home", "matrix": [0, 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": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "End", "matrix": [1, 14], "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": "Page Up", "matrix": [2, 14], "x": 15, "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": "\u2191", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "Page Down", "matrix": [3, 14], "x": 15, "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, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 12], "x": 13, "y": 4}, + {"label": "\u2193", "matrix": [4, 13], "x": 14, "y": 4}, + {"label": "\u2192", "matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_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": "Backspace", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Delete", "matrix": [1, 13], "x": 14, "y": 0}, + {"label": "Home", "matrix": [0, 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": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "End", "matrix": [1, 14], "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": "Page Up", "matrix": [2, 14], "x": 15, "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": "\u2191", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "Page Down", "matrix": [3, 14], "x": 15, "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, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 12], "x": 13, "y": 4}, + {"label": "\u2193", "matrix": [4, 13], "x": 14, "y": 4}, + {"label": "\u2192", "matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_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": "Home", "matrix": [0, 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": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "End", "matrix": [1, 14], "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": "Page Up", "matrix": [2, 14], "x": 15, "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": "\u2191", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "Page Down", "matrix": [3, 14], "x": 15, "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, 6], "x": 4, "y": 4, "w": 7}, + {"label": "Ctrl", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "\u2190", "matrix": [4, 12], "x": 13, "y": 4}, + {"label": "\u2193", "matrix": [4, 13], "x": 14, "y": 4}, + {"label": "\u2192", "matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan_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": "Backspace", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Delete", "matrix": [1, 13], "x": 14, "y": 0}, + {"label": "Home", "matrix": [0, 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": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "End", "matrix": [1, 14], "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": "Page Up", "matrix": [2, 14], "x": 15, "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": "\u2191", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "Page Down", "matrix": [3, 14], "x": 15, "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, 6], "x": 4, "y": 4, "w": 7}, + {"label": "Ctrl", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "\u2190", "matrix": [4, 12], "x": 13, "y": 4}, + {"label": "\u2193", "matrix": [4, 13], "x": 14, "y": 4}, + {"label": "\u2192", "matrix": [4, 14], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/jaykeeb/jk65/keymaps/default/keymap.c b/keyboards/jaykeeb/jk65/keymaps/default/keymap.c new file mode 100644 index 00000000000..de10b49a6cf --- /dev/null +++ b/keyboards/jaykeeb/jk65/keymaps/default/keymap.c @@ -0,0 +1,22 @@ +// Copyright 2024 Alabahuy +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_ansi_blocker( + 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_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_DEL, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/jaykeeb/jk65/keymaps/via/keymap.c b/keyboards/jaykeeb/jk65/keymaps/via/keymap.c new file mode 100644 index 00000000000..bc93e7ea2be --- /dev/null +++ b/keyboards/jaykeeb/jk65/keymaps/via/keymap.c @@ -0,0 +1,21 @@ +// Copyright 2024 Alabahuy +// 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_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_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, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, 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_PSCR, KC_SCRL, KC_PAUS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/jaykeeb/jk65/keymaps/via/rules.mk b/keyboards/jaykeeb/jk65/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/jaykeeb/jk65/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/jaykeeb/jk65/matrix_diagram.md b/keyboards/jaykeeb/jk65/matrix_diagram.md new file mode 100644 index 00000000000..7a36c0ae662 --- /dev/null +++ b/keyboards/jaykeeb/jk65/matrix_diagram.md @@ -0,0 +1,24 @@ +# Matrix Diagram for Jaykeeb JK65 + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │1D │0E │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │2D │1E │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2E │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ +│40 │41 │42 │46 │4A │4B │ │4C │4D │4E │ +└────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ +┌────────┐ +│30 │ 2.25u LShift +└────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┐ +│40 │41 │42 │46 │4B │ Blocker Tsangan +└─────┴───┴─────┴───────────────────────────┴─────┘ +``` diff --git a/keyboards/jaykeeb/jk65/readme.md b/keyboards/jaykeeb/jk65/readme.md new file mode 100644 index 00000000000..e0dbe05c581 --- /dev/null +++ b/keyboards/jaykeeb/jk65/readme.md @@ -0,0 +1,27 @@ +# JK65 + +![jk65]( https://i.imgur.com/NysDAOy.png ) + +Layout 65% support multi layout and keyboard case exiting + +* Keyboard Maintainer: [Alabahuy](https://github.com/Alabahuy) +* Hardware Supported: JK65 PCB, RP2040 +* Hardware Availability: Private GB + +Make example for this keyboard (after setting up your build environment): + + make jaykeeb/jk65:default + +Flashing example for this keyboard: + + make jaykeeb/jk65: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/jaykeeb/jk65/rules.mk b/keyboards/jaykeeb/jk65/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/jaykeeb/jk65/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From b99e09ee0ebdbd473afd2e1dc35266e453c405b2 Mon Sep 17 00:00:00 2001 From: Stefan Gluszek Date: Tue, 30 Apr 2024 04:45:46 +0200 Subject: [PATCH 24/55] [Keyboard] Fatotesa - custom asymmetric split keyboard (#23528) Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/fatotesa/info.json | 144 ++++++++++++++++++++ keyboards/fatotesa/keymaps/default/keymap.c | 30 ++++ keyboards/fatotesa/keymaps/default/rules.mk | 1 + keyboards/fatotesa/readme.md | 25 ++++ keyboards/fatotesa/rules.mk | 1 + 5 files changed, 201 insertions(+) create mode 100644 keyboards/fatotesa/info.json create mode 100644 keyboards/fatotesa/keymaps/default/keymap.c create mode 100644 keyboards/fatotesa/keymaps/default/rules.mk create mode 100644 keyboards/fatotesa/readme.md create mode 100644 keyboards/fatotesa/rules.mk diff --git a/keyboards/fatotesa/info.json b/keyboards/fatotesa/info.json new file mode 100644 index 00000000000..bdd5e40478d --- /dev/null +++ b/keyboards/fatotesa/info.json @@ -0,0 +1,144 @@ +{ + "development_board": "promicro", + "manufacturer": "fatotesa", + "keyboard_name": "fatotesa", + "maintainer": "stefangluszek", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "caps_word": true + }, + "encoder": { + "rotary": [ + { "pin_a": "D1", "pin_b": "D0" , "resolution": 2} + ] + }, + "split": { + "enabled": true, + "soft_serial_pin": "D2", + "usb_detect": { + "enabled": true, + "timeout": 2500 + }, + "matrix_pins": { + "right": { + "cols": ["F4", "F5", "F6", "C6", "F7", "B1", "B3", "B2"], + "rows": ["B6", "E6", "D4", "D7", "B4", "B5"] + } + }, + "bootmagic": { + "matrix": [4, 1] + } + }, + "matrix_pins": { + "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", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "label":"esc", "x":0, "y":0}, + {"matrix": [0, 2], "label":"f1", "x":2, "y":0}, + {"matrix": [0, 3], "label":"f2", "x":3, "y":0}, + {"matrix": [0, 4], "label":"f3", "x":4, "y":0}, + {"matrix": [0, 5], "label":"f4", "x":5, "y":0}, + + {"matrix": [6, 4], "label":"end", "x":13.25, "y":0}, + {"matrix": [6, 5], "label":"ins", "x":14.25, "y":0}, + {"matrix": [6, 6], "label":"del", "x":15.25, "y":0}, + {"matrix": [6, 7], "label":"enc", "x":16.5, "y":0, "encoder": 0}, + + + {"matrix": [1, 0], "label":"`", "x":0, "y":1}, + {"matrix": [1, 1], "label":"1", "x":1, "y":1}, + {"matrix": [1, 2], "label":"2", "x":2, "y":1}, + {"matrix": [1, 3], "label":"3", "x":3, "y":1}, + {"matrix": [1, 4], "label":"4", "x":4, "y":1}, + {"matrix": [1, 5], "label":"5", "x":5, "y":1}, + {"matrix": [1, 6], "label":"6", "x":6, "y":1}, + + {"matrix": [7, 1], "label":"7", "x":9.5, "y":1}, + {"matrix": [7, 2], "label":"8", "x":10.5, "y":1}, + {"matrix": [7, 3], "label":"9", "x":11.5, "y":1}, + {"matrix": [7, 4], "label":"0", "x":12.5, "y":1}, + {"matrix": [7, 5], "label":"-", "x":13.5, "y":1}, + {"matrix": [7, 6], "label":"=", "x":14.5, "y":1}, + {"matrix": [7, 7], "label":"<", "x":15.5, "y":1, "w":2}, + + + {"matrix": [2, 0], "label":"tab", "x":0, "y":2, "w":1.5}, + {"matrix": [2, 1], "label":"q", "x":1.5, "y":2}, + {"matrix": [2, 2], "label":"w", "x":2.5, "y":2}, + {"matrix": [2, 3], "label":"e", "x":3.5, "y":2}, + {"matrix": [2, 4], "label":"r", "x":4.5, "y":2}, + {"matrix": [2, 5], "label":"t", "x":5.5, "y":2}, + + {"matrix": [8, 0], "label":"y", "x":9, "y":2}, + {"matrix": [8, 1], "label":"u", "x":10, "y":2}, + {"matrix": [8, 2], "label":"i", "x":11, "y":2}, + {"matrix": [8, 3], "label":"o", "x":12, "y":2}, + {"matrix": [8, 4], "label":"p", "x":13, "y":2}, + {"matrix": [8, 5], "label":"[", "x":14, "y":2}, + {"matrix": [8, 6], "label":"]", "x":15, "y":2}, + {"matrix": [8, 7], "x":16.25, "y":2, "w":1.25, "h":2}, + + + {"matrix": [3, 0], "label":"caps", "x":0, "y":3, "w":1.75}, + {"matrix": [3, 1], "label":"a", "x":1.75, "y":3}, + {"matrix": [3, 2], "label":"s", "x":2.75, "y":3}, + {"matrix": [3, 3], "label":"d", "x":3.75, "y":3}, + {"matrix": [3, 4], "label":"f", "x":4.75, "y":3}, + {"matrix": [3, 5], "label":"g", "x":5.75, "y":3}, + + {"matrix": [9, 0], "label":"h", "x":9.25, "y":3}, + {"matrix": [9, 1], "label":"j", "x":10.25, "y":3}, + {"matrix": [9, 2], "label":"k", "x":11.25, "y":3}, + {"matrix": [9, 3], "label":"l", "x":12.25, "y":3}, + {"matrix": [9, 4], "label":";", "x":13.25, "y":3}, + {"matrix": [9, 5], "label":"'", "x":14.25, "y":3}, + {"matrix": [9, 6], "label":"\\", "x":15.25, "y":3}, + + + {"matrix": [4, 0], "label":"shift", "x":0, "y":4, "w":1.25}, + {"matrix": [4, 1], "label":"<", "x":1.25, "y":4}, + {"matrix": [4, 2], "label":"z", "x":2.25, "y":4}, + {"matrix": [4, 3], "label":"x", "x":3.25, "y":4}, + {"matrix": [4, 4], "label":"c", "x":4.25, "y":4}, + {"matrix": [4, 5], "label":"v", "x":5.25, "y":4}, + {"matrix": [4, 6], "label":"b", "x":6.25, "y":4}, + + {"matrix": [10, 2], "label":"n", "x":9.75, "y":4}, + {"matrix": [10, 3], "label":"m", "x":10.75, "y":4}, + {"matrix": [10, 4], "label":",", "x":11.75, "y":4}, + {"matrix": [10, 5], "label":".", "x":12.75, "y":4}, + {"matrix": [10, 6], "label":"/", "x":13.75, "y":4}, + {"matrix": [10, 7], "x":14.75, "y":4}, + + + {"matrix": [5, 0], "label":"ctrl", "x":0, "y":5, "w":1.25}, + {"matrix": [5, 1], "label":"win", "x":1.25, "y":5, "w":1.25}, + {"matrix": [5, 2], "label":"alt", "x":2.5, "y":5, "w":1.25}, + {"matrix": [5, 3], "label":"space", "x":3.75, "y":5, "w":1.75}, + {"matrix": [5, 4], "label":"na", "x":5.5, "y":5}, + + {"matrix": [11, 3], "label":"space", "x":10.5, "y":5, "w":2}, + {"matrix": [11, 4], "label":"alt gr", "x":12.5, "y":5, "w":1.25}, + {"matrix": [11, 5], "label":"ctrl", "x":13.75, "y":5, "w":1.25}, + {"matrix": [11, 6], "label":"?", "x":15, "y":5, "w":1.25}, + {"matrix": [11, 7], "label":"?", "x":16.25, "y":5, "w":1.25} + ] + } + } +} diff --git a/keyboards/fatotesa/keymaps/default/keymap.c b/keyboards/fatotesa/keymaps/default/keymap.c new file mode 100644 index 00000000000..1f6aa804889 --- /dev/null +++ b/keyboards/fatotesa/keymaps/default/keymap.c @@ -0,0 +1,30 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +#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(KC_VOLD, KC_VOLU) }, +}; +#endif + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_END, KC_INSERT, KC_DELETE, KC_KB_MUTE, + KC_GRAVE, 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, + LT(1, KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LEFT_BRACKET, KC_RIGHT_BRACKET, KC_ENTER, + KC_LEFT_CTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SEMICOLON, KC_QUOTE, KC_BACKSLASH, + KC_LEFT_SHIFT, KC_LEFT_ANGLE_BRACKET, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RIGHT_SHIFT, + CW_TOGG, KC_LWIN, KC_LEFT_ALT, KC_BACKSPACE, KC_LEFT_ALT, KC_SPACE, KC_RIGHT_ALT, KC_RIGHT_CTRL, KC_NO, KC_NO + ), + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______, _______ + )}; diff --git a/keyboards/fatotesa/keymaps/default/rules.mk b/keyboards/fatotesa/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/fatotesa/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/fatotesa/readme.md b/keyboards/fatotesa/readme.md new file mode 100644 index 00000000000..a3794cfd667 --- /dev/null +++ b/keyboards/fatotesa/readme.md @@ -0,0 +1,25 @@ +# fatotesa + +![fatotesa](https://i.imgur.com/LbxQcU2.png) + +This is the QMK firmware for the [fat-o-tesa](https://github.com/stefangluszek/fat-o-tesa) keyboard. + +* Keyboard Maintainer: [Stefan Gluszek](https://github.com/stefangluszek) + +Make example for this keyboard (after setting up your build environment): + + make fatotesa:default + +Flashing example for this keyboard: + + make fatotesa: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 (4,1) in the matrix and plug in the keyboard - this is somewhat unusual choice but our split halves are not symmetrical and we can't use (0,0) but instead a key that maps to the same matrix position regardless of which part is being connected to the computer and flashed. +* **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/fatotesa/rules.mk b/keyboards/fatotesa/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/fatotesa/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From 4f4602abd532ede6dca9a99dd9c96a52076916d2 Mon Sep 17 00:00:00 2001 From: josh-l-wang <22173775+josh-l-wang@users.noreply.github.com> Date: Mon, 29 Apr 2024 22:49:34 -0400 Subject: [PATCH 25/55] [Keyboard] Vault35 WKL universal (#23519) --- keyboards/jlw/vault35_wkl_universal/config.h | 11 + keyboards/jlw/vault35_wkl_universal/halconf.h | 8 + keyboards/jlw/vault35_wkl_universal/info.json | 765 ++++++++++++++++++ .../keymaps/default/keymap.c | 36 + .../keymaps/default/rules.mk | 1 + keyboards/jlw/vault35_wkl_universal/mcuconf.h | 11 + keyboards/jlw/vault35_wkl_universal/readme.md | 27 + keyboards/jlw/vault35_wkl_universal/rules.mk | 1 + 8 files changed, 860 insertions(+) create mode 100644 keyboards/jlw/vault35_wkl_universal/config.h create mode 100644 keyboards/jlw/vault35_wkl_universal/halconf.h create mode 100644 keyboards/jlw/vault35_wkl_universal/info.json create mode 100644 keyboards/jlw/vault35_wkl_universal/keymaps/default/keymap.c create mode 100644 keyboards/jlw/vault35_wkl_universal/keymaps/default/rules.mk create mode 100644 keyboards/jlw/vault35_wkl_universal/mcuconf.h create mode 100644 keyboards/jlw/vault35_wkl_universal/readme.md create mode 100644 keyboards/jlw/vault35_wkl_universal/rules.mk diff --git a/keyboards/jlw/vault35_wkl_universal/config.h b/keyboards/jlw/vault35_wkl_universal/config.h new file mode 100644 index 00000000000..7edfb1b7c6b --- /dev/null +++ b/keyboards/jlw/vault35_wkl_universal/config.h @@ -0,0 +1,11 @@ +// Copyright 2024 jlw +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define WS2812_PWM_DRIVER PWMD17 +#define WS2812_PWM_CHANNEL 1 +#define WS2812_PWM_PAL_MODE 2 +#define WS2812_PWM_COMPLEMENTARY_OUTPUT +#define WS2812_DMA_STREAM STM32_DMA1_STREAM1 +#define WS2812_DMA_CHANNEL 1 diff --git a/keyboards/jlw/vault35_wkl_universal/halconf.h b/keyboards/jlw/vault35_wkl_universal/halconf.h new file mode 100644 index 00000000000..e5c3093515a --- /dev/null +++ b/keyboards/jlw/vault35_wkl_universal/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2024 jlw +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/jlw/vault35_wkl_universal/info.json b/keyboards/jlw/vault35_wkl_universal/info.json new file mode 100644 index 00000000000..3274b717731 --- /dev/null +++ b/keyboards/jlw/vault35_wkl_universal/info.json @@ -0,0 +1,765 @@ +{ + "manufacturer": "jlw", + "keyboard_name": "vault 35 WKL universal", + "maintainer": "jlw", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "B0", "pin_b": "A7"}, + {"pin_a": "B2", "pin_b": "B1"}, + {"pin_a": "B3", "pin_b": "A15"}, + {"pin_a": "B5", "pin_b": "B4"}, + {"pin_a": "A1", "pin_b": "A2"} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["B6", "B8", "A13", "B13", "B14", "A14", "A0", "A3", "A4", "A5", "A6"], + "rows": ["B9", "B12", "B15", "A8"] + }, + "processor": "STM32F072", + "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", + "hue_steps": 4, + "layout": [ + {"matrix": [1, 0], "x": 1, "y": 22, "flags": 4}, + {"matrix": [0, 0], "x": 1, "y": 11, "flags": 4}, + {"matrix": [0, 0], "x": 3, "y": 2, "flags": 4}, + {"matrix": [0, 0], "x": 12, "y": 2, "flags": 4}, + {"matrix": [0, 1], "x": 23, "y": 2, "flags": 4}, + {"matrix": [1, 1], "x": 30, "y": 2, "flags": 4}, + {"matrix": [0, 1], "x": 42, "y": 2, "flags": 4}, + {"matrix": [0, 2], "x": 51, "y": 2, "flags": 4}, + {"matrix": [1, 2], "x": 60, "y": 2, "flags": 4}, + {"matrix": [0, 3], "x": 70, "y": 2, "flags": 4}, + {"matrix": [1, 3], "x": 79, "y": 2, "flags": 4}, + {"matrix": [0, 4], "x": 88, "y": 2, "flags": 4}, + {"matrix": [0, 5], "x": 98, "y": 2, "flags": 4}, + {"matrix": [0, 6], "x": 107, "y": 2, "flags": 4}, + {"matrix": [0, 7], "x": 116, "y": 2, "flags": 4}, + {"matrix": [1, 7], "x": 126, "y": 2, "flags": 4}, + {"matrix": [0, 7], "x": 135, "y": 2, "flags": 4}, + {"matrix": [0, 8], "x": 144, "y": 2, "flags": 4}, + {"matrix": [1, 8], "x": 154, "y": 2, "flags": 4}, + {"matrix": [0, 9], "x": 163, "y": 2, "flags": 4}, + {"matrix": [1, 9], "x": 173, "y": 2, "flags": 4}, + {"matrix": [0, 10], "x": 183, "y": 2, "flags": 4}, + {"matrix": [0, 10], "x": 192, "y": 2, "flags": 4}, + {"matrix": [0, 10], "x": 195, "y": 13, "flags": 4}, + {"matrix": [1, 10], "x": 195, "y": 23, "flags": 4}, + {"matrix": [1, 10], "x": 195, "y": 32, "flags": 4}, + {"matrix": [1, 10], "x": 195, "y": 43, "flags": 4}, + {"matrix": [2, 10], "x": 195, "y": 55, "flags": 4}, + {"matrix": [2, 10], "x": 195, "y": 67, "flags": 4}, + {"matrix": [3, 10], "x": 190, "y": 79, "flags": 4}, + {"matrix": [3, 10], "x": 195, "y": 87, "flags": 4}, + {"matrix": [3, 10], "x": 185, "y": 88, "flags": 4}, + {"matrix": [3, 9], "x": 176, "y": 88, "flags": 4}, + {"matrix": [3, 9], "x": 171, "y": 82, "flags": 4}, + {"matrix": [2, 9], "x": 171, "y": 73, "flags": 4}, + {"matrix": [2, 9], "x": 170, "y": 67, "flags": 4}, + {"matrix": [2, 9], "x": 164, "y": 67, "flags": 4}, + {"matrix": [2, 8], "x": 157, "y": 67, "flags": 4}, + {"matrix": [2, 8], "x": 151, "y": 67, "flags": 4}, + {"matrix": [3, 8], "x": 150, "y": 74, "flags": 4}, + {"matrix": [2, 8], "x": 150, "y": 81, "flags": 4}, + {"matrix": [3, 8], "x": 147, "y": 88, "flags": 4}, + {"matrix": [3, 7], "x": 139, "y": 88, "flags": 4}, + {"matrix": [2, 7], "x": 130, "y": 88, "flags": 4}, + {"matrix": [3, 7], "x": 122, "y": 88, "flags": 4}, + {"matrix": [3, 6], "x": 113, "y": 88, "flags": 4}, + {"matrix": [2, 5], "x": 102, "y": 85, "flags": 4}, + {"matrix": [3, 5], "x": 94, "y": 85, "flags": 4}, + {"matrix": [3, 4], "x": 85, "y": 88, "flags": 4}, + {"matrix": [2, 3], "x": 75, "y": 88, "flags": 4}, + {"matrix": [3, 3], "x": 66, "y": 88, "flags": 4}, + {"matrix": [2, 2], "x": 57, "y": 88, "flags": 4}, + {"matrix": [3, 2], "x": 49, "y": 88, "flags": 4}, + {"matrix": [3, 2], "x": 46, "y": 83, "flags": 4}, + {"matrix": [3, 2], "x": 46, "y": 75, "flags": 4}, + {"matrix": [2, 1], "x": 45, "y": 67, "flags": 4}, + {"matrix": [2, 1], "x": 39, "y": 67, "flags": 4}, + {"matrix": [2, 1], "x": 33, "y": 67, "flags": 4}, + {"matrix": [2, 1], "x": 26, "y": 67, "flags": 4}, + {"matrix": [3, 0], "x": 25, "y": 73, "flags": 4}, + {"matrix": [3, 0], "x": 25, "y": 82, "flags": 4}, + {"matrix": [3, 0], "x": 21, "y": 88, "flags": 4}, + {"matrix": [3, 0], "x": 12, "y": 88, "flags": 4}, + {"matrix": [3, 0], "x": 1, "y": 88, "flags": 4}, + {"matrix": [3, 0], "x": 6, "y": 80, "flags": 4}, + {"matrix": [3, 0], "x": 1, "y": 70, "flags": 4}, + {"matrix": [2, 0], "x": 1, "y": 58, "flags": 4}, + {"matrix": [2, 0], "x": 1, "y": 46, "flags": 4}, + {"matrix": [1, 0], "x": 1, "y": 34, "flags": 4} + ], + "sat_steps": 4, + "val_steps": 4 + }, + "url": "https://jlw-kb.com", + "usb": { + "device_version": "0.0.1", + "pid": "0xA457", + "vid": "0x1209" + }, + "ws2812": { + "driver": "pwm", + "pin": "B7" + }, + "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": [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": [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": [2, 10], "x": 10, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.5}, + {"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, 10], "x": 9.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_alpha": { + "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": [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": [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, 6], "x": 5.5, "y": 2}, + {"matrix": [2, 7], "x": 6.5, "y": 2}, + {"matrix": [2, 8], "x": 7.5, "y": 2}, + {"matrix": [2, 9], "x": 8.5, "y": 2}, + {"matrix": [2, 10], "x": 9.5, "y": 2, "w": 1.5}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.5}, + {"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, 10], "x": 9.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_katana": { + "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, 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.5, "y": 0, "w": 1.25, "h": 2}, + {"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": [1, 6], "x": 5.75, "y": 1}, + {"matrix": [1, 7], "x": 6.75, "y": 1}, + {"matrix": [1, 8], "x": 7.75, "y": 1}, + {"matrix": [1, 9], "x": 8.75, "y": 1}, + {"matrix": [1, 10], "x": 9.75, "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": [2, 10], "x": 10, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.5}, + {"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, 10], "x": 9.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_katana_iso": { + "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, 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.5, "y": 0, "w": 1.25, "h": 2}, + {"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": [1, 6], "x": 5.75, "y": 1}, + {"matrix": [1, 7], "x": 6.75, "y": 1}, + {"matrix": [1, 8], "x": 7.75, "y": 1}, + {"matrix": [1, 9], "x": 8.75, "y": 1}, + {"matrix": [1, 10], "x": 9.75, "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": [2, 10], "x": 10, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.5}, + {"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, 10], "x": 9.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_ortho_125_center1u": { + "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": [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": [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": [2, 10], "x": 10, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.5}, + {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3, "w": 1.25}, + {"matrix": [3, 4], "x": 5, "y": 3}, + {"matrix": [3, 6], "x": 6, "y": 3, "w": 1.25}, + {"matrix": [3, 7], "x": 7.25, "y": 3, "w": 1.25}, + {"matrix": [3, 10], "x": 9.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_ortho_150_center1u": { + "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": [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": [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": [2, 10], "x": 10, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.5}, + {"matrix": [3, 2], "x": 2.5, "y": 3}, + {"matrix": [3, 3], "x": 3.5, "y": 3, "w": 1.5}, + {"matrix": [3, 4], "x": 5, "y": 3}, + {"matrix": [3, 6], "x": 6, "y": 3, "w": 1.5}, + {"matrix": [3, 7], "x": 7.5, "y": 3}, + {"matrix": [3, 10], "x": 9.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_ortho_2u_bars": { + "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": [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": [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": [2, 10], "x": 10, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.5}, + {"matrix": [3, 2], "x": 2.5, "y": 3}, + {"matrix": [3, 3], "x": 3.5, "y": 3, "w": 2}, + {"matrix": [3, 6], "x": 5.5, "y": 3, "w": 2}, + {"matrix": [3, 7], "x": 7.5, "y": 3}, + {"matrix": [3, 10], "x": 9.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_ortho_3u_bars": { + "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": [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": [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": [2, 10], "x": 10, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.5}, + {"matrix": [3, 3], "x": 2.5, "y": 3, "w": 3}, + {"matrix": [3, 6], "x": 5.5, "y": 3, "w": 3}, + {"matrix": [3, 10], "x": 9.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_ortho_6u_bar": { + "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": [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": [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": [2, 10], "x": 10, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.5}, + {"matrix": [3, 4], "x": 2.5, "y": 3, "w": 6}, + {"matrix": [3, 10], "x": 9.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_ortho_cain_bars": { + "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": [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": [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": [2, 10], "x": 10, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.5}, + {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3, "w": 1.75}, + {"matrix": [3, 6], "x": 5.5, "y": 3, "w": 1.75}, + {"matrix": [3, 7], "x": 7.25, "y": 3, "w": 1.25}, + {"matrix": [3, 10], "x": 9.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_ortho_centered_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": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "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": [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": [2, 10], "x": 10, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.5}, + {"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.5}, + {"matrix": [3, 4], "x": 4, "y": 3, "w": 3}, + {"matrix": [3, 7], "x": 7, "y": 3, "w": 1.5}, + {"matrix": [3, 10], "x": 9.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_row": { + "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": [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": [1, 4], "x": 4.25, "y": 1}, + {"matrix": [1, 6], "x": 5.25, "y": 1}, + {"matrix": [1, 7], "x": 6.25, "y": 1}, + {"matrix": [1, 8], "x": 7.25, "y": 1}, + {"matrix": [1, 9], "x": 8.25, "y": 1}, + {"matrix": [1, 10], "x": 9.25, "y": 1, "w": 1.75}, + {"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, 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, "w": 1.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.5}, + {"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, 10], "x": 9.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_treadstone": { + "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": [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": [1, 6], "x": 5.75, "y": 1}, + {"matrix": [1, 7], "x": 6.75, "y": 1}, + {"matrix": [1, 8], "x": 7.75, "y": 1}, + {"matrix": [1, 9], "x": 8.75, "y": 1}, + {"matrix": [1, 10], "x": 9.75, "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": [2, 10], "x": 10, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.5}, + {"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, 10], "x": 9.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_uniform": { + "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": [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": [1, 4], "x": 4.25, "y": 1}, + {"matrix": [1, 6], "x": 5.25, "y": 1}, + {"matrix": [1, 7], "x": 6.25, "y": 1}, + {"matrix": [1, 8], "x": 7.25, "y": 1}, + {"matrix": [1, 9], "x": 8.25, "y": 1}, + {"matrix": [1, 10], "x": 9.25, "y": 1, "w": 1.75}, + {"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, 6], "x": 5.5, "y": 2}, + {"matrix": [2, 7], "x": 6.5, "y": 2}, + {"matrix": [2, 8], "x": 7.5, "y": 2}, + {"matrix": [2, 9], "x": 8.5, "y": 2}, + {"matrix": [2, 10], "x": 9.5, "y": 2, "w": 1.5}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.5}, + {"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, 10], "x": 9.5, "y": 3, "w": 1.5} + ] + } + } +} diff --git a/keyboards/jlw/vault35_wkl_universal/keymaps/default/keymap.c b/keyboards/jlw/vault35_wkl_universal/keymaps/default/keymap.c new file mode 100644 index 00000000000..ae5f304eed6 --- /dev/null +++ b/keyboards/jlw/vault35_wkl_universal/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +// Copyright 2024 jlw +// 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_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_ESC, MO(1), KC_ENT, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_BSPC + ), + + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, + _______, _______, _______, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______, + _______, _______, _______, _______, _______, QK_BOOT, _______, KC_1, KC_2, KC_3, _______, + _______, _______, _______, _______, _______, _______, MO(2), _______ + ), + + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_LEFT, _______, + _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + +#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) } +}; +#endif + diff --git a/keyboards/jlw/vault35_wkl_universal/keymaps/default/rules.mk b/keyboards/jlw/vault35_wkl_universal/keymaps/default/rules.mk new file mode 100644 index 00000000000..a40474b4d5c --- /dev/null +++ b/keyboards/jlw/vault35_wkl_universal/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/jlw/vault35_wkl_universal/mcuconf.h b/keyboards/jlw/vault35_wkl_universal/mcuconf.h new file mode 100644 index 00000000000..3f3e8009459 --- /dev/null +++ b/keyboards/jlw/vault35_wkl_universal/mcuconf.h @@ -0,0 +1,11 @@ +// Copyright 2024 jlw +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef STM32_PWM_USE_TIM17 +#define STM32_PWM_USE_TIM17 TRUE +#define STM32_TIM17_SUPPRESS_ISR + diff --git a/keyboards/jlw/vault35_wkl_universal/readme.md b/keyboards/jlw/vault35_wkl_universal/readme.md new file mode 100644 index 00000000000..d06ee1a998b --- /dev/null +++ b/keyboards/jlw/vault35_wkl_universal/readme.md @@ -0,0 +1,27 @@ +# Vault 35 WKL Universal + +![Vault 35 WKL Universal](https://i.imgur.com/gtJwgiv.png) + +A drop in replacement PCB for the Vault 35 WKL case, originally designed by ProjectCain Mechvault. + +* Keyboard Maintainer: [jlw](https://github.com/josh-l-wang) +* Hardware Supported: Vault 35 WKL Universal PCB +* Hardware Availability: [jlw-kb.com](https://jlw-kb.com) + +Make example for this keyboard (after setting up your build environment): + + make jlw/vault35_wkl_universal:default + +Flashing example for this keyboard: + + make jlw/vault35_wkl_universal: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**: Hold button on the back of the PCB while plugging in the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/jlw/vault35_wkl_universal/rules.mk b/keyboards/jlw/vault35_wkl_universal/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/jlw/vault35_wkl_universal/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From f215da3b7c92c2d2c9e5f791bfc1d654ddba6046 Mon Sep 17 00:00:00 2001 From: Joe Scotto <8194147+joe-scotto@users.noreply.github.com> Date: Mon, 29 Apr 2024 22:50:18 -0400 Subject: [PATCH 26/55] Add ScottoWing keyboard (#23513) Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/scottokeebs/scottowing/info.json | 75 +++++++++++++++++++ .../scottowing/keymaps/default/config.h | 23 ++++++ .../scottowing/keymaps/default/keymap.c | 45 +++++++++++ keyboards/scottokeebs/scottowing/readme.md | 29 +++++++ keyboards/scottokeebs/scottowing/rules.mk | 1 + 5 files changed, 173 insertions(+) create mode 100644 keyboards/scottokeebs/scottowing/info.json create mode 100644 keyboards/scottokeebs/scottowing/keymaps/default/config.h create mode 100644 keyboards/scottokeebs/scottowing/keymaps/default/keymap.c create mode 100644 keyboards/scottokeebs/scottowing/readme.md create mode 100644 keyboards/scottokeebs/scottowing/rules.mk diff --git a/keyboards/scottokeebs/scottowing/info.json b/keyboards/scottokeebs/scottowing/info.json new file mode 100644 index 00000000000..770e2fd18ec --- /dev/null +++ b/keyboards/scottokeebs/scottowing/info.json @@ -0,0 +1,75 @@ +{ + "manufacturer": "ScottoKeebs", + "keyboard_name": "ScottoWing (PCB Edition)", + "maintainer": "joe-scotto", + "bootloader": "rp2040", + "bootmagic": { + "matrix": [0, 1] + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP20", "GP22", "GP26", "GP27", "GP28", "GP29"], + "rows": ["GP8", "GP9", "GP23", "GP21"] + }, + "processor": "RP2040", + "url": "https://scottokeebs.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x1026", + "vid": "0x534B" + }, + "layouts": { + "LAYOUT_split_3x6_2": { + "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": [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": [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": [2, 10], "x": 10, "y": 2}, + {"matrix": [2, 11], "x": 11, "y": 2}, + {"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/scottokeebs/scottowing/keymaps/default/config.h b/keyboards/scottokeebs/scottowing/keymaps/default/config.h new file mode 100644 index 00000000000..eb03070d83a --- /dev/null +++ b/keyboards/scottokeebs/scottowing/keymaps/default/config.h @@ -0,0 +1,23 @@ +/* +Copyright 2024 Joe Scotto + +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 options +#define TAPPING_TERM 135 +#define PERMISSIVE_HOLD +#define TAPPING_TERM_PER_KEY diff --git a/keyboards/scottokeebs/scottowing/keymaps/default/keymap.c b/keyboards/scottokeebs/scottowing/keymaps/default/keymap.c new file mode 100644 index 00000000000..9a1c7daef30 --- /dev/null +++ b/keyboards/scottokeebs/scottowing/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* +Copyright 2024 Joe Scotto + +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_split_3x6_2( + 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_ENT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_BSPC, KC_QUOT, + KC_LSFT, LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), KC_RSFT, + KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT) + ), + [1] = LAYOUT_split_3x6_2( + KC_TRNS, KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, KC_TRNS, + KC_TRNS, KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_TRNS, + KC_TRNS, LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_split_3x6_2( + KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, 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_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_split_3x6_2( + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, 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_TRNS, + KC_TRNS, KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; \ No newline at end of file diff --git a/keyboards/scottokeebs/scottowing/readme.md b/keyboards/scottokeebs/scottowing/readme.md new file mode 100644 index 00000000000..bf20164e666 --- /dev/null +++ b/keyboards/scottokeebs/scottowing/readme.md @@ -0,0 +1,29 @@ +# ScottoWing (PCB Edition) + +![ScottoWing](https://i.imgur.com/ckaYMAx.jpeg) + +The ScottoWing (PCB Edition) is a 3x5 (34-keys) or 3x6 (40-keys) split monoblock ergonomic column-staggered keyboard. + +* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) +* Hardware Supported: RP2040 Pro Micro, nice!nano +* Hardware Availability: [ScottoKeebs](https://scottokeebs.com), [Amazon](https://amazon.com), [AliExpress](https://aliexpress.com) + +# Compiling + +Make example for this keyboard (after setting up your build environment): + + make scottokeebs/scottowing:default + +Flashing example for this keyboard: + + make scottokeebs/scottowing: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,1) 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/scottokeebs/scottowing/rules.mk b/keyboards/scottokeebs/scottowing/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/scottokeebs/scottowing/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From dc2db0c1d4d3168c07ad5c0c36998c9d91df29c7 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Mon, 29 Apr 2024 20:04:04 -0700 Subject: [PATCH 27/55] MechKeys ACR60 Layout Updates (#23309) --- docs/ChangeLog/20240526/PR23309.md | 35 + keyboards/mechkeys/acr60/keyboard.json | 1836 +++++++++++++++++--- keyboards/mechkeys/acr60/matrix_diagram.md | 57 + 3 files changed, 1713 insertions(+), 215 deletions(-) create mode 100644 docs/ChangeLog/20240526/PR23309.md create mode 100644 keyboards/mechkeys/acr60/matrix_diagram.md diff --git a/docs/ChangeLog/20240526/PR23309.md b/docs/ChangeLog/20240526/PR23309.md new file mode 100644 index 00000000000..b5ca5f1e4d0 --- /dev/null +++ b/docs/ChangeLog/20240526/PR23309.md @@ -0,0 +1,35 @@ +# MechKeys ACR60 Layout Updates + +This PR removed and changed some of the layouts that were configured for +the ACR60. If you use one of the following layouts, you will need to +update your keymap: + +- [`LAYOUT_hhkb`](#layout-hhkb) +- [`LAYOUT_true_hhkb`](#layout-true-hhkb) +- [`LAYOUT_directional`](#layout-directional) +- [`LAYOUT_mitchsplit`](#layout-mitchsplit) + +## `LAYOUT_hhkb` :id=layout-hhkb + +1. Change your layout macro to `LAYOUT_60_hhkb`. +2. Remove any keycodes for the key between Left Shift and QWERTY Z. + +## `LAYOUT_true_hhkb` :id=layout-true-hhkb + +1. Change your layout macro to `LAYOUT_60_true_hhkb`. +2. Remove any keycodes for the key between Left Shift and QWERTY Z. + +## `LAYOUT_directional` :id=layout-directional + +1. Change your layout macro to `LAYOUT_60_ansi_arrow_split_bs`. +2. Remove any keycodes for the key between Left Shift and QWERTY Z. +3. Remove any keycodes for the keys immediately before *and* after the +1.25u key of Split Spacebar. + +If you need split spacebars, you may implement +`LAYOUT_60_ansi_arrow_split_space_split_bs` and change your layout to +it, removing the keycode between Left Shift and QWERTY Z. + +## `LAYOUT_mitchsplit` :id=layout-mitchsplit + +1. Use `LAYOUT_60_ansi_split_space_split_rshift`. diff --git a/keyboards/mechkeys/acr60/keyboard.json b/keyboards/mechkeys/acr60/keyboard.json index f2d618b8bd1..916a750b963 100644 --- a/keyboards/mechkeys/acr60/keyboard.json +++ b/keyboards/mechkeys/acr60/keyboard.json @@ -53,8 +53,10 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_tsangan_hhkb", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_ansi_arrow", "64_ansi", "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", "64_iso"], "layout_aliases": { - "LAYOUT_2_shifts": "LAYOUT_all" + "LAYOUT_2_shifts": "LAYOUT_all", + "LAYOUT_mitchsplit": "LAYOUT_60_ansi_split_space_split_rshift" }, "layouts": { "LAYOUT_all": { @@ -133,6 +135,1623 @@ {"matrix": [4, 14], "x": 14, "y": 4} ] }, + "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, 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, 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": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 3], "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, 13], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 14], "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, 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, 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, 14], "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, 3], "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, 13], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 14], "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, 14], "x": 13, "y": 0, "w": 2}, + + {"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, 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": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 3], "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, 13], "x": 12.5, "y": 4}, + {"matrix": [4, 14], "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": [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, 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, 14], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 3], "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, 13], "x": 12.5, "y": 4}, + {"matrix": [4, 14], "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, 14], "x": 13, "y": 0, "w": 2}, + + {"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, 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": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 3], "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, 14], "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": [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, 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, 14], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 3], "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, 14], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_ansi_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, 14], "x": 13, "y": 0, "w": 2}, + + {"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, 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, 12], "x": 11.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 13, "y": 3}, + {"matrix": [3, 14], "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, 3], "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}, + {"matrix": [4, 11], "x": 11, "y": 4}, + {"matrix": [4, 12], "x": 12, "y": 4}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4} + ] + }, + "LAYOUT_60_ansi_arrow_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, 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, 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, 12], "x": 11.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 13, "y": 3}, + {"matrix": [3, 14], "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, 3], "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}, + {"matrix": [4, 11], "x": 11, "y": 4}, + {"matrix": [4, 12], "x": 12, "y": 4}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4} + ] + }, + "LAYOUT_64_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, 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, 0], "x": 0, "y": 3, "w": 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}, + {"matrix": [3, 8], "x": 8, "y": 3}, + {"matrix": [3, 9], "x": 9, "y": 3}, + {"matrix": [3, 10], "x": 10, "y": 3}, + {"matrix": [3, 11], "x": 11, "y": 3}, + {"matrix": [3, 12], "x": 12, "y": 3}, + {"matrix": [3, 13], "x": 13, "y": 3}, + {"matrix": [3, 14], "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, 3], "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}, + {"matrix": [4, 11], "x": 11, "y": 4}, + {"matrix": [4, 12], "x": 12, "y": 4}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4} + ] + }, + "LAYOUT_64_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": [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, 0], "x": 0, "y": 3, "w": 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}, + {"matrix": [3, 8], "x": 8, "y": 3}, + {"matrix": [3, 9], "x": 9, "y": 3}, + {"matrix": [3, 10], "x": 10, "y": 3}, + {"matrix": [3, 11], "x": 11, "y": 3}, + {"matrix": [3, 12], "x": 12, "y": 3}, + {"matrix": [3, 13], "x": 13, "y": 3}, + {"matrix": [3, 14], "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, 3], "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}, + {"matrix": [4, 11], "x": 11, "y": 4}, + {"matrix": [4, 12], "x": 12, "y": 4}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "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": [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, 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, 14], "x": 14, "y": 3}, + + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 3], "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, 13], "x": 12.5, "y": 4} + ] + }, + "LAYOUT_60_true_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, 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, 14], "x": 14, "y": 3}, + + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 6}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 11.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, 14], "x": 13, "y": 0, "w": 2}, + + {"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": [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": [1, 14], "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, 13], "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, 3], "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, 13], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 14], "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": [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": [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": [1, 14], "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, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "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, 3], "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, 13], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 14], "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, 14], "x": 13, "y": 0, "w": 2}, + + {"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": [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": [1, 14], "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, 13], "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, 3], "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, 13], "x": 12.5, "y": 4}, + {"matrix": [4, 14], "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": [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": [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": [1, 14], "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, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 3], "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, 13], "x": 12.5, "y": 4}, + {"matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_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, 14], "x": 13, "y": 0, "w": 2}, + + {"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": [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": [1, 14], "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, 13], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 3], "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, 14], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso_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": [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": [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": [1, 14], "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, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 3], "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, 14], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso_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, 14], "x": 13, "y": 0, "w": 2}, + + {"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": [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": [1, 14], "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, 12], "x": 11.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 13, "y": 3}, + {"matrix": [3, 14], "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, 3], "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}, + {"matrix": [4, 11], "x": 11, "y": 4}, + {"matrix": [4, 12], "x": 12, "y": 4}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4} + ] + }, + "LAYOUT_60_iso_arrow_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, 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": [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": [1, 14], "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, 12], "x": 11.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 13, "y": 3}, + {"matrix": [3, 14], "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, 3], "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}, + {"matrix": [4, 11], "x": 11, "y": 4}, + {"matrix": [4, 12], "x": 12, "y": 4}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4} + ] + }, + "LAYOUT_64_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, 14], "x": 13, "y": 0, "w": 2}, + + {"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": [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": [1, 14], "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}, + {"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}, + {"matrix": [3, 9], "x": 9, "y": 3}, + {"matrix": [3, 10], "x": 10, "y": 3}, + {"matrix": [3, 11], "x": 11, "y": 3}, + {"matrix": [3, 12], "x": 12, "y": 3}, + {"matrix": [3, 13], "x": 13, "y": 3}, + {"matrix": [3, 14], "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, 3], "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}, + {"matrix": [4, 11], "x": 11, "y": 4}, + {"matrix": [4, 12], "x": 12, "y": 4}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4} + ] + }, + "LAYOUT_64_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": [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": [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": [1, 14], "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}, + {"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}, + {"matrix": [3, 9], "x": 9, "y": 3}, + {"matrix": [3, 10], "x": 10, "y": 3}, + {"matrix": [3, 11], "x": 11, "y": 3}, + {"matrix": [3, 12], "x": 12, "y": 3}, + {"matrix": [3, 13], "x": 13, "y": 3}, + {"matrix": [3, 14], "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, 3], "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}, + {"matrix": [4, 11], "x": 11, "y": 4}, + {"matrix": [4, 12], "x": 12, "y": 4}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4} + ] + }, + "LAYOUT_abnt2": { + "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, 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": [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": [1, 14], "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}, + {"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}, + {"matrix": [3, 9], "x": 9, "y": 3}, + {"matrix": [3, 10], "x": 10, "y": 3}, + {"matrix": [3, 11], "x": 11, "y": 3}, + {"matrix": [3, 12], "x": 12, "y": 3}, + {"matrix": [3, 13], "x": 13, "y": 3, "w": 2}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 3], "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, 13], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25} + ] + }, "LAYOUT": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, @@ -208,220 +1827,7 @@ {"matrix": [4, 14], "x": 14, "y": 4} ] }, - "LAYOUT_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, 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": 1.75}, - {"matrix": [3, 14], "x": 14, "y": 3}, - - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 3], "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, 13], "x": 12.5, "y": 4} - ] - }, - "LAYOUT_true_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, 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": 1.75}, - {"matrix": [3, 14], "x": 14, "y": 3}, - - {"matrix": [4, 1], "x": 1.5, "y": 4}, - {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5}, - {"matrix": [4, 6], "x": 4, "y": 4, "w": 6}, - {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5}, - {"matrix": [4, 11], "x": 11.5, "y": 4} - ] - }, - "LAYOUT_directional": { - "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, 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, 12], "x": 11.25, "y": 3, "w": 1.75}, - {"matrix": [3, 13], "x": 13, "y": 3}, - {"matrix": [3, 14], "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, 3], "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}, - {"matrix": [4, 11], "x": 11, "y": 4}, - {"matrix": [4, 12], "x": 12, "y": 4}, - {"matrix": [4, 13], "x": 13, "y": 4}, - {"matrix": [4, 14], "x": 14, "y": 4} - ] - }, - "LAYOUT_mitchsplit": { + "LAYOUT_60_ansi_split_space_split_rshift": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/mechkeys/acr60/matrix_diagram.md b/keyboards/mechkeys/acr60/matrix_diagram.md new file mode 100644 index 00000000000..27a38030afb --- /dev/null +++ b/keyboards/mechkeys/acr60/matrix_diagram.md @@ -0,0 +1,57 @@ +# Matrix Diagram for MechKeys ACR60 + +``` + ┌───────┐ + 2u Backspace │0E │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ┌─────┐ +│10 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐2D │ ISO Enter +│20 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ │1E │ │ +└──────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴────────┘ └───┴────┘ +Shift Row Options: +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │ +└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ +┌───────┐ ┌───────┐ +│30 │ 2u LShift 2u RShift │3D │ +└───────┘ └───────┘ +┌────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬──────┬───┐ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │3E │ Standard with Split Shifts +└────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴──────┴───┘ 1.25u/1u LShift + 1u/1.75u/1u RShift +┌────────┐ ┌───┬──────────┐ +│30 │ 2.25u LShift │3B │3D │ 2.75u RShift +└────────┘ └───┴──────────┘ + ┌──────┬───┬───┐ + │3C │3D │3E │ 1.75u/1u/1u RShift + └──────┴───┴───┘ +Bottom Row Options: +┌────┬────┬────┬────────┬────┬──────────┬───┬───┬───┬───┬───┐ +│40 │41 │43 │44 │46 │48 │4A │4B │4C │4D │4E │ 5x 1u Mods +└────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───┴───┘ + Split Spacebar + [2.25/1.25/2.75] or [2.75/1.25/2.25] + ┌──────────┬────┬────────┐ + │44 │46 │48 │ + └──────────┴────┴────────┘ +┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐ ┐ +│40 │41 │43 │46 │4A │4B │4D │4E │ ├─ Standard +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ │ or +┌─────┬───┬─────┬───────────────────────┬─────┬───┬───┬─────┐ │ Infinity/True HHKB +│40 │41 │43 │46 │4A │4B │4D │4E │ │ (same matrix) +└─────┴───┴─────┴───────────────────────┴─────┴───┴───┴─────┘ ┘ +┌─────┬───┬────┬────────────────────────┬───┬───┬───┬───┬───┐ +│40 │41 │43 │46 │4A │4B │4C │4D │4E │ +└─────┴───┴────┴────────────────────────┴───┴───┴───┴───┴───┘ +┌─────┬─────┬───────────────────────────┬───┬───┬───┬───┬───┐ +│40 │41 │46 │4A │4B │4C │4D │4E │ LWKL +└─────┴─────┴───────────────────────────┴───┴───┴───┴───┴───┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│40 │41 │43 │46 │4B │4D │4E │ Tsangan/WKL/HHKB +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +┌─────┬───┬─────┬───────────────────────────┬───┬───┬───┬───┐ +│40 │41 │43 │46 │4B │4C │4D │4E │ Tsangan Arrow +└─────┴───┴─────┴───────────────────────────┴───┴───┴───┴───┘ +``` From e2618dc35cc04fbbcf857559df78d7eb9aa43640 Mon Sep 17 00:00:00 2001 From: Duncan Sutherland Date: Tue, 30 Apr 2024 09:54:05 +0100 Subject: [PATCH 28/55] Uniform ISO Enter key sequence in JIS Community Layouts (#23181) --- layouts/default/60_jis/info.json | 2 +- layouts/default/tkl_f13_jis/info.json | 2 +- layouts/default/tkl_jis/info.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/layouts/default/60_jis/info.json b/layouts/default/60_jis/info.json index 56972148bda..039ced42f4a 100644 --- a/layouts/default/60_jis/info.json +++ b/layouts/default/60_jis/info.json @@ -34,7 +34,6 @@ {"x": 10.5, "y": 1}, {"x": 11.5, "y": 1}, {"x": 12.5, "y": 1}, - {"x": 13.75, "y": 1, "w": 1.25, "h": 2}, {"x": 0, "y": 2, "w": 1.75}, {"x": 1.75, "y": 2}, @@ -49,6 +48,7 @@ {"x": 10.75, "y": 2}, {"x": 11.75, "y": 2}, {"x": 12.75, "y": 2}, + {"x": 13.75, "y": 1, "w": 1.25, "h": 2}, {"x": 0, "y": 3, "w": 2.25}, {"x": 2.25, "y": 3}, diff --git a/layouts/default/tkl_f13_jis/info.json b/layouts/default/tkl_f13_jis/info.json index 97f5bd3880e..20ff38f6117 100644 --- a/layouts/default/tkl_f13_jis/info.json +++ b/layouts/default/tkl_f13_jis/info.json @@ -55,7 +55,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}, @@ -73,6 +72,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": 0, "y": 4.25, "w": 2.25}, {"x": 2.25, "y": 4.25}, diff --git a/layouts/default/tkl_jis/info.json b/layouts/default/tkl_jis/info.json index 513852193a5..e1d16e2beb7 100644 --- a/layouts/default/tkl_jis/info.json +++ b/layouts/default/tkl_jis/info.json @@ -54,7 +54,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}, @@ -72,6 +71,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": 0, "y": 4.25, "w": 2.25}, {"x": 2.25, "y": 4.25}, From 636c96ad256b1b2f21c4c810d195c78402e060a0 Mon Sep 17 00:00:00 2001 From: Cipulot <40441626+Cipulot@users.noreply.github.com> Date: Tue, 30 Apr 2024 19:34:37 +0200 Subject: [PATCH 29/55] Add EC Virgo (#23173) Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/cipulot/ec_23u/config.h | 5 - keyboards/cipulot/ec_23u/info.json | 6 + keyboards/cipulot/ec_23u/rules.mk | 3 +- keyboards/cipulot/ec_60/config.h | 6 - keyboards/cipulot/ec_60/info.json | 6 + keyboards/cipulot/ec_60/rules.mk | 3 +- keyboards/cipulot/ec_alveus/1_0_0/config.h | 6 - keyboards/cipulot/ec_alveus/1_0_0/info.json | 6 + keyboards/cipulot/ec_alveus/1_0_0/rules.mk | 3 +- keyboards/cipulot/ec_alveus/1_2_0/config.h | 6 - keyboards/cipulot/ec_alveus/1_2_0/info.json | 6 + keyboards/cipulot/ec_alveus/1_2_0/rules.mk | 3 +- keyboards/cipulot/ec_pro2/config.h | 5 - keyboards/cipulot/ec_pro2/info.json | 6 + keyboards/cipulot/ec_pro2/rules.mk | 3 +- keyboards/cipulot/ec_prox/ansi_iso/config.h | 6 - keyboards/cipulot/ec_prox/ansi_iso/info.json | 6 + keyboards/cipulot/ec_prox/ansi_iso/rules.mk | 3 +- keyboards/cipulot/ec_prox/jis/config.h | 6 - keyboards/cipulot/ec_prox/jis/info.json | 6 + keyboards/cipulot/ec_prox/jis/rules.mk | 3 +- keyboards/cipulot/ec_theca/config.h | 6 - keyboards/cipulot/ec_theca/info.json | 10 +- keyboards/cipulot/ec_theca/rules.mk | 3 +- keyboards/cipulot/ec_virgo/config.h | 66 +++++++++ .../{kawayo/config.h => ec_virgo/halconf.h} | 9 +- keyboards/cipulot/ec_virgo/info.json | 136 ++++++++++++++++++ .../cipulot/ec_virgo/keymaps/default/keymap.c | 37 +++++ .../cipulot/ec_virgo/keymaps/via/keymap.c | 37 +++++ .../cipulot/ec_virgo/keymaps/via/rules.mk | 1 + keyboards/cipulot/ec_virgo/mcuconf.h | 22 +++ keyboards/cipulot/ec_virgo/post_rules.mk | 3 + keyboards/cipulot/ec_virgo/readme.md | 26 ++++ keyboards/cipulot/ec_virgo/rules.mk | 5 + keyboards/cipulot/kallos/config.h | 23 --- keyboards/cipulot/kallos/info.json | 6 + keyboards/cipulot/kawayo/info.json | 6 + keyboards/cipulot/rf_r1_8_9xu/config.h | 6 - keyboards/cipulot/rf_r1_8_9xu/info.json | 7 +- keyboards/cipulot/rf_r1_8_9xu/rules.mk | 3 +- 40 files changed, 421 insertions(+), 94 deletions(-) create mode 100644 keyboards/cipulot/ec_virgo/config.h rename keyboards/cipulot/{kawayo/config.h => ec_virgo/halconf.h} (76%) create mode 100644 keyboards/cipulot/ec_virgo/info.json create mode 100644 keyboards/cipulot/ec_virgo/keymaps/default/keymap.c create mode 100644 keyboards/cipulot/ec_virgo/keymaps/via/keymap.c create mode 100644 keyboards/cipulot/ec_virgo/keymaps/via/rules.mk create mode 100644 keyboards/cipulot/ec_virgo/mcuconf.h create mode 100644 keyboards/cipulot/ec_virgo/post_rules.mk create mode 100644 keyboards/cipulot/ec_virgo/readme.md create mode 100644 keyboards/cipulot/ec_virgo/rules.mk delete mode 100644 keyboards/cipulot/kallos/config.h diff --git a/keyboards/cipulot/ec_23u/config.h b/keyboards/cipulot/ec_23u/config.h index 3a3d482e3d3..f5b74b9e600 100644 --- a/keyboards/cipulot/ec_23u/config.h +++ b/keyboards/cipulot/ec_23u/config.h @@ -62,8 +62,3 @@ #define EECONFIG_KB_DATA_SIZE 57 -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE - -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/cipulot/ec_23u/info.json b/keyboards/cipulot/ec_23u/info.json index 0f656f8e8ca..17aa5eb6e7a 100644 --- a/keyboards/cipulot/ec_23u/info.json +++ b/keyboards/cipulot/ec_23u/info.json @@ -6,6 +6,12 @@ "build": { "lto": true }, + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, "diode_direction": "COL2ROW", "features": { "bootmagic": false, diff --git a/keyboards/cipulot/ec_23u/rules.mk b/keyboards/cipulot/ec_23u/rules.mk index ab6c37cad43..318e0215ce9 100644 --- a/keyboards/cipulot/ec_23u/rules.mk +++ b/keyboards/cipulot/ec_23u/rules.mk @@ -1,4 +1,5 @@ CUSTOM_MATRIX = lite ANALOG_DRIVER_REQUIRED = yes -SRC += keyboards/cipulot/common/matrix.c keyboards/cipulot/common/ec_board.c keyboards/cipulot/common/ec_switch_matrix.c +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 c936b248c45..24525501439 100644 --- a/keyboards/cipulot/ec_60/config.h +++ b/keyboards/cipulot/ec_60/config.h @@ -64,9 +64,3 @@ // #define DEBUG_MATRIX_SCAN_RATE #define EECONFIG_KB_DATA_SIZE 159 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE - -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/cipulot/ec_60/info.json b/keyboards/cipulot/ec_60/info.json index a86b20bfd63..860594f611a 100644 --- a/keyboards/cipulot/ec_60/info.json +++ b/keyboards/cipulot/ec_60/info.json @@ -6,6 +6,12 @@ "build": { "lto": true }, + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, "diode_direction": "COL2ROW", "features": { "bootmagic": false, diff --git a/keyboards/cipulot/ec_60/rules.mk b/keyboards/cipulot/ec_60/rules.mk index 70494b635f6..ce525670a68 100644 --- a/keyboards/cipulot/ec_60/rules.mk +++ b/keyboards/cipulot/ec_60/rules.mk @@ -1,4 +1,5 @@ CUSTOM_MATRIX = lite ANALOG_DRIVER_REQUIRED = yes -SRC += keyboards/cipulot/common/matrix.c keyboards/cipulot/common/ec_board.c keyboards/cipulot/common/ec_switch_matrix.c +VPATH += keyboards/cipulot/common +SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 3 diff --git a/keyboards/cipulot/ec_alveus/1_0_0/config.h b/keyboards/cipulot/ec_alveus/1_0_0/config.h index ea43ba348d5..ab51289c023 100644 --- a/keyboards/cipulot/ec_alveus/1_0_0/config.h +++ b/keyboards/cipulot/ec_alveus/1_0_0/config.h @@ -63,9 +63,3 @@ // #define DEBUG_MATRIX_SCAN_RATE #define EECONFIG_KB_DATA_SIZE 169 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE - -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/cipulot/ec_alveus/1_0_0/info.json b/keyboards/cipulot/ec_alveus/1_0_0/info.json index 4652166cc5e..cffd3ade586 100644 --- a/keyboards/cipulot/ec_alveus/1_0_0/info.json +++ b/keyboards/cipulot/ec_alveus/1_0_0/info.json @@ -6,6 +6,12 @@ "build": { "lto": true }, + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, "diode_direction": "COL2ROW", "features": { "bootmagic": false, diff --git a/keyboards/cipulot/ec_alveus/1_0_0/rules.mk b/keyboards/cipulot/ec_alveus/1_0_0/rules.mk index 70494b635f6..ce525670a68 100644 --- a/keyboards/cipulot/ec_alveus/1_0_0/rules.mk +++ b/keyboards/cipulot/ec_alveus/1_0_0/rules.mk @@ -1,4 +1,5 @@ CUSTOM_MATRIX = lite ANALOG_DRIVER_REQUIRED = yes -SRC += keyboards/cipulot/common/matrix.c keyboards/cipulot/common/ec_board.c keyboards/cipulot/common/ec_switch_matrix.c +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 ea43ba348d5..ab51289c023 100644 --- a/keyboards/cipulot/ec_alveus/1_2_0/config.h +++ b/keyboards/cipulot/ec_alveus/1_2_0/config.h @@ -63,9 +63,3 @@ // #define DEBUG_MATRIX_SCAN_RATE #define EECONFIG_KB_DATA_SIZE 169 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE - -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/cipulot/ec_alveus/1_2_0/info.json b/keyboards/cipulot/ec_alveus/1_2_0/info.json index 8b63d02f770..da212f83411 100644 --- a/keyboards/cipulot/ec_alveus/1_2_0/info.json +++ b/keyboards/cipulot/ec_alveus/1_2_0/info.json @@ -6,6 +6,12 @@ "build": { "lto": true }, + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, "diode_direction": "COL2ROW", "features": { "bootmagic": false, diff --git a/keyboards/cipulot/ec_alveus/1_2_0/rules.mk b/keyboards/cipulot/ec_alveus/1_2_0/rules.mk index 70494b635f6..ce525670a68 100644 --- a/keyboards/cipulot/ec_alveus/1_2_0/rules.mk +++ b/keyboards/cipulot/ec_alveus/1_2_0/rules.mk @@ -1,4 +1,5 @@ CUSTOM_MATRIX = lite ANALOG_DRIVER_REQUIRED = yes -SRC += keyboards/cipulot/common/matrix.c keyboards/cipulot/common/ec_board.c keyboards/cipulot/common/ec_switch_matrix.c +VPATH += keyboards/cipulot/common +SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 3 diff --git a/keyboards/cipulot/ec_pro2/config.h b/keyboards/cipulot/ec_pro2/config.h index c936b248c45..a05e716823a 100644 --- a/keyboards/cipulot/ec_pro2/config.h +++ b/keyboards/cipulot/ec_pro2/config.h @@ -65,8 +65,3 @@ #define EECONFIG_KB_DATA_SIZE 159 -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE - -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/cipulot/ec_pro2/info.json b/keyboards/cipulot/ec_pro2/info.json index 2929edfb19c..2e05cff3c16 100644 --- a/keyboards/cipulot/ec_pro2/info.json +++ b/keyboards/cipulot/ec_pro2/info.json @@ -6,6 +6,12 @@ "build": { "lto": true }, + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, "diode_direction": "COL2ROW", "features": { "bootmagic": false, diff --git a/keyboards/cipulot/ec_pro2/rules.mk b/keyboards/cipulot/ec_pro2/rules.mk index ab6c37cad43..318e0215ce9 100644 --- a/keyboards/cipulot/ec_pro2/rules.mk +++ b/keyboards/cipulot/ec_pro2/rules.mk @@ -1,4 +1,5 @@ CUSTOM_MATRIX = lite ANALOG_DRIVER_REQUIRED = yes -SRC += keyboards/cipulot/common/matrix.c keyboards/cipulot/common/ec_board.c keyboards/cipulot/common/ec_switch_matrix.c +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 6a165cf3abd..bf25d0b7128 100644 --- a/keyboards/cipulot/ec_prox/ansi_iso/config.h +++ b/keyboards/cipulot/ec_prox/ansi_iso/config.h @@ -64,9 +64,3 @@ // #define DEBUG_MATRIX_SCAN_RATE #define EECONFIG_KB_DATA_SIZE 159 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE - -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/cipulot/ec_prox/ansi_iso/info.json b/keyboards/cipulot/ec_prox/ansi_iso/info.json index 3f390d0bc61..9a68d8b0bf7 100644 --- a/keyboards/cipulot/ec_prox/ansi_iso/info.json +++ b/keyboards/cipulot/ec_prox/ansi_iso/info.json @@ -6,6 +6,12 @@ "build": { "lto": true }, + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, "diode_direction": "COL2ROW", "features": { "bootmagic": false, diff --git a/keyboards/cipulot/ec_prox/ansi_iso/rules.mk b/keyboards/cipulot/ec_prox/ansi_iso/rules.mk index ab6c37cad43..318e0215ce9 100644 --- a/keyboards/cipulot/ec_prox/ansi_iso/rules.mk +++ b/keyboards/cipulot/ec_prox/ansi_iso/rules.mk @@ -1,4 +1,5 @@ CUSTOM_MATRIX = lite ANALOG_DRIVER_REQUIRED = yes -SRC += keyboards/cipulot/common/matrix.c keyboards/cipulot/common/ec_board.c keyboards/cipulot/common/ec_switch_matrix.c +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 6a686d74044..fd3c048bc38 100644 --- a/keyboards/cipulot/ec_prox/jis/config.h +++ b/keyboards/cipulot/ec_prox/jis/config.h @@ -64,9 +64,3 @@ // #define DEBUG_MATRIX_SCAN_RATE #define EECONFIG_KB_DATA_SIZE 149 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE - -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/cipulot/ec_prox/jis/info.json b/keyboards/cipulot/ec_prox/jis/info.json index 88067f9305e..4c92f8c6732 100644 --- a/keyboards/cipulot/ec_prox/jis/info.json +++ b/keyboards/cipulot/ec_prox/jis/info.json @@ -6,6 +6,12 @@ "build": { "lto": true }, + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, "diode_direction": "COL2ROW", "features": { "bootmagic": false, diff --git a/keyboards/cipulot/ec_prox/jis/rules.mk b/keyboards/cipulot/ec_prox/jis/rules.mk index ab6c37cad43..318e0215ce9 100644 --- a/keyboards/cipulot/ec_prox/jis/rules.mk +++ b/keyboards/cipulot/ec_prox/jis/rules.mk @@ -1,4 +1,5 @@ CUSTOM_MATRIX = lite ANALOG_DRIVER_REQUIRED = yes -SRC += keyboards/cipulot/common/matrix.c keyboards/cipulot/common/ec_board.c keyboards/cipulot/common/ec_switch_matrix.c +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 4b834fdff68..d9fea559675 100644 --- a/keyboards/cipulot/ec_theca/config.h +++ b/keyboards/cipulot/ec_theca/config.h @@ -63,9 +63,3 @@ // #define DEBUG_MATRIX_SCAN_RATE #define DYNAMIC_KEYMAP_LAYER_COUNT 3 #define EECONFIG_KB_DATA_SIZE 201 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE - -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/cipulot/ec_theca/info.json b/keyboards/cipulot/ec_theca/info.json index fbd7d7ec471..a438e401806 100644 --- a/keyboards/cipulot/ec_theca/info.json +++ b/keyboards/cipulot/ec_theca/info.json @@ -6,6 +6,12 @@ "build": { "lto": true }, + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, "diode_direction": "COL2ROW", "features": { "bootmagic": false, @@ -27,10 +33,6 @@ "LAYOUT_all": "LAYOUT_tkl_ansi", "LAYOUT_tkl_ansi_tsangan_wkl": "LAYOUT_tkl_ansi_wkl" }, - "community_layouts": [ - "tkl_ansi", - "tkl_ansi_tsangan" - ], "layouts": { "LAYOUT_tkl_ansi": { "layout": [ diff --git a/keyboards/cipulot/ec_theca/rules.mk b/keyboards/cipulot/ec_theca/rules.mk index 70494b635f6..ce525670a68 100644 --- a/keyboards/cipulot/ec_theca/rules.mk +++ b/keyboards/cipulot/ec_theca/rules.mk @@ -1,4 +1,5 @@ CUSTOM_MATRIX = lite ANALOG_DRIVER_REQUIRED = yes -SRC += keyboards/cipulot/common/matrix.c keyboards/cipulot/common/ec_board.c keyboards/cipulot/common/ec_switch_matrix.c +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 new file mode 100644 index 00000000000..2fce8cd7fa7 --- /dev/null +++ b/keyboards/cipulot/ec_virgo/config.h @@ -0,0 +1,66 @@ +/* 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 + +#define MATRIX_ROWS 6 +#define MATRIX_COLS 18 + +#define MATRIX_ROW_PINS \ + { B6, B7, B5, B4, B3, A15 } + +#define AMUX_COUNT 2 +#define AMUX_MAX_COLS_COUNT 16 + +#define AMUX_EN_PINS \ + { A9, A8 } + +#define AMUX_SEL_PINS \ + { B12, B13, B15, B14 } + +#define AMUX_COL_CHANNELS_SIZES \ + { 7, 11 } + +#define AMUX_0_COL_CHANNELS \ + { 2, 1, 0, 3, 5, 4, 7 } + +#define AMUX_1_COL_CHANNELS \ + { 2, 1, 0, 15, 14, 13, 12, 8, 11, 10, 9 } + +#define AMUX_COL_CHANNELS AMUX_0_COL_CHANNELS, AMUX_1_COL_CHANNELS + +#define DISCHARGE_PIN A4 +#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 DEBUG_MATRIX_SCAN_RATE + +#define EECONFIG_KB_DATA_SIZE 225 diff --git a/keyboards/cipulot/kawayo/config.h b/keyboards/cipulot/ec_virgo/halconf.h similarity index 76% rename from keyboards/cipulot/kawayo/config.h rename to keyboards/cipulot/ec_virgo/halconf.h index a08011b9cf9..835d43b6a0a 100644 --- a/keyboards/cipulot/kawayo/config.h +++ b/keyboards/cipulot/ec_virgo/halconf.h @@ -1,4 +1,4 @@ -/* Copyright 2022 Cipulot +/* 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 @@ -16,7 +16,6 @@ #pragma once -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE +#define HAL_USE_ADC TRUE + +#include_next diff --git a/keyboards/cipulot/ec_virgo/info.json b/keyboards/cipulot/ec_virgo/info.json new file mode 100644 index 00000000000..6b37880181b --- /dev/null +++ b/keyboards/cipulot/ec_virgo/info.json @@ -0,0 +1,136 @@ +{ + "manufacturer": "Cipulot", + "keyboard_name": "Virgo 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": "0x6BC0", + "shared_endpoint": { + "keyboard": true + }, + "vid": "0x6369" + }, + "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, 7], "x": 9, "y": 0}, + {"matrix": [0, 8], "x": 10, "y": 0}, + {"matrix": [0, 9], "x": 11, "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, 15], "x": 17.25, "y": 0}, + {"matrix": [0, 16], "x": 18.25, "y": 0}, + {"matrix": [0, 17], "x": 19.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": 9, "y": 1.5}, + {"matrix": [1, 8], "x": 10, "y": 1.5}, + {"matrix": [1, 9], "x": 11, "y": 1.5}, + {"matrix": [1, 10], "x": 12, "y": 1.5}, + {"matrix": [1, 11], "x": 13, "y": 1.5}, + {"matrix": [1, 12], "x": 14, "y": 1.5}, + {"matrix": [1, 13], "x": 15, "y": 1.5}, + {"matrix": [1, 14], "x": 16, "y": 1.5}, + {"matrix": [1, 15], "x": 17.25, "y": 1.5}, + {"matrix": [1, 16], "x": 18.25, "y": 1.5}, + {"matrix": [1, 17], "x": 19.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": 8.5, "y": 2.5}, + {"matrix": [2, 7], "x": 9.5, "y": 2.5}, + {"matrix": [2, 8], "x": 10.5, "y": 2.5}, + {"matrix": [2, 9], "x": 11.5, "y": 2.5}, + {"matrix": [2, 10], "x": 12.5, "y": 2.5}, + {"matrix": [2, 11], "x": 13.5, "y": 2.5}, + {"matrix": [2, 12], "x": 14.5, "y": 2.5}, + {"matrix": [2, 13], "x": 15.5, "y": 2.5}, + {"matrix": [2, 14], "x": 16.5, "y": 2.5, "w": 0.5}, + {"matrix": [2, 15], "x": 17.25, "y": 2.5}, + {"matrix": [2, 16], "x": 18.25, "y": 2.5}, + {"matrix": [2, 17], "x": 19.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": 8.75, "y": 3.5}, + {"matrix": [3, 7], "x": 9.75, "y": 3.5}, + {"matrix": [3, 8], "x": 10.75, "y": 3.5}, + {"matrix": [3, 9], "x": 11.75, "y": 3.5}, + {"matrix": [3, 10], "x": 12.75, "y": 3.5}, + {"matrix": [3, 11], "x": 13.75, "y": 3.5}, + {"matrix": [3, 12], "x": 14.75, "y": 3.5}, + {"matrix": [3, 13], "x": 15.75, "y": 3.5, "w": 1.25}, + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"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}, + {"matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"matrix": [5, 6], "x": 8.25, "y": 4.5}, + {"matrix": [4, 7], "x": 9.25, "y": 4.5}, + {"matrix": [4, 8], "x": 10.25, "y": 4.5}, + {"matrix": [4, 9], "x": 11.25, "y": 4.5}, + {"matrix": [4, 10], "x": 12.25, "y": 4.5}, + {"matrix": [4, 11], "x": 13.25, "y": 4.5}, + {"matrix": [4, 13], "x": 14.25, "y": 4.5, "w": 1.75}, + {"matrix": [4, 14], "x": 16, "y": 4.5}, + {"matrix": [4, 16], "x": 18.25, "y": 4.5}, + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 3], "x": 3.75, "y": 5.5, "w": 1.25}, + {"matrix": [5, 5], "x": 5, "y": 5.5, "w": 2.25}, + {"matrix": [5, 7], "x": 8.25, "y": 5.5, "w": 2.75}, + {"matrix": [5, 9], "x": 11, "y": 5.5, "w": 1.25}, + {"matrix": [5, 10], "x": 12.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 13], "x": 14.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 15], "x": 17.25, "y": 5.5}, + {"matrix": [5, 16], "x": 18.25, "y": 5.5}, + {"matrix": [5, 17], "x": 19.25, "y": 5.5} + ] + } + } +} diff --git a/keyboards/cipulot/ec_virgo/keymaps/default/keymap.c b/keyboards/cipulot/ec_virgo/keymaps/default/keymap.c new file mode 100644 index 00000000000..f176ec71dc0 --- /dev/null +++ b/keyboards/cipulot/ec_virgo/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [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_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_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_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + [1] = LAYOUT( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + + // clang-format on +}; diff --git a/keyboards/cipulot/ec_virgo/keymaps/via/keymap.c b/keyboards/cipulot/ec_virgo/keymaps/via/keymap.c new file mode 100644 index 00000000000..f176ec71dc0 --- /dev/null +++ b/keyboards/cipulot/ec_virgo/keymaps/via/keymap.c @@ -0,0 +1,37 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [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_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_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_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + [1] = LAYOUT( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + + // clang-format on +}; diff --git a/keyboards/cipulot/ec_virgo/keymaps/via/rules.mk b/keyboards/cipulot/ec_virgo/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/cipulot/ec_virgo/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cipulot/ec_virgo/mcuconf.h b/keyboards/cipulot/ec_virgo/mcuconf.h new file mode 100644 index 00000000000..fa3c955e0d8 --- /dev/null +++ b/keyboards/cipulot/ec_virgo/mcuconf.h @@ -0,0 +1,22 @@ +/* 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_next + +#undef STM32_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE diff --git a/keyboards/cipulot/ec_virgo/post_rules.mk b/keyboards/cipulot/ec_virgo/post_rules.mk new file mode 100644 index 00000000000..d726a112a8c --- /dev/null +++ b/keyboards/cipulot/ec_virgo/post_rules.mk @@ -0,0 +1,3 @@ +ifeq ($(strip $(VIA_ENABLE)), yes) + SRC += keyboards/cipulot/common/via_ec.c +endif diff --git a/keyboards/cipulot/ec_virgo/readme.md b/keyboards/cipulot/ec_virgo/readme.md new file mode 100644 index 00000000000..ddf976ca792 --- /dev/null +++ b/keyboards/cipulot/ec_virgo/readme.md @@ -0,0 +1,26 @@ +# Virgo EC + +![Virgo EC PCB](https://i.imgur.com/iaKYqySh.jpeg) + +EC version of the Virgo keyboard. + +* Keyboard Maintainer: [cipulot](https://github.com/cipulot) +* Hardware Supported: Virgo EC PCB +* Hardware Availability: [Antipode](https://www.antipode.no/) + +Make example for this keyboard (after setting up your build environment): + + make cipulot/ec_virgo:default + +Flashing example for this keyboard: + + make cipulot/ec_virgo: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 pads on the top of the PCB +* **Keycode in layout**: Press the key mapped to QK_BOOT if it is available diff --git a/keyboards/cipulot/ec_virgo/rules.mk b/keyboards/cipulot/ec_virgo/rules.mk new file mode 100644 index 00000000000..ce525670a68 --- /dev/null +++ b/keyboards/cipulot/ec_virgo/rules.mk @@ -0,0 +1,5 @@ +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/kallos/config.h b/keyboards/cipulot/kallos/config.h deleted file mode 100644 index dfe6b13b066..00000000000 --- a/keyboards/cipulot/kallos/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -Copyright 2022 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 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 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/cipulot/kallos/info.json b/keyboards/cipulot/kallos/info.json index b2f265c13fd..77330c2a66d 100644 --- a/keyboards/cipulot/kallos/info.json +++ b/keyboards/cipulot/kallos/info.json @@ -30,6 +30,12 @@ "cols": ["F5", "F6", "C6", "B6", "B5", "B4", "D7", "D6", "D4", "D5", "D3", "F7", "D2", "D1", "B7"], "rows": ["B3", "B2", "F0", "C7", "F4", "F1"] }, + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, "diode_direction": "COL2ROW", "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/cipulot/kawayo/info.json b/keyboards/cipulot/kawayo/info.json index 85a5f81c2b3..93c362d6649 100644 --- a/keyboards/cipulot/kawayo/info.json +++ b/keyboards/cipulot/kawayo/info.json @@ -12,6 +12,12 @@ "cols": ["B10", "A0", "B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15", "A14", "A4", "A3", "A2", "A1"], "rows": ["B1", "B12", "C13", "A7", "B0"] }, + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, "diode_direction": "COL2ROW", "processor": "STM32F411", "bootloader": "stm32-dfu", diff --git a/keyboards/cipulot/rf_r1_8_9xu/config.h b/keyboards/cipulot/rf_r1_8_9xu/config.h index fbd65f259fd..cd98ff7f3da 100644 --- a/keyboards/cipulot/rf_r1_8_9xu/config.h +++ b/keyboards/cipulot/rf_r1_8_9xu/config.h @@ -63,9 +63,3 @@ // #define DEBUG_MATRIX_SCAN_RATE #define DYNAMIC_KEYMAP_LAYER_COUNT 3 #define EECONFIG_KB_DATA_SIZE 201 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE - -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/cipulot/rf_r1_8_9xu/info.json b/keyboards/cipulot/rf_r1_8_9xu/info.json index 6d3ab8b7091..4c1a0e4384c 100644 --- a/keyboards/cipulot/rf_r1_8_9xu/info.json +++ b/keyboards/cipulot/rf_r1_8_9xu/info.json @@ -6,6 +6,12 @@ "build": { "lto": true }, + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, "diode_direction": "COL2ROW", "features": { "bootmagic": false, @@ -47,7 +53,6 @@ }, "vid": "0x6369" }, - "community_layouts": ["tkl_jis", "tkl_iso_tsangan", "tkl_ansi_tsangan"], "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/cipulot/rf_r1_8_9xu/rules.mk b/keyboards/cipulot/rf_r1_8_9xu/rules.mk index ab6c37cad43..318e0215ce9 100644 --- a/keyboards/cipulot/rf_r1_8_9xu/rules.mk +++ b/keyboards/cipulot/rf_r1_8_9xu/rules.mk @@ -1,4 +1,5 @@ CUSTOM_MATRIX = lite ANALOG_DRIVER_REQUIRED = yes -SRC += keyboards/cipulot/common/matrix.c keyboards/cipulot/common/ec_board.c keyboards/cipulot/common/ec_switch_matrix.c +VPATH += keyboards/cipulot/common +SRC += matrix.c ec_board.c ec_switch_matrix.c OPT = 2 From 4e9967557ef9d68202f9e321a0798be2490b51a7 Mon Sep 17 00:00:00 2001 From: Cipulot <40441626+Cipulot@users.noreply.github.com> Date: Tue, 30 Apr 2024 19:35:40 +0200 Subject: [PATCH 30/55] Add EC Type-B (#23170) --- keyboards/cipulot/ec_typeb/config.h | 66 +++++++++++++ keyboards/cipulot/ec_typeb/halconf.h | 21 ++++ keyboards/cipulot/ec_typeb/info.json | 98 +++++++++++++++++++ .../cipulot/ec_typeb/keymaps/default/keymap.c | 42 ++++++++ .../cipulot/ec_typeb/keymaps/via/keymap.c | 42 ++++++++ .../cipulot/ec_typeb/keymaps/via/rules.mk | 1 + keyboards/cipulot/ec_typeb/mcuconf.h | 22 +++++ keyboards/cipulot/ec_typeb/post_rules.mk | 3 + keyboards/cipulot/ec_typeb/readme.md | 26 +++++ keyboards/cipulot/ec_typeb/rules.mk | 5 + 10 files changed, 326 insertions(+) create mode 100644 keyboards/cipulot/ec_typeb/config.h create mode 100644 keyboards/cipulot/ec_typeb/halconf.h create mode 100644 keyboards/cipulot/ec_typeb/info.json create mode 100644 keyboards/cipulot/ec_typeb/keymaps/default/keymap.c create mode 100644 keyboards/cipulot/ec_typeb/keymaps/via/keymap.c create mode 100644 keyboards/cipulot/ec_typeb/keymaps/via/rules.mk create mode 100644 keyboards/cipulot/ec_typeb/mcuconf.h create mode 100644 keyboards/cipulot/ec_typeb/post_rules.mk create mode 100644 keyboards/cipulot/ec_typeb/readme.md create mode 100644 keyboards/cipulot/ec_typeb/rules.mk diff --git a/keyboards/cipulot/ec_typeb/config.h b/keyboards/cipulot/ec_typeb/config.h new file mode 100644 index 00000000000..bf25d0b7128 --- /dev/null +++ b/keyboards/cipulot/ec_typeb/config.h @@ -0,0 +1,66 @@ +/* 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 + +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +#define MATRIX_ROW_PINS \ + { A7, B0, A4, A5, A6 } + +#define AMUX_COUNT 2 +#define AMUX_MAX_COLS_COUNT 8 + +#define AMUX_EN_PINS \ + { B7, B3 } + +#define AMUX_SEL_PINS \ + { B4, B5, B6 } + +#define AMUX_COL_CHANNELS_SIZES \ + { 8, 7 } + +#define AMUX_0_COL_CHANNELS \ + { 0, 3, 1, 2, 5, 7, 6, 4 } + +#define AMUX_1_COL_CHANNELS \ + { 0, 3, 1, 2, 5, 7, 6 } + +#define AMUX_COL_CHANNELS AMUX_0_COL_CHANNELS, AMUX_1_COL_CHANNELS + +#define DISCHARGE_PIN A2 +#define ANALOG_PORT A1 + +#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 100 +#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 159 diff --git a/keyboards/cipulot/ec_typeb/halconf.h b/keyboards/cipulot/ec_typeb/halconf.h new file mode 100644 index 00000000000..835d43b6a0a --- /dev/null +++ b/keyboards/cipulot/ec_typeb/halconf.h @@ -0,0 +1,21 @@ +/* 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 + +#define HAL_USE_ADC TRUE + +#include_next diff --git a/keyboards/cipulot/ec_typeb/info.json b/keyboards/cipulot/ec_typeb/info.json new file mode 100644 index 00000000000..2036632af59 --- /dev/null +++ b/keyboards/cipulot/ec_typeb/info.json @@ -0,0 +1,98 @@ +{ + "manufacturer": "Cipulot", + "keyboard_name": "EC Type-B", + "maintainer": "Cipulot", + "bootloader": "stm32-dfu", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "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": "0x6BAA", + "shared_endpoint": { + "keyboard": true + }, + "vid": "0x6369" + }, + "layouts": { + "LAYOUT_60_hhkb": { + "layout": [ + {"label": "0,0", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "0,1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "0,2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "0,3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "0,4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "0,5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "0,6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "0,7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "0,8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "0,9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0,10", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "0,11", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "0,12", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "0,13", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "0,14", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "1,0", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "1,1", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "1,2", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "1,3", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "1,4", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "1,5", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "1,6", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "1,7", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "1,8", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "1,9", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "1,10", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "1,11", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "1,12", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "1,13", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "2,0", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "2,1", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "2,2", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "2,3", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "2,4", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "2,5", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "2,6", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "2,7", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "2,8", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "2,9", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": "2,10", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "2,11", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "2,13", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "3,0", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "3,2", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "3,3", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "3,4", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "3,5", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "3,6", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "3,7", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "3,8", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "3,9", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": "3,10", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "3,11", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "3,13", "matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "3,14", "matrix": [3, 14], "x": 14, "y": 3}, + {"label": "4,1", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "4,2", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "4,6", "matrix": [4, 6], "x": 4, "y": 4, "w": 6}, + {"label": "4,9", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.5}, + {"label": "4,10", "matrix": [4, 10], "x": 11.5, "y": 4} + ] + } + } +} diff --git a/keyboards/cipulot/ec_typeb/keymaps/default/keymap.c b/keyboards/cipulot/ec_typeb/keymaps/default/keymap.c new file mode 100644 index 00000000000..71f8cd0368d --- /dev/null +++ b/keyboards/cipulot/ec_typeb/keymaps/default/keymap.c @@ -0,0 +1,42 @@ +/* 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 . + */ + +#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_DEL, + 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_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, 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_PSCR, KC_SCRL, KC_PAUSE, KC_UP, _______, KC_BSPC, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, S(KC_8), KC_SLSH, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, _______, + _______, _______, _______, _______, _______, _______, S(KC_EQL), KC_MINS, KC_END, KC_PGDN, KC_DOWN, _______, _______, + _______, _______, _______, _______, MO(2)), + + [2] = LAYOUT_60_hhkb( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_typeb/keymaps/via/keymap.c b/keyboards/cipulot/ec_typeb/keymaps/via/keymap.c new file mode 100644 index 00000000000..71f8cd0368d --- /dev/null +++ b/keyboards/cipulot/ec_typeb/keymaps/via/keymap.c @@ -0,0 +1,42 @@ +/* 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 . + */ + +#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_DEL, + 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_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, 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_PSCR, KC_SCRL, KC_PAUSE, KC_UP, _______, KC_BSPC, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, S(KC_8), KC_SLSH, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, _______, + _______, _______, _______, _______, _______, _______, S(KC_EQL), KC_MINS, KC_END, KC_PGDN, KC_DOWN, _______, _______, + _______, _______, _______, _______, MO(2)), + + [2] = LAYOUT_60_hhkb( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_typeb/keymaps/via/rules.mk b/keyboards/cipulot/ec_typeb/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/cipulot/ec_typeb/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cipulot/ec_typeb/mcuconf.h b/keyboards/cipulot/ec_typeb/mcuconf.h new file mode 100644 index 00000000000..fa3c955e0d8 --- /dev/null +++ b/keyboards/cipulot/ec_typeb/mcuconf.h @@ -0,0 +1,22 @@ +/* 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_next + +#undef STM32_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE diff --git a/keyboards/cipulot/ec_typeb/post_rules.mk b/keyboards/cipulot/ec_typeb/post_rules.mk new file mode 100644 index 00000000000..d726a112a8c --- /dev/null +++ b/keyboards/cipulot/ec_typeb/post_rules.mk @@ -0,0 +1,3 @@ +ifeq ($(strip $(VIA_ENABLE)), yes) + SRC += keyboards/cipulot/common/via_ec.c +endif diff --git a/keyboards/cipulot/ec_typeb/readme.md b/keyboards/cipulot/ec_typeb/readme.md new file mode 100644 index 00000000000..c3bfe812388 --- /dev/null +++ b/keyboards/cipulot/ec_typeb/readme.md @@ -0,0 +1,26 @@ +# EC Type-B + +![EC Type-B](https://i.imgur.com/B6yFoUJh.jpg) + +EC Type-B Keyboard by bababaul. + +* Keyboard Maintainer: [cipulot](https://github.com/cipulot) +* Hardware Supported: EC Type-B +* Hardware Availability: [Sand Keys](https://sandkeys.me/) + +Make example for this keyboard (after setting up your build environment): + + make cipulot/ec_typeb:default + +Flashing example for this keyboard: + + make cipulot/ec_typeb: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 Boot0 pins**: Short the Boot0 pins on the back of the PCB while plugging in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cipulot/ec_typeb/rules.mk b/keyboards/cipulot/ec_typeb/rules.mk new file mode 100644 index 00000000000..ce525670a68 --- /dev/null +++ b/keyboards/cipulot/ec_typeb/rules.mk @@ -0,0 +1,5 @@ +CUSTOM_MATRIX = lite +ANALOG_DRIVER_REQUIRED = yes +VPATH += keyboards/cipulot/common +SRC += matrix.c ec_board.c ec_switch_matrix.c +OPT = 3 From a426abf017cce185c0b79fc2eb7f16a8c1442bed Mon Sep 17 00:00:00 2001 From: Cipulot <40441626+Cipulot@users.noreply.github.com> Date: Tue, 30 Apr 2024 19:36:28 +0200 Subject: [PATCH 31/55] Add EC TKL (#23177) --- keyboards/cipulot/ec_tkl/config.h | 69 +++ keyboards/cipulot/ec_tkl/halconf.h | 23 + keyboards/cipulot/ec_tkl/info.json | 433 ++++++++++++++++++ .../cipulot/ec_tkl/keymaps/default/keymap.c | 39 ++ .../ec_tkl/keymaps/tkl_ansi_tsangan/keymap.c | 37 ++ .../ec_tkl/keymaps/tkl_iso_tsangan/keymap.c | 37 ++ .../cipulot/ec_tkl/keymaps/tkl_jis/keymap.c | 39 ++ keyboards/cipulot/ec_tkl/keymaps/via/config.h | 20 + keyboards/cipulot/ec_tkl/keymaps/via/keymap.c | 39 ++ keyboards/cipulot/ec_tkl/keymaps/via/rules.mk | 1 + keyboards/cipulot/ec_tkl/mcuconf.h | 25 + keyboards/cipulot/ec_tkl/post_rules.mk | 3 + keyboards/cipulot/ec_tkl/readme.md | 26 ++ keyboards/cipulot/ec_tkl/rules.mk | 5 + 14 files changed, 796 insertions(+) create mode 100644 keyboards/cipulot/ec_tkl/config.h create mode 100644 keyboards/cipulot/ec_tkl/halconf.h create mode 100644 keyboards/cipulot/ec_tkl/info.json create mode 100644 keyboards/cipulot/ec_tkl/keymaps/default/keymap.c create mode 100644 keyboards/cipulot/ec_tkl/keymaps/tkl_ansi_tsangan/keymap.c create mode 100644 keyboards/cipulot/ec_tkl/keymaps/tkl_iso_tsangan/keymap.c create mode 100644 keyboards/cipulot/ec_tkl/keymaps/tkl_jis/keymap.c create mode 100644 keyboards/cipulot/ec_tkl/keymaps/via/config.h create mode 100644 keyboards/cipulot/ec_tkl/keymaps/via/keymap.c create mode 100644 keyboards/cipulot/ec_tkl/keymaps/via/rules.mk create mode 100644 keyboards/cipulot/ec_tkl/mcuconf.h create mode 100644 keyboards/cipulot/ec_tkl/post_rules.mk create mode 100644 keyboards/cipulot/ec_tkl/readme.md create mode 100644 keyboards/cipulot/ec_tkl/rules.mk diff --git a/keyboards/cipulot/ec_tkl/config.h b/keyboards/cipulot/ec_tkl/config.h new file mode 100644 index 00000000000..95a7f9137a1 --- /dev/null +++ b/keyboards/cipulot/ec_tkl/config.h @@ -0,0 +1,69 @@ +/* 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 + +#define MATRIX_ROWS 6 +#define MATRIX_COLS 16 + +#define MATRIX_ROW_PINS \ + { B6, B5, B12, B10, B13, B7 } + +#define AMUX_COUNT 1 +#define AMUX_MAX_COLS_COUNT 16 + +#define AMUX_EN_PINS \ + { A8 } + +#define AMUX_SEL_PINS \ + { B14, B15, A9, A10 } + +#define AMUX_COL_CHANNELS_SIZES \ + { 16 } + +#define AMUX_0_COL_CHANNELS \ + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15} + +#define AMUX_COL_CHANNELS AMUX_0_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 201 + +// 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/halconf.h b/keyboards/cipulot/ec_tkl/halconf.h new file mode 100644 index 00000000000..f2c22202313 --- /dev/null +++ b/keyboards/cipulot/ec_tkl/halconf.h @@ -0,0 +1,23 @@ +/* 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 + +#define HAL_USE_ADC TRUE +#define HAL_USE_PAL TRUE +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/cipulot/ec_tkl/info.json b/keyboards/cipulot/ec_tkl/info.json new file mode 100644 index 00000000000..0c56fb838d8 --- /dev/null +++ b/keyboards/cipulot/ec_tkl/info.json @@ -0,0 +1,433 @@ +{ + "manufacturer": "Cipulot", + "keyboard_name": "EC TKL", + "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": 22 + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x6BC3", + "shared_endpoint": { + "keyboard": true + }, + "vid": "0x6369" + }, + "ws2812": { + "driver": "pwm", + "pin": "B4" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label": "0,0", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "0,1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "0,2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "0,3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "0,4", "matrix": [0, 4], "x": 5, "y": 0}, + {"label": "0,5", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "0,6", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "0,7", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "0,8", "matrix": [0, 8], "x": 9.5, "y": 0}, + {"label": "0,9", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "0,10", "matrix": [0, 10], "x": 12, "y": 0}, + {"label": "0,11", "matrix": [0, 11], "x": 13, "y": 0}, + {"label": "0,12", "matrix": [0, 12], "x": 14, "y": 0}, + {"label": "0,13", "matrix": [0, 13], "x": 15.25, "y": 0}, + {"label": "0,14", "matrix": [0, 14], "x": 16.25, "y": 0}, + {"label": "0,15", "matrix": [0, 15], "x": 17.25, "y": 0}, + {"label": "1,0", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1,1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "1,2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "1,3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "1,4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "1,5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "1,6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "1,7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "1,8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "1,9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "1,10", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "1,11", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "1,12", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "1,13", "matrix": [1, 13], "x": 13, "y": 1.25}, + {"label": "1,14", "matrix": [1, 14], "x": 14, "y": 1.25}, + {"label": "3,14", "matrix": [3, 14], "x": 15.25, "y": 1.25}, + {"label": "2,15", "matrix": [2, 15], "x": 16.25, "y": 1.25}, + {"label": "1,15", "matrix": [1, 15], "x": 17.25, "y": 1.25}, + {"label": "2,0", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "2,1", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "2,2", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "2,3", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "2,4", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "2,5", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "2,6", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "2,7", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "2,8", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "2,9", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "2,10", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "2,11", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "2,12", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "2,13", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 0.75}, + {"label": "2,14", "matrix": [2, 14], "x": 14.25, "y": 2.25, "w": 0.75}, + {"label": "4,14", "matrix": [4, 14], "x": 15.25, "y": 2.25}, + {"label": "4,15", "matrix": [4, 15], "x": 16.25, "y": 2.25}, + {"label": "3,15", "matrix": [3, 15], "x": 17.25, "y": 2.25}, + {"label": "3,0", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "3,1", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "3,2", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "3,3", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "3,4", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "3,5", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "3,6", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "3,7", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "3,8", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "3,9", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": "3,10", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "3,11", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "3,12", "matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"label": "3,13", "matrix": [3, 13], "x": 13.75, "y": 3.25, "w": 1.25}, + {"label": "4,0", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"label": "4,1", "matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"label": "4,2", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "4,3", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "4,4", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "4,5", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "4,6", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "4,7", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "4,8", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": "4,9", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": "4,10", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "4,11", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "4,12", "matrix": [4, 12], "x": 12.25, "y": 4.25}, + {"label": "4,13", "matrix": [4, 13], "x": 13.25, "y": 4.25, "w": 1.75}, + {"label": "5,14", "matrix": [5, 14], "x": 16.25, "y": 4.25}, + {"label": "5,0", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "5,1", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "5,2", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "5,4", "matrix": [5, 4], "x": 4, "y": 5.25, "w": 1.5}, + {"label": "5,6", "matrix": [5, 6], "x": 5.5, "y": 5.25, "w": 2.5}, + {"label": "5,7", "matrix": [5, 7], "x": 8, "y": 5.25, "w": 1.5}, + {"label": "5,8", "matrix": [5, 8], "x": 9.5, "y": 5.25, "w": 1.5}, + {"label": "5,9", "matrix": [5, 9], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "5,10", "matrix": [5, 10], "x": 12.5, "y": 5.25}, + {"label": "5,11", "matrix": [5, 11], "x": 13.5, "y": 5.25, "w": 1.5}, + {"label": "5,12", "matrix": [5, 12], "x": 15.25, "y": 5.25}, + {"label": "5,13", "matrix": [5, 13], "x": 16.25, "y": 5.25}, + {"label": "5,15", "matrix": [5, 15], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + {"label": "0,0", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "0,1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "0,2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "0,3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "0,4", "matrix": [0, 4], "x": 5, "y": 0}, + {"label": "0,5", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "0,6", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "0,7", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "0,8", "matrix": [0, 8], "x": 9.5, "y": 0}, + {"label": "0,9", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "0,10", "matrix": [0, 10], "x": 12, "y": 0}, + {"label": "0,11", "matrix": [0, 11], "x": 13, "y": 0}, + {"label": "0,12", "matrix": [0, 12], "x": 14, "y": 0}, + {"label": "0,13", "matrix": [0, 13], "x": 15.25, "y": 0}, + {"label": "0,14", "matrix": [0, 14], "x": 16.25, "y": 0}, + {"label": "0,15", "matrix": [0, 15], "x": 17.25, "y": 0}, + {"label": "1,0", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1,1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "1,2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "1,3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "1,4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "1,5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "1,6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "1,7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "1,8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "1,9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "1,10", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "1,11", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "1,12", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "1,14", "matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, + {"label": "3,14", "matrix": [3, 14], "x": 15.25, "y": 1.25}, + {"label": "2,15", "matrix": [2, 15], "x": 16.25, "y": 1.25}, + {"label": "1,15", "matrix": [1, 15], "x": 17.25, "y": 1.25}, + {"label": "2,0", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "2,1", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "2,2", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "2,3", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "2,4", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "2,5", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "2,6", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "2,7", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "2,8", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "2,9", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "2,10", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "2,11", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "2,12", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "2,13", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"label": "4,14", "matrix": [4, 14], "x": 15.25, "y": 2.25}, + {"label": "4,15", "matrix": [4, 15], "x": 16.25, "y": 2.25}, + {"label": "3,15", "matrix": [3, 15], "x": 17.25, "y": 2.25}, + {"label": "3,0", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "3,1", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "3,2", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "3,3", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "3,4", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "3,5", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "3,6", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "3,7", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "3,8", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "3,9", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": "3,10", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "3,11", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "3,13", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"label": "4,0", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "4,2", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "4,3", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "4,4", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "4,5", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "4,6", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "4,7", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "4,8", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": "4,9", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": "4,10", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "4,11", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "4,13", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, + {"label": "5,14", "matrix": [5, 14], "x": 16.25, "y": 4.25}, + {"label": "5,0", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "5,1", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "5,2", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "5,6", "matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"label": "5,9", "matrix": [5, 9], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "5,10", "matrix": [5, 10], "x": 12.5, "y": 5.25}, + {"label": "5,11", "matrix": [5, 11], "x": 13.5, "y": 5.25, "w": 1.5}, + {"label": "5,12", "matrix": [5, 12], "x": 15.25, "y": 5.25}, + {"label": "5,13", "matrix": [5, 13], "x": 16.25, "y": 5.25}, + {"label": "5,15", "matrix": [5, 15], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_tsangan": { + "layout": [ + {"label": "0,0", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "0,1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "0,2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "0,3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "0,4", "matrix": [0, 4], "x": 5, "y": 0}, + {"label": "0,5", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "0,6", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "0,7", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "0,8", "matrix": [0, 8], "x": 9.5, "y": 0}, + {"label": "0,9", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "0,10", "matrix": [0, 10], "x": 12, "y": 0}, + {"label": "0,11", "matrix": [0, 11], "x": 13, "y": 0}, + {"label": "0,12", "matrix": [0, 12], "x": 14, "y": 0}, + {"label": "0,13", "matrix": [0, 13], "x": 15.25, "y": 0}, + {"label": "0,14", "matrix": [0, 14], "x": 16.25, "y": 0}, + {"label": "0,15", "matrix": [0, 15], "x": 17.25, "y": 0}, + {"label": "1,0", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1,1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "1,2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "1,3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "1,4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "1,5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "1,6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "1,7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "1,8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "1,9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "1,10", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "1,11", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "1,12", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "1,14", "matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, + {"label": "3,14", "matrix": [3, 14], "x": 15.25, "y": 1.25}, + {"label": "2,15", "matrix": [2, 15], "x": 16.25, "y": 1.25}, + {"label": "1,15", "matrix": [1, 15], "x": 17.25, "y": 1.25}, + {"label": "2,0", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "2,1", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "2,2", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "2,3", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "2,4", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "2,5", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "2,6", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "2,7", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "2,8", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "2,9", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "2,10", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "2,11", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "2,12", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "2,14", "matrix": [2, 14], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"label": "4,14", "matrix": [4, 14], "x": 15.25, "y": 2.25}, + {"label": "4,15", "matrix": [4, 15], "x": 16.25, "y": 2.25}, + {"label": "3,15", "matrix": [3, 15], "x": 17.25, "y": 2.25}, + {"label": "3,0", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "3,1", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "3,2", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "3,3", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "3,4", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "3,5", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "3,6", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "3,7", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "3,8", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "3,9", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": "3,10", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "3,11", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "3,12", "matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"label": "4,0", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"label": "4,1", "matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"label": "4,2", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "4,3", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "4,4", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "4,5", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "4,6", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "4,7", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "4,8", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": "4,9", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": "4,10", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "4,11", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "4,13", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, + {"label": "5,14", "matrix": [5, 14], "x": 16.25, "y": 4.25}, + {"label": "5,0", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "5,1", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "5,2", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "5,6", "matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"label": "5,9", "matrix": [5, 9], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "5,10", "matrix": [5, 10], "x": 12.5, "y": 5.25}, + {"label": "5,11", "matrix": [5, 11], "x": 13.5, "y": 5.25, "w": 1.5}, + {"label": "5,12", "matrix": [5, 12], "x": 15.25, "y": 5.25}, + {"label": "5,13", "matrix": [5, 13], "x": 16.25, "y": 5.25}, + {"label": "5,15", "matrix": [5, 15], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_jis": { + "layout": [ + {"label": "0,0", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "0,1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "0,2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "0,3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "0,4", "matrix": [0, 4], "x": 5, "y": 0}, + {"label": "0,5", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "0,6", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "0,7", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "0,8", "matrix": [0, 8], "x": 9.5, "y": 0}, + {"label": "0,9", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "0,10", "matrix": [0, 10], "x": 12, "y": 0}, + {"label": "0,11", "matrix": [0, 11], "x": 13, "y": 0}, + {"label": "0,12", "matrix": [0, 12], "x": 14, "y": 0}, + {"label": "0,13", "matrix": [0, 13], "x": 15.25, "y": 0}, + {"label": "0,14", "matrix": [0, 14], "x": 16.25, "y": 0}, + {"label": "0,15", "matrix": [0, 15], "x": 17.25, "y": 0}, + {"label": "1,0", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1,1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "1,2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "1,3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "1,4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "1,5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "1,6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "1,7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "1,8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "1,9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "1,10", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "1,11", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "1,12", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "1,13", "matrix": [1, 13], "x": 13, "y": 1.25}, + {"label": "1,14", "matrix": [1, 14], "x": 14, "y": 1.25}, + {"label": "3,14", "matrix": [3, 14], "x": 15.25, "y": 1.25}, + {"label": "2,15", "matrix": [2, 15], "x": 16.25, "y": 1.25}, + {"label": "1,15", "matrix": [1, 15], "x": 17.25, "y": 1.25}, + {"label": "2,0", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "2,1", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "2,2", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "2,3", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "2,4", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "2,5", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "2,6", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "2,7", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "2,8", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "2,9", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "2,10", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "2,11", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "2,12", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "2,14", "matrix": [2, 14], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"label": "4,14", "matrix": [4, 14], "x": 15.25, "y": 2.25}, + {"label": "4,15", "matrix": [4, 15], "x": 16.25, "y": 2.25}, + {"label": "3,15", "matrix": [3, 15], "x": 17.25, "y": 2.25}, + {"label": "3,0", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "3,1", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "3,2", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "3,3", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "3,4", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "3,5", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "3,6", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "3,7", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "3,8", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "3,9", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": "3,10", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "3,11", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "3,12", "matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"label": "4,0", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "4,2", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "4,3", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "4,4", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "4,5", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "4,6", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "4,7", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "4,8", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": "4,9", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": "4,10", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "4,11", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "4,12", "matrix": [4, 12], "x": 12.25, "y": 4.25}, + {"label": "4,13", "matrix": [4, 13], "x": 13.25, "y": 4.25, "w": 1.75}, + {"label": "5,14", "matrix": [5, 14], "x": 16.25, "y": 4.25}, + {"label": "5,0", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "5,1", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "5,2", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "5,4", "matrix": [5, 4], "x": 4, "y": 5.25, "w": 1.5}, + {"label": "5,6", "matrix": [5, 6], "x": 5.5, "y": 5.25, "w": 2.5}, + {"label": "5,7", "matrix": [5, 7], "x": 8, "y": 5.25, "w": 1.5}, + {"label": "5,8", "matrix": [5, 8], "x": 9.5, "y": 5.25, "w": 1.5}, + {"label": "5,9", "matrix": [5, 9], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "5,10", "matrix": [5, 10], "x": 12.5, "y": 5.25}, + {"label": "5,11", "matrix": [5, 11], "x": 13.5, "y": 5.25, "w": 1.5}, + {"label": "5,12", "matrix": [5, 12], "x": 15.25, "y": 5.25}, + {"label": "5,13", "matrix": [5, 13], "x": 16.25, "y": 5.25}, + {"label": "5,15", "matrix": [5, 15], "x": 17.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/cipulot/ec_tkl/keymaps/default/keymap.c b/keyboards/cipulot/ec_tkl/keymaps/default/keymap.c new file mode 100644 index 00000000000..983bdefe8a9 --- /dev/null +++ b/keyboards/cipulot/ec_tkl/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +#include "keymap_japanese.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_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, JP_YEN, 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, JP_UNDS, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, JP_MHEN, KC_SPC, JP_KANA, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_all( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_tkl/keymaps/tkl_ansi_tsangan/keymap.c b/keyboards/cipulot/ec_tkl/keymaps/tkl_ansi_tsangan/keymap.c new file mode 100644 index 00000000000..ba948b4fc12 --- /dev/null +++ b/keyboards/cipulot/ec_tkl/keymaps/tkl_ansi_tsangan/keymap.c @@ -0,0 +1,37 @@ +/* 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 . + */ + +#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( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_tkl/keymaps/tkl_iso_tsangan/keymap.c b/keyboards/cipulot/ec_tkl/keymaps/tkl_iso_tsangan/keymap.c new file mode 100644 index 00000000000..1689d44d408 --- /dev/null +++ b/keyboards/cipulot/ec_tkl/keymaps/tkl_iso_tsangan/keymap.c @@ -0,0 +1,37 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_tkl_iso_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_ENT, 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_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_tkl_iso_tsangan( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_tkl/keymaps/tkl_jis/keymap.c b/keyboards/cipulot/ec_tkl/keymaps/tkl_jis/keymap.c new file mode 100644 index 00000000000..e44575f74f9 --- /dev/null +++ b/keyboards/cipulot/ec_tkl/keymaps/tkl_jis/keymap.c @@ -0,0 +1,39 @@ +/* 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 . + */ + +#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( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_tkl/keymaps/via/config.h b/keyboards/cipulot/ec_tkl/keymaps/via/config.h new file mode 100644 index 00000000000..1ab0d3d9aa2 --- /dev/null +++ b/keyboards/cipulot/ec_tkl/keymaps/via/config.h @@ -0,0 +1,20 @@ +/* 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 + +// This is the firmware version for VIA support to avoid conflicts on menu fetching +#define VIA_FIRMWARE_VERSION 1 diff --git a/keyboards/cipulot/ec_tkl/keymaps/via/keymap.c b/keyboards/cipulot/ec_tkl/keymaps/via/keymap.c new file mode 100644 index 00000000000..983bdefe8a9 --- /dev/null +++ b/keyboards/cipulot/ec_tkl/keymaps/via/keymap.c @@ -0,0 +1,39 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +#include "keymap_japanese.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_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, JP_YEN, 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, JP_UNDS, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, JP_MHEN, KC_SPC, JP_KANA, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_all( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_tkl/keymaps/via/rules.mk b/keyboards/cipulot/ec_tkl/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/cipulot/ec_tkl/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cipulot/ec_tkl/mcuconf.h b/keyboards/cipulot/ec_tkl/mcuconf.h new file mode 100644 index 00000000000..206928272fb --- /dev/null +++ b/keyboards/cipulot/ec_tkl/mcuconf.h @@ -0,0 +1,25 @@ +/* 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_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/post_rules.mk b/keyboards/cipulot/ec_tkl/post_rules.mk new file mode 100644 index 00000000000..d726a112a8c --- /dev/null +++ b/keyboards/cipulot/ec_tkl/post_rules.mk @@ -0,0 +1,3 @@ +ifeq ($(strip $(VIA_ENABLE)), yes) + SRC += keyboards/cipulot/common/via_ec.c +endif diff --git a/keyboards/cipulot/ec_tkl/readme.md b/keyboards/cipulot/ec_tkl/readme.md new file mode 100644 index 00000000000..31467b94d74 --- /dev/null +++ b/keyboards/cipulot/ec_tkl/readme.md @@ -0,0 +1,26 @@ +# EC TKL + +![EC TKL PCB](https://i.imgur.com/jQTHGzBh.png) + +Universal TKL Electrostatic Capacitive PCB, with multi-layout support. + +* Keyboard Maintainer: [cipulot](https://github.com/cipulot) +* Hardware Supported: EC TKL PCB Rev 1.1 +* Hardware Availability: TBD + +Make example for this keyboard (after setting up your build environment): + + make cipulot/ec_tkl:default + +Flashing example for this keyboard: + + make cipulot/ec_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 + +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_tkl/rules.mk b/keyboards/cipulot/ec_tkl/rules.mk new file mode 100644 index 00000000000..318e0215ce9 --- /dev/null +++ b/keyboards/cipulot/ec_tkl/rules.mk @@ -0,0 +1,5 @@ +CUSTOM_MATRIX = lite +ANALOG_DRIVER_REQUIRED = yes +VPATH += keyboards/cipulot/common +SRC += matrix.c ec_board.c ec_switch_matrix.c +OPT = 2 From 3377813f5d2e08818474c4ea1b0029b776826be7 Mon Sep 17 00:00:00 2001 From: Cipulot <40441626+Cipulot@users.noreply.github.com> Date: Tue, 30 Apr 2024 19:38:12 +0200 Subject: [PATCH 32/55] Add EC660C (#23171) --- keyboards/cipulot/ec_660c/config.h | 66 +++++++++++ keyboards/cipulot/ec_660c/halconf.h | 21 ++++ keyboards/cipulot/ec_660c/info.json | 111 ++++++++++++++++++ .../cipulot/ec_660c/keymaps/default/keymap.c | 43 +++++++ .../cipulot/ec_660c/keymaps/via/keymap.c | 43 +++++++ .../cipulot/ec_660c/keymaps/via/rules.mk | 1 + keyboards/cipulot/ec_660c/mcuconf.h | 22 ++++ keyboards/cipulot/ec_660c/post_rules.mk | 3 + keyboards/cipulot/ec_660c/readme.md | 26 ++++ keyboards/cipulot/ec_660c/rules.mk | 5 + 10 files changed, 341 insertions(+) create mode 100644 keyboards/cipulot/ec_660c/config.h create mode 100644 keyboards/cipulot/ec_660c/halconf.h create mode 100644 keyboards/cipulot/ec_660c/info.json create mode 100644 keyboards/cipulot/ec_660c/keymaps/default/keymap.c create mode 100644 keyboards/cipulot/ec_660c/keymaps/via/keymap.c create mode 100644 keyboards/cipulot/ec_660c/keymaps/via/rules.mk create mode 100644 keyboards/cipulot/ec_660c/mcuconf.h create mode 100644 keyboards/cipulot/ec_660c/post_rules.mk create mode 100644 keyboards/cipulot/ec_660c/readme.md create mode 100644 keyboards/cipulot/ec_660c/rules.mk diff --git a/keyboards/cipulot/ec_660c/config.h b/keyboards/cipulot/ec_660c/config.h new file mode 100644 index 00000000000..9e883c40da2 --- /dev/null +++ b/keyboards/cipulot/ec_660c/config.h @@ -0,0 +1,66 @@ +/* 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 + +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +#define MATRIX_ROW_PINS \ + { B1, B10, B0, A1, A0 } + +#define AMUX_COUNT 2 +#define AMUX_MAX_COLS_COUNT 8 + +#define AMUX_EN_PINS \ + { B7, B6 } + +#define AMUX_SEL_PINS \ + { B5, B4, B3 } + +#define AMUX_COL_CHANNELS_SIZES \ + { 8, 7 } + +#define AMUX_0_COL_CHANNELS \ + { 3, 0, 1, 2, 4, 6, 7, 5 } + +#define AMUX_1_COL_CHANNELS \ + { 3, 0, 1, 2, 4, 6, 7 } + +#define AMUX_COL_CHANNELS AMUX_0_COL_CHANNELS, AMUX_1_COL_CHANNELS + +#define DISCHARGE_PIN A5 +#define ANALOG_PORT A4 + +#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 100 +#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 159 diff --git a/keyboards/cipulot/ec_660c/halconf.h b/keyboards/cipulot/ec_660c/halconf.h new file mode 100644 index 00000000000..835d43b6a0a --- /dev/null +++ b/keyboards/cipulot/ec_660c/halconf.h @@ -0,0 +1,21 @@ +/* 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 + +#define HAL_USE_ADC TRUE + +#include_next diff --git a/keyboards/cipulot/ec_660c/info.json b/keyboards/cipulot/ec_660c/info.json new file mode 100644 index 00000000000..32ac397b6bf --- /dev/null +++ b/keyboards/cipulot/ec_660c/info.json @@ -0,0 +1,111 @@ +{ + "manufacturer": "Cipulot", + "keyboard_name": "EC 660C", + "maintainer": "Cipulot", + "bootloader": "stm32-dfu", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": false, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "B14", + "scroll_lock": "B15" + }, + "processor": "STM32F401", + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x6BA6", + "shared_endpoint": { + "keyboard": true + }, + "vid": "0x6369" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "0,0", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "0,1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "0,2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "0,3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "0,4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "0,5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "0,6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "0,7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "0,8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "0,9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0,10", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "0,11", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "0,12", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "0,13", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "0,14", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "1,14", "matrix": [1, 14], "x": 15.5, "y": 0}, + {"label": "1,0", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "1,1", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "1,2", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "1,3", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "1,4", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "1,5", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "1,6", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "1,7", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "1,8", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "1,9", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "1,10", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "1,11", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "1,12", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "1,13", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "2,14", "matrix": [2, 14], "x": 15.5, "y": 1}, + {"label": "2,0", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "2,1", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "2,2", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "2,3", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "2,4", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "2,5", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "2,6", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "2,7", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "2,8", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "2,9", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": "2,10", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "2,11", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "2,12", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "2,13", "matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25}, + {"label": "3,0", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "3,1", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "3,2", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "3,3", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "3,4", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "3,5", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "3,6", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "3,7", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "3,8", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "3,9", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": "3,10", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "3,11", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "3,12", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.25}, + {"label": "3,13", "matrix": [3, 13], "x": 14.5, "y": 3}, + {"label": "4,0", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "4,1", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "4,2", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "4,6", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6}, + {"label": "4,9", "matrix": [4, 9], "x": 9.75, "y": 4, "w": 1.25}, + {"label": "4,10", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.25}, + {"label": "4,11", "matrix": [4, 11], "x": 12.25, "y": 4, "w": 1.25}, + {"label": "4,12", "matrix": [4, 12], "x": 13.5, "y": 4}, + {"label": "4,13", "matrix": [4, 13], "x": 14.5, "y": 4}, + {"label": "4,14", "matrix": [4, 14], "x": 15.5, "y": 4} + ] + } + } +} diff --git a/keyboards/cipulot/ec_660c/keymaps/default/keymap.c b/keyboards/cipulot/ec_660c/keymaps/default/keymap.c new file mode 100644 index 00000000000..5d82bdc3abd --- /dev/null +++ b/keyboards/cipulot/ec_660c/keymaps/default/keymap.c @@ -0,0 +1,43 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [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_BSPC, 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_NUHS, 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, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, 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_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, _______, _______, _______, + _______, _______, _______, _______, _______, MO(2), _______, _______, _______, _______ + ), + [2] = LAYOUT( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_660c/keymaps/via/keymap.c b/keyboards/cipulot/ec_660c/keymaps/via/keymap.c new file mode 100644 index 00000000000..5d82bdc3abd --- /dev/null +++ b/keyboards/cipulot/ec_660c/keymaps/via/keymap.c @@ -0,0 +1,43 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [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_BSPC, 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_NUHS, 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, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, 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_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, _______, _______, _______, + _______, _______, _______, _______, _______, MO(2), _______, _______, _______, _______ + ), + [2] = LAYOUT( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_660c/keymaps/via/rules.mk b/keyboards/cipulot/ec_660c/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/cipulot/ec_660c/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cipulot/ec_660c/mcuconf.h b/keyboards/cipulot/ec_660c/mcuconf.h new file mode 100644 index 00000000000..fa3c955e0d8 --- /dev/null +++ b/keyboards/cipulot/ec_660c/mcuconf.h @@ -0,0 +1,22 @@ +/* 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_next + +#undef STM32_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE diff --git a/keyboards/cipulot/ec_660c/post_rules.mk b/keyboards/cipulot/ec_660c/post_rules.mk new file mode 100644 index 00000000000..d726a112a8c --- /dev/null +++ b/keyboards/cipulot/ec_660c/post_rules.mk @@ -0,0 +1,3 @@ +ifeq ($(strip $(VIA_ENABLE)), yes) + SRC += keyboards/cipulot/common/via_ec.c +endif diff --git a/keyboards/cipulot/ec_660c/readme.md b/keyboards/cipulot/ec_660c/readme.md new file mode 100644 index 00000000000..c01bb3252e0 --- /dev/null +++ b/keyboards/cipulot/ec_660c/readme.md @@ -0,0 +1,26 @@ +# EC660C + +![EC660C PCB](https://i.imgur.com/HfTvrkph.jpg) + +Replacement PCB for the Leopold FC660C. + +* Keyboard Maintainer: [cipulot](https://github.com/cipulot) +* Hardware Supported: EC660C PCB +* Hardware Availability: TBD + +Make example for this keyboard (after setting up your build environment): + + make cipulot/ec_660c:default + +Flashing example for this keyboard: + + make cipulot/ec_660c: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 pads on the top of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cipulot/ec_660c/rules.mk b/keyboards/cipulot/ec_660c/rules.mk new file mode 100644 index 00000000000..ce525670a68 --- /dev/null +++ b/keyboards/cipulot/ec_660c/rules.mk @@ -0,0 +1,5 @@ +CUSTOM_MATRIX = lite +ANALOG_DRIVER_REQUIRED = yes +VPATH += keyboards/cipulot/common +SRC += matrix.c ec_board.c ec_switch_matrix.c +OPT = 3 From d21363325dcc197725ddbe77063527314452751e Mon Sep 17 00:00:00 2001 From: Cipulot <40441626+Cipulot@users.noreply.github.com> Date: Tue, 30 Apr 2024 19:39:50 +0200 Subject: [PATCH 33/55] Add EC Dolice (#23178) --- keyboards/cipulot/ec_dolice/config.h | 66 ++++ keyboards/cipulot/ec_dolice/halconf.h | 21 ++ keyboards/cipulot/ec_dolice/info.json | 319 ++++++++++++++++++ .../ec_dolice/keymaps/default/keymap.c | 41 +++ .../cipulot/ec_dolice/keymaps/via/keymap.c | 41 +++ .../cipulot/ec_dolice/keymaps/via/rules.mk | 1 + keyboards/cipulot/ec_dolice/mcuconf.h | 22 ++ keyboards/cipulot/ec_dolice/post_rules.mk | 3 + keyboards/cipulot/ec_dolice/readme.md | 26 ++ keyboards/cipulot/ec_dolice/rules.mk | 5 + 10 files changed, 545 insertions(+) create mode 100644 keyboards/cipulot/ec_dolice/config.h create mode 100644 keyboards/cipulot/ec_dolice/halconf.h create mode 100644 keyboards/cipulot/ec_dolice/info.json create mode 100644 keyboards/cipulot/ec_dolice/keymaps/default/keymap.c create mode 100644 keyboards/cipulot/ec_dolice/keymaps/via/keymap.c create mode 100644 keyboards/cipulot/ec_dolice/keymaps/via/rules.mk create mode 100644 keyboards/cipulot/ec_dolice/mcuconf.h create mode 100644 keyboards/cipulot/ec_dolice/post_rules.mk create mode 100644 keyboards/cipulot/ec_dolice/readme.md create mode 100644 keyboards/cipulot/ec_dolice/rules.mk diff --git a/keyboards/cipulot/ec_dolice/config.h b/keyboards/cipulot/ec_dolice/config.h new file mode 100644 index 00000000000..a5c56e79491 --- /dev/null +++ b/keyboards/cipulot/ec_dolice/config.h @@ -0,0 +1,66 @@ +/* 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 + +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +#define MATRIX_ROW_PINS \ + { B13, A8, B12, B14, B15 } + +#define AMUX_COUNT 2 +#define AMUX_MAX_COLS_COUNT 8 + +#define AMUX_EN_PINS \ + { B9, B8 } + +#define AMUX_SEL_PINS \ + { B7, B6, B5 } + +#define AMUX_COL_CHANNELS_SIZES \ + { 8, 7 } + +#define AMUX_0_COL_CHANNELS \ + { 3, 0, 1, 2, 4, 6, 7, 5 } + +#define AMUX_1_COL_CHANNELS \ + { 3, 0, 1, 2, 4, 6, 7 } + +#define AMUX_COL_CHANNELS AMUX_0_COL_CHANNELS, AMUX_1_COL_CHANNELS + +#define DISCHARGE_PIN A3 +#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 100 +#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 159 diff --git a/keyboards/cipulot/ec_dolice/halconf.h b/keyboards/cipulot/ec_dolice/halconf.h new file mode 100644 index 00000000000..835d43b6a0a --- /dev/null +++ b/keyboards/cipulot/ec_dolice/halconf.h @@ -0,0 +1,21 @@ +/* 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 + +#define HAL_USE_ADC TRUE + +#include_next diff --git a/keyboards/cipulot/ec_dolice/info.json b/keyboards/cipulot/ec_dolice/info.json new file mode 100644 index 00000000000..e81422e2c54 --- /dev/null +++ b/keyboards/cipulot/ec_dolice/info.json @@ -0,0 +1,319 @@ +{ + "manufacturer": "Cipulot", + "keyboard_name": "Dolice EC", + "maintainer": "Cipulot", + "bootloader": "stm32-dfu", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": false, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "B4", + "num_lock": "A15", + "scroll_lock": "B3", + "on_state": 0 + }, + "processor": "STM32F411", + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x6BB9", + "shared_endpoint": { + "keyboard": true + }, + "vid": "0x6369" + }, + "layout_aliases": { + "LAYOUT_all": "LAYOUT_alice_split_bs" + }, + "layouts": { + "LAYOUT_alice": { + "layout": [ + {"matrix": [1, 0], "x": 0, "y": 0}, + {"matrix": [0, 0], "x": 1.25, "y": 0}, + {"matrix": [0, 1], "x": 2.25, "y": 0}, + {"matrix": [0, 2], "x": 3.25, "y": 0}, + {"matrix": [0, 3], "x": 4.25, "y": 0}, + {"matrix": [0, 4], "x": 5.25, "y": 0}, + {"matrix": [0, 5], "x": 6.25, "y": 0}, + {"matrix": [0, 6], "x": 7.25, "y": 0}, + {"matrix": [0, 7], "x": 10.25, "y": 0}, + {"matrix": [0, 8], "x": 11.25, "y": 0}, + {"matrix": [0, 9], "x": 12.25, "y": 0}, + {"matrix": [0, 10], "x": 13.25, "y": 0}, + {"matrix": [0, 11], "x": 14.25, "y": 0}, + {"matrix": [0, 12], "x": 15.25, "y": 0}, + {"matrix": [0, 14], "x": 16.25, "y": 0, "w": 2}, + {"matrix": [2, 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": [3, 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, 2], "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, 14], "x": 16.75, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_alice_split_bs": { + "layout": [ + {"matrix": [1, 0], "x": 0, "y": 0}, + {"matrix": [0, 0], "x": 1.25, "y": 0}, + {"matrix": [0, 1], "x": 2.25, "y": 0}, + {"matrix": [0, 2], "x": 3.25, "y": 0}, + {"matrix": [0, 3], "x": 4.25, "y": 0}, + {"matrix": [0, 4], "x": 5.25, "y": 0}, + {"matrix": [0, 5], "x": 6.25, "y": 0}, + {"matrix": [0, 6], "x": 7.25, "y": 0}, + {"matrix": [0, 7], "x": 10.25, "y": 0}, + {"matrix": [0, 8], "x": 11.25, "y": 0}, + {"matrix": [0, 9], "x": 12.25, "y": 0}, + {"matrix": [0, 10], "x": 13.25, "y": 0}, + {"matrix": [0, 11], "x": 14.25, "y": 0}, + {"matrix": [0, 12], "x": 15.25, "y": 0}, + {"matrix": [0, 13], "x": 16.25, "y": 0}, + {"matrix": [0, 14], "x": 17.25, "y": 0}, + {"matrix": [2, 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": [3, 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, 2], "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, 14], "x": 16.75, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_long_rshift": { + "layout": [ + {"matrix": [1, 0], "x": 0, "y": 0}, + {"matrix": [0, 0], "x": 1.25, "y": 0}, + {"matrix": [0, 1], "x": 2.25, "y": 0}, + {"matrix": [0, 2], "x": 3.25, "y": 0}, + {"matrix": [0, 3], "x": 4.25, "y": 0}, + {"matrix": [0, 4], "x": 5.25, "y": 0}, + {"matrix": [0, 5], "x": 6.25, "y": 0}, + {"matrix": [0, 6], "x": 7.25, "y": 0}, + {"matrix": [0, 7], "x": 10.25, "y": 0}, + {"matrix": [0, 8], "x": 11.25, "y": 0}, + {"matrix": [0, 9], "x": 12.25, "y": 0}, + {"matrix": [0, 10], "x": 13.25, "y": 0}, + {"matrix": [0, 11], "x": 14.25, "y": 0}, + {"matrix": [0, 12], "x": 15.25, "y": 0}, + {"matrix": [0, 14], "x": 16.25, "y": 0, "w": 2}, + {"matrix": [2, 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": [3, 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": 2.75}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "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, 14], "x": 16.75, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_long_rshift_split_bs": { + "layout": [ + {"matrix": [1, 0], "x": 0, "y": 0}, + {"matrix": [0, 0], "x": 1.25, "y": 0}, + {"matrix": [0, 1], "x": 2.25, "y": 0}, + {"matrix": [0, 2], "x": 3.25, "y": 0}, + {"matrix": [0, 3], "x": 4.25, "y": 0}, + {"matrix": [0, 4], "x": 5.25, "y": 0}, + {"matrix": [0, 5], "x": 6.25, "y": 0}, + {"matrix": [0, 6], "x": 7.25, "y": 0}, + {"matrix": [0, 7], "x": 10.25, "y": 0}, + {"matrix": [0, 8], "x": 11.25, "y": 0}, + {"matrix": [0, 9], "x": 12.25, "y": 0}, + {"matrix": [0, 10], "x": 13.25, "y": 0}, + {"matrix": [0, 11], "x": 14.25, "y": 0}, + {"matrix": [0, 12], "x": 15.25, "y": 0}, + {"matrix": [0, 13], "x": 16.25, "y": 0}, + {"matrix": [0, 14], "x": 17.25, "y": 0}, + {"matrix": [2, 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": [3, 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": 2.75}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "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, 14], "x": 16.75, "y": 4, "w": 1.5} + ] + } + } +} diff --git a/keyboards/cipulot/ec_dolice/keymaps/default/keymap.c b/keyboards/cipulot/ec_dolice/keymaps/default/keymap.c new file mode 100644 index 00000000000..5a501e29823 --- /dev/null +++ b/keyboards/cipulot/ec_dolice/keymaps/default/keymap.c @@ -0,0 +1,41 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_PSCR, 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_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_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL + ), + [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_DEL, + _______, _______, KC_HOME, KC_UP, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, _______, _______, + _______, _______, _______, _______, _______, _______, MO(2) + ), + [2] = LAYOUT_all( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/cipulot/ec_dolice/keymaps/via/keymap.c b/keyboards/cipulot/ec_dolice/keymaps/via/keymap.c new file mode 100644 index 00000000000..5a501e29823 --- /dev/null +++ b/keyboards/cipulot/ec_dolice/keymaps/via/keymap.c @@ -0,0 +1,41 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_PSCR, 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_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_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL + ), + [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_DEL, + _______, _______, KC_HOME, KC_UP, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, _______, _______, + _______, _______, _______, _______, _______, _______, MO(2) + ), + [2] = LAYOUT_all( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/cipulot/ec_dolice/keymaps/via/rules.mk b/keyboards/cipulot/ec_dolice/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/cipulot/ec_dolice/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cipulot/ec_dolice/mcuconf.h b/keyboards/cipulot/ec_dolice/mcuconf.h new file mode 100644 index 00000000000..fa3c955e0d8 --- /dev/null +++ b/keyboards/cipulot/ec_dolice/mcuconf.h @@ -0,0 +1,22 @@ +/* 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_next + +#undef STM32_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE diff --git a/keyboards/cipulot/ec_dolice/post_rules.mk b/keyboards/cipulot/ec_dolice/post_rules.mk new file mode 100644 index 00000000000..d726a112a8c --- /dev/null +++ b/keyboards/cipulot/ec_dolice/post_rules.mk @@ -0,0 +1,3 @@ +ifeq ($(strip $(VIA_ENABLE)), yes) + SRC += keyboards/cipulot/common/via_ec.c +endif diff --git a/keyboards/cipulot/ec_dolice/readme.md b/keyboards/cipulot/ec_dolice/readme.md new file mode 100644 index 00000000000..a947df139c3 --- /dev/null +++ b/keyboards/cipulot/ec_dolice/readme.md @@ -0,0 +1,26 @@ +# Dolice EC + +![Dolice EC](https://i.imgur.com/uvM0G5v.png) + +The Dolice is a alice keyboard designed by Lx3 (Linworks) and yuktsi (TGR) and run by KLC. EC Version designed by Cipulot. + +* Keyboard Maintainer: [cipulot](https://github.com/cipulot) +* Hardware Supported: Dolice EC +* Hardware availability: Groupbuys. Check the ongoing ones on [the KLC Discord](https://discord.gg/d2A72mGPRB) or [Webshop](https://klc-playground.com/). + +Make example for this keyboard (after setting up your build environment): + + make cipulot/ec_dolice:default + +Flashing example for this keyboard: + + make cipulot/ec_dolice: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 pads on the top of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cipulot/ec_dolice/rules.mk b/keyboards/cipulot/ec_dolice/rules.mk new file mode 100644 index 00000000000..ce525670a68 --- /dev/null +++ b/keyboards/cipulot/ec_dolice/rules.mk @@ -0,0 +1,5 @@ +CUSTOM_MATRIX = lite +ANALOG_DRIVER_REQUIRED = yes +VPATH += keyboards/cipulot/common +SRC += matrix.c ec_board.c ec_switch_matrix.c +OPT = 3 From 822ba1edfa0a4309eeb8304749fb31fd414d369c Mon Sep 17 00:00:00 2001 From: Cipulot <40441626+Cipulot@users.noreply.github.com> Date: Tue, 30 Apr 2024 19:40:40 +0200 Subject: [PATCH 34/55] Add EC Vero (#23176) --- keyboards/cipulot/ec_vero/config.h | 61 +++++++ keyboards/cipulot/ec_vero/halconf.h | 21 +++ keyboards/cipulot/ec_vero/info.json | 165 ++++++++++++++++++ .../cipulot/ec_vero/keymaps/60_hhkb/keymap.c | 42 +++++ .../cipulot/ec_vero/keymaps/default/keymap.c | 42 +++++ .../cipulot/ec_vero/keymaps/via/keymap.c | 42 +++++ .../cipulot/ec_vero/keymaps/via/rules.mk | 1 + keyboards/cipulot/ec_vero/mcuconf.h | 22 +++ keyboards/cipulot/ec_vero/post_rules.mk | 3 + keyboards/cipulot/ec_vero/readme.md | 26 +++ keyboards/cipulot/ec_vero/rules.mk | 5 + 11 files changed, 430 insertions(+) create mode 100644 keyboards/cipulot/ec_vero/config.h create mode 100644 keyboards/cipulot/ec_vero/halconf.h create mode 100644 keyboards/cipulot/ec_vero/info.json create mode 100644 keyboards/cipulot/ec_vero/keymaps/60_hhkb/keymap.c create mode 100644 keyboards/cipulot/ec_vero/keymaps/default/keymap.c create mode 100644 keyboards/cipulot/ec_vero/keymaps/via/keymap.c create mode 100644 keyboards/cipulot/ec_vero/keymaps/via/rules.mk create mode 100644 keyboards/cipulot/ec_vero/mcuconf.h create mode 100644 keyboards/cipulot/ec_vero/post_rules.mk create mode 100644 keyboards/cipulot/ec_vero/readme.md create mode 100644 keyboards/cipulot/ec_vero/rules.mk diff --git a/keyboards/cipulot/ec_vero/config.h b/keyboards/cipulot/ec_vero/config.h new file mode 100644 index 00000000000..89f7474b552 --- /dev/null +++ b/keyboards/cipulot/ec_vero/config.h @@ -0,0 +1,61 @@ +/* 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 + +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +#define MATRIX_ROW_PINS \ + { B7, B6, A9, A10, B3 } + +#define AMUX_COUNT 1 +#define AMUX_MAX_COLS_COUNT 15 + +#define AMUX_EN_PINS \ + { B14 } + +#define AMUX_SEL_PINS \ + { B13, B12, B15, A8 } + +#define AMUX_COL_CHANNELS_SIZES \ + { 15 } + +#define AMUX_0_COL_CHANNELS \ + { 1, 2, 3, 4, 5, 6, 7, 0, 8, 9, 10, 11, 13, 12, 14} + +#define AMUX_COL_CHANNELS AMUX_0_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 EECONFIG_KB_DATA_SIZE 159 diff --git a/keyboards/cipulot/ec_vero/halconf.h b/keyboards/cipulot/ec_vero/halconf.h new file mode 100644 index 00000000000..835d43b6a0a --- /dev/null +++ b/keyboards/cipulot/ec_vero/halconf.h @@ -0,0 +1,21 @@ +/* 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 + +#define HAL_USE_ADC TRUE + +#include_next diff --git a/keyboards/cipulot/ec_vero/info.json b/keyboards/cipulot/ec_vero/info.json new file mode 100644 index 00000000000..a2cc1e4a07d --- /dev/null +++ b/keyboards/cipulot/ec_vero/info.json @@ -0,0 +1,165 @@ +{ + "manufacturer": "Cipulot", + "keyboard_name": "Vero EC", + "maintainer": "Cipulot", + "bootloader": "stm32-dfu", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "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": "0x6BC1", + "shared_endpoint": { + "keyboard": true + }, + "vid": "0x6369" + }, + "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, 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, 14], "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": 6}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 11.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": [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": 0.75}, + {"matrix": [1, 14], "x": 14.25, "y": 1, "w": 0.75}, + {"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": [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": 1.75}, + {"matrix": [3, 14], "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": 6}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 11.5, "y": 4} + ] + } + } +} diff --git a/keyboards/cipulot/ec_vero/keymaps/60_hhkb/keymap.c b/keyboards/cipulot/ec_vero/keymaps/60_hhkb/keymap.c new file mode 100644 index 00000000000..bd4df694af9 --- /dev/null +++ b/keyboards/cipulot/ec_vero/keymaps/60_hhkb/keymap.c @@ -0,0 +1,42 @@ +/* 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 . + */ + +#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_DEL, + 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_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, 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_PSCR, KC_SCRL, KC_PAUSE, KC_UP, _______, KC_BSPC, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, S(KC_8), KC_SLSH, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, _______, + _______, _______, _______, _______, _______, _______, S(KC_EQL), KC_MINS, KC_END, KC_PGDN, KC_DOWN, _______, _______, + _______, _______, _______, _______, MO(2)), + + [2] = LAYOUT_60_hhkb( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_vero/keymaps/default/keymap.c b/keyboards/cipulot/ec_vero/keymaps/default/keymap.c new file mode 100644 index 00000000000..06b3651d94a --- /dev/null +++ b/keyboards/cipulot/ec_vero/keymaps/default/keymap.c @@ -0,0 +1,42 @@ +/* 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 . + */ + +#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_DEL, KC_ENTER, + 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_NUHS, KC_ENTER, + 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, MO(1), + KC_LALT, KC_LGUI, 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_PSCR, KC_SCRL, KC_PAUSE, KC_UP, _______, KC_BSPC, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, S(KC_8), KC_SLSH, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, _______, _______, + _______, _______, _______, _______, _______, _______, _______, S(KC_EQL), KC_MINS, KC_END, KC_PGDN, KC_DOWN, _______, _______, + _______, _______, _______, _______, MO(2)), + + [2] = LAYOUT_all( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_vero/keymaps/via/keymap.c b/keyboards/cipulot/ec_vero/keymaps/via/keymap.c new file mode 100644 index 00000000000..06b3651d94a --- /dev/null +++ b/keyboards/cipulot/ec_vero/keymaps/via/keymap.c @@ -0,0 +1,42 @@ +/* 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 . + */ + +#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_DEL, KC_ENTER, + 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_NUHS, KC_ENTER, + 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, MO(1), + KC_LALT, KC_LGUI, 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_PSCR, KC_SCRL, KC_PAUSE, KC_UP, _______, KC_BSPC, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, S(KC_8), KC_SLSH, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, _______, _______, + _______, _______, _______, _______, _______, _______, _______, S(KC_EQL), KC_MINS, KC_END, KC_PGDN, KC_DOWN, _______, _______, + _______, _______, _______, _______, MO(2)), + + [2] = LAYOUT_all( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_vero/keymaps/via/rules.mk b/keyboards/cipulot/ec_vero/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/cipulot/ec_vero/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cipulot/ec_vero/mcuconf.h b/keyboards/cipulot/ec_vero/mcuconf.h new file mode 100644 index 00000000000..fa3c955e0d8 --- /dev/null +++ b/keyboards/cipulot/ec_vero/mcuconf.h @@ -0,0 +1,22 @@ +/* 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_next + +#undef STM32_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE diff --git a/keyboards/cipulot/ec_vero/post_rules.mk b/keyboards/cipulot/ec_vero/post_rules.mk new file mode 100644 index 00000000000..d726a112a8c --- /dev/null +++ b/keyboards/cipulot/ec_vero/post_rules.mk @@ -0,0 +1,3 @@ +ifeq ($(strip $(VIA_ENABLE)), yes) + SRC += keyboards/cipulot/common/via_ec.c +endif diff --git a/keyboards/cipulot/ec_vero/readme.md b/keyboards/cipulot/ec_vero/readme.md new file mode 100644 index 00000000000..590423fa023 --- /dev/null +++ b/keyboards/cipulot/ec_vero/readme.md @@ -0,0 +1,26 @@ +# Vero EC + +![Vero EC PCB](https://i.imgur.com/JV8pMaXh.jpg) + +EC version of the Vero R2 keyboard. + +* Keyboard Maintainer: [cipulot](https://github.com/cipulot) +* Hardware Supported: Vero EC PCB +* Hardware Availability: [Antipode](https://www.antipode.no/) + +Make example for this keyboard (after setting up your build environment): + + make cipulot/ec_vero:default + +Flashing example for this keyboard: + + make cipulot/ec_vero: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 pads on the top of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cipulot/ec_vero/rules.mk b/keyboards/cipulot/ec_vero/rules.mk new file mode 100644 index 00000000000..ce525670a68 --- /dev/null +++ b/keyboards/cipulot/ec_vero/rules.mk @@ -0,0 +1,5 @@ +CUSTOM_MATRIX = lite +ANALOG_DRIVER_REQUIRED = yes +VPATH += keyboards/cipulot/common +SRC += matrix.c ec_board.c ec_switch_matrix.c +OPT = 3 From 900bec6211eb5c801c158bd30969397ff06b47fe Mon Sep 17 00:00:00 2001 From: Cipulot <40441626+Cipulot@users.noreply.github.com> Date: Tue, 30 Apr 2024 19:41:29 +0200 Subject: [PATCH 35/55] Add EC Menhir (#23175) --- keyboards/cipulot/ec_menhir/config.h | 61 +++++++++++++ keyboards/cipulot/ec_menhir/halconf.h | 21 +++++ keyboards/cipulot/ec_menhir/info.json | 87 +++++++++++++++++++ .../ec_menhir/keymaps/default/keymap.c | 27 ++++++ .../cipulot/ec_menhir/keymaps/via/keymap.c | 27 ++++++ .../cipulot/ec_menhir/keymaps/via/rules.mk | 1 + keyboards/cipulot/ec_menhir/mcuconf.h | 22 +++++ keyboards/cipulot/ec_menhir/post_rules.mk | 3 + keyboards/cipulot/ec_menhir/readme.md | 26 ++++++ keyboards/cipulot/ec_menhir/rules.mk | 4 + 10 files changed, 279 insertions(+) create mode 100644 keyboards/cipulot/ec_menhir/config.h create mode 100644 keyboards/cipulot/ec_menhir/halconf.h create mode 100644 keyboards/cipulot/ec_menhir/info.json create mode 100644 keyboards/cipulot/ec_menhir/keymaps/default/keymap.c create mode 100644 keyboards/cipulot/ec_menhir/keymaps/via/keymap.c create mode 100644 keyboards/cipulot/ec_menhir/keymaps/via/rules.mk create mode 100644 keyboards/cipulot/ec_menhir/mcuconf.h create mode 100644 keyboards/cipulot/ec_menhir/post_rules.mk create mode 100644 keyboards/cipulot/ec_menhir/readme.md create mode 100644 keyboards/cipulot/ec_menhir/rules.mk diff --git a/keyboards/cipulot/ec_menhir/config.h b/keyboards/cipulot/ec_menhir/config.h new file mode 100644 index 00000000000..bd0094c7f15 --- /dev/null +++ b/keyboards/cipulot/ec_menhir/config.h @@ -0,0 +1,61 @@ +/* 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 + +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +#define MATRIX_ROW_PINS \ + { A0, A3, A2, A1 } + +#define AMUX_COUNT 1 +#define AMUX_MAX_COLS_COUNT 12 + +#define AMUX_EN_PINS \ + { C10 } + +#define AMUX_SEL_PINS \ + { C11, B3, A15, A14 } + +#define AMUX_COL_CHANNELS_SIZES \ + { 12 } + +#define AMUX_0_COL_CHANNELS \ + { 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10 } + +#define AMUX_COL_CHANNELS AMUX_0_COL_CHANNELS + +#define DISCHARGE_PIN A4 +#define ANALOG_PORT A5 + +#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 105 diff --git a/keyboards/cipulot/ec_menhir/halconf.h b/keyboards/cipulot/ec_menhir/halconf.h new file mode 100644 index 00000000000..835d43b6a0a --- /dev/null +++ b/keyboards/cipulot/ec_menhir/halconf.h @@ -0,0 +1,21 @@ +/* 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 + +#define HAL_USE_ADC TRUE + +#include_next diff --git a/keyboards/cipulot/ec_menhir/info.json b/keyboards/cipulot/ec_menhir/info.json new file mode 100644 index 00000000000..4cc6a845259 --- /dev/null +++ b/keyboards/cipulot/ec_menhir/info.json @@ -0,0 +1,87 @@ +{ + "manufacturer": "Cipulot", + "keyboard_name": "EC Menhir", + "maintainer": "Cipulot", + "bootloader": "stm32-dfu", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "driver": "embedded_flash", + "backing_size": 4096 + } + }, + "features": { + "bootmagic": false, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "processor": "STM32G431", + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x6BB8", + "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, "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, "w": 1.75}, + {"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": [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": [1, 8], "x": 8.25, "y": 1}, + {"matrix": [1, 9], "x": 9.25, "y": 1}, + {"matrix": [1, 10], "x": 10.25, "y": 1}, + {"matrix": [1, 11], "x": 11.25, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0.5, "y": 2, "w": 1.25}, + {"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, "w": 1.5}, + {"matrix": [3, 1], "x": 1.75, "y": 3, "w": 1.25}, + {"matrix": [3, 2], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3, "w": 2}, + {"matrix": [3, 5], "x": 6, "y": 3}, + {"matrix": [3, 6], "x": 7, "y": 3, "w": 2}, + {"matrix": [3, 8], "x": 9, "y": 3}, + {"matrix": [3, 9], "x": 10, "y": 3} + ] + } + } +} diff --git a/keyboards/cipulot/ec_menhir/keymaps/default/keymap.c b/keyboards/cipulot/ec_menhir/keymaps/default/keymap.c new file mode 100644 index 00000000000..e6780e6439f --- /dev/null +++ b/keyboards/cipulot/ec_menhir/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT( + 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, + KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(2), KC_LCTL) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_menhir/keymaps/via/keymap.c b/keyboards/cipulot/ec_menhir/keymaps/via/keymap.c new file mode 100644 index 00000000000..e6780e6439f --- /dev/null +++ b/keyboards/cipulot/ec_menhir/keymaps/via/keymap.c @@ -0,0 +1,27 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT( + 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, + KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(2), KC_LCTL) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_menhir/keymaps/via/rules.mk b/keyboards/cipulot/ec_menhir/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/cipulot/ec_menhir/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cipulot/ec_menhir/mcuconf.h b/keyboards/cipulot/ec_menhir/mcuconf.h new file mode 100644 index 00000000000..b120f145c5b --- /dev/null +++ b/keyboards/cipulot/ec_menhir/mcuconf.h @@ -0,0 +1,22 @@ +/* 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_next + +#undef STM32_ADC_USE_ADC2 +#define STM32_ADC_USE_ADC2 TRUE diff --git a/keyboards/cipulot/ec_menhir/post_rules.mk b/keyboards/cipulot/ec_menhir/post_rules.mk new file mode 100644 index 00000000000..d726a112a8c --- /dev/null +++ b/keyboards/cipulot/ec_menhir/post_rules.mk @@ -0,0 +1,3 @@ +ifeq ($(strip $(VIA_ENABLE)), yes) + SRC += keyboards/cipulot/common/via_ec.c +endif diff --git a/keyboards/cipulot/ec_menhir/readme.md b/keyboards/cipulot/ec_menhir/readme.md new file mode 100644 index 00000000000..234b1ab9d0e --- /dev/null +++ b/keyboards/cipulot/ec_menhir/readme.md @@ -0,0 +1,26 @@ +# EC Menhir + +![EC Menhir](https://i.imgur.com/m0feb2Zh.png) + +EC version of the Menhir. + +* Keyboard Maintainer: [cipulot](https://github.com/cipulot) +* Hardware Supported: EC Menhir +* Hardware Availability: [fruitykeeb](https://fruitykeeb.xyz/) + +Make example for this keyboard (after setting up your build environment): + + make cipulot/ec_menhir:default + +Flashing example for this keyboard: + + make cipulot/ec_menhir: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 Boot0 pins**: Short the Boot0 pins on the back of the PCB while plugging in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cipulot/ec_menhir/rules.mk b/keyboards/cipulot/ec_menhir/rules.mk new file mode 100644 index 00000000000..e7d73cefc98 --- /dev/null +++ b/keyboards/cipulot/ec_menhir/rules.mk @@ -0,0 +1,4 @@ +CUSTOM_MATRIX = lite +ANALOG_DRIVER_REQUIRED = yes +VPATH += keyboards/cipulot/common +SRC += matrix.c ec_board.c ec_switch_matrix.c From 69acadf967ed9b8389a3087425c3d2a772c09495 Mon Sep 17 00:00:00 2001 From: Cipulot <40441626+Cipulot@users.noreply.github.com> Date: Tue, 30 Apr 2024 19:43:06 +0200 Subject: [PATCH 36/55] Add Chroma Support (#22889) Co-authored-by: Duncan Sutherland Co-authored-by: Drashna Jaelre --- keyboards/cipulot/chroma/info.json | 679 ++++++++++++++++++ .../chroma/keymaps/60_ansi_tsangan/keymap.c | 43 ++ .../chroma/keymaps/60_ansi_wkl/keymap.c | 43 ++ .../60_ansi_wkl_split_bs_rshift/keymap.c | 43 ++ .../chroma/keymaps/60_iso_tsangan/keymap.c | 43 ++ .../60_iso_tsangan_split_bs_rshift/keymap.c | 43 ++ .../chroma/keymaps/60_iso_wkl/keymap.c | 43 ++ .../60_iso_wkl_split_bs_rshift/keymap.c | 43 ++ .../cipulot/chroma/keymaps/default/keymap.c | 43 ++ keyboards/cipulot/chroma/keymaps/via/keymap.c | 43 ++ keyboards/cipulot/chroma/keymaps/via/rules.mk | 1 + keyboards/cipulot/chroma/readme.md | 27 + keyboards/cipulot/chroma/rules.mk | 0 13 files changed, 1094 insertions(+) create mode 100644 keyboards/cipulot/chroma/info.json create mode 100644 keyboards/cipulot/chroma/keymaps/60_ansi_tsangan/keymap.c create mode 100644 keyboards/cipulot/chroma/keymaps/60_ansi_wkl/keymap.c create mode 100644 keyboards/cipulot/chroma/keymaps/60_ansi_wkl_split_bs_rshift/keymap.c create mode 100644 keyboards/cipulot/chroma/keymaps/60_iso_tsangan/keymap.c create mode 100644 keyboards/cipulot/chroma/keymaps/60_iso_tsangan_split_bs_rshift/keymap.c create mode 100644 keyboards/cipulot/chroma/keymaps/60_iso_wkl/keymap.c create mode 100644 keyboards/cipulot/chroma/keymaps/60_iso_wkl_split_bs_rshift/keymap.c create mode 100644 keyboards/cipulot/chroma/keymaps/default/keymap.c create mode 100644 keyboards/cipulot/chroma/keymaps/via/keymap.c create mode 100644 keyboards/cipulot/chroma/keymaps/via/rules.mk create mode 100644 keyboards/cipulot/chroma/readme.md create mode 100644 keyboards/cipulot/chroma/rules.mk diff --git a/keyboards/cipulot/chroma/info.json b/keyboards/cipulot/chroma/info.json new file mode 100644 index 00000000000..5d418fdce1f --- /dev/null +++ b/keyboards/cipulot/chroma/info.json @@ -0,0 +1,679 @@ +{ + "manufacturer": "Cipulot", + "keyboard_name": "Chroma", + "maintainer": "Cipulot", + "bootloader": "stm32-dfu", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "features": { + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["A5", "A6", "A7", "B0", "B1", "B2", "B10", "B11", "B12", "A15", "B3", "B4", "B5", "B7", "B6"], + "rows": ["F0", "A2", "A3", "A4", "C15"] + }, + "processor": "STM32F072", + "usb": { + "device_version": "0.0.1", + "pid": "0x6BBF", + "shared_endpoint": { + "keyboard": true + }, + "vid": "0x6369" + }, + "community_layouts": ["60_ansi_tsangan", "60_tsangan_hhkb", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"], + "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, 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, 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, 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_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, 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, 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, 11], "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": [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, 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, 11], "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": [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, 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_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, 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": [2, 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}, + {"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": [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, 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}, + {"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": [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": [2, 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}, + {"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": [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, 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}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_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, 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": [2, 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}, + {"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": [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, 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, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso_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": [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": [2, 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}, + {"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": [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, 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, 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": [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, 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, 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": [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}, + {"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.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.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": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + } + } +} diff --git a/keyboards/cipulot/chroma/keymaps/60_ansi_tsangan/keymap.c b/keyboards/cipulot/chroma/keymaps/60_ansi_tsangan/keymap.c new file mode 100644 index 00000000000..df27a14861a --- /dev/null +++ b/keyboards/cipulot/chroma/keymaps/60_ansi_tsangan/keymap.c @@ -0,0 +1,43 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_60_ansi_tsangan( + 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_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_RCTL + ), + [1] = LAYOUT_60_ansi_tsangan( + 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_PSCR, KC_SCRL, KC_PAUSE, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_60_ansi_tsangan( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ) + // clang-format on +}; diff --git a/keyboards/cipulot/chroma/keymaps/60_ansi_wkl/keymap.c b/keyboards/cipulot/chroma/keymaps/60_ansi_wkl/keymap.c new file mode 100644 index 00000000000..4bc80d1d24b --- /dev/null +++ b/keyboards/cipulot/chroma/keymaps/60_ansi_wkl/keymap.c @@ -0,0 +1,43 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_60_ansi_wkl( + 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_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, KC_RALT, KC_RCTL + ), + [1] = LAYOUT_60_ansi_wkl( + 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_PSCR, KC_SCRL, KC_PAUSE, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_60_ansi_wkl( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______ + ) + // clang-format on +}; diff --git a/keyboards/cipulot/chroma/keymaps/60_ansi_wkl_split_bs_rshift/keymap.c b/keyboards/cipulot/chroma/keymaps/60_ansi_wkl_split_bs_rshift/keymap.c new file mode 100644 index 00000000000..e9cdf26567f --- /dev/null +++ b/keyboards/cipulot/chroma/keymaps/60_ansi_wkl_split_bs_rshift/keymap.c @@ -0,0 +1,43 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_60_ansi_wkl_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_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_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL + ), + [1] = LAYOUT_60_ansi_wkl_split_bs_rshift( + 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_PSCR, KC_SCRL, KC_PAUSE, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, MO(2) + ), + [2] = LAYOUT_60_ansi_wkl_split_bs_rshift( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______ + ) + // clang-format on +}; diff --git a/keyboards/cipulot/chroma/keymaps/60_iso_tsangan/keymap.c b/keyboards/cipulot/chroma/keymaps/60_iso_tsangan/keymap.c new file mode 100644 index 00000000000..55492c3e4d4 --- /dev/null +++ b/keyboards/cipulot/chroma/keymaps/60_iso_tsangan/keymap.c @@ -0,0 +1,43 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_60_iso_tsangan( + 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_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_RCTL + ), + [1] = LAYOUT_60_iso_tsangan( + 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_PSCR, KC_SCRL, KC_PAUSE, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_60_iso_tsangan( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ) + // clang-format on +}; diff --git a/keyboards/cipulot/chroma/keymaps/60_iso_tsangan_split_bs_rshift/keymap.c b/keyboards/cipulot/chroma/keymaps/60_iso_tsangan_split_bs_rshift/keymap.c new file mode 100644 index 00000000000..3cce7112447 --- /dev/null +++ b/keyboards/cipulot/chroma/keymaps/60_iso_tsangan_split_bs_rshift/keymap.c @@ -0,0 +1,43 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_60_iso_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_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_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, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + [1] = LAYOUT_60_iso_tsangan_split_bs_rshift( + 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_PSCR, KC_SCRL, KC_PAUSE, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, MO(2) + ), + [2] = LAYOUT_60_iso_tsangan_split_bs_rshift( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ) + // clang-format on +}; diff --git a/keyboards/cipulot/chroma/keymaps/60_iso_wkl/keymap.c b/keyboards/cipulot/chroma/keymaps/60_iso_wkl/keymap.c new file mode 100644 index 00000000000..01bb84f50d4 --- /dev/null +++ b/keyboards/cipulot/chroma/keymaps/60_iso_wkl/keymap.c @@ -0,0 +1,43 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_60_iso_wkl( + 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_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_LALT, KC_SPC, KC_RALT, KC_RCTL + ), + [1] = LAYOUT_60_iso_wkl( + 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_PSCR, KC_SCRL, KC_PAUSE, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_60_iso_wkl( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______ + ) + // clang-format on +}; diff --git a/keyboards/cipulot/chroma/keymaps/60_iso_wkl_split_bs_rshift/keymap.c b/keyboards/cipulot/chroma/keymaps/60_iso_wkl_split_bs_rshift/keymap.c new file mode 100644 index 00000000000..d412f2a977d --- /dev/null +++ b/keyboards/cipulot/chroma/keymaps/60_iso_wkl_split_bs_rshift/keymap.c @@ -0,0 +1,43 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_60_iso_wkl_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_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_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, MO(1), + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL + ), + [1] = LAYOUT_60_iso_wkl_split_bs_rshift( + 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_PSCR, KC_SCRL, KC_PAUSE, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, MO(2) + ), + [2] = LAYOUT_60_iso_wkl_split_bs_rshift( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______ + ) + // clang-format on +}; diff --git a/keyboards/cipulot/chroma/keymaps/default/keymap.c b/keyboards/cipulot/chroma/keymaps/default/keymap.c new file mode 100644 index 00000000000..c93d9110efe --- /dev/null +++ b/keyboards/cipulot/chroma/keymaps/default/keymap.c @@ -0,0 +1,43 @@ +/* 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 . + */ + +#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_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_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, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + [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_UP, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUSE, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, MO(2) + ), + [2] = LAYOUT_all( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ) + // clang-format on +}; diff --git a/keyboards/cipulot/chroma/keymaps/via/keymap.c b/keyboards/cipulot/chroma/keymaps/via/keymap.c new file mode 100644 index 00000000000..c93d9110efe --- /dev/null +++ b/keyboards/cipulot/chroma/keymaps/via/keymap.c @@ -0,0 +1,43 @@ +/* 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 . + */ + +#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_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_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, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + [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_UP, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUSE, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, MO(2) + ), + [2] = LAYOUT_all( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ) + // clang-format on +}; diff --git a/keyboards/cipulot/chroma/keymaps/via/rules.mk b/keyboards/cipulot/chroma/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/cipulot/chroma/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cipulot/chroma/readme.md b/keyboards/cipulot/chroma/readme.md new file mode 100644 index 00000000000..9a08bbecac1 --- /dev/null +++ b/keyboards/cipulot/chroma/readme.md @@ -0,0 +1,27 @@ +# Chroma + +![Chroma](https://i.imgur.com/clhRkDDh.png) + +A 60% hot swap PCB for MX switches. + +* Keyboard Maintainer: [cipulot](https://github.com/cipulot) +* Hardware Supported: Chroma +* Hardware Availability: [Eloquent Clicks](https://eloquentclicks.com/) + +Make example for this keyboard (after setting up your build environment): + + make cipulot/chroma:default + +Flashing example for this keyboard: + + make cipulot/chroma: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: + +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is configured. +* **Physical reset button**: Long press the reset button soldered on the PCB. +* **Bootmagic reset**: Hold down the top left key and plug in the controller. diff --git a/keyboards/cipulot/chroma/rules.mk b/keyboards/cipulot/chroma/rules.mk new file mode 100644 index 00000000000..e69de29bb2d From 31c81d432cbe963a1132f231036d38aa908c9403 Mon Sep 17 00:00:00 2001 From: Cipulot <40441626+Cipulot@users.noreply.github.com> Date: Tue, 30 Apr 2024 20:32:08 +0200 Subject: [PATCH 37/55] Add EC980C (#23172) --- keyboards/cipulot/ec_980c/config.h | 86 +++ keyboards/cipulot/ec_980c/ec_980c.c | 116 ++++ keyboards/cipulot/ec_980c/ec_switch_matrix.c | 318 +++++++++++ keyboards/cipulot/ec_980c/ec_switch_matrix.h | 83 +++ keyboards/cipulot/ec_980c/halconf.h | 23 + keyboards/cipulot/ec_980c/info.json | 170 ++++++ .../cipulot/ec_980c/keymaps/default/keymap.c | 48 ++ .../cipulot/ec_980c/keymaps/via/keymap.c | 48 ++ .../cipulot/ec_980c/keymaps/via/rules.mk | 3 + .../ec_980c/keymaps/via/via_ec_indicators.c | 499 ++++++++++++++++++ keyboards/cipulot/ec_980c/matrix.c | 42 ++ keyboards/cipulot/ec_980c/mcuconf.h | 28 + keyboards/cipulot/ec_980c/readme.md | 26 + keyboards/cipulot/ec_980c/rules.mk | 4 + 14 files changed, 1494 insertions(+) create mode 100644 keyboards/cipulot/ec_980c/config.h create mode 100644 keyboards/cipulot/ec_980c/ec_980c.c create mode 100644 keyboards/cipulot/ec_980c/ec_switch_matrix.c create mode 100644 keyboards/cipulot/ec_980c/ec_switch_matrix.h create mode 100644 keyboards/cipulot/ec_980c/halconf.h create mode 100644 keyboards/cipulot/ec_980c/info.json create mode 100644 keyboards/cipulot/ec_980c/keymaps/default/keymap.c create mode 100644 keyboards/cipulot/ec_980c/keymaps/via/keymap.c create mode 100644 keyboards/cipulot/ec_980c/keymaps/via/rules.mk create mode 100644 keyboards/cipulot/ec_980c/keymaps/via/via_ec_indicators.c create mode 100644 keyboards/cipulot/ec_980c/matrix.c create mode 100644 keyboards/cipulot/ec_980c/mcuconf.h create mode 100644 keyboards/cipulot/ec_980c/readme.md create mode 100644 keyboards/cipulot/ec_980c/rules.mk diff --git a/keyboards/cipulot/ec_980c/config.h b/keyboards/cipulot/ec_980c/config.h new file mode 100644 index 00000000000..e3723822e33 --- /dev/null +++ b/keyboards/cipulot/ec_980c/config.h @@ -0,0 +1,86 @@ +/* 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 + +#define MATRIX_ROWS 6 +#define MATRIX_COLS 19 + +#define MATRIX_ROW_PINS \ + { B13, B12, B14, A9, B6, B7 } + +#define AMUX_COUNT 3 +#define AMUX_MAX_COLS_COUNT 8 + +#define AMUX_EN_PINS \ + { A0, A1, A8 } + +#define AMUX_SEL_PINS \ + { A4, A3, A2 } + +#define AMUX_COL_CHANNELS_SIZES \ + { 8, 7, 4 } + +#define AMUX_0_COL_CHANNELS \ + { 0, 3, 1, 2, 4, 6, 7, 5 } + +#define AMUX_1_COL_CHANNELS \ + { 1, 0, 3, 2, 4, 6, 7 } + +#define AMUX_2_COL_CHANNELS \ + { 4, 6, 7, 5 } + +#define AMUX_COL_CHANNELS AMUX_0_COL_CHANNELS, AMUX_1_COL_CHANNELS, AMUX_2_COL_CHANNELS + +#define DISCHARGE_PIN A6 +#define ANALOG_PORT A7 + +#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 100 +#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 249 + +// Indicators +// 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 + +#define NUM_INDICATOR_INDEX 0 +#define CAPS_INDICATOR_INDEX 1 +#define SCROLL_INDICATOR_INDEX 2 + +#define RGB_MATRIX_DEFAULT_VAL 60 +#define RGB_MATRIX_SLEEP +#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR diff --git a/keyboards/cipulot/ec_980c/ec_980c.c b/keyboards/cipulot/ec_980c/ec_980c.c new file mode 100644 index 00000000000..2b40d5a5e69 --- /dev/null +++ b/keyboards/cipulot/ec_980c/ec_980c.c @@ -0,0 +1,116 @@ +/* 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 . + */ + +#include "ec_switch_matrix.h" +#include "quantum.h" + +void eeconfig_init_kb(void) { + // Default values + eeprom_ec_config.num.h = 0; + eeprom_ec_config.num.s = 0; + eeprom_ec_config.num.v = 60; + eeprom_ec_config.num.enabled = true; + eeprom_ec_config.caps.h = 0; + eeprom_ec_config.caps.s = 0; + eeprom_ec_config.caps.v = 60; + eeprom_ec_config.caps.enabled = true; + eeprom_ec_config.scroll.h = 0; + eeprom_ec_config.scroll.s = 0; + eeprom_ec_config.scroll.v = 60; + eeprom_ec_config.scroll.enabled = true; + eeprom_ec_config.actuation_mode = DEFAULT_ACTUATION_MODE; + eeprom_ec_config.mode_0_actuation_threshold = DEFAULT_MODE_0_ACTUATION_LEVEL; + eeprom_ec_config.mode_0_release_threshold = DEFAULT_MODE_0_RELEASE_LEVEL; + eeprom_ec_config.mode_1_initial_deadzone_offset = DEFAULT_MODE_1_INITIAL_DEADZONE_OFFSET; + eeprom_ec_config.mode_1_actuation_offset = DEFAULT_MODE_1_ACTUATION_OFFSET; + eeprom_ec_config.mode_1_release_offset = DEFAULT_MODE_1_RELEASE_OFFSET; + + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + for (uint8_t col = 0; col < MATRIX_COLS; col++) { + eeprom_ec_config.bottoming_reading[row][col] = DEFAULT_BOTTOMING_READING; + } + } + // Write default value to EEPROM now + eeconfig_update_kb_datablock(&eeprom_ec_config); + + eeconfig_init_user(); +} + +// On Keyboard startup +void keyboard_post_init_kb(void) { + // Read custom menu variables from memory + eeconfig_read_kb_datablock(&eeprom_ec_config); + + // Set runtime values to EEPROM values + ec_config.actuation_mode = eeprom_ec_config.actuation_mode; + ec_config.mode_0_actuation_threshold = eeprom_ec_config.mode_0_actuation_threshold; + ec_config.mode_0_release_threshold = eeprom_ec_config.mode_0_release_threshold; + ec_config.mode_1_initial_deadzone_offset = eeprom_ec_config.mode_1_initial_deadzone_offset; + ec_config.mode_1_actuation_offset = eeprom_ec_config.mode_1_actuation_offset; + ec_config.mode_1_release_offset = eeprom_ec_config.mode_1_release_offset; + ec_config.bottoming_calibration = false; + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + for (uint8_t col = 0; col < MATRIX_COLS; col++) { + ec_config.bottoming_calibration_starter[row][col] = true; + ec_config.bottoming_reading[row][col] = eeprom_ec_config.bottoming_reading[row][col]; + 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]); + } + } + + // Call the indicator callback to set the indicator color + rgb_matrix_indicators_kb(); + + keyboard_post_init_user(); +} + +// INDICATOR CALLBACK ------------------------------------------------------------------------------ +/* LED index to physical position + * + * LED0 | LED1 | LED2 + * -----+------+-------- + * Num | Caps | Scroll | + */ +bool rgb_matrix_indicators_kb(void) { + if (eeprom_ec_config.num.enabled) { + // The rgb_matrix_set_color function needs an RGB code to work, so first the indicator color is cast to an HSV value and then translated to RGB + HSV hsv_num_indicator_color = {eeprom_ec_config.num.h, eeprom_ec_config.num.s, eeprom_ec_config.num.v}; + RGB rgb_num_indicator_color = hsv_to_rgb(hsv_num_indicator_color); + if (host_keyboard_led_state().num_lock) + rgb_matrix_set_color(NUM_INDICATOR_INDEX, rgb_num_indicator_color.r, rgb_num_indicator_color.g, rgb_num_indicator_color.b); + else + rgb_matrix_set_color(NUM_INDICATOR_INDEX, 0, 0, 0); + } + if (eeprom_ec_config.caps.enabled) { + HSV hsv_caps_indicator_color = {eeprom_ec_config.caps.h, eeprom_ec_config.caps.s, eeprom_ec_config.caps.v}; + RGB rgb_caps_indicator_color = hsv_to_rgb(hsv_caps_indicator_color); + if (host_keyboard_led_state().caps_lock) + rgb_matrix_set_color(CAPS_INDICATOR_INDEX, rgb_caps_indicator_color.r, rgb_caps_indicator_color.g, rgb_caps_indicator_color.b); + else + rgb_matrix_set_color(CAPS_INDICATOR_INDEX, 0, 0, 0); + } + if (eeprom_ec_config.scroll.enabled) { + HSV hsv_scroll_indicator_color = {eeprom_ec_config.scroll.h, eeprom_ec_config.scroll.s, eeprom_ec_config.scroll.v}; + RGB rgb_scroll_indicator_color = hsv_to_rgb(hsv_scroll_indicator_color); + if (host_keyboard_led_state().scroll_lock) + rgb_matrix_set_color(SCROLL_INDICATOR_INDEX, rgb_scroll_indicator_color.r, rgb_scroll_indicator_color.g, rgb_scroll_indicator_color.b); + else + rgb_matrix_set_color(SCROLL_INDICATOR_INDEX, 0, 0, 0); + } + + return true; +} diff --git a/keyboards/cipulot/ec_980c/ec_switch_matrix.c b/keyboards/cipulot/ec_980c/ec_switch_matrix.c new file mode 100644 index 00000000000..33123bd236e --- /dev/null +++ b/keyboards/cipulot/ec_980c/ec_switch_matrix.c @@ -0,0 +1,318 @@ +/* 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 . + */ + +#include "ec_switch_matrix.h" +#include "analog.h" +#include "atomic_util.h" +#include "math.h" +#include "print.h" +#include "wait.h" + +#if defined(__AVR__) +# error "AVR platforms not supported due to a variety of reasons. Among them there are limited memory, limited number of pins and ADC not being able to give satisfactory results." +#endif + +#define OPEN_DRAIN_SUPPORT defined(PAL_MODE_OUTPUT_OPENDRAIN) + +eeprom_ec_config_t eeprom_ec_config; +ec_config_t ec_config; + +// Pin and port array +const pin_t row_pins[] = MATRIX_ROW_PINS; +const pin_t amux_sel_pins[] = AMUX_SEL_PINS; +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}; + +#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 +_Static_assert(AMUX_SEL_PINS_COUNT == EXPECTED_AMUX_SEL_PINS_COUNT), "AMUX_SEL_PINS doesn't have the minimum number of bits required address all the channels"); +// Check that number of elements in AMUX_COL_CHANNELS_SIZES is enough to specify the number of channels for all the multiplexers available +_Static_assert(ARRAY_SIZE(amux_n_col_sizes) == AMUX_COUNT, "AMUX_COL_CHANNELS_SIZES doesn't have the minimum number of elements required to specify the number of channels for all the multiplexers available"); + +static uint16_t sw_value[MATRIX_ROWS][MATRIX_COLS]; + +static adc_mux adcMux; + +// Initialize the row pins +void init_row(void) { + // Set all row pins as output and low + for (uint8_t idx = 0; idx < MATRIX_ROWS; idx++) { + gpio_set_pin_output(row_pins[idx]); + gpio_write_pin_low(row_pins[idx]); + } +} + +// Initialize the multiplexers +void init_amux(void) { + for (uint8_t idx = 0; idx < AMUX_COUNT; idx++) { + gpio_set_pin_output(amux_en_pins[idx]); + gpio_write_pin_low(amux_en_pins[idx]); + } + for (uint8_t idx = 0; idx < AMUX_SEL_PINS_COUNT; idx++) { + gpio_set_pin_output(amux_sel_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 + uint8_t ch = amux_n_col_channels[channel][col]; + // momentarily disable specified multiplexer + gpio_write_pin_high(amux_en_pins[channel]); + // Select the multiplexer channel + for (uint8_t i = 0; i < AMUX_SEL_PINS_COUNT; i++) { + gpio_write_pin(amux_sel_pins[i], ch & (1 << i)); + } + // re enable specified multiplexer + gpio_write_pin_low(amux_en_pins[channel]); +} + +// Disable all the unused multiplexers +void disable_unused_amux(uint8_t channel) { + // disable all the other multiplexers apart from the current selected one + for (uint8_t idx = 0; idx < AMUX_COUNT; idx++) { + if (idx != channel) { + gpio_write_pin_high(amux_en_pins[idx]); + } + } +} +// Discharge the peak hold capacitor +void discharge_capacitor(void) { +#ifdef OPEN_DRAIN_SUPPORT + gpio_write_pin_low(DISCHARGE_PIN); +#else + gpio_write_pin_low(DISCHARGE_PIN); + gpio_set_pin_output(DISCHARGE_PIN); +#endif +} + +// Charge the peak hold capacitor +void charge_capacitor(uint8_t row) { +#ifdef OPEN_DRAIN_SUPPORT + gpio_write_pin_high(DISCHARGE_PIN); +#else + gpio_set_pin_input(DISCHARGE_PIN); +#endif + gpio_write_pin_high(row_pins[row]); +} + +// Initialize the peripherals pins +int ec_init(void) { + // Initialize ADC + palSetLineMode(ANALOG_PORT, PAL_MODE_INPUT_ANALOG); + adcMux = pinToMux(ANALOG_PORT); + + // Dummy call to make sure that adcStart() has been called in the appropriate state + adc_read(adcMux); + + // Initialize discharge pin as discharge mode + gpio_write_pin_low(DISCHARGE_PIN); +#ifdef OPEN_DRAIN_SUPPORT + gpio_set_pin_output_open_drain(DISCHARGE_PIN); +#else + gpio_set_pin_output(DISCHARGE_PIN); +#endif + + // Initialize drive lines + init_row(); + + // Initialize AMUXs + init_amux(); + + return 0; +} + +// Get the noise floor +void ec_noise_floor(void) { + // Initialize the noise floor + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + for (uint8_t col = 0; col < MATRIX_COLS; col++) { + ec_config.noise_floor[row][col] = 0; + } + } + + // Sample the noise floor + for (uint8_t i = 0; i < DEFAULT_NOISE_FLOOR_SAMPLING_COUNT; i++) { + 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++) { + ec_config.noise_floor[row][adjusted_col] += ec_readkey_raw(amux, row, col); + } + } + } + wait_ms(5); + } + + // Average the noise floor + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + for (uint8_t col = 0; col < MATRIX_COLS; col++) { + ec_config.noise_floor[row][col] /= DEFAULT_NOISE_FLOOR_SAMPLING_COUNT; + } + } +} + +// Scan key values and update matrix state +bool ec_matrix_scan(matrix_row_t current_matrix[]) { + bool updated = false; + + 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++) { + 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; + sw_value[row][adjusted_col] = ec_readkey_raw(amux, row, col); + + if (ec_config.bottoming_calibration) { + if (ec_config.bottoming_calibration_starter[row][adjusted_col]) { + ec_config.bottoming_reading[row][adjusted_col] = sw_value[row][adjusted_col]; + ec_config.bottoming_calibration_starter[row][adjusted_col] = false; + } else if (sw_value[row][adjusted_col] > ec_config.bottoming_reading[row][adjusted_col]) { + ec_config.bottoming_reading[row][adjusted_col] = sw_value[row][adjusted_col]; + } + } else { + updated |= ec_update_key(¤t_matrix[row], row, adjusted_col, sw_value[row][adjusted_col]); + } + } + } + } + + return ec_config.bottoming_calibration ? false : updated; +} + +// Read the capacitive sensor value +uint16_t ec_readkey_raw(uint8_t channel, uint8_t row, uint8_t col) { + uint16_t sw_value = 0; + + // Select the multiplexer + select_amux_channel(channel, col); + + // Set the row pin to low state to avoid ghosting + gpio_write_pin_low(row_pins[row]); + + ATOMIC_BLOCK_FORCEON { + // Set the row pin to high state and have capacitor charge + charge_capacitor(row); + // Read the ADC value + sw_value = adc_read(adcMux); + } + // Discharge peak hold capacitor + discharge_capacitor(); + // Waiting for the ghost capacitor to discharge fully + wait_us(DISCHARGE_TIME); + + return sw_value; +} + +// 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 current_state = (*current_row >> col) & 1; + + // Real Time Noise Floor Calibration + if (sw_value < (ec_config.noise_floor[row][col] - NOISE_FLOOR_THRESHOLD)) { + uprintf("Noise Floor Change: %d, %d, %d\n", row, col, sw_value); + ec_config.noise_floor[row][col] = sw_value; + 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]); + } + + // Normal board-wide APC + if (ec_config.actuation_mode == 0) { + if (current_state && sw_value < ec_config.rescaled_mode_0_release_threshold[row][col]) { + *current_row &= ~(1 << col); + uprintf("Key released: %d, %d, %d\n", row, col, sw_value); + return true; + } + if ((!current_state) && sw_value > ec_config.rescaled_mode_0_actuation_threshold[row][col]) { + *current_row |= (1 << col); + uprintf("Key pressed: %d, %d, %d\n", row, col, sw_value); + return true; + } + } + // Rapid Trigger + else if (ec_config.actuation_mode == 1) { + // Is key in active zone? + if (sw_value > ec_config.rescaled_mode_1_initial_deadzone_offset[row][col]) { + // Is key pressed while in active zone? + if (current_state) { + // Is the key still moving down? + if (sw_value > ec_config.extremum[row][col]) { + ec_config.extremum[row][col] = sw_value; + 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) { + ec_config.extremum[row][col] = sw_value; + *current_row &= ~(1 << col); + uprintf("Key released: %d, %d, %d\n", row, col, sw_value); + return true; + } + } + // Key is not pressed while in active zone + else { + // Is the key still moving up? + if (sw_value < ec_config.extremum[row][col]) { + 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) { + ec_config.extremum[row][col] = sw_value; + *current_row |= (1 << col); + uprintf("Key pressed: %d, %d, %d\n", row, col, sw_value); + return true; + } + } + } + // Key is not in active zone + else { + // Check to avoid key being stuck in pressed state near the active zone threshold + if (sw_value < ec_config.extremum[row][col]) { + ec_config.extremum[row][col] = sw_value; + *current_row &= ~(1 << col); + return true; + } + } + } + return false; +} + +// Print the matrix values +void ec_print_matrix(void) { + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + for (uint8_t col = 0; col < MATRIX_COLS - 1; col++) { + uprintf("%4d,", sw_value[row][col]); + } + uprintf("%4d\n", sw_value[row][MATRIX_COLS - 1]); + } + print("\n"); +} + +// 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 new file mode 100644 index 00000000000..8a75b5de5fb --- /dev/null +++ b/keyboards/cipulot/ec_980c/ec_switch_matrix.h @@ -0,0 +1,83 @@ +/* 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 +#include +#include "matrix.h" +#include "eeconfig.h" +#include "util.h" + +typedef struct _indicator_config_t { + uint8_t h; + uint8_t s; + uint8_t v; + bool enabled; +} indicator_config; + +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 +} eeprom_ec_config_t; + +typedef struct { + uint8_t actuation_mode; // 0: normal board-wide APC, 1: Rapid trigger from specific board-wide actuation point (it can be very near that baseline noise and be "full travel") + 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) + 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) + 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) + bool bottoming_calibration_starter[MATRIX_ROWS][MATRIX_COLS]; // calibration mode for bottoming out values (true: calibration mode, false: normal mode) + uint16_t bottoming_reading[MATRIX_ROWS][MATRIX_COLS]; // bottoming reading +} ec_config_t; + +// Check if the size of the reserved persistent memory is the same as the size of struct eeprom_ec_config_t +_Static_assert(sizeof(eeprom_ec_config_t) == EECONFIG_KB_DATA_SIZE, "Mismatch in keyboard EECONFIG stored data"); + +extern eeprom_ec_config_t eeprom_ec_config; + +extern ec_config_t ec_config; + +void init_row(void); +void init_amux(void); +void select_amux_channel(uint8_t channel, uint8_t col); +void disable_unused_amux(uint8_t channel); +void discharge_capacitor(void); +void charge_capacitor(uint8_t row); + +int ec_init(void); +void ec_noise_floor(void); +bool ec_matrix_scan(matrix_row_t current_matrix[]); +uint16_t ec_readkey_raw(uint8_t channel, uint8_t row, uint8_t col); +bool ec_update_key(matrix_row_t* current_row, uint8_t row, uint8_t col, uint16_t sw_value); +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); diff --git a/keyboards/cipulot/ec_980c/halconf.h b/keyboards/cipulot/ec_980c/halconf.h new file mode 100644 index 00000000000..24de0954858 --- /dev/null +++ b/keyboards/cipulot/ec_980c/halconf.h @@ -0,0 +1,23 @@ +/* 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 + +#define HAL_USE_ADC TRUE +#define HAL_USE_PWM TRUE +#define HAL_USE_PAL TRUE + +#include_next diff --git a/keyboards/cipulot/ec_980c/info.json b/keyboards/cipulot/ec_980c/info.json new file mode 100644 index 00000000000..6d3cb22719c --- /dev/null +++ b/keyboards/cipulot/ec_980c/info.json @@ -0,0 +1,170 @@ +{ + "manufacturer": "Cipulot", + "keyboard_name": "EC 980C", + "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, + "rgb_matrix": true + }, + "processor": "STM32F411", + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "rgb_matrix": { + "animations": { + "breathing": true, + "cycle_left_right": true, + "solid_color": true + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 15], "x": 16.25, "y": 1, "flags": 4}, + {"matrix": [0, 16], "x": 17.25, "y": 1, "flags": 4}, + {"matrix": [0, 17], "x": 18.25, "y": 1, "flags": 4} + ], + "led_count": 3, + "max_brightness": 255 + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x6BBE", + "shared_endpoint": { + "keyboard": true + }, + "vid": "0x6369" + }, + "ws2812": { + "driver": "pwm", + "pin": "B15" + }, + "layouts": { + "LAYOUT": { + "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, 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.5, "y": 0}, + {"matrix": [0, 16], "x": 16.5, "y": 0}, + {"matrix": [0, 17], "x": 17.5, "y": 0}, + {"matrix": [0, 18], "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": [1, 14], "x": 14, "y": 1.5}, + {"matrix": [1, 15], "x": 15.5, "y": 1.5}, + {"matrix": [1, 16], "x": 16.5, "y": 1.5}, + {"matrix": [1, 17], "x": 17.5, "y": 1.5}, + {"matrix": [1, 18], "x": 18.5, "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": 0.75}, + {"matrix": [2, 14], "x": 14.25, "y": 2.5, "w": 0.75}, + {"matrix": [2, 15], "x": 15.5, "y": 2.5}, + {"matrix": [2, 16], "x": 16.5, "y": 2.5}, + {"matrix": [2, 17], "x": 17.5, "y": 2.5}, + {"matrix": [2, 18], "x": 18.5, "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}, + {"matrix": [3, 13], "x": 13.75, "y": 3.5, "w": 1.25}, + {"matrix": [3, 15], "x": 15.5, "y": 3.5}, + {"matrix": [3, 16], "x": 16.5, "y": 3.5}, + {"matrix": [3, 17], "x": 17.5, "y": 3.5}, + {"matrix": [3, 18], "x": 18.5, "y": 3.5}, + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"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}, + {"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, 14], "x": 14.25, "y": 4.75}, + {"matrix": [4, 15], "x": 15.5, "y": 4.5}, + {"matrix": [4, 16], "x": 16.5, "y": 4.5}, + {"matrix": [4, 17], "x": 17.5, "y": 4.5}, + {"matrix": [4, 18], "x": 18.5, "y": 4.5}, + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.5}, + {"matrix": [5, 2], "x": 2.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 3], "x": 3.5, "y": 5.5}, + {"matrix": [5, 5], "x": 4.5, "y": 5.5, "w": 2.5}, + {"matrix": [5, 6], "x": 7, "y": 5.5, "w": 1.25}, + {"matrix": [5, 8], "x": 8.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 9], "x": 9.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 10], "x": 10.75, "y": 5.5}, + {"matrix": [5, 11], "x": 11.75, "y": 5.5, "w": 1.25}, + {"matrix": [5, 13], "x": 13.25, "y": 5.75}, + {"matrix": [5, 14], "x": 14.25, "y": 5.75}, + {"matrix": [5, 15], "x": 15.25, "y": 5.75}, + {"matrix": [5, 16], "x": 16.5, "y": 5.5}, + {"matrix": [5, 17], "x": 17.5, "y": 5.5}, + {"matrix": [5, 18], "x": 18.5, "y": 5.5} + ] + } + } +} diff --git a/keyboards/cipulot/ec_980c/keymaps/default/keymap.c b/keyboards/cipulot/ec_980c/keymaps/default/keymap.c new file mode 100644 index 00000000000..c60db783528 --- /dev/null +++ b/keyboards/cipulot/ec_980c/keymaps/default/keymap.c @@ -0,0 +1,48 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +#include "keymap_japanese.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [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_DEL, KC_INS, 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, JP_YEN, 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_ENT, 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_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_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, _______, KC_SPC, KC_SPC, _______, KC_RALT, KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_PDOT, KC_PENT + ), + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUSE, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + // clang-format on +}; diff --git a/keyboards/cipulot/ec_980c/keymaps/via/keymap.c b/keyboards/cipulot/ec_980c/keymaps/via/keymap.c new file mode 100644 index 00000000000..c60db783528 --- /dev/null +++ b/keyboards/cipulot/ec_980c/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* 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 . + */ + +#include QMK_KEYBOARD_H + +#include "keymap_japanese.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [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_DEL, KC_INS, 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, JP_YEN, 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_ENT, 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_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_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, _______, KC_SPC, KC_SPC, _______, KC_RALT, KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_PDOT, KC_PENT + ), + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUSE, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + // clang-format on +}; diff --git a/keyboards/cipulot/ec_980c/keymaps/via/rules.mk b/keyboards/cipulot/ec_980c/keymaps/via/rules.mk new file mode 100644 index 00000000000..b870b6349c0 --- /dev/null +++ b/keyboards/cipulot/ec_980c/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes + +SRC += via_ec_indicators.c diff --git a/keyboards/cipulot/ec_980c/keymaps/via/via_ec_indicators.c b/keyboards/cipulot/ec_980c/keymaps/via/via_ec_indicators.c new file mode 100644 index 00000000000..f885e794357 --- /dev/null +++ b/keyboards/cipulot/ec_980c/keymaps/via/via_ec_indicators.c @@ -0,0 +1,499 @@ +/* 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 . + */ + +#include "keyboards/cipulot/common/eeprom_tools.h" +#include "ec_switch_matrix.h" +#include "action.h" +#include "print.h" +#include "via.h" + +#ifdef VIA_ENABLE + +void ec_rescale_values(uint8_t item); +void ec_save_threshold_data(uint8_t option); +void ec_save_bottoming_reading(void); +void ec_show_calibration_data(void); +void ec_clear_bottoming_calibration_data(void); + +// Declaring enums for VIA config menu +enum via_enums { + // clang-format off + id_num_indicator_enabled = 1, + id_num_indicator_brightness = 2, + id_num_indicator_color = 3, + id_caps_indicator_enabled = 4, + id_caps_indicator_brightness = 5, + id_caps_indicator_color = 6, + id_scroll_indicator_enabled = 7, + id_scroll_indicator_brightness = 8, + id_scroll_indicator_color = 9, + id_actuation_mode = 10, + id_mode_0_actuation_threshold = 11, + id_mode_0_release_threshold = 12, + id_save_threshold_data = 13, + id_mode_1_initial_deadzone_offset = 14, + id_mode_1_actuation_offset = 15, + id_mode_1_release_offset = 16, + id_bottoming_calibration = 17, + id_noise_floor_calibration = 18, + id_show_calibration_data = 19, + id_clear_bottoming_calibration_data = 20 + // clang-format on +}; + +// Handle the data received by the keyboard from the VIA menus +void via_config_set_value(uint8_t *data) { + // data = [ value_id, value_data ] + uint8_t *value_id = &(data[0]); + uint8_t *value_data = &(data[1]); + + switch (*value_id) { + case id_num_indicator_enabled: { + if (value_data[0] == 1) { + eeprom_ec_config.num.enabled = true; + uprintf("#########################\n"); + uprintf("# Num indicator enabled #\n"); + uprintf("#########################\n"); + } else { + eeprom_ec_config.num.enabled = false; + uprintf("##########################\n"); + uprintf("# Num indicator disabled #\n"); + uprintf("##########################\n"); + } + EEPROM_KB_PARTIAL_UPDATE(eeprom_ec_config, num.enabled); + break; + } + case id_num_indicator_brightness: { + eeprom_ec_config.num.v = value_data[0]; + uprintf("Num indicator brightness: %d\n", eeprom_ec_config.num.v); + EEPROM_KB_PARTIAL_UPDATE(eeprom_ec_config, num.v); + break; + } + case id_num_indicator_color: { + eeprom_ec_config.num.h = value_data[0]; + eeprom_ec_config.num.s = value_data[1]; + uprintf("Num indicator color: %d, %d\n", eeprom_ec_config.num.h, eeprom_ec_config.num.s); + EEPROM_KB_PARTIAL_UPDATE(eeprom_ec_config, num.h); + EEPROM_KB_PARTIAL_UPDATE(eeprom_ec_config, num.s); + break; + } + case id_caps_indicator_enabled: { + if (value_data[0] == 1) { + eeprom_ec_config.caps.enabled = true; + uprintf("##########################\n"); + uprintf("# Caps indicator enabled #\n"); + uprintf("##########################\n"); + } else { + eeprom_ec_config.caps.enabled = false; + uprintf("###########################\n"); + uprintf("# Caps indicator disabled #\n"); + uprintf("###########################\n"); + } + EEPROM_KB_PARTIAL_UPDATE(eeprom_ec_config, caps.enabled); + break; + } + case id_caps_indicator_brightness: { + eeprom_ec_config.caps.v = value_data[0]; + uprintf("Caps indicator brightness: %d\n", eeprom_ec_config.caps.v); + EEPROM_KB_PARTIAL_UPDATE(eeprom_ec_config, caps.v); + break; + } + case id_caps_indicator_color: { + eeprom_ec_config.caps.h = value_data[0]; + eeprom_ec_config.caps.s = value_data[1]; + uprintf("Caps indicator color: %d, %d\n", eeprom_ec_config.caps.h, eeprom_ec_config.caps.s); + EEPROM_KB_PARTIAL_UPDATE(eeprom_ec_config, caps.h); + EEPROM_KB_PARTIAL_UPDATE(eeprom_ec_config, caps.s); + break; + } + case id_scroll_indicator_enabled: { + if (value_data[0] == 1) { + eeprom_ec_config.scroll.enabled = true; + uprintf("############################\n"); + uprintf("# Scroll indicator enabled #\n"); + uprintf("############################\n"); + } else { + eeprom_ec_config.scroll.enabled = false; + uprintf("#############################\n"); + uprintf("# Scroll indicator disabled #\n"); + uprintf("#############################\n"); + } + EEPROM_KB_PARTIAL_UPDATE(eeprom_ec_config, scroll.enabled); + break; + } + case id_scroll_indicator_brightness: { + eeprom_ec_config.scroll.v = value_data[0]; + uprintf("Scroll indicator brightness: %d\n", eeprom_ec_config.scroll.v); + EEPROM_KB_PARTIAL_UPDATE(eeprom_ec_config, scroll.v); + break; + } + case id_scroll_indicator_color: { + eeprom_ec_config.scroll.h = value_data[0]; + eeprom_ec_config.scroll.s = value_data[1]; + uprintf("Scroll indicator color: %d, %d\n", eeprom_ec_config.scroll.h, eeprom_ec_config.scroll.s); + EEPROM_KB_PARTIAL_UPDATE(eeprom_ec_config, scroll.h); + EEPROM_KB_PARTIAL_UPDATE(eeprom_ec_config, scroll.s); + break; + } + case id_actuation_mode: { + eeprom_ec_config.actuation_mode = value_data[0]; + ec_config.actuation_mode = eeprom_ec_config.actuation_mode; + if (ec_config.actuation_mode == 0) { + uprintf("#########################\n"); + uprintf("# Actuation Mode: APC #\n"); + uprintf("#########################\n"); + } else if (ec_config.actuation_mode == 1) { + uprintf("#################################\n"); + uprintf("# Actuation Mode: Rapid Trigger #\n"); + uprintf("#################################\n"); + } + EEPROM_KB_PARTIAL_UPDATE(eeprom_ec_config, actuation_mode); + break; + } + case id_mode_0_actuation_threshold: { + ec_config.mode_0_actuation_threshold = value_data[1] | (value_data[0] << 8); + uprintf("APC Mode Actuation Threshold: %d\n", ec_config.mode_0_actuation_threshold); + break; + } + case id_mode_0_release_threshold: { + ec_config.mode_0_release_threshold = value_data[1] | (value_data[0] << 8); + uprintf("APC Mode Release Threshold: %d\n", ec_config.mode_0_release_threshold); + break; + } + case id_mode_1_initial_deadzone_offset: { + ec_config.mode_1_initial_deadzone_offset = value_data[1] | (value_data[0] << 8); + uprintf("Rapid Trigger Mode Initial Deadzone Offset: %d\n", ec_config.mode_1_initial_deadzone_offset); + break; + } + case id_mode_1_actuation_offset: { + ec_config.mode_1_actuation_offset = value_data[0]; + uprintf("Rapid Trigger Mode Actuation Offset: %d\n", ec_config.mode_1_actuation_offset); + break; + } + case id_mode_1_release_offset: { + ec_config.mode_1_release_offset = value_data[0]; + uprintf("Rapid Trigger Mode Release Offset: %d\n", ec_config.mode_1_release_offset); + break; + } + case id_bottoming_calibration: { + if (value_data[0] == 1) { + ec_config.bottoming_calibration = true; + uprintf("##############################\n"); + uprintf("# Bottoming calibration mode #\n"); + uprintf("##############################\n"); + } else { + ec_config.bottoming_calibration = false; + ec_save_bottoming_reading(); + uprintf("## Bottoming calibration done ##\n"); + ec_show_calibration_data(); + } + break; + } + case id_save_threshold_data: { + ec_save_threshold_data(value_data[0]); + break; + } + case id_noise_floor_calibration: { + if (value_data[0] == 0) { + ec_noise_floor(); + ec_rescale_values(0); + ec_rescale_values(1); + ec_rescale_values(2); + uprintf("#############################\n"); + uprintf("# Noise floor data acquired #\n"); + uprintf("#############################\n"); + break; + } + } + case id_show_calibration_data: { + if (value_data[0] == 0) { + ec_show_calibration_data(); + break; + } + } + case id_clear_bottoming_calibration_data: { + if (value_data[0] == 0) { + ec_clear_bottoming_calibration_data(); + } + } + default: { + // Unhandled value. + break; + } + } +} + +// Handle the data sent by the keyboard to the VIA menus +void via_config_get_value(uint8_t *data) { + // data = [ value_id, value_data ] + uint8_t *value_id = &(data[0]); + uint8_t *value_data = &(data[1]); + + switch (*value_id) { + case id_num_indicator_enabled: { + value_data[0] = eeprom_ec_config.num.enabled; + break; + } + case id_num_indicator_brightness: { + value_data[0] = eeprom_ec_config.num.v; + break; + } + case id_num_indicator_color: { + value_data[0] = eeprom_ec_config.num.h; + value_data[1] = eeprom_ec_config.num.s; + break; + } + case id_caps_indicator_enabled: { + value_data[0] = eeprom_ec_config.caps.enabled; + break; + } + case id_caps_indicator_brightness: { + value_data[0] = eeprom_ec_config.caps.v; + break; + } + case id_caps_indicator_color: { + value_data[0] = eeprom_ec_config.caps.h; + value_data[1] = eeprom_ec_config.caps.s; + break; + } + case id_scroll_indicator_enabled: { + value_data[0] = eeprom_ec_config.scroll.enabled; + break; + } + case id_scroll_indicator_brightness: { + value_data[0] = eeprom_ec_config.scroll.v; + break; + } + case id_scroll_indicator_color: { + value_data[0] = eeprom_ec_config.scroll.h; + value_data[1] = eeprom_ec_config.scroll.s; + break; + } + case id_actuation_mode: { + value_data[0] = eeprom_ec_config.actuation_mode; + break; + } + case id_mode_0_actuation_threshold: { + value_data[0] = eeprom_ec_config.mode_0_actuation_threshold >> 8; + value_data[1] = eeprom_ec_config.mode_0_actuation_threshold & 0xFF; + break; + } + case id_mode_0_release_threshold: { + value_data[0] = eeprom_ec_config.mode_0_release_threshold >> 8; + value_data[1] = eeprom_ec_config.mode_0_release_threshold & 0xFF; + break; + } + case id_mode_1_initial_deadzone_offset: { + value_data[0] = eeprom_ec_config.mode_1_initial_deadzone_offset >> 8; + value_data[1] = eeprom_ec_config.mode_1_initial_deadzone_offset & 0xFF; + break; + } + case id_mode_1_actuation_offset: { + value_data[0] = eeprom_ec_config.mode_1_actuation_offset; + break; + } + case id_mode_1_release_offset: { + value_data[0] = eeprom_ec_config.mode_1_release_offset; + break; + } + default: { + // Unhandled value. + break; + } + } +} + +// Handle the commands sent and received by the keyboard with VIA +void via_custom_value_command_kb(uint8_t *data, uint8_t length) { + // data = [ command_id, channel_id, value_id, value_data ] + uint8_t *command_id = &(data[0]); + uint8_t *channel_id = &(data[1]); + uint8_t *value_id_and_data = &(data[2]); + + if (*channel_id == id_custom_channel) { + switch (*command_id) { + case id_custom_set_value: { + via_config_set_value(value_id_and_data); + break; + } + case id_custom_get_value: { + via_config_get_value(value_id_and_data); + break; + } + case id_custom_save: { + // Bypass the save function in favor of pinpointed saves + break; + } + default: { + // Unhandled message. + *command_id = id_unhandled; + break; + } + } + return; + } + + *command_id = id_unhandled; +} + +// Rescale the values received by VIA to fit the new range +void ec_rescale_values(uint8_t item) { + switch (item) { + // Rescale the APC mode actuation thresholds + case 0: + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + for (uint8_t col = 0; col < MATRIX_COLS; col++) { + 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]); + } + } + break; + // Rescale the APC mode release thresholds + case 1: + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + for (uint8_t col = 0; col < MATRIX_COLS; 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]); + } + } + break; + // Rescale the Rapid Trigger mode initial deadzone offsets + case 2: + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + for (uint8_t col = 0; col < MATRIX_COLS; 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]); + } + } + break; + + default: + // Unhandled item. + break; + } +} + +void ec_save_threshold_data(uint8_t option) { + // Save APC mode thresholds and rescale them for runtime usage + if (option == 0) { + eeprom_ec_config.mode_0_actuation_threshold = ec_config.mode_0_actuation_threshold; + eeprom_ec_config.mode_0_release_threshold = ec_config.mode_0_release_threshold; + ec_rescale_values(0); + ec_rescale_values(1); + } + // 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; + ec_rescale_values(2); + } + eeconfig_update_kb_datablock(&eeprom_ec_config); + uprintf("####################################\n"); + uprintf("# New thresholds applied and saved #\n"); + uprintf("####################################\n"); +} + +// Save the bottoming reading +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)) { + eeprom_ec_config.bottoming_reading[row][col] = 1023; + } else { + eeprom_ec_config.bottoming_reading[row][col] = ec_config.bottoming_reading[row][col]; + } + } + } + // Rescale the values to fit the new range for runtime usage + ec_rescale_values(0); + ec_rescale_values(1); + ec_rescale_values(2); + eeconfig_update_kb_datablock(&eeprom_ec_config); +} + +// Show the calibration data +void ec_show_calibration_data(void) { + uprintf("\n###############\n"); + uprintf("# Noise Floor #\n"); + uprintf("###############\n"); + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + for (uint8_t col = 0; col < MATRIX_COLS - 1; col++) { + uprintf("%4d,", ec_config.noise_floor[row][col]); + } + uprintf("%4d\n", ec_config.noise_floor[row][MATRIX_COLS - 1]); + } + + uprintf("\n######################\n"); + uprintf("# Bottoming Readings #\n"); + uprintf("######################\n"); + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + for (uint8_t col = 0; col < MATRIX_COLS - 1; col++) { + uprintf("%4d,", eeprom_ec_config.bottoming_reading[row][col]); + } + uprintf("%4d\n", eeprom_ec_config.bottoming_reading[row][MATRIX_COLS - 1]); + } + + uprintf("\n######################################\n"); + uprintf("# Rescaled APC Mode Actuation Points #\n"); + uprintf("######################################\n"); + uprintf("Original APC Mode Actuation Point: %4d\n", ec_config.mode_0_actuation_threshold); + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + for (uint8_t col = 0; col < MATRIX_COLS - 1; col++) { + uprintf("%4d,", ec_config.rescaled_mode_0_actuation_threshold[row][col]); + } + uprintf("%4d\n", ec_config.rescaled_mode_0_actuation_threshold[row][MATRIX_COLS - 1]); + } + + uprintf("\n######################################\n"); + uprintf("# Rescaled APC Mode Release Points #\n"); + uprintf("######################################\n"); + uprintf("Original APC Mode Release Point: %4d\n", ec_config.mode_0_release_threshold); + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + for (uint8_t col = 0; col < MATRIX_COLS - 1; col++) { + uprintf("%4d,", ec_config.rescaled_mode_0_release_threshold[row][col]); + } + uprintf("%4d\n", ec_config.rescaled_mode_0_release_threshold[row][MATRIX_COLS - 1]); + } + + uprintf("\n#######################################################\n"); + uprintf("# Rescaled Rapid Trigger Mode Initial Deadzone Offset #\n"); + uprintf("#######################################################\n"); + uprintf("Original Rapid Trigger Mode Initial Deadzone Offset: %4d\n", ec_config.mode_1_initial_deadzone_offset); + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + for (uint8_t col = 0; col < MATRIX_COLS - 1; col++) { + uprintf("%4d,", ec_config.rescaled_mode_1_initial_deadzone_offset[row][col]); + } + uprintf("%4d\n", ec_config.rescaled_mode_1_initial_deadzone_offset[row][MATRIX_COLS - 1]); + } + print("\n"); +} + +// Clear the calibration data +void ec_clear_bottoming_calibration_data(void) { + // Clear the EEPROM data + eeconfig_init_kb(); + + // Reset the runtime values to the EEPROM values + keyboard_post_init_kb(); + + uprintf("######################################\n"); + uprintf("# Bottoming calibration data cleared #\n"); + uprintf("######################################\n"); +} + +#endif // VIA_ENABLE diff --git a/keyboards/cipulot/ec_980c/matrix.c b/keyboards/cipulot/ec_980c/matrix.c new file mode 100644 index 00000000000..cfa2efe0506 --- /dev/null +++ b/keyboards/cipulot/ec_980c/matrix.c @@ -0,0 +1,42 @@ +/* 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 . + */ + +#include "ec_switch_matrix.h" +#include "matrix.h" + +extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values +extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values + +// Custom matrix init function +void matrix_init_custom(void) { + // Initialize EC + ec_init(); + + // Get the noise floor at boot + ec_noise_floor(); +} + +// Custom matrix scan function +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + bool updated = ec_matrix_scan(current_matrix); + + return updated; +} + +// Bootmagic overriden to avoid conflicts with EC +void bootmagic_scan(void) { + ; +} diff --git a/keyboards/cipulot/ec_980c/mcuconf.h b/keyboards/cipulot/ec_980c/mcuconf.h new file mode 100644 index 00000000000..5f9ecca48dd --- /dev/null +++ b/keyboards/cipulot/ec_980c/mcuconf.h @@ -0,0 +1,28 @@ +/* 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_next + +#undef STM32_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE + +#undef STM32_PWM_USE_ADVANCED +#define STM32_PWM_USE_ADVANCED TRUE + +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/cipulot/ec_980c/readme.md b/keyboards/cipulot/ec_980c/readme.md new file mode 100644 index 00000000000..20be2d4928b --- /dev/null +++ b/keyboards/cipulot/ec_980c/readme.md @@ -0,0 +1,26 @@ +# EC980C + +![EC980C PCB](https://i.imgur.com/KcnLdVFh.png) + +Replacement PCB for the Leopold FC980C. + +* Keyboard Maintainer: [cipulot](https://github.com/cipulot) +* Hardware Supported: EC980C PCB +* Hardware Availability: TBD + +Make example for this keyboard (after setting up your build environment): + + make cipulot/ec_980c:default + +Flashing example for this keyboard: + + make cipulot/ec_980c: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 pads on the top of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cipulot/ec_980c/rules.mk b/keyboards/cipulot/ec_980c/rules.mk new file mode 100644 index 00000000000..1ff311f102d --- /dev/null +++ b/keyboards/cipulot/ec_980c/rules.mk @@ -0,0 +1,4 @@ +CUSTOM_MATRIX = lite +ANALOG_DRIVER_REQUIRED = yes +SRC += matrix.c ec_switch_matrix.c +OPT = 2 From 54c1ae55bfb931a2b095aa97480cb49b3fccfd8f Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 1 May 2024 02:52:34 +0100 Subject: [PATCH 38/55] Align 'qmk lint' argument handling (#23297) --- lib/python/qmk/cli/lint.py | 35 +++++++++++++++-------------------- lib/python/qmk/keyboard.py | 2 ++ 2 files changed, 17 insertions(+), 20 deletions(-) diff --git a/lib/python/qmk/cli/lint.py b/lib/python/qmk/cli/lint.py index 7ebb0cf9c45..ba0c3f274cf 100644 --- a/lib/python/qmk/cli/lint.py +++ b/lib/python/qmk/cli/lint.py @@ -6,9 +6,9 @@ from milc import cli from qmk.decorators import automagic_keyboard, automagic_keymap from qmk.info import info_json -from qmk.keyboard import keyboard_completer, list_keyboards +from qmk.keyboard import keyboard_completer, keyboard_folder_or_all, is_all_keyboards, list_keyboards from qmk.keymap import locate_keymap, list_keymaps -from qmk.path import is_keyboard, keyboard +from qmk.path import keyboard from qmk.git import git_get_ignored_files from qmk.c_parse import c_source_files @@ -198,39 +198,34 @@ def keyboard_check(kb): @cli.argument('--strict', action='store_true', help='Treat warnings as errors') -@cli.argument('-kb', '--keyboard', completer=keyboard_completer, help='Comma separated list of keyboards to check') +@cli.argument('-kb', '--keyboard', action='append', type=keyboard_folder_or_all, completer=keyboard_completer, help='Keyboard to check. May be passed multiple times.') @cli.argument('-km', '--keymap', help='The keymap to check') -@cli.argument('--all-kb', action='store_true', arg_only=True, help='Check all keyboards') -@cli.argument('--all-km', action='store_true', arg_only=True, help='Check all keymaps') @cli.subcommand('Check keyboard and keymap for common mistakes.') @automagic_keyboard @automagic_keymap def lint(cli): """Check keyboard and keymap for common mistakes. """ - failed = [] - # Determine our keyboard list - if cli.args.all_kb: - if cli.args.keyboard: - cli.log.warning('Both --all-kb and --keyboard passed, --all-kb takes precedence.') - - keyboard_list = list_keyboards() - elif not cli.config.lint.keyboard: - cli.log.error('Missing required arguments: --keyboard or --all-kb') + if not cli.config.lint.keyboard: + cli.log.error('Missing required arguments: --keyboard') cli.print_help() return False + + 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]): + keyboard_list = list_keyboards() else: - keyboard_list = cli.config.lint.keyboard.split(',') + keyboard_list = cli.config.lint.keyboard + + failed = [] # Lint each keyboard for kb in keyboard_list: - if not is_keyboard(kb): - cli.log.error('No such keyboard: %s', kb) - continue - # Determine keymaps to also check - if cli.args.all_km: + if cli.args.keymap == 'all': keymaps = list_keymaps(kb) elif cli.config.lint.keymap: keymaps = {cli.config.lint.keymap} diff --git a/lib/python/qmk/keyboard.py b/lib/python/qmk/keyboard.py index 0fcc2e868d1..fcf5b5b1588 100644 --- a/lib/python/qmk/keyboard.py +++ b/lib/python/qmk/keyboard.py @@ -99,6 +99,8 @@ def find_keyboard_from_dir(): keymap_index = len(current_path.parts) - current_path.parts.index('keymaps') - 1 current_path = current_path.parents[keymap_index] + current_path = resolve_keyboard(current_path) + if qmk.path.is_keyboard(current_path): return str(current_path) From 94e9bb406b5537c093db34dc791ff86eaec6317b Mon Sep 17 00:00:00 2001 From: Simon <68034180+rarepotato8de@users.noreply.github.com> Date: Wed, 1 May 2024 08:31:23 +0200 Subject: [PATCH 39/55] [Keyboard] 3x3macropad (#23594) Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Duncan Sutherland --- .../rarepotato8de/3x3macropad/3x3macropad.c | 54 ++++++++++++++++ keyboards/rarepotato8de/3x3macropad/info.json | 63 +++++++++++++++++++ .../3x3macropad/keymaps/default/keymap.c | 25 ++++++++ keyboards/rarepotato8de/3x3macropad/readme.md | 28 +++++++++ keyboards/rarepotato8de/3x3macropad/rules.mk | 0 5 files changed, 170 insertions(+) create mode 100644 keyboards/rarepotato8de/3x3macropad/3x3macropad.c create mode 100644 keyboards/rarepotato8de/3x3macropad/info.json create mode 100644 keyboards/rarepotato8de/3x3macropad/keymaps/default/keymap.c create mode 100644 keyboards/rarepotato8de/3x3macropad/readme.md create mode 100644 keyboards/rarepotato8de/3x3macropad/rules.mk diff --git a/keyboards/rarepotato8de/3x3macropad/3x3macropad.c b/keyboards/rarepotato8de/3x3macropad/3x3macropad.c new file mode 100644 index 00000000000..ad7ad642158 --- /dev/null +++ b/keyboards/rarepotato8de/3x3macropad/3x3macropad.c @@ -0,0 +1,54 @@ +/* Copyright 2024 RarePotato8DE + * + * 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 OLED_ENABLE +static void render_bongo1(void) { + static const char PROGMEM data[] = {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, 0x80, 0xc0, 0xc0, 0x40, 0x60, 0x20, 0x30, 0x30, 0x18, 0x1c, 0x0e, 0x03, 0x01, 0x03, 0x07, 0x1c, 0x38, 0x30, 0x60, 0x60, 0x60, 0xc0, 0xc0, 0x80, 0x80, 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, 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, 0xe0, 0x30, 0x18, 0x18, 0x08, 0x18, 0x98, 0x30, 0x70, 0xf0, 0xb0, 0x18, 0x0c, 0x06, 0x07, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, 0x06, 0x06, 0x0c, 0x0c, 0x18, 0x18, 0x30, 0x60, 0x60, 0x60, 0xc0, 0x60, 0x60, 0x30, 0x30, 0x30, 0xf8, 0xf0, 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, 0x01, 0x02, 0x02, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x18, 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0xc0, 0x80, 0x80, 0xff, 0xff, 0xc0, 0x80, 0x80, 0x8e, 0x06, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x1e, 0x1e, 0x0e, 0x00, 0x10, 0x38, 0x70, 0x70, 0x70, 0x70, 0xe0, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf8, 0x3f, 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, 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, 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x06, 0x06, 0x06, 0x06, 0x0c, 0x0c, 0x0c, 0x1c, 0x18, 0x18, 0x18, 0x38, 0x30, 0x30, 0x30, 0x30, 0x60, 0x60, 0x60, 0x60, 0xe0, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x80, 0x00, 0x87, 0xc7, 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x3c, 0xf0, 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, 0x00}; + oled_write_raw_P(data, sizeof(data)); +} + +static void render_bongo2(void) { + static const char PROGMEM data[] = {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, 0x80, 0x80, 0xc0, 0x40, 0x60, 0x20, 0x20, 0x30, 0x10, 0x18, 0x0e, 0x07, 0x03, 0x01, 0x07, 0x0e, 0x1c, 0x30, 0x20, 0x60, 0x60, 0x40, 0xc0, 0xc0, 0x80, 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, 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, 0x80, 0xc0, 0x60, 0x70, 0x30, 0x18, 0x0c, 0x06, 0x06, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x06, 0x06, 0x06, 0x0c, 0x08, 0x18, 0x30, 0x30, 0x60, 0x60, 0xc0, 0x60, 0x60, 0x20, 0x30, 0x30, 0x18, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x18, 0x10, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0xc0, 0x80, 0x80, 0xc0, 0xe0, 0x38, 0x1c, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x1f, 0x0e, 0x04, 0x00, 0x38, 0x30, 0x70, 0x30, 0x70, 0xe0, 0xe0, 0xc0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0xc0, 0xe0, 0x60, 0x60, 0x70, 0x60, 0x60, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xfc, 0x0f, 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, 0x60, 0x60, 0x30, 0x90, 0x00, 0x1f, 0x31, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x20, 0x30, 0x30, 0x10, 0x18, 0x18, 0x08, 0x0c, 0x0c, 0x0c, 0x0c, 0x18, 0x18, 0x18, 0x18, 0x38, 0x30, 0x30, 0x30, 0x30, 0x60, 0x60, 0x60, 0x60, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x80, 0x03, 0x07, 0x07, 0x00, 0xff, 0xff, 0x00, 0x08, 0x01, 0x38, 0x38, 0x02, 0x00, 0x01, 0x03, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1c, 0x78, 0xe0, 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}; + oled_write_raw_P(data, sizeof(data)); +} + +/* This code switches the shown image on the oled on every 350th call of this function */ +bool showBongo1 = true; +int calls = 0; +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + if (calls++ > 350) { + showBongo1 = !showBongo1; + calls = 0; + } + if (showBongo1) { + render_bongo1(); + } else { + render_bongo2(); + } + return false; +} +#endif diff --git a/keyboards/rarepotato8de/3x3macropad/info.json b/keyboards/rarepotato8de/3x3macropad/info.json new file mode 100644 index 00000000000..607c6509966 --- /dev/null +++ b/keyboards/rarepotato8de/3x3macropad/info.json @@ -0,0 +1,63 @@ +{ + "manufacturer": "RarePotato8DE", + "keyboard_name": "3x3macropad", + "maintainer": "RarePotato8DE", + "development_board": "promicro", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "F4", "pin_b": "B1"} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "nkro": true, + "oled": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["D7", "B3", "B2"], + "rows": ["F7", "B5", "B6"] + }, + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "static_gradient": true + }, + "led_count": 6 + }, + "url": "https://github.com/rarepotato8de/3x3macropad", + "usb": { + "device_version": "0.0.1", + "pid": "0x0001", + "vid": "0x5353" + }, + "ws2812": { + "pin": "E6" + }, + "community_layouts": ["ortho_3x3"], + "layouts": { + "LAYOUT_ortho_3x3": { + "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, "y": 0}, + {"label": "k10", "matrix": [1, 0], "x": 0, "y": 1}, + {"label": "k11", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "k12", "matrix": [1, 2], "x": 2, "y": 1}, + {"label": "k20", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "k21", "matrix": [2, 1], "x": 1, "y": 2}, + {"label": "k22", "matrix": [2, 2], "x": 2, "y": 2} + ] + } + } +} diff --git a/keyboards/rarepotato8de/3x3macropad/keymaps/default/keymap.c b/keyboards/rarepotato8de/3x3macropad/keymaps/default/keymap.c new file mode 100644 index 00000000000..7f68e145e73 --- /dev/null +++ b/keyboards/rarepotato8de/3x3macropad/keymaps/default/keymap.c @@ -0,0 +1,25 @@ +/* Copyright 2024 RarePotato8DE + * + * 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/rarepotato8de/3x3macropad/readme.md b/keyboards/rarepotato8de/3x3macropad/readme.md new file mode 100644 index 00000000000..60a5caa2220 --- /dev/null +++ b/keyboards/rarepotato8de/3x3macropad/readme.md @@ -0,0 +1,28 @@ +# 3x3macropad + +![3x3macropad](https://i.imgur.com/LMkcKOw.jpg) + +The 3x3macropad is a small macropad with a cool OLED screen and rotary encoder. +It was inspired by stacked FR4 keyboards like the Discipline65. + +* Keyboard Maintainer: [RarePotato8DE](https://github.com/rarepotato8de) +* Hardware Supported: 3x3macropad +* Hardware Availability: [Open source!](https://github.com/rarepotato8de/3x3macropad) + +Make example for this keyboard (after setting up your build environment): + + make rarepotato8de/3x3macropad:default + +Flashing example for this keyboard: + + make rarepotato8de/3x3macropad: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,1) in the matrix (the top left one below the OLED) and plug in the keyboard +* **Physical reset button**: Short the two through hole pins on the back of the PCB (positioned at the rotary encoder) +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file diff --git a/keyboards/rarepotato8de/3x3macropad/rules.mk b/keyboards/rarepotato8de/3x3macropad/rules.mk new file mode 100644 index 00000000000..e69de29bb2d From c5fb6b4348dc01aa02846bf7b56e1b0a8a11013c Mon Sep 17 00:00:00 2001 From: DavidSannier Date: Wed, 1 May 2024 08:31:53 +0200 Subject: [PATCH 40/55] Refactoring successive press() -> release() calls (#23573) --- tests/basic/test_one_shot_keys.cpp | 50 ++++++------------------------ 1 file changed, 10 insertions(+), 40 deletions(-) diff --git a/tests/basic/test_one_shot_keys.cpp b/tests/basic/test_one_shot_keys.cpp index 9748dad7daf..64a8673a5cd 100644 --- a/tests/basic/test_one_shot_keys.cpp +++ b/tests/basic/test_one_shot_keys.cpp @@ -32,10 +32,7 @@ TEST_F(OneShot, OSMWithoutAdditionalKeypressDoesNothing) { /* Press and release OSM key*/ EXPECT_NO_REPORT(driver); - osm_key.press(); - run_one_scan_loop(); - osm_key.release(); - run_one_scan_loop(); + tap_key(osm_key); VERIFY_AND_CLEAR(driver); /* OSM are added when an actual report is send */ @@ -88,10 +85,7 @@ TEST_P(OneShotParametrizedTestFixture, OSMWithAdditionalKeypress) { /* Press and release OSM */ EXPECT_NO_REPORT(driver); - osm_key.press(); - run_one_scan_loop(); - osm_key.release(); - run_one_scan_loop(); + tap_key(osm_key); VERIFY_AND_CLEAR(driver); /* Press regular key */ @@ -171,18 +165,12 @@ TEST_F(OneShot, OSMChainingTwoOSMs) { /* Press and release OSM1 */ EXPECT_NO_REPORT(driver); - osm_key1.press(); - run_one_scan_loop(); - osm_key1.release(); - run_one_scan_loop(); + tap_key(osm_key1); VERIFY_AND_CLEAR(driver); /* Press and relesea OSM2 */ EXPECT_NO_REPORT(driver); - osm_key2.press(); - run_one_scan_loop(); - osm_key2.release(); - run_one_scan_loop(); + tap_key(osm_key2); VERIFY_AND_CLEAR(driver); /* Press regular key */ @@ -209,22 +197,13 @@ TEST_F(OneShot, OSMDoubleTapNotLockingOSMs) { /* Press and release OSM1 */ EXPECT_NO_REPORT(driver); - osm_key1.press(); - run_one_scan_loop(); - osm_key1.release(); - run_one_scan_loop(); + tap_key(osm_key1); VERIFY_AND_CLEAR(driver); /* Press and release OSM2 twice */ EXPECT_NO_REPORT(driver); - osm_key2.press(); - run_one_scan_loop(); - osm_key2.release(); - run_one_scan_loop(); - osm_key2.press(); - run_one_scan_loop(); - osm_key2.release(); - run_one_scan_loop(); + tap_key(osm_key2); + tap_key(osm_key2); VERIFY_AND_CLEAR(driver); /* Press regular key */ @@ -263,10 +242,7 @@ TEST_F(OneShot, OSMHoldNotLockingOSMs) { /* Press and release OSM1 */ EXPECT_NO_REPORT(driver); - osm_key1.press(); - run_one_scan_loop(); - osm_key1.release(); - run_one_scan_loop(); + tap_key(osm_key1); VERIFY_AND_CLEAR(driver); /* Press and hold OSM2 */ @@ -279,10 +255,7 @@ TEST_F(OneShot, OSMHoldNotLockingOSMs) { /* Press and release regular key */ EXPECT_REPORT(driver, (osm_key1.report_code, osm_key2.report_code, regular_key.report_code)).Times(1); EXPECT_REPORT(driver, (osm_key2.report_code)).Times(1); - regular_key.press(); - run_one_scan_loop(); - regular_key.release(); - run_one_scan_loop(); + tap_key(regular_key); VERIFY_AND_CLEAR(driver); /* Release OSM2 */ @@ -362,10 +335,7 @@ TEST_F(OneShot, OSLWithOsmAndAdditionalKeypress) { /* Press and release OSM */ EXPECT_NO_REPORT(driver); - osm_key.press(); - run_one_scan_loop(); - osm_key.release(); - run_one_scan_loop(); + tap_key(osm_key); EXPECT_TRUE(layer_state_is(1)); VERIFY_AND_CLEAR(driver); From 9289d934b00ad5e522cfefe1a156baa77762dbf2 Mon Sep 17 00:00:00 2001 From: Ivan Gromov <38141348+key10iq@users.noreply.github.com> Date: Wed, 1 May 2024 10:32:35 +0400 Subject: [PATCH 41/55] [Keyboard] Add imi60 (#23570) Co-authored-by: Drashna Jaelre --- keyboards/keyten/imi60/info.json | 92 +++++++++++++++++++ .../keyten/imi60/keymaps/default/keymap.c | 22 +++++ keyboards/keyten/imi60/keymaps/via/keymap.c | 22 +++++ keyboards/keyten/imi60/keymaps/via/rules.mk | 1 + keyboards/keyten/imi60/readme.md | 27 ++++++ keyboards/keyten/imi60/rules.mk | 0 6 files changed, 164 insertions(+) create mode 100644 keyboards/keyten/imi60/info.json create mode 100644 keyboards/keyten/imi60/keymaps/default/keymap.c create mode 100644 keyboards/keyten/imi60/keymaps/via/keymap.c create mode 100644 keyboards/keyten/imi60/keymaps/via/rules.mk create mode 100644 keyboards/keyten/imi60/readme.md create mode 100644 keyboards/keyten/imi60/rules.mk diff --git a/keyboards/keyten/imi60/info.json b/keyboards/keyten/imi60/info.json new file mode 100644 index 00000000000..2ccf8314116 --- /dev/null +++ b/keyboards/keyten/imi60/info.json @@ -0,0 +1,92 @@ +{ + "manufacturer": "keyten", + "keyboard_name": "imi60", + "maintainer": "key10iq", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["A15", "A5", "F1", "A6", "F0", "A7", "C15", "B0", "C14", "B1", "C13", "B11", "B4", "B3"], + "rows": ["B10", "B2", "B7", "B6", "B5"] + }, + "processor": "STM32F072", + "usb": { + "device_version": "0.0.1", + "pid": "0x6005", + "vid": "0xEB69" + }, + "community_layouts": ["60_tsangan_hhkb"], + "layouts": { + "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, 13], "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, 12], "w": 2.25, "x": 12.75, "y": 2}, + {"matrix": [3, 0], "w": 2.25, "x": 0, "y": 3}, + {"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], "w": 1.75, "x": 12.25, "y": 3}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "w": 1.5, "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4}, + {"matrix": [4, 6], "w": 7, "x": 4, "y": 4}, + {"matrix": [4, 10], "w": 1.5, "x": 11, "y": 4}, + {"matrix": [4, 11], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4} + ] + } + } +} diff --git a/keyboards/keyten/imi60/keymaps/default/keymap.c b/keyboards/keyten/imi60/keymaps/default/keymap.c new file mode 100644 index 00000000000..36859fad550 --- /dev/null +++ b/keyboards/keyten/imi60/keymaps/default/keymap.c @@ -0,0 +1,22 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_60_tsangan_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + + [1] = LAYOUT_60_tsangan_hhkb( + 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_INS, KC_DEL, + KC_CAPS, KC_TRNS, KC_TRNS, 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_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, + KC_TRNS, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/keyten/imi60/keymaps/via/keymap.c b/keyboards/keyten/imi60/keymaps/via/keymap.c new file mode 100644 index 00000000000..36859fad550 --- /dev/null +++ b/keyboards/keyten/imi60/keymaps/via/keymap.c @@ -0,0 +1,22 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_60_tsangan_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + + [1] = LAYOUT_60_tsangan_hhkb( + 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_INS, KC_DEL, + KC_CAPS, KC_TRNS, KC_TRNS, 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_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, + KC_TRNS, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/keyten/imi60/keymaps/via/rules.mk b/keyboards/keyten/imi60/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/keyten/imi60/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/keyten/imi60/readme.md b/keyboards/keyten/imi60/readme.md new file mode 100644 index 00000000000..0d4db774e09 --- /dev/null +++ b/keyboards/keyten/imi60/readme.md @@ -0,0 +1,27 @@ +# keyten imi60 + +imi60 - 60% PCB compatible with keyboards by La-Versa: Animi, Mirimi and Otsukimi + +![imi60](https://i.imgur.com/s37K4wY.png) + +* Keyboard Maintainer: [keyten](https://github.com/key10iq) +* Hardware Supported: keyten imi60 +* Hardware Availability: private GB + +Make example for this keyboard (after setting up your build environment): + + make keyten/imi60:default + +Flashing example for this keyboard: + + make keyten/imi60: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/imi60/rules.mk b/keyboards/keyten/imi60/rules.mk new file mode 100644 index 00000000000..e69de29bb2d From 8129b73d8a79647ab7e0338ab006c58ecb4a958b Mon Sep 17 00:00:00 2001 From: josh-l-wang <22173775+josh-l-wang@users.noreply.github.com> Date: Wed, 1 May 2024 02:35:39 -0400 Subject: [PATCH 42/55] [Keyboard] add Bruce the keyboard (#23639) --- keyboards/jlw/bruce_the_keyboard/info.json | 68 +++++++++++++++++++ .../keymaps/default/keymap.c | 35 ++++++++++ keyboards/jlw/bruce_the_keyboard/readme.md | 29 ++++++++ keyboards/jlw/bruce_the_keyboard/rules.mk | 1 + 4 files changed, 133 insertions(+) create mode 100644 keyboards/jlw/bruce_the_keyboard/info.json create mode 100644 keyboards/jlw/bruce_the_keyboard/keymaps/default/keymap.c create mode 100644 keyboards/jlw/bruce_the_keyboard/readme.md create mode 100644 keyboards/jlw/bruce_the_keyboard/rules.mk diff --git a/keyboards/jlw/bruce_the_keyboard/info.json b/keyboards/jlw/bruce_the_keyboard/info.json new file mode 100644 index 00000000000..0405869d408 --- /dev/null +++ b/keyboards/jlw/bruce_the_keyboard/info.json @@ -0,0 +1,68 @@ +{ + "keyboard_name": "Bruce the Keyboard", + "manufacturer": "jlw", + "url": "https://github.com/josh-l-wang/Bruce-the-Keyboard-the-Resources", + "maintainer": "jlw", + "usb": { + "vid": "0x1209", + "pid": "0xA459", + "device_version": "3.0.0" + }, + "processor": "STM32F072", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["B1", "B0", "A7", "A4", "A3", "B7", "B6", "B5", "B4", "B3"], + "rows": ["B11", "B9", "A5", "A6"] + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "h":1.75}, + {"matrix": [0, 1], "x": 1, "y": 0, "h":1.5}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0, "h":1.25}, + {"matrix": [0, 4], "x": 4, "y": 0, "h":1.25}, + {"matrix": [0, 5], "x": 5, "y": 0, "h":1.25}, + {"matrix": [0, 6], "x": 6, "y": 0, "h":1.25}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0, "h":1.5}, + {"matrix": [0, 9], "x": 9, "y": 0, "h":1.75}, + + {"matrix": [1, 0], "x": 0, "y": 1.75}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"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}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.75}, + + {"matrix": [2, 0], "x": 0, "y": 2.75, "h":1.5}, + {"matrix": [2, 1], "x": 1, "y": 2.5, "h":1.75}, + {"matrix": [2, 2], "x": 2, "y": 2, "h":1.25}, + {"matrix": [2, 3], "x": 3, "y": 2.25}, + {"matrix": [2, 4], "x": 4, "y": 2.25}, + {"matrix": [2, 5], "x": 5, "y": 2.25}, + {"matrix": [2, 6], "x": 6, "y": 2.25}, + {"matrix": [2, 7], "x": 7, "y": 2, "h":1.25}, + {"matrix": [2, 8], "x": 8, "y": 2.5, "h":1.75}, + {"matrix": [2, 9], "x": 9, "y": 2.75, "h":1.5}, + + {"matrix": [3, 2], "x": 2, "y": 3.25}, + {"matrix": [3, 3], "x": 3, "y": 3.25, "w": 2}, + {"matrix": [3, 5], "x": 5, "y": 3.25, "w": 2}, + {"matrix": [3, 7], "x": 7, "y": 3.25}, + ] + } + + } +} diff --git a/keyboards/jlw/bruce_the_keyboard/keymaps/default/keymap.c b/keyboards/jlw/bruce_the_keyboard/keymaps/default/keymap.c new file mode 100644 index 00000000000..73ef2e0213c --- /dev/null +++ b/keyboards/jlw/bruce_the_keyboard/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +// Copyright 2024 jlw +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, + LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), KC_T, KC_G, KC_M, KC_N, RCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), + KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, + LT(3, KC_TAB), SFT_T(KC_BSPC), LT(1, KC_SPC), LT(2,KC_ENT) + ), + + [1] = LAYOUT( + KC_GRAVE, KC_F2, XXXXXXX, KC_F4, KC_F5, KC_BSLS, KC_MINUS, KC_EQUAL, KC_LBRC, KC_RBRC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + DF(0), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF(1), XXXXXXX, _______, _______, KC_SCLN, + _______, _______, _______, _______ + ), + + [2] = LAYOUT( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F11, KC_F12, XXXXXXX, XXXXXXX, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + DF(0), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF(2), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, _______, _______, _______ + ), + [3] = LAYOUT( + XXXXXXX, XXXXXXX, LSG(KC_4),LSG(KC_S),XXXXXXX, KC_HOME, XXXXXXX, KC_UP, XXXXXXX, KC_PGUP, + KC_LGUI, KC_LALT, KC_LCTL, KC_LGUI, XXXXXXX, KC_END, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, + DF(0), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF(2), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, _______, _______, _______ + ) +}; \ No newline at end of file diff --git a/keyboards/jlw/bruce_the_keyboard/readme.md b/keyboards/jlw/bruce_the_keyboard/readme.md new file mode 100644 index 00000000000..a12624c3705 --- /dev/null +++ b/keyboards/jlw/bruce_the_keyboard/readme.md @@ -0,0 +1,29 @@ +# Bruce the Keyboard + +Please note that Bruce is a keyboard, not a human. + +Bruce the Keyboard is a column staggered 34-key board created by [jlw](github.com/josh-l-wang) and whydobearsxplod with a single layout. + +![Bruce the Keyboard](https://i.imgur.com/HkbwkK0.jpeg) + +* Keyboard Maintainer: [jlw](https://github.com/josh-l-wang) +* Hardware Supported: [Bruce the Keyboard the PCB and the Cases](https://github.com/josh-l-wang/Bruce-the-Keyboard-the-Resources) +* Hardware Availability: [jlw-kb.com](https://jlw-kb.com) + +Make example for this keyboard (after setting up your build environment): + + make jlw/bruce_the_keyboard:default + +Flashing example for this keyboard: + + make jlw/bruce_the_keyboard: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**: Hold button on the back of the PCB while plugging in the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/jlw/bruce_the_keyboard/rules.mk b/keyboards/jlw/bruce_the_keyboard/rules.mk new file mode 100644 index 00000000000..218d8921e51 --- /dev/null +++ b/keyboards/jlw/bruce_the_keyboard/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank. From 719c99afa1a5449edee4453cf5b1bf3c8e75e0eb Mon Sep 17 00:00:00 2001 From: Joy Lee Date: Wed, 1 May 2024 14:35:58 +0800 Subject: [PATCH 43/55] [Keyboard] Add skiller_sgk50_s4 keyboard (#23636) Co-authored-by: wb Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Duncan Sutherland --- keyboards/sharkoon/skiller_sgk50_s4/config.h | 13 + keyboards/sharkoon/skiller_sgk50_s4/halconf.h | 10 + keyboards/sharkoon/skiller_sgk50_s4/info.json | 356 ++++++++++++++++++ .../skiller_sgk50_s4/keymaps/default/keymap.c | 22 ++ .../skiller_sgk50_s4/keymaps/via/keymap.c | 22 ++ .../skiller_sgk50_s4/keymaps/via/rules.mk | 1 + keyboards/sharkoon/skiller_sgk50_s4/mcuconf.h | 9 + keyboards/sharkoon/skiller_sgk50_s4/readme.md | 24 ++ keyboards/sharkoon/skiller_sgk50_s4/rules.mk | 1 + 9 files changed, 458 insertions(+) create mode 100644 keyboards/sharkoon/skiller_sgk50_s4/config.h create mode 100644 keyboards/sharkoon/skiller_sgk50_s4/halconf.h create mode 100644 keyboards/sharkoon/skiller_sgk50_s4/info.json create mode 100644 keyboards/sharkoon/skiller_sgk50_s4/keymaps/default/keymap.c create mode 100644 keyboards/sharkoon/skiller_sgk50_s4/keymaps/via/keymap.c create mode 100644 keyboards/sharkoon/skiller_sgk50_s4/keymaps/via/rules.mk create mode 100644 keyboards/sharkoon/skiller_sgk50_s4/mcuconf.h create mode 100644 keyboards/sharkoon/skiller_sgk50_s4/readme.md create mode 100644 keyboards/sharkoon/skiller_sgk50_s4/rules.mk diff --git a/keyboards/sharkoon/skiller_sgk50_s4/config.h b/keyboards/sharkoon/skiller_sgk50_s4/config.h new file mode 100644 index 00000000000..1d0f8f9a901 --- /dev/null +++ b/keyboards/sharkoon/skiller_sgk50_s4/config.h @@ -0,0 +1,13 @@ +// Copyright 2024 JoyLee (@itarze) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* SPI Config for spi flash*/ +#define SPI_DRIVER SPIDQ +#define SPI_SCK_PIN B3 +#define SPI_MOSI_PIN B5 +#define SPI_MISO_PIN B4 +#define SPI_MOSI_PAL_MODE 5 + +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 diff --git a/keyboards/sharkoon/skiller_sgk50_s4/halconf.h b/keyboards/sharkoon/skiller_sgk50_s4/halconf.h new file mode 100644 index 00000000000..9d456a5106f --- /dev/null +++ b/keyboards/sharkoon/skiller_sgk50_s4/halconf.h @@ -0,0 +1,10 @@ +// Copyright 2024 JoyLee (@itarze) +// SPDX-License-Identifier: GPL-2.0-or-later + +#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/sharkoon/skiller_sgk50_s4/info.json b/keyboards/sharkoon/skiller_sgk50_s4/info.json new file mode 100644 index 00000000000..7d36616e52b --- /dev/null +++ b/keyboards/sharkoon/skiller_sgk50_s4/info.json @@ -0,0 +1,356 @@ +{ + "manufacturer": "Sharkoon Technologies GmbH", + "keyboard_name": "SKILLER SGK50 S4", + "maintainer": "JoyLee", + "bootloader": "wb32-dfu", + "diode_direction": "ROW2COL", + "eeprom": { + "driver": "wear_leveling", + "wear_leveling": { + "backing_size": 4096, + "driver": "spi_flash" + } + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["C0", "C1", "C2", "C3", "A6", "B1", "B10", "B11", "B12", "B13", "B14", "B15", "C6", "C7"], + "rows": ["A0", "A1", "A2", "A3", "C13"] + }, + "processor": "WB32FQ95", + "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 + }, + "default": { + "val": 80 + }, + "driver": "ws2812", + "layout": [ + {"matrix": [4, 6], "x": 103, "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": [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}, + {"matrix": [3, 8], "x": 138, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 121, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 103, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 86, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 69, "y": 48, "flags": 4}, + {"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, 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}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 17, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 34, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 69, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 103, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 121, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 138, "y": 32, "flags": 4}, + {"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": [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}, + {"matrix": [1, 9], "x": 155, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 138, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 121, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 103, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 86, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 69, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 34, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 17, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 17, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 34, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 52, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 69, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 86, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 103, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 121, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 138, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 155, "y": 0, "flags": 4}, + {"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} + ], + "max_brightness": 110, + "sleep": true, + "val_steps": 28 + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x1020", + "suspend_wakeup_delay": 1000, + "vid": "0x6332" + }, + "ws2812": { + "pin": "A8" + }, + "community_layouts": ["60_ansi", "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, "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, 12], "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, 13], "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": { + "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, 12], "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": 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": { + "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, 12], "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, 13], "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/sharkoon/skiller_sgk50_s4/keymaps/default/keymap.c b/keyboards/sharkoon/skiller_sgk50_s4/keymaps/default/keymap.c new file mode 100644 index 00000000000..84e72510d79 --- /dev/null +++ b/keyboards/sharkoon/skiller_sgk50_s4/keymaps/default/keymap.c @@ -0,0 +1,22 @@ +// Copyright 2024 JoyLee (@itarze) +// 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_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, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL + ), + + [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_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 + ) +}; diff --git a/keyboards/sharkoon/skiller_sgk50_s4/keymaps/via/keymap.c b/keyboards/sharkoon/skiller_sgk50_s4/keymaps/via/keymap.c new file mode 100644 index 00000000000..84e72510d79 --- /dev/null +++ b/keyboards/sharkoon/skiller_sgk50_s4/keymaps/via/keymap.c @@ -0,0 +1,22 @@ +// Copyright 2024 JoyLee (@itarze) +// 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_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, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL + ), + + [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_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 + ) +}; diff --git a/keyboards/sharkoon/skiller_sgk50_s4/keymaps/via/rules.mk b/keyboards/sharkoon/skiller_sgk50_s4/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/sharkoon/skiller_sgk50_s4/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/sharkoon/skiller_sgk50_s4/mcuconf.h b/keyboards/sharkoon/skiller_sgk50_s4/mcuconf.h new file mode 100644 index 00000000000..ae7ee58001a --- /dev/null +++ b/keyboards/sharkoon/skiller_sgk50_s4/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2024 JoyLee (@itarze) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef WB32_SPI_USE_QSPI +#define WB32_SPI_USE_QSPI TRUE diff --git a/keyboards/sharkoon/skiller_sgk50_s4/readme.md b/keyboards/sharkoon/skiller_sgk50_s4/readme.md new file mode 100644 index 00000000000..db6650546ed --- /dev/null +++ b/keyboards/sharkoon/skiller_sgk50_s4/readme.md @@ -0,0 +1,24 @@ +# SHARKOON SKILLER SGK50 S4 + +![ISO](https://i.imgur.com/4WDIMm0.png) + +* Keyboard Maintainer: [JoyLee](https://github.com/itarze) +* Hardware Supported: [SHARKOON SKILLER SGK50 S4 PCB](http://www.sharkoon.com/) + +Make example for this keyboard (after setting up your build environment): + + make sharkoon/skiller_sgk50_s4:default + +Flashing example for this keyboard: + + make sharkoon/skiller_sgk50_s4: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/sharkoon/skiller_sgk50_s4/rules.mk b/keyboards/sharkoon/skiller_sgk50_s4/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/sharkoon/skiller_sgk50_s4/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From 8fbdc4564886d03680fb0b7321db34bb043c8cf1 Mon Sep 17 00:00:00 2001 From: Druah <54309603+Druah@users.noreply.github.com> Date: Wed, 1 May 2024 02:42:43 -0400 Subject: [PATCH 44/55] [Keyboard] Add DK Saver Redux (#23510) --- keyboards/druah/dk_saver_redux/info.json | 323 ++++++++++++++++++ .../dk_saver_redux/keymaps/default/keymap.c | 32 ++ .../druah/dk_saver_redux/keymaps/via/keymap.c | 32 ++ .../druah/dk_saver_redux/keymaps/via/rules.mk | 1 + keyboards/druah/dk_saver_redux/readme.md | 27 ++ keyboards/druah/dk_saver_redux/rules.mk | 1 + 6 files changed, 416 insertions(+) create mode 100644 keyboards/druah/dk_saver_redux/info.json create mode 100644 keyboards/druah/dk_saver_redux/keymaps/default/keymap.c create mode 100644 keyboards/druah/dk_saver_redux/keymaps/via/keymap.c create mode 100644 keyboards/druah/dk_saver_redux/keymaps/via/rules.mk create mode 100644 keyboards/druah/dk_saver_redux/readme.md create mode 100644 keyboards/druah/dk_saver_redux/rules.mk diff --git a/keyboards/druah/dk_saver_redux/info.json b/keyboards/druah/dk_saver_redux/info.json new file mode 100644 index 00000000000..6c76e107565 --- /dev/null +++ b/keyboards/druah/dk_saver_redux/info.json @@ -0,0 +1,323 @@ +{ + "manufacturer": "KBDMania", + "keyboard_name": "DK Saver", + "maintainer": "Druah", + "backlight": { + "breathing": true, + "levels": 10, + "pin": "B7" + }, + "bootloader": "atmel-dfu", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "features": { + "backlight": true, + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "C2", + "scroll_lock": "C1" + }, + "matrix_pins": { + "cols": ["F5", "F6", "F7", "A1", "A2", "B5", "B4", "B3", "B2", "F2", "F1", "F0", "F4", "B1", "C5", "C6", "C0"], + "rows": ["C3", "F3", "B6", "A0", "C7", "C4"] + }, + "processor": "at90usb646", + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "url": "https://druah.moe", + "usb": { + "device_version": "1.0.0", + "pid": "0x0002", + "vid": "0x444E" + }, + "community_layouts": ["tkl_f13_ansi", "tkl_f13_ansi_tsangan"], + "layout_aliases": { + "LAYOUT_all": "LAYOUT_tkl_f13_ansi" + }, + "layouts": { + "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, 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, 7], "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_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, 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.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_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, 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.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/druah/dk_saver_redux/keymaps/default/keymap.c b/keyboards/druah/dk_saver_redux/keymaps/default/keymap.c new file mode 100644 index 00000000000..cf959d606a8 --- /dev/null +++ b/keyboards/druah/dk_saver_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││F13││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_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_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/dk_saver_redux/keymaps/via/keymap.c b/keyboards/druah/dk_saver_redux/keymaps/via/keymap.c new file mode 100644 index 00000000000..cf959d606a8 --- /dev/null +++ b/keyboards/druah/dk_saver_redux/keymaps/via/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││F13││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_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_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/dk_saver_redux/keymaps/via/rules.mk b/keyboards/druah/dk_saver_redux/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/druah/dk_saver_redux/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/druah/dk_saver_redux/readme.md b/keyboards/druah/dk_saver_redux/readme.md new file mode 100644 index 00000000000..0929182b880 --- /dev/null +++ b/keyboards/druah/dk_saver_redux/readme.md @@ -0,0 +1,27 @@ +# DK Saver Redux + +![PCB](https://i.imgur.com/eEw8Yog.png) + +A replacement TKL PCB for the DK Saver keyboard + +* Keyboard Maintainer: [Druah](https://github.com/Druah) +* Hardware Supported: DK Saver Redux +* Hardware Availability: Private buy + +Make example for this keyboard (after setting up your build environment): + + make druah/dk_saver_redux:default + +Flashing example for this keyboard: + + make druah/dk_saver_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 diff --git a/keyboards/druah/dk_saver_redux/rules.mk b/keyboards/druah/dk_saver_redux/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/druah/dk_saver_redux/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From 0a3c486476ce384bd292d7291d1ac6fd3427e735 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue, 30 Apr 2024 23:43:43 -0700 Subject: [PATCH 45/55] Epomaker Tide 65: Layout Data Cleanup (#23643) --- keyboards/epomaker/tide65/info.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/keyboards/epomaker/tide65/info.json b/keyboards/epomaker/tide65/info.json index 2715b923f47..60f1b46f708 100644 --- a/keyboards/epomaker/tide65/info.json +++ b/keyboards/epomaker/tide65/info.json @@ -184,7 +184,7 @@ {"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.25}, + {"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}, @@ -197,8 +197,8 @@ {"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": 1.75}, - {"matrix": [2, 14], "x": 15, "y": 2.25}, + {"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, 1], "x": 2.25, "y": 3}, {"matrix": [3, 2], "x": 3.25, "y": 3}, @@ -217,8 +217,8 @@ {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, {"matrix": [4, 3], "x": 3.75, "y": 4, "w": 2.25}, - {"matrix": [4, 5], "x": 6, "y": 3.75, "w": 1.25}, - {"matrix": [4, 4], "x": 6, "y": 4, "w": 1.25}, + {"matrix": [4, 5], "x": 6, "y": 4, "w": 1.25, "h": 0.5}, + {"matrix": [4, 4], "x": 6, "y": 4.5, "w": 1.25, "h": 0.5}, {"matrix": [4, 6], "x": 7.25, "y": 4, "w": 2.75}, {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, From 5f755b982266970ae586ba516c4120c6cc684310 Mon Sep 17 00:00:00 2001 From: era <73109780+eerraa@users.noreply.github.com> Date: Wed, 1 May 2024 15:50:53 +0900 Subject: [PATCH 46/55] [Keyboard] Add N87 (#23457) --- keyboards/era/linx3/n87/config.h | 8 + keyboards/era/linx3/n87/info.json | 455 ++++++++++++++++++ .../era/linx3/n87/keymaps/default/keymap.c | 24 + keyboards/era/linx3/n87/keymaps/via/keymap.c | 24 + keyboards/era/linx3/n87/keymaps/via/rules.mk | 1 + keyboards/era/linx3/n87/readme.md | 23 + keyboards/era/linx3/n87/rules.mk | 1 + 7 files changed, 536 insertions(+) create mode 100644 keyboards/era/linx3/n87/config.h create mode 100644 keyboards/era/linx3/n87/info.json create mode 100644 keyboards/era/linx3/n87/keymaps/default/keymap.c create mode 100644 keyboards/era/linx3/n87/keymaps/via/keymap.c create mode 100644 keyboards/era/linx3/n87/keymaps/via/rules.mk create mode 100644 keyboards/era/linx3/n87/readme.md create mode 100644 keyboards/era/linx3/n87/rules.mk diff --git a/keyboards/era/linx3/n87/config.h b/keyboards/era/linx3/n87/config.h new file mode 100644 index 00000000000..8b294dd91b1 --- /dev/null +++ b/keyboards/era/linx3/n87/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 2000U \ No newline at end of file diff --git a/keyboards/era/linx3/n87/info.json b/keyboards/era/linx3/n87/info.json new file mode 100644 index 00000000000..548a37faddb --- /dev/null +++ b/keyboards/era/linx3/n87/info.json @@ -0,0 +1,455 @@ +{ + "manufacturer": "eerraa", + "keyboard_name": "N87", + "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", "GP28", "GP27", "GP26", "GP25", "GP24", "GP23", "GP22", "GP20", "GP19", "GP18", "GP17", "GP16", "GP21", "GP11", "GP9", "GP5"], + "rows": ["GP3", "GP2", "GP1", "GP0", "GP10", "GP8"] + }, + "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": [0, 16], "x": 224, "y": 0, "flags": 4}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 182, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 169, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 156, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 143, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 123, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 110, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 97, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 84, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 65, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 52, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 39, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 26, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 13, "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": 175, "y": 15, "flags": 1}, + {"matrix": [2, 14], "x": 198, "y": 15, "flags": 4}, + {"matrix": [1, 15], "x": 211, "y": 15, "flags": 4}, + {"matrix": [1, 16], "x": 224, "y": 15, "flags": 4}, + {"matrix": [2, 16], "x": 224, "y": 27, "flags": 4}, + {"matrix": [2, 15], "x": 211, "y": 27, "flags": 4}, + {"matrix": [3, 14], "x": 198, "y": 27, "flags": 4}, + {"matrix": [2, 13], "x": 179, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 162, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 149, "y": 27, "flags": 4}, + {"matrix": [2, 10], "x": 136, "y": 27, "flags": 4}, + {"matrix": [2, 9], "x": 123, "y": 27, "flags": 4}, + {"matrix": [2, 8], "x": 110, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 97, "y": 27, "flags": 4}, + {"matrix": [2, 6], "x": 84, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 71, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 58, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 27, "flags": 4}, + {"matrix": [2, 1], "x": 19, "y": 27, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, + {"matrix": [3, 0], "x": 2, "y": 40, "flags": 1}, + {"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": 127, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 174, "y": 40, "flags": 1}, + {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1}, + {"matrix": [4, 13], "x": 182, "y": 52, "flags": 4}, + {"matrix": [4, 12], "x": 170, "y": 52, "flags": 1}, + {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 0], "x": 8, "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}, + {"x": 57, "y": 64, "flags": 4}, + {"x": 70, "y": 64, "flags": 4}, + {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4}, + {"x": 96, "y": 64, "flags": 4}, + {"x": 109, "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} + ], + "sleep": true + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0009", + "vid": "0x4552" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP4" + }, + "community_layouts": ["tkl_ansi", "tkl_ansi_split_bs_rshift"], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "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": [2, 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": [3, 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, 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, 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": { + "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": [2, 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": [3, 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, 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_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.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": [2, 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": [3, 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, 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} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/era/linx3/n87/keymaps/default/keymap.c b/keyboards/era/linx3/n87/keymaps/default/keymap.c new file mode 100644 index 00000000000..a16e6a21105 --- /dev/null +++ b/keyboards/era/linx3/n87/keymaps/default/keymap.c @@ -0,0 +1,24 @@ +// 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_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, KC_RGUI, MO(1) , 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 + ) +}; \ No newline at end of file diff --git a/keyboards/era/linx3/n87/keymaps/via/keymap.c b/keyboards/era/linx3/n87/keymaps/via/keymap.c new file mode 100644 index 00000000000..a16e6a21105 --- /dev/null +++ b/keyboards/era/linx3/n87/keymaps/via/keymap.c @@ -0,0 +1,24 @@ +// 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_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, KC_RGUI, MO(1) , 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 + ) +}; \ No newline at end of file diff --git a/keyboards/era/linx3/n87/keymaps/via/rules.mk b/keyboards/era/linx3/n87/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/era/linx3/n87/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/era/linx3/n87/readme.md b/keyboards/era/linx3/n87/readme.md new file mode 100644 index 00000000000..ff5b29d3bd1 --- /dev/null +++ b/keyboards/era/linx3/n87/readme.md @@ -0,0 +1,23 @@ +# N87 + +* Keyboard Maintainer: [ERA](https://github.com/eerraa) +* Hardware supported: Syryan & Linx3 +* Hardware availability: [Syryan](https://srind.mysoho.com/) & [Linx3](https://allthatkeyboard.com) + +Make example for this keyboard (after setting up your build environment): + + make era/linx3/n87:default + +Flashing example for this keyboard: + + make era/linx3/n87: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 diff --git a/keyboards/era/linx3/n87/rules.mk b/keyboards/era/linx3/n87/rules.mk new file mode 100644 index 00000000000..7ff128fa692 --- /dev/null +++ b/keyboards/era/linx3/n87/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file From 1fc4bfa3132d77bf21dbed71f63cdd1a06e04cf2 Mon Sep 17 00:00:00 2001 From: Pavel Kroupa <63880977+Tabonx@users.noreply.github.com> Date: Wed, 1 May 2024 08:53:30 +0200 Subject: [PATCH 47/55] Add MacOS Czech ISO and ANSI keymaps #23346 (#23412) --- .../keycodes_czech_mac_ansi_0.0.1.hjson | 580 ++++++++++++++++++ .../extras/keycodes_czech_mac_iso_0.0.1.hjson | 580 ++++++++++++++++++ docs/reference_keymap_extras.md | 2 + quantum/keymap_extras/keymap_czech_mac_ansi.h | 162 +++++ quantum/keymap_extras/keymap_czech_mac_iso.h | 162 +++++ .../keymap_extras/sendstring_czech_mac_ansi.h | 120 ++++ .../keymap_extras/sendstring_czech_mac_iso.h | 120 ++++ 7 files changed, 1726 insertions(+) create mode 100644 data/constants/keycodes/extras/keycodes_czech_mac_ansi_0.0.1.hjson create mode 100644 data/constants/keycodes/extras/keycodes_czech_mac_iso_0.0.1.hjson create mode 100644 quantum/keymap_extras/keymap_czech_mac_ansi.h create mode 100644 quantum/keymap_extras/keymap_czech_mac_iso.h create mode 100644 quantum/keymap_extras/sendstring_czech_mac_ansi.h create mode 100644 quantum/keymap_extras/sendstring_czech_mac_iso.h diff --git a/data/constants/keycodes/extras/keycodes_czech_mac_ansi_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_czech_mac_ansi_0.0.1.hjson new file mode 100644 index 00000000000..d0eb554126d --- /dev/null +++ b/data/constants/keycodes/extras/keycodes_czech_mac_ansi_0.0.1.hjson @@ -0,0 +1,580 @@ +{ + "aliases": { +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │ \ │ + │ ě │ š │ č │ ř │ ž │ ý │ á │ í │ é │ = │ ' │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │ │ 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": "CZ_BSLS", + "label": "\\", + } + "KC_1": { + "key": "CZ_PLUS", + "label": "+", + } + "KC_2": { + "key": "CZ_ECAR", + "label": "ě", + } + "KC_3": { + "key": "CZ_SCAR", + "label": "š", + } + "KC_4": { + "key": "CZ_CCAR", + "label": "č", + } + "KC_5": { + "key": "CZ_RCAR", + "label": "ř", + } + "KC_6": { + "key": "CZ_ZCAR", + "label": "ž", + } + "KC_7": { + "key": "CZ_YACU", + "label": "ý", + } + "KC_8": { + "key": "CZ_AACU", + "label": "á", + } + "KC_9": { + "key": "CZ_IACU", + "label": "í", + } + "KC_0": { + "key": "CZ_EACU", + "label": "é", + } + "KC_MINS": { + "key": "CZ_EQL", + "label": "=", + } + "KC_EQL": { + "key": "CZ_ACUT", + "label": "' (dead)", + } + "KC_Q": { + "key": "CZ_Q", + "label": "Q", + } + "KC_W": { + "key": "CZ_W", + "label": "W", + } + "KC_E": { + "key": "CZ_E", + "label": "E", + } + "KC_R": { + "key": "CZ_R", + "label": "R", + } + "KC_T": { + "key": "CZ_T", + "label": "T", + } + "KC_Y": { + "key": "CZ_Z", + "label": "Z", + } + "KC_U": { + "key": "CZ_U", + "label": "U", + } + "KC_I": { + "key": "CZ_I", + "label": "I", + } + "KC_O": { + "key": "CZ_O", + "label": "O", + } + "KC_P": { + "key": "CZ_P", + "label": "P", + } + "KC_LBRC": { + "key": "CZ_UACU", + "label": "ú", + } + "KC_RBRC": { + "key": "CZ_RPRN", + "label": ")", + } + "KC_NUHS": { + "key": "CZ_DIAE", + "label": "¨ (dead)", + } + "KC_A": { + "key": "CZ_A", + "label": "A", + } + "KC_S": { + "key": "CZ_S", + "label": "S", + } + "KC_D": { + "key": "CZ_D", + "label": "D", + } + "KC_F": { + "key": "CZ_F", + "label": "F", + } + "KC_G": { + "key": "CZ_G", + "label": "G", + } + "KC_H": { + "key": "CZ_H", + "label": "H", + } + "KC_J": { + "key": "CZ_J", + "label": "J", + } + "KC_K": { + "key": "CZ_K", + "label": "K", + } + "KC_L": { + "key": "CZ_L", + "label": "L", + } + "KC_SCLN": { + "key": "CZ_URNG", + "label": "ů", + } + "KC_QUOT": { + "key": "CZ_SECT", + "label": "§", + } + "KC_Z": { + "key": "CZ_Y", + "label": "Y", + } + "KC_X": { + "key": "CZ_X", + "label": "X", + } + "KC_C": { + "key": "CZ_C", + "label": "C", + } + "KC_V": { + "key": "CZ_V", + "label": "V", + } + "KC_B": { + "key": "CZ_B", + "label": "B", + } + "KC_N": { + "key": "CZ_N", + "label": "N", + } + "KC_M": { + "key": "CZ_M", + "label": "M", + } + "KC_COMM": { + "key": "CZ_COMM", + "label": ",", + } + "KC_DOT": { + "key": "CZ_DOT", + "label": ".", + } + "KC_SLSH": { + "key": "CZ_MINS", + "label": "-", + } +/* Shifted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │ | │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ % │ ˇ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ / │ ( │ ` │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ + * │ │ │ │ │ │ │ │ │ │ │ " │ ! │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────┤ + * │ │ │ │ │ │ │ │ │ ? │ : │ _ │ │ + * ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │ │ │ │ │ │ │ │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + */ + "S(CZ_BSLS)": { + "key": "CZ_PIPE", + "label": "|", + } + "S(CZ_PLUS)": { + "key": "CZ_1", + "label": "1", + } + "S(CZ_ECAR)": { + "key": "CZ_2", + "label": "2", + } + "S(CZ_SCAR)": { + "key": "CZ_3", + "label": "3", + } + "S(CZ_CCAR)": { + "key": "CZ_4", + "label": "4", + } + "S(CZ_RCAR)": { + "key": "CZ_5", + "label": "5", + } + "S(CZ_ZCAR)": { + "key": "CZ_6", + "label": "6", + } + "S(CZ_YACU)": { + "key": "CZ_7", + "label": "7", + } + "S(CZ_AACU)": { + "key": "CZ_8", + "label": "8", + } + "S(CZ_IACU)": { + "key": "CZ_9", + "label": "9", + } + "S(CZ_EACU)": { + "key": "CZ_0", + "label": "0", + } + "S(CZ_EQL)": { + "key": "CZ_PERC", + "label": "%", + } + "S(CZ_ACUT)": { + "key": "CZ_CARN", + "label": "ˇ (dead)", + } + "S(CZ_UACU)": { + "key": "CZ_SLSH", + "label": "/", + } + "S(CZ_RPRN)": { + "key": "CZ_LPRN", + "label": "(", + } + "S(CZ_DIAE)": { + "key": "CZ_GRV", + "label": "`", + } + "S(CZ_URNG)": { + "key": "CZ_DQUO", + "label": "\"", + } + "S(CZ_SECT)": { + "key": "CZ_EXLM", + "label": "!", + } + "S(CZ_COMM)": { + "key": "CZ_QUES", + "label": "?", + } + "S(CZ_DOT)": { + "key": "CZ_COLN", + "label": ":", + } + "S(CZ_MINS)": { + "key": "CZ_UNDS", + "label": "_", + } +/* Alted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │ │ │ @ │ # │ $ │ ~ │ ^ │ & │ * │ { │ } │ ° │ ^ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │ │ │ ė │ ę │ € │ │ │ │ │ │ │ [ │ ] │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ + * │ │ ą │ ß │ ∂ │ │ │ ‘ │ ’ │ │ ł │ ; │ ' │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────┤ + * │ │ │ │ │ │ │ ‚ │ │ < │ > │ – │ │ + * ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │ │ │ │ │ │ │ │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + */ + "A(CZ_ECAR)": { + "key": "CZ_AT", + "label": "@", + } + "A(CZ_SCAR)": { + "key": "CZ_HASH", + "label": "#", + } + "A(CZ_CCAR)": { + "key": "CZ_DLR", + "label": "$", + } + "A(CZ_RCAR)": { + "key": "CZ_TILD", + "label": "~", + } + "A(CZ_ZCAR)": { + "key": "CZ_CIRC", + "label": "^", + } + "A(CZ_YACU)": { + "key": "CZ_AMPR", + "label": "&", + } + "A(CZ_AACU)": { + "key": "CZ_ASTR", + "label": "*", + } + "A(CZ_IACU)": { + "key": "CZ_LCBR", + "label": "{", + } + "A(CZ_EACU)": { + "key": "CZ_RCBR", + "label": "}", + } + "A(CZ_EQL)": { + "key": "CZ_RNGA", + "label": "° (dead)", + } + "A(CZ_ACUT)": { + "key": "CZ_DCIR", + "label": "^ (dead)", + } + "A(CZ_W)": { + "key": "CZ_LEDT", + "label": "ė", + } + "A(CZ_E)": { + "key": "CZ_LEOG", + "label": "ę", + } + "A(CZ_R)": { + "key": "CZ_EURO", + "label": "€", + } + "A(CZ_Z)": { + "key": "CZ_LZDT", + "label": "ż", + } + "A(CZ_UACU)": { + "key": "CZ_LBRC", + "label": "[", + } + "A(CZ_RPRN)": { + "key": "CZ_RBRC", + "label": "]", + } + "A(CZ_A)": { + "key": "CZ_LAOG", + "label": "ą", + } + "A(CZ_S)": { + "key": "CZ_SS", + "label": "ß", + } + "A(CZ_D)": { + "key": "CZ_PDIF", + "label": "∂", + } + "A(CZ_H)": { + "key": "CZ_LSQU", + "label": "‘", + } + "A(CZ_J)": { + "key": "CZ_RSQU", + "label": "’", + } + "A(CZ_L)": { + "key": "CZ_LLST", + "label": "ł", + } + "A(CZ_URNG)": { + "key": "CZ_SCLN", + "label": ";", + } + "A(CZ_SECT)": { + "key": "CZ_QUOT", + "label": "'", + } + "A(CZ_N)": { + "key": "CZ_SLQU", + "label": "‚", + } + "A(CZ_COMM)": { + "key": "CZ_LABK", + "label": "<", + } + "A(CZ_DOT)": { + "key": "CZ_RABK", + "label": ">", + } + "A(CZ_MINS)": { + "key": "CZ_NDSH", + "label": "–", + } +/* Shift+Alted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │ │ ¬ │ • │ ≠ │ £ │ ◊ │ † │ ¶ │ ÷ │ « │ » │ , │ - │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │ │ │ Ė │ Ę │ ® │ ™ │ Ż │ │ │ │ │ ‹ │ › │ " │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ + * │ │ Ą │ ∑ │ ∆ │ │ │ “ │ ” │ │ Ł │ … │ ~ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────┤ + * │ │ │ │ © │ √ │ │ „ │ │ ≤ │ ≥ │ — │ │ + * ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │ │ │ │ │ │ │ │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + */ + "S(A(CZ_1))": { + "key": "CZ_NOT", + "label": "¬", + } + "S(A(CZ_2))": { + "key": "CZ_BULT", + "label": "•", + } + "S(A(CZ_3))": { + "key": "CZ_NEQL", + "label": "≠", + } + "S(A(CZ_4))": { + "key": "CZ_PND", + "label": "£", + } + "S(A(CZ_5))": { + "key": "CZ_LOZN", + "label": "◊", + } + "S(A(CZ_6))": { + "key": "CZ_DAGG", + "label": "†", + } + "S(A(CZ_7))": { + "key": "CZ_PARA", + "label": "¶", + } + "S(A(CZ_8))": { + "key": "CZ_DIV", + "label": "÷", + } + "S(A(CZ_9))": { + "key": "CZ_LDAQ", + "label": "«", + } + "S(A(CZ_0))": { + "key": "CZ_RDAQ", + "label": "»", + } + "S(A(CZ_EQL))": { + "key": "CZ_DCOM", + "label": ", (dead)", + } + "S(A(CZ_ACUT))": { + "key": "CZ_DHPN", + "label": "- (dead)", + } + "S(A(CZ_W))": { + "key": "CZ_CEDT", + "label": "Ė", + } + "S(A(CZ_E))": { + "key": "CZ_CEOG", + "label": "Ę", + } + "S(A(CZ_R))": { + "key": "CZ_REGD", + "label": "®", + } + "S(A(CZ_T))": { + "key": "CZ_TM", + "label": "™", + } + "S(A(CZ_Z))": { + "key": "CZ_CZDT", + "label": "Ż", + } + "S(A(CZ_UACU))": { + "key": "CZ_LSAQ", + "label": "‹", + } + "S(A(CZ_RPRN))": { + "key": "CZ_RSAQ", + "label": "›", + } + "S(A(CZ_DIAE))": { + "key": "CZ_DDQT", + "label": "\" (dead)", + } + "S(A(CZ_A))": { + "key": "CZ_CAOG", + "label": "Ą", + } + "S(A(CZ_S))": { + "key": "CZ_NARS", + "label": "∑", + } + "S(A(CZ_D))": { + "key": "CZ_INCR", + "label": "∆", + } + "S(A(CZ_H))": { + "key": "CZ_LDQU", + "label": "“", + } + "S(A(CZ_J))": { + "key": "CZ_RDQU", + "label": "”", + } + "S(A(CZ_L))": { + "key": "CZ_CLST", + "label": "Ł", + } + "S(A(CZ_URNG))": { + "key": "CZ_ELLP", + "label": "…", + } + "S(A(CZ_SECT))": { + "key": "CZ_DTIL", + "label": "~ (dead)", + } + "S(A(CZ_C))": { + "key": "CZ_COPY", + "label": "©", + } + "S(A(CZ_V))": { + "key": "CZ_SQRT", + "label": "√", + } + "S(A(CZ_N))": { + "key": "CZ_DLQU", + "label": "„", + } + "S(A(CZ_COMM))": { + "key": "CZ_LEQL", + "label": "≤", + } + "S(A(CZ_DOT))": { + "key": "CZ_GEQL", + "label": "≥", + } + "S(A(CZ_MINS))": { + "key": "CZ_MDSH", + "label": "—", + } + } +} diff --git a/data/constants/keycodes/extras/keycodes_czech_mac_iso_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_czech_mac_iso_0.0.1.hjson new file mode 100644 index 00000000000..5158ea16d8d --- /dev/null +++ b/data/constants/keycodes/extras/keycodes_czech_mac_iso_0.0.1.hjson @@ -0,0 +1,580 @@ +{ + "aliases": { +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │ │ + │ ě │ š │ č │ ř │ ž │ ý │ á │ í │ é │ = │ ' │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │ │ Q │ W │ E │ R │ T │ Z │ U │ I │ O │ P │ ú │ ) │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ + * │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ů │ § │ ¨ │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤ + * │ │ \ │ Y │ X │ C │ V │ B │ N │ M │ , │ . │ - │ │ + * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │ │ │ │ │ │ │ │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + */ + "KC_1": { + "key": "CZ_PLUS", + "label": "+", + } + "KC_2": { + "key": "CZ_ECAR", + "label": "ě", + } + "KC_3": { + "key": "CZ_SCAR", + "label": "š", + } + "KC_4": { + "key": "CZ_CCAR", + "label": "č", + } + "KC_5": { + "key": "CZ_RCAR", + "label": "ř", + } + "KC_6": { + "key": "CZ_ZCAR", + "label": "ž", + } + "KC_7": { + "key": "CZ_YACU", + "label": "ý", + } + "KC_8": { + "key": "CZ_AACU", + "label": "á", + } + "KC_9": { + "key": "CZ_IACU", + "label": "í", + } + "KC_0": { + "key": "CZ_EACU", + "label": "é", + } + "KC_MINS": { + "key": "CZ_EQL", + "label": "=", + } + "KC_EQL": { + "key": "CZ_ACUT", + "label": "' (dead)", + } + "KC_Q": { + "key": "CZ_Q", + "label": "Q", + } + "KC_W": { + "key": "CZ_W", + "label": "W", + } + "KC_E": { + "key": "CZ_E", + "label": "E", + } + "KC_R": { + "key": "CZ_R", + "label": "R", + } + "KC_T": { + "key": "CZ_T", + "label": "T", + } + "KC_Y": { + "key": "CZ_Z", + "label": "Z", + } + "KC_U": { + "key": "CZ_U", + "label": "U", + } + "KC_I": { + "key": "CZ_I", + "label": "I", + } + "KC_O": { + "key": "CZ_O", + "label": "O", + } + "KC_P": { + "key": "CZ_P", + "label": "P", + } + "KC_LBRC": { + "key": "CZ_UACU", + "label": "ú", + } + "KC_RBRC": { + "key": "CZ_RPRN", + "label": ")", + } + "KC_A": { + "key": "CZ_A", + "label": "A", + } + "KC_S": { + "key": "CZ_S", + "label": "S", + } + "KC_D": { + "key": "CZ_D", + "label": "D", + } + "KC_F": { + "key": "CZ_F", + "label": "F", + } + "KC_G": { + "key": "CZ_G", + "label": "G", + } + "KC_H": { + "key": "CZ_H", + "label": "H", + } + "KC_J": { + "key": "CZ_J", + "label": "J", + } + "KC_K": { + "key": "CZ_K", + "label": "K", + } + "KC_L": { + "key": "CZ_L", + "label": "L", + } + "KC_SCLN": { + "key": "CZ_URNG", + "label": "ů", + } + "KC_QUOT": { + "key": "CZ_SECT", + "label": "§", + } + "KC_NUHS": { + "key": "CZ_DIAE", + "label": "¨ (dead)", + } + "KC_NUBS": { + "key": "CZ_BSLS", + "label": "\\", + } + "KC_Z": { + "key": "CZ_Y", + "label": "Y", + } + "KC_X": { + "key": "CZ_X", + "label": "X", + } + "KC_C": { + "key": "CZ_C", + "label": "C", + } + "KC_V": { + "key": "CZ_V", + "label": "V", + } + "KC_B": { + "key": "CZ_B", + "label": "B", + } + "KC_N": { + "key": "CZ_N", + "label": "N", + } + "KC_M": { + "key": "CZ_M", + "label": "M", + } + "KC_COMM": { + "key": "CZ_COMM", + "label": ",", + } + "KC_DOT": { + "key": "CZ_DOT", + "label": ".", + } + "KC_SLSH": { + "key": "CZ_MINS", + "label": "-", + } +/* Shifted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ % │ ˇ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ / │ ( │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ + * │ │ │ │ │ │ │ │ │ │ │ " │ ! │ ` │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤ + * │ │ | │ │ │ │ │ │ │ │ ? │ : │ _ │ │ + * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │ │ │ │ │ │ │ │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + */ + "S(CZ_PLUS)": { + "key": "CZ_1", + "label": "1", + } + "S(CZ_ECAR)": { + "key": "CZ_2", + "label": "2", + } + "S(CZ_SCAR)": { + "key": "CZ_3", + "label": "3", + } + "S(CZ_CCAR)": { + "key": "CZ_4", + "label": "4", + } + "S(CZ_RCAR)": { + "key": "CZ_5", + "label": "5", + } + "S(CZ_ZCAR)": { + "key": "CZ_6", + "label": "6", + } + "S(CZ_YACU)": { + "key": "CZ_7", + "label": "7", + } + "S(CZ_AACU)": { + "key": "CZ_8", + "label": "8", + } + "S(CZ_IACU)": { + "key": "CZ_9", + "label": "9", + } + "S(CZ_EACU)": { + "key": "CZ_0", + "label": "0", + } + "S(CZ_EQL)": { + "key": "CZ_PERC", + "label": "%", + } + "S(CZ_ACUT)": { + "key": "CZ_CARN", + "label": "ˇ (dead)", + } + "S(CZ_UACU)": { + "key": "CZ_SLSH", + "label": "/", + } + "S(CZ_RPRN)": { + "key": "CZ_LPRN", + "label": "(", + } + "S(CZ_URNG)": { + "key": "CZ_DQUO", + "label": "\"", + } + "S(CZ_SECT)": { + "key": "CZ_EXLM", + "label": "!", + } + "S(CZ_DIAE)": { + "key": "CZ_GRV", + "label": "`", + } + "S(CZ_BSLS)": { + "key": "CZ_PIPE", + "label": "|", + } + "S(CZ_COMM)": { + "key": "CZ_QUES", + "label": "?", + } + "S(CZ_DOT)": { + "key": "CZ_COLN", + "label": ":", + } + "S(CZ_MINS)": { + "key": "CZ_UNDS", + "label": "_", + } +/* Alted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │ │ │ @ │ # │ $ │ ~ │ ^ │ & │ * │ { │ } │ ° │ ^ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │ │ │ ė │ ę │ € │ │ ż │ │ │ │ │ [ │ ] │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ + * │ │ ą │ ß │ ∂ │ │ │ ‘ │ ’ │ │ ł │ ; │ ' │ │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤ + * │ │ │ │ │ │ │ │ ‚ │ │ < │ > │ – │ │ + * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │ │ │ │ │ │ │ │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + */ + "A(CZ_ECAR)": { + "key": "CZ_AT", + "label": "@", + } + "A(CZ_SCAR)": { + "key": "CZ_HASH", + "label": "#", + } + "A(CZ_CCAR)": { + "key": "CZ_DLR", + "label": "$", + } + "A(CZ_RCAR)": { + "key": "CZ_TILD", + "label": "~", + } + "A(CZ_ZCAR)": { + "key": "CZ_CIRC", + "label": "^", + } + "A(CZ_YACU)": { + "key": "CZ_AMPR", + "label": "&", + } + "A(CZ_AACU)": { + "key": "CZ_ASTR", + "label": "*", + } + "A(CZ_IACU)": { + "key": "CZ_LCBR", + "label": "{", + } + "A(CZ_EACU)": { + "key": "CZ_RCBR", + "label": "}", + } + "A(CZ_EQL)": { + "key": "CZ_RNGA", + "label": "° (dead)", + } + "A(CZ_ACUT)": { + "key": "CZ_DCIR", + "label": "^ (dead)", + } + "A(CZ_W)": { + "key": "CZ_LEDT", + "label": "ė", + } + "A(CZ_E)": { + "key": "CZ_LEOG", + "label": "ę", + } + "A(CZ_R)": { + "key": "CZ_EURO", + "label": "€", + } + "A(CZ_Z)": { + "key": "CZ_LZDT", + "label": "ż", + } + "A(CZ_UACU)": { + "key": "CZ_LBRC", + "label": "[", + } + "A(CZ_RPRN)": { + "key": "CZ_RBRC", + "label": "]", + } + "A(CZ_A)": { + "key": "CZ_LAOG", + "label": "ą", + } + "A(CZ_S)": { + "key": "CZ_SS", + "label": "ß", + } + "A(CZ_D)": { + "key": "CZ_PDIF", + "label": "∂", + } + "A(CZ_H)": { + "key": "CZ_LSQU", + "label": "‘", + } + "A(CZ_J)": { + "key": "CZ_RSQU", + "label": "’", + } + "A(CZ_L)": { + "key": "CZ_LLST", + "label": "ł", + } + "A(CZ_URNG)": { + "key": "CZ_SCLN", + "label": ";", + } + "A(CZ_SECT)": { + "key": "CZ_QUOT", + "label": "'", + } + "A(CZ_N)": { + "key": "CZ_SLQU", + "label": "‚", + } + "A(CZ_COMM)": { + "key": "CZ_LABK", + "label": "<", + } + "A(CZ_DOT)": { + "key": "CZ_RABK", + "label": ">", + } + "A(CZ_MINS)": { + "key": "CZ_NDSH", + "label": "–", + } +/* Shift+Alted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ + * │ │ ¬ │ • │ ≠ │ £ │ ◊ │ † │ ¶ │ ÷ │ « │ » │ , │ - │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ + * │ │ │ Ė │ Ę │ ® │ ™ │ Ż │ │ │ │ │ ‹ │ › │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ + * │ │ Ą │ ∑ │ ∆ │ │ │ “ │ ” │ │ Ł │ … │ ~ │ " │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤ + * │ │ │ │ │ © │ √ │ │ „ │ │ ≤ │ ≥ │ — │ │ + * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤ + * │ │ │ │ │ │ │ │ + * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘ + */ + "S(A(CZ_1))": { + "key": "CZ_NOT", + "label": "¬", + } + "S(A(CZ_2))": { + "key": "CZ_BULT", + "label": "•", + } + "S(A(CZ_3))": { + "key": "CZ_NEQL", + "label": "≠", + } + "S(A(CZ_4))": { + "key": "CZ_PND", + "label": "£", + } + "S(A(CZ_5))": { + "key": "CZ_LOZN", + "label": "◊", + } + "S(A(CZ_6))": { + "key": "CZ_DAGG", + "label": "†", + } + "S(A(CZ_7))": { + "key": "CZ_PARA", + "label": "¶", + } + "S(A(CZ_8))": { + "key": "CZ_DIV", + "label": "÷", + } + "S(A(CZ_9))": { + "key": "CZ_LDAQ", + "label": "«", + } + "S(A(CZ_0))": { + "key": "CZ_RDAQ", + "label": "»", + } + "S(A(CZ_EQL))": { + "key": "CZ_DCOM", + "label": ", (dead)", + } + "S(A(CZ_ACUT))": { + "key": "CZ_DHPN", + "label": "- (dead)", + } + "S(A(CZ_W))": { + "key": "CZ_CEDT", + "label": "Ė", + } + "S(A(CZ_E))": { + "key": "CZ_CEOG", + "label": "Ę", + } + "S(A(CZ_R))": { + "key": "CZ_REGD", + "label": "®", + } + "S(A(CZ_T))": { + "key": "CZ_TM", + "label": "™", + } + "S(A(CZ_Z))": { + "key": "CZ_CZDT", + "label": "Ż", + } + "S(A(CZ_UACU))": { + "key": "CZ_LSAQ", + "label": "‹", + } + "S(A(CZ_RPRN))": { + "key": "CZ_RSAQ", + "label": "›", + } + "S(A(CZ_A))": { + "key": "CZ_CAOG", + "label": "Ą", + } + "S(A(CZ_S))": { + "key": "CZ_NARS", + "label": "∑", + } + "S(A(CZ_D))": { + "key": "CZ_INCR", + "label": "∆", + } + "S(A(CZ_H))": { + "key": "CZ_LDQU", + "label": "“", + } + "S(A(CZ_J))": { + "key": "CZ_RDQU", + "label": "”", + } + "S(A(CZ_L))": { + "key": "CZ_CLST", + "label": "Ł", + } + "S(A(CZ_URNG))": { + "key": "CZ_ELLP", + "label": "…", + } + "S(A(CZ_SECT))": { + "key": "CZ_DTIL", + "label": "~ (dead)", + } + "S(A(CZ_DIAE))": { + "key": "CZ_DDQT", + "label": "\" (dead)", + } + "S(A(CZ_C))": { + "key": "CZ_COPY", + "label": "©", + } + "S(A(CZ_V))": { + "key": "CZ_SQRT", + "label": "√", + } + "S(A(CZ_N))": { + "key": "CZ_DLQU", + "label": "„", + } + "S(A(CZ_COMM))": { + "key": "CZ_LEQL", + "label": "≤", + } + "S(A(CZ_DOT))": { + "key": "CZ_GEQL", + "label": "≥", + } + "S(A(CZ_MINS))": { + "key": "CZ_MDSH", + "label": "—", + } + } +} diff --git a/docs/reference_keymap_extras.md b/docs/reference_keymap_extras.md index cf2ab288761..191e0d4ea8d 100644 --- a/docs/reference_keymap_extras.md +++ b/docs/reference_keymap_extras.md @@ -23,6 +23,8 @@ These headers are located in [`quantum/keymap_extras/`](https://github.com/qmk/q |Canadian Multilingual (CSA) |`keymap_canadian_multilingual.h` |`sendstring_canadian_multilingual.h`| |Croatian |`keymap_croatian.h` |`sendstring_croatian.h` | |Czech |`keymap_czech.h` |`sendstring_czech.h` | +|Czech (macOS, ANSI) |`keymap_czech_mac_ansi.h` |`sendstring_czech_mac_ansi.h` | +|Czech (macOS, ISO) |`keymap_czech_mac_iso.h` |`sendstring_czech_mac_iso.h` | |Danish |`keymap_danish.h` |`sendstring_danish.h` | |Dutch (Belgium) |`keymap_belgian.h` |`sendstring_belgian.h` | |English (Ireland) |`keymap_irish.h` | | diff --git a/quantum/keymap_extras/keymap_czech_mac_ansi.h b/quantum/keymap_extras/keymap_czech_mac_ansi.h new file mode 100644 index 00000000000..ac2f078d980 --- /dev/null +++ b/quantum/keymap_extras/keymap_czech_mac_ansi.h @@ -0,0 +1,162 @@ +// 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 CZ_BSLS KC_GRV // (backslash) +#define CZ_PLUS KC_1 // + +#define CZ_ECAR KC_2 // ě +#define CZ_SCAR KC_3 // š +#define CZ_CCAR KC_4 // č +#define CZ_RCAR KC_5 // ř +#define CZ_ZCAR KC_6 // ž +#define CZ_YACU KC_7 // ý +#define CZ_AACU KC_8 // á +#define CZ_IACU KC_9 // í +#define CZ_EACU KC_0 // é +#define CZ_EQL KC_MINS // = +#define CZ_ACUT KC_EQL // ' (dead) +#define CZ_Q KC_Q // Q +#define CZ_W KC_W // W +#define CZ_E KC_E // E +#define CZ_R KC_R // R +#define CZ_T KC_T // T +#define CZ_Z KC_Y // Z +#define CZ_U KC_U // U +#define CZ_I KC_I // I +#define CZ_O KC_O // O +#define CZ_P KC_P // P +#define CZ_UACU KC_LBRC // ú +#define CZ_RPRN KC_RBRC // ) +#define CZ_DIAE KC_NUHS // ¨ (dead) +#define CZ_A KC_A // A +#define CZ_S KC_S // S +#define CZ_D KC_D // D +#define CZ_F KC_F // F +#define CZ_G KC_G // G +#define CZ_H KC_H // H +#define CZ_J KC_J // J +#define CZ_K KC_K // K +#define CZ_L KC_L // L +#define CZ_URNG KC_SCLN // ů +#define CZ_SECT KC_QUOT // § +#define CZ_Y KC_Z // Y +#define CZ_X KC_X // X +#define CZ_C KC_C // C +#define CZ_V KC_V // V +#define CZ_B KC_B // B +#define CZ_N KC_N // N +#define CZ_M KC_M // M +#define CZ_COMM KC_COMM // , +#define CZ_DOT KC_DOT // . +#define CZ_MINS KC_SLSH // - +#define CZ_PIPE S(CZ_BSLS) // | +#define CZ_1 S(CZ_PLUS) // 1 +#define CZ_2 S(CZ_ECAR) // 2 +#define CZ_3 S(CZ_SCAR) // 3 +#define CZ_4 S(CZ_CCAR) // 4 +#define CZ_5 S(CZ_RCAR) // 5 +#define CZ_6 S(CZ_ZCAR) // 6 +#define CZ_7 S(CZ_YACU) // 7 +#define CZ_8 S(CZ_AACU) // 8 +#define CZ_9 S(CZ_IACU) // 9 +#define CZ_0 S(CZ_EACU) // 0 +#define CZ_PERC S(CZ_EQL) // % +#define CZ_CARN S(CZ_ACUT) // ˇ (dead) +#define CZ_SLSH S(CZ_UACU) // / +#define CZ_LPRN S(CZ_RPRN) // ( +#define CZ_GRV S(CZ_DIAE) // ` +#define CZ_DQUO S(CZ_URNG) // " +#define CZ_EXLM S(CZ_SECT) // ! +#define CZ_QUES S(CZ_COMM) // ? +#define CZ_COLN S(CZ_DOT) // : +#define CZ_UNDS S(CZ_MINS) // _ +#define CZ_AT A(CZ_ECAR) // @ +#define CZ_HASH A(CZ_SCAR) // # +#define CZ_DLR A(CZ_CCAR) // $ +#define CZ_TILD A(CZ_RCAR) // ~ +#define CZ_CIRC A(CZ_ZCAR) // ^ +#define CZ_AMPR A(CZ_YACU) // & +#define CZ_ASTR A(CZ_AACU) // * +#define CZ_LCBR A(CZ_IACU) // { +#define CZ_RCBR A(CZ_EACU) // } +#define CZ_RNGA A(CZ_EQL) // ° (dead) +#define CZ_DCIR A(CZ_ACUT) // ^ (dead) +#define CZ_LEDT A(CZ_W) // ė +#define CZ_LEOG A(CZ_E) // ę +#define CZ_EURO A(CZ_R) // € +#define CZ_LZDT A(CZ_Z) // ż +#define CZ_LBRC A(CZ_UACU) // [ +#define CZ_RBRC A(CZ_RPRN) // ] +#define CZ_LAOG A(CZ_A) // ą +#define CZ_SS A(CZ_S) // ß +#define CZ_PDIF A(CZ_D) // ∂ +#define CZ_LSQU A(CZ_H) // ‘ +#define CZ_RSQU A(CZ_J) // ’ +#define CZ_LLST A(CZ_L) // ł +#define CZ_SCLN A(CZ_URNG) // ; +#define CZ_QUOT A(CZ_SECT) // ' +#define CZ_SLQU A(CZ_N) // ‚ +#define CZ_LABK A(CZ_COMM) // < +#define CZ_RABK A(CZ_DOT) // > +#define CZ_NDSH A(CZ_MINS) // – +#define CZ_NOT S(A(CZ_1)) // ¬ +#define CZ_BULT S(A(CZ_2)) // • +#define CZ_NEQL S(A(CZ_3)) // ≠ +#define CZ_PND S(A(CZ_4)) // £ +#define CZ_LOZN S(A(CZ_5)) // ◊ +#define CZ_DAGG S(A(CZ_6)) // † +#define CZ_PARA S(A(CZ_7)) // ¶ +#define CZ_DIV S(A(CZ_8)) // ÷ +#define CZ_LDAQ S(A(CZ_9)) // « +#define CZ_RDAQ S(A(CZ_0)) // » +#define CZ_DCOM S(A(CZ_EQL)) // , (dead) +#define CZ_DHPN S(A(CZ_ACUT)) // - (dead) +#define CZ_CEDT S(A(CZ_W)) // Ė +#define CZ_CEOG S(A(CZ_E)) // Ę +#define CZ_REGD S(A(CZ_R)) // ® +#define CZ_TM S(A(CZ_T)) // ™ +#define CZ_CZDT S(A(CZ_Z)) // Ż +#define CZ_LSAQ S(A(CZ_UACU)) // ‹ +#define CZ_RSAQ S(A(CZ_RPRN)) // › +#define CZ_DDQT S(A(CZ_DIAE)) // " (dead) +#define CZ_CAOG S(A(CZ_A)) // Ą +#define CZ_NARS S(A(CZ_S)) // ∑ +#define CZ_INCR S(A(CZ_D)) // ∆ +#define CZ_LDQU S(A(CZ_H)) // “ +#define CZ_RDQU S(A(CZ_J)) // ” +#define CZ_CLST S(A(CZ_L)) // Ł +#define CZ_ELLP S(A(CZ_URNG)) // … +#define CZ_DTIL S(A(CZ_SECT)) // ~ (dead) +#define CZ_COPY S(A(CZ_C)) // © +#define CZ_SQRT S(A(CZ_V)) // √ +#define CZ_DLQU S(A(CZ_N)) // „ +#define CZ_LEQL S(A(CZ_COMM)) // ≤ +#define CZ_GEQL S(A(CZ_DOT)) // ≥ +#define CZ_MDSH S(A(CZ_MINS)) // — + diff --git a/quantum/keymap_extras/keymap_czech_mac_iso.h b/quantum/keymap_extras/keymap_czech_mac_iso.h new file mode 100644 index 00000000000..4b56e15df13 --- /dev/null +++ b/quantum/keymap_extras/keymap_czech_mac_iso.h @@ -0,0 +1,162 @@ +// 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 CZ_PLUS KC_1 // + +#define CZ_ECAR KC_2 // ě +#define CZ_SCAR KC_3 // š +#define CZ_CCAR KC_4 // č +#define CZ_RCAR KC_5 // ř +#define CZ_ZCAR KC_6 // ž +#define CZ_YACU KC_7 // ý +#define CZ_AACU KC_8 // á +#define CZ_IACU KC_9 // í +#define CZ_EACU KC_0 // é +#define CZ_EQL KC_MINS // = +#define CZ_ACUT KC_EQL // ' (dead) +#define CZ_Q KC_Q // Q +#define CZ_W KC_W // W +#define CZ_E KC_E // E +#define CZ_R KC_R // R +#define CZ_T KC_T // T +#define CZ_Z KC_Y // Z +#define CZ_U KC_U // U +#define CZ_I KC_I // I +#define CZ_O KC_O // O +#define CZ_P KC_P // P +#define CZ_UACU KC_LBRC // ú +#define CZ_RPRN KC_RBRC // ) +#define CZ_A KC_A // A +#define CZ_S KC_S // S +#define CZ_D KC_D // D +#define CZ_F KC_F // F +#define CZ_G KC_G // G +#define CZ_H KC_H // H +#define CZ_J KC_J // J +#define CZ_K KC_K // K +#define CZ_L KC_L // L +#define CZ_URNG KC_SCLN // ů +#define CZ_SECT KC_QUOT // § +#define CZ_DIAE KC_NUHS // ¨ (dead) +#define CZ_BSLS KC_NUBS // (backslash) +#define CZ_Y KC_Z // Y +#define CZ_X KC_X // X +#define CZ_C KC_C // C +#define CZ_V KC_V // V +#define CZ_B KC_B // B +#define CZ_N KC_N // N +#define CZ_M KC_M // M +#define CZ_COMM KC_COMM // , +#define CZ_DOT KC_DOT // . +#define CZ_MINS KC_SLSH // - +#define CZ_1 S(CZ_PLUS) // 1 +#define CZ_2 S(CZ_ECAR) // 2 +#define CZ_3 S(CZ_SCAR) // 3 +#define CZ_4 S(CZ_CCAR) // 4 +#define CZ_5 S(CZ_RCAR) // 5 +#define CZ_6 S(CZ_ZCAR) // 6 +#define CZ_7 S(CZ_YACU) // 7 +#define CZ_8 S(CZ_AACU) // 8 +#define CZ_9 S(CZ_IACU) // 9 +#define CZ_0 S(CZ_EACU) // 0 +#define CZ_PERC S(CZ_EQL) // % +#define CZ_CARN S(CZ_ACUT) // ˇ (dead) +#define CZ_SLSH S(CZ_UACU) // / +#define CZ_LPRN S(CZ_RPRN) // ( +#define CZ_DQUO S(CZ_URNG) // " +#define CZ_EXLM S(CZ_SECT) // ! +#define CZ_GRV S(CZ_DIAE) // ` +#define CZ_PIPE S(CZ_BSLS) // | +#define CZ_QUES S(CZ_COMM) // ? +#define CZ_COLN S(CZ_DOT) // : +#define CZ_UNDS S(CZ_MINS) // _ +#define CZ_AT A(CZ_ECAR) // @ +#define CZ_HASH A(CZ_SCAR) // # +#define CZ_DLR A(CZ_CCAR) // $ +#define CZ_TILD A(CZ_RCAR) // ~ +#define CZ_CIRC A(CZ_ZCAR) // ^ +#define CZ_AMPR A(CZ_YACU) // & +#define CZ_ASTR A(CZ_AACU) // * +#define CZ_LCBR A(CZ_IACU) // { +#define CZ_RCBR A(CZ_EACU) // } +#define CZ_RNGA A(CZ_EQL) // ° (dead) +#define CZ_DCIR A(CZ_ACUT) // ^ (dead) +#define CZ_LEDT A(CZ_W) // ė +#define CZ_LEOG A(CZ_E) // ę +#define CZ_EURO A(CZ_R) // € +#define CZ_LZDT A(CZ_Z) // ż +#define CZ_LBRC A(CZ_UACU) // [ +#define CZ_RBRC A(CZ_RPRN) // ] +#define CZ_LAOG A(CZ_A) // ą +#define CZ_SS A(CZ_S) // ß +#define CZ_PDIF A(CZ_D) // ∂ +#define CZ_LSQU A(CZ_H) // ‘ +#define CZ_RSQU A(CZ_J) // ’ +#define CZ_LLST A(CZ_L) // ł +#define CZ_SCLN A(CZ_URNG) // ; +#define CZ_QUOT A(CZ_SECT) // ' +#define CZ_SLQU A(CZ_N) // ‚ +#define CZ_LABK A(CZ_COMM) // < +#define CZ_RABK A(CZ_DOT) // > +#define CZ_NDSH A(CZ_MINS) // – +#define CZ_NOT S(A(CZ_1)) // ¬ +#define CZ_BULT S(A(CZ_2)) // • +#define CZ_NEQL S(A(CZ_3)) // ≠ +#define CZ_PND S(A(CZ_4)) // £ +#define CZ_LOZN S(A(CZ_5)) // ◊ +#define CZ_DAGG S(A(CZ_6)) // † +#define CZ_PARA S(A(CZ_7)) // ¶ +#define CZ_DIV S(A(CZ_8)) // ÷ +#define CZ_LDAQ S(A(CZ_9)) // « +#define CZ_RDAQ S(A(CZ_0)) // » +#define CZ_DCOM S(A(CZ_EQL)) // , (dead) +#define CZ_DHPN S(A(CZ_ACUT)) // - (dead) +#define CZ_CEDT S(A(CZ_W)) // Ė +#define CZ_CEOG S(A(CZ_E)) // Ę +#define CZ_REGD S(A(CZ_R)) // ® +#define CZ_TM S(A(CZ_T)) // ™ +#define CZ_CZDT S(A(CZ_Z)) // Ż +#define CZ_LSAQ S(A(CZ_UACU)) // ‹ +#define CZ_RSAQ S(A(CZ_RPRN)) // › +#define CZ_CAOG S(A(CZ_A)) // Ą +#define CZ_NARS S(A(CZ_S)) // ∑ +#define CZ_INCR S(A(CZ_D)) // ∆ +#define CZ_LDQU S(A(CZ_H)) // “ +#define CZ_RDQU S(A(CZ_J)) // ” +#define CZ_CLST S(A(CZ_L)) // Ł +#define CZ_ELLP S(A(CZ_URNG)) // … +#define CZ_DTIL S(A(CZ_SECT)) // ~ (dead) +#define CZ_DDQT S(A(CZ_DIAE)) // " (dead) +#define CZ_COPY S(A(CZ_C)) // © +#define CZ_SQRT S(A(CZ_V)) // √ +#define CZ_DLQU S(A(CZ_N)) // „ +#define CZ_LEQL S(A(CZ_COMM)) // ≤ +#define CZ_GEQL S(A(CZ_DOT)) // ≥ +#define CZ_MDSH S(A(CZ_MINS)) // — + diff --git a/quantum/keymap_extras/sendstring_czech_mac_ansi.h b/quantum/keymap_extras/sendstring_czech_mac_ansi.h new file mode 100644 index 00000000000..a60faa3237b --- /dev/null +++ b/quantum/keymap_extras/sendstring_czech_mac_ansi.h @@ -0,0 +1,120 @@ +/* Copyright 2024 Tabonx + * + * 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 . + */ + +// Sendstring lookup tables for macOS Czech ANSI layouts + +#pragma once + +#include "keymap_czech_mac_ansi.h" +#include "send_string.h" + +// clang-format off + +const uint8_t ascii_to_shift_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 1, 1, 0, 0, 1, 0, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 1), + KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1), + KCLUT_ENTRY(1, 1, 1, 0, 0, 0, 0, 1), + KCLUT_ENTRY(0, 1, 1, 1, 1, 1, 1, 1), + KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1), + KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1), + KCLUT_ENTRY(1, 1, 1, 0, 0, 0, 0, 1), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 1, 0, 0, 0) +}; + +const uint8_t ascii_to_altgr_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 1, 1, 0, 1, 1), + KCLUT_ENTRY(0, 0, 1, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 1, 1, 0, 1, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 1, 0, 1, 1, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 1, 0, 1, 1, 0), +}; + +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0) +}; + +const uint8_t ascii_to_keycode_lut[128] PROGMEM = { + // NUL SOH STX ETX EOT ENQ ACK BEL + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + // BS TAB LF VT FF CR SO SI + KC_BSPC, KC_TAB, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + // DLE DC1 DC2 DC3 DC4 NAK SYN ETB + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + // CAN EM SUB ESC FS GS RS US + XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + + // ! " # $ % & ' + KC_SPC, CZ_SECT, CZ_URNG, CZ_SCAR, CZ_CCAR, CZ_EQL, CZ_YACU, CZ_SECT, + // ( ) * + , - . / + CZ_RPRN, CZ_RPRN, CZ_AACU, CZ_PLUS, CZ_COMM, CZ_MINS, CZ_DOT, CZ_UACU, + // 0 1 2 3 4 5 6 7 + CZ_EACU, CZ_PLUS, CZ_ECAR, CZ_SCAR, CZ_CCAR, CZ_RCAR, CZ_ZCAR, CZ_YACU, + // 8 9 : ; < = > ? + CZ_AACU, CZ_IACU, CZ_DOT, CZ_URNG, CZ_COMM, CZ_EQL, CZ_DOT, CZ_COMM, + // @ A B C D E F G + CZ_ECAR, CZ_A, CZ_B, CZ_C, CZ_D, CZ_E, CZ_F, CZ_G, + // H I J K L M N O + CZ_H, CZ_I, CZ_J, CZ_K, CZ_L, CZ_M, CZ_N, CZ_O, + // P Q R S T U V W + CZ_P, CZ_Q, CZ_R, CZ_S, CZ_T, CZ_U, CZ_V, CZ_W, + // X Y Z [ \ ] ^ _ + CZ_X, CZ_Y, CZ_Z, CZ_UACU, CZ_BSLS, CZ_RPRN, CZ_ZCAR, CZ_MINS, + // ` a b c d e f g + CZ_DIAE, CZ_A, CZ_B, CZ_C, CZ_D, CZ_E, CZ_F, CZ_G, + // h i j k l m n o + CZ_H, CZ_I, CZ_J, CZ_K, CZ_L, CZ_M, CZ_N, CZ_O, + // p q r s t u v w + CZ_P, CZ_Q, CZ_R, CZ_S, CZ_T, CZ_U, CZ_V, CZ_W, + // x y z { | } ~ DEL + CZ_X, CZ_Y, CZ_Z, CZ_IACU, CZ_BSLS, CZ_EACU, CZ_RCAR, KC_DEL +}; diff --git a/quantum/keymap_extras/sendstring_czech_mac_iso.h b/quantum/keymap_extras/sendstring_czech_mac_iso.h new file mode 100644 index 00000000000..9d47087da05 --- /dev/null +++ b/quantum/keymap_extras/sendstring_czech_mac_iso.h @@ -0,0 +1,120 @@ +/* Copyright 2024 Tabonx + * + * 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 . + */ + +// Sendstring lookup tables for macOS Czech ISO layouts + +#pragma once + +#include "keymap_czech_mac_iso.h" +#include "send_string.h" + +// clang-format off + +const uint8_t ascii_to_shift_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 1, 1, 0, 0, 1, 0, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 1), + KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1), + KCLUT_ENTRY(1, 1, 1, 0, 0, 0, 0, 1), + KCLUT_ENTRY(0, 1, 1, 1, 1, 1, 1, 1), + KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1), + KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1), + KCLUT_ENTRY(1, 1, 1, 0, 0, 0, 0, 1), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 1, 0, 0, 0) +}; + +const uint8_t ascii_to_altgr_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 1, 1, 0, 1, 1), + KCLUT_ENTRY(0, 0, 1, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 1, 1, 0, 1, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 1, 0, 1, 1, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 1, 0, 1, 1, 0), +}; + +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0) +}; + +const uint8_t ascii_to_keycode_lut[128] PROGMEM = { + // NUL SOH STX ETX EOT ENQ ACK BEL + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + // BS TAB LF VT FF CR SO SI + KC_BSPC, KC_TAB, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + // DLE DC1 DC2 DC3 DC4 NAK SYN ETB + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + // CAN EM SUB ESC FS GS RS US + XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + + // ! " # $ % & ' + KC_SPC, CZ_SECT, CZ_URNG, CZ_SCAR, CZ_CCAR, CZ_EQL, CZ_YACU, CZ_SECT, + // ( ) * + , - . / + CZ_RPRN, CZ_RPRN, CZ_AACU, CZ_PLUS, CZ_COMM, CZ_MINS, CZ_DOT, CZ_UACU, + // 0 1 2 3 4 5 6 7 + CZ_EACU, CZ_PLUS, CZ_ECAR, CZ_SCAR, CZ_CCAR, CZ_RCAR, CZ_ZCAR, CZ_YACU, + // 8 9 : ; < = > ? + CZ_AACU, CZ_IACU, CZ_DOT, CZ_URNG, CZ_COMM, CZ_EQL, CZ_DOT, CZ_COMM, + // @ A B C D E F G + CZ_ECAR, CZ_A, CZ_B, CZ_C, CZ_D, CZ_E, CZ_F, CZ_G, + // H I J K L M N O + CZ_H, CZ_I, CZ_J, CZ_K, CZ_L, CZ_M, CZ_N, CZ_O, + // P Q R S T U V W + CZ_P, CZ_Q, CZ_R, CZ_S, CZ_T, CZ_U, CZ_V, CZ_W, + // X Y Z [ \ ] ^ _ + CZ_X, CZ_Y, CZ_Z, CZ_UACU, CZ_BSLS, CZ_RPRN, CZ_ZCAR, CZ_MINS, + // ` a b c d e f g + CZ_DIAE, CZ_A, CZ_B, CZ_C, CZ_D, CZ_E, CZ_F, CZ_G, + // h i j k l m n o + CZ_H, CZ_I, CZ_J, CZ_K, CZ_L, CZ_M, CZ_N, CZ_O, + // p q r s t u v w + CZ_P, CZ_Q, CZ_R, CZ_S, CZ_T, CZ_U, CZ_V, CZ_W, + // x y z { | } ~ DEL + CZ_X, CZ_Y, CZ_Z, CZ_IACU, CZ_BSLS, CZ_EACU, CZ_RCAR, KC_DEL +}; From 4a0ffea41ed5f8836223367181abcf9561cb5dd0 Mon Sep 17 00:00:00 2001 From: Less/Rikki <86894501+lesshonor@users.noreply.github.com> Date: Wed, 1 May 2024 02:58:36 -0400 Subject: [PATCH 48/55] refactor: mechwild/waka60 (#23423) --- keyboards/mechwild/waka60/config.h | 25 +- keyboards/mechwild/waka60/info.json | 1273 ++++++++++++++++- .../mechwild/waka60/keymaps/default/keymap.c | 36 +- .../mechwild/waka60/keymaps/via/keymap.c | 36 +- 4 files changed, 1247 insertions(+), 123 deletions(-) diff --git a/keyboards/mechwild/waka60/config.h b/keyboards/mechwild/waka60/config.h index d9eed88676a..db91eb667e6 100644 --- a/keyboards/mechwild/waka60/config.h +++ b/keyboards/mechwild/waka60/config.h @@ -17,23 +17,10 @@ along with this program. If not, see . #pragma once -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE +#define AUDIO_PIN B5 +#define AUDIO_PWM_DRIVER PWMD1 +#define AUDIO_PWM_CHANNEL 1 +#define AUDIO_STATE_TIMER GPTD4 -/* - * 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 +#define AUDIO_CLICKY +#define AUDIO_INIT_DELAY diff --git a/keyboards/mechwild/waka60/info.json b/keyboards/mechwild/waka60/info.json index f7a0300a6a9..f8b8cad5100 100644 --- a/keyboards/mechwild/waka60/info.json +++ b/keyboards/mechwild/waka60/info.json @@ -1,47 +1,12 @@ { - "keyboard_name": "Waka60", "manufacturer": "MechWild", - "url": "mechwild.com", + "keyboard_name": "Waka60", "maintainer": "Kyle McCreery", - "usb": { - "vid": "0x6D77", - "pid": "0x1709", - "device_version": "1.0.1" - }, - "rgblight": { - "saturation_steps": 8, - "brightness_steps": 8, - "led_count": 3, - "sleep": true, - "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": "A1" - }, - "features": { - "bootmagic": true, - "command": false, - "console": false, - "encoder": true, - "extrakey": true, - "mousekey": true, - "nkro": false, - "rgblight": true - }, - "matrix_pins": { - "cols": ["B10", "B1", "B0", "A7", "A6", "A5", "A4"], - "rows": ["B8", "B4", "B3", "B9", "A15", "B12", "B13", "B14", "B15", "A8"] + "audio": { + "default": { + "clicky": false + }, + "driver": "pwm_software" }, "diode_direction": "COL2ROW", "encoder": { @@ -49,11 +14,84 @@ {"pin_a": "A3", "pin_b": "A2"} ] }, + "features": { + "audio": true, + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["B10", "B1", "B0", "A7", "A6", "A5", "A4"], + "rows": ["B8", "B4", "B3", "B9", "A15", "B12", "B13", "B14", "B15", "A8"] + }, "qmk": { + "locking": { + "enabled": true, + "resync": true + }, "tap_keycode_delay": 10 }, + "rgb_matrix": { + "animations": { + "band_spiral_sat": true, + "band_spiral_val": true, + "breathing": true, + "cycle_all": true, + "cycle_out_in": true, + "cycle_up_down": true, + "gradient_up_down": true, + "hue_breathing": true, + "jellybean_raindrops": true, + "pixel_flow": true, + "pixel_rain": true, + "rainbow_beacon": true, + "raindrops": true + }, + "center_point": [112, 40], + "driver": "ws2812", + "layout": [ + {"x": 112, "y": 12, "flags": 8}, + {"x": 112, "y": 27, "flags": 8}, + {"x": 112, "y": 40, "flags": 8} + ], + "sat_steps": 8, + "sleep": true, + "val_steps": 8 + }, + "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, + "led_count": 3, + "saturation_steps": 8, + "sleep": true + }, + "url": "mechwild.com", + "usb": { + "device_version": "1.0.1", + "pid": "0x1709", + "vid": "0x6D77" + }, + "ws2812": { + "pin": "A1" + }, + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, "layouts": { - "LAYOUT": { + "LAYOUT_1u_1u_1u_1u_1u_2u": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -61,56 +99,1191 @@ {"matrix": [0, 3], "x": 3, "y": 0}, {"matrix": [0, 4], "x": 4, "y": 0}, {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [5, 0], "x": 7, "y": 0}, {"matrix": [5, 1], "x": 8, "y": 0}, {"matrix": [5, 2], "x": 9, "y": 0}, {"matrix": [5, 3], "x": 10, "y": 0}, {"matrix": [5, 4], "x": 11, "y": 0}, {"matrix": [5, 5], "x": 12, "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, 0], "x": 7, "y": 1}, {"matrix": [6, 1], "x": 8, "y": 1}, {"matrix": [6, 2], "x": 9, "y": 1}, {"matrix": [6, 3], "x": 10, "y": 1}, {"matrix": [6, 4], "x": 11, "y": 1}, {"matrix": [6, 5], "x": 12, "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, 0], "x": 7, "y": 2}, {"matrix": [7, 1], "x": 8, "y": 2}, {"matrix": [7, 2], "x": 9, "y": 2}, {"matrix": [7, 3], "x": 10, "y": 2}, {"matrix": [7, 4], "x": 11, "y": 2}, {"matrix": [7, 5], "x": 12, "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, 6], "x": 6, "y": 3, "encoder": 0}, + {"matrix": [8, 0], "x": 7, "y": 3}, + {"matrix": [8, 1], "x": 8, "y": 3}, + {"matrix": [8, 2], "x": 9, "y": 3}, + {"matrix": [8, 3], "x": 10, "y": 3}, + {"matrix": [8, 4], "x": 11, "y": 3}, + {"matrix": [8, 5], "x": 12, "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": [4, 5], "x": 5, "y": 4}, + {"matrix": [4, 6], "x": 6, "y": 4}, + {"matrix": [9, 0], "x": 7, "y": 4}, + {"matrix": [9, 2], "x": 8, "y": 4, "w": 2}, + {"matrix": [9, 3], "x": 10, "y": 4}, + {"matrix": [9, 4], "x": 11, "y": 4}, + {"matrix": [9, 5], "x": 12, "y": 4} + ] + }, + "LAYOUT_1u_1u_1u_1u_2u_1u": { + "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, 0], "x": 7, "y": 0}, + {"matrix": [5, 1], "x": 8, "y": 0}, + {"matrix": [5, 2], "x": 9, "y": 0}, + {"matrix": [5, 3], "x": 10, "y": 0}, + {"matrix": [5, 4], "x": 11, "y": 0}, + {"matrix": [5, 5], "x": 12, "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, 0], "x": 7, "y": 1}, + {"matrix": [6, 1], "x": 8, "y": 1}, + {"matrix": [6, 2], "x": 9, "y": 1}, + {"matrix": [6, 3], "x": 10, "y": 1}, + {"matrix": [6, 4], "x": 11, "y": 1}, + {"matrix": [6, 5], "x": 12, "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, 0], "x": 7, "y": 2}, + {"matrix": [7, 1], "x": 8, "y": 2}, + {"matrix": [7, 2], "x": 9, "y": 2}, + {"matrix": [7, 3], "x": 10, "y": 2}, + {"matrix": [7, 4], "x": 11, "y": 2}, + {"matrix": [7, 5], "x": 12, "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, "encoder": 0}, + {"matrix": [8, 0], "x": 7, "y": 3}, + {"matrix": [8, 1], "x": 8, "y": 3}, + {"matrix": [8, 2], "x": 9, "y": 3}, + {"matrix": [8, 3], "x": 10, "y": 3}, + {"matrix": [8, 4], "x": 11, "y": 3}, + {"matrix": [8, 5], "x": 12, "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": [4, 5], "x": 5, "y": 4}, + {"matrix": [4, 6], "x": 6, "y": 4}, + {"matrix": [9, 1], "x": 7, "y": 4, "w": 2}, + {"matrix": [9, 2], "x": 9, "y": 4}, + {"matrix": [9, 3], "x": 10, "y": 4}, + {"matrix": [9, 4], "x": 11, "y": 4}, + {"matrix": [9, 5], "x": 12, "y": 4} + ] + }, + "LAYOUT_1u_1u_1u_1u_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": [5, 0], "x": 7, "y": 0}, + {"matrix": [5, 1], "x": 8, "y": 0}, + {"matrix": [5, 2], "x": 9, "y": 0}, + {"matrix": [5, 3], "x": 10, "y": 0}, + {"matrix": [5, 4], "x": 11, "y": 0}, + {"matrix": [5, 5], "x": 12, "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, 0], "x": 7, "y": 1}, + {"matrix": [6, 1], "x": 8, "y": 1}, + {"matrix": [6, 2], "x": 9, "y": 1}, + {"matrix": [6, 3], "x": 10, "y": 1}, + {"matrix": [6, 4], "x": 11, "y": 1}, + {"matrix": [6, 5], "x": 12, "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, 0], "x": 7, "y": 2}, + {"matrix": [7, 1], "x": 8, "y": 2}, + {"matrix": [7, 2], "x": 9, "y": 2}, + {"matrix": [7, 3], "x": 10, "y": 2}, + {"matrix": [7, 4], "x": 11, "y": 2}, + {"matrix": [7, 5], "x": 12, "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, "encoder": 0}, + {"matrix": [8, 0], "x": 7, "y": 3}, + {"matrix": [8, 1], "x": 8, "y": 3}, + {"matrix": [8, 2], "x": 9, "y": 3}, + {"matrix": [8, 3], "x": 10, "y": 3}, + {"matrix": [8, 4], "x": 11, "y": 3}, + {"matrix": [8, 5], "x": 12, "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": [4, 5], "x": 5, "y": 4}, + {"matrix": [4, 6], "x": 6, "y": 4}, + {"matrix": [9, 1], "x": 7, "y": 4, "w": 3}, + {"matrix": [9, 3], "x": 10, "y": 4}, + {"matrix": [9, 4], "x": 11, "y": 4}, + {"matrix": [9, 5], "x": 12, "y": 4} + ] + }, + "LAYOUT_1u_1u_3u_1u_1u": { + "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, 0], "x": 7, "y": 0}, + {"matrix": [5, 1], "x": 8, "y": 0}, + {"matrix": [5, 2], "x": 9, "y": 0}, + {"matrix": [5, 3], "x": 10, "y": 0}, + {"matrix": [5, 4], "x": 11, "y": 0}, + {"matrix": [5, 5], "x": 12, "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, 0], "x": 7, "y": 1}, + {"matrix": [6, 1], "x": 8, "y": 1}, + {"matrix": [6, 2], "x": 9, "y": 1}, + {"matrix": [6, 3], "x": 10, "y": 1}, + {"matrix": [6, 4], "x": 11, "y": 1}, + {"matrix": [6, 5], "x": 12, "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, 0], "x": 7, "y": 2}, + {"matrix": [7, 1], "x": 8, "y": 2}, + {"matrix": [7, 2], "x": 9, "y": 2}, + {"matrix": [7, 3], "x": 10, "y": 2}, + {"matrix": [7, 4], "x": 11, "y": 2}, + {"matrix": [7, 5], "x": 12, "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, "encoder": 0}, + {"matrix": [8, 0], "x": 7, "y": 3}, + {"matrix": [8, 1], "x": 8, "y": 3}, + {"matrix": [8, 2], "x": 9, "y": 3}, + {"matrix": [8, 3], "x": 10, "y": 3}, + {"matrix": [8, 4], "x": 11, "y": 3}, + {"matrix": [8, 5], "x": 12, "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": [4, 6], "x": 5, "y": 4, "w": 3}, + {"matrix": [9, 1], "x": 8, "y": 4}, + {"matrix": [9, 2], "x": 9, "y": 4}, + {"matrix": [9, 3], "x": 10, "y": 4}, + {"matrix": [9, 4], "x": 11, "y": 4}, + {"matrix": [9, 5], "x": 12, "y": 4} + ] + }, + "LAYOUT_1u_1u_3u_2u": { + "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, 0], "x": 7, "y": 0}, + {"matrix": [5, 1], "x": 8, "y": 0}, + {"matrix": [5, 2], "x": 9, "y": 0}, + {"matrix": [5, 3], "x": 10, "y": 0}, + {"matrix": [5, 4], "x": 11, "y": 0}, + {"matrix": [5, 5], "x": 12, "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, 0], "x": 7, "y": 1}, + {"matrix": [6, 1], "x": 8, "y": 1}, + {"matrix": [6, 2], "x": 9, "y": 1}, + {"matrix": [6, 3], "x": 10, "y": 1}, + {"matrix": [6, 4], "x": 11, "y": 1}, + {"matrix": [6, 5], "x": 12, "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, 0], "x": 7, "y": 2}, + {"matrix": [7, 1], "x": 8, "y": 2}, + {"matrix": [7, 2], "x": 9, "y": 2}, + {"matrix": [7, 3], "x": 10, "y": 2}, + {"matrix": [7, 4], "x": 11, "y": 2}, + {"matrix": [7, 5], "x": 12, "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, "encoder": 0}, + {"matrix": [8, 0], "x": 7, "y": 3}, + {"matrix": [8, 1], "x": 8, "y": 3}, + {"matrix": [8, 2], "x": 9, "y": 3}, + {"matrix": [8, 3], "x": 10, "y": 3}, + {"matrix": [8, 4], "x": 11, "y": 3}, + {"matrix": [8, 5], "x": 12, "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": [4, 6], "x": 5, "y": 4, "w": 3}, + {"matrix": [9, 2], "x": 8, "y": 4, "w": 2}, + {"matrix": [9, 3], "x": 10, "y": 4}, + {"matrix": [9, 4], "x": 11, "y": 4}, + {"matrix": [9, 5], "x": 12, "y": 4} + ] + }, + "LAYOUT_1u_2u_1u_1u_1u_1u": { + "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, 0], "x": 7, "y": 0}, + {"matrix": [5, 1], "x": 8, "y": 0}, + {"matrix": [5, 2], "x": 9, "y": 0}, + {"matrix": [5, 3], "x": 10, "y": 0}, + {"matrix": [5, 4], "x": 11, "y": 0}, + {"matrix": [5, 5], "x": 12, "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, 0], "x": 7, "y": 1}, + {"matrix": [6, 1], "x": 8, "y": 1}, + {"matrix": [6, 2], "x": 9, "y": 1}, + {"matrix": [6, 3], "x": 10, "y": 1}, + {"matrix": [6, 4], "x": 11, "y": 1}, + {"matrix": [6, 5], "x": 12, "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, 0], "x": 7, "y": 2}, + {"matrix": [7, 1], "x": 8, "y": 2}, + {"matrix": [7, 2], "x": 9, "y": 2}, + {"matrix": [7, 3], "x": 10, "y": 2}, + {"matrix": [7, 4], "x": 11, "y": 2}, + {"matrix": [7, 5], "x": 12, "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, "encoder": 0}, + {"matrix": [8, 0], "x": 7, "y": 3}, + {"matrix": [8, 1], "x": 8, "y": 3}, + {"matrix": [8, 2], "x": 9, "y": 3}, + {"matrix": [8, 3], "x": 10, "y": 3}, + {"matrix": [8, 4], "x": 11, "y": 3}, + {"matrix": [8, 5], "x": 12, "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, 5], "x": 4, "y": 4, "w": 2}, + {"matrix": [4, 6], "x": 6, "y": 4}, + {"matrix": [9, 0], "x": 7, "y": 4}, + {"matrix": [9, 1], "x": 8, "y": 4}, + {"matrix": [9, 2], "x": 9, "y": 4}, + {"matrix": [9, 3], "x": 10, "y": 4}, + {"matrix": [9, 4], "x": 11, "y": 4}, + {"matrix": [9, 5], "x": 12, "y": 4} + ] + }, + "LAYOUT_1u_2u_1u_2u_1u": { + "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, 0], "x": 7, "y": 0}, + {"matrix": [5, 1], "x": 8, "y": 0}, + {"matrix": [5, 2], "x": 9, "y": 0}, + {"matrix": [5, 3], "x": 10, "y": 0}, + {"matrix": [5, 4], "x": 11, "y": 0}, + {"matrix": [5, 5], "x": 12, "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, 0], "x": 7, "y": 1}, + {"matrix": [6, 1], "x": 8, "y": 1}, + {"matrix": [6, 2], "x": 9, "y": 1}, + {"matrix": [6, 3], "x": 10, "y": 1}, + {"matrix": [6, 4], "x": 11, "y": 1}, + {"matrix": [6, 5], "x": 12, "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, 0], "x": 7, "y": 2}, + {"matrix": [7, 1], "x": 8, "y": 2}, + {"matrix": [7, 2], "x": 9, "y": 2}, + {"matrix": [7, 3], "x": 10, "y": 2}, + {"matrix": [7, 4], "x": 11, "y": 2}, + {"matrix": [7, 5], "x": 12, "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, "encoder": 0}, + {"matrix": [8, 0], "x": 7, "y": 3}, + {"matrix": [8, 1], "x": 8, "y": 3}, + {"matrix": [8, 2], "x": 9, "y": 3}, + {"matrix": [8, 3], "x": 10, "y": 3}, + {"matrix": [8, 4], "x": 11, "y": 3}, + {"matrix": [8, 5], "x": 12, "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, 5], "x": 4, "y": 4, "w": 2}, + {"matrix": [4, 6], "x": 6, "y": 4}, + {"matrix": [9, 1], "x": 7, "y": 4, "w": 2}, + {"matrix": [9, 2], "x": 9, "y": 4}, + {"matrix": [9, 3], "x": 10, "y": 4}, + {"matrix": [9, 4], "x": 11, "y": 4}, + {"matrix": [9, 5], "x": 12, "y": 4} + ] + }, + "LAYOUT_1u_2u_1u_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": [5, 0], "x": 7, "y": 0}, + {"matrix": [5, 1], "x": 8, "y": 0}, + {"matrix": [5, 2], "x": 9, "y": 0}, + {"matrix": [5, 3], "x": 10, "y": 0}, + {"matrix": [5, 4], "x": 11, "y": 0}, + {"matrix": [5, 5], "x": 12, "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, 0], "x": 7, "y": 1}, + {"matrix": [6, 1], "x": 8, "y": 1}, + {"matrix": [6, 2], "x": 9, "y": 1}, + {"matrix": [6, 3], "x": 10, "y": 1}, + {"matrix": [6, 4], "x": 11, "y": 1}, + {"matrix": [6, 5], "x": 12, "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, 0], "x": 7, "y": 2}, + {"matrix": [7, 1], "x": 8, "y": 2}, + {"matrix": [7, 2], "x": 9, "y": 2}, + {"matrix": [7, 3], "x": 10, "y": 2}, + {"matrix": [7, 4], "x": 11, "y": 2}, + {"matrix": [7, 5], "x": 12, "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, "encoder": 0}, + {"matrix": [8, 0], "x": 7, "y": 3}, + {"matrix": [8, 1], "x": 8, "y": 3}, + {"matrix": [8, 2], "x": 9, "y": 3}, + {"matrix": [8, 3], "x": 10, "y": 3}, + {"matrix": [8, 4], "x": 11, "y": 3}, + {"matrix": [8, 5], "x": 12, "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, 5], "x": 4, "y": 4, "w": 2}, + {"matrix": [4, 6], "x": 6, "y": 4}, + {"matrix": [9, 1], "x": 7, "y": 4, "w": 3}, + {"matrix": [9, 3], "x": 10, "y": 4}, + {"matrix": [9, 4], "x": 11, "y": 4}, + {"matrix": [9, 5], "x": 12, "y": 4} + ] + }, + "LAYOUT_2u_1u_1u_1u_1u_1u": { + "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, 0], "x": 7, "y": 0}, + {"matrix": [5, 1], "x": 8, "y": 0}, + {"matrix": [5, 2], "x": 9, "y": 0}, + {"matrix": [5, 3], "x": 10, "y": 0}, + {"matrix": [5, 4], "x": 11, "y": 0}, + {"matrix": [5, 5], "x": 12, "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, 0], "x": 7, "y": 1}, + {"matrix": [6, 1], "x": 8, "y": 1}, + {"matrix": [6, 2], "x": 9, "y": 1}, + {"matrix": [6, 3], "x": 10, "y": 1}, + {"matrix": [6, 4], "x": 11, "y": 1}, + {"matrix": [6, 5], "x": 12, "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, 0], "x": 7, "y": 2}, + {"matrix": [7, 1], "x": 8, "y": 2}, + {"matrix": [7, 2], "x": 9, "y": 2}, + {"matrix": [7, 3], "x": 10, "y": 2}, + {"matrix": [7, 4], "x": 11, "y": 2}, + {"matrix": [7, 5], "x": 12, "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, "encoder": 0}, + {"matrix": [8, 0], "x": 7, "y": 3}, + {"matrix": [8, 1], "x": 8, "y": 3}, + {"matrix": [8, 2], "x": 9, "y": 3}, + {"matrix": [8, 3], "x": 10, "y": 3}, + {"matrix": [8, 4], "x": 11, "y": 3}, + {"matrix": [8, 5], "x": 12, "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, "w": 2}, + {"matrix": [4, 5], "x": 5, "y": 4}, + {"matrix": [4, 6], "x": 6, "y": 4}, + {"matrix": [9, 0], "x": 7, "y": 4}, + {"matrix": [9, 1], "x": 8, "y": 4}, + {"matrix": [9, 2], "x": 9, "y": 4}, + {"matrix": [9, 3], "x": 10, "y": 4}, + {"matrix": [9, 4], "x": 11, "y": 4}, + {"matrix": [9, 5], "x": 12, "y": 4} + ] + }, + "LAYOUT_2u_1u_1u_1u_2u": { + "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, 0], "x": 7, "y": 0}, + {"matrix": [5, 1], "x": 8, "y": 0}, + {"matrix": [5, 2], "x": 9, "y": 0}, + {"matrix": [5, 3], "x": 10, "y": 0}, + {"matrix": [5, 4], "x": 11, "y": 0}, + {"matrix": [5, 5], "x": 12, "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, 0], "x": 7, "y": 1}, + {"matrix": [6, 1], "x": 8, "y": 1}, + {"matrix": [6, 2], "x": 9, "y": 1}, + {"matrix": [6, 3], "x": 10, "y": 1}, + {"matrix": [6, 4], "x": 11, "y": 1}, + {"matrix": [6, 5], "x": 12, "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, 0], "x": 7, "y": 2}, + {"matrix": [7, 1], "x": 8, "y": 2}, + {"matrix": [7, 2], "x": 9, "y": 2}, + {"matrix": [7, 3], "x": 10, "y": 2}, + {"matrix": [7, 4], "x": 11, "y": 2}, + {"matrix": [7, 5], "x": 12, "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, "encoder": 0}, + {"matrix": [8, 0], "x": 7, "y": 3}, + {"matrix": [8, 1], "x": 8, "y": 3}, + {"matrix": [8, 2], "x": 9, "y": 3}, + {"matrix": [8, 3], "x": 10, "y": 3}, + {"matrix": [8, 4], "x": 11, "y": 3}, + {"matrix": [8, 5], "x": 12, "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, "w": 2}, + {"matrix": [4, 5], "x": 5, "y": 4}, + {"matrix": [4, 6], "x": 6, "y": 4}, + {"matrix": [9, 0], "x": 7, "y": 4}, + {"matrix": [9, 2], "x": 8, "y": 4, "w": 2}, + {"matrix": [9, 3], "x": 10, "y": 4}, + {"matrix": [9, 4], "x": 11, "y": 4}, + {"matrix": [9, 5], "x": 12, "y": 4} + ] + }, + "LAYOUT_2u_1u_1u_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": [5, 0], "x": 7, "y": 0}, + {"matrix": [5, 1], "x": 8, "y": 0}, + {"matrix": [5, 2], "x": 9, "y": 0}, + {"matrix": [5, 3], "x": 10, "y": 0}, + {"matrix": [5, 4], "x": 11, "y": 0}, + {"matrix": [5, 5], "x": 12, "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, 0], "x": 7, "y": 1}, + {"matrix": [6, 1], "x": 8, "y": 1}, + {"matrix": [6, 2], "x": 9, "y": 1}, + {"matrix": [6, 3], "x": 10, "y": 1}, + {"matrix": [6, 4], "x": 11, "y": 1}, + {"matrix": [6, 5], "x": 12, "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, 0], "x": 7, "y": 2}, + {"matrix": [7, 1], "x": 8, "y": 2}, + {"matrix": [7, 2], "x": 9, "y": 2}, + {"matrix": [7, 3], "x": 10, "y": 2}, + {"matrix": [7, 4], "x": 11, "y": 2}, + {"matrix": [7, 5], "x": 12, "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, "encoder": 0}, + {"matrix": [8, 0], "x": 7, "y": 3}, + {"matrix": [8, 1], "x": 8, "y": 3}, + {"matrix": [8, 2], "x": 9, "y": 3}, + {"matrix": [8, 3], "x": 10, "y": 3}, + {"matrix": [8, 4], "x": 11, "y": 3}, + {"matrix": [8, 5], "x": 12, "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, "w": 2}, + {"matrix": [4, 5], "x": 5, "y": 4}, + {"matrix": [4, 6], "x": 6, "y": 4}, + {"matrix": [9, 1], "x": 7, "y": 4, "w": 3}, + {"matrix": [9, 3], "x": 10, "y": 4}, + {"matrix": [9, 4], "x": 11, "y": 4}, + {"matrix": [9, 5], "x": 12, "y": 4} + ] + }, + "LAYOUT_2u_3u_1u_1u": { + "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, 0], "x": 7, "y": 0}, + {"matrix": [5, 1], "x": 8, "y": 0}, + {"matrix": [5, 2], "x": 9, "y": 0}, + {"matrix": [5, 3], "x": 10, "y": 0}, + {"matrix": [5, 4], "x": 11, "y": 0}, + {"matrix": [5, 5], "x": 12, "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, 0], "x": 7, "y": 1}, + {"matrix": [6, 1], "x": 8, "y": 1}, + {"matrix": [6, 2], "x": 9, "y": 1}, + {"matrix": [6, 3], "x": 10, "y": 1}, + {"matrix": [6, 4], "x": 11, "y": 1}, + {"matrix": [6, 5], "x": 12, "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, 0], "x": 7, "y": 2}, + {"matrix": [7, 1], "x": 8, "y": 2}, + {"matrix": [7, 2], "x": 9, "y": 2}, + {"matrix": [7, 3], "x": 10, "y": 2}, + {"matrix": [7, 4], "x": 11, "y": 2}, + {"matrix": [7, 5], "x": 12, "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, "encoder": 0}, + {"matrix": [8, 0], "x": 7, "y": 3}, + {"matrix": [8, 1], "x": 8, "y": 3}, + {"matrix": [8, 2], "x": 9, "y": 3}, + {"matrix": [8, 3], "x": 10, "y": 3}, + {"matrix": [8, 4], "x": 11, "y": 3}, + {"matrix": [8, 5], "x": 12, "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, "w": 2}, + {"matrix": [4, 6], "x": 5, "y": 4, "w": 3}, + {"matrix": [9, 1], "x": 8, "y": 4}, + {"matrix": [9, 2], "x": 9, "y": 4}, + {"matrix": [9, 3], "x": 10, "y": 4}, + {"matrix": [9, 4], "x": 11, "y": 4}, + {"matrix": [9, 5], "x": 12, "y": 4} + ] + }, + "LAYOUT_2u_3u_2u": { + "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, 0], "x": 7, "y": 0}, + {"matrix": [5, 1], "x": 8, "y": 0}, + {"matrix": [5, 2], "x": 9, "y": 0}, + {"matrix": [5, 3], "x": 10, "y": 0}, + {"matrix": [5, 4], "x": 11, "y": 0}, + {"matrix": [5, 5], "x": 12, "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, 0], "x": 7, "y": 1}, + {"matrix": [6, 1], "x": 8, "y": 1}, + {"matrix": [6, 2], "x": 9, "y": 1}, + {"matrix": [6, 3], "x": 10, "y": 1}, + {"matrix": [6, 4], "x": 11, "y": 1}, + {"matrix": [6, 5], "x": 12, "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, 0], "x": 7, "y": 2}, + {"matrix": [7, 1], "x": 8, "y": 2}, + {"matrix": [7, 2], "x": 9, "y": 2}, + {"matrix": [7, 3], "x": 10, "y": 2}, + {"matrix": [7, 4], "x": 11, "y": 2}, + {"matrix": [7, 5], "x": 12, "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, "encoder": 0}, + {"matrix": [8, 0], "x": 7, "y": 3}, + {"matrix": [8, 1], "x": 8, "y": 3}, + {"matrix": [8, 2], "x": 9, "y": 3}, + {"matrix": [8, 3], "x": 10, "y": 3}, + {"matrix": [8, 4], "x": 11, "y": 3}, + {"matrix": [8, 5], "x": 12, "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, "w": 2}, + {"matrix": [4, 6], "x": 5, "y": 4, "w": 3}, + {"matrix": [9, 2], "x": 8, "y": 4, "w": 2}, + {"matrix": [9, 3], "x": 10, "y": 4}, + {"matrix": [9, 4], "x": 11, "y": 4}, + {"matrix": [9, 5], "x": 12, "y": 4} + ] + }, + "LAYOUT_3u_1u_1u_1u_1u": { + "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, 0], "x": 7, "y": 0}, + {"matrix": [5, 1], "x": 8, "y": 0}, + {"matrix": [5, 2], "x": 9, "y": 0}, + {"matrix": [5, 3], "x": 10, "y": 0}, + {"matrix": [5, 4], "x": 11, "y": 0}, + {"matrix": [5, 5], "x": 12, "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, 0], "x": 7, "y": 1}, + {"matrix": [6, 1], "x": 8, "y": 1}, + {"matrix": [6, 2], "x": 9, "y": 1}, + {"matrix": [6, 3], "x": 10, "y": 1}, + {"matrix": [6, 4], "x": 11, "y": 1}, + {"matrix": [6, 5], "x": 12, "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, 0], "x": 7, "y": 2}, + {"matrix": [7, 1], "x": 8, "y": 2}, + {"matrix": [7, 2], "x": 9, "y": 2}, + {"matrix": [7, 3], "x": 10, "y": 2}, + {"matrix": [7, 4], "x": 11, "y": 2}, + {"matrix": [7, 5], "x": 12, "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, "encoder": 0}, + {"matrix": [8, 0], "x": 7, "y": 3}, + {"matrix": [8, 1], "x": 8, "y": 3}, + {"matrix": [8, 2], "x": 9, "y": 3}, + {"matrix": [8, 3], "x": 10, "y": 3}, + {"matrix": [8, 4], "x": 11, "y": 3}, + {"matrix": [8, 5], "x": 12, "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, 4], "x": 3, "y": 4, "w": 3}, + {"matrix": [4, 6], "x": 6, "y": 4}, + {"matrix": [9, 0], "x": 7, "y": 4}, + {"matrix": [9, 1], "x": 8, "y": 4}, + {"matrix": [9, 2], "x": 9, "y": 4}, + {"matrix": [9, 3], "x": 10, "y": 4}, + {"matrix": [9, 4], "x": 11, "y": 4}, + {"matrix": [9, 5], "x": 12, "y": 4} + ] + }, + "LAYOUT_3u_1u_1u_2u": { + "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, 0], "x": 7, "y": 0}, + {"matrix": [5, 1], "x": 8, "y": 0}, + {"matrix": [5, 2], "x": 9, "y": 0}, + {"matrix": [5, 3], "x": 10, "y": 0}, + {"matrix": [5, 4], "x": 11, "y": 0}, + {"matrix": [5, 5], "x": 12, "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, 0], "x": 7, "y": 1}, + {"matrix": [6, 1], "x": 8, "y": 1}, + {"matrix": [6, 2], "x": 9, "y": 1}, + {"matrix": [6, 3], "x": 10, "y": 1}, + {"matrix": [6, 4], "x": 11, "y": 1}, + {"matrix": [6, 5], "x": 12, "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, 0], "x": 7, "y": 2}, + {"matrix": [7, 1], "x": 8, "y": 2}, + {"matrix": [7, 2], "x": 9, "y": 2}, + {"matrix": [7, 3], "x": 10, "y": 2}, + {"matrix": [7, 4], "x": 11, "y": 2}, + {"matrix": [7, 5], "x": 12, "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, "encoder": 0}, + {"matrix": [8, 0], "x": 7, "y": 3}, + {"matrix": [8, 1], "x": 8, "y": 3}, + {"matrix": [8, 2], "x": 9, "y": 3}, + {"matrix": [8, 3], "x": 10, "y": 3}, + {"matrix": [8, 4], "x": 11, "y": 3}, + {"matrix": [8, 5], "x": 12, "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, 4], "x": 3, "y": 4, "w": 3}, + {"matrix": [4, 6], "x": 6, "y": 4}, + {"matrix": [9, 0], "x": 7, "y": 4}, + {"matrix": [9, 2], "x": 8, "y": 4, "w": 2}, + {"matrix": [9, 3], "x": 10, "y": 4}, + {"matrix": [9, 4], "x": 11, "y": 4}, + {"matrix": [9, 5], "x": 12, "y": 4} + ] + }, + "LAYOUT_3u_1u_2u_1u": { + "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, 0], "x": 7, "y": 0}, + {"matrix": [5, 1], "x": 8, "y": 0}, + {"matrix": [5, 2], "x": 9, "y": 0}, + {"matrix": [5, 3], "x": 10, "y": 0}, + {"matrix": [5, 4], "x": 11, "y": 0}, + {"matrix": [5, 5], "x": 12, "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, 0], "x": 7, "y": 1}, + {"matrix": [6, 1], "x": 8, "y": 1}, + {"matrix": [6, 2], "x": 9, "y": 1}, + {"matrix": [6, 3], "x": 10, "y": 1}, + {"matrix": [6, 4], "x": 11, "y": 1}, + {"matrix": [6, 5], "x": 12, "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, 0], "x": 7, "y": 2}, + {"matrix": [7, 1], "x": 8, "y": 2}, + {"matrix": [7, 2], "x": 9, "y": 2}, + {"matrix": [7, 3], "x": 10, "y": 2}, + {"matrix": [7, 4], "x": 11, "y": 2}, + {"matrix": [7, 5], "x": 12, "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, "encoder": 0}, + {"matrix": [8, 0], "x": 7, "y": 3}, + {"matrix": [8, 1], "x": 8, "y": 3}, + {"matrix": [8, 2], "x": 9, "y": 3}, + {"matrix": [8, 3], "x": 10, "y": 3}, + {"matrix": [8, 4], "x": 11, "y": 3}, + {"matrix": [8, 5], "x": 12, "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, 4], "x": 3, "y": 4, "w": 3}, + {"matrix": [4, 6], "x": 6, "y": 4}, + {"matrix": [9, 1], "x": 7, "y": 4, "w": 2}, + {"matrix": [9, 2], "x": 9, "y": 4}, + {"matrix": [9, 3], "x": 10, "y": 4}, + {"matrix": [9, 4], "x": 11, "y": 4}, + {"matrix": [9, 5], "x": 12, "y": 4} + ] + }, + "LAYOUT_3u_1u_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": [5, 0], "x": 7, "y": 0}, + {"matrix": [5, 1], "x": 8, "y": 0}, + {"matrix": [5, 2], "x": 9, "y": 0}, + {"matrix": [5, 3], "x": 10, "y": 0}, + {"matrix": [5, 4], "x": 11, "y": 0}, + {"matrix": [5, 5], "x": 12, "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, 0], "x": 7, "y": 1}, + {"matrix": [6, 1], "x": 8, "y": 1}, + {"matrix": [6, 2], "x": 9, "y": 1}, + {"matrix": [6, 3], "x": 10, "y": 1}, + {"matrix": [6, 4], "x": 11, "y": 1}, + {"matrix": [6, 5], "x": 12, "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, 0], "x": 7, "y": 2}, + {"matrix": [7, 1], "x": 8, "y": 2}, + {"matrix": [7, 2], "x": 9, "y": 2}, + {"matrix": [7, 3], "x": 10, "y": 2}, + {"matrix": [7, 4], "x": 11, "y": 2}, + {"matrix": [7, 5], "x": 12, "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, "encoder": 0}, + {"matrix": [8, 0], "x": 7, "y": 3}, + {"matrix": [8, 1], "x": 8, "y": 3}, + {"matrix": [8, 2], "x": 9, "y": 3}, + {"matrix": [8, 3], "x": 10, "y": 3}, + {"matrix": [8, 4], "x": 11, "y": 3}, + {"matrix": [8, 5], "x": 12, "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, 4], "x": 3, "y": 4, "w": 3}, + {"matrix": [4, 6], "x": 6, "y": 4}, + {"matrix": [9, 1], "x": 7, "y": 4, "w": 3}, + {"matrix": [9, 3], "x": 10, "y": 4}, + {"matrix": [9, 4], "x": 11, "y": 4}, + {"matrix": [9, 5], "x": 12, "y": 4} + ] + }, + "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": [5, 0], "x": 7, "y": 0}, + {"matrix": [5, 1], "x": 8, "y": 0}, + {"matrix": [5, 2], "x": 9, "y": 0}, + {"matrix": [5, 3], "x": 10, "y": 0}, + {"matrix": [5, 4], "x": 11, "y": 0}, + {"matrix": [5, 5], "x": 12, "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, 0], "x": 7, "y": 1}, + {"matrix": [6, 1], "x": 8, "y": 1}, + {"matrix": [6, 2], "x": 9, "y": 1}, + {"matrix": [6, 3], "x": 10, "y": 1}, + {"matrix": [6, 4], "x": 11, "y": 1}, + {"matrix": [6, 5], "x": 12, "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, 0], "x": 7, "y": 2}, + {"matrix": [7, 1], "x": 8, "y": 2}, + {"matrix": [7, 2], "x": 9, "y": 2}, + {"matrix": [7, 3], "x": 10, "y": 2}, + {"matrix": [7, 4], "x": 11, "y": 2}, + {"matrix": [7, 5], "x": 12, "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, "encoder": 0}, + {"matrix": [8, 0], "x": 7, "y": 3}, + {"matrix": [8, 1], "x": 8, "y": 3}, + {"matrix": [8, 2], "x": 9, "y": 3}, + {"matrix": [8, 3], "x": 10, "y": 3}, + {"matrix": [8, 4], "x": 11, "y": 3}, + {"matrix": [8, 5], "x": 12, "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, 6], "x": 3, "y": 4, "w": 7}, + {"matrix": [9, 3], "x": 10, "y": 4}, + {"matrix": [9, 4], "x": 11, "y": 4}, + {"matrix": [9, 5], "x": 12, "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": [5, 0], "x": 7, "y": 0}, + {"matrix": [5, 1], "x": 8, "y": 0}, + {"matrix": [5, 2], "x": 9, "y": 0}, + {"matrix": [5, 3], "x": 10, "y": 0}, + {"matrix": [5, 4], "x": 11, "y": 0}, + {"matrix": [5, 5], "x": 12, "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, 0], "x": 7, "y": 1}, + {"matrix": [6, 1], "x": 8, "y": 1}, + {"matrix": [6, 2], "x": 9, "y": 1}, + {"matrix": [6, 3], "x": 10, "y": 1}, + {"matrix": [6, 4], "x": 11, "y": 1}, + {"matrix": [6, 5], "x": 12, "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, 0], "x": 7, "y": 2}, + {"matrix": [7, 1], "x": 8, "y": 2}, + {"matrix": [7, 2], "x": 9, "y": 2}, + {"matrix": [7, 3], "x": 10, "y": 2}, + {"matrix": [7, 4], "x": 11, "y": 2}, + {"matrix": [7, 5], "x": 12, "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, "encoder": 0}, {"matrix": [8, 0], "x": 7, "y": 3}, {"matrix": [8, 1], "x": 8, "y": 3}, {"matrix": [8, 2], "x": 9, "y": 3}, {"matrix": [8, 3], "x": 10, "y": 3}, {"matrix": [8, 4], "x": 11, "y": 3}, {"matrix": [8, 5], "x": 12, "y": 3}, - {"matrix": [4, 0], "x": 0, "y": 4}, {"matrix": [4, 1], "x": 1, "y": 4}, {"matrix": [4, 2], "x": 2, "y": 4}, diff --git a/keyboards/mechwild/waka60/keymaps/default/keymap.c b/keyboards/mechwild/waka60/keymaps/default/keymap.c index beb2d9e9e2f..3a7df5d3280 100644 --- a/keyboards/mechwild/waka60/keymaps/default/keymap.c +++ b/keyboards/mechwild/waka60/keymaps/default/keymap.c @@ -19,48 +19,30 @@ // Defines names for use in layer keycodes and the keymap enum layer_names { _BASE, - _FN1, - _FN2, - _FN3 + _FN1 }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ - [_BASE] = LAYOUT( + [_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_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, 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_MUTE, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, MO(1), KC_RALT, KC_RGUI, KC_RCTL ), - [_FN1] = LAYOUT( - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, - 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, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - [_FN2] = 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, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - [_FN3] = 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, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + [_FN1] = 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_DEL, + KC_TRNS, AU_TOGG, CK_UP, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, MU_TOGG, MU_NEXT, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, CK_TOGG, CK_DOWN, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [_FN1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, - [_FN2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, - [_FN3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_FN1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } }; #endif diff --git a/keyboards/mechwild/waka60/keymaps/via/keymap.c b/keyboards/mechwild/waka60/keymaps/via/keymap.c index 4d29baea78a..3a7df5d3280 100644 --- a/keyboards/mechwild/waka60/keymaps/via/keymap.c +++ b/keyboards/mechwild/waka60/keymaps/via/keymap.c @@ -19,48 +19,30 @@ // Defines names for use in layer keycodes and the keymap enum layer_names { _BASE, - _FN1, - _FN2, - _FN3 + _FN1 }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ - [_BASE] = LAYOUT( + [_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_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, 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_MUTE, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, MO(1), KC_RALT, KC_RGUI, KC_RCTL ), - [_FN1] = LAYOUT( - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, - KC_TRNS, AU_TOGG, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, MU_TOGG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, MU_NEXT, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - [_FN2] = 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, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - [_FN3] = 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, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + [_FN1] = 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_DEL, + KC_TRNS, AU_TOGG, CK_UP, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, MU_TOGG, MU_NEXT, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, CK_TOGG, CK_DOWN, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [_FN1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, - [_FN2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, - [_FN3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_FN1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } }; #endif From 8753ae354be6a62965b3d0ab931e0877bf34ef77 Mon Sep 17 00:00:00 2001 From: josh-l-wang <22173775+josh-l-wang@users.noreply.github.com> Date: Wed, 1 May 2024 03:05:45 -0400 Subject: [PATCH 49/55] add Bruce le Clavier (#23640) --- keyboards/jlw/bruce_le_clavier/info.json | 82 +++++++++++++++++++ .../bruce_le_clavier/keymaps/default/keymap.c | 43 ++++++++++ keyboards/jlw/bruce_le_clavier/readme.md | 53 ++++++++++++ keyboards/jlw/bruce_le_clavier/rules.mk | 1 + 4 files changed, 179 insertions(+) create mode 100644 keyboards/jlw/bruce_le_clavier/info.json create mode 100644 keyboards/jlw/bruce_le_clavier/keymaps/default/keymap.c create mode 100644 keyboards/jlw/bruce_le_clavier/readme.md create mode 100644 keyboards/jlw/bruce_le_clavier/rules.mk diff --git a/keyboards/jlw/bruce_le_clavier/info.json b/keyboards/jlw/bruce_le_clavier/info.json new file mode 100644 index 00000000000..998140599dd --- /dev/null +++ b/keyboards/jlw/bruce_le_clavier/info.json @@ -0,0 +1,82 @@ +{ + "keyboard_name": "Bruce the Keyboard", + "manufacturer": "jlw", + "url": "https://github.com/josh-l-wang/Bruce-the-Keyboard-the-Resources", + "maintainer": "jlw", + "usb": { + "vid": "0x1209", + "pid": "0xA460", + "device_version": "0.0.1" + }, + "processor": "STM32F072", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["B1", "B0", "A7", "A4", "A3", "B7", "B6", "B5", "B4", "B3", "B14"], + "rows": ["B11", "B9", "A5", "A6", "B15"] + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "encoder": true + }, + "bootmagic": { + "matrix": [4, 10] + }, + "encoder": { + "rotary": [ + {"pin_a": "B12", "pin_b": "B13"} + ] + }, + "ws2812": { + "pin": "B8" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "h":1.75}, + {"matrix": [0, 1], "x": 1, "y": 0, "h":1.5}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0, "h":1.25}, + {"matrix": [0, 4], "x": 4, "y": 0, "h":1.25}, + + {"matrix": [4, 10], "x": 5.25, "y": 0}, + + {"matrix": [0, 5], "x": 6.5, "y": 0, "h":1.25}, + {"matrix": [0, 6], "x": 7.5, "y": 0, "h":1.25}, + {"matrix": [0, 7], "x": 8.5, "y": 0}, + {"matrix": [0, 8], "x": 9.5, "y": 0, "h":1.5}, + {"matrix": [0, 9], "x": 10.5, "y": 0, "h":1.75}, + + {"matrix": [1, 0], "x": 0, "y": 1.75}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 6.5, "y": 1.25}, + {"matrix": [1, 6], "x": 7.5, "y": 1.25}, + {"matrix": [1, 7], "x": 8.5, "y": 1}, + {"matrix": [1, 8], "x": 9.5, "y": 1.5}, + {"matrix": [1, 9], "x": 10.5,"y": 1.75}, + + {"matrix": [2, 0], "x": 0, "y": 2.75, "h":1.5}, + {"matrix": [2, 1], "x": 1, "y": 2.5, "h":1.75}, + {"matrix": [2, 2], "x": 2, "y": 2, "h":1.25}, + {"matrix": [2, 3], "x": 3, "y": 2.25}, + {"matrix": [2, 4], "x": 4, "y": 2.25}, + {"matrix": [2, 5], "x": 6.5, "y": 2.25}, + {"matrix": [2, 6], "x": 7.5, "y": 2.25}, + {"matrix": [2, 7], "x": 8.5, "y": 2, "h":1.25}, + {"matrix": [2, 8], "x": 9.5, "y": 2.5, "h":1.75}, + {"matrix": [2, 9], "x": 10.5,"y": 2.75, "h":1.5}, + + {"matrix": [3, 2], "x": 2, "y": 3.25}, + {"matrix": [3, 3], "x": 3, "y": 3.25, "w": 2}, + {"matrix": [3, 5], "x": 6.5, "y": 3.25, "w": 2}, + {"matrix": [3, 7], "x": 8.5, "y": 3.25} + ] + } + } +} diff --git a/keyboards/jlw/bruce_le_clavier/keymaps/default/keymap.c b/keyboards/jlw/bruce_le_clavier/keymaps/default/keymap.c new file mode 100644 index 00000000000..51a8f0939d4 --- /dev/null +++ b/keyboards/jlw/bruce_le_clavier/keymaps/default/keymap.c @@ -0,0 +1,43 @@ +// Copyright 2023 jlw +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_Q, KC_W, KC_F, KC_P, KC_B, QK_BOOT, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, + LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), KC_T, KC_G, KC_M, KC_N, RCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), + KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, + LT(3, KC_TAB), SFT_T(KC_BSPC), LT(1, KC_SPC), LT(2,KC_ENT) + ), + + [1] = LAYOUT( + KC_GRAVE, KC_F2, XXXXXXX, KC_F4, KC_F5, XXXXXXX, KC_BSLS, KC_MINUS, KC_EQUAL, KC_LBRC, KC_RBRC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + DF(0), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF(1), XXXXXXX, _______, _______, KC_SCLN, + _______, _______, _______, _______ + ), + + [2] = LAYOUT( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F11, KC_F12, XXXXXXX, XXXXXXX, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + DF(0), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF(2), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, _______, _______, _______ + ), + [3] = LAYOUT( + XXXXXXX, XXXXXXX, LSG(KC_4),LSG(KC_S),XXXXXXX, XXXXXXX, KC_HOME, XXXXXXX, KC_UP, XXXXXXX, KC_PGUP, + KC_LGUI, KC_LALT, KC_LCTL, KC_LGUI, XXXXXXX, KC_END, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, + DF(0), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF(2), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, _______, _______, _______ + ) +}; + +// Encoder Map +#ifdef ENCODER_MAP_ENABLE + const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(S(KC_F2), KC_F2) }, + [1] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______) } + }; +#endif diff --git a/keyboards/jlw/bruce_le_clavier/readme.md b/keyboards/jlw/bruce_le_clavier/readme.md new file mode 100644 index 00000000000..7bef2d5eef7 --- /dev/null +++ b/keyboards/jlw/bruce_le_clavier/readme.md @@ -0,0 +1,53 @@ +# Bruce le Clavier + +Please note that Bruce le Clavier is a keyboard, not a human, and is also not Bruce the Keyboard. + +Bruce the Keyboard is a column staggered unibody split 35-key board created by [jlw](github.com/josh-l-wang), with the option to replace the middle key for an EC11 rotary encoder (with or without switch function). + +This keyboard has RGB, 3.3V, and GND pins broken out if you wish to add an LED strip. + +![Bruce le Clavier](https://i.imgur.com/qL9WHW4.jpg) + +* Keyboard Maintainer: [jlw](https://github.com/josh-l-wang) +* Hardware Supported: [Bruce le Clavier and Cases](https://github.com/josh-l-wang/Bruce-the-Keyboard-the-Resources) +* Hardware Availability: [jlw-kb.com](https://jlw-kb.com) + +Make example for this keyboard (after setting up your build environment): + + make jlw/bruce_le_clavier:default + +Flashing example for this keyboard: + + make jlw/bruce_le_clavier: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**: Hold button on the back of the PCB while plugging in the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available + + + + +# Ceci est le micrologiciel pour Bruce le clavier + +Notez bien que Bruce le clavier n'est pas un humain. + +Bruce le clavier est un clavier de 35 touches colonnaire créé par [jlw](github.com/josh-l-wang). Il y a une option d'utiliser un encodeur rotatif au centre. + +* Maintaineur de clavier: [jlw](https://github.com/josh-l-wang) +* Matériel supporté: [Bruce le Clavier and Cases](https://github.com/josh-l-wang/Bruce-the-Keyboard-the-Resources) +* Matériel disponibilité: [jlw-kb.com](https://jlw-kb.com) + +Exemple de « make » (après avoir installé votre environnement de développement): + + make jlw/bruce_le_clavier:default + +Exemple de flash pour ce clavier: + + make jlw/bruce_le_clavier:flash + \ No newline at end of file diff --git a/keyboards/jlw/bruce_le_clavier/rules.mk b/keyboards/jlw/bruce_le_clavier/rules.mk new file mode 100644 index 00000000000..d4f87a82781 --- /dev/null +++ b/keyboards/jlw/bruce_le_clavier/rules.mk @@ -0,0 +1 @@ +#This file intentionally left blank From 7b838f330f11a2dd3ffb49b2ffbea48020004b7c Mon Sep 17 00:00:00 2001 From: Duncan Sutherland Date: Wed, 1 May 2024 20:02:03 +0100 Subject: [PATCH 50/55] add tkl_(ansi|iso)_wkl* community layouts (#21809) * update layouts/default/readme.md * add tkl_wkl layouts to layouts/default * amend layouts/default/readme.md * `tsangan_wkl` to `wkl` * Update readme.md * update keymap.c * local testing corrections applied * add layouts/community readmes * minor text correction(s) * Apply suggestions from code review * further copyright header changes --- layouts/community/tkl_ansi_wkl/readme.md | 3 + .../tkl_ansi_wkl_split_bs_rshift/readme.md | 3 + layouts/community/tkl_f13_ansi_wkl/readme.md | 3 + .../readme.md | 3 + layouts/community/tkl_f13_iso_wkl/readme.md | 3 + .../tkl_f13_iso_wkl_split_bs_rshift/readme.md | 3 + layouts/community/tkl_iso_wkl/readme.md | 3 + .../tkl_iso_wkl_split_bs_rshift/readme.md | 3 + layouts/default/readme.md | 249 ++++++++++++++---- .../default_tkl_ansi_wkl/keymap.c | 32 +++ layouts/default/tkl_ansi_wkl/info.json | 105 ++++++++ layouts/default/tkl_ansi_wkl/layout.json | 6 + layouts/default/tkl_ansi_wkl/readme.md | 3 + .../keymap.c | 32 +++ .../tkl_ansi_wkl_split_bs_rshift/info.json | 107 ++++++++ .../tkl_ansi_wkl_split_bs_rshift/layout.json | 6 + .../tkl_ansi_wkl_split_bs_rshift/readme.md | 3 + .../default_tkl_f13_ansi_wkl/keymap.c | 32 +++ layouts/default/tkl_f13_ansi_wkl/info.json | 106 ++++++++ layouts/default/tkl_f13_ansi_wkl/layout.json | 6 + layouts/default/tkl_f13_ansi_wkl/readme.md | 3 + .../keymap.c | 32 +++ .../info.json | 108 ++++++++ .../layout.json | 6 + .../readme.md | 3 + .../default_tkl_f13_iso_wkl/keymap.c | 32 +++ layouts/default/tkl_f13_iso_wkl/info.json | 107 ++++++++ layouts/default/tkl_f13_iso_wkl/layout.json | 6 + layouts/default/tkl_f13_iso_wkl/readme.md | 3 + .../keymap.c | 32 +++ .../tkl_f13_iso_wkl_split_bs_rshift/info.json | 109 ++++++++ .../layout.json | 6 + .../tkl_f13_iso_wkl_split_bs_rshift/readme.md | 3 + .../tkl_iso_wkl/default_tkl_iso_wkl/keymap.c | 32 +++ layouts/default/tkl_iso_wkl/info.json | 106 ++++++++ layouts/default/tkl_iso_wkl/layout.json | 6 + layouts/default/tkl_iso_wkl/readme.md | 3 + .../keymap.c | 32 +++ .../tkl_iso_wkl_split_bs_rshift/info.json | 108 ++++++++ .../tkl_iso_wkl_split_bs_rshift/layout.json | 6 + .../tkl_iso_wkl_split_bs_rshift/readme.md | 3 + 41 files changed, 1404 insertions(+), 53 deletions(-) create mode 100644 layouts/community/tkl_ansi_wkl/readme.md create mode 100644 layouts/community/tkl_ansi_wkl_split_bs_rshift/readme.md create mode 100644 layouts/community/tkl_f13_ansi_wkl/readme.md create mode 100644 layouts/community/tkl_f13_ansi_wkl_split_bs_rshift/readme.md create mode 100644 layouts/community/tkl_f13_iso_wkl/readme.md create mode 100644 layouts/community/tkl_f13_iso_wkl_split_bs_rshift/readme.md create mode 100644 layouts/community/tkl_iso_wkl/readme.md create mode 100644 layouts/community/tkl_iso_wkl_split_bs_rshift/readme.md create mode 100644 layouts/default/tkl_ansi_wkl/default_tkl_ansi_wkl/keymap.c create mode 100644 layouts/default/tkl_ansi_wkl/info.json create mode 100644 layouts/default/tkl_ansi_wkl/layout.json create mode 100644 layouts/default/tkl_ansi_wkl/readme.md create mode 100644 layouts/default/tkl_ansi_wkl_split_bs_rshift/default_tkl_ansi_wkl_split_bs_rshift/keymap.c create mode 100644 layouts/default/tkl_ansi_wkl_split_bs_rshift/info.json create mode 100644 layouts/default/tkl_ansi_wkl_split_bs_rshift/layout.json create mode 100644 layouts/default/tkl_ansi_wkl_split_bs_rshift/readme.md create mode 100644 layouts/default/tkl_f13_ansi_wkl/default_tkl_f13_ansi_wkl/keymap.c create mode 100644 layouts/default/tkl_f13_ansi_wkl/info.json create mode 100644 layouts/default/tkl_f13_ansi_wkl/layout.json create mode 100644 layouts/default/tkl_f13_ansi_wkl/readme.md create mode 100644 layouts/default/tkl_f13_ansi_wkl_split_bs_rshift/default_tkl_f13_ansi_wkl_split_bs_rshift/keymap.c create mode 100644 layouts/default/tkl_f13_ansi_wkl_split_bs_rshift/info.json create mode 100644 layouts/default/tkl_f13_ansi_wkl_split_bs_rshift/layout.json create mode 100644 layouts/default/tkl_f13_ansi_wkl_split_bs_rshift/readme.md create mode 100644 layouts/default/tkl_f13_iso_wkl/default_tkl_f13_iso_wkl/keymap.c create mode 100644 layouts/default/tkl_f13_iso_wkl/info.json create mode 100644 layouts/default/tkl_f13_iso_wkl/layout.json create mode 100644 layouts/default/tkl_f13_iso_wkl/readme.md create mode 100644 layouts/default/tkl_f13_iso_wkl_split_bs_rshift/default_tkl_f13_iso_wkl_split_bs_rshift/keymap.c create mode 100644 layouts/default/tkl_f13_iso_wkl_split_bs_rshift/info.json create mode 100644 layouts/default/tkl_f13_iso_wkl_split_bs_rshift/layout.json create mode 100644 layouts/default/tkl_f13_iso_wkl_split_bs_rshift/readme.md create mode 100644 layouts/default/tkl_iso_wkl/default_tkl_iso_wkl/keymap.c create mode 100644 layouts/default/tkl_iso_wkl/info.json create mode 100644 layouts/default/tkl_iso_wkl/layout.json create mode 100644 layouts/default/tkl_iso_wkl/readme.md create mode 100644 layouts/default/tkl_iso_wkl_split_bs_rshift/default_tkl_iso_wkl_split_bs_rshift/keymap.c create mode 100644 layouts/default/tkl_iso_wkl_split_bs_rshift/info.json create mode 100644 layouts/default/tkl_iso_wkl_split_bs_rshift/layout.json create mode 100644 layouts/default/tkl_iso_wkl_split_bs_rshift/readme.md diff --git a/layouts/community/tkl_ansi_wkl/readme.md b/layouts/community/tkl_ansi_wkl/readme.md new file mode 100644 index 00000000000..6541a0f23ab --- /dev/null +++ b/layouts/community/tkl_ansi_wkl/readme.md @@ -0,0 +1,3 @@ +# tkl_ansi_wkl + + LAYOUT_tkl_ansi_wkl diff --git a/layouts/community/tkl_ansi_wkl_split_bs_rshift/readme.md b/layouts/community/tkl_ansi_wkl_split_bs_rshift/readme.md new file mode 100644 index 00000000000..35235603728 --- /dev/null +++ b/layouts/community/tkl_ansi_wkl_split_bs_rshift/readme.md @@ -0,0 +1,3 @@ +# tkl_ansi_wkl_split_bs_rshift + + LAYOUT_tkl_ansi_wkl_split_bs_rshift diff --git a/layouts/community/tkl_f13_ansi_wkl/readme.md b/layouts/community/tkl_f13_ansi_wkl/readme.md new file mode 100644 index 00000000000..607692c2392 --- /dev/null +++ b/layouts/community/tkl_f13_ansi_wkl/readme.md @@ -0,0 +1,3 @@ +# tkl_f13_ansi_wkl + + LAYOUT_tkl_f13_ansi_wkl diff --git a/layouts/community/tkl_f13_ansi_wkl_split_bs_rshift/readme.md b/layouts/community/tkl_f13_ansi_wkl_split_bs_rshift/readme.md new file mode 100644 index 00000000000..614c0913f62 --- /dev/null +++ b/layouts/community/tkl_f13_ansi_wkl_split_bs_rshift/readme.md @@ -0,0 +1,3 @@ +# tkl_f13_ansi_wkl_split_bs_rshift + + LAYOUT_tkl_f13_ansi_wkl_split_bs_rshift diff --git a/layouts/community/tkl_f13_iso_wkl/readme.md b/layouts/community/tkl_f13_iso_wkl/readme.md new file mode 100644 index 00000000000..46c44195923 --- /dev/null +++ b/layouts/community/tkl_f13_iso_wkl/readme.md @@ -0,0 +1,3 @@ +# tkl_f13_iso_wkl + + LAYOUT_tkl_f13_iso_wkl diff --git a/layouts/community/tkl_f13_iso_wkl_split_bs_rshift/readme.md b/layouts/community/tkl_f13_iso_wkl_split_bs_rshift/readme.md new file mode 100644 index 00000000000..a9059abfba2 --- /dev/null +++ b/layouts/community/tkl_f13_iso_wkl_split_bs_rshift/readme.md @@ -0,0 +1,3 @@ +# tkl_f13_iso_wkl_split_bs_rshift + + LAYOUT_tkl_f13_iso_wkl_split_bs_rshift diff --git a/layouts/community/tkl_iso_wkl/readme.md b/layouts/community/tkl_iso_wkl/readme.md new file mode 100644 index 00000000000..56fe1e91473 --- /dev/null +++ b/layouts/community/tkl_iso_wkl/readme.md @@ -0,0 +1,3 @@ +# tkl_iso_wkl + + LAYOUT_tkl_iso_wkl diff --git a/layouts/community/tkl_iso_wkl_split_bs_rshift/readme.md b/layouts/community/tkl_iso_wkl_split_bs_rshift/readme.md new file mode 100644 index 00000000000..ec820424a5b --- /dev/null +++ b/layouts/community/tkl_iso_wkl_split_bs_rshift/readme.md @@ -0,0 +1,3 @@ +# tkl_iso_wkl_split_bs_rshift + + LAYOUT_tkl_iso_split_bs_rshift diff --git a/layouts/default/readme.md b/layouts/default/readme.md index 892dbf1e034..fab13d47c55 100644 --- a/layouts/default/readme.md +++ b/layouts/default/readme.md @@ -641,6 +641,42 @@ LAYOUT_tkl_ansi_tsangan_split_bs_rshift └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ ``` +``` +LAYOUT_tkl_ansi_wkl +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤ ┌───┼───┼───┐ +│ │ │ │ │ │ │ │ │ │ │ │ +└─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ +``` + +``` +LAYOUT_tkl_ansi_wkl_split_bs_rshift +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ +│ │ │ │ │ │ │ │ │ │ │ │ +└─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ +``` + ``` LAYOUT_tkl_iso ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ @@ -713,6 +749,42 @@ LAYOUT_tkl_iso_tsangan_split_bs_rshift └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ ``` +``` +LAYOUT_tkl_iso_wkl +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ └───┴───┴───┘ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ ┌───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤ ┌───┼───┼───┐ +│ │ │ │ │ │ │ │ │ │ │ │ +└─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ +``` + +``` +LAYOUT_tkl_iso_wkl_split_bs_rshift +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ └───┴───┴───┘ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ ┌───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ +│ │ │ │ │ │ │ │ │ │ │ │ +└─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ +``` + ``` LAYOUT_tkl_jis ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ @@ -787,20 +859,56 @@ LAYOUT_tkl_f13_ansi_tsangan ``` LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift -┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ -│ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ ││ │ │ │ -└───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘ -┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ -│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ -├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ -│ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ -├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ +┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ +│ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ +└───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ -│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤┌───┼───┼───┐ -│ │ │ │ │ │ │ ││ │ │ │ -└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘└───┴───┴───┘ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ +│ │ │ │ │ │ │ │ │ │ │ │ +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +``` + +``` +LAYOUT_tkl_f13_ansi_wkl +┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ +│ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ +└───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤ ┌───┼───┼───┐ +│ │ │ │ │ │ │ │ │ │ │ │ +└─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ +``` + +``` +LAYOUT_tkl_f13_ansi_wkl_split_bs_rshift +┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ +│ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ +└───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ +│ │ │ │ │ │ │ │ │ │ │ │ +└─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ ``` ``` @@ -823,20 +931,20 @@ LAYOUT_tkl_f13_iso ``` LAYOUT_tkl_f13_iso_split_bs_rshift -┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ -│ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ ││ │ │ │ -└───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘ -┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ -│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ -├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ -│ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ -├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │└───┴───┴───┘ +┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ +│ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ +└───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ └───┴───┴───┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ ┌───┐ -│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐ -│ │ │ │ │ │ │ │ ││ │ │ │ -└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ ┌───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ ┌───┼───┼───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` ``` @@ -859,39 +967,74 @@ LAYOUT_tkl_f13_iso_tsangan ``` LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift -┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ -│ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ ││ │ │ │ -└───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘ -┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ -│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ -├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ -│ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ -├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │└───┴───┴───┘ +┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ +│ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ +└───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ └───┴───┴───┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ ┌───┐ -│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤┌───┼───┼───┐ -│ │ │ │ │ │ │ ││ │ │ │ -└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘└───┴───┴───┘ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ ┌───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ +│ │ │ │ │ │ │ │ │ │ │ │ +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +``` + +``` +LAYOUT_tkl_f13_iso_wkl +┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ +│ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ +└───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ └───┴───┴───┘ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ ┌───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤ ┌───┼───┼───┐ +│ │ │ │ │ │ │ │ │ │ │ │ +└─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ +``` + +``` +LAYOUT_tkl_f13_iso_wkl_split_bs_rshift +┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ +│ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ +└───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ └───┴───┴───┘ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ ┌───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ +│ │ │ │ │ │ │ │ │ │ │ │ +└─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ ``` ``` LAYOUT_tkl_f13_jis -┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐ -│ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ ││ │ │ │ -└───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘ -┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ -│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ -├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ -│ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ │ -├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │└───┴───┴───┘ +┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ +│ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ +└───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ └───┴───┴───┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤ ┌───┐ -│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -├────┬───┴┬──┴─┬─┴──┬┴───┴───┴───┴─┬─┴──┬┴───┼───┴┬──┴─┬────┤┌───┼───┼───┐ -│ │ │ │ │ │ │ │ │ │ ││ │ │ │ -└────┴────┴────┴────┴──────────────┴────┴────┴────┴────┴────┘└───┴───┴───┘ - +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤ ┌───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┬───┴┬──┴─┬─┴──┬┴───┴───┴───┴─┬─┴──┬┴───┼───┴┬──┴─┬────┤ ┌───┼───┼───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +└────┴────┴────┴────┴──────────────┴────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` ``` diff --git a/layouts/default/tkl_ansi_wkl/default_tkl_ansi_wkl/keymap.c b/layouts/default/tkl_ansi_wkl/default_tkl_ansi_wkl/keymap.c new file mode 100644 index 00000000000..3d8cef64fc2 --- /dev/null +++ b/layouts/default/tkl_ansi_wkl/default_tkl_ansi_wkl/keymap.c @@ -0,0 +1,32 @@ +// Copyright 2022 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 │ │Alt │ │ Alt│ │ Ctrl│ │ ← │ ↓ │ → │ + * └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_tkl_ansi_wkl( + 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_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/layouts/default/tkl_ansi_wkl/info.json b/layouts/default/tkl_ansi_wkl/info.json new file mode 100644 index 00000000000..eb08eacd370 --- /dev/null +++ b/layouts/default/tkl_ansi_wkl/info.json @@ -0,0 +1,105 @@ +{ + "keyboard_name": "Tenkeyless ANSI Windows keyless layout", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_tkl_ansi_wkl": { + "layout": [ + {"x":0, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.5, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25, "w":2}, + + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + + {"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}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":13.5, "y":2.25, "w":1.5}, + + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25, "w":2.25}, + + {"x":0, "y":4.25, "w":2.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":2.75}, + + {"x":16.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.5}, + {"x":2.5, "y":5.25, "w":1.5}, + {"x":4, "y":5.25, "w":7}, + {"x":11, "y":5.25, "w":1.5}, + {"x":13.5, "y":5.25, "w":1.5}, + + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + } + } +} diff --git a/layouts/default/tkl_ansi_wkl/layout.json b/layouts/default/tkl_ansi_wkl/layout.json new file mode 100644 index 00000000000..b6d3505b159 --- /dev/null +++ b/layouts/default/tkl_ansi_wkl/layout.json @@ -0,0 +1,6 @@ +[{a:7},"",{x:1},"","","","",{x:0.5},"","","","",{x:0.5},"","","","",{x:0.25},"","",""], +[{y:0.25},"","","","","","","","","","","","","",{w:2},"",{x:0.25},"","",""], +[{w:1.5},"","","","","","","","","","","","","",{w:1.5},"",{x:0.25},"","",""], +[{w:1.75},"","","","","","","","","","","","",{w:2.25},""], +[{w:2.25},"","","","","","","","","","","",{w:2.75},"",{x:1.25},""], +[{w:1.5},"",{x:1,w:1.5},"",{w:7},"",{w:1.5},"",{x:1,w:1.5},"",{x:0.25},"","",""] diff --git a/layouts/default/tkl_ansi_wkl/readme.md b/layouts/default/tkl_ansi_wkl/readme.md new file mode 100644 index 00000000000..6541a0f23ab --- /dev/null +++ b/layouts/default/tkl_ansi_wkl/readme.md @@ -0,0 +1,3 @@ +# tkl_ansi_wkl + + LAYOUT_tkl_ansi_wkl diff --git a/layouts/default/tkl_ansi_wkl_split_bs_rshift/default_tkl_ansi_wkl_split_bs_rshift/keymap.c b/layouts/default/tkl_ansi_wkl_split_bs_rshift/default_tkl_ansi_wkl_split_bs_rshift/keymap.c new file mode 100644 index 00000000000..a5b27ee42bb --- /dev/null +++ b/layouts/default/tkl_ansi_wkl_split_bs_rshift/default_tkl_ansi_wkl_split_bs_rshift/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 │ - │ = │Bsp│Bsp│ │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│Sft│ │ ↑ │ + * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + * │Ctrl │ │Alt │ │ Alt│ │ Ctrl│ │ ← │ ↓ │ → │ + * └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_tkl_ansi_wkl_split_bs_rshift( + 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, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/layouts/default/tkl_ansi_wkl_split_bs_rshift/info.json b/layouts/default/tkl_ansi_wkl_split_bs_rshift/info.json new file mode 100644 index 00000000000..62b48e3bc84 --- /dev/null +++ b/layouts/default/tkl_ansi_wkl_split_bs_rshift/info.json @@ -0,0 +1,107 @@ +{ + "keyboard_name": "Tenkeyless ANSI Windows keyless layout with split Backspace and split Right Shift", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_tkl_ansi_wkl_split_bs_rshift": { + "layout": [ + {"x":0, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.5, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25}, + {"x":14, "y":1.25}, + + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + + {"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}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":13.5, "y":2.25, "w":1.5}, + + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25, "w":2.25}, + + {"x":0, "y":4.25, "w":2.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":1.75}, + {"x":14, "y":4.25}, + + {"x":16.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.5}, + {"x":2.5, "y":5.25, "w":1.5}, + {"x":4, "y":5.25, "w":7}, + {"x":11, "y":5.25, "w":1.5}, + {"x":13.5, "y":5.25, "w":1.5}, + + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + } + } +} diff --git a/layouts/default/tkl_ansi_wkl_split_bs_rshift/layout.json b/layouts/default/tkl_ansi_wkl_split_bs_rshift/layout.json new file mode 100644 index 00000000000..0fba13348bb --- /dev/null +++ b/layouts/default/tkl_ansi_wkl_split_bs_rshift/layout.json @@ -0,0 +1,6 @@ +[{a:7},"",{x:1},"","","","",{x:0.5},"","","","",{x:0.5},"","","","",{x:0.25},"","",""], +[{y:0.25},"","","","","","","","","","","","","","","",{x:0.25},"","",""], +[{w:1.5},"","","","","","","","","","","","","",{w:1.5},"",{x:0.25},"","",""], +[{w:1.75},"","","","","","","","","","","","",{w:2.25},""], +[{w:2.25},"","","","","","","","","","","",{w:1.75},"","",{x:1.25},""], +[{w:1.5},"",{x:1,w:1.5},"",{w:7},"",{w:1.5},"",{x:1,w:1.5},"",{x:0.25},"","",""] diff --git a/layouts/default/tkl_ansi_wkl_split_bs_rshift/readme.md b/layouts/default/tkl_ansi_wkl_split_bs_rshift/readme.md new file mode 100644 index 00000000000..35235603728 --- /dev/null +++ b/layouts/default/tkl_ansi_wkl_split_bs_rshift/readme.md @@ -0,0 +1,3 @@ +# tkl_ansi_wkl_split_bs_rshift + + LAYOUT_tkl_ansi_wkl_split_bs_rshift diff --git a/layouts/default/tkl_f13_ansi_wkl/default_tkl_f13_ansi_wkl/keymap.c b/layouts/default/tkl_f13_ansi_wkl/default_tkl_f13_ansi_wkl/keymap.c new file mode 100644 index 00000000000..709988ac76d --- /dev/null +++ b/layouts/default/tkl_f13_ansi_wkl/default_tkl_f13_ansi_wkl/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││F13│ │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 │ │Alt │ │ Alt│ │ Ctrl│ │ ← │ ↓ │ → │ + * └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_tkl_f13_ansi_wkl( + 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_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_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/layouts/default/tkl_f13_ansi_wkl/info.json b/layouts/default/tkl_f13_ansi_wkl/info.json new file mode 100644 index 00000000000..ca03585d00a --- /dev/null +++ b/layouts/default/tkl_f13_ansi_wkl/info.json @@ -0,0 +1,106 @@ +{ + "keyboard_name": "Tenkeyless ANSI Windows keyless layout with F13 key", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_tkl_f13_ansi_wkl": { + "layout": [ + {"x":0, "y":0}, + {"x":1.25, "y":0}, + {"x":2.25, "y":0}, + {"x":3.25, "y":0}, + {"x":4.25, "y":0}, + {"x":5.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.75, "y":0}, + {"x":10.75, "y":0}, + {"x":11.75, "y":0}, + {"x":12.75, "y":0}, + {"x":14, "y":0}, + + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25, "w":2}, + + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + + {"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}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":13.5, "y":2.25, "w":1.5}, + + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25, "w":2.25}, + + {"x":0, "y":4.25, "w":2.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":2.75}, + + {"x":16.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.5}, + {"x":2.5, "y":5.25, "w":1.5}, + {"x":4, "y":5.25, "w":7}, + {"x":11, "y":5.25, "w":1.5}, + {"x":13.5, "y":5.25, "w":1.5}, + + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + } + } +} diff --git a/layouts/default/tkl_f13_ansi_wkl/layout.json b/layouts/default/tkl_f13_ansi_wkl/layout.json new file mode 100644 index 00000000000..850ffc9bdc9 --- /dev/null +++ b/layouts/default/tkl_f13_ansi_wkl/layout.json @@ -0,0 +1,6 @@ +[{a:7},"",{x:0.25},"","","","",{x:0.25},"","","","",{x:0.25},"","","","",{x:0.25},"",{x:0.25},"","",""], +[{y:0.25},"","","","","","","","","","","","","",{w:2},"",{x:0.25},"","",""], +[{w:1.5},"","","","","","","","","","","","","",{w:1.5},"",{x:0.25},"","",""], +[{w:1.75},"","","","","","","","","","","","",{w:2.25},""], +[{w:2.25},"","","","","","","","","","","",{w:2.75},"",{x:1.25},""], +[{w:1.5},"",{x:1,w:1.5},"",{w:7},"",{w:1.5},"",{x:1,w:1.5},"",{x:0.25},"","",""] diff --git a/layouts/default/tkl_f13_ansi_wkl/readme.md b/layouts/default/tkl_f13_ansi_wkl/readme.md new file mode 100644 index 00000000000..607692c2392 --- /dev/null +++ b/layouts/default/tkl_f13_ansi_wkl/readme.md @@ -0,0 +1,3 @@ +# tkl_f13_ansi_wkl + + LAYOUT_tkl_f13_ansi_wkl diff --git a/layouts/default/tkl_f13_ansi_wkl_split_bs_rshift/default_tkl_f13_ansi_wkl_split_bs_rshift/keymap.c b/layouts/default/tkl_f13_ansi_wkl_split_bs_rshift/default_tkl_f13_ansi_wkl_split_bs_rshift/keymap.c new file mode 100644 index 00000000000..6089b7681f9 --- /dev/null +++ b/layouts/default/tkl_f13_ansi_wkl_split_bs_rshift/default_tkl_f13_ansi_wkl_split_bs_rshift/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││F13│ │PSc│Scr│Pse│ + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Bsp│ │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 │Sft│ │ ↑ │ + * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + * │Ctrl │ │Alt │ │ Alt│ │ Ctrl│ │ ← │ ↓ │ → │ + * └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_tkl_f13_ansi_wkl_split_bs_rshift( + 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_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_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/layouts/default/tkl_f13_ansi_wkl_split_bs_rshift/info.json b/layouts/default/tkl_f13_ansi_wkl_split_bs_rshift/info.json new file mode 100644 index 00000000000..755e7a80d78 --- /dev/null +++ b/layouts/default/tkl_f13_ansi_wkl_split_bs_rshift/info.json @@ -0,0 +1,108 @@ +{ + "keyboard_name": "Tenkeyless ANSI Windows keyless layout with F13 key, split Backspace, and split Right Shift", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_tkl_f13_ansi_wkl_split_bs_rshift": { + "layout": [ + {"x":0, "y":0}, + {"x":1.25, "y":0}, + {"x":2.25, "y":0}, + {"x":3.25, "y":0}, + {"x":4.25, "y":0}, + {"x":5.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.75, "y":0}, + {"x":10.75, "y":0}, + {"x":11.75, "y":0}, + {"x":12.75, "y":0}, + {"x":14, "y":0}, + + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25}, + {"x":14, "y":1.25}, + + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + + {"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}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":13.5, "y":2.25, "w":1.5}, + + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25, "w":2.25}, + + {"x":0, "y":4.25, "w":2.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":1.75}, + {"x":14, "y":4.25}, + + {"x":16.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.5}, + {"x":2.5, "y":5.25, "w":1.5}, + {"x":4, "y":5.25, "w":7}, + {"x":11, "y":5.25, "w":1.5}, + {"x":13.5, "y":5.25, "w":1.5}, + + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + } + } +} diff --git a/layouts/default/tkl_f13_ansi_wkl_split_bs_rshift/layout.json b/layouts/default/tkl_f13_ansi_wkl_split_bs_rshift/layout.json new file mode 100644 index 00000000000..6992dff912b --- /dev/null +++ b/layouts/default/tkl_f13_ansi_wkl_split_bs_rshift/layout.json @@ -0,0 +1,6 @@ +[{a:7},"",{x:0.25},"","","","",{x:0.25},"","","","",{x:0.25},"","","","",{x:0.25},"",{x:0.25},"","",""], +[{y:0.25},"","","","","","","","","","","","","","","",{x:0.25},"","",""], +[{w:1.5},"","","","","","","","","","","","","",{w:1.5},"",{x:0.25},"","",""], +[{w:1.75},"","","","","","","","","","","","",{w:2.25},""], +[{w:2.25},"","","","","","","","","","","",{w:1.75},"","",{x:1.25},""], +[{w:1.5},"",{x:1,w:1.5},"",{w:7},"",{w:1.5},"",{x:1,w:1.5},"",{x:0.25},"","",""] diff --git a/layouts/default/tkl_f13_ansi_wkl_split_bs_rshift/readme.md b/layouts/default/tkl_f13_ansi_wkl_split_bs_rshift/readme.md new file mode 100644 index 00000000000..614c0913f62 --- /dev/null +++ b/layouts/default/tkl_f13_ansi_wkl_split_bs_rshift/readme.md @@ -0,0 +1,3 @@ +# tkl_f13_ansi_wkl_split_bs_rshift + + LAYOUT_tkl_f13_ansi_wkl_split_bs_rshift diff --git a/layouts/default/tkl_f13_iso_wkl/default_tkl_f13_iso_wkl/keymap.c b/layouts/default/tkl_f13_iso_wkl/default_tkl_f13_iso_wkl/keymap.c new file mode 100644 index 00000000000..5a32e674e8d --- /dev/null +++ b/layouts/default/tkl_f13_iso_wkl/default_tkl_f13_iso_wkl/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││F13│ │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│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent│ └───┴───┴───┘ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ ┌───┐ + * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ + * ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤ ┌───┼───┼───┐ + * │Ctrl │ │Alt │ │ Alt│ │ Ctrl│ │ ← │ ↓ │ → │ + * └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_tkl_f13_iso_wkl( + 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_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_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/layouts/default/tkl_f13_iso_wkl/info.json b/layouts/default/tkl_f13_iso_wkl/info.json new file mode 100644 index 00000000000..e597716b5dc --- /dev/null +++ b/layouts/default/tkl_f13_iso_wkl/info.json @@ -0,0 +1,107 @@ +{ + "keyboard_name": "Tenkeyless ISO Windows keyless layout", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_tkl_f13_iso_wkl": { + "layout": [ + {"x":0, "y":0}, + {"x":1.25, "y":0}, + {"x":2.25, "y":0}, + {"x":3.25, "y":0}, + {"x":4.25, "y":0}, + {"x":5.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.75, "y":0}, + {"x":10.75, "y":0}, + {"x":11.75, "y":0}, + {"x":12.75, "y":0}, + {"x":14, "y":0}, + + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25, "w":2}, + + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + + {"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}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"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":0, "y":4.25, "w":1.25}, + {"x":1.25, "y":4.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":2.75}, + + {"x":16.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.5}, + {"x":2.5, "y":5.25, "w":1.5}, + {"x":4, "y":5.25, "w":7}, + {"x":11, "y":5.25, "w":1.5}, + {"x":13.5, "y":5.25, "w":1.5}, + + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + } + } +} diff --git a/layouts/default/tkl_f13_iso_wkl/layout.json b/layouts/default/tkl_f13_iso_wkl/layout.json new file mode 100644 index 00000000000..0c6f178b452 --- /dev/null +++ b/layouts/default/tkl_f13_iso_wkl/layout.json @@ -0,0 +1,6 @@ +[{a:7},"",{x:0.25},"","","","",{x:0.25},"","","","",{x:0.25},"","","","",{x:0.25},"",{x:0.25},"","",""], +[{y:0.25},"","","","","","","","","","","","","",{w:2},"",{x:0.25},"","",""], +[{w:1.5},"","","","","","","","","","","","","",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},"",{x:0.25},"","",""], +[{w:1.75},"","","","","","","","","","","","",""], +[{w:1.25},"","","","","","","","","","","","",{w:2.75},"",{x:1.25},""], +[{w:1.5},"",{x:1,w:1.5},"",{w:7},"",{w:1.5},"",{x:1,w:1.5},"",{x:0.25},"","",""] diff --git a/layouts/default/tkl_f13_iso_wkl/readme.md b/layouts/default/tkl_f13_iso_wkl/readme.md new file mode 100644 index 00000000000..46c44195923 --- /dev/null +++ b/layouts/default/tkl_f13_iso_wkl/readme.md @@ -0,0 +1,3 @@ +# tkl_f13_iso_wkl + + LAYOUT_tkl_f13_iso_wkl diff --git a/layouts/default/tkl_f13_iso_wkl_split_bs_rshift/default_tkl_f13_iso_wkl_split_bs_rshift/keymap.c b/layouts/default/tkl_f13_iso_wkl_split_bs_rshift/default_tkl_f13_iso_wkl_split_bs_rshift/keymap.c new file mode 100644 index 00000000000..7642de46e2f --- /dev/null +++ b/layouts/default/tkl_f13_iso_wkl_split_bs_rshift/default_tkl_f13_iso_wkl_split_bs_rshift/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││F13│ │PSc│Scr│Pse│ + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Bsp│ │Ins│Hom│PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │ │Del│End│PgD│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent│ └───┴───┴───┘ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ ┌───┐ + * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│Sft│ │ ↑ │ + * ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + * │Ctrl │ │Alt │ │ Alt│ │ Ctrl│ │ ← │ ↓ │ → │ + * └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_tkl_f13_iso_wkl_split_bs_rshift( + 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_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_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/layouts/default/tkl_f13_iso_wkl_split_bs_rshift/info.json b/layouts/default/tkl_f13_iso_wkl_split_bs_rshift/info.json new file mode 100644 index 00000000000..4ccde283690 --- /dev/null +++ b/layouts/default/tkl_f13_iso_wkl_split_bs_rshift/info.json @@ -0,0 +1,109 @@ +{ + "keyboard_name": "Tenkeyless ISO Windows keyless layout with F13 key, split Backspace, and split Right Shift", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_tkl_f13_iso_wkl_split_bs_rshift": { + "layout": [ + {"x":0, "y":0}, + {"x":1.25, "y":0}, + {"x":2.25, "y":0}, + {"x":3.25, "y":0}, + {"x":4.25, "y":0}, + {"x":5.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.75, "y":0}, + {"x":10.75, "y":0}, + {"x":11.75, "y":0}, + {"x":12.75, "y":0}, + {"x":14, "y":0}, + + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25}, + {"x":14, "y":1.25}, + + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + + {"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}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"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":0, "y":4.25, "w":1.25}, + {"x":1.25, "y":4.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":1.75}, + {"x":14, "y":4.25}, + + {"x":16.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.5}, + {"x":2.5, "y":5.25, "w":1.5}, + {"x":4, "y":5.25, "w":7}, + {"x":11, "y":5.25, "w":1.5}, + {"x":13.5, "y":5.25, "w":1.5}, + + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + } + } +} diff --git a/layouts/default/tkl_f13_iso_wkl_split_bs_rshift/layout.json b/layouts/default/tkl_f13_iso_wkl_split_bs_rshift/layout.json new file mode 100644 index 00000000000..a07a1307e77 --- /dev/null +++ b/layouts/default/tkl_f13_iso_wkl_split_bs_rshift/layout.json @@ -0,0 +1,6 @@ +[{a:7},"",{x:0.25},"","","","",{x:0.25},"","","","",{x:0.25},"","","","",{x:0.25},"",{x:0.25},"","",""], +[{y:0.25},"","","","","","","","","","","","","","","",{x:0.25},"","",""], +[{w:1.5},"","","","","","","","","","","","","",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},"",{x:0.25},"","",""], +[{w:1.75},"","","","","","","","","","","","",""], +[{w:1.25},"","","","","","","","","","","","",{w:1.75},"","",{x:1.25},""], +[{w:1.5},"",{x:1,w:1.5},"",{w:7},"",{w:1.5},"",{x:1,w:1.5},"",{x:0.25},"","",""] diff --git a/layouts/default/tkl_f13_iso_wkl_split_bs_rshift/readme.md b/layouts/default/tkl_f13_iso_wkl_split_bs_rshift/readme.md new file mode 100644 index 00000000000..a9059abfba2 --- /dev/null +++ b/layouts/default/tkl_f13_iso_wkl_split_bs_rshift/readme.md @@ -0,0 +1,3 @@ +# tkl_f13_iso_wkl_split_bs_rshift + + LAYOUT_tkl_f13_iso_wkl_split_bs_rshift diff --git a/layouts/default/tkl_iso_wkl/default_tkl_iso_wkl/keymap.c b/layouts/default/tkl_iso_wkl/default_tkl_iso_wkl/keymap.c new file mode 100644 index 00000000000..940c968917b --- /dev/null +++ b/layouts/default/tkl_iso_wkl/default_tkl_iso_wkl/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│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent│ └───┴───┴───┘ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ ┌───┐ + * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ + * ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤ ┌───┼───┼───┐ + * │Ctrl │ │Alt │ │ Alt│ │ Ctrl│ │ ← │ ↓ │ → │ + * └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_tkl_iso_wkl( + 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_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_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/layouts/default/tkl_iso_wkl/info.json b/layouts/default/tkl_iso_wkl/info.json new file mode 100644 index 00000000000..07f3311296d --- /dev/null +++ b/layouts/default/tkl_iso_wkl/info.json @@ -0,0 +1,106 @@ +{ + "keyboard_name": "Tenkeyless ISO Windows keyless layout", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_tkl_iso_wkl": { + "layout": [ + {"x":0, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.5, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25, "w":2}, + + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + + {"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}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"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":0, "y":4.25, "w":1.25}, + {"x":1.25, "y":4.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":2.75}, + + {"x":16.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.5}, + {"x":2.5, "y":5.25, "w":1.5}, + {"x":4, "y":5.25, "w":7}, + {"x":11, "y":5.25, "w":1.5}, + {"x":13.5, "y":5.25, "w":1.5}, + + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + } + } +} diff --git a/layouts/default/tkl_iso_wkl/layout.json b/layouts/default/tkl_iso_wkl/layout.json new file mode 100644 index 00000000000..8d51a4064da --- /dev/null +++ b/layouts/default/tkl_iso_wkl/layout.json @@ -0,0 +1,6 @@ +[{a:7},"",{x:1},"","","","",{x:0.5},"","","","",{x:0.5},"","","","",{x:0.25},"","",""], +[{y:0.25},"","","","","","","","","","","","","",{w:2},"",{x:0.25},"","",""], +[{w:1.5},"","","","","","","","","","","","","",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},"",{x:0.25},"","",""], +[{w:1.75},"","","","","","","","","","","","",""], +[{w:1.25},"","","","","","","","","","","","",{w:2.75},"",{x:1.25},""], +[{w:1.5},"",{x:1,w:1.5},"",{w:7},"",{w:1.5},"",{x:1,w:1.5},"",{x:0.25},"","",""] diff --git a/layouts/default/tkl_iso_wkl/readme.md b/layouts/default/tkl_iso_wkl/readme.md new file mode 100644 index 00000000000..56fe1e91473 --- /dev/null +++ b/layouts/default/tkl_iso_wkl/readme.md @@ -0,0 +1,3 @@ +# tkl_iso_wkl + + LAYOUT_tkl_iso_wkl diff --git a/layouts/default/tkl_iso_wkl_split_bs_rshift/default_tkl_iso_wkl_split_bs_rshift/keymap.c b/layouts/default/tkl_iso_wkl_split_bs_rshift/default_tkl_iso_wkl_split_bs_rshift/keymap.c new file mode 100644 index 00000000000..5b9474863bc --- /dev/null +++ b/layouts/default/tkl_iso_wkl_split_bs_rshift/default_tkl_iso_wkl_split_bs_rshift/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 │ - │ = │Bsp│Bsp│ │Ins│Hom│PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │ │Del│End│PgD│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent│ └───┴───┴───┘ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ ┌───┐ + * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│Sft│ │ ↑ │ + * ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + * │Ctrl │ │Alt │ │ Alt│ │ Ctrl│ │ ← │ ↓ │ → │ + * └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_tkl_iso_wkl_split_bs_rshift( + 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_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_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/layouts/default/tkl_iso_wkl_split_bs_rshift/info.json b/layouts/default/tkl_iso_wkl_split_bs_rshift/info.json new file mode 100644 index 00000000000..aa0ebce31ed --- /dev/null +++ b/layouts/default/tkl_iso_wkl_split_bs_rshift/info.json @@ -0,0 +1,108 @@ +{ + "keyboard_name": "Tenkeyless ISO Windows keyless layout with split Backspace and split Right Shift", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_tkl_iso_wkl_split_bs_rshift": { + "layout": [ + {"x":0, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.5, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25}, + {"x":14, "y":1.25}, + + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + + {"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}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"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":0, "y":4.25, "w":1.25}, + {"x":1.25, "y":4.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":1.75}, + {"x":14, "y":4.25}, + + {"x":16.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.5}, + {"x":2.5, "y":5.25, "w":1.5}, + {"x":4, "y":5.25, "w":7}, + {"x":11, "y":5.25, "w":1.5}, + {"x":13.5, "y":5.25, "w":1.5}, + + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + } + } +} diff --git a/layouts/default/tkl_iso_wkl_split_bs_rshift/layout.json b/layouts/default/tkl_iso_wkl_split_bs_rshift/layout.json new file mode 100644 index 00000000000..09c79e0f4a4 --- /dev/null +++ b/layouts/default/tkl_iso_wkl_split_bs_rshift/layout.json @@ -0,0 +1,6 @@ +[{a:7},"",{x:1},"","","","",{x:0.5},"","","","",{x:0.5},"","","","",{x:0.25},"","",""], +[{y:0.25},"","","","","","","","","","","","","","","",{x:0.25},"","",""], +[{w:1.5},"","","","","","","","","","","","","",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},"",{x:0.25},"","",""], +[{w:1.75},"","","","","","","","","","","","",""], +[{w:1.25},"","","","","","","","","","","","",{w:1.75},"","",{x:1.25},""], +[{w:1.5},"",{x:1,w:1.5},"",{w:7},"",{w:1.5},"",{x:1,w:1.5},"",{x:0.25},"","",""] diff --git a/layouts/default/tkl_iso_wkl_split_bs_rshift/readme.md b/layouts/default/tkl_iso_wkl_split_bs_rshift/readme.md new file mode 100644 index 00000000000..ec820424a5b --- /dev/null +++ b/layouts/default/tkl_iso_wkl_split_bs_rshift/readme.md @@ -0,0 +1,3 @@ +# tkl_iso_wkl_split_bs_rshift + + LAYOUT_tkl_iso_split_bs_rshift From 7220715dd1619dfb073db78cfc23998a67994655 Mon Sep 17 00:00:00 2001 From: Duncan Sutherland Date: Wed, 1 May 2024 20:18:20 +0100 Subject: [PATCH 51/55] Remove 60_ansi_arrow_split_bs_7u_spc Community Layout (#23259) --- keyboards/dz60/keyboard.json | 2 +- keyboards/dztech/dz60v2/keyboard.json | 1 - .../krush/krush60/solder/keyboard.json | 2 +- .../60_ansi_arrow_split_bs_7u_spc/readme.md | 3 - .../keymap.c | 27 ------- .../60_ansi_arrow_split_bs_7u_spc/info.json | 78 ------------------- .../60_ansi_arrow_split_bs_7u_spc/layout.json | 5 -- .../60_ansi_arrow_split_bs_7u_spc/readme.md | 30 ------- layouts/default/readme.md | 15 ---- 9 files changed, 2 insertions(+), 161 deletions(-) delete mode 100644 layouts/community/60_ansi_arrow_split_bs_7u_spc/readme.md delete mode 100644 layouts/default/60_ansi_arrow_split_bs_7u_spc/default_60_ansi_arrow_split_bs_7u_spc/keymap.c delete mode 100644 layouts/default/60_ansi_arrow_split_bs_7u_spc/info.json delete mode 100644 layouts/default/60_ansi_arrow_split_bs_7u_spc/layout.json delete mode 100644 layouts/default/60_ansi_arrow_split_bs_7u_spc/readme.md diff --git a/keyboards/dz60/keyboard.json b/keyboards/dz60/keyboard.json index eb831143b79..a6beff0d63a 100644 --- a/keyboards/dz60/keyboard.json +++ b/keyboards/dz60/keyboard.json @@ -54,7 +54,7 @@ }, "processor": "atmega32u4", "bootloader": "atmel-dfu", - "community_layouts": ["60_ansi", "60_ansi_arrow_split_bs_7u_spc", "60_ansi_arrow", "60_ansi_split_bs_rshift", "60_hhkb", "60_iso", "60_abnt2", "60_tsangan_hhkb"], + "community_layouts": ["60_ansi", "60_ansi_arrow", "60_ansi_split_bs_rshift", "60_hhkb", "60_iso", "60_abnt2", "60_tsangan_hhkb"], "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/dztech/dz60v2/keyboard.json b/keyboards/dztech/dz60v2/keyboard.json index bd1479b77c0..52889396089 100644 --- a/keyboards/dztech/dz60v2/keyboard.json +++ b/keyboards/dztech/dz60v2/keyboard.json @@ -51,7 +51,6 @@ "60_abnt2", "60_ansi", "60_ansi_arrow", - "60_ansi_arrow_split_bs_7u_spc", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_hhkb", diff --git a/keyboards/sawnsprojects/krush/krush60/solder/keyboard.json b/keyboards/sawnsprojects/krush/krush60/solder/keyboard.json index b3d4f8f97c6..4f5ca808ceb 100644 --- a/keyboards/sawnsprojects/krush/krush60/solder/keyboard.json +++ b/keyboards/sawnsprojects/krush/krush60/solder/keyboard.json @@ -48,7 +48,7 @@ "LAYOUT_60_ansi_arrow_split_bs_7u_spc": "LAYOUT_60_ansi_arrow_tsangan_split_bs", "LAYOUT_60_ansi_arrow_7u_spc": "LAYOUT_60_ansi_arrow_tsangan" }, - "community_layouts": ["60_ansi", "60_ansi_arrow", "60_ansi_arrow_split_bs_7u_spc"], + "community_layouts": ["60_ansi", "60_ansi_arrow"], "layouts": { "LAYOUT_all": { "layout": [ diff --git a/layouts/community/60_ansi_arrow_split_bs_7u_spc/readme.md b/layouts/community/60_ansi_arrow_split_bs_7u_spc/readme.md deleted file mode 100644 index d60387a000b..00000000000 --- a/layouts/community/60_ansi_arrow_split_bs_7u_spc/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -# 60_ansi_arrow_split_bs_7u_spc - - LAYOUT_60_ansi_arrow_split_bs_7u_spc diff --git a/layouts/default/60_ansi_arrow_split_bs_7u_spc/default_60_ansi_arrow_split_bs_7u_spc/keymap.c b/layouts/default/60_ansi_arrow_split_bs_7u_spc/default_60_ansi_arrow_split_bs_7u_spc/keymap.c deleted file mode 100644 index 409f415318b..00000000000 --- a/layouts/default/60_ansi_arrow_split_bs_7u_spc/default_60_ansi_arrow_split_bs_7u_spc/keymap.c +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2020 QMK / Sendy YK -// 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 │- │+ │\ │Del│ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ - * │Tab │Q │W │E │R │T │Y │U │I │O │P │[ │] │Bspc │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ - * │Caps │A │S │D │F │G │H │J │K │L │; │' │Enter │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤ - * │Shift │Z │X │C │V │B │N │M │, │. │Shift │↑ │/ │ - * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴──┬───┼───┼───┤ - * │Ctrl │GUI│Alt │Space │Alt│← │↓ │→ │ - * └─────┴───┴─────┴───────────────────────────┴───┴───┴───┴───┘ - */ - [0] = LAYOUT_60_ansi_arrow_split_bs_7u_spc( - 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_BSLS, 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_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_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, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT - ) -}; diff --git a/layouts/default/60_ansi_arrow_split_bs_7u_spc/info.json b/layouts/default/60_ansi_arrow_split_bs_7u_spc/info.json deleted file mode 100644 index bf30205f3d3..00000000000 --- a/layouts/default/60_ansi_arrow_split_bs_7u_spc/info.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "keyboard_name": "60% ANSI Arrow Split Backspace & 7U Space Layout", - "url": "https://mr.sendyyk.com", - "maintainer": "Sendy YK ", - "layouts": { - "LAYOUT_60_ansi_arrow_split_bs_7u_spc": { - "layout": [ - {"x": 0, "y": 0}, - {"x": 1, "y": 0}, - {"x": 2, "y": 0}, - {"x": 3, "y": 0}, - {"x": 4, "y": 0}, - {"x": 5, "y": 0}, - {"x": 6, "y": 0}, - {"x": 7, "y": 0}, - {"x": 8, "y": 0}, - {"x": 9, "y": 0}, - {"x": 10, "y": 0}, - {"x": 11, "y": 0}, - {"x": 12, "y": 0}, - {"x": 13, "y": 0}, - {"x": 14, "y": 0}, - - {"x": 0, "y": 1, "w": 1.5}, - {"x": 1.5, "y": 1}, - {"x": 2.5, "y": 1}, - {"x": 3.5, "y": 1}, - {"x": 4.5, "y": 1}, - {"x": 5.5, "y": 1}, - {"x": 6.5, "y": 1}, - {"x": 7.5, "y": 1}, - {"x": 8.5, "y": 1}, - {"x": 9.5, "y": 1}, - {"x": 10.5, "y": 1}, - {"x": 11.5, "y": 1}, - {"x": 12.5, "y": 1}, - {"x": 13.5, "y": 1, "w": 1.5}, - - {"x": 0, "y": 2, "w": 1.75}, - {"x": 1.75, "y": 2}, - {"x": 2.75, "y": 2}, - {"x": 3.75, "y": 2}, - {"x": 4.75, "y": 2}, - {"x": 5.75, "y": 2}, - {"x": 6.75, "y": 2}, - {"x": 7.75, "y": 2}, - {"x": 8.75, "y": 2}, - {"x": 9.75, "y": 2}, - {"x": 10.75, "y": 2}, - {"x": 11.75, "y": 2}, - {"x": 12.75, "y": 2, "w": 2.25}, - - {"x": 0, "y": 3, "w": 2.25}, - {"x": 2.25, "y": 3}, - {"x": 3.25, "y": 3}, - {"x": 4.25, "y": 3}, - {"x": 5.25, "y": 3}, - {"x": 6.25, "y": 3}, - {"x": 7.25, "y": 3}, - {"x": 8.25, "y": 3}, - {"x": 9.25, "y": 3}, - {"x": 10.25, "y": 3}, - {"x": 11.25, "y": 3, "w": 1.75}, - {"x": 13, "y": 3}, - {"x": 14, "y": 3}, - - {"x": 0, "y": 4, "w": 1.5}, - {"x": 1.5, "y": 4}, - {"x": 2.5, "y": 4, "w": 1.5}, - {"x": 4, "y": 4, "w": 7}, - {"x": 11, "y": 4}, - {"x": 12, "y": 4}, - {"x": 13, "y": 4}, - {"x": 14, "y": 4} - ] - } - } -} diff --git a/layouts/default/60_ansi_arrow_split_bs_7u_spc/layout.json b/layouts/default/60_ansi_arrow_split_bs_7u_spc/layout.json deleted file mode 100644 index db9c8d167b5..00000000000 --- a/layouts/default/60_ansi_arrow_split_bs_7u_spc/layout.json +++ /dev/null @@ -1,5 +0,0 @@ -[{a:7},"","","","","","","","","","","","","","",""], -[{w:1.5},"","","","","","","","","","","","","",{w:1.5},""], -[{w:1.75},"","","","","","","","","","","","",{w:2.25},""], -[{w:2.25},"","","","","","","","","","",{w:1.75},"","",""], -[{w:1.5},"","",{w:1.5},"",{w:7},"","","","",""] diff --git a/layouts/default/60_ansi_arrow_split_bs_7u_spc/readme.md b/layouts/default/60_ansi_arrow_split_bs_7u_spc/readme.md deleted file mode 100644 index 30292abb90d..00000000000 --- a/layouts/default/60_ansi_arrow_split_bs_7u_spc/readme.md +++ /dev/null @@ -1,30 +0,0 @@ -# 60_ansi_arrow_split_bs_7u_spc Keymap - -Default 60 ANSI Arrow Split Backspace & 7U Space Keymap by [Sendy YK](https://mr.sendyyk.com). - -```c - /* - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │Esc│1 │2 │3 │4 │5 │6 │7 │8 │9 │0 │- │+ │\ │Del│ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ - * │Tab │Q │W │E │R │T │Y │U │I │O │P │[ │] │Bspc │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ - * │Caps │A │S │D │F │G │H │J │K │L │; │' │Enter │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤ - * │Shift │Z │X │C │V │B │N │M │, │. │Shift │↑ │/ │ - * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴──┬───┼───┼───┤ - * │Ctrl │GUI│Alt │Space │Alt│← │↓ │→ │ - * └─────┴───┴─────┴───────────────────────────┴───┴───┴───┴───┘ - */ -``` - -## Build The Firmware - -Make example for keyboard (after setting up your build environment): - - make :default_60_ansi_arrow_split_bs_7u_spc - -More information: -* [Setting Up Your QMK Environment](https://docs.qmk.fm/#/getting_started_build_tools) -* [More Detailed make Instructions](https://docs.qmk.fm/#/getting_started_make_guide) -* [The Complete Newbs Guide To QMK](https://docs.qmk.fm/#/newbs) diff --git a/layouts/default/readme.md b/layouts/default/readme.md index fab13d47c55..159b339383f 100644 --- a/layouts/default/readme.md +++ b/layouts/default/readme.md @@ -49,21 +49,6 @@ LAYOUT_60_ansi_arrow └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ ``` -``` -LAYOUT_60_ansi_arrow_split_bs_7u_spc -┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ -│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ -│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ -│ │ │ │ │ │ │ │ │ │ │ │ │ │ -├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤ -│ │ │ │ │ │ │ │ │ │ │ │ │ │ -├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴──┬───┼───┼───┤ -│ │ │ │ │ │ │ │ │ -└─────┴───┴─────┴───────────────────────────┴───┴───┴───┴───┘ -``` - ``` LAYOUT_60_ansi_split_bs_rshift ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ From 337776105dc614a08d2d3a0db66c7c5be34afc4c Mon Sep 17 00:00:00 2001 From: Duncan Sutherland Date: Wed, 1 May 2024 20:27:40 +0100 Subject: [PATCH 52/55] add 60_iso_arrow and arrow_split_bs Community Layouts (#22556) --- .../60_ansi_arrow_split_bs/readme.md | 3 + layouts/community/60_iso_arrow/readme.md | 3 + .../community/60_iso_arrow_split_bs/readme.md | 3 + .../default_60_ansi_arrow/keymap.c | 10 +-- .../default_60_ansi_arrow_split_bs/keymap.c | 27 +++++++ .../default/60_ansi_arrow_split_bs/info.json | 79 ++++++++++++++++++ .../60_ansi_arrow_split_bs/layout.json | 5 ++ .../default/60_ansi_arrow_split_bs/readme.md | 3 + .../default_60_iso_arrow/keymap.c | 27 +++++++ layouts/default/60_iso_arrow/info.json | 79 ++++++++++++++++++ layouts/default/60_iso_arrow/layout.json | 5 ++ layouts/default/60_iso_arrow/readme.md | 3 + .../default_60_iso_arrow_split_bs/keymap.c | 27 +++++++ .../default/60_iso_arrow_split_bs/info.json | 80 +++++++++++++++++++ .../default/60_iso_arrow_split_bs/layout.json | 5 ++ .../default/60_iso_arrow_split_bs/readme.md | 3 + layouts/default/readme.md | 45 +++++++++++ 17 files changed, 402 insertions(+), 5 deletions(-) create mode 100644 layouts/community/60_ansi_arrow_split_bs/readme.md create mode 100644 layouts/community/60_iso_arrow/readme.md create mode 100644 layouts/community/60_iso_arrow_split_bs/readme.md create mode 100644 layouts/default/60_ansi_arrow_split_bs/default_60_ansi_arrow_split_bs/keymap.c create mode 100644 layouts/default/60_ansi_arrow_split_bs/info.json create mode 100644 layouts/default/60_ansi_arrow_split_bs/layout.json create mode 100644 layouts/default/60_ansi_arrow_split_bs/readme.md create mode 100644 layouts/default/60_iso_arrow/default_60_iso_arrow/keymap.c create mode 100644 layouts/default/60_iso_arrow/info.json create mode 100644 layouts/default/60_iso_arrow/layout.json create mode 100644 layouts/default/60_iso_arrow/readme.md create mode 100644 layouts/default/60_iso_arrow_split_bs/default_60_iso_arrow_split_bs/keymap.c create mode 100644 layouts/default/60_iso_arrow_split_bs/info.json create mode 100644 layouts/default/60_iso_arrow_split_bs/layout.json create mode 100644 layouts/default/60_iso_arrow_split_bs/readme.md diff --git a/layouts/community/60_ansi_arrow_split_bs/readme.md b/layouts/community/60_ansi_arrow_split_bs/readme.md new file mode 100644 index 00000000000..c008b4a6dec --- /dev/null +++ b/layouts/community/60_ansi_arrow_split_bs/readme.md @@ -0,0 +1,3 @@ +# 60_ansi_arrow_split_bs + + LAYOUT_60_ansi_arrow_split_bs diff --git a/layouts/community/60_iso_arrow/readme.md b/layouts/community/60_iso_arrow/readme.md new file mode 100644 index 00000000000..73015ab248e --- /dev/null +++ b/layouts/community/60_iso_arrow/readme.md @@ -0,0 +1,3 @@ +# 60_iso_arrow + + LAYOUT_60_iso_arrow diff --git a/layouts/community/60_iso_arrow_split_bs/readme.md b/layouts/community/60_iso_arrow_split_bs/readme.md new file mode 100644 index 00000000000..8f47644fe23 --- /dev/null +++ b/layouts/community/60_iso_arrow_split_bs/readme.md @@ -0,0 +1,3 @@ +# 60_iso_arrow_split_bs + + LAYOUT_60_iso_arrow_split_bs diff --git a/layouts/default/60_ansi_arrow/default_60_ansi_arrow/keymap.c b/layouts/default/60_ansi_arrow/default_60_ansi_arrow/keymap.c index c0baf9f47a7..5ad94501d06 100644 --- a/layouts/default/60_ansi_arrow/default_60_ansi_arrow/keymap.c +++ b/layouts/default/60_ansi_arrow/default_60_ansi_arrow/keymap.c @@ -6,15 +6,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ - * │Esc│1 │2 │3 │4 │5 │6 │7 │8 │9 │0 │- │+ │Bspc │ + * │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 │ [ │ ] │ \ │ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ - * │Caps │A │S │D │F │G │H │J │K │L │; │' │Enter │ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤ - * │Shift │Z │X │C │V │B │N │M │, │. │Shift │↑ │/ │ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ Shift│ ↑ │ / │ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬───┼───┼───┤ - * │Ctrl│GUI │Alt │Space │Alt│GUI│← │↓ │→ │ + * │Ctrl│GUI │Alt │Space │Alt│GUI│ ← │ ↓ │ → │ * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ */ [0] = LAYOUT_60_ansi_arrow( diff --git a/layouts/default/60_ansi_arrow_split_bs/default_60_ansi_arrow_split_bs/keymap.c b/layouts/default/60_ansi_arrow_split_bs/default_60_ansi_arrow_split_bs/keymap.c new file mode 100644 index 00000000000..e95baa6f4db --- /dev/null +++ b/layouts/default/60_ansi_arrow_split_bs/default_60_ansi_arrow_split_bs/keymap.c @@ -0,0 +1,27 @@ +// 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│ 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 │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ Shift│ ↑ │ / │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬───┼───┼───┤ + * │Ctrl│GUI │Alt │ │Alt│GUI│ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ + */ + [0] = LAYOUT_60_ansi_arrow_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_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_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, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/layouts/default/60_ansi_arrow_split_bs/info.json b/layouts/default/60_ansi_arrow_split_bs/info.json new file mode 100644 index 00000000000..23e4b6937d4 --- /dev/null +++ b/layouts/default/60_ansi_arrow_split_bs/info.json @@ -0,0 +1,79 @@ +{ + "keyboard_name": "60% ANSI Arrow Layout with Split Backspace", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_60_ansi_arrow_split_bs": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0}, + {"x": 14, "y": 0}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1, "w": 1.5}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2, "w": 2.25}, + + {"x": 0, "y": 3, "w": 2.25}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3, "w": 1.75}, + {"x": 13, "y": 3}, + {"x": 14, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4}, + {"x": 12, "y": 4}, + {"x": 13, "y": 4}, + {"x": 14, "y": 4} + ] + } + } +} diff --git a/layouts/default/60_ansi_arrow_split_bs/layout.json b/layouts/default/60_ansi_arrow_split_bs/layout.json new file mode 100644 index 00000000000..595b88bb558 --- /dev/null +++ b/layouts/default/60_ansi_arrow_split_bs/layout.json @@ -0,0 +1,5 @@ +[{a:7},"","","","","","","","","","","","","","",""], +[{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},"","","","","",""] diff --git a/layouts/default/60_ansi_arrow_split_bs/readme.md b/layouts/default/60_ansi_arrow_split_bs/readme.md new file mode 100644 index 00000000000..c008b4a6dec --- /dev/null +++ b/layouts/default/60_ansi_arrow_split_bs/readme.md @@ -0,0 +1,3 @@ +# 60_ansi_arrow_split_bs + + LAYOUT_60_ansi_arrow_split_bs diff --git a/layouts/default/60_iso_arrow/default_60_iso_arrow/keymap.c b/layouts/default/60_iso_arrow/default_60_iso_arrow/keymap.c new file mode 100644 index 00000000000..d3eaa478685 --- /dev/null +++ b/layouts/default/60_iso_arrow/default_60_iso_arrow/keymap.c @@ -0,0 +1,27 @@ +// 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│ 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│ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ + */ + [0] = LAYOUT_60_iso_arrow( + 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_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_RSFT, KC_UP, KC_SLSH, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/layouts/default/60_iso_arrow/info.json b/layouts/default/60_iso_arrow/info.json new file mode 100644 index 00000000000..a14008b14f7 --- /dev/null +++ b/layouts/default/60_iso_arrow/info.json @@ -0,0 +1,79 @@ +{ + "keyboard_name": "60% ISO Arrow Layout", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_60_iso_arrow": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0, "w": 2}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2}, + {"x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"x": 0, "y": 3, "w": 1.25}, + {"x": 1.25, "y": 3}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3, "w": 1.75}, + {"x": 13, "y": 3}, + {"x": 14, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4}, + {"x": 12, "y": 4}, + {"x": 13, "y": 4}, + {"x": 14, "y": 4} + ] + } + } +} diff --git a/layouts/default/60_iso_arrow/layout.json b/layouts/default/60_iso_arrow/layout.json new file mode 100644 index 00000000000..90f25c3ca8c --- /dev/null +++ b/layouts/default/60_iso_arrow/layout.json @@ -0,0 +1,5 @@ +[{a:7},"","","","","","","","","","","","","",{w:2},""], +[{w:1.5},"","","","","","","","","","","","","",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},""], +[{w:1.75},"","","","","","","","","","","","",""], +[{w:1.25},"","","","","","","","","","","",{w:1.75},"","",""], +[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"","","","","",""] diff --git a/layouts/default/60_iso_arrow/readme.md b/layouts/default/60_iso_arrow/readme.md new file mode 100644 index 00000000000..73015ab248e --- /dev/null +++ b/layouts/default/60_iso_arrow/readme.md @@ -0,0 +1,3 @@ +# 60_iso_arrow + + LAYOUT_60_iso_arrow diff --git a/layouts/default/60_iso_arrow_split_bs/default_60_iso_arrow_split_bs/keymap.c b/layouts/default/60_iso_arrow_split_bs/default_60_iso_arrow_split_bs/keymap.c new file mode 100644 index 00000000000..651c97366c2 --- /dev/null +++ b/layouts/default/60_iso_arrow_split_bs/default_60_iso_arrow_split_bs/keymap.c @@ -0,0 +1,27 @@ +// 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│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ + │Bsp│Del│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ + * │ 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│ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ + */ + [0] = LAYOUT_60_iso_arrow_split_bs( + 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_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_RSFT, KC_UP, KC_SLSH, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/layouts/default/60_iso_arrow_split_bs/info.json b/layouts/default/60_iso_arrow_split_bs/info.json new file mode 100644 index 00000000000..5a7b78e40d5 --- /dev/null +++ b/layouts/default/60_iso_arrow_split_bs/info.json @@ -0,0 +1,80 @@ +{ + "keyboard_name": "60% ISO Arrow Layout with Split Backspace", + "url": "", + "maintainer": "qmk", + "layouts": { + "LAYOUT_60_iso_arrow_split_bs": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0}, + {"x": 14, "y": 0}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2}, + {"x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"x": 0, "y": 3, "w": 1.25}, + {"x": 1.25, "y": 3}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3, "w": 1.75}, + {"x": 13, "y": 3}, + {"x": 14, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4}, + {"x": 12, "y": 4}, + {"x": 13, "y": 4}, + {"x": 14, "y": 4} + ] + } + } +} diff --git a/layouts/default/60_iso_arrow_split_bs/layout.json b/layouts/default/60_iso_arrow_split_bs/layout.json new file mode 100644 index 00000000000..bf494ab25f1 --- /dev/null +++ b/layouts/default/60_iso_arrow_split_bs/layout.json @@ -0,0 +1,5 @@ +[{a:7},"","","","","","","","","","","","","","",""], +[{w:1.5},"","","","","","","","","","","","","",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},""], +[{w:1.75},"","","","","","","","","","","","",""], +[{w:1.25},"","","","","","","","","","","",{w:1.75},"","",""], +[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"","","","","",""] diff --git a/layouts/default/60_iso_arrow_split_bs/readme.md b/layouts/default/60_iso_arrow_split_bs/readme.md new file mode 100644 index 00000000000..8f47644fe23 --- /dev/null +++ b/layouts/default/60_iso_arrow_split_bs/readme.md @@ -0,0 +1,3 @@ +# 60_iso_arrow_split_bs + + LAYOUT_60_iso_arrow_split_bs diff --git a/layouts/default/readme.md b/layouts/default/readme.md index fab13d47c55..2460f64701f 100644 --- a/layouts/default/readme.md +++ b/layouts/default/readme.md @@ -49,6 +49,21 @@ LAYOUT_60_ansi_arrow └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ ``` +``` +LAYOUT_60_ansi_arrow_split_bs +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ +└────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ +``` + ``` LAYOUT_60_ansi_arrow_split_bs_7u_spc ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ @@ -154,6 +169,36 @@ LAYOUT_60_iso └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ ``` +``` +LAYOUT_60_iso_arrow +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬──┴┬───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ +└────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ +``` + +``` +LAYOUT_60_iso_arrow_split_bs +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬──┴┬───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ +└────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ +``` + ``` LAYOUT_60_iso_split_bs_rshift ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ From 61c7c1f74cc5365501a3038181df551df11f719e Mon Sep 17 00:00:00 2001 From: Ryan Date: Thu, 2 May 2024 19:48:49 +1000 Subject: [PATCH 53/55] Convert some AVR GPIO operations to macros (#23424) --- keyboards/40percentclub/ut47/led.c | 14 +- keyboards/40percentclub/ut47/matrix.c | 44 ++++--- keyboards/amjkeyboard/amj96/matrix.c | 63 ++++----- keyboards/bajjak/bajjak.c | 10 +- keyboards/bpiphany/sixshooter/sixshooter.h | 61 +++++++-- keyboards/ckeys/obelus/obelus.c | 4 +- keyboards/clueboard/66/rev2/rev2.c | 24 ++-- keyboards/clueboard/66/rev3/rev3.c | 24 ++-- .../66_hotswap/prototype/prototype.c | 24 ++-- keyboards/converter/hp_46010a/matrix.c | 31 ++--- keyboards/converter/sun_usb/matrix.c | 6 +- keyboards/crawlpad/keymaps/default/keymap.c | 35 ++--- keyboards/do60/do60.h | 21 ++- keyboards/ergodox_ez/ergodox_ez.c | 17 +-- keyboards/ergodox_ez/ergodox_ez.h | 42 ++++-- keyboards/gboards/ergotaco/ergotaco.c | 29 +++-- keyboards/gboards/georgi/georgi.c | 17 ++- keyboards/gboards/gergo/gergo.c | 17 ++- keyboards/gh80_3000/keymaps/ansi_wkl/keymap.c | 1 - keyboards/gh80_3000/keymaps/default/keymap.c | 1 - .../gh80_3000/keymaps/iso_default/keymap.c | 1 - keyboards/gh80_3000/keymaps/iso_std/keymap.c | 1 - keyboards/gh80_3000/keymaps/iso_wkl/keymap.c | 1 - .../glenpickle/chimera_ergo/chimera_ergo.c | 10 +- .../glenpickle/chimera_ergo/chimera_ergo.h | 40 ++---- keyboards/glenpickle/chimera_ls/chimera_ls.c | 10 +- keyboards/glenpickle/chimera_ls/chimera_ls.h | 40 ++---- .../glenpickle/chimera_ortho/chimera_ortho.c | 10 +- .../glenpickle/chimera_ortho/chimera_ortho.h | 40 ++---- .../chimera_ortho_plus/chimera_ortho_plus.c | 12 +- .../chimera_ortho_plus/chimera_ortho_plus.h | 16 ++- .../arrow_pad/keymaps/default/keymap.c | 14 +- .../arrow_pad/keymaps/pad_21/keymap.c | 16 +-- .../arrow_pad/keymaps/pad_24/keymap.c | 14 +- keyboards/handwired/atreus50/atreus50.c | 4 +- keyboards/handwired/datahand/matrix.c | 16 +-- keyboards/handwired/frenchdev/frenchdev.c | 11 +- keyboards/handwired/frenchdev/frenchdev.h | 42 ++++-- keyboards/handwired/frenchdev/matrix.c | 54 ++++---- keyboards/handwired/gamenum/gamenum.c | 8 +- .../gamenum/keymaps/default/keymap.c | 8 +- keyboards/handwired/retro_refit/retro_refit.c | 4 +- keyboards/hotdox/hotdox.h | 45 +++++-- keyboards/hotdox/matrix.c | 45 ++++--- keyboards/keyboardio/model01/leds.c | 7 +- keyboards/keyboardio/model01/matrix.c | 4 +- keyboards/kira/kira75/kira75.h | 23 +++- keyboards/kmini/matrix.c | 104 ++++++++------- .../mini/keymaps/default-gsm-newbs/keymap.c | 120 +++++++++--------- keyboards/knops/mini/keymaps/default/keymap.c | 120 +++++++++--------- keyboards/lazydesigners/the50/the50.c | 7 +- keyboards/mitosis/mitosis.c | 10 +- keyboards/mitosis/mitosis.h | 40 ++---- .../noxary/268/keymaps/sixtyeight/keymap.c | 5 +- keyboards/org60/org60.h | 21 ++- keyboards/planck/light/light.c | 4 +- .../comet46/keymaps/default-rgbled/keymap.c | 22 ++-- keyboards/sirius/uni660/rev1/rev1.c | 12 +- keyboards/sirius/uni660/rev1/rev1.h | 40 ++---- keyboards/sirius/uni660/rev2/rev2.c | 12 +- keyboards/sirius/uni660/rev2/rev2.h | 40 ++---- keyboards/sirius/unigo66/main.c | 20 +-- keyboards/sixkeyboard/matrix.c | 13 +- keyboards/sixkeyboard/sixkeyboard.c | 29 ++--- keyboards/tmo50/tmo50.c | 40 ++---- keyboards/v60_type_r/config.h | 6 +- keyboards/v60_type_r/v60_type_r.c | 16 ++- .../omnikey_bh/keymaps/default/keymap.c | 23 +--- keyboards/wilba_tech/wt_rgb_backlight.c | 9 +- keyboards/xiudi/xd60/xd60.h | 21 ++- keyboards/ydkb/yd68/keymaps/default/keymap.c | 2 +- 71 files changed, 877 insertions(+), 840 deletions(-) diff --git a/keyboards/40percentclub/ut47/led.c b/keyboards/40percentclub/ut47/led.c index 867a6e2e2a3..fa431de760c 100644 --- a/keyboards/40percentclub/ut47/led.c +++ b/keyboards/40percentclub/ut47/led.c @@ -25,16 +25,14 @@ bool led_update_kb(led_t led_state) if (res) { if (led_state.caps_lock) { // output low - DDRB |= (1<<0); - PORTB &= ~(1<<0); - DDRD |= (1<<5); - PORTD &= ~(1<<5); + gpio_set_pin_output(B0); + gpio_write_pin_low(B0); + gpio_set_pin_output(D5); + gpio_write_pin_low(D5); } else { // Hi-Z - DDRB &= ~(1<<0); - PORTB &= ~(1<<0); - DDRD &= ~(1<<5); - PORTD &= ~(1<<5); + gpio_set_pin_input(B0); + gpio_set_pin_input(D5); } } return false; diff --git a/keyboards/40percentclub/ut47/matrix.c b/keyboards/40percentclub/ut47/matrix.c index 02ed88b7091..d803f11c5e4 100644 --- a/keyboards/40percentclub/ut47/matrix.c +++ b/keyboards/40percentclub/ut47/matrix.c @@ -126,14 +126,18 @@ void matrix_print(void) static void init_cols(void) { // Input with pull-up(DDR:0, PORT:1) - DDRF &= ~(1<<4 | 1<<5 | 1<<6 | 1<<7); - PORTF |= (1<<4 | 1<<5 | 1<<6 | 1<<7); - DDRE &= ~(1<<6); - PORTE |= (1<<6); - DDRD &= ~(1<<7); - PORTD |= (1<<7); - DDRB &= ~(1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<5 | 1<<6); - PORTB |= (1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<5 | 1<<6); + gpio_set_pin_input_high(F4); + gpio_set_pin_input_high(F5); + gpio_set_pin_input_high(F6); + gpio_set_pin_input_high(F7); + gpio_set_pin_input_high(E6); + gpio_set_pin_input_high(D7); + gpio_set_pin_input_high(B1); + gpio_set_pin_input_high(B2); + gpio_set_pin_input_high(B3); + gpio_set_pin_input_high(B4); + gpio_set_pin_input_high(B5); + gpio_set_pin_input_high(B6); } static matrix_row_t read_cols(void) @@ -160,10 +164,10 @@ static matrix_row_t read_cols(void) static void unselect_rows(void) { // Hi-Z(DDR:0, PORT:0) to unselect - DDRD &= ~0b00010011; - PORTD &= ~0b00010011; - DDRC &= ~0b01000000; - PORTC &= ~0b01000000; + gpio_set_pin_input(C6); + gpio_set_pin_input(D0); + gpio_set_pin_input(D1); + gpio_set_pin_input(D4); } static void select_row(uint8_t row) @@ -171,20 +175,20 @@ static void select_row(uint8_t row) // Output low(DDR:1, PORT:0) to select switch (row) { case 0: - DDRD |= (1<<1); - PORTD &= ~(1<<1); + gpio_set_pin_output(D1); + gpio_write_pin_low(D1); break; case 1: - DDRD |= (1<<0); - PORTD &= ~(1<<0); + gpio_set_pin_output(D0); + gpio_write_pin_low(D0); break; case 2: - DDRD |= (1<<4); - PORTD &= ~(1<<4); + gpio_set_pin_output(D4); + gpio_write_pin_low(D4); break; case 3: - DDRC |= (1<<6); - PORTC &= ~(1<<6); + gpio_set_pin_output(C6); + gpio_write_pin_low(C6); break; } } diff --git a/keyboards/amjkeyboard/amj96/matrix.c b/keyboards/amjkeyboard/amj96/matrix.c index 7faf40d4fe7..448508971fb 100644 --- a/keyboards/amjkeyboard/amj96/matrix.c +++ b/keyboards/amjkeyboard/amj96/matrix.c @@ -65,8 +65,8 @@ void matrix_init(void) #endif // 85 REST - DDRD |= _BV(PD7); - PORTD |= _BV(PD7); + gpio_set_pin_output(D7); + gpio_write_pin_high(D7); // initialize row and col init_rows(); @@ -143,36 +143,35 @@ static void init_cols(void) DDRD &= 0b00011100; PORTD |= 0b11100011; - DDRB &= ~(_BV(PB6) | _BV(PB7)| _BV(PB0)); - PORTB |= (_BV(PB6) | _BV(PB7)| _BV(PB0)); + gpio_set_pin_input_high(B0); + gpio_set_pin_input_high(B6); + gpio_set_pin_input_high(B7); - DDRE &= ~_BV(PE6); - PORTE |= _BV(PE6); + gpio_set_pin_input_high(E6); - DDRC &= ~_BV(PC7); - PORTC |= _BV(PC7); + gpio_set_pin_input_high(C7); } static matrix_row_t read_cols(void) { - return (PINF&_BV(PF7) ? 0 : (1<<0)) | - (PINF&_BV(PF6) ? 0 : (1<<1)) | - (PINF&_BV(PF5) ? 0 : (1<<2)) | - (PINF&_BV(PF4) ? 0 : (1<<3)) | - (PINF&_BV(PF1) ? 0 : (1<<4)) | - (PINF&_BV(PF0) ? 0 : (1<<5)) | - (PINE&_BV(PE6) ? 0 : (1<<6)) | - (PIND&_BV(PD7) ? 0 : (1<<7)) | - (PIND&_BV(PD6) ? 0 : (1<<8)) | - (PIND&_BV(PD5) ? 0 : (1<<9)) | - (PIND&_BV(PD1) ? 0 : (1<<10)) | - (PIND&_BV(PD0) ? 0 : (1<<11)) | - (PINB&_BV(PB7) ? 0 : (1<<12)) | - (PINB&_BV(PB6) ? 0 : (1<<13)) | - (PINB&_BV(PB0) ? 0 : (1<<14)) | - (PINC&_BV(PC7) ? 0 : (1<<15)); + return (gpio_read_pin(F7) ? 0 : (1<<0)) | + (gpio_read_pin(F6) ? 0 : (1<<1)) | + (gpio_read_pin(F5) ? 0 : (1<<2)) | + (gpio_read_pin(F4) ? 0 : (1<<3)) | + (gpio_read_pin(F1) ? 0 : (1<<4)) | + (gpio_read_pin(F0) ? 0 : (1<<5)) | + (gpio_read_pin(E6) ? 0 : (1<<6)) | + (gpio_read_pin(D7) ? 0 : (1<<7)) | + (gpio_read_pin(D6) ? 0 : (1<<8)) | + (gpio_read_pin(D5) ? 0 : (1<<9)) | + (gpio_read_pin(D1) ? 0 : (1<<10)) | + (gpio_read_pin(D0) ? 0 : (1<<11)) | + (gpio_read_pin(B7) ? 0 : (1<<12)) | + (gpio_read_pin(B6) ? 0 : (1<<13)) | + (gpio_read_pin(B0) ? 0 : (1<<14)) | + (gpio_read_pin(C7) ? 0 : (1<<15)); } /* Row pin configuration @@ -184,21 +183,23 @@ static matrix_row_t read_cols(void) static void init_rows(void) { - DDRB |= (1<> bit ; } @@ -138,18 +138,19 @@ void Matrix_ThrowByte(void) { void matrix_init (void) { // debug_matrix = 1; // PB0 (SS) and PB1 (SCLK) set to outputs - DDRB |= RESET | SCLK ; + gpio_set_pin_output(HP_46010A_RESET_PIN); + gpio_set_pin_output(HP_46010A_SCLK_PIN); // PB2, is unused, and PB3 is our serial input - DDRB &= ~SDATA ; + gpio_set_pin_input(HP_46010A_SDATA_PIN); // SS is reset for this board, and is active High // SCLK is the serial clock and is active High - PORTB &= ~RESET ; - PORTB |= SCLK ; + gpio_write_pin_low(HP_46010A_RESET_PIN); + gpio_write_pin_high(HP_46010A_SCLK_PIN); // led pin - DDRD |= LED ; - PORTD &= ~LED ; + gpio_set_pin_output(HP_46010A_LED_PIN); + gpio_write_pin_low(HP_46010A_LED_PIN); matrix_init_kb(); diff --git a/keyboards/converter/sun_usb/matrix.c b/keyboards/converter/sun_usb/matrix.c index 6d52d5cd6c5..93354ee114b 100644 --- a/keyboards/converter/sun_usb/matrix.c +++ b/keyboards/converter/sun_usb/matrix.c @@ -74,8 +74,8 @@ uint8_t matrix_cols(void) void matrix_init(void) { - /* DDRD |= (1<<6); */ - /* PORTD |= (1<<6); */ + /* gpio_set_pin_output(D6); */ + /* gpio_write_pin_high(D6); */ debug_enable = true; uart_init(1200); @@ -99,7 +99,7 @@ void matrix_init(void) /* } */ /* print(" Done\n"); */ - /* PORTD &= ~(1<<6); */ + /* gpio_write_pin_low(D6) */ matrix_init_kb(); return; diff --git a/keyboards/crawlpad/keymaps/default/keymap.c b/keyboards/crawlpad/keymaps/default/keymap.c index 547132bb7dd..306ade6e5f8 100755 --- a/keyboards/crawlpad/keymaps/default/keymap.c +++ b/keyboards/crawlpad/keymaps/default/keymap.c @@ -40,32 +40,16 @@ void set_led(int idx, bool enable) { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case BL1: - if (record->event.pressed) { - PORTB |= (1 << 4); - } else { - PORTB &= ~(1 << 4); - } + gpio_write_pin(B4, record->event.pressed); return false; case BL2: - if (record->event.pressed) { - PORTB |= (1 << 5); - } else { - PORTB &= ~(1 << 5); - } + gpio_write_pin(B5, record->event.pressed); return false; case BL3: - if (record->event.pressed) { - PORTB |= (1 << 6); - } else { - PORTB &= ~(1 << 6); - } + gpio_write_pin(B6, record->event.pressed); return false; case BL4: - if (record->event.pressed) { - PORTB |= (1 << 7); - } else { - PORTB &= ~(1 << 7); - } + gpio_write_pin(B7, record->event.pressed); return false; } return true; @@ -73,6 +57,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { void matrix_init_user(void) { /* set LED row pins to output and low */ - DDRB |= (1 << 4) | (1 << 5) | (1 << 6) | (1 << 7); - PORTB &= ~(1 << 4) & ~(1 << 5) & ~(1 << 6) & ~(1 << 7); + gpio_set_pin_output(B4); + gpio_set_pin_output(B5); + gpio_set_pin_output(B6); + gpio_set_pin_output(B7); + + gpio_write_pin_low(B4); + gpio_write_pin_low(B5); + gpio_write_pin_low(B6); + gpio_write_pin_low(B7); } diff --git a/keyboards/do60/do60.h b/keyboards/do60/do60.h index de64b8f134d..5aa9c17f2ea 100644 --- a/keyboards/do60/do60.h +++ b/keyboards/do60/do60.h @@ -2,6 +2,9 @@ #include "quantum.h" +#define DO60_CAPS_LOCK_LED_PIN B2 +#define DO60_BACKLIGHT_PIN F4 + /* DO60 LEDs * GPIO pads * 0 F7 not connected @@ -13,11 +16,21 @@ */ /* -inline void do60_caps_led_on(void) { DDRB |= (1<<2); PORTB &= ~(1<<2); } -inline void do60_bl_led_on(void) { DDRF |= (1<<4); PORTF &= ~(1<<4); } +inline void do60_caps_led_on(void) { + gpio_set_pin_output(DO60_CAPS_LOCK_LED_PIN); + gpio_write_pin_low(DO60_CAPS_LOCK_LED_PIN); +} +inline void do60_bl_led_on(void) { + gpio_set_pin_output(DO60_BACKLIGHT_PIN); + gpio_write_pin_low(DO60_BACKLIGHT_PIN); +} -inline void do60_caps_led_off(void) { DDRB &= ~(1<<2); PORTB &= ~(1<<2); } -inline void do60_bl_led_off(void) { DDRF &= ~(1<<4); PORTF &= ~(1<<4); } +inline void do60_caps_led_off(void) { + gpio_set_pin_input(DO60_CAPS_LOCK_LED_PIN); +} +inline void do60_bl_led_off(void) { + gpio_set_pin_input(DO60_BACKLIGHT_PIN); +} */ inline void setdefaultrgb(void){ rgblight_sethsv(100,100,100); } diff --git a/keyboards/ergodox_ez/ergodox_ez.c b/keyboards/ergodox_ez/ergodox_ez.c index 5270738f86d..5fc173917fd 100644 --- a/keyboards/ergodox_ez/ergodox_ez.c +++ b/keyboards/ergodox_ez/ergodox_ez.c @@ -24,13 +24,11 @@ extern inline void ergodox_board_led_on(void); extern inline void ergodox_right_led_1_on(void); extern inline void ergodox_right_led_2_on(void); extern inline void ergodox_right_led_3_on(void); -extern inline void ergodox_right_led_on(uint8_t led); extern inline void ergodox_board_led_off(void); extern inline void ergodox_right_led_1_off(void); extern inline void ergodox_right_led_2_off(void); extern inline void ergodox_right_led_3_off(void); -extern inline void ergodox_right_led_off(uint8_t led); extern inline void ergodox_led_all_on(void); extern inline void ergodox_led_all_off(void); @@ -53,17 +51,14 @@ void matrix_init_kb(void) { TCCR1B = 0b00001001; // set and configure fast PWM // (tied to Vcc for hardware convenience) - DDRB &= ~(1 << 4); // set B(4) as input - PORTB &= ~(1 << 4); // set B(4) internal pull-up disabled + gpio_set_pin_input(B4); // set B(4) as input, internal pull-up disabled - // unused pins - C7, D4, D5, D7, E6 + // unused pins - C7, D4, D5, E6 // set as input with internal pull-up enabled - DDRC &= ~(1 << 7); - DDRD &= ~(1 << 5 | 1 << 4); - DDRE &= ~(1 << 6); - PORTC |= (1 << 7); - PORTD |= (1 << 5 | 1 << 4); - PORTE |= (1 << 6); + gpio_set_pin_input_high(C7); + gpio_set_pin_input_high(D4); + gpio_set_pin_input_high(D5); + gpio_set_pin_input_high(E6); keyboard_config.raw = eeconfig_read_kb(); ergodox_led_all_set((uint8_t)keyboard_config.led_level * 255 / 4); diff --git a/keyboards/ergodox_ez/ergodox_ez.h b/keyboards/ergodox_ez/ergodox_ez.h index df2dbed7157..3938ff49f16 100644 --- a/keyboards/ergodox_ez/ergodox_ez.h +++ b/keyboards/ergodox_ez/ergodox_ez.h @@ -51,18 +51,40 @@ uint8_t ergodox_left_leds_update(void); #define LED_BRIGHTNESS_HI 255 #endif +#define ERGODOX_EZ_BOARD_LED_PIN D6 +#define ERGODOX_EZ_RIGHT_LED_1_PIN B5 +#define ERGODOX_EZ_RIGHT_LED_2_PIN B6 +#define ERGODOX_EZ_RIGHT_LED_3_PIN B7 -inline void ergodox_board_led_on(void) { DDRD |= (1<<6); PORTD |= (1<<6); } -inline void ergodox_right_led_1_on(void) { DDRB |= (1<<5); PORTB |= (1<<5); } -inline void ergodox_right_led_2_on(void) { DDRB |= (1<<6); PORTB |= (1<<6); } -inline void ergodox_right_led_3_on(void) { DDRB |= (1<<7); PORTB |= (1<<7); } -inline void ergodox_right_led_on(uint8_t led) { DDRB |= (1<<(led+4)); PORTB |= (1<<(led+4)); } +inline void ergodox_board_led_on(void) { + gpio_set_pin_output(ERGODOX_EZ_BOARD_LED_PIN); + gpio_write_pin_high(ERGODOX_EZ_BOARD_LED_PIN); +} +inline void ergodox_right_led_1_on(void) { + gpio_set_pin_output(ERGODOX_EZ_RIGHT_LED_1_PIN); + gpio_write_pin_high(ERGODOX_EZ_RIGHT_LED_1_PIN); +} +inline void ergodox_right_led_2_on(void) { + gpio_set_pin_output(ERGODOX_EZ_RIGHT_LED_2_PIN); + gpio_write_pin_high(ERGODOX_EZ_RIGHT_LED_2_PIN); +} +inline void ergodox_right_led_3_on(void) { + gpio_set_pin_output(ERGODOX_EZ_RIGHT_LED_3_PIN); + gpio_write_pin_high(ERGODOX_EZ_RIGHT_LED_3_PIN); +} -inline void ergodox_board_led_off(void) { DDRD &= ~(1<<6); PORTD &= ~(1<<6); } -inline void ergodox_right_led_1_off(void) { DDRB &= ~(1<<5); PORTB &= ~(1<<5); } -inline void ergodox_right_led_2_off(void) { DDRB &= ~(1<<6); PORTB &= ~(1<<6); } -inline void ergodox_right_led_3_off(void) { DDRB &= ~(1<<7); PORTB &= ~(1<<7); } -inline void ergodox_right_led_off(uint8_t led) { DDRB &= ~(1<<(led+4)); PORTB &= ~(1<<(led+4)); } +inline void ergodox_board_led_off(void) { + gpio_set_pin_input(ERGODOX_EZ_BOARD_LED_PIN); +} +inline void ergodox_right_led_1_off(void) { + gpio_set_pin_input(ERGODOX_EZ_RIGHT_LED_1_PIN); +} +inline void ergodox_right_led_2_off(void) { + gpio_set_pin_input(ERGODOX_EZ_RIGHT_LED_2_PIN); +} +inline void ergodox_right_led_3_off(void) { + gpio_set_pin_input(ERGODOX_EZ_RIGHT_LED_3_PIN); +} #ifdef LEFT_LEDS bool ergodox_left_led_1; diff --git a/keyboards/gboards/ergotaco/ergotaco.c b/keyboards/gboards/ergotaco/ergotaco.c index 6795dfde4f2..1e526f15e29 100644 --- a/keyboards/gboards/ergotaco/ergotaco.c +++ b/keyboards/gboards/ergotaco/ergotaco.c @@ -5,25 +5,30 @@ i2c_status_t mcp23018_status = 0x20; void matrix_init_kb(void) { // (tied to Vcc for hardware convenience) - //DDRB &= ~(1<<4); // set B(4) as input - //PORTB &= ~(1<<4); // set B(4) internal pull-up disabled + //gpio_set_pin_input(B4); // set B(4) as input, internal pull-up disabled // unused pins // set as input with internal pull-up enabled - DDRB &= ~(1<<4 | 1<<5 | 1<<6 | 1<<7); - PORTB |= (1<<4 | 1<<5 | 1<<6 | 1<<7); + gpio_set_pin_input_high(B4); + gpio_set_pin_input_high(B5); + gpio_set_pin_input_high(B6); + gpio_set_pin_input_high(B7); - DDRC &= ~(1<<7 | 1<<6); - PORTC |= (1<<7 | 1<<6); + gpio_set_pin_input_high(C6); + gpio_set_pin_input_high(C7); - DDRD &= ~(1<<4 | 1<<5 | 1<<6 | 1<<7); - PORTD |= (1<<4 | 1<<5 | 1<<6 | 1<<7); + gpio_set_pin_input_high(D4); + gpio_set_pin_input_high(D5); + gpio_set_pin_input_high(D6); + gpio_set_pin_input_high(D7); - DDRE &= ~(1<<6); - PORTE |= (1<<6); + gpio_set_pin_input_high(E6); - DDRF &= ~(1<<0 | 1<<1 | 1<<4 | 1<<6 | 1<<7); - PORTF |= (1<<0 | 1<<1 | 1<<4 | 1<<6 | 1<<7); + gpio_set_pin_input_high(D0); + gpio_set_pin_input_high(D1); + gpio_set_pin_input_high(D4); + gpio_set_pin_input_high(D6); + gpio_set_pin_input_high(D7); matrix_init_user(); } diff --git a/keyboards/gboards/georgi/georgi.c b/keyboards/gboards/georgi/georgi.c index 44b7067b475..da88e6ed8ba 100644 --- a/keyboards/gboards/georgi/georgi.c +++ b/keyboards/gboards/georgi/georgi.c @@ -7,17 +7,16 @@ void matrix_init_kb(void) { steno_set_mode(STENO_MODE_GEMINI); // or STENO_MODE_BOLT // (tied to Vcc for hardware convenience) - //DDRB &= ~(1<<4); // set B(4) as input - //PORTB &= ~(1<<4); // set B(4) internal pull-up disabled + //gpio_set_pin_input(B4); // set B(4) as input, internal pull-up disabled - // unused pins - C7, D4, D5, D7, E6 + // unused pins - C7, D4, D5, D6, D7, E6 // set as input with internal pull-up enabled - DDRC &= ~(1<<7); - DDRD &= ~(1<<5 | 1<<4 | 1<<6 | 1<<7); - DDRE &= ~(1<<6); - PORTC |= (1<<7); - PORTD |= (1<<5 | 1<<4 | 1<<6 | 1<<7); - PORTE |= (1<<6); + gpio_set_pin_input_high(C7); + gpio_set_pin_input_high(D4); + gpio_set_pin_input_high(D5); + gpio_set_pin_input_high(D6); + gpio_set_pin_input_high(D7); + gpio_set_pin_input_high(E6); matrix_init_user(); } diff --git a/keyboards/gboards/gergo/gergo.c b/keyboards/gboards/gergo/gergo.c index fa73c4b42f5..1ec6105eeb6 100644 --- a/keyboards/gboards/gergo/gergo.c +++ b/keyboards/gboards/gergo/gergo.c @@ -5,17 +5,16 @@ i2c_status_t mcp23018_status = 0x20; void matrix_init_kb(void) { // (tied to Vcc for hardware convenience) - //DDRB &= ~(1<<4); // set B(4) as input - //PORTB &= ~(1<<4); // set B(4) internal pull-up disabled + //gpio_set_pin_input(B4); // set B(4) as input, internal pull-up disabled - // unused pins - C7, D4, D5, D7, E6 + // unused pins - C7, D4, D5, D6, D7, E6 // set as input with internal pull-up enabled - DDRC &= ~(1<<7); - DDRD &= ~(1<<5 | 1<<4 | 1<<6 | 1<<7); - DDRE &= ~(1<<6); - PORTC |= (1<<7); - PORTD |= (1<<5 | 1<<4 | 1<<6 | 1<<7); - PORTE |= (1<<6); + gpio_set_pin_input_high(C7); + gpio_set_pin_input_high(D4); + gpio_set_pin_input_high(D5); + gpio_set_pin_input_high(D6); + gpio_set_pin_input_high(D7); + gpio_set_pin_input_high(E6); matrix_init_user(); } diff --git a/keyboards/gh80_3000/keymaps/ansi_wkl/keymap.c b/keyboards/gh80_3000/keymaps/ansi_wkl/keymap.c index a949b11941e..54fdb3400d3 100644 --- a/keyboards/gh80_3000/keymaps/ansi_wkl/keymap.c +++ b/keyboards/gh80_3000/keymaps/ansi_wkl/keymap.c @@ -11,4 +11,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ) }; - diff --git a/keyboards/gh80_3000/keymaps/default/keymap.c b/keyboards/gh80_3000/keymaps/default/keymap.c index 08f43c1d685..4a54df83cc0 100644 --- a/keyboards/gh80_3000/keymaps/default/keymap.c +++ b/keyboards/gh80_3000/keymaps/default/keymap.c @@ -11,4 +11,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PCMM, KC_PDOT, KC_PENT ) }; - diff --git a/keyboards/gh80_3000/keymaps/iso_default/keymap.c b/keyboards/gh80_3000/keymaps/iso_default/keymap.c index ff2b373a544..b3433eb21a5 100644 --- a/keyboards/gh80_3000/keymaps/iso_default/keymap.c +++ b/keyboards/gh80_3000/keymaps/iso_default/keymap.c @@ -11,4 +11,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PCMM, KC_PDOT, KC_PENT ) }; - diff --git a/keyboards/gh80_3000/keymaps/iso_std/keymap.c b/keyboards/gh80_3000/keymaps/iso_std/keymap.c index 7783aae0a9f..26fbb855e83 100644 --- a/keyboards/gh80_3000/keymaps/iso_std/keymap.c +++ b/keyboards/gh80_3000/keymaps/iso_std/keymap.c @@ -11,4 +11,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 ) }; - diff --git a/keyboards/gh80_3000/keymaps/iso_wkl/keymap.c b/keyboards/gh80_3000/keymaps/iso_wkl/keymap.c index 9108f6aba41..4d20f5a402e 100644 --- a/keyboards/gh80_3000/keymaps/iso_wkl/keymap.c +++ b/keyboards/gh80_3000/keymaps/iso_wkl/keymap.c @@ -11,4 +11,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ) }; - diff --git a/keyboards/glenpickle/chimera_ergo/chimera_ergo.c b/keyboards/glenpickle/chimera_ergo/chimera_ergo.c index 47653c2e4b6..40748e0b3d2 100644 --- a/keyboards/glenpickle/chimera_ergo/chimera_ergo.c +++ b/keyboards/glenpickle/chimera_ergo/chimera_ergo.c @@ -1,10 +1,12 @@ #include "chimera_ergo.h" void led_init(void) { - DDRD |= (1<<1); - PORTD |= (1<<1); - DDRF |= (1<<4) | (1<<5); - PORTF |= (1<<4) | (1<<5); + gpio_set_pin_output(CHIMERA_ERGO_GREEN_LED_PIN); + gpio_write_pin_high(CHIMERA_ERGO_GREEN_LED_PIN); + gpio_set_pin_output(CHIMERA_ERGO_BLUE_LED_PIN); + gpio_write_pin_high(CHIMERA_ERGO_BLUE_LED_PIN); + gpio_set_pin_output(CHIMERA_ERGO_RED_LED_PIN); + gpio_write_pin_high(CHIMERA_ERGO_RED_LED_PIN); } diff --git a/keyboards/glenpickle/chimera_ergo/chimera_ergo.h b/keyboards/glenpickle/chimera_ergo/chimera_ergo.h index 04ef56503ff..46f0b931e8a 100644 --- a/keyboards/glenpickle/chimera_ergo/chimera_ergo.h +++ b/keyboards/glenpickle/chimera_ergo/chimera_ergo.h @@ -2,12 +2,16 @@ #include "quantum.h" -#define red_led_off PORTF |= (1<<5) -#define red_led_on PORTF &= ~(1<<5) -#define blu_led_off PORTF |= (1<<4) -#define blu_led_on PORTF &= ~(1<<4) -#define grn_led_off PORTD |= (1<<1) -#define grn_led_on PORTD &= ~(1<<1) +#define CHIMERA_ERGO_RED_LED_PIN F5 +#define CHIMERA_ERGO_GREEN_LED_PIN D1 +#define CHIMERA_ERGO_BLUE_LED_PIN F4 + +#define red_led_off gpio_write_pin_high(CHIMERA_ERGO_RED_LED_PIN) +#define red_led_on gpio_write_pin_low(CHIMERA_ERGO_RED_LED_PIN) +#define blu_led_off gpio_write_pin_high(CHIMERA_ERGO_BLUE_LED_PIN) +#define blu_led_on gpio_write_pin_low(CHIMERA_ERGO_BLUE_LED_PIN) +#define grn_led_off gpio_write_pin_high(CHIMERA_ERGO_GREEN_LED_PIN) +#define grn_led_on gpio_write_pin_low(CHIMERA_ERGO_GREEN_LED_PIN) #define set_led_off red_led_off; grn_led_off; blu_led_off #define set_led_red red_led_on; grn_led_off; blu_led_off @@ -17,27 +21,3 @@ #define set_led_magenta red_led_on; grn_led_off; blu_led_on #define set_led_cyan red_led_off; grn_led_on; blu_led_on #define set_led_white red_led_on; grn_led_on; blu_led_on - -/* -#define LED_B 5 -#define LED_R 6 -#define LED_G 7 - -#define all_leds_off PORTF &= ~(1<event.pressed) { - PORTC |= (1 << 6); // PC6 goes high + gpio_write_pin_high(C6); } return true; case TO(OSY): if (record->event.pressed) { - PORTC &= ~(1 << 6); // PC6 goes high - PORTD |= (1<<4); + gpio_write_pin_low(C6); + gpio_write_pin_high(D4); } return true; case TO(DEF): if (record->event.pressed) { - PORTD &= ~(1 << 4); // PC6 goes high + gpio_write_pin_low(D4); } return true; diff --git a/keyboards/handwired/retro_refit/retro_refit.c b/keyboards/handwired/retro_refit/retro_refit.c index b7e1ec03fa2..f23ef1fd404 100644 --- a/keyboards/handwired/retro_refit/retro_refit.c +++ b/keyboards/handwired/retro_refit/retro_refit.c @@ -6,8 +6,8 @@ void matrix_init_kb(void) { // runs once when the firmware starts up // Disable status LED on KB, enable status LED on Teensy (KB_STATUS = !TEENSY_STATUS) - DDRD |= (1<<6); - PORTD |= (1<<6); + gpio_set_pin_output(D6); + gpio_write_pin_high(D6); matrix_init_user(); }; diff --git a/keyboards/hotdox/hotdox.h b/keyboards/hotdox/hotdox.h index b9333444393..d0b6c401f94 100644 --- a/keyboards/hotdox/hotdox.h +++ b/keyboards/hotdox/hotdox.h @@ -4,17 +4,46 @@ #include #include +#define HOTDOX_BOARD_LED_PIN B7 +#define HOTDOX_RIGHT_LED_1_PIN B5 +#define HOTDOX_RIGHT_LED_2_PIN B6 +#define HOTDOX_RIGHT_LED_3_PIN B4 + void init_ergodox(void); -inline void ergodox_board_led_on(void) { DDRB |= (1< #include #include -#include // LUFA #include "lufa.h" @@ -9,6 +7,8 @@ #include "sendchar.h" #include "debug.h" #include "keyboard.h" +#include "gpio.h" +#include "wait.h" #include "led.h" /* LED ping configuration */ @@ -16,16 +16,16 @@ //#define LEONARDO_LED #if defined(TMK_LED) // For TMK converter and Teensy -#define LED_TX_INIT (DDRD |= (1<<6)) -#define LED_TX_ON (PORTD |= (1<<6)) -#define LED_TX_OFF (PORTD &= ~(1<<6)) -#define LED_TX_TOGGLE (PORTD ^= (1<<6)) +#define LED_TX_INIT gpio_set_pin_output(D6) +#define LED_TX_ON gpio_write_pin_high(D6) +#define LED_TX_OFF gpio_write_pin_low(D6) +#define LED_TX_TOGGLE gpio_toggle_pin(D6) #elif defined(LEONARDO_LED) // For Leonardo(TX LED) -#define LED_TX_INIT (DDRD |= (1<<5)) -#define LED_TX_ON (PORTD &= ~(1<<5)) -#define LED_TX_OFF (PORTD |= (1<<5)) -#define LED_TX_TOGGLE (PORTD ^= (1<<5)) +#define LED_TX_INIT gpio_set_pin_output(D5) +#define LED_TX_ON gpio_write_pin_low(D5) +#define LED_TX_OFF gpio_write_pin_high(D5) +#define LED_TX_TOGGLE gpio_toggle_pin(D5) #else #define LED_TX_INIT #define LED_TX_ON diff --git a/keyboards/sixkeyboard/matrix.c b/keyboards/sixkeyboard/matrix.c index ddbd41ac553..24cb647297e 100644 --- a/keyboards/sixkeyboard/matrix.c +++ b/keyboards/sixkeyboard/matrix.c @@ -71,13 +71,12 @@ uint8_t matrix_cols(void) void matrix_init(void) { - - DDRC &= ~(1<<7); - PORTC |= (1<<7); - DDRB &= ~(1<<7 | 1<<5); - PORTB |= (1<<7 | 1<<5); - DDRD &= ~(1<<6 | 1<<4 | 1<<1); - PORTD |= (1<<6 | 1<<4 | 1<<1); + gpio_set_pin_input_high(C7); + gpio_set_pin_input_high(B5); + gpio_set_pin_input_high(B7); + gpio_set_pin_input_high(D1); + gpio_set_pin_input_high(D4); + gpio_set_pin_input_high(D6); for (uint8_t i=0; i < MATRIX_ROWS; i++) { matrix[i] = 0; diff --git a/keyboards/sixkeyboard/sixkeyboard.c b/keyboards/sixkeyboard/sixkeyboard.c index 7667ee7f44b..5a5c818d13f 100644 --- a/keyboards/sixkeyboard/sixkeyboard.c +++ b/keyboards/sixkeyboard/sixkeyboard.c @@ -4,27 +4,26 @@ void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up - DDRC |= (1<<4); - PORTC &= ~(1<<4); + gpio_set_pin_output(C4); + gpio_write_pin_low(C4); + gpio_set_pin_output(C6); + gpio_write_pin_low(C6); - DDRC |= (1<<6); - PORTC &= ~(1<<6); + gpio_set_pin_output(B6); + gpio_write_pin_low(B6); - DDRB |= (1<<6); - PORTB &= ~(1<<6); + gpio_set_pin_output(B4); + gpio_write_pin_low(B4); - DDRB |= (1<<4); - PORTB &= ~(1<<4); + gpio_set_pin_output(D5); + gpio_write_pin_low(D5); - DDRD |= (1<<5); - PORTD &= ~(1<<5); + gpio_set_pin_output(D2); + gpio_write_pin_low(D2); - DDRD |= (1<<2); - PORTD &= ~(1<<2); - - DDRD |= (1<<3); - PORTD &= ~(1<<3); + gpio_set_pin_output(D3); + gpio_write_pin_low(D3); matrix_init_user(); }; \ No newline at end of file diff --git a/keyboards/tmo50/tmo50.c b/keyboards/tmo50/tmo50.c index 80eb286f45c..635b9db0036 100644 --- a/keyboards/tmo50/tmo50.c +++ b/keyboards/tmo50/tmo50.c @@ -19,14 +19,14 @@ void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up - DDRB |= (1 << PB0); //init B0 - PORTB &= ~(1 << PB0); //turn on B0 - DDRB |= (1 << PB1); - PORTB |= (1<. #define RGB_STEP 16 -#define RGB_RED_PIN PF6 -#define RGB_GREEN_PIN PF5 -#define RGB_BLUE_PIN PF4 +#define RGB_RED_PIN F6 +#define RGB_GREEN_PIN F5 +#define RGB_BLUE_PIN F4 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/v60_type_r/v60_type_r.c b/keyboards/v60_type_r/v60_type_r.c index 540c5ec6ecf..6bace804e2b 100644 --- a/keyboards/v60_type_r/v60_type_r.c +++ b/keyboards/v60_type_r/v60_type_r.c @@ -115,18 +115,22 @@ void rgb_timer_init(void) { } void rgb_init(void) { - DDRF |= (_BV(PF6) | _BV(PF5) | _BV(PF4)); - PORTF |= (_BV(PF6) | _BV(PF5) | _BV(PF4)); + gpio_set_pin_output(F4); + gpio_set_pin_output(F5); + gpio_set_pin_output(F6); + gpio_write_pin_high(F4); + gpio_write_pin_high(F5); + gpio_write_pin_high(F6); rgb_timer_init(); } -void set_rgb_pin_on(uint8_t pin) { - PORTF &= ~_BV(pin); +void set_rgb_pin_on(pin_t pin) { + gpio_write_pin_low(pin); } -void set_rgb_pin_off(uint8_t pin) { - PORTF |= _BV(pin); +void set_rgb_pin_off(pin_t pin) { + gpio_write_pin_high(pin); } ISR(TIMER3_COMPA_vect) diff --git a/keyboards/viktus/omnikey_bh/keymaps/default/keymap.c b/keyboards/viktus/omnikey_bh/keymaps/default/keymap.c index e5fb6bf9025..ad63d050233 100644 --- a/keyboards/viktus/omnikey_bh/keymaps/default/keymap.c +++ b/keyboards/viktus/omnikey_bh/keymaps/default/keymap.c @@ -23,24 +23,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; bool led_update_user(led_t led_state) { - DDRB |= (1 << 4) | (1 << 5) | (1 << 6); + gpio_set_pin_output(B4); + gpio_set_pin_output(B5); + gpio_set_pin_output(B6); - if (led_state.num_lock) { - PORTB |= (1 << 4); - } else { - PORTB &= ~(1 << 4); - } + gpio_write_pin(B4, led_state.num_lock); + gpio_write_pin(B5, led_state.caps_lock); + gpio_write_pin(B6, led_state.scroll_lock); - if (led_state.caps_lock) { - PORTB |= (1 << 5); - } else { - PORTB &= ~(1 << 5); - } - - if (led_state.scroll_lock) { - PORTB |= (1 << 6); - } else { - PORTB &= ~(1 << 6); - } return false; } diff --git a/keyboards/wilba_tech/wt_rgb_backlight.c b/keyboards/wilba_tech/wt_rgb_backlight.c index 02bcdd610be..936286c2eef 100644 --- a/keyboards/wilba_tech/wt_rgb_backlight.c +++ b/keyboards/wilba_tech/wt_rgb_backlight.c @@ -2629,15 +2629,12 @@ void backlight_debug_led( bool state ) { if (state) { - // Output high. - DDRE |= (1<<6); - PORTE |= (1<<6); + gpio_set_pin_output(E6); + gpio_write_pin_high(E6); } else { - // Output low. - DDRE &= ~(1<<6); - PORTE &= ~(1<<6); + gpio_set_pin_input(E6); } } #endif // defined(RGB_DEBUGGING_ONLY) diff --git a/keyboards/xiudi/xd60/xd60.h b/keyboards/xiudi/xd60/xd60.h index 3d3c1ae885c..c399b2965d3 100644 --- a/keyboards/xiudi/xd60/xd60.h +++ b/keyboards/xiudi/xd60/xd60.h @@ -2,6 +2,9 @@ #include "quantum.h" +#define XD60_CAPS_LOCK_LED_PIN B2 +#define XD60_BACKLIGHT_PIN F5 + /* XD60 LEDs * GPIO pads * 0 F7 not connected @@ -11,8 +14,18 @@ * B2 Capslock LED * B0 not connected */ -inline void xd60_caps_led_on(void) { DDRB |= (1<<2); PORTB &= ~(1<<2); } -inline void xd60_bl_led_on(void) { DDRF |= (1<<5); PORTF &= ~(1<<5); } +inline void xd60_caps_led_on(void) { + gpio_set_pin_output(XD60_CAPS_LOCK_LED_PIN); + gpio_write_pin_low(XD60_CAPS_LOCK_LED_PIN); +} +inline void xd60_bl_led_on(void) { + gpio_set_pin_output(XD60_BACKLIGHT_PIN); + gpio_write_pin_low(XD60_BACKLIGHT_PIN); +} -inline void xd60_caps_led_off(void) { DDRB &= ~(1<<2); PORTB &= ~(1<<2); } -inline void xd60_bl_led_off(void) { DDRF &= ~(1<<5); PORTF &= ~(1<<5); } +inline void xd60_caps_led_off(void) { + gpio_set_pin_input(XD60_CAPS_LOCK_LED_PIN); +} +inline void xd60_bl_led_off(void) { + gpio_set_pin_input(XD60_BACKLIGHT_PIN); +} diff --git a/keyboards/ydkb/yd68/keymaps/default/keymap.c b/keyboards/ydkb/yd68/keymaps/default/keymap.c index 45b3144b9c1..44fe57da6af 100644 --- a/keyboards/ydkb/yd68/keymaps/default/keymap.c +++ b/keyboards/ydkb/yd68/keymaps/default/keymap.c @@ -43,7 +43,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case YD68_RGB_PWR: if (record->event.pressed) { // when keycode YD68_RGB_PWR is pressed - PORTE ^= (1<<2); + gpio_toggle_pin(E2); } else { // when keycode YD68_RGB_PWR is released } From 29a4e5c50b9cc828ea0a14a7c2cbe8d309a19079 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 2 May 2024 03:02:38 -0700 Subject: [PATCH 54/55] N86: Layout Data Correction (#23644) * Correct `LAYOUT_all` data Corrects incorrect key sizes and positioning. * Correct `LAYOUT_tkl_ansi_tsangan` data Corrects incorrect matrix assignments on the bottom row. * Correct `LAYOUT_tkl_ansi_tsangan_split_bs_rshift` data Corrects incorrect matrix assignments on the bottom row. * Set `LAYOUT_all` as an alias Sets `LAYOUT_all` as an alias for `LAYOUT_tkl_ansi_tsangan_split_bs_rshift`, because the layout and matrix data for these two macros is identical. --- keyboards/era/linx3/n86/info.json | 109 +++--------------------------- 1 file changed, 10 insertions(+), 99 deletions(-) diff --git a/keyboards/era/linx3/n86/info.json b/keyboards/era/linx3/n86/info.json index 40e1f78baaa..c0b8b5525a1 100644 --- a/keyboards/era/linx3/n86/info.json +++ b/keyboards/era/linx3/n86/info.json @@ -171,100 +171,11 @@ "driver": "vendor", "pin": "GP4" }, + "layout_aliases": { + "LAYOUT_all": "LAYOUT_tkl_ansi_tsangan_split_bs_rshift" + }, "community_layouts": ["tkl_ansi_tsangan", "tkl_ansi_tsangan_split_bs_rshift"], "layouts": { - "LAYOUT_all": { - "layout": [ - {"matrix": [0, 0], "x": 0, "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": [2, 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": [3, 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": 11.75, "y": 3.25}, - {"matrix": [3, 11], "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, 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, "w": 1}, - {"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, "w": 1}, - {"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": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, @@ -346,9 +257,9 @@ {"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, 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}, @@ -438,9 +349,9 @@ {"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, 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}, @@ -448,4 +359,4 @@ ] } } -} \ No newline at end of file +} From 9a4f39b7388745b6e395710e020cce8835f0d781 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Thu, 2 May 2024 20:08:41 +1000 Subject: [PATCH 55/55] clangd enhancements. (#23310) --- .clangd | 2 +- .../qmk/cli/generate/compilation_database.py | 34 ++++++++++++++++--- 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/.clangd b/.clangd index 2be2d817fc7..6133ae7229d 100644 --- a/.clangd +++ b/.clangd @@ -1,4 +1,4 @@ CompileFlags: Add: [-Wno-unknown-attributes, -Wno-maybe-uninitialized, -Wno-unknown-warning-option] - Remove: [-W*, -mcall-prologues] + Remove: [-W*, -mmcu=*, -mcpu=*, -mfpu=*, -mfloat-abi=*, -mno-unaligned-access, -mno-thumb-interwork, -mcall-prologues] Compiler: clang diff --git a/lib/python/qmk/cli/generate/compilation_database.py b/lib/python/qmk/cli/generate/compilation_database.py index a2190fee66c..b9c716bf0c5 100755 --- a/lib/python/qmk/cli/generate/compilation_database.py +++ b/lib/python/qmk/cli/generate/compilation_database.py @@ -25,7 +25,6 @@ def system_libs(binary: str) -> List[Path]: """Find the system include directory that the given build tool uses. """ cli.log.debug("searching for system library directory for binary: %s", binary) - bin_path = shutil.which(binary) # Actually query xxxxxx-gcc to find its include paths. if binary.endswith("gcc") or binary.endswith("g++"): @@ -37,7 +36,31 @@ def system_libs(binary: str) -> List[Path]: paths.append(Path(line.strip()).resolve()) return paths - return list(Path(bin_path).resolve().parent.parent.glob("*/include")) if bin_path else [] + return list(Path(binary).resolve().parent.parent.glob("*/include")) if binary else [] + + +@lru_cache(maxsize=10) +def cpu_defines(binary: str, compiler_args: str) -> List[str]: + cli.log.debug("gathering definitions for compilation: %s %s", binary, compiler_args) + if binary.endswith("gcc") or binary.endswith("g++"): + invocation = [binary, '-dM', '-E'] + if binary.endswith("gcc"): + invocation.extend(['-x', 'c']) + elif binary.endswith("g++"): + invocation.extend(['-x', 'c++']) + compiler_args = shlex.split(compiler_args) + invocation.extend(compiler_args) + invocation.append('-') + result = cli.run(invocation, capture_output=True, check=True, stdin=None, input='\n') + define_args = [] + for line in result.stdout.splitlines(): + line_args = line.split(' ', 2) + if len(line_args) == 3 and line_args[0] == '#define': + define_args.append(f'-D{line_args[1]}={line_args[2]}') + elif len(line_args) == 2 and line_args[0] == '#define': + define_args.append(f'-D{line_args[1]}') + return list(sorted(set(define_args))) + return [] file_re = re.compile(r'printf "Compiling: ([^"]+)') @@ -68,9 +91,12 @@ def parse_make_n(f: Iterator[str]) -> List[Dict[str, str]]: # we have a hit! this_cmd = m.group(1) args = shlex.split(this_cmd) - for s in system_libs(args[0]): + binary = shutil.which(args[0]) + compiler_args = set(filter(lambda x: x.startswith('-m') or x.startswith('-f'), args)) + for s in system_libs(binary): args += ['-isystem', '%s' % s] - new_cmd = ' '.join(shlex.quote(s) for s in args if s != '-mno-thumb-interwork') + args.extend(cpu_defines(binary, ' '.join(shlex.quote(s) for s in compiler_args))) + new_cmd = ' '.join(shlex.quote(s) for s in args) records.append({"directory": str(QMK_FIRMWARE.resolve()), "command": new_cmd, "file": this_file}) state = 'start'