From 113d3d60016a1158d1eca8a12a55a2c330a7f498 Mon Sep 17 00:00:00 2001 From: David Hoelscher Date: Fri, 8 Mar 2024 09:40:32 -0600 Subject: [PATCH 1/7] [Keyboard] Add CMK11 (#23239) * adding cmk11 * correcting default keymap * removing rules.mk * removing unnecessary comment --- keyboards/custommk/cmk11/config.h | 29 +++++ keyboards/custommk/cmk11/halconf.h | 30 +++++ keyboards/custommk/cmk11/info.json | 121 ++++++++++++++++++ .../custommk/cmk11/keymaps/default/keymap.c | 11 ++ keyboards/custommk/cmk11/keymaps/via/config.h | 6 + keyboards/custommk/cmk11/keymaps/via/keymap.c | 11 ++ keyboards/custommk/cmk11/keymaps/via/rules.mk | 1 + keyboards/custommk/cmk11/mcuconf.h | 31 +++++ keyboards/custommk/cmk11/readme.md | 27 ++++ keyboards/custommk/cmk11/rules.mk | 1 + 10 files changed, 268 insertions(+) create mode 100644 keyboards/custommk/cmk11/config.h create mode 100644 keyboards/custommk/cmk11/halconf.h create mode 100644 keyboards/custommk/cmk11/info.json create mode 100644 keyboards/custommk/cmk11/keymaps/default/keymap.c create mode 100644 keyboards/custommk/cmk11/keymaps/via/config.h create mode 100644 keyboards/custommk/cmk11/keymaps/via/keymap.c create mode 100644 keyboards/custommk/cmk11/keymaps/via/rules.mk create mode 100644 keyboards/custommk/cmk11/mcuconf.h create mode 100644 keyboards/custommk/cmk11/readme.md create mode 100644 keyboards/custommk/cmk11/rules.mk diff --git a/keyboards/custommk/cmk11/config.h b/keyboards/custommk/cmk11/config.h new file mode 100644 index 00000000000..122d32c5da5 --- /dev/null +++ b/keyboards/custommk/cmk11/config.h @@ -0,0 +1,29 @@ +// Copyright 2024 customMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// FRAM configuration +#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN B7 +#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 4 // 48MHz / 4 = 12MHz; max supported by MB85R64 is 20MHz + +// SPI configuration +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN B3 +#define SPI_MOSI_PIN B5 +#define SPI_MISO_PIN B4 + +// Audio configuration +#define AUDIO_PIN B8 +#define AUDIO_PWM_DRIVER PWMD4 +#define AUDIO_PWM_CHANNEL 3 +#define AUDIO_PWM_PAL_MODE 2 +#define AUDIO_STATE_TIMER GPTD5 +#define AUDIO_INIT_DELAY + +// WS2812 configuration +#define WS2812_PWM_DRIVER PWMD1 +#define WS2812_PWM_CHANNEL 3 +#define WS2812_PWM_PAL_MODE 1 +#define WS2812_DMA_STREAM STM32_DMA2_STREAM5 +#define WS2812_DMA_CHANNEL 6 diff --git a/keyboards/custommk/cmk11/halconf.h b/keyboards/custommk/cmk11/halconf.h new file mode 100644 index 00000000000..6791d829f9b --- /dev/null +++ b/keyboards/custommk/cmk11/halconf.h @@ -0,0 +1,30 @@ +/* Copyright 2024 customMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_PWM TRUE + +#define HAL_USE_SPI TRUE + +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#define SERIAL_BUFFERS_SIZE 256 + +// This enables interrupt-driven mode +#define SPI_USE_WAIT TRUE + +#include_next diff --git a/keyboards/custommk/cmk11/info.json b/keyboards/custommk/cmk11/info.json new file mode 100644 index 00000000000..d831351aa78 --- /dev/null +++ b/keyboards/custommk/cmk11/info.json @@ -0,0 +1,121 @@ +{ + "manufacturer": "customMK", + "keyboard_name": "CMK11", + "maintainer": "customMK", + "bootloader": "stm32-dfu", + "diode_direction": "ROW2COL", + "dynamic_keymap": { + "layer_count": 32 + }, + "eeprom": { + "driver": "spi" + }, + "features": { + "audio": true, + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["B0", "A1", "A2", "A3", "A6", "B10"], + "rows": ["A5", "A4"] + }, + "processor": "STM32F411", + "qmk": { + "tap_keycode_delay": 10 + }, + "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": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 134, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 179, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 23, "y": 64, "flags": 4}, + {"matrix": [1, 1], "x": 68, "y": 64, "flags": 4}, + {"matrix": [1, 2], "x": 112, "y": 64, "flags": 4}, + {"matrix": [1, 3], "x": 157, "y": 64, "flags": 4}, + {"matrix": [1, 4], "x": 202, "y": 64, "flags": 4} + ], + "max_brightness": 120, + "sat_steps": 8, + "speed_steps": 10, + "val_steps": 8 + }, + "url": "https://shop.custommk.com/collections/cmk11/products/ckm11", + "usb": { + "device_version": "1.0.0", + "pid": "0xFABA", + "vid": "0xF35B" + }, + "ws2812": { + "driver": "pwm", + "pin": "A10" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [1, 0], "x": 0.5, "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} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/custommk/cmk11/keymaps/default/keymap.c b/keyboards/custommk/cmk11/keymaps/default/keymap.c new file mode 100644 index 00000000000..a6d6db48c94 --- /dev/null +++ b/keyboards/custommk/cmk11/keymaps/default/keymap.c @@ -0,0 +1,11 @@ +// Copyright 2024 customMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_C, KC_V, KC_VOLU, KC_VOLD, KC_DEL, + KC_LCTL, KC_PGUP, KC_SPC, KC_PGDN, KC_ENT + ) +}; diff --git a/keyboards/custommk/cmk11/keymaps/via/config.h b/keyboards/custommk/cmk11/keymaps/via/config.h new file mode 100644 index 00000000000..c2dca382777 --- /dev/null +++ b/keyboards/custommk/cmk11/keymaps/via/config.h @@ -0,0 +1,6 @@ +// Copyright 2024 customMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define DYNAMIC_KEYMAP_MACRO_COUNT 128 diff --git a/keyboards/custommk/cmk11/keymaps/via/keymap.c b/keyboards/custommk/cmk11/keymaps/via/keymap.c new file mode 100644 index 00000000000..a4ee324f3fb --- /dev/null +++ b/keyboards/custommk/cmk11/keymaps/via/keymap.c @@ -0,0 +1,11 @@ +// Copyright 2024 customMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_C, KC_V, KC_VOLU, KC_VOLD, KC_DEL, + KC_LCTL, KC_PGUP, KC_SPC, KC_PGDN, MO(1) + ) +}; diff --git a/keyboards/custommk/cmk11/keymaps/via/rules.mk b/keyboards/custommk/cmk11/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/custommk/cmk11/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/custommk/cmk11/mcuconf.h b/keyboards/custommk/cmk11/mcuconf.h new file mode 100644 index 00000000000..8151abdcba3 --- /dev/null +++ b/keyboards/custommk/cmk11/mcuconf.h @@ -0,0 +1,31 @@ +/* Copyright 2024 customMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +// Used for audio +#undef STM32_PWM_USE_TIM4 +#define STM32_PWM_USE_TIM4 TRUE + +// Used for FRAM +#undef STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE + +// Used for RGB matrix +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE \ No newline at end of file diff --git a/keyboards/custommk/cmk11/readme.md b/keyboards/custommk/cmk11/readme.md new file mode 100644 index 00000000000..961261ac664 --- /dev/null +++ b/keyboards/custommk/cmk11/readme.md @@ -0,0 +1,27 @@ +# CMK11 + +![cmk11](https://i.imgur.com/y8MEwXYh.jpeg) + +CMK11 supports eleven 1u keys (or eight 1u keys and one 3u key). The PCB is fully compatible with the Cary Works C11 macropad. + +* Keyboard Maintainer: [customMK](https://github.com/customMK) +* Hardware Supported: CMK11 +* Hardware Availability: [customMK](https://shop.custommk.com/products/cmk11) + +Make example for this keyboard (after setting up your build environment): + + make custommk/cmk11:default + +Flashing example for this keyboard: + + make custommk/cmk11: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 key in the top left corner) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/custommk/cmk11/rules.mk b/keyboards/custommk/cmk11/rules.mk new file mode 100644 index 00000000000..72f75f4367e --- /dev/null +++ b/keyboards/custommk/cmk11/rules.mk @@ -0,0 +1 @@ +AUDIO_DRIVER = pwm_hardware From 62e2cb92861820cf64440e754cd0fed155e431fd Mon Sep 17 00:00:00 2001 From: strayfade <64668046+strayfade@users.noreply.github.com> Date: Fri, 8 Mar 2024 14:44:32 -0500 Subject: [PATCH 2/7] [Keyboard] Add sf2040 (#23211) Co-authored-by: jack <0x6a73@protonmail.com> --- keyboards/sf2040/info.json | 105 ++++++++++++++++++++++ keyboards/sf2040/keymaps/default/keymap.c | 25 ++++++ keyboards/sf2040/keymaps/via/keymap.c | 25 ++++++ keyboards/sf2040/keymaps/via/rules.mk | 1 + keyboards/sf2040/readme.md | 22 +++++ keyboards/sf2040/rules.mk | 1 + 6 files changed, 179 insertions(+) create mode 100644 keyboards/sf2040/info.json create mode 100644 keyboards/sf2040/keymaps/default/keymap.c create mode 100644 keyboards/sf2040/keymaps/via/keymap.c create mode 100644 keyboards/sf2040/keymaps/via/rules.mk create mode 100644 keyboards/sf2040/readme.md create mode 100644 keyboards/sf2040/rules.mk diff --git a/keyboards/sf2040/info.json b/keyboards/sf2040/info.json new file mode 100644 index 00000000000..21acb322af4 --- /dev/null +++ b/keyboards/sf2040/info.json @@ -0,0 +1,105 @@ +{ + "manufacturer": "Strayfade", + "keyboard_name": "sf2040", + "maintainer": "Strayfade", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + }, + "matrix_pins": { + "cols": ["GP6", "GP7", "GP8", "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15", "GP16", "GP17", "GP18", "GP19", "GP20"], + "rows": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5"] + }, + "processor": "RP2040", + "url": "https://strayfade.com/sf2040", + "usb": { + "device_version": "1.0.1", + "pid": "0x0001", + "vid": "0x5346" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 13], "x": 13, "y": 1, "w": 2}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 3], "x": 3.5, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [2, 5], "x": 5.5, "y": 2}, + {"matrix": [2, 6], "x": 6.5, "y": 2}, + {"matrix": [2, 7], "x": 7.5, "y": 2}, + {"matrix": [2, 8], "x": 8.5, "y": 2}, + {"matrix": [2, 9], "x": 9.5, "y": 2}, + {"matrix": [2, 10], "x": 10.5, "y": 2}, + {"matrix": [2, 11], "x": 11.5, "y": 2}, + {"matrix": [2, 12], "x": 12.5, "y": 2}, + {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3}, + {"matrix": [3, 2], "x": 2.75, "y": 3}, + {"matrix": [3, 3], "x": 3.75, "y": 3}, + {"matrix": [3, 4], "x": 4.75, "y": 3}, + {"matrix": [3, 5], "x": 5.75, "y": 3}, + {"matrix": [3, 6], "x": 6.75, "y": 3}, + {"matrix": [3, 7], "x": 7.75, "y": 3}, + {"matrix": [3, 8], "x": 8.75, "y": 3}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3}, + {"matrix": [3, 12], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [4, 1], "x": 2.25, "y": 4}, + {"matrix": [4, 2], "x": 3.25, "y": 4}, + {"matrix": [4, 3], "x": 4.25, "y": 4}, + {"matrix": [4, 4], "x": 5.25, "y": 4}, + {"matrix": [4, 5], "x": 6.25, "y": 4}, + {"matrix": [4, 6], "x": 7.25, "y": 4}, + {"matrix": [4, 7], "x": 8.25, "y": 4}, + {"matrix": [4, 8], "x": 9.25, "y": 4}, + {"matrix": [4, 9], "x": 10.25, "y": 4}, + {"matrix": [4, 10], "x": 11.25, "y": 4}, + {"matrix": [4, 11], "x": 12.25, "y": 4, "w": 2.75}, + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.75, "y": 5, "w": 1.25}, + {"matrix": [5, 3], "x": 4, "y": 5, "w": 6.25}, + {"matrix": [5, 4], "x": 10.25, "y": 5, "w": 1.25}, + {"matrix": [5, 5], "x": 11.5, "y": 5}, + {"matrix": [5, 6], "x": 12.5, "y": 5}, + {"matrix": [5, 7], "x": 13.5, "y": 5, "w": 1.5} + ] + } + } +} diff --git a/keyboards/sf2040/keymaps/default/keymap.c b/keyboards/sf2040/keymaps/default/keymap.c new file mode 100644 index 00000000000..ca5bcce3585 --- /dev/null +++ b/keyboards/sf2040/keymaps/default/keymap.c @@ -0,0 +1,25 @@ +// Copyright 2024 Strayfade +// SPDX-License-Identifier: GPL-3.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESCAPE, 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_AUDIO_VOL_UP, KC_AUDIO_VOL_DOWN, + 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, + 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_BACKSLASH, + KC_CAPS_LOCK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SEMICOLON, KC_QUOTE, KC_ENTER, + KC_LEFT_SHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RIGHT_SHIFT, + KC_LEFT_CTRL, KC_LEFT_GUI, KC_LEFT_ALT, KC_SPACE, MO(1), KC_HOME, KC_END, KC_RIGHT_CTRL + ), + [1] = LAYOUT( + KC_TILDE, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DELETE, + _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, KC_ENTER, + KC_LEFT_SHIFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RIGHT_SHIFT, + KC_LEFT_CTRL, KC_LEFT_GUI, KC_LEFT_ALT, KC_SPACE, _______, KC_HOME, KC_END, KC_RIGHT_CTRL + ) + +}; \ No newline at end of file diff --git a/keyboards/sf2040/keymaps/via/keymap.c b/keyboards/sf2040/keymaps/via/keymap.c new file mode 100644 index 00000000000..ca5bcce3585 --- /dev/null +++ b/keyboards/sf2040/keymaps/via/keymap.c @@ -0,0 +1,25 @@ +// Copyright 2024 Strayfade +// SPDX-License-Identifier: GPL-3.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESCAPE, 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_AUDIO_VOL_UP, KC_AUDIO_VOL_DOWN, + 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, + 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_BACKSLASH, + KC_CAPS_LOCK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SEMICOLON, KC_QUOTE, KC_ENTER, + KC_LEFT_SHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RIGHT_SHIFT, + KC_LEFT_CTRL, KC_LEFT_GUI, KC_LEFT_ALT, KC_SPACE, MO(1), KC_HOME, KC_END, KC_RIGHT_CTRL + ), + [1] = LAYOUT( + KC_TILDE, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DELETE, + _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, KC_ENTER, + KC_LEFT_SHIFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RIGHT_SHIFT, + KC_LEFT_CTRL, KC_LEFT_GUI, KC_LEFT_ALT, KC_SPACE, _______, KC_HOME, KC_END, KC_RIGHT_CTRL + ) + +}; \ No newline at end of file diff --git a/keyboards/sf2040/keymaps/via/rules.mk b/keyboards/sf2040/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/sf2040/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/sf2040/readme.md b/keyboards/sf2040/readme.md new file mode 100644 index 00000000000..fb9ef2efe6e --- /dev/null +++ b/keyboards/sf2040/readme.md @@ -0,0 +1,22 @@ +# sf2040 + +![sf2040 Image](https://i.imgur.com/DZ9N17ph.png) + +The sf2040 is a mechanical 76-key keyboard based on the [RP2040](https://datasheets.raspberrypi.com/rp2040/rp2040-datasheet.pdf) microcontroller from Raspberry Pi. + +* Keyboard Maintainer: [strayfade](https://github.com/strayfade) +* Hardware Availability: https://github.com/strayfade/sf2040 + +Make example for this keyboard (after setting up your build environment): + + make sf2040:default + +Flashing example for this keyboard: + + make sf2040:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +**Bootmagic reset**: To enter the bootloader, hold down the key at (0,0) in the matrix (the top left key or Escape) and plug in the keyboard. diff --git a/keyboards/sf2040/rules.mk b/keyboards/sf2040/rules.mk new file mode 100644 index 00000000000..7ff128fa692 --- /dev/null +++ b/keyboards/sf2040/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file From a8991722bca6f8785495f60d7a2e910f9a5987c9 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 8 Mar 2024 17:24:31 -0800 Subject: [PATCH 3/7] Xiudi XD96 Layout Bugfixes and Touch-Up (#23242) * Correct AliExpress Hardware Availability link in readme Previous URL linked to a Cospad listing. [chore] [docs] * Convert `info.json` to four-space indent [style] * Correct `LAYOUT_all` matrix data The right half of split Backspace is actually located at [5, 9], not [5, 3]. [bugfix] * Correct `LAYOUT_96_iso` matrix data Corrects the matrix positions of the ISO Hash/Tilde and ISO Enter keys to [3, 12] and [3, 13], respectively. [bugfix] * Add layout/matrix diagram [docs] * Refactor keymaps - remove "inline block" comments - grid-align keycodes - use four-space indent [style] --- keyboards/xiudi/xd96/info.json | 726 +++++++++--------- keyboards/xiudi/xd96/keymaps/default/keymap.c | 47 +- .../xiudi/xd96/keymaps/default_iso/keymap.c | 47 +- keyboards/xiudi/xd96/keymaps/via/keymap.c | 93 +-- keyboards/xiudi/xd96/matrix_diagram.md | 42 + keyboards/xiudi/xd96/readme.md | 2 +- 6 files changed, 473 insertions(+), 484 deletions(-) create mode 100644 keyboards/xiudi/xd96/matrix_diagram.md diff --git a/keyboards/xiudi/xd96/info.json b/keyboards/xiudi/xd96/info.json index 98ebfcb4831..2b4ee4aad0a 100644 --- a/keyboards/xiudi/xd96/info.json +++ b/keyboards/xiudi/xd96/info.json @@ -1,373 +1,373 @@ { - "keyboard_name": "XD96", - "manufacturer": "KPrepublic", - "url": "", - "maintainer": "qmk", - "usb": { - "vid": "0x7844", - "pid": "0x9696", - "device_version": "0.0.1" - }, - "backlight": { - "pin": "B5", - "levels": 10 - }, - "rgblight": { - "led_count": 16, - "max_brightness": 50, - "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 - } - }, - "indicators": { - "caps_lock": "B6", - "num_lock": "C6", - "on_state": 0 - }, - "ws2812": { - "pin": "C7" - }, - "processor": "atmega32u4", - "bootloader": "atmel-dfu", - "layouts": { - "LAYOUT_96_ansi": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [5, 6], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15, "y": 0}, - {"matrix": [0, 15], "x": 16, "y": 0}, - {"matrix": [0, 16], "x": 17, "y": 0}, - {"matrix": [0, 17], "x": 18, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1}, - {"matrix": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - {"matrix": [1, 10], "x": 10, "y": 1}, - {"matrix": [1, 11], "x": 11, "y": 1}, - {"matrix": [1, 12], "x": 12, "y": 1}, - {"matrix": [1, 13], "x": 13, "y": 1, "w": 2}, - {"matrix": [1, 14], "x": 15, "y": 1}, - {"matrix": [1, 15], "x": 16, "y": 1}, - {"matrix": [1, 16], "x": 17, "y": 1}, - {"matrix": [1, 17], "x": 18, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2}, - {"matrix": [2, 2], "x": 2.5, "y": 2}, - {"matrix": [2, 3], "x": 3.5, "y": 2}, - {"matrix": [2, 4], "x": 4.5, "y": 2}, - {"matrix": [2, 5], "x": 5.5, "y": 2}, - {"matrix": [2, 6], "x": 6.5, "y": 2}, - {"matrix": [2, 7], "x": 7.5, "y": 2}, - {"matrix": [2, 8], "x": 8.5, "y": 2}, - {"matrix": [2, 9], "x": 9.5, "y": 2}, - {"matrix": [2, 10], "x": 10.5, "y": 2}, - {"matrix": [2, 11], "x": 11.5, "y": 2}, - {"matrix": [2, 12], "x": 12.5, "y": 2}, - {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5}, - {"matrix": [2, 14], "x": 15, "y": 2}, - {"matrix": [2, 15], "x": 16, "y": 2}, - {"matrix": [2, 16], "x": 17, "y": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3}, - {"matrix": [3, 2], "x": 2.75, "y": 3}, - {"matrix": [3, 3], "x": 3.75, "y": 3}, - {"matrix": [3, 4], "x": 4.75, "y": 3}, - {"matrix": [3, 5], "x": 5.75, "y": 3}, - {"matrix": [3, 6], "x": 6.75, "y": 3}, - {"matrix": [3, 7], "x": 7.75, "y": 3}, - {"matrix": [3, 8], "x": 8.75, "y": 3}, - {"matrix": [3, 9], "x": 9.75, "y": 3}, - {"matrix": [3, 10], "x": 10.75, "y": 3}, - {"matrix": [3, 11], "x": 11.75, "y": 3}, - {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25}, - {"matrix": [3, 14], "x": 15, "y": 3}, - {"matrix": [3, 15], "x": 16, "y": 3}, - {"matrix": [3, 16], "x": 17, "y": 3}, - {"matrix": [2, 17], "x": 18, "y": 2, "h": 2}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, - {"matrix": [4, 2], "x": 2.25, "y": 4}, - {"matrix": [4, 3], "x": 3.25, "y": 4}, - {"matrix": [4, 4], "x": 4.25, "y": 4}, - {"matrix": [4, 5], "x": 5.25, "y": 4}, - {"matrix": [4, 6], "x": 6.25, "y": 4}, - {"matrix": [4, 7], "x": 7.25, "y": 4}, - {"matrix": [4, 8], "x": 8.25, "y": 4}, - {"matrix": [4, 9], "x": 9.25, "y": 4}, - {"matrix": [4, 10], "x": 10.25, "y": 4}, - {"matrix": [4, 11], "x": 11.25, "y": 4}, - {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 14], "x": 15, "y": 4}, - {"matrix": [4, 15], "x": 16, "y": 4}, - {"matrix": [4, 16], "x": 17, "y": 4}, - - {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, - {"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, - {"matrix": [5, 8], "x": 11.5, "y": 5, "w": 1.5}, - {"matrix": [5, 12], "x": 13, "y": 5}, - {"matrix": [5, 13], "x": 14, "y": 5}, - {"matrix": [5, 14], "x": 15, "y": 5}, - {"matrix": [5, 15], "x": 16, "y": 5}, - {"matrix": [5, 16], "x": 17, "y": 5}, - {"matrix": [4, 17], "x": 18, "y": 4, "h": 2} - ] + "keyboard_name": "XD96", + "manufacturer": "KPrepublic", + "url": "", + "maintainer": "qmk", + "usb": { + "vid": "0x7844", + "pid": "0x9696", + "device_version": "0.0.1" }, - "LAYOUT_96_iso": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0}, - {"matrix": [0, 4], "x": 4, "y": 0}, - {"matrix": [0, 5], "x": 5, "y": 0}, - {"matrix": [0, 6], "x": 6, "y": 0}, - {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [0, 8], "x": 8, "y": 0}, - {"matrix": [0, 9], "x": 9, "y": 0}, - {"matrix": [0, 10], "x": 10, "y": 0}, - {"matrix": [0, 11], "x": 11, "y": 0}, - {"matrix": [0, 12], "x": 12, "y": 0}, - {"matrix": [0, 13], "x": 13, "y": 0}, - {"matrix": [5, 6], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15, "y": 0}, - {"matrix": [0, 15], "x": 16, "y": 0}, - {"matrix": [0, 16], "x": 17, "y": 0}, - {"matrix": [0, 17], "x": 18, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1}, - {"matrix": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - {"matrix": [1, 10], "x": 10, "y": 1}, - {"matrix": [1, 11], "x": 11, "y": 1}, - {"matrix": [1, 12], "x": 12, "y": 1}, - {"matrix": [1, 13], "x": 13, "y": 1, "w": 2}, - {"matrix": [1, 14], "x": 15, "y": 1}, - {"matrix": [1, 15], "x": 16, "y": 1}, - {"matrix": [1, 16], "x": 17, "y": 1}, - {"matrix": [1, 17], "x": 18, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2}, - {"matrix": [2, 2], "x": 2.5, "y": 2}, - {"matrix": [2, 3], "x": 3.5, "y": 2}, - {"matrix": [2, 4], "x": 4.5, "y": 2}, - {"matrix": [2, 5], "x": 5.5, "y": 2}, - {"matrix": [2, 6], "x": 6.5, "y": 2}, - {"matrix": [2, 7], "x": 7.5, "y": 2}, - {"matrix": [2, 8], "x": 8.5, "y": 2}, - {"matrix": [2, 9], "x": 9.5, "y": 2}, - {"matrix": [2, 10], "x": 10.5, "y": 2}, - {"matrix": [2, 11], "x": 11.5, "y": 2}, - {"matrix": [2, 12], "x": 12.5, "y": 2}, - {"matrix": [2, 14], "x": 15, "y": 2}, - {"matrix": [2, 15], "x": 16, "y": 2}, - {"matrix": [2, 16], "x": 17, "y": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3}, - {"matrix": [3, 2], "x": 2.75, "y": 3}, - {"matrix": [3, 3], "x": 3.75, "y": 3}, - {"matrix": [3, 4], "x": 4.75, "y": 3}, - {"matrix": [3, 5], "x": 5.75, "y": 3}, - {"matrix": [3, 6], "x": 6.75, "y": 3}, - {"matrix": [3, 7], "x": 7.75, "y": 3}, - {"matrix": [3, 8], "x": 8.75, "y": 3}, - {"matrix": [3, 9], "x": 9.75, "y": 3}, - {"matrix": [3, 10], "x": 10.75, "y": 3}, - {"matrix": [3, 11], "x": 11.75, "y": 3}, - {"matrix": [3, 13], "x": 12.75, "y": 3}, - {"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, - {"matrix": [3, 14], "x": 15, "y": 3}, - {"matrix": [3, 15], "x": 16, "y": 3}, - {"matrix": [3, 16], "x": 17, "y": 3}, - {"matrix": [2, 17], "x": 18, "y": 2, "h": 2}, - - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4}, - {"matrix": [4, 2], "x": 2.25, "y": 4}, - {"matrix": [4, 3], "x": 3.25, "y": 4}, - {"matrix": [4, 4], "x": 4.25, "y": 4}, - {"matrix": [4, 5], "x": 5.25, "y": 4}, - {"matrix": [4, 6], "x": 6.25, "y": 4}, - {"matrix": [4, 7], "x": 7.25, "y": 4}, - {"matrix": [4, 8], "x": 8.25, "y": 4}, - {"matrix": [4, 9], "x": 9.25, "y": 4}, - {"matrix": [4, 10], "x": 10.25, "y": 4}, - {"matrix": [4, 11], "x": 11.25, "y": 4}, - {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 14], "x": 15, "y": 4}, - {"matrix": [4, 15], "x": 16, "y": 4}, - {"matrix": [4, 16], "x": 17, "y": 4}, - - {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, - {"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, - {"matrix": [5, 8], "x": 11.5, "y": 5, "w": 1.5}, - {"matrix": [5, 12], "x": 13, "y": 5}, - {"matrix": [5, 13], "x": 14, "y": 5}, - {"matrix": [5, 14], "x": 15, "y": 5}, - {"matrix": [5, 15], "x": 16, "y": 5}, - {"matrix": [5, 16], "x": 17, "y": 5}, - {"matrix": [4, 17], "x": 18, "y": 4, "h": 2} - ] + "backlight": { + "pin": "B5", + "levels": 10 }, - "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": [5, 6], "x": 14, "y": 0}, - {"matrix": [0, 14], "x": 15, "y": 0}, - {"matrix": [0, 15], "x": 16, "y": 0}, - {"matrix": [0, 16], "x": 17, "y": 0}, - {"matrix": [0, 17], "x": 18, "y": 0}, + "rgblight": { + "led_count": 16, + "max_brightness": 50, + "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 + } + }, + "indicators": { + "caps_lock": "B6", + "num_lock": "C6", + "on_state": 0 + }, + "ws2812": { + "pin": "C7" + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "layouts": { + "LAYOUT_96_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [5, 6], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [0, 15], "x": 16, "y": 0}, + {"matrix": [0, 16], "x": 17, "y": 0}, + {"matrix": [0, 17], "x": 18, "y": 0}, - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1}, - {"matrix": [1, 4], "x": 4, "y": 1}, - {"matrix": [1, 5], "x": 5, "y": 1}, - {"matrix": [1, 6], "x": 6, "y": 1}, - {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [1, 8], "x": 8, "y": 1}, - {"matrix": [1, 9], "x": 9, "y": 1}, - {"matrix": [1, 10], "x": 10, "y": 1}, - {"matrix": [1, 11], "x": 11, "y": 1}, - {"matrix": [1, 12], "x": 12, "y": 1}, - {"matrix": [1, 13], "x": 13, "y": 1}, - {"matrix": [5, 3], "x": 14, "y": 1}, - {"matrix": [1, 14], "x": 15, "y": 1}, - {"matrix": [1, 15], "x": 16, "y": 1}, - {"matrix": [1, 16], "x": 17, "y": 1}, - {"matrix": [1, 17], "x": 18, "y": 1}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 13], "x": 13, "y": 1, "w": 2}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [1, 15], "x": 16, "y": 1}, + {"matrix": [1, 16], "x": 17, "y": 1}, + {"matrix": [1, 17], "x": 18, "y": 1}, - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, - {"matrix": [2, 1], "x": 1.5, "y": 2}, - {"matrix": [2, 2], "x": 2.5, "y": 2}, - {"matrix": [2, 3], "x": 3.5, "y": 2}, - {"matrix": [2, 4], "x": 4.5, "y": 2}, - {"matrix": [2, 5], "x": 5.5, "y": 2}, - {"matrix": [2, 6], "x": 6.5, "y": 2}, - {"matrix": [2, 7], "x": 7.5, "y": 2}, - {"matrix": [2, 8], "x": 8.5, "y": 2}, - {"matrix": [2, 9], "x": 9.5, "y": 2}, - {"matrix": [2, 10], "x": 10.5, "y": 2}, - {"matrix": [2, 11], "x": 11.5, "y": 2}, - {"matrix": [2, 12], "x": 12.5, "y": 2}, - {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5}, - {"matrix": [2, 14], "x": 15, "y": 2}, - {"matrix": [2, 15], "x": 16, "y": 2}, - {"matrix": [2, 16], "x": 17, "y": 2}, - {"matrix": [2, 17], "x": 18, "y": 2}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 3], "x": 3.5, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [2, 5], "x": 5.5, "y": 2}, + {"matrix": [2, 6], "x": 6.5, "y": 2}, + {"matrix": [2, 7], "x": 7.5, "y": 2}, + {"matrix": [2, 8], "x": 8.5, "y": 2}, + {"matrix": [2, 9], "x": 9.5, "y": 2}, + {"matrix": [2, 10], "x": 10.5, "y": 2}, + {"matrix": [2, 11], "x": 11.5, "y": 2}, + {"matrix": [2, 12], "x": 12.5, "y": 2}, + {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [2, 15], "x": 16, "y": 2}, + {"matrix": [2, 16], "x": 17, "y": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, - {"matrix": [3, 1], "x": 1.75, "y": 3}, - {"matrix": [3, 2], "x": 2.75, "y": 3}, - {"matrix": [3, 3], "x": 3.75, "y": 3}, - {"matrix": [3, 4], "x": 4.75, "y": 3}, - {"matrix": [3, 5], "x": 5.75, "y": 3}, - {"matrix": [3, 6], "x": 6.75, "y": 3}, - {"matrix": [3, 7], "x": 7.75, "y": 3}, - {"matrix": [3, 8], "x": 8.75, "y": 3}, - {"matrix": [3, 9], "x": 9.75, "y": 3}, - {"matrix": [3, 10], "x": 10.75, "y": 3}, - {"matrix": [3, 11], "x": 11.75, "y": 3}, - {"matrix": [3, 12], "x": 12.75, "y": 3}, - {"matrix": [3, 13], "x": 13.75, "y": 3, "w": 1.25}, - {"matrix": [3, 14], "x": 15, "y": 3}, - {"matrix": [3, 15], "x": 16, "y": 3}, - {"matrix": [3, 16], "x": 17, "y": 3}, - {"matrix": [3, 17], "x": 18, "y": 3}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3}, + {"matrix": [3, 2], "x": 2.75, "y": 3}, + {"matrix": [3, 3], "x": 3.75, "y": 3}, + {"matrix": [3, 4], "x": 4.75, "y": 3}, + {"matrix": [3, 5], "x": 5.75, "y": 3}, + {"matrix": [3, 6], "x": 6.75, "y": 3}, + {"matrix": [3, 7], "x": 7.75, "y": 3}, + {"matrix": [3, 8], "x": 8.75, "y": 3}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3}, + {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [3, 15], "x": 16, "y": 3}, + {"matrix": [3, 16], "x": 17, "y": 3}, + {"matrix": [2, 17], "x": 18, "y": 2, "h": 2}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 1.25, "y": 4}, - {"matrix": [4, 2], "x": 2.25, "y": 4}, - {"matrix": [4, 3], "x": 3.25, "y": 4}, - {"matrix": [4, 4], "x": 4.25, "y": 4}, - {"matrix": [4, 5], "x": 5.25, "y": 4}, - {"matrix": [4, 6], "x": 6.25, "y": 4}, - {"matrix": [4, 7], "x": 7.25, "y": 4}, - {"matrix": [4, 8], "x": 8.25, "y": 4}, - {"matrix": [4, 9], "x": 9.25, "y": 4}, - {"matrix": [4, 10], "x": 10.25, "y": 4}, - {"matrix": [4, 11], "x": 11.25, "y": 4}, - {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, - {"matrix": [4, 13], "x": 14, "y": 4}, - {"matrix": [4, 14], "x": 15, "y": 4}, - {"matrix": [4, 15], "x": 16, "y": 4}, - {"matrix": [4, 16], "x": 17, "y": 4}, - {"matrix": [4, 17], "x": 18, "y": 4}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4}, + {"matrix": [4, 15], "x": 16, "y": 4}, + {"matrix": [4, 16], "x": 17, "y": 4}, - {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, - {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, - {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, - {"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25}, - {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, - {"matrix": [5, 8], "x": 11.5, "y": 5, "w": 1.5}, - {"matrix": [5, 12], "x": 13, "y": 5}, - {"matrix": [5, 13], "x": 14, "y": 5}, - {"matrix": [5, 14], "x": 15, "y": 5}, - {"matrix": [5, 15], "x": 16, "y": 5}, - {"matrix": [5, 16], "x": 17, "y": 5}, - {"matrix": [5, 17], "x": 18, "y": 5} - ] + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, + {"matrix": [5, 8], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [5, 12], "x": 13, "y": 5}, + {"matrix": [5, 13], "x": 14, "y": 5}, + {"matrix": [5, 14], "x": 15, "y": 5}, + {"matrix": [5, 15], "x": 16, "y": 5}, + {"matrix": [5, 16], "x": 17, "y": 5}, + {"matrix": [4, 17], "x": 18, "y": 4, "h": 2} + ] + }, + "LAYOUT_96_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [5, 6], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [0, 15], "x": 16, "y": 0}, + {"matrix": [0, 16], "x": 17, "y": 0}, + {"matrix": [0, 17], "x": 18, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 13], "x": 13, "y": 1, "w": 2}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [1, 15], "x": 16, "y": 1}, + {"matrix": [1, 16], "x": 17, "y": 1}, + {"matrix": [1, 17], "x": 18, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 3], "x": 3.5, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [2, 5], "x": 5.5, "y": 2}, + {"matrix": [2, 6], "x": 6.5, "y": 2}, + {"matrix": [2, 7], "x": 7.5, "y": 2}, + {"matrix": [2, 8], "x": 8.5, "y": 2}, + {"matrix": [2, 9], "x": 9.5, "y": 2}, + {"matrix": [2, 10], "x": 10.5, "y": 2}, + {"matrix": [2, 11], "x": 11.5, "y": 2}, + {"matrix": [2, 12], "x": 12.5, "y": 2}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [2, 15], "x": 16, "y": 2}, + {"matrix": [2, 16], "x": 17, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3}, + {"matrix": [3, 2], "x": 2.75, "y": 3}, + {"matrix": [3, 3], "x": 3.75, "y": 3}, + {"matrix": [3, 4], "x": 4.75, "y": 3}, + {"matrix": [3, 5], "x": 5.75, "y": 3}, + {"matrix": [3, 6], "x": 6.75, "y": 3}, + {"matrix": [3, 7], "x": 7.75, "y": 3}, + {"matrix": [3, 8], "x": 8.75, "y": 3}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3}, + {"matrix": [3, 12], "x": 12.75, "y": 3}, + {"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [3, 15], "x": 16, "y": 3}, + {"matrix": [3, 16], "x": 17, "y": 3}, + {"matrix": [2, 17], "x": 18, "y": 2, "h": 2}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4}, + {"matrix": [4, 15], "x": 16, "y": 4}, + {"matrix": [4, 16], "x": 17, "y": 4}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, + {"matrix": [5, 8], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [5, 12], "x": 13, "y": 5}, + {"matrix": [5, 13], "x": 14, "y": 5}, + {"matrix": [5, 14], "x": 15, "y": 5}, + {"matrix": [5, 15], "x": 16, "y": 5}, + {"matrix": [5, 16], "x": 17, "y": 5}, + {"matrix": [4, 17], "x": 18, "y": 4, "h": 2} + ] + }, + "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": [5, 6], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [0, 15], "x": 16, "y": 0}, + {"matrix": [0, 16], "x": 17, "y": 0}, + {"matrix": [0, 17], "x": 18, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [1, 12], "x": 12, "y": 1}, + {"matrix": [1, 13], "x": 13, "y": 1}, + {"matrix": [5, 9], "x": 14, "y": 1}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [1, 15], "x": 16, "y": 1}, + {"matrix": [1, 16], "x": 17, "y": 1}, + {"matrix": [1, 17], "x": 18, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2}, + {"matrix": [2, 2], "x": 2.5, "y": 2}, + {"matrix": [2, 3], "x": 3.5, "y": 2}, + {"matrix": [2, 4], "x": 4.5, "y": 2}, + {"matrix": [2, 5], "x": 5.5, "y": 2}, + {"matrix": [2, 6], "x": 6.5, "y": 2}, + {"matrix": [2, 7], "x": 7.5, "y": 2}, + {"matrix": [2, 8], "x": 8.5, "y": 2}, + {"matrix": [2, 9], "x": 9.5, "y": 2}, + {"matrix": [2, 10], "x": 10.5, "y": 2}, + {"matrix": [2, 11], "x": 11.5, "y": 2}, + {"matrix": [2, 12], "x": 12.5, "y": 2}, + {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [2, 15], "x": 16, "y": 2}, + {"matrix": [2, 16], "x": 17, "y": 2}, + {"matrix": [2, 17], "x": 18, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3}, + {"matrix": [3, 2], "x": 2.75, "y": 3}, + {"matrix": [3, 3], "x": 3.75, "y": 3}, + {"matrix": [3, 4], "x": 4.75, "y": 3}, + {"matrix": [3, 5], "x": 5.75, "y": 3}, + {"matrix": [3, 6], "x": 6.75, "y": 3}, + {"matrix": [3, 7], "x": 7.75, "y": 3}, + {"matrix": [3, 8], "x": 8.75, "y": 3}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3}, + {"matrix": [3, 12], "x": 12.75, "y": 3}, + {"matrix": [3, 13], "x": 13.75, "y": 3, "w": 1.25}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [3, 15], "x": 16, "y": 3}, + {"matrix": [3, 16], "x": 17, "y": 3}, + {"matrix": [3, 17], "x": 18, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4}, + {"matrix": [4, 2], "x": 2.25, "y": 4}, + {"matrix": [4, 3], "x": 3.25, "y": 4}, + {"matrix": [4, 4], "x": 4.25, "y": 4}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [4, 8], "x": 8.25, "y": 4}, + {"matrix": [4, 9], "x": 9.25, "y": 4}, + {"matrix": [4, 10], "x": 10.25, "y": 4}, + {"matrix": [4, 11], "x": 11.25, "y": 4}, + {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4}, + {"matrix": [4, 15], "x": 16, "y": 4}, + {"matrix": [4, 16], "x": 17, "y": 4}, + {"matrix": [4, 17], "x": 18, "y": 4}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5, "w": 1.5}, + {"matrix": [5, 8], "x": 11.5, "y": 5, "w": 1.5}, + {"matrix": [5, 12], "x": 13, "y": 5}, + {"matrix": [5, 13], "x": 14, "y": 5}, + {"matrix": [5, 14], "x": 15, "y": 5}, + {"matrix": [5, 15], "x": 16, "y": 5}, + {"matrix": [5, 16], "x": 17, "y": 5}, + {"matrix": [5, 17], "x": 18, "y": 5} + ] + } } - } } diff --git a/keyboards/xiudi/xd96/keymaps/default/keymap.c b/keyboards/xiudi/xd96/keymaps/default/keymap.c index 3d904759caa..d0cfbe23b16 100644 --- a/keyboards/xiudi/xd96/keymaps/default/keymap.c +++ b/keyboards/xiudi/xd96/keymaps/default/keymap.c @@ -4,35 +4,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_96_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_INS, KC_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, -/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┼─────────┼─────────┼─────────┤ */ - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, -/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┼─────────┼─────────┼─────────┤ */ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, -/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──────────────├─────────├─────────├─────────├ ┤ */ - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, -/* ├─────────────────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───────────┬─────────┼─────────┼─────────┼─────────┼─────────┤ */ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, -/* ├───────────┬─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴─────────┴──┬──────┴───────┬─────────┼─────────┼─────────┼─────────┼─────────┼ ┤ */ - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, L1_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT -/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴──────────────┴──────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ - ), + [0] = LAYOUT_96_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_INS, KC_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, L1_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT + ), + + [1] = LAYOUT_96_ansi( + _______, BL_TOGG, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) - [1] = LAYOUT_96_ansi( -/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ - _______, BL_TOGG, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┼─────────┼─────────┼─────────┤ */ - _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┼─────────┼─────────┼─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──────────────├─────────├─────────├─────────┼ ┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├─────────────────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───────────┬─────────┼─────────┼─────────┼─────────┼─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├───────────┬─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴─────────┴──┬──────┴───────┬─────────┼─────────┼─────────┼─────────┼─────────┼ ┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴──────────────┴──────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ - ) }; diff --git a/keyboards/xiudi/xd96/keymaps/default_iso/keymap.c b/keyboards/xiudi/xd96/keymaps/default_iso/keymap.c index 7c26664b0ec..a485d2f9ef4 100644 --- a/keyboards/xiudi/xd96/keymaps/default_iso/keymap.c +++ b/keyboards/xiudi/xd96/keymaps/default_iso/keymap.c @@ -4,35 +4,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_96_iso( -/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ - 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_INS, KC_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, -/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┼─────────┼─────────┼─────────┤ */ - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_P7, KC_P8, KC_P9, -/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬ ├─────────├─────────├─────────├ ┤ */ - 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, L1_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT -/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴──────────────┴──────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ - ), + [0] = LAYOUT_96_iso( + 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_INS, KC_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_P7, KC_P8, KC_P9, + 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, L1_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT + ), + + [1] = LAYOUT_96_iso( + _______, BL_TOGG, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) - [1] = LAYOUT_96_iso( -/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ - _______, BL_TOGG, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┼─────────┼─────────┼─────────┤ */ - _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┼─────────┼─────────┼─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬ ├─────────├─────────├─────────┼ ┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├───────────┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴─────────┴─┬─────────┼─────────┼─────────┼─────────┼─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├───────────┼─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴─────────┴──┬──────┴───────┬─────────┼─────────┼─────────┼─────────┼─────────┼ ┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴──────────────┴──────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ - ) }; diff --git a/keyboards/xiudi/xd96/keymaps/via/keymap.c b/keyboards/xiudi/xd96/keymaps/via/keymap.c index 8fdb8efe210..2d6524958dc 100644 --- a/keyboards/xiudi/xd96/keymaps/via/keymap.c +++ b/keyboards/xiudi/xd96/keymaps/via/keymap.c @@ -2,67 +2,40 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_96_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_INS, KC_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, -/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┼─────────┼─────────┼─────────┤ */ - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, -/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┼─────────┼─────────┼─────────┤ */ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, -/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──────────────├─────────├─────────├─────────├ ┤ */ - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, -/* ├─────────────────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───────────┬─────────┼─────────┼─────────┼─────────┼─────────┤ */ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, -/* ├───────────┬─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴─────────┴──┬──────┴───────┬─────────┼─────────┼─────────┼─────────┼─────────┼ ┤ */ - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT -/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴──────────────┴──────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ - ), + [0] = LAYOUT_96_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_INS, KC_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT + ), - [1] = LAYOUT_96_ansi( -/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ - _______, BL_TOGG, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┼─────────┼─────────┼─────────┤ */ - _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┼─────────┼─────────┼─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──────────────├─────────├─────────├─────────┼ ┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├─────────────────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───────────┬─────────┼─────────┼─────────┼─────────┼─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├───────────┬─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴─────────┴──┬──────┴───────┬─────────┼─────────┼─────────┼─────────┼─────────┼ ┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴──────────────┴──────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ - ), + [1] = LAYOUT_96_ansi( + _______, BL_TOGG, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), - [2] = LAYOUT_96_ansi( -/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┼─────────┼─────────┼─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┼─────────┼─────────┼─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──────────────├─────────├─────────├─────────┼ ┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├─────────────────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───────────┬─────────┼─────────┼─────────┼─────────┼─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├───────────┬─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴─────────┴──┬──────┴───────┬─────────┼─────────┼─────────┼─────────┼─────────┼ ┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴──────────────┴──────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ - ), + [2] = LAYOUT_96_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_96_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), - [3] = LAYOUT_96_ansi( -/* ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┴─────────┼─────────┼─────────┼─────────┼─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├─────────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬──────────────┼─────────┼─────────┼─────────┼─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├──────────────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──┬──────┴──────────────├─────────├─────────├─────────┼ ┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├─────────────────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───┬─────┴───────────┬─────────┼─────────┼─────────┼─────────┼─────────┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* ├───────────┬─────────┴─┬───────┴───┬─────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────┬─┴─────────┴──┬──────┴───────┬─────────┼─────────┼─────────┼─────────┼─────────┼ ┤ */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -/* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴──────────────┴──────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ - ), }; diff --git a/keyboards/xiudi/xd96/matrix_diagram.md b/keyboards/xiudi/xd96/matrix_diagram.md new file mode 100644 index 00000000000..ba4181b0c78 --- /dev/null +++ b/keyboards/xiudi/xd96/matrix_diagram.md @@ -0,0 +1,42 @@ +# Matrix Diagram for KPrepublic XD96 + +``` +Spaced Function Row ────────────────────────────────────────┐ +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ +│00 │ │01 │02 │03 │04 │ │06 │07 │08 │09 │ │0A │0B │0C │0D │ +└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ + ┌───────┐ ┌───────┐ + 2u Function Row Backspace │0D │ │0G │ + └───────┘ └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │56 │0E │0F │0G │0H │ +├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ ┌───────┐ ┌───┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │59 │1E │1F │1G │1H │ │1D │ 2u Backspace │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┼───┼───┼───┤ └─┬─────┤ ┌─────┐ │1H │ ┌───┐ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │2E │2F │2G │2H │ │2D │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┼───┼───┼───┼───┤ ┌──┴─────┤ ┌──┴┐3D │ ├───┤ │2H │ 2u Numpad Plus +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │3F │3G │3H │ │3D │ │3C │ │ │ │ │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┼───┼───┼───┤ └────────┘ └───┴────┘ ┌───────┐ │3H │ ├───┤ +│40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │4D │4E │4F │4G │4H │ ANSI ISO │4E │ │ │ │ │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┼───┼───┼───┼───┼───┤ Enter Enter └───────┘ └───┘ │4H │ 2u Numpad Enter +│50 │51 │52 │55 │5A │58 │5C │5D │5E │5F │5G │5H │ 2u Zero │ │ +└────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┴───┴───┴───┘ on Shift Row └───┘ +┌────────┐ ┌───┬──────────┬───────┐ +│40 │ 2.25u LShift 1u/2.75u RShift │4B │4D │5E │ 2u Numpad Zero +└────────┘ └───┴──────────┴───────┘ + ┌────┬────┬────┐ + 3x 1.25u RShift │4B │4C │4D │ + └────┴────┴────┘ +┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐ +│50 │51 │52 │55 │5A │58 │5C │5D │ ANSI +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ +┌─────┬───┬─────┬───────────────────────┬─────┬─────┬───┬───┐ +│50 │51 │52 │55 │5A │58 │5C │5D │ Tsangan +└─────┴───┴─────┴───────────────────────┴─────┴─────┴───┴───┘ +┌─────┬─────┬───────────────────────────┬─────┬─────┬───┬───┐ +│50 │51 │55 │5A │58 │5C │5D │ WKL +└─────┴─────┴───────────────────────────┴─────┴─────┴───┴───┘ + ┌───┬─────┬───────────────────────────┬─────┬───┐ + │51 │52 │55 │58 │5C │ HHKB + └───┴─────┴───────────────────────────┴─────┴───┘ +``` diff --git a/keyboards/xiudi/xd96/readme.md b/keyboards/xiudi/xd96/readme.md index 5f4038ef3fd..47a91c834d1 100644 --- a/keyboards/xiudi/xd96/readme.md +++ b/keyboards/xiudi/xd96/readme.md @@ -9,7 +9,7 @@ Keyboard with 96 Keys & RGB LED Underglow * Keyboard Maintainer: QMK Community * Hardware Supported: XD96 -* Hardware Availability: [KPrepublic](https://kprepublic.com/products/xd96-pcb-90-custom-mechanical-keyboard-supports-tkg-tools-underglow-rgb-programmed); [AliExpress](https://aliexpress.com/item/cospad-Custom-Mechanical-Keyboard-Kit-up-tp-24-keys-Supports-TKG-TOOLS-Underglow-RGB-PCB-20/32818383873.html) +* Hardware Availability: [KPrepublic](https://kprepublic.com/products/xd96-pcb-90-custom-mechanical-keyboard-supports-tkg-tools-underglow-rgb-programmed); [AliExpress](https://www.aliexpress.com/i/2251832661406145.html) Make example for this keyboard (after setting up your build environment): From fec2323089ab38262195eda4e68db7d0d6c9e7c7 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 8 Mar 2024 17:26:33 -0800 Subject: [PATCH 4/7] Orthograph: correct layout data (#23213) * correct layout data Correct the key sizes and positions in the layout data. [chore] * remove layout offset Remove the dead space from the layout data. [chore] --- keyboards/orthograph/info.json | 176 +++++++++++++++++---------------- 1 file changed, 93 insertions(+), 83 deletions(-) diff --git a/keyboards/orthograph/info.json b/keyboards/orthograph/info.json index 19d3f6b2fbb..ad37b0c723c 100644 --- a/keyboards/orthograph/info.json +++ b/keyboards/orthograph/info.json @@ -140,90 +140,100 @@ "layouts": { "LAYOUT": { "layout": [ - {"matrix": [0, 0], "label":"Esc", "x":0.75, "y":0, "w":1.5}, - {"matrix": [0, 1], "label":"F1", "x":2.25, "y":0}, - {"matrix": [0, 2], "label":"F2", "x":3.25, "y":0}, - {"matrix": [0, 3], "label":"F3", "x":4.25, "y":0}, - {"matrix": [0, 4], "label":"F4", "x":5.25, "y":0}, - {"matrix": [0, 5], "label":"F5", "x":6.25, "y":0}, - {"matrix": [6, 0], "label":"F6", "x":12.5, "y":0}, - {"matrix": [6, 1], "label":"F7", "x":13.5, "y":0}, - {"matrix": [6, 2], "label":"F8", "x":14.5, "y":0}, - {"matrix": [6, 3], "label":"F9", "x":15.5, "y":0}, - {"matrix": [6, 4], "label":"F10", "x":16.5, "y":0}, - {"matrix": [6, 5], "label":"F11", "x":17.5, "y":0}, - {"matrix": [6, 6], "label":"F12", "x":18.5, "y":0}, - {"matrix": [1, 0], "label":"~", "x":0.75, "y":1, "w":1.5}, - {"matrix": [1, 1], "label":"1", "x":2.25, "y":1}, - {"matrix": [1, 2], "label":"2", "x":3.25, "y":1}, - {"matrix": [1, 3], "label":"3", "x":4.25, "y":1}, - {"matrix": [1, 4], "label":"4", "x":5.25, "y":1}, - {"matrix": [1, 5], "label":"5", "x":6.25, "y":1}, - {"matrix": [7, 0], "label":"^", "x":12.5, "y":1}, - {"matrix": [7, 1], "label":"&", "x":13.5, "y":1}, - {"matrix": [7, 2], "label":"*", "x":14.5, "y":1}, - {"matrix": [7, 3], "label":"(", "x":15.5, "y":1}, - {"matrix": [7, 4], "label":")", "x":16.5, "y":1}, - {"matrix": [7, 5], "label":"_", "x":17.5, "y":1}, - {"matrix": [7, 6], "label":"+", "x":18.5, "y":1}, - {"matrix": [7, 7], "label":"Backspace", "x":19.5, "y":1, "w":1.5}, - {"matrix": [2, 0], "label":"Tab", "x":0.75, "y":2, "w":1.5}, - {"matrix": [2, 1], "label":"Q", "x":2.25, "y":2}, - {"matrix": [2, 2], "label":"W", "x":3.25, "y":2}, - {"matrix": [2, 3], "label":"E", "x":4.25, "y":2}, - {"matrix": [2, 4], "label":"R", "x":5.25, "y":2}, - {"matrix": [2, 5], "label":"T", "x":6.25, "y":2}, - {"matrix": [8, 0], "label":"Y", "x":12.5, "y":2}, - {"matrix": [8, 1], "label":"U", "x":13.5, "y":2}, - {"matrix": [8, 2], "label":"I", "x":14.5, "y":2}, - {"matrix": [8, 3], "label":"O", "x":15.5, "y":2}, - {"matrix": [8, 4], "label":"P", "x":16.5, "y":2}, - {"matrix": [8, 5], "label":"{", "x":17.5, "y":2}, - {"matrix": [8, 6], "label":"}", "x":18.5, "y":2}, - {"matrix": [8, 7], "label":"|", "x":19.5, "y":2, "w":1.5}, - {"matrix": [3, 0], "label":"Caps", "x":0.75, "y":3, "w":1.5}, - {"matrix": [3, 1], "label":"A", "x":2.25, "y":3}, - {"matrix": [3, 2], "label":"S", "x":3.25, "y":3}, - {"matrix": [3, 3], "label":"D", "x":4.25, "y":3}, - {"matrix": [3, 4], "label":"F", "x":5.25, "y":3}, - {"matrix": [3, 5], "label":"G", "x":6.25, "y":3}, - {"matrix": [9, 0], "label":"H", "x":12.5, "y":3}, - {"matrix": [9, 1], "label":"J", "x":13.5, "y":3}, - {"matrix": [9, 2], "label":"K", "x":14.5, "y":3}, - {"matrix": [9, 3], "label":"L", "x":15.5, "y":3}, - {"matrix": [9, 4], "label":":", "x":16.5, "y":3}, - {"matrix": [9, 5], "label":"\"", "x":17.5, "y":3}, - {"matrix": [9, 6], "label":"Enter", "x":18.5, "y":3, "w":2.25}, - {"matrix": [4, 0], "label":"Shift", "x":0.75, "y":4, "w":1.5}, - {"matrix": [4, 1], "label":"Z", "x":2.25, "y":4}, - {"matrix": [4, 2], "label":"X", "x":3.25, "y":4}, - {"matrix": [4, 3], "label":"C", "x":4.25, "y":4}, - {"matrix": [4, 4], "label":"V", "x":5.25, "y":4}, - {"matrix": [4, 5], "label":"B", "x":6.25, "y":4}, - {"matrix": [10, 0], "label":"N", "x":12.5, "y":4}, - {"matrix": [10, 1], "label":"M", "x":13.5, "y":4}, - {"matrix": [10, 2], "label":"<", "x":14.5, "y":4}, - {"matrix": [10, 3], "label":">", "x":15.5, "y":4}, - {"matrix": [10, 4], "label":"?", "x":16.5, "y":4}, - {"matrix": [10, 5], "label":"Shift", "x":17.5, "y":4, "w":1.5}, - {"matrix": [10, 6], "label":"\u2191", "x":19, "y":4}, - {"matrix": [10, 7], "label":"mx", "x":20, "y":4}, - {"matrix": [5, 0], "label":"Ctrl", "x":1, "y":5, "w":1.25}, - {"matrix": [5, 1], "label":"Win", "x":2.25, "y":5, "w":1.25}, - {"matrix": [5, 2], "label":"Alt", "x":3.5, "y":5, "w":1.25}, - {"matrix": [5, 3], "label":"Menu", "x":4.75, "y":5, "w":1.25}, - {"matrix": [5, 4], "label":"space", "x":0, "y":4.75, "h":2}, - {"matrix": [5, 5], "label":"fn", "x":1, "y":4.75, "h":2}, - {"matrix": [11, 0], "label":"space2", "x":-2, "y":4.5, "h":2}, - {"matrix": [11, 1], "label":"fn", "x":-1.0, "y":4.5, "h":2}, - {"matrix": [11, 2], "label":"Alt", "x":14.25, "y":5, "w":1.25}, - {"matrix": [11, 3], "label":"Win", "x":15.5, "y":5, "w":1.25}, - {"matrix": [11, 4], "label":"Ctrl", "x":16.75, "y":5, "w":1.25}, - {"matrix": [11, 5], "label":"\u2190", "x":18, "y":5}, - {"matrix": [11, 6], "label":"\u2193", "x":19, "y":5}, - {"matrix": [11, 7], "label":"\u2192", "x":20, "y":5} + {"matrix": [0, 0], "label": "Esc", "x": 0, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "label": "F1", "x": 1.5, "y": 0}, + {"matrix": [0, 2], "label": "F2", "x": 2.5, "y": 0}, + {"matrix": [0, 3], "label": "F3", "x": 3.5, "y": 0}, + {"matrix": [0, 4], "label": "F4", "x": 4.5, "y": 0}, + {"matrix": [0, 5], "label": "F5", "x": 5.5, "y": 0}, + {"matrix": [6, 0], "label": "F6", "x": 11.75, "y": 0}, + {"matrix": [6, 1], "label": "F7", "x": 12.75, "y": 0}, + {"matrix": [6, 2], "label": "F8", "x": 13.75, "y": 0}, + {"matrix": [6, 3], "label": "F9", "x": 14.75, "y": 0}, + {"matrix": [6, 4], "label": "F10", "x": 15.75, "y": 0}, + {"matrix": [6, 5], "label": "F11", "x": 16.75, "y": 0}, + {"matrix": [6, 6], "label": "F12", "x": 17.75, "y": 0}, + + {"matrix": [1, 0], "label": "~", "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "label": "1", "x": 1.5, "y": 1}, + {"matrix": [1, 2], "label": "2", "x": 2.5, "y": 1}, + {"matrix": [1, 3], "label": "3", "x": 3.5, "y": 1}, + {"matrix": [1, 4], "label": "4", "x": 4.5, "y": 1}, + {"matrix": [1, 5], "label": "5", "x": 5.5, "y": 1}, + + {"matrix": [7, 0], "label": "^", "x": 11.75, "y": 1}, + {"matrix": [7, 1], "label": "&", "x": 12.75, "y": 1}, + {"matrix": [7, 2], "label": "*", "x": 13.75, "y": 1}, + {"matrix": [7, 3], "label": "(", "x": 14.75, "y": 1}, + {"matrix": [7, 4], "label": ")", "x": 15.75, "y": 1}, + {"matrix": [7, 5], "label": "_", "x": 16.75, "y": 1}, + {"matrix": [7, 6], "label": "+", "x": 17.75, "y": 1}, + {"matrix": [7, 7], "label": "Backspace", "x": 18.75, "y": 1, "w": 1.5}, + + {"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": 11.75, "y": 2}, + {"matrix": [8, 1], "label": "U", "x": 12.75, "y": 2}, + {"matrix": [8, 2], "label": "I", "x": 13.75, "y": 2}, + {"matrix": [8, 3], "label": "O", "x": 14.75, "y": 2}, + {"matrix": [8, 4], "label": "P", "x": 15.75, "y": 2}, + {"matrix": [8, 5], "label": "{", "x": 16.75, "y": 2}, + {"matrix": [8, 6], "label": "}", "x": 17.75, "y": 2}, + {"matrix": [8, 7], "label": "|", "x": 18.75, "y": 2, "w": 1.5}, + + {"matrix": [3, 0], "label": "Caps", "x": 0, "y": 3, "w": 1.5}, + {"matrix": [3, 1], "label": "A", "x": 1.5, "y": 3}, + {"matrix": [3, 2], "label": "S", "x": 2.5, "y": 3}, + {"matrix": [3, 3], "label": "D", "x": 3.5, "y": 3}, + {"matrix": [3, 4], "label": "F", "x": 4.5, "y": 3}, + {"matrix": [3, 5], "label": "G", "x": 5.5, "y": 3}, + + {"matrix": [9, 0], "label": "H", "x": 11.75, "y": 3}, + {"matrix": [9, 1], "label": "J", "x": 12.75, "y": 3}, + {"matrix": [9, 2], "label": "K", "x": 13.75, "y": 3}, + {"matrix": [9, 3], "label": "L", "x": 14.75, "y": 3}, + {"matrix": [9, 4], "label": ":", "x": 15.75, "y": 3}, + {"matrix": [9, 5], "label": "\"", "x": 16.75, "y": 3}, + {"matrix": [9, 6], "label": "Enter", "x": 17.75, "y": 3, "w": 2.25}, + + {"matrix": [4, 0], "label": "Shift", "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "label": "Z", "x": 1.5, "y": 4}, + {"matrix": [4, 2], "label": "X", "x": 2.5, "y": 4}, + {"matrix": [4, 3], "label": "C", "x": 3.5, "y": 4}, + {"matrix": [4, 4], "label": "V", "x": 4.5, "y": 4}, + {"matrix": [4, 5], "label": "B", "x": 5.5, "y": 4}, + + {"matrix": [10, 0], "label": "N", "x": 11.75, "y": 4}, + {"matrix": [10, 1], "label": "M", "x": 12.75, "y": 4}, + {"matrix": [10, 2], "label": "<", "x": 13.75, "y": 4}, + {"matrix": [10, 3], "label": ">", "x": 14.75, "y": 4}, + {"matrix": [10, 4], "label": "?", "x": 15.75, "y": 4}, + {"matrix": [10, 5], "label": "Shift", "x": 16.75, "y": 4, "w": 1.5}, + {"matrix": [10, 6], "label": "\u2191", "x": 18.25, "y": 4}, + {"matrix": [10, 7], "label": "mx", "x": 19.25, "y": 4}, + + {"matrix": [5, 0], "label": "Ctrl", "x": 0.25, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "label": "Win", "x": 1.5, "y": 5, "w": 1.25}, + {"matrix": [5, 2], "label": "Alt", "x": 2.75, "y": 5, "w": 1.25}, + {"matrix": [5, 3], "label": "Menu", "x": 4, "y": 5, "w": 1.25}, + {"matrix": [5, 4], "label": "space", "x": 5.5, "y": 5.25, "h": 2}, + {"matrix": [5, 5], "label": "fn", "x": 6.5, "y": 5.25, "h": 2}, + + {"matrix": [11, 0], "label": "space2", "x": 11.25, "y": 5.25, "h": 2}, + {"matrix": [11, 1], "label": "fn", "x": 12.25, "y": 5.25, "h": 2}, + {"matrix": [11, 2], "label": "Alt", "x": 13.5, "y": 5, "w": 1.25}, + {"matrix": [11, 3], "label": "Win", "x": 14.75, "y": 5, "w": 1.25}, + {"matrix": [11, 4], "label": "Ctrl", "x": 16, "y": 5, "w": 1.25}, + {"matrix": [11, 5], "label": "\u2190", "x": 17.25, "y": 5}, + {"matrix": [11, 6], "label": "\u2193", "x": 18.25, "y": 5}, + {"matrix": [11, 7], "label": "\u2192", "x": 19.25, "y": 5} ] } } -} \ No newline at end of file +} From 900e79febebaa6e8c682755442a385dc6f2ed703 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sat, 9 Mar 2024 21:40:19 +1100 Subject: [PATCH 5/7] Attempt to deal with GCC 13+ and rv32 arch extensions. (#23086) --- platforms/chibios/platform.mk | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/platforms/chibios/platform.mk b/platforms/chibios/platform.mk index f38a888012e..b13eed39be8 100644 --- a/platforms/chibios/platform.mk +++ b/platforms/chibios/platform.mk @@ -402,6 +402,17 @@ ifeq ($(strip $(MCU)), risc-v) -mabi=$(MCU_ABI) \ -mcmodel=$(MCU_CMODEL) \ -mstrict-align + + # Deal with different arch revisions and gcc renaming them + ifneq ($(shell echo 'int main() { asm("csrc 0x300,8"); return 0; }' | $(TOOLCHAIN)gcc $(MCUFLAGS) $(TOOLCHAIN_CFLAGS) -x c -o /dev/null - 2>/dev/null >/dev/null; echo $$?),0) + MCUFLAGS = -march=$(MCU_ARCH)_zicsr \ + -mabi=$(MCU_ABI) \ + -mcmodel=$(MCU_CMODEL) \ + -mstrict-align + ifneq ($(shell echo 'int main() { asm("csrc 0x300,8"); return 0; }' | $(TOOLCHAIN)gcc $(MCUFLAGS) $(TOOLCHAIN_CFLAGS) -x c -o /dev/null - 2>/dev/null >/dev/null; echo $$?),0) + $(call CATASTROPHIC_ERROR,Incompatible toolchain,No compatible RISC-V toolchain found. Can't work out correct architecture.) + endif + endif else # ARM toolchain specific configuration TOOLCHAIN ?= arm-none-eabi- From be42ea306b36bf7fac8b790452536156de8efcf6 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat, 9 Mar 2024 23:04:00 -0800 Subject: [PATCH 6/7] KBDfans KBD19x Layout Additions (#23230) * Add layout/matrix diagram [docs] * Re-sort JSON `layouts` object Moves the `LAYOUT_all` object to be first in sequence. [refactor] * Add `LAYOUT_ansi_split_bs` [enhancement] * Add `LAYOUT_iso_split_bs` [enhancement] * Add `LAYOUT_ansi_wkl_split_bs` [enhancement] * Add `LAYOUT_ansi_wkl` [enhancement] * Add `LAYOUT_iso_wkl_split_bs` [enhancement] * Add `LAYOUT_iso_wkl` [enhancement] --- keyboards/kbdfans/kbd19x/info.json | 734 ++++++++++++++++++++- keyboards/kbdfans/kbd19x/matrix_diagram.md | 28 + 2 files changed, 753 insertions(+), 9 deletions(-) create mode 100644 keyboards/kbdfans/kbd19x/matrix_diagram.md diff --git a/keyboards/kbdfans/kbd19x/info.json b/keyboards/kbdfans/kbd19x/info.json index c37e3587e25..f2b28e4a086 100644 --- a/keyboards/kbdfans/kbd19x/info.json +++ b/keyboards/kbdfans/kbd19x/info.json @@ -46,6 +46,130 @@ "processor": "atmega32u4", "bootloader": "atmel-dfu", "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + + {"matrix": [6, 0], "x": 5.5, "y": 0}, + {"matrix": [6, 1], "x": 6.5, "y": 0}, + {"matrix": [6, 2], "x": 7.5, "y": 0}, + {"matrix": [6, 3], "x": 8.5, "y": 0}, + + {"matrix": [0, 5], "x": 9.75, "y": 0}, + {"matrix": [0, 6], "x": 10.75, "y": 0}, + {"matrix": [0, 7], "x": 11.75, "y": 0}, + {"matrix": [0, 8], "x": 12.75, "y": 0}, + + {"matrix": [7, 2], "x": 14, "y": 0}, + + {"matrix": [0, 9], "x": 15.5, "y": 0}, + {"matrix": [0, 10], "x": 16.5, "y": 0}, + {"matrix": [0, 11], "x": 17.5, "y": 0}, + {"matrix": [0, 12], "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": [6, 4], "x": 5, "y": 1.5}, + {"matrix": [6, 5], "x": 6, "y": 1.5}, + {"matrix": [6, 6], "x": 7, "y": 1.5}, + {"matrix": [6, 7], "x": 8, "y": 1.5}, + {"matrix": [1, 5], "x": 9, "y": 1.5}, + {"matrix": [1, 6], "x": 10, "y": 1.5}, + {"matrix": [1, 7], "x": 11, "y": 1.5}, + {"matrix": [1, 8], "x": 12, "y": 1.5}, + {"matrix": [7, 0], "x": 13, "y": 1.5}, + {"matrix": [7, 1], "x": 14, "y": 1.5}, + + {"matrix": [1, 9], "x": 15.5, "y": 1.5}, + {"matrix": [1, 10], "x": 16.5, "y": 1.5}, + {"matrix": [1, 11], "x": 17.5, "y": 1.5}, + {"matrix": [1, 12], "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": [6, 8], "x": 5.5, "y": 2.5}, + {"matrix": [6, 9], "x": 6.5, "y": 2.5}, + {"matrix": [6, 10], "x": 7.5, "y": 2.5}, + {"matrix": [6, 11], "x": 8.5, "y": 2.5}, + {"matrix": [2, 5], "x": 9.5, "y": 2.5}, + {"matrix": [2, 6], "x": 10.5, "y": 2.5}, + {"matrix": [2, 7], "x": 11.5, "y": 2.5}, + {"matrix": [2, 8], "x": 12.5, "y": 2.5}, + {"matrix": [7, 3], "x": 13.5, "y": 2.5, "w": 1.5}, + + {"matrix": [2, 9], "x": 15.5, "y": 2.5}, + {"matrix": [2, 10], "x": 16.5, "y": 2.5}, + {"matrix": [2, 11], "x": 17.5, "y": 2.5}, + {"matrix": [2, 12], "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": [6, 12], "x": 5.75, "y": 3.5}, + {"matrix": [7, 5], "x": 6.75, "y": 3.5}, + {"matrix": [7, 6], "x": 7.75, "y": 3.5}, + {"matrix": [7, 7], "x": 8.75, "y": 3.5}, + {"matrix": [3, 5], "x": 9.75, "y": 3.5}, + {"matrix": [3, 6], "x": 10.75, "y": 3.5}, + {"matrix": [3, 7], "x": 11.75, "y": 3.5}, + {"matrix": [3, 8], "x": 12.75, "y": 3.5, "w": 2.25}, + + {"matrix": [3, 9], "x": 15.5, "y": 3.5}, + {"matrix": [3, 10], "x": 16.5, "y": 3.5}, + {"matrix": [3, 11], "x": 17.5, "y": 3.5}, + {"matrix": [3, 12], "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": [7, 8], "x": 5.25, "y": 4.5}, + {"matrix": [7, 9], "x": 6.25, "y": 4.5}, + {"matrix": [7, 10], "x": 7.25, "y": 4.5}, + {"matrix": [7, 11], "x": 8.25, "y": 4.5}, + {"matrix": [4, 5], "x": 9.25, "y": 4.5}, + {"matrix": [4, 6], "x": 10.25, "y": 4.5}, + {"matrix": [4, 7], "x": 11.25, "y": 4.5}, + {"matrix": [4, 8], "x": 12.25, "y": 4.5, "w": 1.75}, + + {"matrix": [7, 4], "x": 14.25, "y": 4.75}, + + {"matrix": [4, 9], "x": 15.5, "y": 4.5}, + {"matrix": [4, 10], "x": 16.5, "y": 4.5}, + {"matrix": [4, 11], "x": 17.5, "y": 4.5}, + {"matrix": [4, 12], "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, 9], "x": 3.5, "y": 5.5, "w": 6.25}, + {"matrix": [5, 5], "x": 9.75, "y": 5.5}, + {"matrix": [5, 6], "x": 10.75, "y": 5.5}, + {"matrix": [5, 7], "x": 11.75, "y": 5.5, "w": 1.25}, + + {"matrix": [5, 8], "x": 13.25, "y": 5.75}, + {"matrix": [5, 3], "x": 14.25, "y": 5.75}, + {"matrix": [5, 4], "x": 15.25, "y": 5.75}, + + {"matrix": [5, 10], "x": 16.5, "y": 5.5}, + {"matrix": [5, 11], "x": 17.5, "y": 5.5}, + {"matrix": [5, 12], "x": 18.5, "y": 5.5} + ] + }, "LAYOUT_ansi": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, @@ -166,6 +290,364 @@ {"matrix": [5, 11], "x": 17.5, "y": 5.5} ] }, + "LAYOUT_ansi_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + + {"matrix": [6, 0], "x": 5.5, "y": 0}, + {"matrix": [6, 1], "x": 6.5, "y": 0}, + {"matrix": [6, 2], "x": 7.5, "y": 0}, + {"matrix": [6, 3], "x": 8.5, "y": 0}, + + {"matrix": [0, 5], "x": 9.75, "y": 0}, + {"matrix": [0, 6], "x": 10.75, "y": 0}, + {"matrix": [0, 7], "x": 11.75, "y": 0}, + {"matrix": [0, 8], "x": 12.75, "y": 0}, + + {"matrix": [7, 2], "x": 14, "y": 0}, + + {"matrix": [0, 9], "x": 15.5, "y": 0}, + {"matrix": [0, 10], "x": 16.5, "y": 0}, + {"matrix": [0, 11], "x": 17.5, "y": 0}, + {"matrix": [0, 12], "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": [6, 4], "x": 5, "y": 1.5}, + {"matrix": [6, 5], "x": 6, "y": 1.5}, + {"matrix": [6, 6], "x": 7, "y": 1.5}, + {"matrix": [6, 7], "x": 8, "y": 1.5}, + {"matrix": [1, 5], "x": 9, "y": 1.5}, + {"matrix": [1, 6], "x": 10, "y": 1.5}, + {"matrix": [1, 7], "x": 11, "y": 1.5}, + {"matrix": [1, 8], "x": 12, "y": 1.5}, + {"matrix": [7, 0], "x": 13, "y": 1.5}, + {"matrix": [7, 1], "x": 14, "y": 1.5}, + + {"matrix": [1, 9], "x": 15.5, "y": 1.5}, + {"matrix": [1, 10], "x": 16.5, "y": 1.5}, + {"matrix": [1, 11], "x": 17.5, "y": 1.5}, + {"matrix": [1, 12], "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": [6, 8], "x": 5.5, "y": 2.5}, + {"matrix": [6, 9], "x": 6.5, "y": 2.5}, + {"matrix": [6, 10], "x": 7.5, "y": 2.5}, + {"matrix": [6, 11], "x": 8.5, "y": 2.5}, + {"matrix": [2, 5], "x": 9.5, "y": 2.5}, + {"matrix": [2, 6], "x": 10.5, "y": 2.5}, + {"matrix": [2, 7], "x": 11.5, "y": 2.5}, + {"matrix": [2, 8], "x": 12.5, "y": 2.5}, + {"matrix": [7, 3], "x": 13.5, "y": 2.5, "w": 1.5}, + + {"matrix": [2, 9], "x": 15.5, "y": 2.5}, + {"matrix": [2, 10], "x": 16.5, "y": 2.5}, + {"matrix": [2, 11], "x": 17.5, "y": 2.5}, + {"matrix": [2, 12], "x": 18.5, "y": 2.5, "h": 2}, + + {"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": [6, 12], "x": 5.75, "y": 3.5}, + {"matrix": [7, 5], "x": 6.75, "y": 3.5}, + {"matrix": [7, 6], "x": 7.75, "y": 3.5}, + {"matrix": [7, 7], "x": 8.75, "y": 3.5}, + {"matrix": [3, 5], "x": 9.75, "y": 3.5}, + {"matrix": [3, 6], "x": 10.75, "y": 3.5}, + {"matrix": [3, 7], "x": 11.75, "y": 3.5}, + {"matrix": [3, 8], "x": 12.75, "y": 3.5, "w": 2.25}, + + {"matrix": [3, 9], "x": 15.5, "y": 3.5}, + {"matrix": [3, 10], "x": 16.5, "y": 3.5}, + {"matrix": [3, 11], "x": 17.5, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [7, 8], "x": 5.25, "y": 4.5}, + {"matrix": [7, 9], "x": 6.25, "y": 4.5}, + {"matrix": [7, 10], "x": 7.25, "y": 4.5}, + {"matrix": [7, 11], "x": 8.25, "y": 4.5}, + {"matrix": [4, 5], "x": 9.25, "y": 4.5}, + {"matrix": [4, 6], "x": 10.25, "y": 4.5}, + {"matrix": [4, 7], "x": 11.25, "y": 4.5}, + {"matrix": [4, 8], "x": 12.25, "y": 4.5, "w": 1.75}, + + {"matrix": [7, 4], "x": 14.25, "y": 4.75}, + + {"matrix": [4, 9], "x": 15.5, "y": 4.5}, + {"matrix": [4, 10], "x": 16.5, "y": 4.5}, + {"matrix": [4, 11], "x": 17.5, "y": 4.5}, + {"matrix": [4, 12], "x": 18.5, "y": 4.5, "h": 2}, + + {"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, 9], "x": 3.5, "y": 5.5, "w": 6.25}, + {"matrix": [5, 5], "x": 9.75, "y": 5.5}, + {"matrix": [5, 6], "x": 10.75, "y": 5.5}, + {"matrix": [5, 7], "x": 11.75, "y": 5.5, "w": 1.25}, + + {"matrix": [5, 8], "x": 13.25, "y": 5.75}, + {"matrix": [5, 3], "x": 14.25, "y": 5.75}, + {"matrix": [5, 4], "x": 15.25, "y": 5.75}, + + {"matrix": [5, 10], "x": 16.5, "y": 5.5}, + {"matrix": [5, 11], "x": 17.5, "y": 5.5} + ] + }, + "LAYOUT_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": [6, 0], "x": 5.5, "y": 0}, + {"matrix": [6, 1], "x": 6.5, "y": 0}, + {"matrix": [6, 2], "x": 7.5, "y": 0}, + {"matrix": [6, 3], "x": 8.5, "y": 0}, + + {"matrix": [0, 5], "x": 9.75, "y": 0}, + {"matrix": [0, 6], "x": 10.75, "y": 0}, + {"matrix": [0, 7], "x": 11.75, "y": 0}, + {"matrix": [0, 8], "x": 12.75, "y": 0}, + + {"matrix": [7, 2], "x": 14, "y": 0}, + + {"matrix": [0, 9], "x": 15.5, "y": 0}, + {"matrix": [0, 10], "x": 16.5, "y": 0}, + {"matrix": [0, 11], "x": 17.5, "y": 0}, + {"matrix": [0, 12], "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": [6, 4], "x": 5, "y": 1.5}, + {"matrix": [6, 5], "x": 6, "y": 1.5}, + {"matrix": [6, 6], "x": 7, "y": 1.5}, + {"matrix": [6, 7], "x": 8, "y": 1.5}, + {"matrix": [1, 5], "x": 9, "y": 1.5}, + {"matrix": [1, 6], "x": 10, "y": 1.5}, + {"matrix": [1, 7], "x": 11, "y": 1.5}, + {"matrix": [1, 8], "x": 12, "y": 1.5}, + {"matrix": [7, 1], "x": 13, "y": 1.5, "w": 2}, + + {"matrix": [1, 9], "x": 15.5, "y": 1.5}, + {"matrix": [1, 10], "x": 16.5, "y": 1.5}, + {"matrix": [1, 11], "x": 17.5, "y": 1.5}, + {"matrix": [1, 12], "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": [6, 8], "x": 5.5, "y": 2.5}, + {"matrix": [6, 9], "x": 6.5, "y": 2.5}, + {"matrix": [6, 10], "x": 7.5, "y": 2.5}, + {"matrix": [6, 11], "x": 8.5, "y": 2.5}, + {"matrix": [2, 5], "x": 9.5, "y": 2.5}, + {"matrix": [2, 6], "x": 10.5, "y": 2.5}, + {"matrix": [2, 7], "x": 11.5, "y": 2.5}, + {"matrix": [2, 8], "x": 12.5, "y": 2.5}, + {"matrix": [7, 3], "x": 13.5, "y": 2.5, "w": 1.5}, + + {"matrix": [2, 9], "x": 15.5, "y": 2.5}, + {"matrix": [2, 10], "x": 16.5, "y": 2.5}, + {"matrix": [2, 11], "x": 17.5, "y": 2.5}, + {"matrix": [2, 12], "x": 18.5, "y": 2.5, "h": 2}, + + {"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": [6, 12], "x": 5.75, "y": 3.5}, + {"matrix": [7, 5], "x": 6.75, "y": 3.5}, + {"matrix": [7, 6], "x": 7.75, "y": 3.5}, + {"matrix": [7, 7], "x": 8.75, "y": 3.5}, + {"matrix": [3, 5], "x": 9.75, "y": 3.5}, + {"matrix": [3, 6], "x": 10.75, "y": 3.5}, + {"matrix": [3, 7], "x": 11.75, "y": 3.5}, + {"matrix": [3, 8], "x": 12.75, "y": 3.5, "w": 2.25}, + + {"matrix": [3, 9], "x": 15.5, "y": 3.5}, + {"matrix": [3, 10], "x": 16.5, "y": 3.5}, + {"matrix": [3, 11], "x": 17.5, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [7, 8], "x": 5.25, "y": 4.5}, + {"matrix": [7, 9], "x": 6.25, "y": 4.5}, + {"matrix": [7, 10], "x": 7.25, "y": 4.5}, + {"matrix": [7, 11], "x": 8.25, "y": 4.5}, + {"matrix": [4, 5], "x": 9.25, "y": 4.5}, + {"matrix": [4, 6], "x": 10.25, "y": 4.5}, + {"matrix": [4, 7], "x": 11.25, "y": 4.5}, + {"matrix": [4, 8], "x": 12.25, "y": 4.5, "w": 1.75}, + + {"matrix": [7, 4], "x": 14.25, "y": 4.75}, + + {"matrix": [4, 9], "x": 15.5, "y": 4.5}, + {"matrix": [4, 10], "x": 16.5, "y": 4.5}, + {"matrix": [4, 11], "x": 17.5, "y": 4.5}, + {"matrix": [4, 12], "x": 18.5, "y": 4.5, "h": 2}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"matrix": [5, 2], "x": 1.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 9], "x": 3, "y": 5.5, "w": 7}, + {"matrix": [5, 5], "x": 10, "y": 5.5, "w": 1.5}, + {"matrix": [5, 7], "x": 11.5, "y": 5.5, "w": 1.5}, + + {"matrix": [5, 8], "x": 13.25, "y": 5.75}, + {"matrix": [5, 3], "x": 14.25, "y": 5.75}, + {"matrix": [5, 4], "x": 15.25, "y": 5.75}, + + {"matrix": [5, 10], "x": 16.5, "y": 5.5}, + {"matrix": [5, 11], "x": 17.5, "y": 5.5} + ] + }, + "LAYOUT_ansi_wkl_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + + {"matrix": [6, 0], "x": 5.5, "y": 0}, + {"matrix": [6, 1], "x": 6.5, "y": 0}, + {"matrix": [6, 2], "x": 7.5, "y": 0}, + {"matrix": [6, 3], "x": 8.5, "y": 0}, + + {"matrix": [0, 5], "x": 9.75, "y": 0}, + {"matrix": [0, 6], "x": 10.75, "y": 0}, + {"matrix": [0, 7], "x": 11.75, "y": 0}, + {"matrix": [0, 8], "x": 12.75, "y": 0}, + + {"matrix": [7, 2], "x": 14, "y": 0}, + + {"matrix": [0, 9], "x": 15.5, "y": 0}, + {"matrix": [0, 10], "x": 16.5, "y": 0}, + {"matrix": [0, 11], "x": 17.5, "y": 0}, + {"matrix": [0, 12], "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": [6, 4], "x": 5, "y": 1.5}, + {"matrix": [6, 5], "x": 6, "y": 1.5}, + {"matrix": [6, 6], "x": 7, "y": 1.5}, + {"matrix": [6, 7], "x": 8, "y": 1.5}, + {"matrix": [1, 5], "x": 9, "y": 1.5}, + {"matrix": [1, 6], "x": 10, "y": 1.5}, + {"matrix": [1, 7], "x": 11, "y": 1.5}, + {"matrix": [1, 8], "x": 12, "y": 1.5}, + {"matrix": [7, 0], "x": 13, "y": 1.5}, + {"matrix": [7, 1], "x": 14, "y": 1.5}, + + {"matrix": [1, 9], "x": 15.5, "y": 1.5}, + {"matrix": [1, 10], "x": 16.5, "y": 1.5}, + {"matrix": [1, 11], "x": 17.5, "y": 1.5}, + {"matrix": [1, 12], "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": [6, 8], "x": 5.5, "y": 2.5}, + {"matrix": [6, 9], "x": 6.5, "y": 2.5}, + {"matrix": [6, 10], "x": 7.5, "y": 2.5}, + {"matrix": [6, 11], "x": 8.5, "y": 2.5}, + {"matrix": [2, 5], "x": 9.5, "y": 2.5}, + {"matrix": [2, 6], "x": 10.5, "y": 2.5}, + {"matrix": [2, 7], "x": 11.5, "y": 2.5}, + {"matrix": [2, 8], "x": 12.5, "y": 2.5}, + {"matrix": [7, 3], "x": 13.5, "y": 2.5, "w": 1.5}, + + {"matrix": [2, 9], "x": 15.5, "y": 2.5}, + {"matrix": [2, 10], "x": 16.5, "y": 2.5}, + {"matrix": [2, 11], "x": 17.5, "y": 2.5}, + {"matrix": [2, 12], "x": 18.5, "y": 2.5, "h": 2}, + + {"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": [6, 12], "x": 5.75, "y": 3.5}, + {"matrix": [7, 5], "x": 6.75, "y": 3.5}, + {"matrix": [7, 6], "x": 7.75, "y": 3.5}, + {"matrix": [7, 7], "x": 8.75, "y": 3.5}, + {"matrix": [3, 5], "x": 9.75, "y": 3.5}, + {"matrix": [3, 6], "x": 10.75, "y": 3.5}, + {"matrix": [3, 7], "x": 11.75, "y": 3.5}, + {"matrix": [3, 8], "x": 12.75, "y": 3.5, "w": 2.25}, + + {"matrix": [3, 9], "x": 15.5, "y": 3.5}, + {"matrix": [3, 10], "x": 16.5, "y": 3.5}, + {"matrix": [3, 11], "x": 17.5, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [7, 8], "x": 5.25, "y": 4.5}, + {"matrix": [7, 9], "x": 6.25, "y": 4.5}, + {"matrix": [7, 10], "x": 7.25, "y": 4.5}, + {"matrix": [7, 11], "x": 8.25, "y": 4.5}, + {"matrix": [4, 5], "x": 9.25, "y": 4.5}, + {"matrix": [4, 6], "x": 10.25, "y": 4.5}, + {"matrix": [4, 7], "x": 11.25, "y": 4.5}, + {"matrix": [4, 8], "x": 12.25, "y": 4.5, "w": 1.75}, + + {"matrix": [7, 4], "x": 14.25, "y": 4.75}, + + {"matrix": [4, 9], "x": 15.5, "y": 4.5}, + {"matrix": [4, 10], "x": 16.5, "y": 4.5}, + {"matrix": [4, 11], "x": 17.5, "y": 4.5}, + {"matrix": [4, 12], "x": 18.5, "y": 4.5, "h": 2}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"matrix": [5, 2], "x": 1.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 9], "x": 3, "y": 5.5, "w": 7}, + {"matrix": [5, 5], "x": 10, "y": 5.5, "w": 1.5}, + {"matrix": [5, 7], "x": 11.5, "y": 5.5, "w": 1.5}, + + {"matrix": [5, 8], "x": 13.25, "y": 5.75}, + {"matrix": [5, 3], "x": 14.25, "y": 5.75}, + {"matrix": [5, 4], "x": 15.25, "y": 5.75}, + + {"matrix": [5, 10], "x": 16.5, "y": 5.5}, + {"matrix": [5, 11], "x": 17.5, "y": 5.5} + ] + }, "LAYOUT_iso": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, @@ -286,7 +768,7 @@ {"matrix": [5, 11], "x": 17.5, "y": 5.5} ] }, - "LAYOUT_all": { + "LAYOUT_iso_split_bs": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, @@ -346,12 +828,10 @@ {"matrix": [2, 6], "x": 10.5, "y": 2.5}, {"matrix": [2, 7], "x": 11.5, "y": 2.5}, {"matrix": [2, 8], "x": 12.5, "y": 2.5}, - {"matrix": [7, 3], "x": 13.5, "y": 2.5, "w": 1.5}, - {"matrix": [2, 9], "x": 15.5, "y": 2.5}, {"matrix": [2, 10], "x": 16.5, "y": 2.5}, {"matrix": [2, 11], "x": 17.5, "y": 2.5}, - {"matrix": [2, 12], "x": 18.5, "y": 2.5}, + {"matrix": [2, 12], "x": 18.5, "y": 2.5, "h": 2}, {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, {"matrix": [3, 1], "x": 1.75, "y": 3.5}, @@ -365,12 +845,12 @@ {"matrix": [3, 5], "x": 9.75, "y": 3.5}, {"matrix": [3, 6], "x": 10.75, "y": 3.5}, {"matrix": [3, 7], "x": 11.75, "y": 3.5}, - {"matrix": [3, 8], "x": 12.75, "y": 3.5, "w": 2.25}, + {"matrix": [7, 3], "x": 12.75, "y": 3.5}, + {"matrix": [3, 8], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, {"matrix": [3, 9], "x": 15.5, "y": 3.5}, {"matrix": [3, 10], "x": 16.5, "y": 3.5}, {"matrix": [3, 11], "x": 17.5, "y": 3.5}, - {"matrix": [3, 12], "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}, @@ -391,7 +871,7 @@ {"matrix": [4, 9], "x": 15.5, "y": 4.5}, {"matrix": [4, 10], "x": 16.5, "y": 4.5}, {"matrix": [4, 11], "x": 17.5, "y": 4.5}, - {"matrix": [4, 12], "x": 18.5, "y": 4.5}, + {"matrix": [4, 12], "x": 18.5, "y": 4.5, "h": 2}, {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, {"matrix": [5, 1], "x": 1.25, "y": 5.5}, @@ -406,8 +886,244 @@ {"matrix": [5, 4], "x": 15.25, "y": 5.75}, {"matrix": [5, 10], "x": 16.5, "y": 5.5}, - {"matrix": [5, 11], "x": 17.5, "y": 5.5}, - {"matrix": [5, 12], "x": 18.5, "y": 5.5} + {"matrix": [5, 11], "x": 17.5, "y": 5.5} + ] + }, + "LAYOUT_iso_wkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + + {"matrix": [6, 0], "x": 5.5, "y": 0}, + {"matrix": [6, 1], "x": 6.5, "y": 0}, + {"matrix": [6, 2], "x": 7.5, "y": 0}, + {"matrix": [6, 3], "x": 8.5, "y": 0}, + + {"matrix": [0, 5], "x": 9.75, "y": 0}, + {"matrix": [0, 6], "x": 10.75, "y": 0}, + {"matrix": [0, 7], "x": 11.75, "y": 0}, + {"matrix": [0, 8], "x": 12.75, "y": 0}, + + {"matrix": [7, 2], "x": 14, "y": 0}, + + {"matrix": [0, 9], "x": 15.5, "y": 0}, + {"matrix": [0, 10], "x": 16.5, "y": 0}, + {"matrix": [0, 11], "x": 17.5, "y": 0}, + {"matrix": [0, 12], "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": [6, 4], "x": 5, "y": 1.5}, + {"matrix": [6, 5], "x": 6, "y": 1.5}, + {"matrix": [6, 6], "x": 7, "y": 1.5}, + {"matrix": [6, 7], "x": 8, "y": 1.5}, + {"matrix": [1, 5], "x": 9, "y": 1.5}, + {"matrix": [1, 6], "x": 10, "y": 1.5}, + {"matrix": [1, 7], "x": 11, "y": 1.5}, + {"matrix": [1, 8], "x": 12, "y": 1.5}, + {"matrix": [7, 1], "x": 13, "y": 1.5, "w": 2}, + + {"matrix": [1, 9], "x": 15.5, "y": 1.5}, + {"matrix": [1, 10], "x": 16.5, "y": 1.5}, + {"matrix": [1, 11], "x": 17.5, "y": 1.5}, + {"matrix": [1, 12], "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": [6, 8], "x": 5.5, "y": 2.5}, + {"matrix": [6, 9], "x": 6.5, "y": 2.5}, + {"matrix": [6, 10], "x": 7.5, "y": 2.5}, + {"matrix": [6, 11], "x": 8.5, "y": 2.5}, + {"matrix": [2, 5], "x": 9.5, "y": 2.5}, + {"matrix": [2, 6], "x": 10.5, "y": 2.5}, + {"matrix": [2, 7], "x": 11.5, "y": 2.5}, + {"matrix": [2, 8], "x": 12.5, "y": 2.5}, + {"matrix": [2, 9], "x": 15.5, "y": 2.5}, + {"matrix": [2, 10], "x": 16.5, "y": 2.5}, + {"matrix": [2, 11], "x": 17.5, "y": 2.5}, + {"matrix": [2, 12], "x": 18.5, "y": 2.5, "h": 2}, + + {"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": [6, 12], "x": 5.75, "y": 3.5}, + {"matrix": [7, 5], "x": 6.75, "y": 3.5}, + {"matrix": [7, 6], "x": 7.75, "y": 3.5}, + {"matrix": [7, 7], "x": 8.75, "y": 3.5}, + {"matrix": [3, 5], "x": 9.75, "y": 3.5}, + {"matrix": [3, 6], "x": 10.75, "y": 3.5}, + {"matrix": [3, 7], "x": 11.75, "y": 3.5}, + {"matrix": [7, 3], "x": 12.75, "y": 3.5}, + {"matrix": [3, 8], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + + {"matrix": [3, 9], "x": 15.5, "y": 3.5}, + {"matrix": [3, 10], "x": 16.5, "y": 3.5}, + {"matrix": [3, 11], "x": 17.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": [7, 8], "x": 5.25, "y": 4.5}, + {"matrix": [7, 9], "x": 6.25, "y": 4.5}, + {"matrix": [7, 10], "x": 7.25, "y": 4.5}, + {"matrix": [7, 11], "x": 8.25, "y": 4.5}, + {"matrix": [4, 5], "x": 9.25, "y": 4.5}, + {"matrix": [4, 6], "x": 10.25, "y": 4.5}, + {"matrix": [4, 7], "x": 11.25, "y": 4.5}, + {"matrix": [4, 8], "x": 12.25, "y": 4.5, "w": 1.75}, + + {"matrix": [7, 4], "x": 14.25, "y": 4.75}, + + {"matrix": [4, 9], "x": 15.5, "y": 4.5}, + {"matrix": [4, 10], "x": 16.5, "y": 4.5}, + {"matrix": [4, 11], "x": 17.5, "y": 4.5}, + {"matrix": [4, 12], "x": 18.5, "y": 4.5, "h": 2}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"matrix": [5, 2], "x": 1.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 9], "x": 3, "y": 5.5, "w": 7}, + {"matrix": [5, 5], "x": 10, "y": 5.5, "w": 1.5}, + {"matrix": [5, 7], "x": 11.5, "y": 5.5, "w": 1.5}, + + {"matrix": [5, 8], "x": 13.25, "y": 5.75}, + {"matrix": [5, 3], "x": 14.25, "y": 5.75}, + {"matrix": [5, 4], "x": 15.25, "y": 5.75}, + + {"matrix": [5, 10], "x": 16.5, "y": 5.5}, + {"matrix": [5, 11], "x": 17.5, "y": 5.5} + ] + }, + "LAYOUT_iso_wkl_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + + {"matrix": [6, 0], "x": 5.5, "y": 0}, + {"matrix": [6, 1], "x": 6.5, "y": 0}, + {"matrix": [6, 2], "x": 7.5, "y": 0}, + {"matrix": [6, 3], "x": 8.5, "y": 0}, + + {"matrix": [0, 5], "x": 9.75, "y": 0}, + {"matrix": [0, 6], "x": 10.75, "y": 0}, + {"matrix": [0, 7], "x": 11.75, "y": 0}, + {"matrix": [0, 8], "x": 12.75, "y": 0}, + + {"matrix": [7, 2], "x": 14, "y": 0}, + + {"matrix": [0, 9], "x": 15.5, "y": 0}, + {"matrix": [0, 10], "x": 16.5, "y": 0}, + {"matrix": [0, 11], "x": 17.5, "y": 0}, + {"matrix": [0, 12], "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": [6, 4], "x": 5, "y": 1.5}, + {"matrix": [6, 5], "x": 6, "y": 1.5}, + {"matrix": [6, 6], "x": 7, "y": 1.5}, + {"matrix": [6, 7], "x": 8, "y": 1.5}, + {"matrix": [1, 5], "x": 9, "y": 1.5}, + {"matrix": [1, 6], "x": 10, "y": 1.5}, + {"matrix": [1, 7], "x": 11, "y": 1.5}, + {"matrix": [1, 8], "x": 12, "y": 1.5}, + {"matrix": [7, 0], "x": 13, "y": 1.5}, + {"matrix": [7, 1], "x": 14, "y": 1.5}, + + {"matrix": [1, 9], "x": 15.5, "y": 1.5}, + {"matrix": [1, 10], "x": 16.5, "y": 1.5}, + {"matrix": [1, 11], "x": 17.5, "y": 1.5}, + {"matrix": [1, 12], "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": [6, 8], "x": 5.5, "y": 2.5}, + {"matrix": [6, 9], "x": 6.5, "y": 2.5}, + {"matrix": [6, 10], "x": 7.5, "y": 2.5}, + {"matrix": [6, 11], "x": 8.5, "y": 2.5}, + {"matrix": [2, 5], "x": 9.5, "y": 2.5}, + {"matrix": [2, 6], "x": 10.5, "y": 2.5}, + {"matrix": [2, 7], "x": 11.5, "y": 2.5}, + {"matrix": [2, 8], "x": 12.5, "y": 2.5}, + {"matrix": [2, 9], "x": 15.5, "y": 2.5}, + {"matrix": [2, 10], "x": 16.5, "y": 2.5}, + {"matrix": [2, 11], "x": 17.5, "y": 2.5}, + {"matrix": [2, 12], "x": 18.5, "y": 2.5, "h": 2}, + + {"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": [6, 12], "x": 5.75, "y": 3.5}, + {"matrix": [7, 5], "x": 6.75, "y": 3.5}, + {"matrix": [7, 6], "x": 7.75, "y": 3.5}, + {"matrix": [7, 7], "x": 8.75, "y": 3.5}, + {"matrix": [3, 5], "x": 9.75, "y": 3.5}, + {"matrix": [3, 6], "x": 10.75, "y": 3.5}, + {"matrix": [3, 7], "x": 11.75, "y": 3.5}, + {"matrix": [7, 3], "x": 12.75, "y": 3.5}, + {"matrix": [3, 8], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + + {"matrix": [3, 9], "x": 15.5, "y": 3.5}, + {"matrix": [3, 10], "x": 16.5, "y": 3.5}, + {"matrix": [3, 11], "x": 17.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": [7, 8], "x": 5.25, "y": 4.5}, + {"matrix": [7, 9], "x": 6.25, "y": 4.5}, + {"matrix": [7, 10], "x": 7.25, "y": 4.5}, + {"matrix": [7, 11], "x": 8.25, "y": 4.5}, + {"matrix": [4, 5], "x": 9.25, "y": 4.5}, + {"matrix": [4, 6], "x": 10.25, "y": 4.5}, + {"matrix": [4, 7], "x": 11.25, "y": 4.5}, + {"matrix": [4, 8], "x": 12.25, "y": 4.5, "w": 1.75}, + + {"matrix": [7, 4], "x": 14.25, "y": 4.75}, + + {"matrix": [4, 9], "x": 15.5, "y": 4.5}, + {"matrix": [4, 10], "x": 16.5, "y": 4.5}, + {"matrix": [4, 11], "x": 17.5, "y": 4.5}, + {"matrix": [4, 12], "x": 18.5, "y": 4.5, "h": 2}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"matrix": [5, 2], "x": 1.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 9], "x": 3, "y": 5.5, "w": 7}, + {"matrix": [5, 5], "x": 10, "y": 5.5, "w": 1.5}, + {"matrix": [5, 7], "x": 11.5, "y": 5.5, "w": 1.5}, + + {"matrix": [5, 8], "x": 13.25, "y": 5.75}, + {"matrix": [5, 3], "x": 14.25, "y": 5.75}, + {"matrix": [5, 4], "x": 15.25, "y": 5.75}, + + {"matrix": [5, 10], "x": 16.5, "y": 5.5}, + {"matrix": [5, 11], "x": 17.5, "y": 5.5} ] } } diff --git a/keyboards/kbdfans/kbd19x/matrix_diagram.md b/keyboards/kbdfans/kbd19x/matrix_diagram.md new file mode 100644 index 00000000000..5c7aa98557b --- /dev/null +++ b/keyboards/kbdfans/kbd19x/matrix_diagram.md @@ -0,0 +1,28 @@ +# Matrix Diagram for KBDfans KBD19x + +``` +┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┬───┐ +│00 ││01 │02 │03 │04 ││60 │61 │62 │63 ││05 │06 │07 │08 ││72 │ │09 │0A │0B │0C │ +└───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───────┐ +│10 │11 │12 │13 │14 │64 │65 │66 │67 │15 │16 │17 │18 │70 │71 │ │19 │1A │1B │1C │ │71 │ 2u Backspace +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┼───┤ └─┬─────┤ ┌───┐ +│20 │21 │22 │23 │24 │68 │69 │6A │6B │25 │26 │27 │28 │73 │ │29 │2A │2B │2C │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├───┼───┼───┼───┤ ┌──┴┐38 │ ISO Enter │2C │ 2u Numpad Plus +│30 │31 │32 │33 │34 │6C │75 │76 │77 │35 │36 │37 │38 │ │39 │3A │3B │3C │ │73 │ │ │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘ ├───┼───┼───┼───┤ └───┴────┘ ├───┤ +│40 │41 │42 │43 │44 │78 │79 │7A │7B │45 │46 │47 │48 │┌───┐│49 │4A │4B │4C │ │ │ +├────┼───┼───┴┬──┴───┴───┴───┴───┴───┴─┬─┴─┬─┴─┬─┴──┬───┘│74 │└───┼───┼───┼───┤ │4C │ 2u Numpad Enter +│50 │51 │52 │59 │55 │56 │57 │┌───┼───┼───┐│5A │5B │5C │ │ │ +└────┴───┴────┴────────────────────────┴───┴───┴────┘│58 │53 │54 │└───┴───┴───┘ └───┘ + └───┴───┴───┘ +┌────────┐ +│40 │ 2.25u LShift +└────────┘ +┌────┬───┬────┬───────────────────────┬────┬───┬────┐ +│50 │51 │52 │59 │55 │56 │57 │ 6u Space +└────┴───┴────┴───────────────────────┴────┴───┴────┘ +┌─────┬─────┬───────────────────────────┬─────┬─────┐ +│50 │52 │59 │55 │57 │ WKL (7u Space) +└─────┴─────┴───────────────────────────┴─────┴─────┘ +``` From 3e1ac7a38fa4e6885053a762bc75f7c4e068eccb Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sun, 10 Mar 2024 22:24:17 +1100 Subject: [PATCH 7/7] Fixes for encoder abstraction. (#23195) --- quantum/encoder.c | 92 ++++++++++++++------ quantum/encoder.h | 13 ++- quantum/split_common/transaction_id_define.h | 2 +- quantum/split_common/transactions.c | 32 +++++-- 4 files changed, 101 insertions(+), 38 deletions(-) diff --git a/quantum/encoder.c b/quantum/encoder.c index 735eb1cd71f..0a48ac9a07b 100644 --- a/quantum/encoder.c +++ b/quantum/encoder.c @@ -15,34 +15,39 @@ __attribute__((weak)) bool should_process_encoder(void) { } static encoder_events_t encoder_events; +static bool signal_queue_drain = false; void encoder_init(void) { memset(&encoder_events, 0, sizeof(encoder_events)); encoder_driver_init(); } -static bool encoder_handle_queue(void) { - bool changed = false; - while (encoder_events.tail != encoder_events.head) { - encoder_event_t event = encoder_events.queue[encoder_events.tail]; - encoder_events.tail = (encoder_events.tail + 1) % MAX_QUEUED_ENCODER_EVENTS; +static void encoder_queue_drain(void) { + encoder_events.tail = encoder_events.head; + encoder_events.dequeued = encoder_events.enqueued; +} +static bool encoder_handle_queue(void) { + bool changed = false; + uint8_t index; + bool clockwise; + while (encoder_dequeue_event(&index, &clockwise)) { #ifdef ENCODER_MAP_ENABLE // The delays below cater for Windows and its wonderful requirements. - action_exec(event.clockwise ? MAKE_ENCODER_CW_EVENT(event.index, true) : MAKE_ENCODER_CCW_EVENT(event.index, true)); + action_exec(clockwise ? MAKE_ENCODER_CW_EVENT(index, true) : MAKE_ENCODER_CCW_EVENT(index, true)); # if ENCODER_MAP_KEY_DELAY > 0 wait_ms(ENCODER_MAP_KEY_DELAY); # endif // ENCODER_MAP_KEY_DELAY > 0 - action_exec(event.clockwise ? MAKE_ENCODER_CW_EVENT(event.index, false) : MAKE_ENCODER_CCW_EVENT(event.index, false)); + action_exec(clockwise ? MAKE_ENCODER_CW_EVENT(index, false) : MAKE_ENCODER_CCW_EVENT(index, false)); # if ENCODER_MAP_KEY_DELAY > 0 wait_ms(ENCODER_MAP_KEY_DELAY); # endif // ENCODER_MAP_KEY_DELAY > 0 #else // ENCODER_MAP_ENABLE - encoder_update_kb(event.index, event.clockwise ? true : false); + encoder_update_kb(index, clockwise); #endif // ENCODER_MAP_ENABLE @@ -61,6 +66,11 @@ bool encoder_task(void) { } #endif // SPLIT_KEYBOARD + if (signal_queue_drain) { + signal_queue_drain = false; + encoder_queue_drain(); + } + // Let the encoder driver produce events encoder_driver_task(); @@ -72,40 +82,72 @@ bool encoder_task(void) { return changed; } -bool encoder_queue_event(uint8_t index, bool clockwise) { +bool encoder_queue_full_advanced(encoder_events_t *events) { + return events->head == (events->tail - 1) % MAX_QUEUED_ENCODER_EVENTS; +} + +bool encoder_queue_full(void) { + return encoder_queue_full_advanced(&encoder_events); +} + +bool encoder_queue_empty_advanced(encoder_events_t *events) { + return events->head == events->tail; +} + +bool encoder_queue_empty(void) { + return encoder_queue_empty_advanced(&encoder_events); +} + +bool encoder_queue_event_advanced(encoder_events_t *events, uint8_t index, bool clockwise) { // Drop out if we're full - if ((encoder_events.head + 1) % MAX_QUEUED_ENCODER_EVENTS == encoder_events.tail) { + if (encoder_queue_full_advanced(events)) { return false; } // Append the event - encoder_event_t new_event = {.index = index, .clockwise = clockwise ? 1 : 0}; - encoder_events.queue[encoder_events.head] = new_event; + encoder_event_t new_event = {.index = index, .clockwise = clockwise ? 1 : 0}; + events->queue[events->head] = new_event; // Increment the head index - encoder_events.head = (encoder_events.head + 1) % MAX_QUEUED_ENCODER_EVENTS; + events->head = (events->head + 1) % MAX_QUEUED_ENCODER_EVENTS; + events->enqueued++; return true; } +bool encoder_dequeue_event_advanced(encoder_events_t *events, uint8_t *index, bool *clockwise) { + if (encoder_queue_empty_advanced(events)) { + return false; + } + + // Retrieve the event + encoder_event_t event = events->queue[events->tail]; + *index = event.index; + *clockwise = event.clockwise; + + // Increment the tail index + events->tail = (events->tail + 1) % MAX_QUEUED_ENCODER_EVENTS; + events->dequeued++; + + return true; +} + +bool encoder_queue_event(uint8_t index, bool clockwise) { + return encoder_queue_event_advanced(&encoder_events, index, clockwise); +} + +bool encoder_dequeue_event(uint8_t *index, bool *clockwise) { + return encoder_dequeue_event_advanced(&encoder_events, index, clockwise); +} + void encoder_retrieve_events(encoder_events_t *events) { memcpy(events, &encoder_events, sizeof(encoder_events)); } -#ifdef SPLIT_KEYBOARD -void encoder_set_tail_index(uint8_t tail_index) { - encoder_events.tail = tail_index; +void encoder_signal_queue_drain(void) { + signal_queue_drain = true; } -void encoder_handle_slave_events(encoder_events_t *events) { - while (events->tail != events->head) { - encoder_event_t event = events->queue[events->tail]; - events->tail = (events->tail + 1) % MAX_QUEUED_ENCODER_EVENTS; - encoder_queue_event(event.index, event.clockwise ? true : false); - } -} -#endif // SPLIT_KEYBOARD - __attribute__((weak)) bool encoder_update_user(uint8_t index, bool clockwise) { return true; } diff --git a/quantum/encoder.h b/quantum/encoder.h index 90414a43a06..317a91f1da5 100644 --- a/quantum/encoder.h +++ b/quantum/encoder.h @@ -29,6 +29,7 @@ __attribute__((weak)) bool should_process_encoder(void); void encoder_init(void); bool encoder_task(void); bool encoder_queue_event(uint8_t index, bool clockwise); +bool encoder_dequeue_event(uint8_t *index, bool *clockwise); bool encoder_update_kb(uint8_t index, bool clockwise); bool encoder_update_user(uint8_t index, bool clockwise); @@ -82,6 +83,8 @@ typedef struct encoder_event_t { } encoder_event_t; typedef struct encoder_events_t { + uint8_t enqueued; + uint8_t dequeued; uint8_t head; uint8_t tail; encoder_event_t queue[MAX_QUEUED_ENCODER_EVENTS]; @@ -90,10 +93,12 @@ typedef struct encoder_events_t { // Get the current queued events void encoder_retrieve_events(encoder_events_t *events); -# ifdef SPLIT_KEYBOARD -void encoder_set_tail_index(uint8_t tail_index); -void encoder_handle_slave_events(encoder_events_t *events); -# endif // SPLIT_KEYBOARD +// Encoder event queue management +bool encoder_queue_event_advanced(encoder_events_t *events, uint8_t index, bool clockwise); +bool encoder_dequeue_event_advanced(encoder_events_t *events, uint8_t *index, bool *clockwise); + +// Reset the queue to be empty +void encoder_signal_queue_drain(void); # ifdef ENCODER_MAP_ENABLE # define NUM_DIRECTIONS 2 diff --git a/quantum/split_common/transaction_id_define.h b/quantum/split_common/transaction_id_define.h index 05b3bf7b625..5bfbe2aec79 100644 --- a/quantum/split_common/transaction_id_define.h +++ b/quantum/split_common/transaction_id_define.h @@ -31,7 +31,7 @@ enum serial_transaction_id { #ifdef ENCODER_ENABLE GET_ENCODERS_CHECKSUM, GET_ENCODERS_DATA, - PUT_ENCODER_TAIL, + CMD_ENCODER_DRAIN, #endif // ENCODER_ENABLE #ifndef DISABLE_SYNC_TIMER diff --git a/quantum/split_common/transactions.c b/quantum/split_common/transactions.c index 2cfa83e7a3f..33bc9e9f575 100644 --- a/quantum/split_common/transactions.c +++ b/quantum/split_common/transactions.c @@ -14,6 +14,7 @@ * along with this program. If not, see . */ +#include #include #include @@ -80,8 +81,12 @@ { 0, 0, sizeof_member(split_shared_memory_t, member), offsetof(split_shared_memory_t, member), cb } #define trans_target2initiator_initializer(member) trans_target2initiator_initializer_cb(member, NULL) +#define trans_initiator2target_cb(cb) \ + { 0, 0, 0, 0, cb } + #define transport_write(id, data, length) transport_execute_transaction(id, data, length, NULL, 0) #define transport_read(id, data, length) transport_execute_transaction(id, NULL, 0, data, length) +#define transport_exec(id) transport_execute_transaction(id, NULL, 0, NULL, 0) #if defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) // Forward-declare the RPC callback handlers @@ -234,14 +239,26 @@ static void master_matrix_handlers_slave(matrix_row_t master_matrix[], matrix_ro #ifdef ENCODER_ENABLE static bool encoder_handlers_master(matrix_row_t master_matrix[], matrix_row_t slave_matrix[]) { - static uint32_t last_update = 0; + static uint32_t last_update = 0; + static uint8_t last_checksum = 0; encoder_events_t temp_events; bool okay = read_if_checksum_mismatch(GET_ENCODERS_CHECKSUM, GET_ENCODERS_DATA, &last_update, &temp_events, &split_shmem->encoders.events, sizeof(temp_events)); if (okay) { - encoder_handle_slave_events(&split_shmem->encoders.events); - transport_write(PUT_ENCODER_TAIL, &split_shmem->encoders.events.tail, sizeof(split_shmem->encoders.events.tail)); - split_shmem->encoders.checksum = crc8(&split_shmem->encoders.events, sizeof(split_shmem->encoders.events)); + if (last_checksum != split_shmem->encoders.checksum) { + bool actioned = false; + uint8_t index; + bool clockwise; + while (okay && encoder_dequeue_event_advanced(&split_shmem->encoders.events, &index, &clockwise)) { + okay &= encoder_queue_event(index, clockwise); + actioned = true; + } + + if (actioned) { + okay &= transport_exec(CMD_ENCODER_DRAIN); + } + last_checksum = split_shmem->encoders.checksum; + } } return okay; } @@ -253,9 +270,8 @@ static void encoder_handlers_slave(matrix_row_t master_matrix[], matrix_row_t sl split_shmem->encoders.checksum = crc8(&split_shmem->encoders.events, sizeof(split_shmem->encoders.events)); } -static void encoder_handlers_slave_reset(uint8_t initiator2target_buffer_size, const void *initiator2target_buffer, uint8_t target2initiator_buffer_size, void *target2initiator_buffer) { - uint8_t tail_index = *(uint8_t *)initiator2target_buffer; - encoder_set_tail_index(tail_index); +static void encoder_handlers_slave_drain(uint8_t initiator2target_buffer_size, const void *initiator2target_buffer, uint8_t target2initiator_buffer_size, void *target2initiator_buffer) { + encoder_signal_queue_drain(); } // clang-format off @@ -264,7 +280,7 @@ static void encoder_handlers_slave_reset(uint8_t initiator2target_buffer_size, c # define TRANSACTIONS_ENCODERS_REGISTRATIONS \ [GET_ENCODERS_CHECKSUM] = trans_target2initiator_initializer(encoders.checksum), \ [GET_ENCODERS_DATA] = trans_target2initiator_initializer(encoders.events), \ - [PUT_ENCODER_TAIL] = trans_initiator2target_initializer_cb(encoders.events.tail, encoder_handlers_slave_reset), + [CMD_ENCODER_DRAIN] = trans_initiator2target_cb(encoder_handlers_slave_drain), // clang-format on #else // ENCODER_ENABLE