diff --git a/.github/labeler.yml b/.github/labeler.yml
index 07a6c451cff8..95eaa49252dd 100644
--- a/.github/labeler.yml
+++ b/.github/labeler.yml
@@ -40,3 +40,7 @@ translation:
- docs/ru-ru/**/*
CI:
- .github/**/*
+dd:
+ - data/constants/**/*
+ - data/mappings/**/*
+ - data/schemas/**/*
diff --git a/.gitignore b/.gitignore
index 13ed2960352a..e9e7b27e6c61 100644
--- a/.gitignore
+++ b/.gitignore
@@ -95,6 +95,7 @@ secrets.tar
# Python things
__pycache__
.python-version
+.venv
# Prerequisites for updating ChibiOS
/util/fmpp*
diff --git a/keyboards/1upkeyboards/1upsuper16v3/config.h b/keyboards/1upkeyboards/1upsuper16v3/config.h
new file mode 100644
index 000000000000..41e1679d4887
--- /dev/null
+++ b/keyboards/1upkeyboards/1upsuper16v3/config.h
@@ -0,0 +1,22 @@
+/* Copyright 2023 ziptyze
+ *
+ * This 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 RGB_MATRIX_LED_COUNT 48
+#define RGB_MATRIX_KEYPRESSES // reacts to keypresses
+#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
+#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
diff --git a/keyboards/1upkeyboards/1upsuper16v3/info.json b/keyboards/1upkeyboards/1upsuper16v3/info.json
new file mode 100644
index 000000000000..b11654a9424a
--- /dev/null
+++ b/keyboards/1upkeyboards/1upsuper16v3/info.json
@@ -0,0 +1,164 @@
+{
+ "manufacturer": "1upkeyboards",
+ "keyboard_name": "1upsuper16v3",
+ "maintainer": "ziptyze",
+ "bootloader": "rp2040",
+ "dynamic_keymap": {
+ "layer_count": 10
+ },
+ "encoder": {
+ "rotary": [
+ {"pin_a": "GP20", "pin_b": "GP21"},
+ {"pin_a": "GP25", "pin_b": "GP26"},
+ {"pin_a": "GP2", "pin_b": "GP3"},
+ {"pin_a": "GP6", "pin_b": "GP7"}
+ ]
+ },
+ "features": {
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "encoder": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": false,
+ "rgb_matrix": true
+ },
+ "matrix_pins": {
+ "direct": [
+ ["GP23", "GP24", "GP4", "GP5"],
+ ["GP19", "GP27", "GP1", "GP8"],
+ ["GP18", "GP28", "GP0", "GP9"],
+ ["GP17", "GP16", "GP15", "GP11"]
+ ]
+ },
+ "processor": "RP2040",
+ "rgb_matrix": {
+ "animations": {
+ "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_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": [
+ {"x": 99, "y": 1, "flags": 2},
+ {"x": 70, "y": 1, "flags": 2},
+ {"x": 42, "y": 1, "flags": 2},
+ {"x": 14, "y": 1, "flags": 2},
+ {"x": 4, "y": 4, "flags": 2},
+ {"x": 4, "y": 12, "flags": 2},
+ {"matrix": [0, 0], "x": 28, "y": 8, "flags": 4},
+ {"matrix": [0, 1], "x": 84, "y": 8, "flags": 4},
+ {"x": 4, "y": 20, "flags": 2},
+ {"x": 4, "y": 28, "flags": 2},
+ {"matrix": [1, 0], "x": 28, "y": 24, "flags": 4},
+ {"matrix": [1, 1], "x": 84, "y": 24, "flags": 4},
+ {"x": 4, "y": 36, "flags": 2},
+ {"x": 4, "y": 44, "flags": 2},
+ {"matrix": [2, 0], "x": 28, "y": 40, "flags": 4},
+ {"matrix": [2, 1], "x": 84, "y": 40, "flags": 4},
+ {"x": 4, "y": 52, "flags": 2},
+ {"x": 4, "y": 60, "flags": 2},
+ {"x": 14, "y": 63, "flags": 2},
+ {"matrix": [3, 0], "x": 28, "y": 56, "flags": 4},
+ {"x": 42, "y": 63, "flags": 2},
+ {"x": 70, "y": 63, "flags": 2},
+ {"matrix": [3, 1], "x": 84, "y": 56, "flags": 4},
+ {"x": 99, "y": 63, "flags": 2},
+ {"x": 126, "y": 63, "flags": 2},
+ {"matrix": [3, 2], "x": 140, "y": 56, "flags": 4},
+ {"x": 154, "y": 63, "flags": 2},
+ {"x": 182, "y": 63, "flags": 2},
+ {"matrix": [3, 3], "x": 196, "y": 56, "flags": 4},
+ {"x": 210, "y": 63, "flags": 2},
+ {"x": 220, "y": 60, "flags": 2},
+ {"x": 220, "y": 52, "flags": 2},
+ {"x": 220, "y": 44, "flags": 2},
+ {"matrix": [2, 3], "x": 196, "y": 40, "flags": 4},
+ {"matrix": [2, 2], "x": 140, "y": 40, "flags": 4},
+ {"x": 220, "y": 36, "flags": 2},
+ {"x": 220, "y": 28, "flags": 2},
+ {"matrix": [1, 3], "x": 196, "y": 24, "flags": 4},
+ {"matrix": [1, 2], "x": 140, "y": 24, "flags": 4},
+ {"x": 220, "y": 20, "flags": 2},
+ {"x": 220, "y": 12, "flags": 2},
+ {"matrix": [0, 3], "x": 196, "y": 8, "flags": 4},
+ {"matrix": [0, 2], "x": 140, "y": 8, "flags": 4},
+ {"x": 220, "y": 4, "flags": 2},
+ {"x": 210, "y": 1, "flags": 2},
+ {"x": 182, "y": 1, "flags": 2},
+ {"x": 154, "y": 1, "flags": 2},
+ {"x": 126, "y": 1, "flags": 2}
+ ]
+ },
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x5610",
+ "vid": "0x6F75"
+ },
+ "ws2812": {
+ "driver": "vendor",
+ "pin": "GP29"
+ },
+ "community_layouts": ["ortho_4x4"],
+ "layouts": {
+ "LAYOUT_ortho_4x4": {
+ "layout": [
+ {"label": "00", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "01", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "02", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "03", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "10", "matrix": [1, 0], "x": 0, "y": 1},
+ {"label": "11", "matrix": [1, 1], "x": 1, "y": 1},
+ {"label": "12", "matrix": [1, 2], "x": 2, "y": 1},
+ {"label": "13", "matrix": [1, 3], "x": 3, "y": 1},
+ {"label": "20", "matrix": [2, 0], "x": 0, "y": 2},
+ {"label": "21", "matrix": [2, 1], "x": 1, "y": 2},
+ {"label": "22", "matrix": [2, 2], "x": 2, "y": 2},
+ {"label": "23", "matrix": [2, 3], "x": 3, "y": 2},
+ {"label": "30", "matrix": [3, 0], "x": 0, "y": 3},
+ {"label": "31", "matrix": [3, 1], "x": 1, "y": 3},
+ {"label": "32", "matrix": [3, 2], "x": 2, "y": 3},
+ {"label": "33", "matrix": [3, 3], "x": 3, "y": 3}
+ ]
+ }
+ }
+}
diff --git a/keyboards/1upkeyboards/1upsuper16v3/keymaps/default/keymap.c b/keyboards/1upkeyboards/1upsuper16v3/keymaps/default/keymap.c
new file mode 100644
index 000000000000..e7be96bd8132
--- /dev/null
+++ b/keyboards/1upkeyboards/1upsuper16v3/keymaps/default/keymap.c
@@ -0,0 +1,39 @@
+/* Copyright 2023 ziptyze
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_ortho_4x4(
+ KC_P7, KC_P8, KC_P9, KC_PMNS,
+ KC_P4, KC_P5, KC_P6, KC_PPLS,
+ KC_P1, KC_P2, KC_P3, KC_PSLS,
+ MO(1), KC_P0, KC_PDOT, KC_PENT
+ ),
+ [1] = LAYOUT_ortho_4x4(
+ RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI,
+ RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD,
+ RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT
+ )
+};
+
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+ [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+ [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }
+};
+#endif
diff --git a/keyboards/1upkeyboards/1upsuper16v3/keymaps/default/rules.mk b/keyboards/1upkeyboards/1upsuper16v3/keymaps/default/rules.mk
new file mode 100644
index 000000000000..ee325681483f
--- /dev/null
+++ b/keyboards/1upkeyboards/1upsuper16v3/keymaps/default/rules.mk
@@ -0,0 +1 @@
+ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/1upkeyboards/1upsuper16v3/keymaps/via/keymap.c b/keyboards/1upkeyboards/1upsuper16v3/keymaps/via/keymap.c
new file mode 100644
index 000000000000..e7be96bd8132
--- /dev/null
+++ b/keyboards/1upkeyboards/1upsuper16v3/keymaps/via/keymap.c
@@ -0,0 +1,39 @@
+/* Copyright 2023 ziptyze
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_ortho_4x4(
+ KC_P7, KC_P8, KC_P9, KC_PMNS,
+ KC_P4, KC_P5, KC_P6, KC_PPLS,
+ KC_P1, KC_P2, KC_P3, KC_PSLS,
+ MO(1), KC_P0, KC_PDOT, KC_PENT
+ ),
+ [1] = LAYOUT_ortho_4x4(
+ RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI,
+ RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD,
+ RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT
+ )
+};
+
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+ [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+ [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }
+};
+#endif
diff --git a/keyboards/1upkeyboards/1upsuper16v3/keymaps/via/rules.mk b/keyboards/1upkeyboards/1upsuper16v3/keymaps/via/rules.mk
new file mode 100644
index 000000000000..bf70b1f3e09f
--- /dev/null
+++ b/keyboards/1upkeyboards/1upsuper16v3/keymaps/via/rules.mk
@@ -0,0 +1,4 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
+
+ENCODER_MAP_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/1upkeyboards/1upsuper16v3/readme.md b/keyboards/1upkeyboards/1upsuper16v3/readme.md
new file mode 100644
index 000000000000..516459083226
--- /dev/null
+++ b/keyboards/1upkeyboards/1upsuper16v3/readme.md
@@ -0,0 +1,22 @@
+# 1upSuper16v3
+
+This keyboard is the Super16v3 from 1upkeyboards, a 4x4 macropad with the option for up to four encoders in the top row. Notable features include in-switch per-key addressable RGB LEDs and thirty two 1mm underglow RGB LEDs; for bright and smooth lighting effects. The Super16v3 utilises an rp2040 microcontroller, wired using direct pins.
+
+* Keyboard Maintainer: [ziptyze](https://github.com/ziptyze)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make 1upkeyboards/1upsuper16v3:default
+
+Flashing example for this keyboard:
+
+ make 1upkeyboards/1upsuper16v3:default:flash
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+## Bootloader
+
+Enter the bootloader in 2 ways:
+
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix. For this keyboard it is the top left button
+* **Physical reset button**: Hold the button on the back of the PCB and plug in the keyboard
diff --git a/keyboards/1upkeyboards/1upsuper16v3/rules.mk b/keyboards/1upkeyboards/1upsuper16v3/rules.mk
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/keyboards/abko/ak84bt/info.json b/keyboards/abko/ak84bt/info.json
index 657e17a90cbb..4660fb702481 100644
--- a/keyboards/abko/ak84bt/info.json
+++ b/keyboards/abko/ak84bt/info.json
@@ -126,23 +126,27 @@
"pid": "0x4321",
"vid": "0x7654"
},
+ "layout_aliases": {
+ "LAYOUT_75_ansi": "LAYOUT"
+ },
"layouts": {
- "LAYOUT_75_ansi": {
+ "LAYOUT": {
"layout": [
{"label": "ESC", "matrix": [0, 0], "x": 0, "y": 0},
- {"label": "F1", "matrix": [0, 2], "x": 2, "y": 0},
- {"label": "F2", "matrix": [0, 3], "x": 3, "y": 0},
- {"label": "F3", "matrix": [0, 4], "x": 4, "y": 0},
- {"label": "F4", "matrix": [0, 5], "x": 5, "y": 0},
- {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0},
- {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0},
- {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0},
- {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0},
- {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0},
- {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0},
- {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0},
- {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0},
- {"label": "END", "matrix": [0, 15], "x": 16.5, "y": 0},
+ {"label": "F1", "matrix": [0, 2], "x": 1.5, "y": 0},
+ {"label": "F2", "matrix": [0, 3], "x": 2.5, "y": 0},
+ {"label": "F3", "matrix": [0, 4], "x": 3.5, "y": 0},
+ {"label": "F4", "matrix": [0, 5], "x": 4.5, "y": 0},
+ {"label": "F5", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "F6", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "F7", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "F8", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": "F9", "matrix": [0, 10], "x": 10.5, "y": 0},
+ {"label": "F10", "matrix": [0, 11], "x": 11.5, "y": 0},
+ {"label": "F11", "matrix": [0, 12], "x": 12.5, "y": 0},
+ {"label": "F12", "matrix": [0, 13], "x": 13.5, "y": 0},
+ {"label": "END", "matrix": [0, 15], "x": 15, "y": 0},
+
{"label": "GRV", "matrix": [1, 0], "x": 0, "y": 1.25},
{"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25},
{"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25},
@@ -157,7 +161,8 @@
{"label": "MINS", "matrix": [1, 11], "x": 11, "y": 1.25},
{"label": "EQL", "matrix": [1, 12], "x": 12, "y": 1.25},
{"label": "BSPC", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
- {"label": "HOME", "matrix": [1, 14], "x": 16.5, "y": 1.25},
+ {"label": "HOME", "matrix": [1, 14], "x": 15, "y": 1.25},
+
{"label": "TAB", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
{"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25},
{"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25},
@@ -172,7 +177,8 @@
{"label": "LBRC", "matrix": [2, 11], "x": 11.5, "y": 2.25},
{"label": "RBRC", "matrix": [2, 12], "x": 12.5, "y": 2.25},
{"label": "BSLS", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
- {"label": "DEL", "matrix": [2, 14], "x": 16.5, "y": 2.25},
+ {"label": "DEL", "matrix": [2, 14], "x": 15, "y": 2.25},
+
{"label": "CAPS", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
{"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25},
{"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25},
@@ -185,8 +191,9 @@
{"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25},
{"label": "SCLN", "matrix": [3, 10], "x": 10.75, "y": 3.25},
{"label": "QUOT", "matrix": [3, 11], "x": 11.75, "y": 3.25},
- {"label": "ENT", "matrix": [3, 13], "x": 13.75, "y": 3.25, "w": 1.25},
- {"label": "PGUP", "matrix": [3, 14], "x": 16.5, "y": 3.25},
+ {"label": "ENT", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25},
+ {"label": "PGUP", "matrix": [3, 14], "x": 15, "y": 3.25},
+
{"label": "LSFT", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
{"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25},
{"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25},
@@ -199,18 +206,19 @@
{"label": "DOT", "matrix": [4, 10], "x": 10.25, "y": 4.25},
{"label": "SLSH", "matrix": [4, 11], "x": 11.25, "y": 4.25},
{"label": "RSFT", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75},
- {"label": "UP", "matrix": [4, 13], "x": 15.25, "y": 4.25},
- {"label": "PGDN", "matrix": [4, 14], "x": 16.5, "y": 4.25},
+ {"label": "UP", "matrix": [4, 13], "x": 14, "y": 4.25},
+ {"label": "PGDN", "matrix": [4, 14], "x": 15, "y": 4.25},
+
{"label": "LCTL", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
{"label": "LGUI", "matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
{"label": "LALT", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
{"label": "SPC", "matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
- {"label": "RALT", "matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25},
- {"label": "MO(1)", "matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25},
- {"label": "RCTL", "matrix": [5, 11], "x": 13, "y": 5.25, "w": 1.25},
- {"label": "LEFT", "matrix": [5, 12], "x": 14.25, "y": 5.25},
- {"label": "DOWN", "matrix": [5, 13], "x": 15.25, "y": 5.25},
- {"label": "RGHT", "matrix": [5, 14], "x": 16.5, "y": 5.25}
+ {"label": "RALT", "matrix": [5, 9], "x": 10, "y": 5.25},
+ {"label": "MO(1)", "matrix": [5, 10], "x": 11, "y": 5.25},
+ {"label": "RCTL", "matrix": [5, 11], "x": 12, "y": 5.25},
+ {"label": "LEFT", "matrix": [5, 12], "x": 13, "y": 5.25},
+ {"label": "DOWN", "matrix": [5, 13], "x": 14, "y": 5.25},
+ {"label": "RGHT", "matrix": [5, 14], "x": 15, "y": 5.25}
]
}
}
diff --git a/keyboards/abko/ak84bt/keymaps/default/keymap.c b/keyboards/abko/ak84bt/keymaps/default/keymap.c
index 6a57c4422a70..48fab8614b09 100644
--- a/keyboards/abko/ak84bt/keymaps/default/keymap.c
+++ b/keyboards/abko/ak84bt/keymaps/default/keymap.c
@@ -23,7 +23,7 @@ enum layer_names
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT_75_ansi(
+ [_BASE] = LAYOUT(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_END,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
@@ -31,7 +31,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FnLay), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
),
- [_FnLay] = LAYOUT_75_ansi(
+ [_FnLay] = LAYOUT(
QK_BOOT, KC_MY_COMPUTER, KC_WWW_HOME, KC_CALCULATOR, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_MAIL, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
diff --git a/keyboards/ah/haven65/info.json b/keyboards/ah/haven65/info.json
index 43214e50089c..1cdc337836e0 100644
--- a/keyboards/ah/haven65/info.json
+++ b/keyboards/ah/haven65/info.json
@@ -44,8 +44,14 @@
"twinkle": true
}
},
+ "layout_aliases": {
+ "LAYOUT": "LAYOUT_65_ansi_blocker"
+ },
+ "community_layouts": [
+ "65_ansi_blocker"
+ ],
"layouts": {
- "LAYOUT": {
+ "LAYOUT_65_ansi_blocker": {
"layout": [
{ "label": "Esc", "matrix":[0,0],"x": 0, "y": 0 },
{ "label": "1", "matrix":[0,1],"x": 1, "y": 0 },
diff --git a/keyboards/ah/haven65/keymaps/default/keymap.c b/keyboards/ah/haven65/keymaps/default/keymap.c
index 1d3e67b78bb3..e3c424072d42 100644
--- a/keyboards/ah/haven65/keymaps/default/keymap.c
+++ b/keyboards/ah/haven65/keymaps/default/keymap.c
@@ -4,7 +4,7 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT(
+ [0] = LAYOUT_65_ansi_blocker(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BACKSPACE, KC_HOME,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_DEL,
@@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
),
- [1] = LAYOUT(
+ [1] = LAYOUT_65_ansi_blocker(
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
diff --git a/keyboards/ah/haven65/keymaps/via/keymap.c b/keyboards/ah/haven65/keymaps/via/keymap.c
index c42231995fb1..e4de01e0e8bd 100644
--- a/keyboards/ah/haven65/keymaps/via/keymap.c
+++ b/keyboards/ah/haven65/keymaps/via/keymap.c
@@ -4,7 +4,7 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT(
+ [0] = LAYOUT_65_ansi_blocker(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BACKSPACE, KC_HOME,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_DEL,
@@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
),
- [1] = LAYOUT(
+ [1] = LAYOUT_65_ansi_blocker(
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
diff --git a/keyboards/ah/haven80/hotswap/info.json b/keyboards/ah/haven80/hotswap/info.json
index 4ec292ef9655..b73da1c5f4ce 100644
--- a/keyboards/ah/haven80/hotswap/info.json
+++ b/keyboards/ah/haven80/hotswap/info.json
@@ -9,8 +9,14 @@
"rows": ["F0", "F1", "F4", "F5", "F6", "B1", "B2", "B3", "D3", "D5", "F7"],
"cols": ["D0", "D1", "D2", "B0", "D4", "B4", "D6", "D7", "B5"]
},
+ "layout_aliases": {
+ "LAYOUT": "LAYOUT_tkl_f13_ansi_tsangan"
+ },
+ "community_layouts": [
+ "tkl_f13_ansi_tsangan"
+ ],
"layouts": {
- "LAYOUT": {
+ "LAYOUT_tkl_f13_ansi_tsangan": {
"layout": [
{ "label": "Esc", "matrix":[0,0],"x": 0, "y": 0 },
{ "label": "F1", "matrix":[0,1],"x": 1.25, "y": 0 },
@@ -21,90 +27,90 @@
{ "label": "F6", "matrix":[0,6],"x": 6.5, "y": 0 },
{ "label": "F7", "matrix":[0,7],"x": 7.5, "y": 0 },
{ "label": "F8", "matrix":[5,8],"x": 8.5, "y": 0 },
- { "label": "F9", "matrix":[5,7],"x": 9.5, "y": 0 },
+ { "label": "F9", "matrix":[5,7],"x": 9.75, "y": 0 },
{ "label": "F10", "matrix":[5,6],"x": 10.75, "y": 0 },
{ "label": "F11", "matrix":[5,5],"x": 11.75, "y": 0 },
{ "label": "F12", "matrix":[5,4],"x": 12.75, "y": 0 },
- { "label": "F13", "matrix":[5,3],"x": 13.75, "y": 0 },
+ { "label": "F13", "matrix":[5,3],"x": 14, "y": 0 },
{ "label": "Prtsc", "matrix":[5,2],"x": 15.25, "y": 0 },
{ "label": "Scrlk", "matrix":[5,1],"x": 16.25, "y": 0 },
{ "label": "Pause", "matrix":[5,0],"x": 17.25, "y": 0 },
- { "label": "~", "matrix":[1,0],"x": 0, "y": 1.5 },
- { "label": "1", "matrix":[1,1],"x": 1, "y": 1.5 },
- { "label": "2", "matrix":[1,2],"x": 2, "y": 1.5 },
- { "label": "3", "matrix":[1,3],"x": 3, "y": 1.5 },
- { "label": "4", "matrix":[1,4],"x": 4, "y": 1.5 },
- { "label": "5", "matrix":[1,5],"x": 5, "y": 1.5 },
- { "label": "6", "matrix":[1,6],"x": 6, "y": 1.5 },
- { "label": "7", "matrix":[1,7],"x": 7, "y": 1.5 },
- { "label": "8", "matrix":[1,8],"x": 8, "y": 1.5 },
- { "label": "9", "matrix":[6,8],"x": 9, "y": 1.5 },
- { "label": "0", "matrix":[6,7],"x": 10, "y": 1.5 },
- { "label": "-", "matrix":[6,6],"x": 11, "y": 1.5 },
- { "label": "=", "matrix":[6,5],"x": 12, "y": 1.5 },
- { "label": "backspace", "matrix":[6,4],"x": 13, "y": 1.5, "w": 2 },
- { "label": "insert", "matrix":[6,2],"x": 15.25, "y": 1.5 },
- { "label": "home", "matrix":[6,1],"x": 16.25, "y": 1.5 },
- { "label": "pg up", "matrix":[6,0],"x": 17.25, "y": 1.5 },
+ { "label": "~", "matrix":[1,0],"x": 0, "y": 1.25 },
+ { "label": "1", "matrix":[1,1],"x": 1, "y": 1.25 },
+ { "label": "2", "matrix":[1,2],"x": 2, "y": 1.25 },
+ { "label": "3", "matrix":[1,3],"x": 3, "y": 1.25 },
+ { "label": "4", "matrix":[1,4],"x": 4, "y": 1.25 },
+ { "label": "5", "matrix":[1,5],"x": 5, "y": 1.25 },
+ { "label": "6", "matrix":[1,6],"x": 6, "y": 1.25 },
+ { "label": "7", "matrix":[1,7],"x": 7, "y": 1.25 },
+ { "label": "8", "matrix":[1,8],"x": 8, "y": 1.25 },
+ { "label": "9", "matrix":[6,8],"x": 9, "y": 1.25 },
+ { "label": "0", "matrix":[6,7],"x": 10, "y": 1.25 },
+ { "label": "-", "matrix":[6,6],"x": 11, "y": 1.25 },
+ { "label": "=", "matrix":[6,5],"x": 12, "y": 1.25 },
+ { "label": "backspace", "matrix":[6,4],"x": 13, "y": 1.25, "w": 2 },
+ { "label": "insert", "matrix":[6,2],"x": 15.25, "y": 1.25 },
+ { "label": "home", "matrix":[6,1],"x": 16.25, "y": 1.25 },
+ { "label": "pg up", "matrix":[6,0],"x": 17.25, "y": 1.25 },
- { "label": "tab", "matrix":[2,0],"x": 0, "y": 2.5, "w": 1.5 },
- { "label": "q", "matrix":[2,1],"x": 1.5, "y": 2.5 },
- { "label": "w", "matrix":[2,2],"x": 2.5, "y": 2.5 },
- { "label": "e", "matrix":[2,3],"x": 3.5, "y": 2.5 },
- { "label": "r", "matrix":[2,4],"x": 4.5, "y": 2.5 },
- { "label": "t", "matrix":[2,5],"x": 5.5, "y": 2.5 },
- { "label": "y", "matrix":[2,6],"x": 6.5, "y": 2.5 },
- { "label": "u", "matrix":[2,7],"x": 7.5, "y": 2.5 },
- { "label": "i", "matrix":[2,8],"x": 8.5, "y": 2.5 },
- { "label": "o", "matrix":[7,8],"x": 9.5, "y": 2.5 },
- { "label": "p", "matrix":[7,7],"x": 10.5, "y": 2.5 },
- { "label": "{", "matrix":[7,6],"x": 11.5, "y": 2.5 },
- { "label": "}", "matrix":[7,5],"x": 12.5, "y": 2.5 },
- { "label": "|", "matrix":[7,4],"x": 13.5, "y": 2.5, "w": 1.5 },
- { "label": "delete", "matrix":[7,2],"x": 15.25, "y": 2.5 },
- { "label": "end", "matrix":[7,1],"x": 16.25, "y": 2.5 },
- { "label": "pg dn", "matrix":[7,0],"x": 17.25, "y": 2.5 },
+ { "label": "tab", "matrix":[2,0],"x": 0, "y": 2.25, "w": 1.5 },
+ { "label": "q", "matrix":[2,1],"x": 1.5, "y": 2.25 },
+ { "label": "w", "matrix":[2,2],"x": 2.5, "y": 2.25 },
+ { "label": "e", "matrix":[2,3],"x": 3.5, "y": 2.25 },
+ { "label": "r", "matrix":[2,4],"x": 4.5, "y": 2.25 },
+ { "label": "t", "matrix":[2,5],"x": 5.5, "y": 2.25 },
+ { "label": "y", "matrix":[2,6],"x": 6.5, "y": 2.25 },
+ { "label": "u", "matrix":[2,7],"x": 7.5, "y": 2.25 },
+ { "label": "i", "matrix":[2,8],"x": 8.5, "y": 2.25 },
+ { "label": "o", "matrix":[7,8],"x": 9.5, "y": 2.25 },
+ { "label": "p", "matrix":[7,7],"x": 10.5, "y": 2.25 },
+ { "label": "{", "matrix":[7,6],"x": 11.5, "y": 2.25 },
+ { "label": "}", "matrix":[7,5],"x": 12.5, "y": 2.25 },
+ { "label": "|", "matrix":[7,4],"x": 13.5, "y": 2.25, "w": 1.5 },
+ { "label": "delete", "matrix":[7,2],"x": 15.25, "y": 2.25 },
+ { "label": "end", "matrix":[7,1],"x": 16.25, "y": 2.25 },
+ { "label": "pg dn", "matrix":[7,0],"x": 17.25, "y": 2.25 },
- { "label": "capslock", "matrix":[3,0],"x": 0, "y": 3.5, "w": 1.75 },
- { "label": "a", "matrix":[3,1],"x": 1.75, "y": 3.5 },
- { "label": "s", "matrix":[3,2],"x": 2.75, "y": 3.5 },
- { "label": "d", "matrix":[3,3],"x": 3.75, "y": 3.5 },
- { "label": "f", "matrix":[3,4],"x": 4.75, "y": 3.5 },
- { "label": "g", "matrix":[3,5],"x": 5.75, "y": 3.5 },
- { "label": "h", "matrix":[3,6],"x": 6.75, "y": 3.5 },
- { "label": "j", "matrix":[3,7],"x": 7.75, "y": 3.5 },
- { "label": "k", "matrix":[3,8],"x": 8.75, "y": 3.5 },
- { "label": "l", "matrix":[8,8],"x": 9.75, "y": 3.5 },
- { "label": ";", "matrix":[8,7],"x": 10.75, "y": 3.5 },
- { "label": "'", "matrix":[8,6],"x": 11.75, "y": 3.5 },
- { "label": "enter", "matrix":[8,5],"x": 12.75, "y": 3.5, "w": 2.25 },
+ { "label": "capslock", "matrix":[3,0],"x": 0, "y": 3.25, "w": 1.75 },
+ { "label": "a", "matrix":[3,1],"x": 1.75, "y": 3.25 },
+ { "label": "s", "matrix":[3,2],"x": 2.75, "y": 3.25 },
+ { "label": "d", "matrix":[3,3],"x": 3.75, "y": 3.25 },
+ { "label": "f", "matrix":[3,4],"x": 4.75, "y": 3.25 },
+ { "label": "g", "matrix":[3,5],"x": 5.75, "y": 3.25 },
+ { "label": "h", "matrix":[3,6],"x": 6.75, "y": 3.25 },
+ { "label": "j", "matrix":[3,7],"x": 7.75, "y": 3.25 },
+ { "label": "k", "matrix":[3,8],"x": 8.75, "y": 3.25 },
+ { "label": "l", "matrix":[8,8],"x": 9.75, "y": 3.25 },
+ { "label": ";", "matrix":[8,7],"x": 10.75, "y": 3.25 },
+ { "label": "'", "matrix":[8,6],"x": 11.75, "y": 3.25 },
+ { "label": "enter", "matrix":[8,5],"x": 12.75, "y": 3.25, "w": 2.25 },
- { "label": "leftshift", "matrix":[4,0],"x": 0, "y": 4.5, "w": 2.25 },
- { "label": "z", "matrix":[4,1],"x": 2.25, "y": 4.5 },
- { "label": "x", "matrix":[4,2],"x": 3.25, "y": 4.5 },
- { "label": "c", "matrix":[4,3],"x": 4.25, "y": 4.5 },
- { "label": "v", "matrix":[4,4],"x": 5.25, "y": 4.5 },
- { "label": "b", "matrix":[4,5],"x": 6.25, "y": 4.5 },
- { "label": "n", "matrix":[4,6],"x": 7.25, "y": 4.5 },
- { "label": "m", "matrix":[4,7],"x": 8.25, "y": 4.5 },
- { "label": ",", "matrix":[4,8],"x": 9.25, "y": 4.5 },
- { "label": ".", "matrix":[9,8],"x": 10.25, "y": 4.5 },
- { "label": "/", "matrix":[9,7],"x": 11.25, "y": 4.5 },
- { "label": "rightshift", "matrix":[9,6],"x": 12.25, "y": 4.5, "w": 2.75 },
- { "label": "up", "matrix":[8,1],"x": 16.25, "y": 4.5 },
+ { "label": "leftshift", "matrix":[4,0],"x": 0, "y": 4.25, "w": 2.25 },
+ { "label": "z", "matrix":[4,1],"x": 2.25, "y": 4.25 },
+ { "label": "x", "matrix":[4,2],"x": 3.25, "y": 4.25 },
+ { "label": "c", "matrix":[4,3],"x": 4.25, "y": 4.25 },
+ { "label": "v", "matrix":[4,4],"x": 5.25, "y": 4.25 },
+ { "label": "b", "matrix":[4,5],"x": 6.25, "y": 4.25 },
+ { "label": "n", "matrix":[4,6],"x": 7.25, "y": 4.25 },
+ { "label": "m", "matrix":[4,7],"x": 8.25, "y": 4.25 },
+ { "label": ",", "matrix":[4,8],"x": 9.25, "y": 4.25 },
+ { "label": ".", "matrix":[9,8],"x": 10.25, "y": 4.25 },
+ { "label": "/", "matrix":[9,7],"x": 11.25, "y": 4.25 },
+ { "label": "rightshift", "matrix":[9,6],"x": 12.25, "y": 4.25, "w": 2.75 },
+ { "label": "up", "matrix":[8,1],"x": 16.25, "y": 4.25 },
- { "label": "lctrl", "matrix":[10,0],"x": 0, "y": 5.5, "w": 1.5 },
- { "label": "lwin", "matrix":[10,1],"x": 1.5, "y": 5.5 },
- { "label": "lalt", "matrix":[10,2],"x": 2.5, "y": 5.5, "w": 1.5 },
- { "label": "space", "matrix":[10,3],"x": 4, "y": 5.5, "w": 7 },
- { "label": "ralt", "matrix":[10,5],"x": 11, "y": 5.5, "w": 1.5 },
- { "label": "rwin", "matrix":[10,6],"x": 12.5, "y": 5.5, "w": 1 },
- { "label": "rctrl", "matrix":[10,7],"x": 13.5, "y": 5.5, "w":1.5},
- { "label": "left", "matrix":[9,2],"x": 15.25, "y": 5.5 },
- { "label": "down", "matrix":[9,1],"x": 16.25, "y": 5.5 },
- { "label": "right", "matrix":[9,0],"x": 17.25, "y": 5.5 }
+ { "label": "lctrl", "matrix":[10,0],"x": 0, "y": 5.25, "w": 1.5 },
+ { "label": "lwin", "matrix":[10,1],"x": 1.5, "y": 5.25 },
+ { "label": "lalt", "matrix":[10,2],"x": 2.5, "y": 5.25, "w": 1.5 },
+ { "label": "space", "matrix":[10,3],"x": 4, "y": 5.25, "w": 7 },
+ { "label": "ralt", "matrix":[10,5],"x": 11, "y": 5.25, "w": 1.5 },
+ { "label": "rwin", "matrix":[10,6],"x": 12.5, "y": 5.25, "w": 1 },
+ { "label": "rctrl", "matrix":[10,7],"x": 13.5, "y": 5.25, "w":1.5},
+ { "label": "left", "matrix":[9,2],"x": 15.25, "y": 5.25 },
+ { "label": "down", "matrix":[9,1],"x": 16.25, "y": 5.25 },
+ { "label": "right", "matrix":[9,0],"x": 17.25, "y": 5.25 }
]
}
- },
+ }
}
diff --git a/keyboards/ah/haven80/keymaps/default/keymap.c b/keyboards/ah/haven80/keymaps/default/keymap.c
index cbcc6bef38e2..401787bcbcb2 100644
--- a/keyboards/ah/haven80/keymaps/default/keymap.c
+++ b/keyboards/ah/haven80/keymaps/default/keymap.c
@@ -4,7 +4,7 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT(
+ [0] = LAYOUT_tkl_f13_ansi_tsangan(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SCRL, KC_PAUS,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
diff --git a/keyboards/ah/haven80/keymaps/via/keymap.c b/keyboards/ah/haven80/keymaps/via/keymap.c
index 03b98293fcd2..f4d1b6fe92d4 100644
--- a/keyboards/ah/haven80/keymaps/via/keymap.c
+++ b/keyboards/ah/haven80/keymaps/via/keymap.c
@@ -4,7 +4,7 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT(
+ [0] = LAYOUT_tkl_f13_ansi_tsangan(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SCRL, KC_PAUS,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
diff --git a/keyboards/ah/haven80/solder/info.json b/keyboards/ah/haven80/solder/info.json
index db9eb015de11..775908d24f0e 100644
--- a/keyboards/ah/haven80/solder/info.json
+++ b/keyboards/ah/haven80/solder/info.json
@@ -9,8 +9,17 @@
"rows": ["F0", "F1", "F4", "F5", "C6", "B1", "B2", "B3", "D3", "D5", "D6"],
"cols": ["D0", "D1", "D2", "B0", "C7", "B5", "D7", "B4", "B6"]
},
+ "layout_aliases": {
+ "LAYOUT": "LAYOUT_tkl_f13_ansi_tsangan"
+ },
+ "community_layouts": [
+ "tkl_f13_ansi_tsangan",
+ "tkl_f13_ansi_tsangan_split_bs_rshift",
+ "tkl_f13_iso_tsangan",
+ "tkl_f13_iso_tsangan_split_bs_rshift"
+ ],
"layouts": {
- "LAYOUT": {
+ "LAYOUT_tkl_f13_ansi_tsangan": {
"layout": [
{ "label": "Esc", "matrix":[0,0],"x": 0, "y": 0 },
{ "label": "F1", "matrix":[0,1],"x": 1.25, "y": 0 },
@@ -21,90 +30,384 @@
{ "label": "F6", "matrix":[0,6],"x": 6.5, "y": 0 },
{ "label": "F7", "matrix":[0,7],"x": 7.5, "y": 0 },
{ "label": "F8", "matrix":[5,8],"x": 8.5, "y": 0 },
- { "label": "F9", "matrix":[5,7],"x": 9.5, "y": 0 },
+ { "label": "F9", "matrix":[5,7],"x": 9.75, "y": 0 },
{ "label": "F10", "matrix":[5,6],"x": 10.75, "y": 0 },
{ "label": "F11", "matrix":[5,5],"x": 11.75, "y": 0 },
{ "label": "F12", "matrix":[5,4],"x": 12.75, "y": 0 },
- { "label": "F13", "matrix":[5,3],"x": 13.75, "y": 0 },
+ { "label": "F13", "matrix":[5,3],"x": 14, "y": 0 },
{ "label": "Prtsc", "matrix":[5,2],"x": 15.25, "y": 0 },
{ "label": "Scrlk", "matrix":[5,1],"x": 16.25, "y": 0 },
{ "label": "Pause", "matrix":[5,0],"x": 17.25, "y": 0 },
- { "label": "~", "matrix":[1,0],"x": 0, "y": 1.5 },
- { "label": "1", "matrix":[1,1],"x": 1, "y": 1.5 },
- { "label": "2", "matrix":[1,2],"x": 2, "y": 1.5 },
- { "label": "3", "matrix":[1,3],"x": 3, "y": 1.5 },
- { "label": "4", "matrix":[1,4],"x": 4, "y": 1.5 },
- { "label": "5", "matrix":[1,5],"x": 5, "y": 1.5 },
- { "label": "6", "matrix":[1,6],"x": 6, "y": 1.5 },
- { "label": "7", "matrix":[1,7],"x": 7, "y": 1.5 },
- { "label": "8", "matrix":[1,8],"x": 8, "y": 1.5 },
- { "label": "9", "matrix":[6,8],"x": 9, "y": 1.5 },
- { "label": "0", "matrix":[6,7],"x": 10, "y": 1.5 },
- { "label": "-", "matrix":[6,6],"x": 11, "y": 1.5 },
- { "label": "=", "matrix":[6,5],"x": 12, "y": 1.5 },
- { "label": "backspace", "matrix":[6,4],"x": 13, "y": 1.5, "w": 2 },
- { "label": "insert", "matrix":[6,2],"x": 15.25, "y": 1.5 },
- { "label": "home", "matrix":[6,1],"x": 16.25, "y": 1.5 },
- { "label": "pg up", "matrix":[6,0],"x": 17.25, "y": 1.5 },
-
- { "label": "tab", "matrix":[2,0],"x": 0, "y": 2.5, "w": 1.5 },
- { "label": "q", "matrix":[2,1],"x": 1.5, "y": 2.5 },
- { "label": "w", "matrix":[2,2],"x": 2.5, "y": 2.5 },
- { "label": "e", "matrix":[2,3],"x": 3.5, "y": 2.5 },
- { "label": "r", "matrix":[2,4],"x": 4.5, "y": 2.5 },
- { "label": "t", "matrix":[2,5],"x": 5.5, "y": 2.5 },
- { "label": "y", "matrix":[2,6],"x": 6.5, "y": 2.5 },
- { "label": "u", "matrix":[2,7],"x": 7.5, "y": 2.5 },
- { "label": "i", "matrix":[2,8],"x": 8.5, "y": 2.5 },
- { "label": "o", "matrix":[7,8],"x": 9.5, "y": 2.5 },
- { "label": "p", "matrix":[7,7],"x": 10.5, "y": 2.5 },
- { "label": "{", "matrix":[7,6],"x": 11.5, "y": 2.5 },
- { "label": "}", "matrix":[7,5],"x": 12.5, "y": 2.5 },
- { "label": "|", "matrix":[7,4],"x": 13.5, "y": 2.5, "w": 1.5 },
- { "label": "delete", "matrix":[7,2],"x": 15.25, "y": 2.5 },
- { "label": "end", "matrix":[7,1],"x": 16.25, "y": 2.5 },
- { "label": "pg dn", "matrix":[7,0],"x": 17.25, "y": 2.5 },
-
- { "label": "capslock", "matrix":[3,0],"x": 0, "y": 3.5, "w": 1.75 },
- { "label": "a", "matrix":[3,1],"x": 1.75, "y": 3.5 },
- { "label": "s", "matrix":[3,2],"x": 2.75, "y": 3.5 },
- { "label": "d", "matrix":[3,3],"x": 3.75, "y": 3.5 },
- { "label": "f", "matrix":[3,4],"x": 4.75, "y": 3.5 },
- { "label": "g", "matrix":[3,5],"x": 5.75, "y": 3.5 },
- { "label": "h", "matrix":[3,6],"x": 6.75, "y": 3.5 },
- { "label": "j", "matrix":[3,7],"x": 7.75, "y": 3.5 },
- { "label": "k", "matrix":[3,8],"x": 8.75, "y": 3.5 },
- { "label": "l", "matrix":[8,8],"x": 9.75, "y": 3.5 },
- { "label": ";", "matrix":[8,7],"x": 10.75, "y": 3.5 },
- { "label": "'", "matrix":[8,6],"x": 11.75, "y": 3.5 },
- { "label": "enter", "matrix":[8,5],"x": 12.75, "y": 3.5, "w": 2.25 },
-
- { "label": "leftshift", "matrix":[4,0],"x": 0, "y": 4.5, "w": 2.25 },
- { "label": "z", "matrix":[4,1],"x": 2.25, "y": 4.5 },
- { "label": "x", "matrix":[4,2],"x": 3.25, "y": 4.5 },
- { "label": "c", "matrix":[4,3],"x": 4.25, "y": 4.5 },
- { "label": "v", "matrix":[4,4],"x": 5.25, "y": 4.5 },
- { "label": "b", "matrix":[4,5],"x": 6.25, "y": 4.5 },
- { "label": "n", "matrix":[4,6],"x": 7.25, "y": 4.5 },
- { "label": "m", "matrix":[4,7],"x": 8.25, "y": 4.5 },
- { "label": ",", "matrix":[4,8],"x": 9.25, "y": 4.5 },
- { "label": ".", "matrix":[9,8],"x": 10.25, "y": 4.5 },
- { "label": "/", "matrix":[9,7],"x": 11.25, "y": 4.5 },
- { "label": "rightshift", "matrix":[9,6],"x": 12.25, "y": 4.5, "w": 2.75 },
- { "label": "up", "matrix":[8,1],"x": 16.25, "y": 4.5 },
-
- { "label": "lctrl", "matrix":[10,0],"x": 0, "y": 5.5, "w": 1.5 },
- { "label": "lwin", "matrix":[10,1],"x": 1.5, "y": 5.5 },
- { "label": "lalt", "matrix":[10,2],"x": 2.5, "y": 5.5, "w": 1.5 },
- { "label": "space", "matrix":[10,3],"x": 4, "y": 5.5, "w": 7 },
- { "label": "ralt", "matrix":[10,5],"x": 11, "y": 5.5, "w": 1.5 },
- { "label": "rwin", "matrix":[10,6],"x": 12.5, "y": 5.5, "w": 1 },
- { "label": "rctrl", "matrix":[10,7],"x": 13.5, "y": 5.5, "w":1.5},
- { "label": "left", "matrix":[9,2],"x": 15.25, "y": 5.5 },
- { "label": "down", "matrix":[9,1],"x": 16.25, "y": 5.5 },
- { "label": "right", "matrix":[9,0],"x": 17.25, "y": 5.5 }
+ { "label": "~", "matrix":[1,0],"x": 0, "y": 1.25 },
+ { "label": "1", "matrix":[1,1],"x": 1, "y": 1.25 },
+ { "label": "2", "matrix":[1,2],"x": 2, "y": 1.25 },
+ { "label": "3", "matrix":[1,3],"x": 3, "y": 1.25 },
+ { "label": "4", "matrix":[1,4],"x": 4, "y": 1.25 },
+ { "label": "5", "matrix":[1,5],"x": 5, "y": 1.25 },
+ { "label": "6", "matrix":[1,6],"x": 6, "y": 1.25 },
+ { "label": "7", "matrix":[1,7],"x": 7, "y": 1.25 },
+ { "label": "8", "matrix":[1,8],"x": 8, "y": 1.25 },
+ { "label": "9", "matrix":[6,8],"x": 9, "y": 1.25 },
+ { "label": "0", "matrix":[6,7],"x": 10, "y": 1.25 },
+ { "label": "-", "matrix":[6,6],"x": 11, "y": 1.25 },
+ { "label": "=", "matrix":[6,5],"x": 12, "y": 1.25 },
+ { "label": "backspace", "matrix":[6,4],"x": 13, "y": 1.25, "w": 2 },
+ { "label": "insert", "matrix":[6,2],"x": 15.25, "y": 1.25 },
+ { "label": "home", "matrix":[6,1],"x": 16.25, "y": 1.25 },
+ { "label": "pg up", "matrix":[6,0],"x": 17.25, "y": 1.25 },
+
+ { "label": "tab", "matrix":[2,0],"x": 0, "y": 2.25, "w": 1.5 },
+ { "label": "q", "matrix":[2,1],"x": 1.5, "y": 2.25 },
+ { "label": "w", "matrix":[2,2],"x": 2.5, "y": 2.25 },
+ { "label": "e", "matrix":[2,3],"x": 3.5, "y": 2.25 },
+ { "label": "r", "matrix":[2,4],"x": 4.5, "y": 2.25 },
+ { "label": "t", "matrix":[2,5],"x": 5.5, "y": 2.25 },
+ { "label": "y", "matrix":[2,6],"x": 6.5, "y": 2.25 },
+ { "label": "u", "matrix":[2,7],"x": 7.5, "y": 2.25 },
+ { "label": "i", "matrix":[2,8],"x": 8.5, "y": 2.25 },
+ { "label": "o", "matrix":[7,8],"x": 9.5, "y": 2.25 },
+ { "label": "p", "matrix":[7,7],"x": 10.5, "y": 2.25 },
+ { "label": "{", "matrix":[7,6],"x": 11.5, "y": 2.25 },
+ { "label": "}", "matrix":[7,5],"x": 12.5, "y": 2.25 },
+ { "label": "|", "matrix":[7,4],"x": 13.5, "y": 2.25, "w": 1.5 },
+ { "label": "delete", "matrix":[7,2],"x": 15.25, "y": 2.25 },
+ { "label": "end", "matrix":[7,1],"x": 16.25, "y": 2.25 },
+ { "label": "pg dn", "matrix":[7,0],"x": 17.25, "y": 2.25 },
+
+ { "label": "capslock", "matrix":[3,0],"x": 0, "y": 3.25, "w": 1.75 },
+ { "label": "a", "matrix":[3,1],"x": 1.75, "y": 3.25 },
+ { "label": "s", "matrix":[3,2],"x": 2.75, "y": 3.25 },
+ { "label": "d", "matrix":[3,3],"x": 3.75, "y": 3.25 },
+ { "label": "f", "matrix":[3,4],"x": 4.75, "y": 3.25 },
+ { "label": "g", "matrix":[3,5],"x": 5.75, "y": 3.25 },
+ { "label": "h", "matrix":[3,6],"x": 6.75, "y": 3.25 },
+ { "label": "j", "matrix":[3,7],"x": 7.75, "y": 3.25 },
+ { "label": "k", "matrix":[3,8],"x": 8.75, "y": 3.25 },
+ { "label": "l", "matrix":[8,8],"x": 9.75, "y": 3.25 },
+ { "label": ";", "matrix":[8,7],"x": 10.75, "y": 3.25 },
+ { "label": "'", "matrix":[8,6],"x": 11.75, "y": 3.25 },
+ { "label": "enter", "matrix":[8,5],"x": 12.75, "y": 3.25, "w": 2.25 },
+
+ { "label": "leftshift", "matrix":[4,0],"x": 0, "y": 4.25, "w": 2.25 },
+ { "label": "z", "matrix":[4,1],"x": 2.25, "y": 4.25 },
+ { "label": "x", "matrix":[4,2],"x": 3.25, "y": 4.25 },
+ { "label": "c", "matrix":[4,3],"x": 4.25, "y": 4.25 },
+ { "label": "v", "matrix":[4,4],"x": 5.25, "y": 4.25 },
+ { "label": "b", "matrix":[4,5],"x": 6.25, "y": 4.25 },
+ { "label": "n", "matrix":[4,6],"x": 7.25, "y": 4.25 },
+ { "label": "m", "matrix":[4,7],"x": 8.25, "y": 4.25 },
+ { "label": ",", "matrix":[4,8],"x": 9.25, "y": 4.25 },
+ { "label": ".", "matrix":[9,8],"x": 10.25, "y": 4.25 },
+ { "label": "/", "matrix":[9,7],"x": 11.25, "y": 4.25 },
+ { "label": "rightshift", "matrix":[9,6],"x": 12.25, "y": 4.25, "w": 2.75 },
+ { "label": "up", "matrix":[8,1],"x": 16.25, "y": 4.25 },
+
+ { "label": "lctrl", "matrix":[10,0],"x": 0, "y": 5.25, "w": 1.5 },
+ { "label": "lwin", "matrix":[10,1],"x": 1.5, "y": 5.25 },
+ { "label": "lalt", "matrix":[10,2],"x": 2.5, "y": 5.25, "w": 1.5 },
+ { "label": "space", "matrix":[10,3],"x": 4, "y": 5.25, "w": 7 },
+ { "label": "ralt", "matrix":[10,5],"x": 11, "y": 5.25, "w": 1.5 },
+ { "label": "rwin", "matrix":[10,6],"x": 12.5, "y": 5.25, "w": 1 },
+ { "label": "rctrl", "matrix":[10,7],"x": 13.5, "y": 5.25, "w":1.5},
+ { "label": "left", "matrix":[9,2],"x": 15.25, "y": 5.25 },
+ { "label": "down", "matrix":[9,1],"x": 16.25, "y": 5.25 },
+ { "label": "right", "matrix":[9,0],"x": 17.25, "y": 5.25 }
]
+ },
+ "LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0},
+ {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0},
+ {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0},
+ {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0},
+ {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0},
+ {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0},
+ {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0},
+ {"label": "F8", "matrix": [5, 8], "x": 8.5, "y": 0},
+ {"label": "F9", "matrix": [5, 7], "x": 9.75, "y": 0},
+ {"label": "F10", "matrix": [5, 6], "x": 10.75, "y": 0},
+ {"label": "F11", "matrix": [5, 5], "x": 11.75, "y": 0},
+ {"label": "F12", "matrix": [5, 4], "x": 12.75, "y": 0},
+ {"label": "F13", "matrix": [5, 3], "x": 14, "y": 0},
+ {"label": "Prtsc", "matrix": [5, 2], "x": 15.25, "y": 0},
+ {"label": "Scrlk", "matrix": [5, 1], "x": 16.25, "y": 0},
+ {"label": "Pause", "matrix": [5, 0], "x": 17.25, "y": 0},
+
+ {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.25},
+ {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25},
+ {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25},
+ {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25},
+ {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25},
+ {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25},
+ {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25},
+ {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25},
+ {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25},
+ {"label": "9", "matrix": [6, 8], "x": 9, "y": 1.25},
+ {"label": "0", "matrix": [6, 7], "x": 10, "y": 1.25},
+ {"label": "-", "matrix": [6, 6], "x": 11, "y": 1.25},
+ {"label": "=", "matrix": [6, 5], "x": 12, "y": 1.25},
+ {"label": "backspace", "matrix": [6, 4], "x": 13, "y": 1.25},
+ {"label": "backspace", "matrix": [6, 3], "x": 14, "y": 1.25},
+ {"label": "insert", "matrix": [6, 2], "x": 15.25, "y": 1.25},
+ {"label": "home", "matrix": [6, 1], "x": 16.25, "y": 1.25},
+ {"label": "pg up", "matrix": [6, 0], "x": 17.25, "y": 1.25},
+
+ {"label": "tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
+ {"label": "q", "matrix": [2, 1], "x": 1.5, "y": 2.25},
+ {"label": "w", "matrix": [2, 2], "x": 2.5, "y": 2.25},
+ {"label": "e", "matrix": [2, 3], "x": 3.5, "y": 2.25},
+ {"label": "r", "matrix": [2, 4], "x": 4.5, "y": 2.25},
+ {"label": "t", "matrix": [2, 5], "x": 5.5, "y": 2.25},
+ {"label": "y", "matrix": [2, 6], "x": 6.5, "y": 2.25},
+ {"label": "u", "matrix": [2, 7], "x": 7.5, "y": 2.25},
+ {"label": "i", "matrix": [2, 8], "x": 8.5, "y": 2.25},
+ {"label": "o", "matrix": [7, 8], "x": 9.5, "y": 2.25},
+ {"label": "p", "matrix": [7, 7], "x": 10.5, "y": 2.25},
+ {"label": "{", "matrix": [7, 6], "x": 11.5, "y": 2.25},
+ {"label": "}", "matrix": [7, 5], "x": 12.5, "y": 2.25},
+ {"label": "|", "matrix": [7, 4], "x": 13.5, "y": 2.25, "w": 1.5},
+ {"label": "delete", "matrix": [7, 2], "x": 15.25, "y": 2.25},
+ {"label": "end", "matrix": [7, 1], "x": 16.25, "y": 2.25},
+ {"label": "pg dn", "matrix": [7, 0], "x": 17.25, "y": 2.25},
+
+ {"label": "capslock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
+ {"label": "a", "matrix": [3, 1], "x": 1.75, "y": 3.25},
+ {"label": "s", "matrix": [3, 2], "x": 2.75, "y": 3.25},
+ {"label": "d", "matrix": [3, 3], "x": 3.75, "y": 3.25},
+ {"label": "f", "matrix": [3, 4], "x": 4.75, "y": 3.25},
+ {"label": "g", "matrix": [3, 5], "x": 5.75, "y": 3.25},
+ {"label": "h", "matrix": [3, 6], "x": 6.75, "y": 3.25},
+ {"label": "j", "matrix": [3, 7], "x": 7.75, "y": 3.25},
+ {"label": "k", "matrix": [3, 8], "x": 8.75, "y": 3.25},
+ {"label": "l", "matrix": [8, 8], "x": 9.75, "y": 3.25},
+ {"label": ";", "matrix": [8, 7], "x": 10.75, "y": 3.25},
+ {"label": "'", "matrix": [8, 6], "x": 11.75, "y": 3.25},
+ {"label": "enter", "matrix": [8, 5], "x": 12.75, "y": 3.25, "w": 2.25},
+
+ {"label": "leftshift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
+ {"label": "z", "matrix": [4, 1], "x": 2.25, "y": 4.25},
+ {"label": "x", "matrix": [4, 2], "x": 3.25, "y": 4.25},
+ {"label": "c", "matrix": [4, 3], "x": 4.25, "y": 4.25},
+ {"label": "v", "matrix": [4, 4], "x": 5.25, "y": 4.25},
+ {"label": "b", "matrix": [4, 5], "x": 6.25, "y": 4.25},
+ {"label": "n", "matrix": [4, 6], "x": 7.25, "y": 4.25},
+ {"label": "m", "matrix": [4, 7], "x": 8.25, "y": 4.25},
+ {"label": ",", "matrix": [4, 8], "x": 9.25, "y": 4.25},
+ {"label": ".", "matrix": [9, 8], "x": 10.25, "y": 4.25},
+ {"label": "/", "matrix": [9, 7], "x": 11.25, "y": 4.25},
+ {"label": "rightshift", "matrix": [9, 6], "x": 12.25, "y": 4.25, "w": 1.75},
+ {"label": "rightshift", "matrix": [9, 5], "x": 14, "y": 4.25},
+ {"label": "up", "matrix": [8, 1], "x": 16.25, "y": 4.25},
+
+ {"label": "lctrl", "matrix": [10, 0], "x": 0, "y": 5.25, "w": 1.5},
+ {"label": "lwin", "matrix": [10, 1], "x": 1.5, "y": 5.25},
+ {"label": "lalt", "matrix": [10, 2], "x": 2.5, "y": 5.25, "w": 1.5},
+ {"label": "space", "matrix": [10, 3], "x": 4, "y": 5.25, "w": 7},
+ {"label": "ralt", "matrix": [10, 5], "x": 11, "y": 5.25, "w": 1.5},
+ {"label": "rwin", "matrix": [10, 6], "x": 12.5, "y": 5.25},
+ {"label": "rctrl", "matrix": [10, 7], "x": 13.5, "y": 5.25, "w": 1.5},
+ {"label": "left", "matrix": [9, 2], "x": 15.25, "y": 5.25},
+ {"label": "down", "matrix": [9, 1], "x": 16.25, "y": 5.25},
+ {"label": "right", "matrix": [9, 0], "x": 17.25, "y": 5.25}
+ ]
+ },
+ "LAYOUT_tkl_f13_iso_tsangan": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0},
+ {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0},
+ {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0},
+ {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0},
+ {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0},
+ {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0},
+ {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0},
+ {"label": "F8", "matrix": [5, 8], "x": 8.5, "y": 0},
+ {"label": "F9", "matrix": [5, 7], "x": 9.75, "y": 0},
+ {"label": "F10", "matrix": [5, 6], "x": 10.75, "y": 0},
+ {"label": "F11", "matrix": [5, 5], "x": 11.75, "y": 0},
+ {"label": "F12", "matrix": [5, 4], "x": 12.75, "y": 0},
+ {"label": "F13", "matrix": [5, 3], "x": 14, "y": 0},
+ {"label": "Prtsc", "matrix": [5, 2], "x": 15.25, "y": 0},
+ {"label": "Scrlk", "matrix": [5, 1], "x": 16.25, "y": 0},
+ {"label": "Pause", "matrix": [5, 0], "x": 17.25, "y": 0},
+
+ {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.25},
+ {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25},
+ {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25},
+ {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25},
+ {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25},
+ {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25},
+ {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25},
+ {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25},
+ {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25},
+ {"label": "9", "matrix": [6, 8], "x": 9, "y": 1.25},
+ {"label": "0", "matrix": [6, 7], "x": 10, "y": 1.25},
+ {"label": "-", "matrix": [6, 6], "x": 11, "y": 1.25},
+ {"label": "=", "matrix": [6, 5], "x": 12, "y": 1.25},
+ {"label": "backspace", "matrix": [6, 4], "x": 13, "y": 1.25, "w": 2},
+ {"label": "insert", "matrix": [6, 2], "x": 15.25, "y": 1.25},
+ {"label": "home", "matrix": [6, 1], "x": 16.25, "y": 1.25},
+ {"label": "pg up", "matrix": [6, 0], "x": 17.25, "y": 1.25},
+
+ {"label": "tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
+ {"label": "q", "matrix": [2, 1], "x": 1.5, "y": 2.25},
+ {"label": "w", "matrix": [2, 2], "x": 2.5, "y": 2.25},
+ {"label": "e", "matrix": [2, 3], "x": 3.5, "y": 2.25},
+ {"label": "r", "matrix": [2, 4], "x": 4.5, "y": 2.25},
+ {"label": "t", "matrix": [2, 5], "x": 5.5, "y": 2.25},
+ {"label": "y", "matrix": [2, 6], "x": 6.5, "y": 2.25},
+ {"label": "u", "matrix": [2, 7], "x": 7.5, "y": 2.25},
+ {"label": "i", "matrix": [2, 8], "x": 8.5, "y": 2.25},
+ {"label": "o", "matrix": [7, 8], "x": 9.5, "y": 2.25},
+ {"label": "p", "matrix": [7, 7], "x": 10.5, "y": 2.25},
+ {"label": "{", "matrix": [7, 6], "x": 11.5, "y": 2.25},
+ {"label": "}", "matrix": [7, 5], "x": 12.5, "y": 2.25},
+ {"label": "delete", "matrix": [7, 2], "x": 15.25, "y": 2.25},
+ {"label": "end", "matrix": [7, 1], "x": 16.25, "y": 2.25},
+ {"label": "pg dn", "matrix": [7, 0], "x": 17.25, "y": 2.25},
+
+ {"label": "capslock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
+ {"label": "a", "matrix": [3, 1], "x": 1.75, "y": 3.25},
+ {"label": "s", "matrix": [3, 2], "x": 2.75, "y": 3.25},
+ {"label": "d", "matrix": [3, 3], "x": 3.75, "y": 3.25},
+ {"label": "f", "matrix": [3, 4], "x": 4.75, "y": 3.25},
+ {"label": "g", "matrix": [3, 5], "x": 5.75, "y": 3.25},
+ {"label": "h", "matrix": [3, 6], "x": 6.75, "y": 3.25},
+ {"label": "j", "matrix": [3, 7], "x": 7.75, "y": 3.25},
+ {"label": "k", "matrix": [3, 8], "x": 8.75, "y": 3.25},
+ {"label": "l", "matrix": [8, 8], "x": 9.75, "y": 3.25},
+ {"label": ";", "matrix": [8, 7], "x": 10.75, "y": 3.25},
+ {"label": "'", "matrix": [8, 6], "x": 11.75, "y": 3.25},
+ {"label": "#", "matrix": [7, 4], "x": 12.75, "y": 3.25},
+ {"label": "enter", "matrix": [8, 5], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
+
+ {"label": "leftshift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
+ {"label": "\\", "matrix": [9, 3], "x": 1.25, "y": 4.25},
+ {"label": "z", "matrix": [4, 1], "x": 2.25, "y": 4.25},
+ {"label": "x", "matrix": [4, 2], "x": 3.25, "y": 4.25},
+ {"label": "c", "matrix": [4, 3], "x": 4.25, "y": 4.25},
+ {"label": "v", "matrix": [4, 4], "x": 5.25, "y": 4.25},
+ {"label": "b", "matrix": [4, 5], "x": 6.25, "y": 4.25},
+ {"label": "n", "matrix": [4, 6], "x": 7.25, "y": 4.25},
+ {"label": "m", "matrix": [4, 7], "x": 8.25, "y": 4.25},
+ {"label": ",", "matrix": [4, 8], "x": 9.25, "y": 4.25},
+ {"label": ".", "matrix": [9, 8], "x": 10.25, "y": 4.25},
+ {"label": "/", "matrix": [9, 7], "x": 11.25, "y": 4.25},
+ {"label": "rightshift", "matrix": [9, 6], "x": 12.25, "y": 4.25, "w": 2.75},
+ {"label": "up", "matrix": [8, 1], "x": 16.25, "y": 4.25},
+
+ {"label": "lctrl", "matrix": [10, 0], "x": 0, "y": 5.25, "w": 1.5},
+ {"label": "lwin", "matrix": [10, 1], "x": 1.5, "y": 5.25},
+ {"label": "lalt", "matrix": [10, 2], "x": 2.5, "y": 5.25, "w": 1.5},
+ {"label": "space", "matrix": [10, 3], "x": 4, "y": 5.25, "w": 7},
+ {"label": "ralt", "matrix": [10, 5], "x": 11, "y": 5.25, "w": 1.5},
+ {"label": "rwin", "matrix": [10, 6], "x": 12.5, "y": 5.25},
+ {"label": "rctrl", "matrix": [10, 7], "x": 13.5, "y": 5.25, "w": 1.5},
+ {"label": "left", "matrix": [9, 2], "x": 15.25, "y": 5.25},
+ {"label": "down", "matrix": [9, 1], "x": 16.25, "y": 5.25},
+ {"label": "right", "matrix": [9, 0], "x": 17.25, "y": 5.25}
+ ]
+ },
+ "LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0},
+ {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0},
+ {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0},
+ {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0},
+ {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0},
+ {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0},
+ {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0},
+ {"label": "F8", "matrix": [5, 8], "x": 8.5, "y": 0},
+ {"label": "F9", "matrix": [5, 7], "x": 9.75, "y": 0},
+ {"label": "F10", "matrix": [5, 6], "x": 10.75, "y": 0},
+ {"label": "F11", "matrix": [5, 5], "x": 11.75, "y": 0},
+ {"label": "F12", "matrix": [5, 4], "x": 12.75, "y": 0},
+ {"label": "F13", "matrix": [5, 3], "x": 14, "y": 0},
+ {"label": "Prtsc", "matrix": [5, 2], "x": 15.25, "y": 0},
+ {"label": "Scrlk", "matrix": [5, 1], "x": 16.25, "y": 0},
+ {"label": "Pause", "matrix": [5, 0], "x": 17.25, "y": 0},
+
+ {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.25},
+ {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25},
+ {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25},
+ {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25},
+ {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25},
+ {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25},
+ {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25},
+ {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25},
+ {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25},
+ {"label": "9", "matrix": [6, 8], "x": 9, "y": 1.25},
+ {"label": "0", "matrix": [6, 7], "x": 10, "y": 1.25},
+ {"label": "-", "matrix": [6, 6], "x": 11, "y": 1.25},
+ {"label": "=", "matrix": [6, 5], "x": 12, "y": 1.25},
+ {"label": "backspace", "matrix": [6, 4], "x": 13, "y": 1.25},
+ {"label": "backspace", "matrix": [6, 3], "x": 14, "y": 1.25},
+ {"label": "insert", "matrix": [6, 2], "x": 15.25, "y": 1.25},
+ {"label": "home", "matrix": [6, 1], "x": 16.25, "y": 1.25},
+ {"label": "pg up", "matrix": [6, 0], "x": 17.25, "y": 1.25},
+
+ {"label": "tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
+ {"label": "q", "matrix": [2, 1], "x": 1.5, "y": 2.25},
+ {"label": "w", "matrix": [2, 2], "x": 2.5, "y": 2.25},
+ {"label": "e", "matrix": [2, 3], "x": 3.5, "y": 2.25},
+ {"label": "r", "matrix": [2, 4], "x": 4.5, "y": 2.25},
+ {"label": "t", "matrix": [2, 5], "x": 5.5, "y": 2.25},
+ {"label": "y", "matrix": [2, 6], "x": 6.5, "y": 2.25},
+ {"label": "u", "matrix": [2, 7], "x": 7.5, "y": 2.25},
+ {"label": "i", "matrix": [2, 8], "x": 8.5, "y": 2.25},
+ {"label": "o", "matrix": [7, 8], "x": 9.5, "y": 2.25},
+ {"label": "p", "matrix": [7, 7], "x": 10.5, "y": 2.25},
+ {"label": "{", "matrix": [7, 6], "x": 11.5, "y": 2.25},
+ {"label": "}", "matrix": [7, 5], "x": 12.5, "y": 2.25},
+ {"label": "delete", "matrix": [7, 2], "x": 15.25, "y": 2.25},
+ {"label": "end", "matrix": [7, 1], "x": 16.25, "y": 2.25},
+ {"label": "pg dn", "matrix": [7, 0], "x": 17.25, "y": 2.25},
+
+ {"label": "capslock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
+ {"label": "a", "matrix": [3, 1], "x": 1.75, "y": 3.25},
+ {"label": "s", "matrix": [3, 2], "x": 2.75, "y": 3.25},
+ {"label": "d", "matrix": [3, 3], "x": 3.75, "y": 3.25},
+ {"label": "f", "matrix": [3, 4], "x": 4.75, "y": 3.25},
+ {"label": "g", "matrix": [3, 5], "x": 5.75, "y": 3.25},
+ {"label": "h", "matrix": [3, 6], "x": 6.75, "y": 3.25},
+ {"label": "j", "matrix": [3, 7], "x": 7.75, "y": 3.25},
+ {"label": "k", "matrix": [3, 8], "x": 8.75, "y": 3.25},
+ {"label": "l", "matrix": [8, 8], "x": 9.75, "y": 3.25},
+ {"label": ";", "matrix": [8, 7], "x": 10.75, "y": 3.25},
+ {"label": "'", "matrix": [8, 6], "x": 11.75, "y": 3.25},
+ {"label": "#", "matrix": [7, 4], "x": 12.75, "y": 3.25},
+ {"label": "enter", "matrix": [8, 5], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
+
+ {"label": "leftshift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
+ {"label": "\\", "matrix": [9, 3], "x": 1.25, "y": 4.25},
+ {"label": "z", "matrix": [4, 1], "x": 2.25, "y": 4.25},
+ {"label": "x", "matrix": [4, 2], "x": 3.25, "y": 4.25},
+ {"label": "c", "matrix": [4, 3], "x": 4.25, "y": 4.25},
+ {"label": "v", "matrix": [4, 4], "x": 5.25, "y": 4.25},
+ {"label": "b", "matrix": [4, 5], "x": 6.25, "y": 4.25},
+ {"label": "n", "matrix": [4, 6], "x": 7.25, "y": 4.25},
+ {"label": "m", "matrix": [4, 7], "x": 8.25, "y": 4.25},
+ {"label": ",", "matrix": [4, 8], "x": 9.25, "y": 4.25},
+ {"label": ".", "matrix": [9, 8], "x": 10.25, "y": 4.25},
+ {"label": "/", "matrix": [9, 7], "x": 11.25, "y": 4.25},
+ {"label": "rightshift", "matrix": [9, 6], "x": 12.25, "y": 4.25, "w": 1.75},
+ {"label": "rightshift", "matrix": [9, 5], "x": 14, "y": 4.25},
+ {"label": "up", "matrix": [8, 1], "x": 16.25, "y": 4.25},
+
+ {"label": "lctrl", "matrix": [10, 0], "x": 0, "y": 5.25, "w": 1.5},
+ {"label": "lwin", "matrix": [10, 1], "x": 1.5, "y": 5.25},
+ {"label": "lalt", "matrix": [10, 2], "x": 2.5, "y": 5.25, "w": 1.5},
+ {"label": "space", "matrix": [10, 3], "x": 4, "y": 5.25, "w": 7},
+ {"label": "ralt", "matrix": [10, 5], "x": 11, "y": 5.25, "w": 1.5},
+ {"label": "rwin", "matrix": [10, 6], "x": 12.5, "y": 5.25},
+ {"label": "rctrl", "matrix": [10, 7], "x": 13.5, "y": 5.25, "w": 1.5},
+ {"label": "left", "matrix": [9, 2], "x": 15.25, "y": 5.25},
+ {"label": "down", "matrix": [9, 1], "x": 16.25, "y": 5.25},
+ {"label": "right", "matrix": [9, 0], "x": 17.25, "y": 5.25}
+ ]
}
- },
+ }
}
diff --git a/keyboards/anavi/macropad12/info.json b/keyboards/anavi/macropad12/info.json
index a5ed9857cad9..f0f6d6ca60ad 100644
--- a/keyboards/anavi/macropad12/info.json
+++ b/keyboards/anavi/macropad12/info.json
@@ -43,8 +43,11 @@
"backlight": {
"pin": "GP26"
},
+ "layout_aliases": {
+ "LAYOUT": "LAYOUT_ortho_4x3"
+ },
"layouts": {
- "LAYOUT": {
+ "LAYOUT_ortho_4x3": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
diff --git a/keyboards/anavi/macropad12/keymaps/default/keymap.c b/keyboards/anavi/macropad12/keymaps/default/keymap.c
index 054322cb64d0..e74b20d9bad4 100644
--- a/keyboards/anavi/macropad12/keymaps/default/keymap.c
+++ b/keyboards/anavi/macropad12/keymaps/default/keymap.c
@@ -8,7 +8,7 @@ enum layer_names {
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT(
+ [_BASE] = LAYOUT_ortho_4x3(
KC_1, KC_2, KC_3,
KC_4, KC_5, KC_6,
KC_7, KC_8, KC_9,
diff --git a/keyboards/cannonkeys/bastion60/info.json b/keyboards/cannonkeys/bastion60/info.json
index b6ecc9c3b3fa..07443b50b780 100644
--- a/keyboards/cannonkeys/bastion60/info.json
+++ b/keyboards/cannonkeys/bastion60/info.json
@@ -49,7 +49,16 @@
"driver": "vendor",
"pin": "GP7"
},
- "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_iso_tsangan"],
+ "community_layouts": [
+ "60_ansi",
+ "60_ansi_split_bs_rshift",
+ "60_ansi_tsangan",
+ "60_tsangan_hhkb",
+ "60_hhkb",
+ "60_iso",
+ "60_iso_split_bs_rshift",
+ "60_iso_tsangan"
+ ],
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
@@ -183,7 +192,7 @@
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
]
},
- "LAYOUT_60_iso_tsangan": {
+ "LAYOUT_60_ansi_tsangan": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
@@ -199,6 +208,284 @@
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [4, 1], "x": 1.5, "y": 4},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 12], "x": 12.5, "y": 4},
+ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_60_tsangan_hhkb": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0},
+ {"matrix": [2, 12], "x": 14, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 13], "x": 14, "y": 3},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [4, 1], "x": 1.5, "y": 4},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 12], "x": 12.5, "y": 4},
+ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_60_hhkb": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0},
+ {"matrix": [2, 12], "x": 14, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 13], "x": 14, "y": 3},
+
+ {"matrix": [4, 1], "x": 1.5, "y": 4},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 12], "x": 12.5, "y": 4}
+ ]
+ },
+ "LAYOUT_60_iso": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [1, 13], "x": 12.75, "y": 2},
+ {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [3, 1], "x": 1.25, "y": 3},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+ {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_60_iso_split_bs_rshift": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0},
+ {"matrix": [2, 12], "x": 14, "y": 0},
+
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
@@ -212,7 +499,76 @@
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [1, 13], "x": 12.75, "y": 2},
{"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [3, 1], "x": 1.25, "y": 3},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 13], "x": 14, "y": 3},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+ {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_60_iso_tsangan": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
@@ -226,6 +582,7 @@
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [1, 13], "x": 12.75, "y": 2},
+ {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [3, 1], "x": 1.25, "y": 3},
{"matrix": [3, 2], "x": 2.25, "y": 3},
@@ -248,6 +605,77 @@
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
+ "LAYOUT_60_iso_tsangan_split_bs_rshift": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0},
+ {"matrix": [2, 12], "x": 14, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [1, 13], "x": 12.75, "y": 2},
+ {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [3, 1], "x": 1.25, "y": 3},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 13], "x": 14, "y": 3},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [4, 1], "x": 1.5, "y": 4},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 12], "x": 12.5, "y": 4},
+ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
"LAYOUT_all": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
diff --git a/keyboards/cannonkeys/bastion60/matrix_diagram.md b/keyboards/cannonkeys/bastion60/matrix_diagram.md
new file mode 100644
index 000000000000..fe29d0eea91b
--- /dev/null
+++ b/keyboards/cannonkeys/bastion60/matrix_diagram.md
@@ -0,0 +1,24 @@
+# Matrix Diagram for CannonKeys Bastion60
+
+```
+ ┌───────┐
+ 2u Backspace │0D │
+ └───────┘
+┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2C │
+├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ┌─────┐
+│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │ │
+├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐2D │ ISO Enter
+│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ │1D │ │
+├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ └───┴────┘
+│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │
+├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
+│40 │41 │42 │46 │4A │4B │4C │4D │
+└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+┌────────┐ ┌──────────┐
+│30 │ 2.25u LShift 2.75u RShift │3C │
+└────────┘ └──────────┘
+┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐
+│40 │41 │42 │46 │4B │4C │4D │ Tsangan/WKL/HHKB
+└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
+```
diff --git a/keyboards/cannonkeys/bastion65/info.json b/keyboards/cannonkeys/bastion65/info.json
index 83b4f1081775..dd7dd4516eb4 100644
--- a/keyboards/cannonkeys/bastion65/info.json
+++ b/keyboards/cannonkeys/bastion65/info.json
@@ -49,8 +49,21 @@
"driver": "vendor",
"pin": "GP7"
},
+ "layout_aliases": {
+ "LAYOUT": "LAYOUT_all"
+ },
+ "community_layouts": [
+ "65_ansi_blocker",
+ "65_ansi_blocker_split_bs",
+ "65_ansi_blocker_tsangan",
+ "65_ansi_blocker_tsangan_split_bs",
+ "65_iso_blocker",
+ "65_iso_blocker_split_bs",
+ "65_iso_blocker_tsangan",
+ "65_iso_blocker_tsangan_split_bs"
+ ],
"layouts": {
- "LAYOUT": {
+ "LAYOUT_all": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
@@ -124,6 +137,610 @@
{"matrix": [4, 13], "x": 14, "y": 4},
{"matrix": [4, 14], "x": 15, "y": 4}
]
+ },
+ "LAYOUT_65_ansi_blocker": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+ {"matrix": [0, 14], "x": 15, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"matrix": [1, 14], "x": 15, "y": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+ {"matrix": [2, 14], "x": 15, "y": 2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 13], "x": 14, "y": 3},
+ {"matrix": [3, 14], "x": 15, "y": 3},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+ {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 12], "x": 13, "y": 4},
+ {"matrix": [4, 13], "x": 14, "y": 4},
+ {"matrix": [4, 14], "x": 15, "y": 4}
+ ]
+ },
+ "LAYOUT_65_ansi_blocker_split_bs": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0},
+ {"matrix": [2, 12], "x": 14, "y": 0},
+ {"matrix": [0, 14], "x": 15, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"matrix": [1, 14], "x": 15, "y": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+ {"matrix": [2, 14], "x": 15, "y": 2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 13], "x": 14, "y": 3},
+ {"matrix": [3, 14], "x": 15, "y": 3},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+ {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 12], "x": 13, "y": 4},
+ {"matrix": [4, 13], "x": 14, "y": 4},
+ {"matrix": [4, 14], "x": 15, "y": 4}
+ ]
+ },
+ "LAYOUT_65_ansi_blocker_tsangan": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+ {"matrix": [0, 14], "x": 15, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"matrix": [1, 14], "x": 15, "y": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+ {"matrix": [2, 14], "x": 15, "y": 2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 13], "x": 14, "y": 3},
+ {"matrix": [3, 14], "x": 15, "y": 3},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [4, 1], "x": 1.5, "y": 4},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 12], "x": 13, "y": 4},
+ {"matrix": [4, 13], "x": 14, "y": 4},
+ {"matrix": [4, 14], "x": 15, "y": 4}
+ ]
+ },
+ "LAYOUT_65_ansi_blocker_tsangan_split_bs": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0},
+ {"matrix": [2, 12], "x": 14, "y": 0},
+ {"matrix": [0, 14], "x": 15, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"matrix": [1, 14], "x": 15, "y": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+ {"matrix": [2, 14], "x": 15, "y": 2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 13], "x": 14, "y": 3},
+ {"matrix": [3, 14], "x": 15, "y": 3},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [4, 1], "x": 1.5, "y": 4},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 12], "x": 13, "y": 4},
+ {"matrix": [4, 13], "x": 14, "y": 4},
+ {"matrix": [4, 14], "x": 15, "y": 4}
+ ]
+ },
+ "LAYOUT_65_iso_blocker": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+ {"matrix": [0, 14], "x": 15, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 14], "x": 15, "y": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [1, 13], "x": 12.75, "y": 2},
+ {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+ {"matrix": [2, 14], "x": 15, "y": 2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [3, 1], "x": 1.25, "y": 3},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 13], "x": 14, "y": 3},
+ {"matrix": [3, 14], "x": 15, "y": 3},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+ {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 12], "x": 13, "y": 4},
+ {"matrix": [4, 13], "x": 14, "y": 4},
+ {"matrix": [4, 14], "x": 15, "y": 4}
+ ]
+ },
+ "LAYOUT_65_iso_blocker_split_bs": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0},
+ {"matrix": [2, 12], "x": 14, "y": 0},
+ {"matrix": [0, 14], "x": 15, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 14], "x": 15, "y": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [1, 13], "x": 12.75, "y": 2},
+ {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+ {"matrix": [2, 14], "x": 15, "y": 2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [3, 1], "x": 1.25, "y": 3},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 13], "x": 14, "y": 3},
+ {"matrix": [3, 14], "x": 15, "y": 3},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+ {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 12], "x": 13, "y": 4},
+ {"matrix": [4, 13], "x": 14, "y": 4},
+ {"matrix": [4, 14], "x": 15, "y": 4}
+ ]
+ },
+ "LAYOUT_65_iso_blocker_tsangan": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+ {"matrix": [0, 14], "x": 15, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 14], "x": 15, "y": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [1, 13], "x": 12.75, "y": 2},
+ {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+ {"matrix": [2, 14], "x": 15, "y": 2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [3, 1], "x": 1.25, "y": 3},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 13], "x": 14, "y": 3},
+ {"matrix": [3, 14], "x": 15, "y": 3},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [4, 1], "x": 1.5, "y": 4},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 12], "x": 13, "y": 4},
+ {"matrix": [4, 13], "x": 14, "y": 4},
+ {"matrix": [4, 14], "x": 15, "y": 4}
+ ]
+ },
+ "LAYOUT_65_iso_blocker_tsangan_split_bs": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0},
+ {"matrix": [2, 12], "x": 14, "y": 0},
+ {"matrix": [0, 14], "x": 15, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 14], "x": 15, "y": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [1, 13], "x": 12.75, "y": 2},
+ {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+ {"matrix": [2, 14], "x": 15, "y": 2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [3, 1], "x": 1.25, "y": 3},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 13], "x": 14, "y": 3},
+ {"matrix": [3, 14], "x": 15, "y": 3},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [4, 1], "x": 1.5, "y": 4},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 12], "x": 13, "y": 4},
+ {"matrix": [4, 13], "x": 14, "y": 4},
+ {"matrix": [4, 14], "x": 15, "y": 4}
+ ]
}
}
}
diff --git a/keyboards/cannonkeys/bastion65/keymaps/default/keymap.c b/keyboards/cannonkeys/bastion65/keymaps/default/keymap.c
index 6ee4a5f71edd..111633864cf3 100644
--- a/keyboards/cannonkeys/bastion65/keymaps/default/keymap.c
+++ b/keyboards/cannonkeys/bastion65/keymaps/default/keymap.c
@@ -27,7 +27,7 @@ enum layer_names {
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT(
+ [_BASE] = LAYOUT_all(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_HOME,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
@@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(_FN1), KC_LEFT, KC_DOWN, KC_RIGHT
),
- [_FN1] = LAYOUT(
+ [_FN1] = LAYOUT_all(
QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, _______,
RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
diff --git a/keyboards/cannonkeys/bastion65/keymaps/via/keymap.c b/keyboards/cannonkeys/bastion65/keymaps/via/keymap.c
index 4ce1aebed34b..66b6c1c1f72e 100644
--- a/keyboards/cannonkeys/bastion65/keymaps/via/keymap.c
+++ b/keyboards/cannonkeys/bastion65/keymaps/via/keymap.c
@@ -27,7 +27,7 @@ enum layer_names {
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT(
+ [_BASE] = LAYOUT_all(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_HOME,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
@@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(_FN1), KC_LEFT, KC_DOWN, KC_RIGHT
),
- [_FN1] = LAYOUT(
+ [_FN1] = LAYOUT_all(
QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, _______,
RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
diff --git a/keyboards/cannonkeys/bastion65/matrix_diagram.md b/keyboards/cannonkeys/bastion65/matrix_diagram.md
new file mode 100644
index 000000000000..12d7734d5a07
--- /dev/null
+++ b/keyboards/cannonkeys/bastion65/matrix_diagram.md
@@ -0,0 +1,27 @@
+# Matrix Diagram for CannonKeys Bastion65
+
+```
+ ┌───────┐
+ 2u Backspace │0D │
+ └───────┘
+┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2C │0E │
+├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ ┌─────┐
+│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │ │ │
+├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐2D │ ISO Enter
+│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │2E │ │1D │ │
+├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘
+│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │
+├────┴┬──┴┬──┴──┬┴───┴───┴──┬┴──┬┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤
+│40 │41 │42 │45 │46 │49 │4B │ │4C │4D │4E │
+└─────┴───┴─────┴───────────┴───┴───────────┴─────┘ └───┴───┴───┘
+┌────────┐
+│30 │ 2.25u LShift
+└────────┘
+┌─────┬───┬─────┬───────────────────────────┬─────┐
+│40 │41 │42 │46 │4B │ Blocker Tsangan
+└─────┴───┴─────┴───────────────────────────┴─────┘
+┌────┬────┬────┬────────────────────────┬────┬────┐
+│40 │41 │42 │46 │4A │4B │ Blocker
+└────┴────┴────┴────────────────────────┴────┴────┘
+```
diff --git a/keyboards/cannonkeys/bastion75/info.json b/keyboards/cannonkeys/bastion75/info.json
index 64243257aec4..276cc03c5140 100644
--- a/keyboards/cannonkeys/bastion75/info.json
+++ b/keyboards/cannonkeys/bastion75/info.json
@@ -49,8 +49,11 @@
"rainbow_swirl": true
}
},
+ "layout_aliases": {
+ "LAYOUT": "LAYOUT_all"
+ },
"layouts": {
- "LAYOUT": {
+ "LAYOUT_all": {
"layout": [
{ "matrix": [0, 0], "x": 0, "y": 0 },
{ "matrix": [0, 1], "x": 1.5, "y": 0 },
@@ -138,6 +141,730 @@
{ "matrix": [5, 13], "x": 14, "y": 5.25 },
{ "matrix": [5, 14], "x": 15, "y": 5.25 }
]
+ },
+ "LAYOUT_ansi_blocker": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1.5, "y": 0},
+ {"matrix": [0, 2], "x": 2.5, "y": 0},
+ {"matrix": [0, 3], "x": 3.5, "y": 0},
+ {"matrix": [0, 4], "x": 4.5, "y": 0},
+ {"matrix": [0, 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.5, "y": 0},
+ {"matrix": [0, 11], "x": 11.5, "y": 0},
+ {"matrix": [0, 12], "x": 12.5, "y": 0},
+ {"matrix": [0, 13], "x": 13.5, "y": 0},
+ {"matrix": [0, 14], "x": 15, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1.25},
+ {"matrix": [1, 1], "x": 1, "y": 1.25},
+ {"matrix": [1, 2], "x": 2, "y": 1.25},
+ {"matrix": [1, 3], "x": 3, "y": 1.25},
+ {"matrix": [1, 4], "x": 4, "y": 1.25},
+ {"matrix": [1, 5], "x": 5, "y": 1.25},
+ {"matrix": [1, 6], "x": 6, "y": 1.25},
+ {"matrix": [1, 7], "x": 7, "y": 1.25},
+ {"matrix": [1, 8], "x": 8, "y": 1.25},
+ {"matrix": [1, 9], "x": 9, "y": 1.25},
+ {"matrix": [1, 10], "x": 10, "y": 1.25},
+ {"matrix": [1, 11], "x": 11, "y": 1.25},
+ {"matrix": [1, 12], "x": 12, "y": 1.25},
+ {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
+ {"matrix": [1, 14], "x": 15, "y": 1.25},
+
+ {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.25},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.25},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.25},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.25},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.25},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.25},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.25},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.25},
+ {"matrix": [2, 9], "x": 9.5, "y": 2.25},
+ {"matrix": [2, 10], "x": 10.5, "y": 2.25},
+ {"matrix": [2, 11], "x": 11.5, "y": 2.25},
+ {"matrix": [2, 12], "x": 12.5, "y": 2.25},
+ {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 14], "x": 15, "y": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.25},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.25},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.25},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.25},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.25},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.25},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.25},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.25},
+ {"matrix": [3, 9], "x": 9.75, "y": 3.25},
+ {"matrix": [3, 10], "x": 10.75, "y": 3.25},
+ {"matrix": [3, 11], "x": 11.75, "y": 3.25},
+ {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25},
+ {"matrix": [3, 14], "x": 15, "y": 3.25},
+
+ {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.25},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.25},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.25},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.25},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.25},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.25},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.25},
+ {"matrix": [4, 9], "x": 9.25, "y": 4.25},
+ {"matrix": [4, 10], "x": 10.25, "y": 4.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4.25},
+ {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75},
+ {"matrix": [4, 13], "x": 14, "y": 4.25},
+ {"matrix": [4, 14], "x": 15, "y": 4.25},
+
+ {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
+ {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 12], "x": 13, "y": 5.25},
+ {"matrix": [5, 13], "x": 14, "y": 5.25},
+ {"matrix": [5, 14], "x": 15, "y": 5.25}
+ ]
+ },
+ "LAYOUT_ansi_blocker_split_bs": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1.5, "y": 0},
+ {"matrix": [0, 2], "x": 2.5, "y": 0},
+ {"matrix": [0, 3], "x": 3.5, "y": 0},
+ {"matrix": [0, 4], "x": 4.5, "y": 0},
+ {"matrix": [0, 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.5, "y": 0},
+ {"matrix": [0, 11], "x": 11.5, "y": 0},
+ {"matrix": [0, 12], "x": 12.5, "y": 0},
+ {"matrix": [0, 13], "x": 13.5, "y": 0},
+ {"matrix": [0, 14], "x": 15, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1.25},
+ {"matrix": [1, 1], "x": 1, "y": 1.25},
+ {"matrix": [1, 2], "x": 2, "y": 1.25},
+ {"matrix": [1, 3], "x": 3, "y": 1.25},
+ {"matrix": [1, 4], "x": 4, "y": 1.25},
+ {"matrix": [1, 5], "x": 5, "y": 1.25},
+ {"matrix": [1, 6], "x": 6, "y": 1.25},
+ {"matrix": [1, 7], "x": 7, "y": 1.25},
+ {"matrix": [1, 8], "x": 8, "y": 1.25},
+ {"matrix": [1, 9], "x": 9, "y": 1.25},
+ {"matrix": [1, 10], "x": 10, "y": 1.25},
+ {"matrix": [1, 11], "x": 11, "y": 1.25},
+ {"matrix": [1, 12], "x": 12, "y": 1.25},
+ {"matrix": [1, 13], "x": 13, "y": 1.25},
+ {"matrix": [3, 12], "x": 14, "y": 1.25},
+ {"matrix": [1, 14], "x": 15, "y": 1.25},
+
+ {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.25},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.25},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.25},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.25},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.25},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.25},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.25},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.25},
+ {"matrix": [2, 9], "x": 9.5, "y": 2.25},
+ {"matrix": [2, 10], "x": 10.5, "y": 2.25},
+ {"matrix": [2, 11], "x": 11.5, "y": 2.25},
+ {"matrix": [2, 12], "x": 12.5, "y": 2.25},
+ {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 14], "x": 15, "y": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.25},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.25},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.25},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.25},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.25},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.25},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.25},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.25},
+ {"matrix": [3, 9], "x": 9.75, "y": 3.25},
+ {"matrix": [3, 10], "x": 10.75, "y": 3.25},
+ {"matrix": [3, 11], "x": 11.75, "y": 3.25},
+ {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25},
+ {"matrix": [3, 14], "x": 15, "y": 3.25},
+
+ {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.25},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.25},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.25},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.25},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.25},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.25},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.25},
+ {"matrix": [4, 9], "x": 9.25, "y": 4.25},
+ {"matrix": [4, 10], "x": 10.25, "y": 4.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4.25},
+ {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75},
+ {"matrix": [4, 13], "x": 14, "y": 4.25},
+ {"matrix": [4, 14], "x": 15, "y": 4.25},
+
+ {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
+ {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 12], "x": 13, "y": 5.25},
+ {"matrix": [5, 13], "x": 14, "y": 5.25},
+ {"matrix": [5, 14], "x": 15, "y": 5.25}
+ ]
+ },
+ "LAYOUT_ansi_blocker_tsangan": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1.5, "y": 0},
+ {"matrix": [0, 2], "x": 2.5, "y": 0},
+ {"matrix": [0, 3], "x": 3.5, "y": 0},
+ {"matrix": [0, 4], "x": 4.5, "y": 0},
+ {"matrix": [0, 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.5, "y": 0},
+ {"matrix": [0, 11], "x": 11.5, "y": 0},
+ {"matrix": [0, 12], "x": 12.5, "y": 0},
+ {"matrix": [0, 13], "x": 13.5, "y": 0},
+ {"matrix": [0, 14], "x": 15, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1.25},
+ {"matrix": [1, 1], "x": 1, "y": 1.25},
+ {"matrix": [1, 2], "x": 2, "y": 1.25},
+ {"matrix": [1, 3], "x": 3, "y": 1.25},
+ {"matrix": [1, 4], "x": 4, "y": 1.25},
+ {"matrix": [1, 5], "x": 5, "y": 1.25},
+ {"matrix": [1, 6], "x": 6, "y": 1.25},
+ {"matrix": [1, 7], "x": 7, "y": 1.25},
+ {"matrix": [1, 8], "x": 8, "y": 1.25},
+ {"matrix": [1, 9], "x": 9, "y": 1.25},
+ {"matrix": [1, 10], "x": 10, "y": 1.25},
+ {"matrix": [1, 11], "x": 11, "y": 1.25},
+ {"matrix": [1, 12], "x": 12, "y": 1.25},
+ {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
+ {"matrix": [1, 14], "x": 15, "y": 1.25},
+
+ {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.25},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.25},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.25},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.25},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.25},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.25},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.25},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.25},
+ {"matrix": [2, 9], "x": 9.5, "y": 2.25},
+ {"matrix": [2, 10], "x": 10.5, "y": 2.25},
+ {"matrix": [2, 11], "x": 11.5, "y": 2.25},
+ {"matrix": [2, 12], "x": 12.5, "y": 2.25},
+ {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 14], "x": 15, "y": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.25},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.25},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.25},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.25},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.25},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.25},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.25},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.25},
+ {"matrix": [3, 9], "x": 9.75, "y": 3.25},
+ {"matrix": [3, 10], "x": 10.75, "y": 3.25},
+ {"matrix": [3, 11], "x": 11.75, "y": 3.25},
+ {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25},
+ {"matrix": [3, 14], "x": 15, "y": 3.25},
+
+ {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.25},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.25},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.25},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.25},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.25},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.25},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.25},
+ {"matrix": [4, 9], "x": 9.25, "y": 4.25},
+ {"matrix": [4, 10], "x": 10.25, "y": 4.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4.25},
+ {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75},
+ {"matrix": [4, 13], "x": 14, "y": 4.25},
+ {"matrix": [4, 14], "x": 15, "y": 4.25},
+
+ {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 1], "x": 1.5, "y": 5.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7},
+ {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 12], "x": 13, "y": 5.25},
+ {"matrix": [5, 13], "x": 14, "y": 5.25},
+ {"matrix": [5, 14], "x": 15, "y": 5.25}
+ ]
+ },
+ "LAYOUT_ansi_blocker_tsangan_split_bs": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1.5, "y": 0},
+ {"matrix": [0, 2], "x": 2.5, "y": 0},
+ {"matrix": [0, 3], "x": 3.5, "y": 0},
+ {"matrix": [0, 4], "x": 4.5, "y": 0},
+ {"matrix": [0, 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.5, "y": 0},
+ {"matrix": [0, 11], "x": 11.5, "y": 0},
+ {"matrix": [0, 12], "x": 12.5, "y": 0},
+ {"matrix": [0, 13], "x": 13.5, "y": 0},
+ {"matrix": [0, 14], "x": 15, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1.25},
+ {"matrix": [1, 1], "x": 1, "y": 1.25},
+ {"matrix": [1, 2], "x": 2, "y": 1.25},
+ {"matrix": [1, 3], "x": 3, "y": 1.25},
+ {"matrix": [1, 4], "x": 4, "y": 1.25},
+ {"matrix": [1, 5], "x": 5, "y": 1.25},
+ {"matrix": [1, 6], "x": 6, "y": 1.25},
+ {"matrix": [1, 7], "x": 7, "y": 1.25},
+ {"matrix": [1, 8], "x": 8, "y": 1.25},
+ {"matrix": [1, 9], "x": 9, "y": 1.25},
+ {"matrix": [1, 10], "x": 10, "y": 1.25},
+ {"matrix": [1, 11], "x": 11, "y": 1.25},
+ {"matrix": [1, 12], "x": 12, "y": 1.25},
+ {"matrix": [1, 13], "x": 13, "y": 1.25},
+ {"matrix": [3, 12], "x": 14, "y": 1.25},
+ {"matrix": [1, 14], "x": 15, "y": 1.25},
+
+ {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.25},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.25},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.25},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.25},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.25},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.25},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.25},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.25},
+ {"matrix": [2, 9], "x": 9.5, "y": 2.25},
+ {"matrix": [2, 10], "x": 10.5, "y": 2.25},
+ {"matrix": [2, 11], "x": 11.5, "y": 2.25},
+ {"matrix": [2, 12], "x": 12.5, "y": 2.25},
+ {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 14], "x": 15, "y": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.25},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.25},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.25},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.25},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.25},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.25},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.25},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.25},
+ {"matrix": [3, 9], "x": 9.75, "y": 3.25},
+ {"matrix": [3, 10], "x": 10.75, "y": 3.25},
+ {"matrix": [3, 11], "x": 11.75, "y": 3.25},
+ {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25},
+ {"matrix": [3, 14], "x": 15, "y": 3.25},
+
+ {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.25},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.25},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.25},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.25},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.25},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.25},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.25},
+ {"matrix": [4, 9], "x": 9.25, "y": 4.25},
+ {"matrix": [4, 10], "x": 10.25, "y": 4.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4.25},
+ {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75},
+ {"matrix": [4, 13], "x": 14, "y": 4.25},
+ {"matrix": [4, 14], "x": 15, "y": 4.25},
+
+ {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 1], "x": 1.5, "y": 5.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7},
+ {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 12], "x": 13, "y": 5.25},
+ {"matrix": [5, 13], "x": 14, "y": 5.25},
+ {"matrix": [5, 14], "x": 15, "y": 5.25}
+ ]
+ },
+ "LAYOUT_iso_blocker": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1.5, "y": 0},
+ {"matrix": [0, 2], "x": 2.5, "y": 0},
+ {"matrix": [0, 3], "x": 3.5, "y": 0},
+ {"matrix": [0, 4], "x": 4.5, "y": 0},
+ {"matrix": [0, 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.5, "y": 0},
+ {"matrix": [0, 11], "x": 11.5, "y": 0},
+ {"matrix": [0, 12], "x": 12.5, "y": 0},
+ {"matrix": [0, 13], "x": 13.5, "y": 0},
+ {"matrix": [0, 14], "x": 15, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1.25},
+ {"matrix": [1, 1], "x": 1, "y": 1.25},
+ {"matrix": [1, 2], "x": 2, "y": 1.25},
+ {"matrix": [1, 3], "x": 3, "y": 1.25},
+ {"matrix": [1, 4], "x": 4, "y": 1.25},
+ {"matrix": [1, 5], "x": 5, "y": 1.25},
+ {"matrix": [1, 6], "x": 6, "y": 1.25},
+ {"matrix": [1, 7], "x": 7, "y": 1.25},
+ {"matrix": [1, 8], "x": 8, "y": 1.25},
+ {"matrix": [1, 9], "x": 9, "y": 1.25},
+ {"matrix": [1, 10], "x": 10, "y": 1.25},
+ {"matrix": [1, 11], "x": 11, "y": 1.25},
+ {"matrix": [1, 12], "x": 12, "y": 1.25},
+ {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
+ {"matrix": [1, 14], "x": 15, "y": 1.25},
+
+ {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.25},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.25},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.25},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.25},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.25},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.25},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.25},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.25},
+ {"matrix": [2, 9], "x": 9.5, "y": 2.25},
+ {"matrix": [2, 10], "x": 10.5, "y": 2.25},
+ {"matrix": [2, 11], "x": 11.5, "y": 2.25},
+ {"matrix": [2, 12], "x": 12.5, "y": 2.25},
+ {"matrix": [2, 14], "x": 15, "y": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.25},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.25},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.25},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.25},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.25},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.25},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.25},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.25},
+ {"matrix": [3, 9], "x": 9.75, "y": 3.25},
+ {"matrix": [3, 10], "x": 10.75, "y": 3.25},
+ {"matrix": [3, 11], "x": 11.75, "y": 3.25},
+ {"matrix": [2, 13], "x": 12.75, "y": 3.25},
+ {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
+ {"matrix": [3, 14], "x": 15, "y": 3.25},
+
+ {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.25},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.25},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.25},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.25},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.25},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.25},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.25},
+ {"matrix": [4, 9], "x": 9.25, "y": 4.25},
+ {"matrix": [4, 10], "x": 10.25, "y": 4.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4.25},
+ {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75},
+ {"matrix": [4, 13], "x": 14, "y": 4.25},
+ {"matrix": [4, 14], "x": 15, "y": 4.25},
+
+ {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
+ {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 12], "x": 13, "y": 5.25},
+ {"matrix": [5, 13], "x": 14, "y": 5.25},
+ {"matrix": [5, 14], "x": 15, "y": 5.25}
+ ]
+ },
+ "LAYOUT_iso_blocker_split_bs": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1.5, "y": 0},
+ {"matrix": [0, 2], "x": 2.5, "y": 0},
+ {"matrix": [0, 3], "x": 3.5, "y": 0},
+ {"matrix": [0, 4], "x": 4.5, "y": 0},
+ {"matrix": [0, 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.5, "y": 0},
+ {"matrix": [0, 11], "x": 11.5, "y": 0},
+ {"matrix": [0, 12], "x": 12.5, "y": 0},
+ {"matrix": [0, 13], "x": 13.5, "y": 0},
+ {"matrix": [0, 14], "x": 15, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1.25},
+ {"matrix": [1, 1], "x": 1, "y": 1.25},
+ {"matrix": [1, 2], "x": 2, "y": 1.25},
+ {"matrix": [1, 3], "x": 3, "y": 1.25},
+ {"matrix": [1, 4], "x": 4, "y": 1.25},
+ {"matrix": [1, 5], "x": 5, "y": 1.25},
+ {"matrix": [1, 6], "x": 6, "y": 1.25},
+ {"matrix": [1, 7], "x": 7, "y": 1.25},
+ {"matrix": [1, 8], "x": 8, "y": 1.25},
+ {"matrix": [1, 9], "x": 9, "y": 1.25},
+ {"matrix": [1, 10], "x": 10, "y": 1.25},
+ {"matrix": [1, 11], "x": 11, "y": 1.25},
+ {"matrix": [1, 12], "x": 12, "y": 1.25},
+ {"matrix": [1, 13], "x": 13, "y": 1.25},
+ {"matrix": [3, 12], "x": 14, "y": 1.25},
+ {"matrix": [1, 14], "x": 15, "y": 1.25},
+
+ {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.25},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.25},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.25},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.25},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.25},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.25},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.25},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.25},
+ {"matrix": [2, 9], "x": 9.5, "y": 2.25},
+ {"matrix": [2, 10], "x": 10.5, "y": 2.25},
+ {"matrix": [2, 11], "x": 11.5, "y": 2.25},
+ {"matrix": [2, 12], "x": 12.5, "y": 2.25},
+ {"matrix": [2, 14], "x": 15, "y": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.25},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.25},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.25},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.25},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.25},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.25},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.25},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.25},
+ {"matrix": [3, 9], "x": 9.75, "y": 3.25},
+ {"matrix": [3, 10], "x": 10.75, "y": 3.25},
+ {"matrix": [3, 11], "x": 11.75, "y": 3.25},
+ {"matrix": [2, 13], "x": 12.75, "y": 3.25},
+ {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
+ {"matrix": [3, 14], "x": 15, "y": 3.25},
+
+ {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.25},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.25},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.25},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.25},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.25},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.25},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.25},
+ {"matrix": [4, 9], "x": 9.25, "y": 4.25},
+ {"matrix": [4, 10], "x": 10.25, "y": 4.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4.25},
+ {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75},
+ {"matrix": [4, 13], "x": 14, "y": 4.25},
+ {"matrix": [4, 14], "x": 15, "y": 4.25},
+
+ {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
+ {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 12], "x": 13, "y": 5.25},
+ {"matrix": [5, 13], "x": 14, "y": 5.25},
+ {"matrix": [5, 14], "x": 15, "y": 5.25}
+ ]
+ },
+ "LAYOUT_iso_blocker_tsangan": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1.5, "y": 0},
+ {"matrix": [0, 2], "x": 2.5, "y": 0},
+ {"matrix": [0, 3], "x": 3.5, "y": 0},
+ {"matrix": [0, 4], "x": 4.5, "y": 0},
+ {"matrix": [0, 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.5, "y": 0},
+ {"matrix": [0, 11], "x": 11.5, "y": 0},
+ {"matrix": [0, 12], "x": 12.5, "y": 0},
+ {"matrix": [0, 13], "x": 13.5, "y": 0},
+ {"matrix": [0, 14], "x": 15, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1.25},
+ {"matrix": [1, 1], "x": 1, "y": 1.25},
+ {"matrix": [1, 2], "x": 2, "y": 1.25},
+ {"matrix": [1, 3], "x": 3, "y": 1.25},
+ {"matrix": [1, 4], "x": 4, "y": 1.25},
+ {"matrix": [1, 5], "x": 5, "y": 1.25},
+ {"matrix": [1, 6], "x": 6, "y": 1.25},
+ {"matrix": [1, 7], "x": 7, "y": 1.25},
+ {"matrix": [1, 8], "x": 8, "y": 1.25},
+ {"matrix": [1, 9], "x": 9, "y": 1.25},
+ {"matrix": [1, 10], "x": 10, "y": 1.25},
+ {"matrix": [1, 11], "x": 11, "y": 1.25},
+ {"matrix": [1, 12], "x": 12, "y": 1.25},
+ {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
+ {"matrix": [1, 14], "x": 15, "y": 1.25},
+
+ {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.25},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.25},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.25},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.25},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.25},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.25},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.25},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.25},
+ {"matrix": [2, 9], "x": 9.5, "y": 2.25},
+ {"matrix": [2, 10], "x": 10.5, "y": 2.25},
+ {"matrix": [2, 11], "x": 11.5, "y": 2.25},
+ {"matrix": [2, 12], "x": 12.5, "y": 2.25},
+ {"matrix": [2, 14], "x": 15, "y": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.25},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.25},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.25},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.25},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.25},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.25},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.25},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.25},
+ {"matrix": [3, 9], "x": 9.75, "y": 3.25},
+ {"matrix": [3, 10], "x": 10.75, "y": 3.25},
+ {"matrix": [3, 11], "x": 11.75, "y": 3.25},
+ {"matrix": [2, 13], "x": 12.75, "y": 3.25},
+ {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
+ {"matrix": [3, 14], "x": 15, "y": 3.25},
+
+ {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.25},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.25},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.25},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.25},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.25},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.25},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.25},
+ {"matrix": [4, 9], "x": 9.25, "y": 4.25},
+ {"matrix": [4, 10], "x": 10.25, "y": 4.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4.25},
+ {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75},
+ {"matrix": [4, 13], "x": 14, "y": 4.25},
+ {"matrix": [4, 14], "x": 15, "y": 4.25},
+
+ {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 1], "x": 1.5, "y": 5.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7},
+ {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 12], "x": 13, "y": 5.25},
+ {"matrix": [5, 13], "x": 14, "y": 5.25},
+ {"matrix": [5, 14], "x": 15, "y": 5.25}
+ ]
+ },
+ "LAYOUT_iso_blocker_tsangan_split_bs": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1.5, "y": 0},
+ {"matrix": [0, 2], "x": 2.5, "y": 0},
+ {"matrix": [0, 3], "x": 3.5, "y": 0},
+ {"matrix": [0, 4], "x": 4.5, "y": 0},
+ {"matrix": [0, 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.5, "y": 0},
+ {"matrix": [0, 11], "x": 11.5, "y": 0},
+ {"matrix": [0, 12], "x": 12.5, "y": 0},
+ {"matrix": [0, 13], "x": 13.5, "y": 0},
+ {"matrix": [0, 14], "x": 15, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1.25},
+ {"matrix": [1, 1], "x": 1, "y": 1.25},
+ {"matrix": [1, 2], "x": 2, "y": 1.25},
+ {"matrix": [1, 3], "x": 3, "y": 1.25},
+ {"matrix": [1, 4], "x": 4, "y": 1.25},
+ {"matrix": [1, 5], "x": 5, "y": 1.25},
+ {"matrix": [1, 6], "x": 6, "y": 1.25},
+ {"matrix": [1, 7], "x": 7, "y": 1.25},
+ {"matrix": [1, 8], "x": 8, "y": 1.25},
+ {"matrix": [1, 9], "x": 9, "y": 1.25},
+ {"matrix": [1, 10], "x": 10, "y": 1.25},
+ {"matrix": [1, 11], "x": 11, "y": 1.25},
+ {"matrix": [1, 12], "x": 12, "y": 1.25},
+ {"matrix": [1, 13], "x": 13, "y": 1.25},
+ {"matrix": [3, 12], "x": 14, "y": 1.25},
+ {"matrix": [1, 14], "x": 15, "y": 1.25},
+
+ {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.25},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.25},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.25},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.25},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.25},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.25},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.25},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.25},
+ {"matrix": [2, 9], "x": 9.5, "y": 2.25},
+ {"matrix": [2, 10], "x": 10.5, "y": 2.25},
+ {"matrix": [2, 11], "x": 11.5, "y": 2.25},
+ {"matrix": [2, 12], "x": 12.5, "y": 2.25},
+ {"matrix": [2, 14], "x": 15, "y": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.25},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.25},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.25},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.25},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.25},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.25},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.25},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.25},
+ {"matrix": [3, 9], "x": 9.75, "y": 3.25},
+ {"matrix": [3, 10], "x": 10.75, "y": 3.25},
+ {"matrix": [3, 11], "x": 11.75, "y": 3.25},
+ {"matrix": [2, 13], "x": 12.75, "y": 3.25},
+ {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
+ {"matrix": [3, 14], "x": 15, "y": 3.25},
+
+ {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.25},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.25},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.25},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.25},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.25},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.25},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.25},
+ {"matrix": [4, 9], "x": 9.25, "y": 4.25},
+ {"matrix": [4, 10], "x": 10.25, "y": 4.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4.25},
+ {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75},
+ {"matrix": [4, 13], "x": 14, "y": 4.25},
+ {"matrix": [4, 14], "x": 15, "y": 4.25},
+
+ {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 1], "x": 1.5, "y": 5.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7},
+ {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 12], "x": 13, "y": 5.25},
+ {"matrix": [5, 13], "x": 14, "y": 5.25},
+ {"matrix": [5, 14], "x": 15, "y": 5.25}
+ ]
}
}
-}
\ No newline at end of file
+}
diff --git a/keyboards/cannonkeys/bastion75/keymaps/default/keymap.c b/keyboards/cannonkeys/bastion75/keymaps/default/keymap.c
index 9b3d00ade259..b0da09f0b8dc 100644
--- a/keyboards/cannonkeys/bastion75/keymaps/default/keymap.c
+++ b/keyboards/cannonkeys/bastion75/keymaps/default/keymap.c
@@ -27,7 +27,7 @@ enum layer_names {
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT(
+ [_BASE] = LAYOUT_all(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPLY,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_HOME,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END,
@@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(_FN1), KC_LEFT, KC_DOWN, KC_RIGHT
),
- [_FN1] = LAYOUT(
+ [_FN1] = LAYOUT_all(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, _______,
RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
diff --git a/keyboards/cannonkeys/bastion75/keymaps/via/keymap.c b/keyboards/cannonkeys/bastion75/keymaps/via/keymap.c
index a4c9bf120c43..493fea3c9a68 100644
--- a/keyboards/cannonkeys/bastion75/keymaps/via/keymap.c
+++ b/keyboards/cannonkeys/bastion75/keymaps/via/keymap.c
@@ -27,7 +27,7 @@ enum layer_names {
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT(
+ [_BASE] = LAYOUT_all(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPLY,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_HOME,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END,
@@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(_FN1), KC_LEFT, KC_DOWN, KC_RIGHT
),
- [_FN1] = LAYOUT(
+ [_FN1] = LAYOUT_all(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, _______,
RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
diff --git a/keyboards/cannonkeys/bastion75/matrix_diagram.md b/keyboards/cannonkeys/bastion75/matrix_diagram.md
new file mode 100644
index 000000000000..756c26c3b388
--- /dev/null
+++ b/keyboards/cannonkeys/bastion75/matrix_diagram.md
@@ -0,0 +1,27 @@
+# Matrix Diagram for CannonKeys Bastion75
+
+```
+┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┐
+│00 │ │01 │02 │03 │04 │ │06 │07 │08 │09 │ │0A │0B │0C │0D │ │0E │
+└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┘
+┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐
+│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │3C │1E │ │1D │ 2u Backspace
+├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ └─┬─────┤
+│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │2E │ │ │
+├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐3D │ ISO Enter
+│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │3E │ │2D │ │
+├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘
+│40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │4D │4E │
+├────┴┬──┴┬──┴──┬┴───┴───┴──┬┴──┬┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤
+│50 │51 │52 │55 │56 │59 │5B │ │5C │5D │5E │
+└─────┴───┴─────┴───────────┴───┴───────────┴─────┘ └───┴───┴───┘
+┌────────┐
+│40 │ 2.25u LShift
+└────────┘
+┌─────┬───┬─────┬───────────────────────────┬─────┐
+│50 │51 │52 │56 │5B │ Blocker Tsangan
+└─────┴───┴─────┴───────────────────────────┴─────┘
+┌────┬────┬────┬────────────────────────┬────┬────┐
+│50 │51 │52 │56 │5A │5B │ Blocker
+└────┴────┴────┴────────────────────────┴────┴────┘
+```
diff --git a/keyboards/cannonkeys/bastiontkl/info.json b/keyboards/cannonkeys/bastiontkl/info.json
index d06f134fec3c..72733b3d8fe8 100644
--- a/keyboards/cannonkeys/bastiontkl/info.json
+++ b/keyboards/cannonkeys/bastiontkl/info.json
@@ -28,7 +28,24 @@
"pid": "0x0023",
"vid": "0xCA04"
},
- "community_layouts": ["tkl_ansi", "tkl_iso", "tkl_f13_ansi_tsangan_split_bs_rshift"],
+ "community_layouts": [
+ "tkl_ansi",
+ "tkl_ansi_split_bs_rshift",
+ "tkl_ansi_tsangan",
+ "tkl_ansi_tsangan_split_bs_rshift",
+ "tkl_f13_ansi",
+ "tkl_f13_ansi_split_bs_rshift",
+ "tkl_f13_ansi_tsangan",
+ "tkl_f13_ansi_tsangan_split_bs_rshift",
+ "tkl_iso",
+ "tkl_iso_split_bs_rshift",
+ "tkl_iso_tsangan",
+ "tkl_iso_tsangan_split_bs_rshift",
+ "tkl_f13_iso",
+ "tkl_f13_iso_split_bs_rshift",
+ "tkl_f13_iso_tsangan",
+ "tkl_f13_iso_tsangan_split_bs_rshift"
+ ],
"layouts": {
"LAYOUT_all": {
"layout": [
@@ -216,25 +233,25 @@
{"matrix": [5, 16], "x": 17.25, "y": 5.25}
]
},
- "LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift": {
+ "LAYOUT_tkl_ansi_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
- {"matrix": [0, 1], "x": 1.25, "y": 0},
- {"matrix": [0, 2], "x": 2.25, "y": 0},
- {"matrix": [0, 3], "x": 3.25, "y": 0},
- {"matrix": [0, 4], "x": 4.25, "y": 0},
- {"matrix": [0, 5], "x": 5.5, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6.5, "y": 0},
{"matrix": [0, 7], "x": 7.5, "y": 0},
{"matrix": [0, 8], "x": 8.5, "y": 0},
- {"matrix": [0, 9], "x": 9.75, "y": 0},
- {"matrix": [0, 10], "x": 10.75, "y": 0},
- {"matrix": [0, 11], "x": 11.75, "y": 0},
- {"matrix": [0, 12], "x": 12.75, "y": 0},
+ {"matrix": [0, 9], "x": 9.5, "y": 0},
+ {"matrix": [0, 10], "x": 11, "y": 0},
+ {"matrix": [0, 11], "x": 12, "y": 0},
+ {"matrix": [0, 12], "x": 13, "y": 0},
{"matrix": [0, 13], "x": 14, "y": 0},
{"matrix": [0, 14], "x": 15.25, "y": 0},
{"matrix": [0, 15], "x": 16.25, "y": 0},
{"matrix": [0, 16], "x": 17.25, "y": 0},
+
{"matrix": [1, 0], "x": 0, "y": 1.25},
{"matrix": [1, 1], "x": 1, "y": 1.25},
{"matrix": [1, 2], "x": 2, "y": 1.25},
@@ -253,6 +270,7 @@
{"matrix": [1, 14], "x": 15.25, "y": 1.25},
{"matrix": [1, 15], "x": 16.25, "y": 1.25},
{"matrix": [1, 16], "x": 17.25, "y": 1.25},
+
{"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 2.25},
{"matrix": [2, 2], "x": 2.5, "y": 2.25},
@@ -270,6 +288,7 @@
{"matrix": [2, 14], "x": 15.25, "y": 2.25},
{"matrix": [2, 15], "x": 16.25, "y": 2.25},
{"matrix": [2, 16], "x": 17.25, "y": 2.25},
+
{"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 3.25},
{"matrix": [3, 2], "x": 2.75, "y": 3.25},
@@ -283,6 +302,7 @@
{"matrix": [3, 10], "x": 10.75, "y": 3.25},
{"matrix": [3, 11], "x": 11.75, "y": 3.25},
{"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25},
+
{"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
{"matrix": [4, 2], "x": 2.25, "y": 4.25},
{"matrix": [4, 3], "x": 3.25, "y": 4.25},
@@ -297,6 +317,103 @@
{"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75},
{"matrix": [4, 13], "x": 14, "y": 4.25},
{"matrix": [4, 15], "x": 16.25, "y": 4.25},
+
+ {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
+ {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 14], "x": 15.25, "y": 5.25},
+ {"matrix": [5, 15], "x": 16.25, "y": 5.25},
+ {"matrix": [5, 16], "x": 17.25, "y": 5.25}
+ ]
+ },
+ "LAYOUT_tkl_ansi_tsangan": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6.5, "y": 0},
+ {"matrix": [0, 7], "x": 7.5, "y": 0},
+ {"matrix": [0, 8], "x": 8.5, "y": 0},
+ {"matrix": [0, 9], "x": 9.5, "y": 0},
+ {"matrix": [0, 10], "x": 11, "y": 0},
+ {"matrix": [0, 11], "x": 12, "y": 0},
+ {"matrix": [0, 12], "x": 13, "y": 0},
+ {"matrix": [0, 13], "x": 14, "y": 0},
+ {"matrix": [0, 14], "x": 15.25, "y": 0},
+ {"matrix": [0, 15], "x": 16.25, "y": 0},
+ {"matrix": [0, 16], "x": 17.25, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1.25},
+ {"matrix": [1, 1], "x": 1, "y": 1.25},
+ {"matrix": [1, 2], "x": 2, "y": 1.25},
+ {"matrix": [1, 3], "x": 3, "y": 1.25},
+ {"matrix": [1, 4], "x": 4, "y": 1.25},
+ {"matrix": [1, 5], "x": 5, "y": 1.25},
+ {"matrix": [1, 6], "x": 6, "y": 1.25},
+ {"matrix": [1, 7], "x": 7, "y": 1.25},
+ {"matrix": [1, 8], "x": 8, "y": 1.25},
+ {"matrix": [1, 9], "x": 9, "y": 1.25},
+ {"matrix": [1, 10], "x": 10, "y": 1.25},
+ {"matrix": [1, 11], "x": 11, "y": 1.25},
+ {"matrix": [1, 12], "x": 12, "y": 1.25},
+ {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
+ {"matrix": [1, 14], "x": 15.25, "y": 1.25},
+ {"matrix": [1, 15], "x": 16.25, "y": 1.25},
+ {"matrix": [1, 16], "x": 17.25, "y": 1.25},
+
+ {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.25},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.25},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.25},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.25},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.25},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.25},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.25},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.25},
+ {"matrix": [2, 9], "x": 9.5, "y": 2.25},
+ {"matrix": [2, 10], "x": 10.5, "y": 2.25},
+ {"matrix": [2, 11], "x": 11.5, "y": 2.25},
+ {"matrix": [2, 12], "x": 12.5, "y": 2.25},
+ {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 14], "x": 15.25, "y": 2.25},
+ {"matrix": [2, 15], "x": 16.25, "y": 2.25},
+ {"matrix": [2, 16], "x": 17.25, "y": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.25},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.25},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.25},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.25},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.25},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.25},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.25},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.25},
+ {"matrix": [3, 9], "x": 9.75, "y": 3.25},
+ {"matrix": [3, 10], "x": 10.75, "y": 3.25},
+ {"matrix": [3, 11], "x": 11.75, "y": 3.25},
+ {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25},
+
+ {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.25},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.25},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.25},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.25},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.25},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.25},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.25},
+ {"matrix": [4, 9], "x": 9.25, "y": 4.25},
+ {"matrix": [4, 10], "x": 10.25, "y": 4.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4.25},
+ {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75},
+ {"matrix": [4, 15], "x": 16.25, "y": 4.25},
+
{"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
{"matrix": [5, 1], "x": 1.5, "y": 5.25},
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
@@ -309,7 +426,7 @@
{"matrix": [5, 16], "x": 17.25, "y": 5.25}
]
},
- "LAYOUT_tkl_iso": {
+ "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
@@ -327,6 +444,105 @@
{"matrix": [0, 14], "x": 15.25, "y": 0},
{"matrix": [0, 15], "x": 16.25, "y": 0},
{"matrix": [0, 16], "x": 17.25, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1.25},
+ {"matrix": [1, 1], "x": 1, "y": 1.25},
+ {"matrix": [1, 2], "x": 2, "y": 1.25},
+ {"matrix": [1, 3], "x": 3, "y": 1.25},
+ {"matrix": [1, 4], "x": 4, "y": 1.25},
+ {"matrix": [1, 5], "x": 5, "y": 1.25},
+ {"matrix": [1, 6], "x": 6, "y": 1.25},
+ {"matrix": [1, 7], "x": 7, "y": 1.25},
+ {"matrix": [1, 8], "x": 8, "y": 1.25},
+ {"matrix": [1, 9], "x": 9, "y": 1.25},
+ {"matrix": [1, 10], "x": 10, "y": 1.25},
+ {"matrix": [1, 11], "x": 11, "y": 1.25},
+ {"matrix": [1, 12], "x": 12, "y": 1.25},
+ {"matrix": [1, 13], "x": 13, "y": 1.25},
+ {"matrix": [3, 12], "x": 14, "y": 1.25},
+ {"matrix": [1, 14], "x": 15.25, "y": 1.25},
+ {"matrix": [1, 15], "x": 16.25, "y": 1.25},
+ {"matrix": [1, 16], "x": 17.25, "y": 1.25},
+
+ {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.25},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.25},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.25},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.25},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.25},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.25},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.25},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.25},
+ {"matrix": [2, 9], "x": 9.5, "y": 2.25},
+ {"matrix": [2, 10], "x": 10.5, "y": 2.25},
+ {"matrix": [2, 11], "x": 11.5, "y": 2.25},
+ {"matrix": [2, 12], "x": 12.5, "y": 2.25},
+ {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 14], "x": 15.25, "y": 2.25},
+ {"matrix": [2, 15], "x": 16.25, "y": 2.25},
+ {"matrix": [2, 16], "x": 17.25, "y": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.25},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.25},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.25},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.25},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.25},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.25},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.25},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.25},
+ {"matrix": [3, 9], "x": 9.75, "y": 3.25},
+ {"matrix": [3, 10], "x": 10.75, "y": 3.25},
+ {"matrix": [3, 11], "x": 11.75, "y": 3.25},
+ {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25},
+
+ {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.25},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.25},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.25},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.25},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.25},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.25},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.25},
+ {"matrix": [4, 9], "x": 9.25, "y": 4.25},
+ {"matrix": [4, 10], "x": 10.25, "y": 4.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4.25},
+ {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75},
+ {"matrix": [4, 13], "x": 14, "y": 4.25},
+ {"matrix": [4, 15], "x": 16.25, "y": 4.25},
+
+ {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 1], "x": 1.5, "y": 5.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7},
+ {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 12], "x": 12.5, "y": 5.25},
+ {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 14], "x": 15.25, "y": 5.25},
+ {"matrix": [5, 15], "x": 16.25, "y": 5.25},
+ {"matrix": [5, 16], "x": 17.25, "y": 5.25}
+ ]
+ },
+ "LAYOUT_tkl_f13_ansi": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1.25, "y": 0},
+ {"matrix": [0, 2], "x": 2.25, "y": 0},
+ {"matrix": [0, 3], "x": 3.25, "y": 0},
+ {"matrix": [0, 4], "x": 4.25, "y": 0},
+ {"matrix": [0, 5], "x": 5.5, "y": 0},
+ {"matrix": [0, 6], "x": 6.5, "y": 0},
+ {"matrix": [0, 7], "x": 7.5, "y": 0},
+ {"matrix": [0, 8], "x": 8.5, "y": 0},
+ {"matrix": [0, 9], "x": 9.75, "y": 0},
+ {"matrix": [0, 10], "x": 10.75, "y": 0},
+ {"matrix": [0, 11], "x": 11.75, "y": 0},
+ {"matrix": [0, 12], "x": 12.75, "y": 0},
+ {"matrix": [0, 13], "x": 14, "y": 0},
+ {"matrix": [0, 14], "x": 15.25, "y": 0},
+ {"matrix": [0, 15], "x": 16.25, "y": 0},
+ {"matrix": [0, 16], "x": 17.25, "y": 0},
+
{"matrix": [1, 0], "x": 0, "y": 1.25},
{"matrix": [1, 1], "x": 1, "y": 1.25},
{"matrix": [1, 2], "x": 2, "y": 1.25},
@@ -344,6 +560,7 @@
{"matrix": [1, 14], "x": 15.25, "y": 1.25},
{"matrix": [1, 15], "x": 16.25, "y": 1.25},
{"matrix": [1, 16], "x": 17.25, "y": 1.25},
+
{"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 2.25},
{"matrix": [2, 2], "x": 2.5, "y": 2.25},
@@ -357,10 +574,11 @@
{"matrix": [2, 10], "x": 10.5, "y": 2.25},
{"matrix": [2, 11], "x": 11.5, "y": 2.25},
{"matrix": [2, 12], "x": 12.5, "y": 2.25},
- {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
+ {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
{"matrix": [2, 14], "x": 15.25, "y": 2.25},
{"matrix": [2, 15], "x": 16.25, "y": 2.25},
{"matrix": [2, 16], "x": 17.25, "y": 2.25},
+
{"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 3.25},
{"matrix": [3, 2], "x": 2.75, "y": 3.25},
@@ -373,9 +591,9 @@
{"matrix": [3, 9], "x": 9.75, "y": 3.25},
{"matrix": [3, 10], "x": 10.75, "y": 3.25},
{"matrix": [3, 11], "x": 11.75, "y": 3.25},
- {"matrix": [2, 13], "x": 12.75, "y": 3.25},
- {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
- {"matrix": [4, 1], "x": 1.25, "y": 4.25},
+ {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25},
+
+ {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
{"matrix": [4, 2], "x": 2.25, "y": 4.25},
{"matrix": [4, 3], "x": 3.25, "y": 4.25},
{"matrix": [4, 4], "x": 4.25, "y": 4.25},
@@ -388,6 +606,7 @@
{"matrix": [4, 11], "x": 11.25, "y": 4.25},
{"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75},
{"matrix": [4, 15], "x": 16.25, "y": 4.25},
+
{"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
{"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
@@ -400,6 +619,1073 @@
{"matrix": [5, 15], "x": 16.25, "y": 5.25},
{"matrix": [5, 16], "x": 17.25, "y": 5.25}
]
+ },
+ "LAYOUT_tkl_f13_ansi_split_bs_rshift": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1.25, "y": 0},
+ {"matrix": [0, 2], "x": 2.25, "y": 0},
+ {"matrix": [0, 3], "x": 3.25, "y": 0},
+ {"matrix": [0, 4], "x": 4.25, "y": 0},
+ {"matrix": [0, 5], "x": 5.5, "y": 0},
+ {"matrix": [0, 6], "x": 6.5, "y": 0},
+ {"matrix": [0, 7], "x": 7.5, "y": 0},
+ {"matrix": [0, 8], "x": 8.5, "y": 0},
+ {"matrix": [0, 9], "x": 9.75, "y": 0},
+ {"matrix": [0, 10], "x": 10.75, "y": 0},
+ {"matrix": [0, 11], "x": 11.75, "y": 0},
+ {"matrix": [0, 12], "x": 12.75, "y": 0},
+ {"matrix": [0, 13], "x": 14, "y": 0},
+ {"matrix": [0, 14], "x": 15.25, "y": 0},
+ {"matrix": [0, 15], "x": 16.25, "y": 0},
+ {"matrix": [0, 16], "x": 17.25, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1.25},
+ {"matrix": [1, 1], "x": 1, "y": 1.25},
+ {"matrix": [1, 2], "x": 2, "y": 1.25},
+ {"matrix": [1, 3], "x": 3, "y": 1.25},
+ {"matrix": [1, 4], "x": 4, "y": 1.25},
+ {"matrix": [1, 5], "x": 5, "y": 1.25},
+ {"matrix": [1, 6], "x": 6, "y": 1.25},
+ {"matrix": [1, 7], "x": 7, "y": 1.25},
+ {"matrix": [1, 8], "x": 8, "y": 1.25},
+ {"matrix": [1, 9], "x": 9, "y": 1.25},
+ {"matrix": [1, 10], "x": 10, "y": 1.25},
+ {"matrix": [1, 11], "x": 11, "y": 1.25},
+ {"matrix": [1, 12], "x": 12, "y": 1.25},
+ {"matrix": [1, 13], "x": 13, "y": 1.25},
+ {"matrix": [3, 12], "x": 14, "y": 1.25},
+ {"matrix": [1, 14], "x": 15.25, "y": 1.25},
+ {"matrix": [1, 15], "x": 16.25, "y": 1.25},
+ {"matrix": [1, 16], "x": 17.25, "y": 1.25},
+
+ {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.25},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.25},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.25},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.25},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.25},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.25},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.25},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.25},
+ {"matrix": [2, 9], "x": 9.5, "y": 2.25},
+ {"matrix": [2, 10], "x": 10.5, "y": 2.25},
+ {"matrix": [2, 11], "x": 11.5, "y": 2.25},
+ {"matrix": [2, 12], "x": 12.5, "y": 2.25},
+ {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 14], "x": 15.25, "y": 2.25},
+ {"matrix": [2, 15], "x": 16.25, "y": 2.25},
+ {"matrix": [2, 16], "x": 17.25, "y": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.25},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.25},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.25},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.25},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.25},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.25},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.25},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.25},
+ {"matrix": [3, 9], "x": 9.75, "y": 3.25},
+ {"matrix": [3, 10], "x": 10.75, "y": 3.25},
+ {"matrix": [3, 11], "x": 11.75, "y": 3.25},
+ {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25},
+
+ {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.25},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.25},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.25},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.25},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.25},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.25},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.25},
+ {"matrix": [4, 9], "x": 9.25, "y": 4.25},
+ {"matrix": [4, 10], "x": 10.25, "y": 4.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4.25},
+ {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75},
+ {"matrix": [4, 13], "x": 14, "y": 4.25},
+ {"matrix": [4, 15], "x": 16.25, "y": 4.25},
+
+ {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
+ {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 14], "x": 15.25, "y": 5.25},
+ {"matrix": [5, 15], "x": 16.25, "y": 5.25},
+ {"matrix": [5, 16], "x": 17.25, "y": 5.25}
+ ]
+ },
+ "LAYOUT_tkl_f13_ansi_tsangan": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1.25, "y": 0},
+ {"matrix": [0, 2], "x": 2.25, "y": 0},
+ {"matrix": [0, 3], "x": 3.25, "y": 0},
+ {"matrix": [0, 4], "x": 4.25, "y": 0},
+ {"matrix": [0, 5], "x": 5.5, "y": 0},
+ {"matrix": [0, 6], "x": 6.5, "y": 0},
+ {"matrix": [0, 7], "x": 7.5, "y": 0},
+ {"matrix": [0, 8], "x": 8.5, "y": 0},
+ {"matrix": [0, 9], "x": 9.75, "y": 0},
+ {"matrix": [0, 10], "x": 10.75, "y": 0},
+ {"matrix": [0, 11], "x": 11.75, "y": 0},
+ {"matrix": [0, 12], "x": 12.75, "y": 0},
+ {"matrix": [0, 13], "x": 14, "y": 0},
+ {"matrix": [0, 14], "x": 15.25, "y": 0},
+ {"matrix": [0, 15], "x": 16.25, "y": 0},
+ {"matrix": [0, 16], "x": 17.25, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1.25},
+ {"matrix": [1, 1], "x": 1, "y": 1.25},
+ {"matrix": [1, 2], "x": 2, "y": 1.25},
+ {"matrix": [1, 3], "x": 3, "y": 1.25},
+ {"matrix": [1, 4], "x": 4, "y": 1.25},
+ {"matrix": [1, 5], "x": 5, "y": 1.25},
+ {"matrix": [1, 6], "x": 6, "y": 1.25},
+ {"matrix": [1, 7], "x": 7, "y": 1.25},
+ {"matrix": [1, 8], "x": 8, "y": 1.25},
+ {"matrix": [1, 9], "x": 9, "y": 1.25},
+ {"matrix": [1, 10], "x": 10, "y": 1.25},
+ {"matrix": [1, 11], "x": 11, "y": 1.25},
+ {"matrix": [1, 12], "x": 12, "y": 1.25},
+ {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
+ {"matrix": [1, 14], "x": 15.25, "y": 1.25},
+ {"matrix": [1, 15], "x": 16.25, "y": 1.25},
+ {"matrix": [1, 16], "x": 17.25, "y": 1.25},
+
+ {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.25},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.25},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.25},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.25},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.25},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.25},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.25},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.25},
+ {"matrix": [2, 9], "x": 9.5, "y": 2.25},
+ {"matrix": [2, 10], "x": 10.5, "y": 2.25},
+ {"matrix": [2, 11], "x": 11.5, "y": 2.25},
+ {"matrix": [2, 12], "x": 12.5, "y": 2.25},
+ {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 14], "x": 15.25, "y": 2.25},
+ {"matrix": [2, 15], "x": 16.25, "y": 2.25},
+ {"matrix": [2, 16], "x": 17.25, "y": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.25},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.25},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.25},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.25},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.25},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.25},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.25},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.25},
+ {"matrix": [3, 9], "x": 9.75, "y": 3.25},
+ {"matrix": [3, 10], "x": 10.75, "y": 3.25},
+ {"matrix": [3, 11], "x": 11.75, "y": 3.25},
+ {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25},
+
+ {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.25},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.25},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.25},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.25},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.25},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.25},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.25},
+ {"matrix": [4, 9], "x": 9.25, "y": 4.25},
+ {"matrix": [4, 10], "x": 10.25, "y": 4.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4.25},
+ {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75},
+ {"matrix": [4, 15], "x": 16.25, "y": 4.25},
+
+ {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 1], "x": 1.5, "y": 5.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7},
+ {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 12], "x": 12.5, "y": 5.25},
+ {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 14], "x": 15.25, "y": 5.25},
+ {"matrix": [5, 15], "x": 16.25, "y": 5.25},
+ {"matrix": [5, 16], "x": 17.25, "y": 5.25}
+ ]
+ },
+ "LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1.25, "y": 0},
+ {"matrix": [0, 2], "x": 2.25, "y": 0},
+ {"matrix": [0, 3], "x": 3.25, "y": 0},
+ {"matrix": [0, 4], "x": 4.25, "y": 0},
+ {"matrix": [0, 5], "x": 5.5, "y": 0},
+ {"matrix": [0, 6], "x": 6.5, "y": 0},
+ {"matrix": [0, 7], "x": 7.5, "y": 0},
+ {"matrix": [0, 8], "x": 8.5, "y": 0},
+ {"matrix": [0, 9], "x": 9.75, "y": 0},
+ {"matrix": [0, 10], "x": 10.75, "y": 0},
+ {"matrix": [0, 11], "x": 11.75, "y": 0},
+ {"matrix": [0, 12], "x": 12.75, "y": 0},
+ {"matrix": [0, 13], "x": 14, "y": 0},
+ {"matrix": [0, 14], "x": 15.25, "y": 0},
+ {"matrix": [0, 15], "x": 16.25, "y": 0},
+ {"matrix": [0, 16], "x": 17.25, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1.25},
+ {"matrix": [1, 1], "x": 1, "y": 1.25},
+ {"matrix": [1, 2], "x": 2, "y": 1.25},
+ {"matrix": [1, 3], "x": 3, "y": 1.25},
+ {"matrix": [1, 4], "x": 4, "y": 1.25},
+ {"matrix": [1, 5], "x": 5, "y": 1.25},
+ {"matrix": [1, 6], "x": 6, "y": 1.25},
+ {"matrix": [1, 7], "x": 7, "y": 1.25},
+ {"matrix": [1, 8], "x": 8, "y": 1.25},
+ {"matrix": [1, 9], "x": 9, "y": 1.25},
+ {"matrix": [1, 10], "x": 10, "y": 1.25},
+ {"matrix": [1, 11], "x": 11, "y": 1.25},
+ {"matrix": [1, 12], "x": 12, "y": 1.25},
+ {"matrix": [1, 13], "x": 13, "y": 1.25},
+ {"matrix": [3, 12], "x": 14, "y": 1.25},
+ {"matrix": [1, 14], "x": 15.25, "y": 1.25},
+ {"matrix": [1, 15], "x": 16.25, "y": 1.25},
+ {"matrix": [1, 16], "x": 17.25, "y": 1.25},
+ {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.25},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.25},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.25},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.25},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.25},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.25},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.25},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.25},
+ {"matrix": [2, 9], "x": 9.5, "y": 2.25},
+ {"matrix": [2, 10], "x": 10.5, "y": 2.25},
+ {"matrix": [2, 11], "x": 11.5, "y": 2.25},
+ {"matrix": [2, 12], "x": 12.5, "y": 2.25},
+ {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 14], "x": 15.25, "y": 2.25},
+ {"matrix": [2, 15], "x": 16.25, "y": 2.25},
+ {"matrix": [2, 16], "x": 17.25, "y": 2.25},
+ {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.25},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.25},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.25},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.25},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.25},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.25},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.25},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.25},
+ {"matrix": [3, 9], "x": 9.75, "y": 3.25},
+ {"matrix": [3, 10], "x": 10.75, "y": 3.25},
+ {"matrix": [3, 11], "x": 11.75, "y": 3.25},
+ {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25},
+ {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.25},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.25},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.25},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.25},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.25},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.25},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.25},
+ {"matrix": [4, 9], "x": 9.25, "y": 4.25},
+ {"matrix": [4, 10], "x": 10.25, "y": 4.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4.25},
+ {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75},
+ {"matrix": [4, 13], "x": 14, "y": 4.25},
+ {"matrix": [4, 15], "x": 16.25, "y": 4.25},
+ {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 1], "x": 1.5, "y": 5.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7},
+ {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 12], "x": 12.5, "y": 5.25},
+ {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 14], "x": 15.25, "y": 5.25},
+ {"matrix": [5, 15], "x": 16.25, "y": 5.25},
+ {"matrix": [5, 16], "x": 17.25, "y": 5.25}
+ ]
+ },
+ "LAYOUT_tkl_iso": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6.5, "y": 0},
+ {"matrix": [0, 7], "x": 7.5, "y": 0},
+ {"matrix": [0, 8], "x": 8.5, "y": 0},
+ {"matrix": [0, 9], "x": 9.5, "y": 0},
+ {"matrix": [0, 10], "x": 11, "y": 0},
+ {"matrix": [0, 11], "x": 12, "y": 0},
+ {"matrix": [0, 12], "x": 13, "y": 0},
+ {"matrix": [0, 13], "x": 14, "y": 0},
+ {"matrix": [0, 14], "x": 15.25, "y": 0},
+ {"matrix": [0, 15], "x": 16.25, "y": 0},
+ {"matrix": [0, 16], "x": 17.25, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1.25},
+ {"matrix": [1, 1], "x": 1, "y": 1.25},
+ {"matrix": [1, 2], "x": 2, "y": 1.25},
+ {"matrix": [1, 3], "x": 3, "y": 1.25},
+ {"matrix": [1, 4], "x": 4, "y": 1.25},
+ {"matrix": [1, 5], "x": 5, "y": 1.25},
+ {"matrix": [1, 6], "x": 6, "y": 1.25},
+ {"matrix": [1, 7], "x": 7, "y": 1.25},
+ {"matrix": [1, 8], "x": 8, "y": 1.25},
+ {"matrix": [1, 9], "x": 9, "y": 1.25},
+ {"matrix": [1, 10], "x": 10, "y": 1.25},
+ {"matrix": [1, 11], "x": 11, "y": 1.25},
+ {"matrix": [1, 12], "x": 12, "y": 1.25},
+ {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
+ {"matrix": [1, 14], "x": 15.25, "y": 1.25},
+ {"matrix": [1, 15], "x": 16.25, "y": 1.25},
+ {"matrix": [1, 16], "x": 17.25, "y": 1.25},
+ {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.25},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.25},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.25},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.25},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.25},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.25},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.25},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.25},
+ {"matrix": [2, 9], "x": 9.5, "y": 2.25},
+ {"matrix": [2, 10], "x": 10.5, "y": 2.25},
+ {"matrix": [2, 11], "x": 11.5, "y": 2.25},
+ {"matrix": [2, 12], "x": 12.5, "y": 2.25},
+ {"matrix": [2, 14], "x": 15.25, "y": 2.25},
+ {"matrix": [2, 15], "x": 16.25, "y": 2.25},
+ {"matrix": [2, 16], "x": 17.25, "y": 2.25},
+ {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.25},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.25},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.25},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.25},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.25},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.25},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.25},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.25},
+ {"matrix": [3, 9], "x": 9.75, "y": 3.25},
+ {"matrix": [3, 10], "x": 10.75, "y": 3.25},
+ {"matrix": [3, 11], "x": 11.75, "y": 3.25},
+ {"matrix": [2, 13], "x": 12.75, "y": 3.25},
+ {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
+ {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.25},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.25},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.25},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.25},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.25},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.25},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.25},
+ {"matrix": [4, 9], "x": 9.25, "y": 4.25},
+ {"matrix": [4, 10], "x": 10.25, "y": 4.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4.25},
+ {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75},
+ {"matrix": [4, 15], "x": 16.25, "y": 4.25},
+ {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
+ {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 14], "x": 15.25, "y": 5.25},
+ {"matrix": [5, 15], "x": 16.25, "y": 5.25},
+ {"matrix": [5, 16], "x": 17.25, "y": 5.25}
+ ]
+ },
+ "LAYOUT_tkl_iso_split_bs_rshift": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6.5, "y": 0},
+ {"matrix": [0, 7], "x": 7.5, "y": 0},
+ {"matrix": [0, 8], "x": 8.5, "y": 0},
+ {"matrix": [0, 9], "x": 9.5, "y": 0},
+ {"matrix": [0, 10], "x": 11, "y": 0},
+ {"matrix": [0, 11], "x": 12, "y": 0},
+ {"matrix": [0, 12], "x": 13, "y": 0},
+ {"matrix": [0, 13], "x": 14, "y": 0},
+ {"matrix": [0, 14], "x": 15.25, "y": 0},
+ {"matrix": [0, 15], "x": 16.25, "y": 0},
+ {"matrix": [0, 16], "x": 17.25, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1.25},
+ {"matrix": [1, 1], "x": 1, "y": 1.25},
+ {"matrix": [1, 2], "x": 2, "y": 1.25},
+ {"matrix": [1, 3], "x": 3, "y": 1.25},
+ {"matrix": [1, 4], "x": 4, "y": 1.25},
+ {"matrix": [1, 5], "x": 5, "y": 1.25},
+ {"matrix": [1, 6], "x": 6, "y": 1.25},
+ {"matrix": [1, 7], "x": 7, "y": 1.25},
+ {"matrix": [1, 8], "x": 8, "y": 1.25},
+ {"matrix": [1, 9], "x": 9, "y": 1.25},
+ {"matrix": [1, 10], "x": 10, "y": 1.25},
+ {"matrix": [1, 11], "x": 11, "y": 1.25},
+ {"matrix": [1, 12], "x": 12, "y": 1.25},
+ {"matrix": [1, 13], "x": 13, "y": 1.25},
+ {"matrix": [3, 12], "x": 14, "y": 1.25},
+ {"matrix": [1, 14], "x": 15.25, "y": 1.25},
+ {"matrix": [1, 15], "x": 16.25, "y": 1.25},
+ {"matrix": [1, 16], "x": 17.25, "y": 1.25},
+
+ {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.25},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.25},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.25},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.25},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.25},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.25},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.25},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.25},
+ {"matrix": [2, 9], "x": 9.5, "y": 2.25},
+ {"matrix": [2, 10], "x": 10.5, "y": 2.25},
+ {"matrix": [2, 11], "x": 11.5, "y": 2.25},
+ {"matrix": [2, 12], "x": 12.5, "y": 2.25},
+ {"matrix": [2, 14], "x": 15.25, "y": 2.25},
+ {"matrix": [2, 15], "x": 16.25, "y": 2.25},
+ {"matrix": [2, 16], "x": 17.25, "y": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.25},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.25},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.25},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.25},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.25},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.25},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.25},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.25},
+ {"matrix": [3, 9], "x": 9.75, "y": 3.25},
+ {"matrix": [3, 10], "x": 10.75, "y": 3.25},
+ {"matrix": [3, 11], "x": 11.75, "y": 3.25},
+ {"matrix": [2, 13], "x": 12.75, "y": 3.25},
+ {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
+
+ {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.25},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.25},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.25},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.25},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.25},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.25},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.25},
+ {"matrix": [4, 9], "x": 9.25, "y": 4.25},
+ {"matrix": [4, 10], "x": 10.25, "y": 4.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4.25},
+ {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75},
+ {"matrix": [4, 13], "x": 14, "y": 4.25},
+ {"matrix": [4, 15], "x": 16.25, "y": 4.25},
+
+ {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
+ {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 14], "x": 15.25, "y": 5.25},
+ {"matrix": [5, 15], "x": 16.25, "y": 5.25},
+ {"matrix": [5, 16], "x": 17.25, "y": 5.25}
+ ]
+ },
+ "LAYOUT_tkl_iso_tsangan": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6.5, "y": 0},
+ {"matrix": [0, 7], "x": 7.5, "y": 0},
+ {"matrix": [0, 8], "x": 8.5, "y": 0},
+ {"matrix": [0, 9], "x": 9.5, "y": 0},
+ {"matrix": [0, 10], "x": 11, "y": 0},
+ {"matrix": [0, 11], "x": 12, "y": 0},
+ {"matrix": [0, 12], "x": 13, "y": 0},
+ {"matrix": [0, 13], "x": 14, "y": 0},
+ {"matrix": [0, 14], "x": 15.25, "y": 0},
+ {"matrix": [0, 15], "x": 16.25, "y": 0},
+ {"matrix": [0, 16], "x": 17.25, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1.25},
+ {"matrix": [1, 1], "x": 1, "y": 1.25},
+ {"matrix": [1, 2], "x": 2, "y": 1.25},
+ {"matrix": [1, 3], "x": 3, "y": 1.25},
+ {"matrix": [1, 4], "x": 4, "y": 1.25},
+ {"matrix": [1, 5], "x": 5, "y": 1.25},
+ {"matrix": [1, 6], "x": 6, "y": 1.25},
+ {"matrix": [1, 7], "x": 7, "y": 1.25},
+ {"matrix": [1, 8], "x": 8, "y": 1.25},
+ {"matrix": [1, 9], "x": 9, "y": 1.25},
+ {"matrix": [1, 10], "x": 10, "y": 1.25},
+ {"matrix": [1, 11], "x": 11, "y": 1.25},
+ {"matrix": [1, 12], "x": 12, "y": 1.25},
+ {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
+ {"matrix": [1, 14], "x": 15.25, "y": 1.25},
+ {"matrix": [1, 15], "x": 16.25, "y": 1.25},
+ {"matrix": [1, 16], "x": 17.25, "y": 1.25},
+
+ {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.25},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.25},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.25},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.25},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.25},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.25},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.25},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.25},
+ {"matrix": [2, 9], "x": 9.5, "y": 2.25},
+ {"matrix": [2, 10], "x": 10.5, "y": 2.25},
+ {"matrix": [2, 11], "x": 11.5, "y": 2.25},
+ {"matrix": [2, 12], "x": 12.5, "y": 2.25},
+ {"matrix": [2, 14], "x": 15.25, "y": 2.25},
+ {"matrix": [2, 15], "x": 16.25, "y": 2.25},
+ {"matrix": [2, 16], "x": 17.25, "y": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.25},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.25},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.25},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.25},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.25},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.25},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.25},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.25},
+ {"matrix": [3, 9], "x": 9.75, "y": 3.25},
+ {"matrix": [3, 10], "x": 10.75, "y": 3.25},
+ {"matrix": [3, 11], "x": 11.75, "y": 3.25},
+ {"matrix": [2, 13], "x": 12.75, "y": 3.25},
+ {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
+
+ {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.25},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.25},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.25},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.25},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.25},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.25},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.25},
+ {"matrix": [4, 9], "x": 9.25, "y": 4.25},
+ {"matrix": [4, 10], "x": 10.25, "y": 4.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4.25},
+ {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75},
+ {"matrix": [4, 15], "x": 16.25, "y": 4.25},
+
+ {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 1], "x": 1.5, "y": 5.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7},
+ {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 12], "x": 12.5, "y": 5.25},
+ {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 14], "x": 15.25, "y": 5.25},
+ {"matrix": [5, 15], "x": 16.25, "y": 5.25},
+ {"matrix": [5, 16], "x": 17.25, "y": 5.25}
+ ]
+ },
+ "LAYOUT_tkl_iso_tsangan_split_bs_rshift": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6.5, "y": 0},
+ {"matrix": [0, 7], "x": 7.5, "y": 0},
+ {"matrix": [0, 8], "x": 8.5, "y": 0},
+ {"matrix": [0, 9], "x": 9.5, "y": 0},
+ {"matrix": [0, 10], "x": 11, "y": 0},
+ {"matrix": [0, 11], "x": 12, "y": 0},
+ {"matrix": [0, 12], "x": 13, "y": 0},
+ {"matrix": [0, 13], "x": 14, "y": 0},
+ {"matrix": [0, 14], "x": 15.25, "y": 0},
+ {"matrix": [0, 15], "x": 16.25, "y": 0},
+ {"matrix": [0, 16], "x": 17.25, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1.25},
+ {"matrix": [1, 1], "x": 1, "y": 1.25},
+ {"matrix": [1, 2], "x": 2, "y": 1.25},
+ {"matrix": [1, 3], "x": 3, "y": 1.25},
+ {"matrix": [1, 4], "x": 4, "y": 1.25},
+ {"matrix": [1, 5], "x": 5, "y": 1.25},
+ {"matrix": [1, 6], "x": 6, "y": 1.25},
+ {"matrix": [1, 7], "x": 7, "y": 1.25},
+ {"matrix": [1, 8], "x": 8, "y": 1.25},
+ {"matrix": [1, 9], "x": 9, "y": 1.25},
+ {"matrix": [1, 10], "x": 10, "y": 1.25},
+ {"matrix": [1, 11], "x": 11, "y": 1.25},
+ {"matrix": [1, 12], "x": 12, "y": 1.25},
+ {"matrix": [1, 13], "x": 13, "y": 1.25},
+ {"matrix": [3, 12], "x": 14, "y": 1.25},
+ {"matrix": [1, 14], "x": 15.25, "y": 1.25},
+ {"matrix": [1, 15], "x": 16.25, "y": 1.25},
+ {"matrix": [1, 16], "x": 17.25, "y": 1.25},
+
+ {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.25},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.25},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.25},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.25},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.25},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.25},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.25},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.25},
+ {"matrix": [2, 9], "x": 9.5, "y": 2.25},
+ {"matrix": [2, 10], "x": 10.5, "y": 2.25},
+ {"matrix": [2, 11], "x": 11.5, "y": 2.25},
+ {"matrix": [2, 12], "x": 12.5, "y": 2.25},
+ {"matrix": [2, 14], "x": 15.25, "y": 2.25},
+ {"matrix": [2, 15], "x": 16.25, "y": 2.25},
+ {"matrix": [2, 16], "x": 17.25, "y": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.25},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.25},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.25},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.25},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.25},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.25},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.25},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.25},
+ {"matrix": [3, 9], "x": 9.75, "y": 3.25},
+ {"matrix": [3, 10], "x": 10.75, "y": 3.25},
+ {"matrix": [3, 11], "x": 11.75, "y": 3.25},
+ {"matrix": [2, 13], "x": 12.75, "y": 3.25},
+ {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
+
+ {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.25},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.25},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.25},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.25},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.25},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.25},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.25},
+ {"matrix": [4, 9], "x": 9.25, "y": 4.25},
+ {"matrix": [4, 10], "x": 10.25, "y": 4.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4.25},
+ {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75},
+ {"matrix": [4, 13], "x": 14, "y": 4.25},
+ {"matrix": [4, 15], "x": 16.25, "y": 4.25},
+
+ {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 1], "x": 1.5, "y": 5.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7},
+ {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 12], "x": 12.5, "y": 5.25},
+ {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 14], "x": 15.25, "y": 5.25},
+ {"matrix": [5, 15], "x": 16.25, "y": 5.25},
+ {"matrix": [5, 16], "x": 17.25, "y": 5.25}
+ ]
+ },
+ "LAYOUT_tkl_f13_iso": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1.25, "y": 0},
+ {"matrix": [0, 2], "x": 2.25, "y": 0},
+ {"matrix": [0, 3], "x": 3.25, "y": 0},
+ {"matrix": [0, 4], "x": 4.25, "y": 0},
+ {"matrix": [0, 5], "x": 5.5, "y": 0},
+ {"matrix": [0, 6], "x": 6.5, "y": 0},
+ {"matrix": [0, 7], "x": 7.5, "y": 0},
+ {"matrix": [0, 8], "x": 8.5, "y": 0},
+ {"matrix": [0, 9], "x": 9.75, "y": 0},
+ {"matrix": [0, 10], "x": 10.75, "y": 0},
+ {"matrix": [0, 11], "x": 11.75, "y": 0},
+ {"matrix": [0, 12], "x": 12.75, "y": 0},
+ {"matrix": [0, 13], "x": 14, "y": 0},
+ {"matrix": [0, 14], "x": 15.25, "y": 0},
+ {"matrix": [0, 15], "x": 16.25, "y": 0},
+ {"matrix": [0, 16], "x": 17.25, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1.25},
+ {"matrix": [1, 1], "x": 1, "y": 1.25},
+ {"matrix": [1, 2], "x": 2, "y": 1.25},
+ {"matrix": [1, 3], "x": 3, "y": 1.25},
+ {"matrix": [1, 4], "x": 4, "y": 1.25},
+ {"matrix": [1, 5], "x": 5, "y": 1.25},
+ {"matrix": [1, 6], "x": 6, "y": 1.25},
+ {"matrix": [1, 7], "x": 7, "y": 1.25},
+ {"matrix": [1, 8], "x": 8, "y": 1.25},
+ {"matrix": [1, 9], "x": 9, "y": 1.25},
+ {"matrix": [1, 10], "x": 10, "y": 1.25},
+ {"matrix": [1, 11], "x": 11, "y": 1.25},
+ {"matrix": [1, 12], "x": 12, "y": 1.25},
+ {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
+ {"matrix": [1, 14], "x": 15.25, "y": 1.25},
+ {"matrix": [1, 15], "x": 16.25, "y": 1.25},
+ {"matrix": [1, 16], "x": 17.25, "y": 1.25},
+
+ {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.25},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.25},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.25},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.25},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.25},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.25},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.25},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.25},
+ {"matrix": [2, 9], "x": 9.5, "y": 2.25},
+ {"matrix": [2, 10], "x": 10.5, "y": 2.25},
+ {"matrix": [2, 11], "x": 11.5, "y": 2.25},
+ {"matrix": [2, 12], "x": 12.5, "y": 2.25},
+ {"matrix": [2, 14], "x": 15.25, "y": 2.25},
+ {"matrix": [2, 15], "x": 16.25, "y": 2.25},
+ {"matrix": [2, 16], "x": 17.25, "y": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.25},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.25},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.25},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.25},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.25},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.25},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.25},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.25},
+ {"matrix": [3, 9], "x": 9.75, "y": 3.25},
+ {"matrix": [3, 10], "x": 10.75, "y": 3.25},
+ {"matrix": [3, 11], "x": 11.75, "y": 3.25},
+ {"matrix": [2, 13], "x": 12.75, "y": 3.25},
+ {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
+
+ {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.25},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.25},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.25},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.25},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.25},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.25},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.25},
+ {"matrix": [4, 9], "x": 9.25, "y": 4.25},
+ {"matrix": [4, 10], "x": 10.25, "y": 4.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4.25},
+ {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75},
+ {"matrix": [4, 15], "x": 16.25, "y": 4.25},
+
+ {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
+ {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 14], "x": 15.25, "y": 5.25},
+ {"matrix": [5, 15], "x": 16.25, "y": 5.25},
+ {"matrix": [5, 16], "x": 17.25, "y": 5.25}
+ ]
+ },
+ "LAYOUT_tkl_f13_iso_split_bs_rshift": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1.25, "y": 0},
+ {"matrix": [0, 2], "x": 2.25, "y": 0},
+ {"matrix": [0, 3], "x": 3.25, "y": 0},
+ {"matrix": [0, 4], "x": 4.25, "y": 0},
+ {"matrix": [0, 5], "x": 5.5, "y": 0},
+ {"matrix": [0, 6], "x": 6.5, "y": 0},
+ {"matrix": [0, 7], "x": 7.5, "y": 0},
+ {"matrix": [0, 8], "x": 8.5, "y": 0},
+ {"matrix": [0, 9], "x": 9.75, "y": 0},
+ {"matrix": [0, 10], "x": 10.75, "y": 0},
+ {"matrix": [0, 11], "x": 11.75, "y": 0},
+ {"matrix": [0, 12], "x": 12.75, "y": 0},
+ {"matrix": [0, 13], "x": 14, "y": 0},
+ {"matrix": [0, 14], "x": 15.25, "y": 0},
+ {"matrix": [0, 15], "x": 16.25, "y": 0},
+ {"matrix": [0, 16], "x": 17.25, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1.25},
+ {"matrix": [1, 1], "x": 1, "y": 1.25},
+ {"matrix": [1, 2], "x": 2, "y": 1.25},
+ {"matrix": [1, 3], "x": 3, "y": 1.25},
+ {"matrix": [1, 4], "x": 4, "y": 1.25},
+ {"matrix": [1, 5], "x": 5, "y": 1.25},
+ {"matrix": [1, 6], "x": 6, "y": 1.25},
+ {"matrix": [1, 7], "x": 7, "y": 1.25},
+ {"matrix": [1, 8], "x": 8, "y": 1.25},
+ {"matrix": [1, 9], "x": 9, "y": 1.25},
+ {"matrix": [1, 10], "x": 10, "y": 1.25},
+ {"matrix": [1, 11], "x": 11, "y": 1.25},
+ {"matrix": [1, 12], "x": 12, "y": 1.25},
+ {"matrix": [1, 13], "x": 13, "y": 1.25},
+ {"matrix": [3, 12], "x": 14, "y": 1.25},
+ {"matrix": [1, 14], "x": 15.25, "y": 1.25},
+ {"matrix": [1, 15], "x": 16.25, "y": 1.25},
+ {"matrix": [1, 16], "x": 17.25, "y": 1.25},
+
+ {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.25},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.25},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.25},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.25},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.25},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.25},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.25},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.25},
+ {"matrix": [2, 9], "x": 9.5, "y": 2.25},
+ {"matrix": [2, 10], "x": 10.5, "y": 2.25},
+ {"matrix": [2, 11], "x": 11.5, "y": 2.25},
+ {"matrix": [2, 12], "x": 12.5, "y": 2.25},
+ {"matrix": [2, 14], "x": 15.25, "y": 2.25},
+ {"matrix": [2, 15], "x": 16.25, "y": 2.25},
+ {"matrix": [2, 16], "x": 17.25, "y": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.25},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.25},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.25},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.25},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.25},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.25},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.25},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.25},
+ {"matrix": [3, 9], "x": 9.75, "y": 3.25},
+ {"matrix": [3, 10], "x": 10.75, "y": 3.25},
+ {"matrix": [3, 11], "x": 11.75, "y": 3.25},
+ {"matrix": [2, 13], "x": 12.75, "y": 3.25},
+ {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
+
+ {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.25},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.25},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.25},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.25},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.25},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.25},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.25},
+ {"matrix": [4, 9], "x": 9.25, "y": 4.25},
+ {"matrix": [4, 10], "x": 10.25, "y": 4.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4.25},
+ {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75},
+ {"matrix": [4, 13], "x": 14, "y": 4.25},
+ {"matrix": [4, 15], "x": 16.25, "y": 4.25},
+
+ {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
+ {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 14], "x": 15.25, "y": 5.25},
+ {"matrix": [5, 15], "x": 16.25, "y": 5.25},
+ {"matrix": [5, 16], "x": 17.25, "y": 5.25}
+ ]
+ },
+ "LAYOUT_tkl_f13_iso_tsangan": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1.25, "y": 0},
+ {"matrix": [0, 2], "x": 2.25, "y": 0},
+ {"matrix": [0, 3], "x": 3.25, "y": 0},
+ {"matrix": [0, 4], "x": 4.25, "y": 0},
+ {"matrix": [0, 5], "x": 5.5, "y": 0},
+ {"matrix": [0, 6], "x": 6.5, "y": 0},
+ {"matrix": [0, 7], "x": 7.5, "y": 0},
+ {"matrix": [0, 8], "x": 8.5, "y": 0},
+ {"matrix": [0, 9], "x": 9.75, "y": 0},
+ {"matrix": [0, 10], "x": 10.75, "y": 0},
+ {"matrix": [0, 11], "x": 11.75, "y": 0},
+ {"matrix": [0, 12], "x": 12.75, "y": 0},
+ {"matrix": [0, 13], "x": 14, "y": 0},
+ {"matrix": [0, 14], "x": 15.25, "y": 0},
+ {"matrix": [0, 15], "x": 16.25, "y": 0},
+ {"matrix": [0, 16], "x": 17.25, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1.25},
+ {"matrix": [1, 1], "x": 1, "y": 1.25},
+ {"matrix": [1, 2], "x": 2, "y": 1.25},
+ {"matrix": [1, 3], "x": 3, "y": 1.25},
+ {"matrix": [1, 4], "x": 4, "y": 1.25},
+ {"matrix": [1, 5], "x": 5, "y": 1.25},
+ {"matrix": [1, 6], "x": 6, "y": 1.25},
+ {"matrix": [1, 7], "x": 7, "y": 1.25},
+ {"matrix": [1, 8], "x": 8, "y": 1.25},
+ {"matrix": [1, 9], "x": 9, "y": 1.25},
+ {"matrix": [1, 10], "x": 10, "y": 1.25},
+ {"matrix": [1, 11], "x": 11, "y": 1.25},
+ {"matrix": [1, 12], "x": 12, "y": 1.25},
+ {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
+ {"matrix": [1, 14], "x": 15.25, "y": 1.25},
+ {"matrix": [1, 15], "x": 16.25, "y": 1.25},
+ {"matrix": [1, 16], "x": 17.25, "y": 1.25},
+
+ {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.25},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.25},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.25},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.25},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.25},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.25},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.25},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.25},
+ {"matrix": [2, 9], "x": 9.5, "y": 2.25},
+ {"matrix": [2, 10], "x": 10.5, "y": 2.25},
+ {"matrix": [2, 11], "x": 11.5, "y": 2.25},
+ {"matrix": [2, 12], "x": 12.5, "y": 2.25},
+ {"matrix": [2, 14], "x": 15.25, "y": 2.25},
+ {"matrix": [2, 15], "x": 16.25, "y": 2.25},
+ {"matrix": [2, 16], "x": 17.25, "y": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.25},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.25},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.25},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.25},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.25},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.25},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.25},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.25},
+ {"matrix": [3, 9], "x": 9.75, "y": 3.25},
+ {"matrix": [3, 10], "x": 10.75, "y": 3.25},
+ {"matrix": [3, 11], "x": 11.75, "y": 3.25},
+ {"matrix": [2, 13], "x": 12.75, "y": 3.25},
+ {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
+
+ {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.25},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.25},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.25},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.25},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.25},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.25},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.25},
+ {"matrix": [4, 9], "x": 9.25, "y": 4.25},
+ {"matrix": [4, 10], "x": 10.25, "y": 4.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4.25},
+ {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75},
+ {"matrix": [4, 15], "x": 16.25, "y": 4.25},
+
+ {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 1], "x": 1.5, "y": 5.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7},
+ {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 12], "x": 12.5, "y": 5.25},
+ {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 14], "x": 15.25, "y": 5.25},
+ {"matrix": [5, 15], "x": 16.25, "y": 5.25},
+ {"matrix": [5, 16], "x": 17.25, "y": 5.25}
+ ]
+ },
+ "LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1.25, "y": 0},
+ {"matrix": [0, 2], "x": 2.25, "y": 0},
+ {"matrix": [0, 3], "x": 3.25, "y": 0},
+ {"matrix": [0, 4], "x": 4.25, "y": 0},
+ {"matrix": [0, 5], "x": 5.5, "y": 0},
+ {"matrix": [0, 6], "x": 6.5, "y": 0},
+ {"matrix": [0, 7], "x": 7.5, "y": 0},
+ {"matrix": [0, 8], "x": 8.5, "y": 0},
+ {"matrix": [0, 9], "x": 9.75, "y": 0},
+ {"matrix": [0, 10], "x": 10.75, "y": 0},
+ {"matrix": [0, 11], "x": 11.75, "y": 0},
+ {"matrix": [0, 12], "x": 12.75, "y": 0},
+ {"matrix": [0, 13], "x": 14, "y": 0},
+ {"matrix": [0, 14], "x": 15.25, "y": 0},
+ {"matrix": [0, 15], "x": 16.25, "y": 0},
+ {"matrix": [0, 16], "x": 17.25, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1.25},
+ {"matrix": [1, 1], "x": 1, "y": 1.25},
+ {"matrix": [1, 2], "x": 2, "y": 1.25},
+ {"matrix": [1, 3], "x": 3, "y": 1.25},
+ {"matrix": [1, 4], "x": 4, "y": 1.25},
+ {"matrix": [1, 5], "x": 5, "y": 1.25},
+ {"matrix": [1, 6], "x": 6, "y": 1.25},
+ {"matrix": [1, 7], "x": 7, "y": 1.25},
+ {"matrix": [1, 8], "x": 8, "y": 1.25},
+ {"matrix": [1, 9], "x": 9, "y": 1.25},
+ {"matrix": [1, 10], "x": 10, "y": 1.25},
+ {"matrix": [1, 11], "x": 11, "y": 1.25},
+ {"matrix": [1, 12], "x": 12, "y": 1.25},
+ {"matrix": [1, 13], "x": 13, "y": 1.25},
+ {"matrix": [3, 12], "x": 14, "y": 1.25},
+ {"matrix": [1, 14], "x": 15.25, "y": 1.25},
+ {"matrix": [1, 15], "x": 16.25, "y": 1.25},
+ {"matrix": [1, 16], "x": 17.25, "y": 1.25},
+
+ {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.25},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.25},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.25},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.25},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.25},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.25},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.25},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.25},
+ {"matrix": [2, 9], "x": 9.5, "y": 2.25},
+ {"matrix": [2, 10], "x": 10.5, "y": 2.25},
+ {"matrix": [2, 11], "x": 11.5, "y": 2.25},
+ {"matrix": [2, 12], "x": 12.5, "y": 2.25},
+ {"matrix": [2, 14], "x": 15.25, "y": 2.25},
+ {"matrix": [2, 15], "x": 16.25, "y": 2.25},
+ {"matrix": [2, 16], "x": 17.25, "y": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.25},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.25},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.25},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.25},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.25},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.25},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.25},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.25},
+ {"matrix": [3, 9], "x": 9.75, "y": 3.25},
+ {"matrix": [3, 10], "x": 10.75, "y": 3.25},
+ {"matrix": [3, 11], "x": 11.75, "y": 3.25},
+ {"matrix": [2, 13], "x": 12.75, "y": 3.25},
+ {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
+
+ {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.25},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.25},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.25},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.25},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.25},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.25},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.25},
+ {"matrix": [4, 9], "x": 9.25, "y": 4.25},
+ {"matrix": [4, 10], "x": 10.25, "y": 4.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4.25},
+ {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75},
+ {"matrix": [4, 13], "x": 14, "y": 4.25},
+ {"matrix": [4, 15], "x": 16.25, "y": 4.25},
+
+ {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 1], "x": 1.5, "y": 5.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7},
+ {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 12], "x": 12.5, "y": 5.25},
+ {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
+ {"matrix": [5, 14], "x": 15.25, "y": 5.25},
+ {"matrix": [5, 15], "x": 16.25, "y": 5.25},
+ {"matrix": [5, 16], "x": 17.25, "y": 5.25}
+ ]
}
}
}
diff --git a/keyboards/cannonkeys/bastiontkl/matrix_diagram.md b/keyboards/cannonkeys/bastiontkl/matrix_diagram.md
new file mode 100644
index 000000000000..6b3e3f60dd0c
--- /dev/null
+++ b/keyboards/cannonkeys/bastiontkl/matrix_diagram.md
@@ -0,0 +1,27 @@
+# Matrix Diagram for CannonKeys BastionTKL
+
+```
+┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐┌───┬───┬───┐
+│00 │ │02 │03 │04 │05 │ │06 │07 │08 │09 │ │0A │0B │0C │0D ││0E │0F │0G │ F12 Row
+└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘└───┴───┴───┘
+┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐
+│00 ││01 │02 │03 │04 ││05 │06 │07 │08 ││09 │0A │0B │0C ││0D ││0E │0F │0G │
+└───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘
+┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐ ┌───────┐
+│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │3C ││1E │1F │1G │ │1D │ 2u Backspace
+├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ └─┬─────┤
+│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D ││2E │2F │2G │ │ │
+├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ ┌──┴┐3D │ ISO Enter
+│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │ │2D │ │
+├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ └───┴────┘
+│40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │4D │ │4F │
+├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐
+│50 │51 │52 │56 │5A │5B │5C │5D ││5E │5F │5G │
+└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘
+┌────────┐ ┌──────────┐
+│40 │ 2.25u LShift 2.75u RShift │4C │
+└────────┘ └──────────┘
+┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐
+│50 │51 │52 │56 │5B │5C │5D │ Tsangan/WKL
+└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
+```
diff --git a/keyboards/cannonkeys/meetuppad2023/info.json b/keyboards/cannonkeys/meetuppad2023/info.json
new file mode 100644
index 000000000000..e55d4361d84e
--- /dev/null
+++ b/keyboards/cannonkeys/meetuppad2023/info.json
@@ -0,0 +1,40 @@
+{
+ "manufacturer": "CannonKeys",
+ "keyboard_name": "Meetup Pad 2023",
+ "maintainer": "awkannan",
+ "bootloader": "stm32-dfu",
+ "diode_direction": "COL2ROW",
+ "features": {
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true
+ },
+ "matrix_pins": {
+ "cols": ["B11", "B10", "B2", "B0"],
+ "rows": ["B1", "A7"]
+ },
+ "processor": "STM32F072",
+ "url": "https://cannonkeys.com",
+ "usb": {
+ "device_version": "0.0.1",
+ "pid": "0x2023",
+ "vid": "0xCA04"
+ },
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"matrix": [1, 0], "x": 0, "y": 0},
+ {"matrix": [0, 0], "x": 1, "y": 0},
+ {"matrix": [1, 1], "x": 0, "y": 1},
+ {"matrix": [0, 1], "x": 1, "y": 1},
+ {"matrix": [1, 2], "x": 0, "y": 2},
+ {"matrix": [0, 2], "x": 1, "y": 2},
+ {"matrix": [1, 3], "x": 0, "y": 3},
+ {"matrix": [0, 3], "x": 1, "y": 3}
+ ]
+ }
+ }
+}
diff --git a/keyboards/cannonkeys/meetuppad2023/keymaps/default/keymap.c b/keyboards/cannonkeys/meetuppad2023/keymaps/default/keymap.c
new file mode 100644
index 000000000000..790839f831e0
--- /dev/null
+++ b/keyboards/cannonkeys/meetuppad2023/keymaps/default/keymap.c
@@ -0,0 +1,20 @@
+// Copyright 2023 Andrew Kannan
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ KC_1, KC_2,
+ KC_3, KC_4,
+ KC_5, KC_6,
+ KC_7, MO(1)
+ ),
+
+ [1] = LAYOUT(
+ QK_BOOT, KC_8,
+ KC_9, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS
+ )
+};
diff --git a/keyboards/cannonkeys/meetuppad2023/keymaps/via/keymap.c b/keyboards/cannonkeys/meetuppad2023/keymaps/via/keymap.c
new file mode 100644
index 000000000000..8039eb260ea9
--- /dev/null
+++ b/keyboards/cannonkeys/meetuppad2023/keymaps/via/keymap.c
@@ -0,0 +1,35 @@
+// Copyright 2023 Andrew Kannan
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+enum custom_keycodes {
+ MYMACRO = QK_KB_0,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ MYMACRO, KC_1,
+ KC_2, KC_3,
+ KC_4, KC_5,
+ KC_6, MO(1)
+ ),
+
+ [1] = LAYOUT(
+ QK_BOOT, KC_7,
+ KC_8, KC_9,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS
+ )
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case MYMACRO:
+ if (record->event.pressed) {
+ SEND_STRING("I went to the CannonKeys 2023 meetup and all I got was this macropad");
+ }
+ break;
+ }
+ return true;
+};
diff --git a/keyboards/cannonkeys/meetuppad2023/keymaps/via/rules.mk b/keyboards/cannonkeys/meetuppad2023/keymaps/via/rules.mk
new file mode 100644
index 000000000000..1e5b99807cb7
--- /dev/null
+++ b/keyboards/cannonkeys/meetuppad2023/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/meetuppad2023/readme.md b/keyboards/cannonkeys/meetuppad2023/readme.md
new file mode 100644
index 000000000000..73312c1b6976
--- /dev/null
+++ b/keyboards/cannonkeys/meetuppad2023/readme.md
@@ -0,0 +1,18 @@
+# CannonKeys Meetup Pad 2023
+
+* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan)
+* Hardware Supported: STM32F072CBT6
+
+Make example for this keyboard (after setting up your build environment):
+
+ make cannonkeys/meetuppad2023:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+## Bootloader
+
+Enter the bootloader in 3 ways:
+
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (top right on this board) and plug in the keyboard
+* **Physical reset button**: Swap the boot switch on the back of the PCB to "1" and hit the reset button
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/cannonkeys/meetuppad2023/rules.mk b/keyboards/cannonkeys/meetuppad2023/rules.mk
new file mode 100644
index 000000000000..0ab54aaaf718
--- /dev/null
+++ b/keyboards/cannonkeys/meetuppad2023/rules.mk
@@ -0,0 +1,2 @@
+# Wildcard to allow APM32 MCU
+DFU_SUFFIX_ARGS = -v FFFF -p FFFF
diff --git a/keyboards/chosfox/cf81/info.json b/keyboards/chosfox/cf81/info.json
index db9f3e1d52df..827347f41e3b 100644
--- a/keyboards/chosfox/cf81/info.json
+++ b/keyboards/chosfox/cf81/info.json
@@ -252,7 +252,7 @@
{ "label": ">", "matrix": [4, 9], "x": 10.25, "y": 4.25 },
{ "label": "?", "matrix": [4, 10], "x": 11.25, "y": 4.25 },
{ "label": "Shift", "matrix": [4, 13], "w": 1.75, "x": 12.25, "y": 4.25 },
- { "label": "Up", "matrix": [4, 14], "x": 14.25, "y": 4.25 },
+ { "label": "Up", "matrix": [4, 14], "x": 14.25, "y": 4.5 },
{ "label": "Ctrl", "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.25 },
{ "label": "Win", "matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 5.25 },
@@ -261,9 +261,9 @@
{ "label": "Alt", "matrix": [5, 9], "x": 10, "y": 5.25 },
{ "label": "Fn", "matrix": [5, 10], "x": 11, "y": 5.25 },
{ "label": "Ctrl", "matrix": [5, 11], "x": 12, "y": 5.25 },
- { "label": "Left", "matrix": [5, 13], "x": 13.25, "y": 5.25 },
- { "label": "Down", "matrix": [5, 14], "x": 14.25, "y": 5.25 },
- { "label": "Right", "matrix": [5, 15], "x": 15.25, "y": 5.25 }
+ { "label": "Left", "matrix": [5, 13], "x": 13.25, "y": 5.5 },
+ { "label": "Down", "matrix": [5, 14], "x": 14.25, "y": 5.5 },
+ { "label": "Right", "matrix": [5, 15], "x": 15.25, "y": 5.5 }
]
}
}
diff --git a/keyboards/chosfox/cf81/keymaps/default/keymap.c b/keyboards/chosfox/cf81/keymaps/default/keymap.c
index 753bdebc0a49..030ef2e2c141 100644
--- a/keyboards/chosfox/cf81/keymaps/default/keymap.c
+++ b/keyboards/chosfox/cf81/keymaps/default/keymap.c
@@ -61,7 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
#if defined(ENCODER_MAP_ENABLE)
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[WIN_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[WIN_FN] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[MAC_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
diff --git a/keyboards/chosfox/cf81/keymaps/via/keymap.c b/keyboards/chosfox/cf81/keymaps/via/keymap.c
index 753bdebc0a49..030ef2e2c141 100644
--- a/keyboards/chosfox/cf81/keymaps/via/keymap.c
+++ b/keyboards/chosfox/cf81/keymaps/via/keymap.c
@@ -61,7 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
#if defined(ENCODER_MAP_ENABLE)
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[WIN_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[WIN_FN] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[MAC_B] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
diff --git a/keyboards/doio/kb16/kb16.c b/keyboards/doio/kb16/kb16.c
index 34b315a87b15..05f5792ea7e6 100644
--- a/keyboards/doio/kb16/kb16.c
+++ b/keyboards/doio/kb16/kb16.c
@@ -20,6 +20,11 @@
// OLED animation
#include "./lib/logo.h"
+// Default timeout for displaying boot logo.
+#ifndef OLED_LOGO_TIMEOUT
+ #define OLED_LOGO_TIMEOUT 5000
+#endif
+
#ifdef OLED_ENABLE
uint16_t startup_timer;
@@ -32,16 +37,14 @@
bool oled_task_kb(void) {
static bool finished_logo = false;
- if ((timer_elapsed(startup_timer) < 5000) && !finished_logo) {
+ if ((timer_elapsed(startup_timer) < OLED_LOGO_TIMEOUT) && !finished_logo) {
render_logo();
} else {
finished_logo = true;
-
if (!oled_task_user()) {
return false;
}
}
-
return true;
}
#endif
diff --git a/keyboards/dp3000/dp3000.c b/keyboards/dp3000/dp3000.c
index 3d99670fe36d..c3f64cbd77f5 100644
--- a/keyboards/dp3000/dp3000.c
+++ b/keyboards/dp3000/dp3000.c
@@ -13,22 +13,84 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-#include "quantum.h"
-bool oled_task_kb(void) {
- if (!oled_task_user()) {
- return false;
- }
+#include "dp3000.h"
+
+#define LOGO_TIMEOUT 3000
+#define CUSTOM_OLED_TIMEOUT 30000
+
+static uint32_t logo_timer = 0;
+static bool display_logo = true;
+
+void dp3000_logo(void) {
+ static const char PROGMEM dp3000_logo[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x60, 0x7c, 0x7c, 0x60, 0x60, 0x60, 0x60,
+ 0x7c, 0x7c, 0x60, 0x60, 0x60, 0x60, 0x7c, 0x7c, 0x60, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x86, 0x86, 0x86, 0xff, 0xff, 0x00, 0x00, 0xf8, 0xf8, 0x18, 0x18, 0xf0, 0xe0,
+ 0x00, 0x00, 0xf8, 0xf8, 0x18, 0x18, 0xf8, 0xf0, 0x00, 0x00, 0xff, 0xff, 0x86, 0x86, 0x86, 0x00,
+ 0x00, 0x00, 0x00, 0x18, 0x18, 0x98, 0x98, 0xf8, 0xf0, 0x00, 0xf0, 0xf8, 0x18, 0x18, 0xf8, 0xf0,
+ 0x00, 0xf0, 0xf8, 0x18, 0x18, 0xf8, 0xf0, 0x00, 0xf0, 0xf8, 0x18, 0x18, 0xf8, 0xf0, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x61, 0x61, 0x61, 0xff, 0xff, 0x00, 0x00, 0x1f, 0x1f, 0x18, 0x18, 0x0f, 0x07,
+ 0x00, 0x00, 0x1f, 0x1f, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0xff, 0xff, 0x61, 0x61, 0x61, 0x00,
+ 0x00, 0x00, 0x00, 0x18, 0x18, 0x19, 0x19, 0x1f, 0x0f, 0x00, 0x0f, 0x1f, 0x18, 0x18, 0x1f, 0x0f,
+ 0x00, 0x0f, 0x1f, 0x18, 0x18, 0x1f, 0x0f, 0x00, 0x0f, 0x1f, 0x18, 0x18, 0x1f, 0x0f, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x06, 0x3e, 0x3e, 0x06, 0x06, 0x06, 0x06,
+ 0x3e, 0x3e, 0x06, 0x06, 0x06, 0x06, 0x3e, 0x3e, 0x06, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ };
+ oled_write_raw_P(dp3000_logo, sizeof(dp3000_logo));
+}
+
+void default_status(void) {
+ oled_set_cursor(0, 0);
oled_write_P(PSTR("LAYER: "), false);
oled_write_char('0' + get_highest_layer(layer_state), false);
-
- led_t led_state = host_keyboard_led_state();
oled_set_cursor(0, 1);
+ oled_write_P(PSTR("LOCK: "), false);
+ led_t led_state = host_keyboard_led_state();
oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
- oled_set_cursor(0, 2);
oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
- oled_set_cursor(0, 3);
oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
+}
+
+bool oled_task_kb(void) {
+ if (!oled_task_user()) {
+ return false;
+ }
+ if (timer_elapsed32(logo_timer) > LOGO_TIMEOUT) {
+ display_logo = false;
+ oled_clear();
+ logo_timer = timer_read32();
+ }
+ if (last_input_activity_elapsed() > CUSTOM_OLED_TIMEOUT) {
+ oled_off();
+ }else {
+ oled_on();
+ }
+ if (display_logo) {
+ dp3000_logo();
+ } else {
+ default_status();
+ }
return false;
}
diff --git a/keyboards/dp3000/dp3000.h b/keyboards/dp3000/dp3000.h
new file mode 100644
index 000000000000..a1f12945dd06
--- /dev/null
+++ b/keyboards/dp3000/dp3000.h
@@ -0,0 +1,24 @@
+/*
+ * Copyright 2023 deddia permana (@depermana12)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ */
+#pragma once
+
+#include "quantum.h"
+
+void default_status(void);
+void dp3000_logo(void);
+bool oled_task_kb(void);
diff --git a/keyboards/dp3000/info.json b/keyboards/dp3000/info.json
index cdb9fe4547d9..d2c4c5ffa914 100644
--- a/keyboards/dp3000/info.json
+++ b/keyboards/dp3000/info.json
@@ -1,6 +1,5 @@
{
"manufacturer": "depermana12",
- "keyboard_name": "dp3000",
"maintainer": "depermana12",
"diode_direction": "COL2ROW",
"development_board": "promicro",
@@ -10,7 +9,6 @@
"console": false,
"extrakey": true,
"encoder": true,
- "rgb_matrix": true,
"oled": true,
"mousekey": false,
"nkro": false
@@ -20,14 +18,12 @@
},
"url": "https://github.com/depermana12",
"usb": {
- "device_version": "1.0.1",
- "vid": "0x4450",
- "pid": "0x6470"
+ "vid": "0x4450"
},
"encoder": {
"rotary": [
- { "pin_a": "B2", "pin_b": "B1"},
- { "pin_a": "F4", "pin_b": "F5"}
+ { "pin_a": "B2", "pin_b": "B1" },
+ { "pin_a": "F4", "pin_b": "F5" }
]
},
"ws2812": {
@@ -76,8 +72,8 @@
]
},
"matrix_pins": {
- "cols": ["D4", "D7", "B4", "C6"],
- "rows": ["F6", "F7", "B3"]
+ "cols": [ "D4", "D7", "B4", "C6" ],
+ "rows": [ "F6", "F7", "B3" ]
},
"layouts": {
"LAYOUT": {
diff --git a/keyboards/dp3000/readme.md b/keyboards/dp3000/readme.md
index 3844a66757d0..8e2c8871d9fd 100644
--- a/keyboards/dp3000/readme.md
+++ b/keyboards/dp3000/readme.md
@@ -3,18 +3,21 @@
![dp3000 macropad](https://i.imgur.com/uBHS8EYh.jpg)
dp3000 is a simple yet elegant macropad, 2x4 (8 keys), dual encoder, embedded with an Atmel 32u4 chip, powered by QMK.
-
+* Rev. 1 Support RGB matrix
+* Rev. 2 Support RGB light (underglow)
* Keyboard Maintainer: [Deddia Permana](https://github.com/depermana12)
-* Hardware Supported: DP3000 PCB, ATmega32u4
+* Hardware Supported: DP3000 PCB rev1 and rev2, ATmega32u4
* Hardware Availability: [tokopedia.com/gundamtricks](https://www.tokopedia.com/gundamtricks)
Make example for this keyboard (after setting up your build environment):
- make dp3000:default
+ make dp3000/rev1:default
+ make dp3000/rev2:default
Flashing example for this keyboard:
- make dp3000:default:flash
+ make dp3000/rev1:default:flash
+ make dp3000/rev2: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).
@@ -22,6 +25,6 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to
Enter the bootloader in 3 ways:
-* Bootmagic reset: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
+* Bootmagic reset: Hold down the key at (0,0) in the matrix (left rotary encoder push switch) and plug in the keyboard
* Physical reset button: Briefly press reset button twice, located in front of the first rotary encoder (left rotary encoder)
* Keycode in layout: Press the key mapped to QK_BOOT if it is available
diff --git a/keyboards/dp3000/rev1/info.json b/keyboards/dp3000/rev1/info.json
new file mode 100644
index 000000000000..7ea2d101c4fe
--- /dev/null
+++ b/keyboards/dp3000/rev1/info.json
@@ -0,0 +1,59 @@
+{
+ "keyboard_name": "dp3000",
+ "features": {
+ "rgb_matrix": true
+ },
+ "usb": {
+ "device_version": "1.0.1",
+ "pid": "0x6470"
+ },
+ "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_pinwheel": true,
+ "cycle_spiral": true,
+ "cycle_up_down": true,
+ "gradient_left_right": true,
+ "gradient_up_down": true,
+ "hue_breathing": true,
+ "hue_pendulum": true,
+ "hue_wave": true,
+ "rainbow_moving_chevron": true,
+ "raindrops": true,
+ "solid_color": true,
+ "solid_reactive": true,
+ "solid_reactive_multinexus": true,
+ "solid_reactive_simple": true,
+ "solid_splash": true,
+ "splash": true,
+ "typing_heatmap": true
+ },
+ "driver": "ws2812",
+ "layout": [
+ {"matrix": [1, 0], "x": 0, "y": 32, "flags": 4},
+ {"matrix": [1, 1], "x": 25, "y": 32, "flags": 4},
+ {"matrix": [1, 2], "x": 37, "y": 32, "flags": 4},
+ {"matrix": [1, 3], "x": 75, "y": 32, "flags": 4},
+ {"matrix": [2, 0], "x": 75, "y": 16, "flags": 4},
+ {"matrix": [2, 1], "x": 37, "y": 16, "flags": 4},
+ {"matrix": [2, 2], "x": 25, "y": 16, "flags": 4},
+ {"matrix": [2, 3], "x": 0, "y": 16, "flags": 4}
+ ],
+ "max_brightness": 180,
+ "sat_steps": 8,
+ "speed_steps": 10,
+ "val_steps": 8
+ },
+ "ws2812": {
+ "pin": "B5"
+ }
+}
diff --git a/keyboards/dp3000/rev1/rules.mk b/keyboards/dp3000/rev1/rules.mk
new file mode 100644
index 000000000000..6e7633bfe015
--- /dev/null
+++ b/keyboards/dp3000/rev1/rules.mk
@@ -0,0 +1 @@
+# This file intentionally left blank
diff --git a/keyboards/dp3000/rev2/info.json b/keyboards/dp3000/rev2/info.json
new file mode 100644
index 000000000000..f6f03eeb639c
--- /dev/null
+++ b/keyboards/dp3000/rev2/info.json
@@ -0,0 +1,31 @@
+{
+ "keyboard_name": "dp3000 rev2",
+ "features": {
+ "rgblight": true
+ },
+ "usb": {
+ "device_version": "2.0.0",
+ "pid": "0x3132"
+ },
+ "rgblight": {
+ "animations": {
+ "alternating": true,
+ "breathing": true,
+ "christmas": true,
+ "knight": true,
+ "rainbow_mood": true,
+ "rainbow_swirl": true,
+ "rgb_test": true,
+ "snake": true,
+ "static_gradient": true,
+ "twinkle": true
+ },
+ "led_count": 4,
+ "max_brightness": 180,
+ "saturation_steps": 8,
+ "sleep": true
+ },
+ "ws2812": {
+ "pin": "B6"
+ }
+}
diff --git a/keyboards/dp3000/rev2/rules.mk b/keyboards/dp3000/rev2/rules.mk
new file mode 100644
index 000000000000..6e7633bfe015
--- /dev/null
+++ b/keyboards/dp3000/rev2/rules.mk
@@ -0,0 +1 @@
+# This file intentionally left blank
diff --git a/keyboards/dp3000/rules.mk b/keyboards/dp3000/rules.mk
index 6e7633bfe015..0f44aefd4458 100644
--- a/keyboards/dp3000/rules.mk
+++ b/keyboards/dp3000/rules.mk
@@ -1 +1 @@
-# This file intentionally left blank
+DEFAULT_FOLDER = dp3000/rev1
diff --git a/keyboards/ferris/keymaps/test/keymap.c b/keyboards/ferris/keymaps/test/keymap.c
index 3706886a2410..ba5e31e2cb90 100644
--- a/keyboards/ferris/keymaps/test/keymap.c
+++ b/keyboards/ferris/keymaps/test/keymap.c
@@ -7,7 +7,13 @@ void matrix_init_user(void) {
//debug_mouse=true;
}
+// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT(KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_P0, DB_TOGG, KC_P2, KC_P3)
+ [0] = LAYOUT(
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
+ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
+ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
+ KC_1, KC_2, KC_3, KC_4
+ )
};
-
+// clang-format on
diff --git a/keyboards/idank/sweeq/config.h b/keyboards/idank/sweeq/config.h
new file mode 100644
index 000000000000..e926de7f5f8a
--- /dev/null
+++ b/keyboards/idank/sweeq/config.h
@@ -0,0 +1,6 @@
+// Copyright 2023 Idan Kamara (@idank)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#define MASTER_RIGHT
diff --git a/keyboards/idank/sweeq/info.json b/keyboards/idank/sweeq/info.json
new file mode 100644
index 000000000000..0de9cd3aafac
--- /dev/null
+++ b/keyboards/idank/sweeq/info.json
@@ -0,0 +1,80 @@
+{
+ "url": "https://github.com/idank/keyboards/tree/main/sweeq",
+ "maintainer": "idank",
+ "keyboard_name": "Sweeq",
+ "manufacturer": "idank",
+ "development_board": "promicro",
+ "usb": {
+ "vid": "0xC3AB",
+ "pid": "0x3139",
+ "device_version": "0.0.1"
+ },
+ "features": {
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true
+ },
+ "matrix_pins": {
+ "cols": [ "F4", "F5", "F6", "F7", "B1" ],
+ "rows": [ "D4", "C6", "D7", "E6" ]
+ },
+ "diode_direction": "COL2ROW",
+ "split": {
+ "enabled": true,
+ "soft_serial_pin": "D2"
+ },
+ "community_layouts": ["split_3x5_2"],
+ "layout_aliases": {
+ "LAYOUT": "LAYOUT_split_3x5_2"
+ },
+ "layouts": {
+ "LAYOUT_split_3x5_2": {
+ "layout": [
+ {"x": 0, "y": 0.93, "matrix": [0, 0]},
+ {"x": 1, "y": 0.31, "matrix": [0, 1]},
+ {"x": 2, "y": 0, "matrix": [0, 2]},
+ {"x": 3, "y": 0.28, "matrix": [0, 3]},
+ {"x": 4, "y": 0.42, "matrix": [0, 4]},
+
+ {"x": 7, "y": 0.42, "matrix": [4, 4]},
+ {"x": 8, "y": 0.28, "matrix": [4, 3]},
+ {"x": 9, "y": 0, "matrix": [4, 2]},
+ {"x": 10, "y": 0.31, "matrix": [4, 1]},
+ {"x": 11, "y": 0.93, "matrix": [4, 0]},
+
+ {"x": 0, "y": 1.93, "matrix": [1, 0]},
+ {"x": 1, "y": 1.31, "matrix": [1, 1]},
+ {"x": 2, "y": 1, "matrix": [1, 2]},
+ {"x": 3, "y": 1.28, "matrix": [1, 3]},
+ {"x": 4, "y": 1.42, "matrix": [1, 4]},
+
+ {"x": 7, "y": 1.42, "matrix": [5, 4]},
+ {"x": 8, "y": 1.28, "matrix": [5, 3]},
+ {"x": 9, "y": 1, "matrix": [5, 2]},
+ {"x": 10, "y": 1.31, "matrix": [5, 1]},
+ {"x": 11, "y": 1.93, "matrix": [5, 0]},
+
+ {"x": 0, "y": 2.93, "matrix": [2, 0]},
+ {"x": 1, "y": 2.31, "matrix": [2, 1]},
+ {"x": 2, "y": 2, "matrix": [2, 2]},
+ {"x": 3, "y": 2.28, "matrix": [2, 3]},
+ {"x": 4, "y": 2.42, "matrix": [2, 4]},
+
+ {"x": 7, "y": 2.42, "matrix": [6, 4]},
+ {"x": 8, "y": 2.28, "matrix": [6, 3]},
+ {"x": 9, "y": 2, "matrix": [6, 2]},
+ {"x": 10, "y": 2.31, "matrix": [6, 1]},
+ {"x": 11, "y": 2.93, "matrix": [6, 0]},
+
+ {"x": 3.5, "y": 3.75, "matrix": [3, 3]},
+ {"x": 4.5, "y": 4, "matrix": [3, 4]},
+
+ {"x": 6.5, "y": 4, "matrix": [7, 4]},
+ {"x": 7.5, "y": 3.75, "matrix": [7, 3]}
+ ]
+ }
+ }
+}
diff --git a/keyboards/idank/sweeq/keymaps/default/config.h b/keyboards/idank/sweeq/keymaps/default/config.h
new file mode 100644
index 000000000000..e70efa40fa5f
--- /dev/null
+++ b/keyboards/idank/sweeq/keymaps/default/config.h
@@ -0,0 +1,21 @@
+// Copyright 2023 Idan Kamara (@idank)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+// Set the mouse settings to a comfortable speed/accuracy trade-off,
+// assuming a screen refresh rate of 60 Htz or higher
+// The default is 50. This makes the mouse ~3 times faster and more accurate
+#define MOUSEKEY_INTERVAL 16
+// The default is 20. Since we made the mouse about 3 times faster with the previous setting,
+// give it more time to accelerate to max speed to retain precise control over short distances.
+#define MOUSEKEY_TIME_TO_MAX 40
+// The default is 300. Let's try and make this as low as possible while keeping the cursor responsive
+#define MOUSEKEY_DELAY 100
+// It makes sense to use the same delay for the mouseweel
+#define MOUSEKEY_WHEEL_DELAY 100
+// The default is 100
+#define MOUSEKEY_WHEEL_INTERVAL 50
+// The default is 40
+#define MOUSEKEY_WHEEL_TIME_TO_MAX 100
+
+#define QUICK_TAP_TERM 0
diff --git a/keyboards/idank/sweeq/keymaps/default/keymap.json b/keyboards/idank/sweeq/keymaps/default/keymap.json
new file mode 100644
index 000000000000..a7845f6e2389
--- /dev/null
+++ b/keyboards/idank/sweeq/keymaps/default/keymap.json
@@ -0,0 +1,107 @@
+{
+ "version": 1,
+ "notes": "sweeq default keymap",
+ "documentation": "\"This file is a QMK Configurator export. You can import this at . It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: \n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n",
+ "keyboard": "idank/sweeq",
+ "keymap": "default",
+ "layout": "LAYOUT_split_3x5_2",
+ "layers": [
+ ["KC_Q" , "KC_W" , "KC_E" , "KC_R" , "KC_T",
+ "KC_Y" , "KC_U" , "KC_I" , "KC_O" , "KC_P",
+
+ "LSFT_T(KC_A)", "LT(5,KC_S)" , "LT(1,KC_D)" , "LT(3,KC_F)" , "KC_G",
+ "KC_H" , "LT(4,KC_J)" , "LT(2,KC_K)" , "LT(6,KC_L)" , "LSFT_T(KC_SCLN)",
+
+ "KC_Z" , "LCTL_T(KC_X)", "LALT_T(KC_C)" , "KC_V" , "KC_B",
+ "KC_N" , "KC_M" , "LALT_T(KC_COMM)", "LCTL_T(KC_DOT)", "KC_SLSH",
+
+ "KC_P0" , "KC_BSPC",
+ "LT(7,KC_SPC)", "KC_P1"
+ ],
+ ["KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
+ "KC_TRNS" , "KC_BTN1" , "KC_WH_U" , "KC_BTN2" , "KC_TRNS",
+
+ "KC_TRNS" , "KC_BTN2" , "KC_NO" , "KC_BTN1" , "KC_TRNS",
+ "KC_TRNS" , "KC_MS_L" , "KC_MS_D" , "KC_MS_U" , "KC_MS_R",
+
+ "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
+ "KC_TRNS" , "KC_WH_L" , "KC_WH_D" , "KC_WH_R" , "KC_TRNS",
+
+ "KC_TRNS" , "KC_TRNS",
+ "KC_TRNS" , "KC_TRNS"
+ ],
+ ["KC_TRNS" , "KC_TRNS" , "KC_PGUP" , "KC_TRNS" , "KC_TRNS",
+ "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
+
+ "KC_LEFT" , "KC_UP" , "KC_DOWN" , "KC_RGHT" , "KC_TRNS",
+ "KC_TRNS" , "KC_LGUI" , "KC_NO" , "LCTL(KC_LALT)" , "LCA(KC_LSFT)",
+
+ "KC_TRNS" , "KC_HOME" , "KC_PGDN" , "KC_END" , "KC_TRNS",
+ "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
+
+ "KC_TRNS" , "KC_TRNS",
+ "KC_TRNS" , "KC_TRNS"
+ ],
+ ["KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
+ "KC_TRNS" , "KC_UNDS" , "KC_PIPE" , "KC_QUOT" , "KC_TRNS",
+
+ "KC_CIRC" , "KC_ASTR" , "KC_AMPR" , "KC_NO" , "KC_TRNS",
+ "KC_HASH" , "KC_TILD" , "KC_SLSH" , "KC_DQUO" , "KC_DLR",
+
+ "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
+ "KC_TRNS" , "KC_MINS" , "KC_BSLS" , "KC_GRV" , "KC_TRNS",
+
+ "RGB_RMOD" , "KC_TRNS",
+ "KC_TRNS" , "RGB_MOD"
+ ],
+ ["KC_TRNS" , "KC_COLN" , "KC_LT" , "KC_GT" , "KC_SCLN",
+ "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
+
+ "KC_LCBR" , "KC_RCBR" , "KC_LPRN" , "KC_RPRN" , "KC_AT",
+ "KC_TRNS" , "KC_NO" , "KC_EQL" , "KC_PLUS" , "KC_PERC",
+
+ "KC_TRNS" , "KC_EXLM" , "KC_LBRC" , "KC_RBRC" , "KC_TRNS",
+ "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
+
+ "KC_VOLD" , "KC_TRNS",
+ "KC_TRNS" , "KC_VOLU"
+ ],
+ ["KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
+ "KC_TRNS" , "KC_F7" , "KC_F8" , "KC_F9" , "KC_F10",
+
+ "KC_TRNS" , "KC_NO" , "LCTL(KC_LALT)" , "KC_TRNS" , "KC_TRNS",
+ "KC_TRNS" , "KC_F4" , "KC_F5" , "KC_F6" , "KC_F11",
+
+ "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
+ "KC_TRNS" , "KC_F1" , "KC_F2" , "KC_F3" , "KC_F12",
+
+ "KC_TRNS" , "KC_TRNS",
+ "KC_TRNS" , "KC_TRNS"
+ ],
+ ["KC_PSLS" , "KC_7" , "KC_8" , "KC_9" , "KC_PPLS",
+ "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
+
+ "KC_0" , "KC_1" , "KC_2" , "KC_3" , "KC_PMNS",
+ "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_NO" , "KC_TRNS",
+
+ "KC_PAST" , "KC_4" , "KC_5" , "KC_6" , "KC_PEQL",
+ "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
+
+ "KC_TRNS" , "KC_TRNS",
+ "KC_TRNS" , "KC_TRNS"
+ ],
+ ["KC_TRNS" , "KC_TRNS" , "KC_COLN" , "KC_ESC" , "KC_TRNS",
+ "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_DEL",
+
+ "KC_TRNS" , "KC_PERC" , "KC_SLSH" , "KC_ENT" , "KC_TRNS",
+ "DF(1)" , "KC_LGUI" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
+
+ "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_EXLM" , "KC_TRNS",
+ "DF(0)" , "KC_TRNS" , "RALT_T(KC_COMM)", "RCTL_T(KC_DOT)", "QK_BOOT",
+
+ "KC_TRNS" , "KC_TAB",
+ "KC_NO" , "KC_TRNS"
+ ]
+ ],
+ "author": "idank"
+}
diff --git a/keyboards/idank/sweeq/keymaps/default/readme.md b/keyboards/idank/sweeq/keymaps/default/readme.md
new file mode 100644
index 000000000000..4d08a5502aa2
--- /dev/null
+++ b/keyboards/idank/sweeq/keymaps/default/readme.md
@@ -0,0 +1 @@
+See the readme of the Ferris [default keymap](https://github.com/qmk/qmk_firmware/tree/master/keyboards/ferris/keymaps/default).
diff --git a/keyboards/idank/sweeq/keymaps/via/config.h b/keyboards/idank/sweeq/keymaps/via/config.h
new file mode 100644
index 000000000000..12a4fc233fb3
--- /dev/null
+++ b/keyboards/idank/sweeq/keymaps/via/config.h
@@ -0,0 +1,7 @@
+// Copyright 2023 Idan Kamara (@idank)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+// Good defaults for home row modifiers
+#define TAPPING_TERM 230
diff --git a/keyboards/idank/sweeq/keymaps/via/keymap.c b/keyboards/idank/sweeq/keymaps/via/keymap.c
new file mode 100644
index 000000000000..18ef09f7bb93
--- /dev/null
+++ b/keyboards/idank/sweeq/keymaps/via/keymap.c
@@ -0,0 +1,36 @@
+// Copyright 2023 Idan Kamara (@idank)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+#define KC_CTSC RCTL_T(KC_SCLN)
+#define KC_CTLA LCTL_T(KC_A)
+#define KC_LSHZ LSFT_T(KC_Z)
+#define KC_RLSH RSFT_T(KC_SLSH)
+#define KC_SPM2 LT(2, KC_SPC)
+#define KC_BSM1 LT(1, KC_BSPC)
+#define KC_GUTA GUI_T(KC_TAB)
+#define KC_CLGV CTL_T(KC_GRV)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
+ KC_CTLA, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
+ KC_LSHZ, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RLSH,
+ KC_CLGV, KC_BSM1, KC_SPM2, KC_GUTA
+ ),
+
+ [1] = LAYOUT(
+ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
+ QK_GESC, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_QUOT,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_ENT,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+ [2] = LAYOUT(
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
+ KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_PIPE,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_TRNS, KC_TRNS, QK_BOOT,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+};
diff --git a/keyboards/idank/sweeq/keymaps/via/rules.mk b/keyboards/idank/sweeq/keymaps/via/rules.mk
new file mode 100644
index 000000000000..36b7ba9cbc98
--- /dev/null
+++ b/keyboards/idank/sweeq/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
diff --git a/keyboards/idank/sweeq/readme.md b/keyboards/idank/sweeq/readme.md
new file mode 100644
index 000000000000..caaf5c705fac
--- /dev/null
+++ b/keyboards/idank/sweeq/readme.md
@@ -0,0 +1,31 @@
+# Sweeq
+
+![sweeq](https://i.imgur.com/TGSyHHxh.png)
+
+*Sweeq is a Ferris Sweep clone that uses diodes, instead of the latter's direct pin matrix.*
+
+The primary goal is to free up the SDA/SCL pins so they can be used by auxiliary devices such as a trackball, trackpoint or an OLED screen.
+
+Other than the diode changes and the ability to use hotswap sockets, this keyboard is identical to the original Sweep.
+
+* Keyboard Maintainer: [@idank](https://github.com/idank)
+* Hardware Supported: [sweeq](https://github.com/idank/keyboards/tree/main/sweeq)
+* Hardware Availability: *[holykeebs](https://holykeebs.com)*
+
+Make example for this keyboard (after setting up your build environment):
+
+ make idank/sweeq:default
+
+Flashing example for this keyboard:
+
+ make idank/sweeq:default:flash
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+## Bootloader
+
+Enter the bootloader in 3 ways:
+
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
+* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/idank/sweeq/rules.mk b/keyboards/idank/sweeq/rules.mk
new file mode 100644
index 000000000000..6e7633bfe015
--- /dev/null
+++ b/keyboards/idank/sweeq/rules.mk
@@ -0,0 +1 @@
+# This file intentionally left blank
diff --git a/keyboards/kiserdesigns/madeline/config.h b/keyboards/kiserdesigns/madeline/config.h
new file mode 100644
index 000000000000..8522d7cd431c
--- /dev/null
+++ b/keyboards/kiserdesigns/madeline/config.h
@@ -0,0 +1,25 @@
+/* Copyright 2021 Noah Kiser (NCKiser)
+ *
+ * This 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 LOCKING_SUPPORT_ENABLE
+#define LOCKING_RESYNC_ENABLE
+
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U
+
+#define RP2040_FLASH_GENERIC_03H
diff --git a/keyboards/kiserdesigns/madeline/info.json b/keyboards/kiserdesigns/madeline/info.json
new file mode 100644
index 000000000000..73d3f5ccff4a
--- /dev/null
+++ b/keyboards/kiserdesigns/madeline/info.json
@@ -0,0 +1,77 @@
+{
+ "manufacturer": "rubybuilds",
+ "keyboard_name": "Madeline",
+ "maintainer": "NCKiser",
+ "bootloader": "rp2040",
+ "diode_direction": "COL2ROW",
+ "encoder": {
+ "enabled": true,
+ "rotary": [
+ {"pin_a": "GP13", "pin_b": "GP15"}
+ ]
+ },
+ "features": {
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true
+ },
+ "matrix_pins": {
+ "cols": ["GP25", "GP26", "GP27", "GP28", "GP29", "GP9", "GP0", "GP1", "GP2", "GP3"],
+ "rows": ["GP5", "GP4", "GP12", "GP7"]
+ },
+ "processor": "RP2040",
+ "qmk": {
+ "tap_keycode_delay": 10
+ },
+ "url": "https://qmk.fm/keyboards",
+ "usb": {
+ "device_version": "0.0.1",
+ "pid": "0x6D64",
+ "vid": "0x5242"
+ },
+ "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": 6.5, "y": 0},
+ {"matrix": [0, 6], "x": 7.5, "y": 0},
+ {"matrix": [0, 7], "x": 8.5, "y": 0},
+ {"matrix": [0, 8], "x": 9.5, "y": 0},
+ {"matrix": [0, 9], "x": 10.5, "y": 0, "w": 1.25},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.25},
+ {"matrix": [1, 1], "x": 1.25, "y": 1},
+ {"matrix": [1, 2], "x": 2.25, "y": 1},
+ {"matrix": [1, 3], "x": 3.25, "y": 1},
+ {"matrix": [1, 4], "x": 4.25, "y": 1},
+ {"matrix": [1, 5], "x": 6.75, "y": 1},
+ {"matrix": [1, 6], "x": 7.75, "y": 1},
+ {"matrix": [1, 7], "x": 8.75, "y": 1},
+ {"matrix": [1, 8], "x": 9.75, "y": 1},
+ {"matrix": [1, 9], "x": 10.75, "y": 1},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 6.25, "y": 2},
+ {"matrix": [2, 6], "x": 7.25, "y": 2},
+ {"matrix": [2, 7], "x": 8.25, "y": 2},
+ {"matrix": [2, 8], "x": 9.25, "y": 2},
+ {"matrix": [2, 9], "x": 10.25, "y": 2, "w": 1.5},
+ {"matrix": [3, 0], "x": 0, "y": 3},
+ {"matrix": [3, 1], "x": 2.5, "y": 3},
+ {"matrix": [3, 3], "x": 3.5, "y": 3, "w": 2.25},
+ {"matrix": [3, 6], "x": 6.25, "y": 3, "w": 2},
+ {"matrix": [3, 7], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 10.75, "y": 3}
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/keyboards/kiserdesigns/madeline/keymaps/default/keymap.c b/keyboards/kiserdesigns/madeline/keymaps/default/keymap.c
new file mode 100644
index 000000000000..09c9d3a2ff7c
--- /dev/null
+++ b/keyboards/kiserdesigns/madeline/keymaps/default/keymap.c
@@ -0,0 +1,53 @@
+/* Copyright 2021 Noah Kiser (NCKiser)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include QMK_KEYBOARD_H
+
+enum layers {
+ _BASE,
+ _NUM_SYM
+};
+
+#define KC_NUM_SPC LT(_NUM_SYM, KC_SPC)
+#define KC_GA LGUI_T(KC_A)
+#define KC_AS LALT_T(KC_S)
+#define KC_CD LCTL_T(KC_D)
+#define KC_SF LSFT_T(KC_F)
+#define KC_SJ RSFT_T(KC_J)
+#define KC_CK RCTL_T(KC_K)
+#define KC_AL RALT_T(KC_L)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_BASE] = LAYOUT(
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
+ KC_GA, KC_AS, KC_CD, KC_SF, KC_G, KC_H, KC_SJ, KC_CK, KC_AL, KC_ENT,
+ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT,
+ KC_LCTL, KC_LALT, KC_BSPC, KC_NUM_SPC, KC_RGUI, KC_RCTL
+ ),
+
+ [_NUM_SYM] = LAYOUT(
+ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
+ KC_ESC, KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_BSPC,
+ KC_LCBR, KC_LBRC, KC_LPRN, KC_UNDS, KC_NO, KC_RPRN, KC_RBRC, KC_RCBR, KC_SCLN, KC_QUOTE,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+};
+
+#if defined(ENCODER_MAP_ENABLE)
+ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+ [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+ [1] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN) }
+ };
+#endif
diff --git a/keyboards/kiserdesigns/madeline/keymaps/default/rules.mk b/keyboards/kiserdesigns/madeline/keymaps/default/rules.mk
new file mode 100644
index 000000000000..ee325681483f
--- /dev/null
+++ b/keyboards/kiserdesigns/madeline/keymaps/default/rules.mk
@@ -0,0 +1 @@
+ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/kiserdesigns/madeline/readme.md b/keyboards/kiserdesigns/madeline/readme.md
new file mode 100644
index 000000000000..138368282a9a
--- /dev/null
+++ b/keyboards/kiserdesigns/madeline/readme.md
@@ -0,0 +1,23 @@
+# Madeline
+
+![Madeline](https://i.imgur.com/MBT5kg2h.jpg)
+
+*A cool QAZ-Alice hybrid designed based on the Adalyn by [Marv](https://github.com/MarvFPV/Adalyn) with a PCB by [Rossman360](https://github.com/Rossman360)*
+* Keyboard Maintainer: [NCKiser](https://github.com/NCKiser)
+* Hardware Supported: Madeline PCB, rp2040
+* Hardware Availability: kb.rubybuilds.com
+
+Make example for this keyboard (after setting up your build environment):
+
+ make kiserdesigns/madeline:default
+
+Flashing example for this keyboard:
+
+ make kiserdesigns/madeline:default:flash
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+## Bootloader
+Enter the bootloader in 3 ways:
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
+* **Physical reset button**: Briefly double-tap the button on the back of the PCB - some may have pads you must short instead
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/kiserdesigns/madeline/rules.mk b/keyboards/kiserdesigns/madeline/rules.mk
new file mode 100644
index 000000000000..6e7633bfe015
--- /dev/null
+++ b/keyboards/kiserdesigns/madeline/rules.mk
@@ -0,0 +1 @@
+# This file intentionally left blank
diff --git a/keyboards/macro1/keymaps/default/keymap.c b/keyboards/macro1/keymaps/default/keymap.c
index 22cff4a718b0..047ea6980857 100644
--- a/keyboards/macro1/keymaps/default/keymap.c
+++ b/keyboards/macro1/keymaps/default/keymap.c
@@ -41,24 +41,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS,
KC_KP_4, KC_KP_5, KC_KP_6,
KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER,
- KC_KP_0, KC_KP_DOT),
-
- [1] = LAYOUT_numpad(
- KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS),
-
- [2] = LAYOUT_numpad(
- KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS), };
-
-
+ KC_KP_0, KC_KP_DOT)
+};
+
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+ [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}
+};
+#endif
diff --git a/keyboards/nullbitsco/snap/keymaps/bongo_reactive/keymap.c b/keyboards/nullbitsco/snap/keymaps/bongo_reactive/keymap.c
index 3dfe7e4057c9..447449702312 100644
--- a/keyboards/nullbitsco/snap/keymaps/bongo_reactive/keymap.c
+++ b/keyboards/nullbitsco/snap/keymaps/bongo_reactive/keymap.c
@@ -92,7 +92,7 @@ static void render_status(void) {
// Only update if the LED state has changed
// Otherwise, the OLED will not turn off if an LED is on.
- if (persistent_led_state != led_state) {
+ if (persistent_led_state.raw != led_state.raw) {
persistent_led_state = led_state;
oled_write_ln_P(PSTR(""), false);
diff --git a/keyboards/nullbitsco/snap/keymaps/oled/keymap.c b/keyboards/nullbitsco/snap/keymaps/oled/keymap.c
index 004d2f40c141..07145ed6def9 100644
--- a/keyboards/nullbitsco/snap/keymaps/oled/keymap.c
+++ b/keyboards/nullbitsco/snap/keymaps/oled/keymap.c
@@ -119,7 +119,7 @@ static void render_status(void) {
// Only update if the LED state has changed
// Otherwise, the OLED will not turn off if an LED is on.
- if (persistent_led_state != led_state) {
+ if (persistent_led_state.raw != led_state.raw) {
persistent_led_state = led_state;
oled_write_ln_P(PSTR(""), false);
diff --git a/keyboards/nullbitsco/snap/keymaps/typehud/keymap.c b/keyboards/nullbitsco/snap/keymaps/typehud/keymap.c
index afdc5333ee8d..231c9d85452b 100644
--- a/keyboards/nullbitsco/snap/keymaps/typehud/keymap.c
+++ b/keyboards/nullbitsco/snap/keymaps/typehud/keymap.c
@@ -99,7 +99,7 @@ static void render_status(void) {
// Only update if the LED state has changed
// Otherwise, the OLED will not turn off if an LED is on.
- if (persistent_led_state != led_state) {
+ if (persistent_led_state.raw != led_state.raw) {
persistent_led_state = led_state;
oled_write_ln_P(PSTR(" "), false);
diff --git a/keyboards/redragon/k667/config.h b/keyboards/redragon/k667/config.h
new file mode 100644
index 000000000000..e17865a40394
--- /dev/null
+++ b/keyboards/redragon/k667/config.h
@@ -0,0 +1,28 @@
+/* Copyright 2023 temp4gh
+ *
+ * This 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 DRIVER_ADDR_1 0b1010000
+#define DRIVER_ADDR_2 0b1010011
+
+#define DRIVER_COUNT 2
+#define DRIVER_1_LED_TOTAL 45
+#define DRIVER_2_LED_TOTAL 45
+
+#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL+DRIVER_2_LED_TOTAL)
+
diff --git a/keyboards/redragon/k667/halconf.h b/keyboards/redragon/k667/halconf.h
new file mode 100644
index 000000000000..f1dae7232ed1
--- /dev/null
+++ b/keyboards/redragon/k667/halconf.h
@@ -0,0 +1,22 @@
+/* Copyright 2023 temp4gh
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#pragma once
+
+#include_next
+
+#undef HAL_USE_I2C
+#define HAL_USE_I2C TRUE
diff --git a/keyboards/redragon/k667/info.json b/keyboards/redragon/k667/info.json
new file mode 100644
index 000000000000..80d619531205
--- /dev/null
+++ b/keyboards/redragon/k667/info.json
@@ -0,0 +1,234 @@
+{
+ "manufacturer": "redragon",
+ "keyboard_name": "k667",
+ "bootloader": "stm32duino",
+ "bootmagic": {
+ "matrix": [1, 0]
+ },
+ "diode_direction": "COL2ROW",
+ "encoder": {
+ "rotary": [
+ {"pin_a": "B5", "pin_b": "B4"}
+ ]
+ },
+ "features": {
+ "bootmagic": true,
+ "console": true,
+ "encoder": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgb_matrix": true
+ },
+ "indicators": {
+ "caps_lock": "B8",
+ "on_state": 0
+ },
+ "matrix_pins": {
+ "cols": ["A6", "A7", "C4", "C5", "B0", "B1", "C6", "C7", "C8", "C9", "A8", "A9", "A10", "A13", "A14", "A15"],
+ "rows": ["A0", "A1", "A2", "A3", "A4", "A5"]
+ },
+ "processor": "STM32F103",
+ "rgb_matrix": {
+ "animations": {
+ "alphas_mods": true,
+ "band_sat": true,
+ "band_spiral_val": true,
+ "band_val": true,
+ "breathing": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_up_down": true,
+ "gradient_left_right": true,
+ "gradient_up_down": true,
+ "hue_wave": true,
+ "pixel_flow": true
+ },
+ "driver": "is31fl3733",
+ "layout": [
+ {"matrix": [0, 0], "x": 7, "y": 2, "flags": 4},
+ {"matrix": [0, 2], "x": 34, "y": 2, "flags": 4},
+ {"matrix": [0, 3], "x": 48, "y": 2, "flags": 4},
+ {"matrix": [0, 4], "x": 61, "y": 2, "flags": 4},
+ {"matrix": [0, 5], "x": 75, "y": 2, "flags": 4},
+ {"matrix": [0, 6], "x": 95, "y": 2, "flags": 4},
+ {"matrix": [0, 7], "x": 109, "y": 2, "flags": 4},
+ {"matrix": [0, 8], "x": 122, "y": 2, "flags": 4},
+ {"matrix": [0, 9], "x": 136, "y": 2, "flags": 4},
+ {"matrix": [0, 10], "x": 157, "y": 2, "flags": 4},
+ {"matrix": [0, 11], "x": 170, "y": 2, "flags": 4},
+ {"matrix": [0, 12], "x": 184, "y": 2, "flags": 4},
+ {"matrix": [0, 13], "x": 198, "y": 2, "flags": 4},
+ {"matrix": [0, 14], "x": 217, "y": 2, "flags": 4},
+ {"matrix": [1, 0], "x": 7, "y": 14, "flags": 4},
+ {"matrix": [1, 1], "x": 20, "y": 14, "flags": 4},
+ {"matrix": [1, 2], "x": 34, "y": 14, "flags": 4},
+ {"matrix": [1, 3], "x": 48, "y": 14, "flags": 4},
+ {"matrix": [1, 4], "x": 61, "y": 14, "flags": 4},
+ {"matrix": [1, 5], "x": 75, "y": 14, "flags": 4},
+ {"matrix": [1, 6], "x": 89, "y": 14, "flags": 4},
+ {"matrix": [1, 7], "x": 102, "y": 14, "flags": 4},
+ {"matrix": [1, 8], "x": 116, "y": 14, "flags": 4},
+ {"matrix": [1, 9], "x": 129, "y": 14, "flags": 4},
+ {"matrix": [1, 10], "x": 143, "y": 14, "flags": 4},
+ {"matrix": [1, 11], "x": 157, "y": 14, "flags": 4},
+ {"matrix": [1, 12], "x": 170, "y": 14, "flags": 4},
+ {"matrix": [1, 13], "x": 190, "y": 14, "flags": 4},
+ {"matrix": [1, 14], "x": 217, "y": 14, "flags": 4},
+ {"matrix": [2, 0], "x": 10, "y": 24, "flags": 4},
+ {"matrix": [2, 1], "x": 27, "y": 24, "flags": 4},
+ {"matrix": [2, 2], "x": 40, "y": 24, "flags": 4},
+ {"matrix": [2, 3], "x": 54, "y": 24, "flags": 4},
+ {"matrix": [2, 4], "x": 68, "y": 24, "flags": 4},
+ {"matrix": [2, 5], "x": 81, "y": 24, "flags": 4},
+ {"matrix": [2, 6], "x": 95, "y": 24, "flags": 4},
+ {"matrix": [2, 7], "x": 109, "y": 24, "flags": 4},
+ {"matrix": [2, 8], "x": 122, "y": 24, "flags": 4},
+ {"matrix": [2, 9], "x": 136, "y": 24, "flags": 4},
+ {"matrix": [2, 10], "x": 150, "y": 24, "flags": 4},
+ {"matrix": [2, 11], "x": 163, "y": 24, "flags": 4},
+ {"matrix": [2, 12], "x": 177, "y": 24, "flags": 4},
+ {"matrix": [2, 13], "x": 194, "y": 24, "flags": 4},
+ {"matrix": [2, 14], "x": 217, "y": 24, "flags": 4},
+ {"matrix": [3, 0], "x": 12, "y": 34, "flags": 4},
+ {"matrix": [3, 1], "x": 30, "y": 34, "flags": 4},
+ {"matrix": [3, 2], "x": 44, "y": 34, "flags": 4},
+ {"matrix": [3, 3], "x": 58, "y": 34, "flags": 4},
+ {"matrix": [3, 4], "x": 71, "y": 34, "flags": 4},
+ {"matrix": [3, 5], "x": 85, "y": 34, "flags": 4},
+ {"matrix": [3, 6], "x": 99, "y": 34, "flags": 4},
+ {"matrix": [3, 7], "x": 112, "y": 34, "flags": 4},
+ {"matrix": [3, 8], "x": 126, "y": 34, "flags": 4},
+ {"matrix": [3, 9], "x": 140, "y": 34, "flags": 4},
+ {"matrix": [3, 10], "x": 153, "y": 34, "flags": 4},
+ {"matrix": [3, 11], "x": 167, "y": 34, "flags": 4},
+ {"x": 180, "y": 34, "flags": 4},
+ {"matrix": [3, 13], "x": 189, "y": 34, "flags": 4},
+ {"matrix": [3, 14], "x": 217, "y": 34, "flags": 4},
+ {"matrix": [4, 0], "x": 8, "y": 44, "flags": 4},
+ {"x": 24, "y": 44, "flags": 4},
+ {"matrix": [4, 2], "x": 38, "y": 44, "flags": 4},
+ {"matrix": [4, 3], "x": 51, "y": 44, "flags": 4},
+ {"matrix": [4, 4], "x": 65, "y": 44, "flags": 4},
+ {"matrix": [4, 5], "x": 78, "y": 44, "flags": 4},
+ {"matrix": [4, 6], "x": 92, "y": 44, "flags": 4},
+ {"matrix": [4, 7], "x": 106, "y": 44, "flags": 4},
+ {"matrix": [4, 8], "x": 119, "y": 44, "flags": 4},
+ {"matrix": [4, 9], "x": 133, "y": 44, "flags": 4},
+ {"matrix": [4, 10], "x": 147, "y": 44, "flags": 4},
+ {"matrix": [4, 11], "x": 160, "y": 44, "flags": 4},
+ {"matrix": [4, 12], "x": 179, "y": 44, "flags": 4},
+ {"matrix": [4, 13], "x": 201, "y": 46, "flags": 4},
+ {"matrix": [4, 14], "x": 217, "y": 44, "flags": 4},
+ {"matrix": [5, 0], "x": 8, "y": 54, "flags": 4},
+ {"matrix": [5, 1], "x": 25, "y": 54, "flags": 4},
+ {"matrix": [5, 2], "x": 43, "y": 54, "flags": 4},
+ {"x": 67, "y": 57, "flags": 4},
+ {"x": 80, "y": 57, "flags": 4},
+ {"x": 94, "y": 54, "flags": 4},
+ {"matrix": [5, 6], "x": 107, "y": 57, "flags": 4},
+ {"x": 120, "y": 57, "flags": 4},
+ {"matrix": [5, 9], "x": 143, "y": 54, "flags": 4},
+ {"matrix": [5, 10], "x": 157, "y": 54, "flags": 4},
+ {"matrix": [5, 11], "x": 170, "y": 54, "flags": 4},
+ {"matrix": [5, 12], "x": 187, "y": 56, "flags": 4},
+ {"matrix": [5, 13], "x": 201, "y": 56, "flags": 4},
+ {"matrix": [5, 14], "x": 214, "y": 56, "flags": 4},
+ {"x": 207, "y": 23, "flags": 8},
+ {"x": 207, "y": 27, "flags": 8}
+ ]
+ },
+ "usb": {
+ "device_version": "0.0.1",
+ "pid": "0x0021",
+ "vid": "0x369B"
+ },
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"label": "ESC", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "F1", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "F2", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "F3", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "F4", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0},
+ {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0},
+ {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0},
+ {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0},
+ {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0},
+ {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0},
+ {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0},
+ {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0},
+ {"label": "END", "matrix": [0, 15], "x": 16.5, "y": 0},
+ {"label": "GRV", "matrix": [1, 0], "x": 0, "y": 1.25},
+ {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25},
+ {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25},
+ {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25},
+ {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25},
+ {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25},
+ {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25},
+ {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25},
+ {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25},
+ {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25},
+ {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25},
+ {"label": "MINS", "matrix": [1, 11], "x": 11, "y": 1.25},
+ {"label": "EQL", "matrix": [1, 12], "x": 12, "y": 1.25},
+ {"label": "BSPC", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
+ {"label": "HOME", "matrix": [1, 14], "x": 16.5, "y": 1.25},
+ {"label": "TAB", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
+ {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25},
+ {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25},
+ {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25},
+ {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25},
+ {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25},
+ {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25},
+ {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25},
+ {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25},
+ {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25},
+ {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25},
+ {"label": "LBRC", "matrix": [2, 11], "x": 11.5, "y": 2.25},
+ {"label": "RBRC", "matrix": [2, 12], "x": 12.5, "y": 2.25},
+ {"label": "BSLS", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
+ {"label": "DEL", "matrix": [2, 14], "x": 16.5, "y": 2.25},
+ {"label": "CAPS", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
+ {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25},
+ {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25},
+ {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25},
+ {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25},
+ {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25},
+ {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25},
+ {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25},
+ {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25},
+ {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25},
+ {"label": "SCLN", "matrix": [3, 10], "x": 10.75, "y": 3.25},
+ {"label": "QUOT", "matrix": [3, 11], "x": 11.75, "y": 3.25},
+ {"label": "ENT", "matrix": [3, 13], "x": 13.75, "y": 3.25, "w": 1.25},
+ {"label": "PGUP", "matrix": [3, 14], "x": 16.5, "y": 3.25},
+ {"label": "LSFT", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
+ {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25},
+ {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25},
+ {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25},
+ {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25},
+ {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25},
+ {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25},
+ {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25},
+ {"label": "COMM", "matrix": [4, 9], "x": 9.25, "y": 4.25},
+ {"label": "DOT", "matrix": [4, 10], "x": 10.25, "y": 4.25},
+ {"label": "SLSH", "matrix": [4, 11], "x": 11.25, "y": 4.25},
+ {"label": "RSFT", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75},
+ {"label": "UP", "matrix": [4, 13], "x": 15.25, "y": 4.25},
+ {"label": "PGDN", "matrix": [4, 14], "x": 16.5, "y": 4.25},
+ {"label": "LCTL", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
+ {"label": "LGUI", "matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
+ {"label": "LALT", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
+ {"label": "SPC", "matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
+ {"label": "RALT", "matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25},
+ {"label": "MO(1)", "matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25},
+ {"label": "RCTL", "matrix": [5, 11], "x": 13, "y": 5.25, "w": 1.25},
+ {"label": "LEFT", "matrix": [5, 12], "x": 14.25, "y": 5.25},
+ {"label": "DOWN", "matrix": [5, 13], "x": 15.25, "y": 5.25},
+ {"label": "RGHT", "matrix": [5, 14], "x": 16.5, "y": 5.25}
+ ]
+ }
+ }
+}
diff --git a/keyboards/redragon/k667/k667.c b/keyboards/redragon/k667/k667.c
new file mode 100644
index 000000000000..81aeef449463
--- /dev/null
+++ b/keyboards/redragon/k667/k667.c
@@ -0,0 +1,112 @@
+/* Copyright 2023 temp4gh
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+ {0, G_1, I_1, H_1},
+ {0, G_3, I_3, H_3},
+ {0, G_4, I_4, H_4},
+ {0, G_5, I_5, H_5},
+ {0, G_6, I_6, H_6},
+ {0, G_7, I_7, H_7},
+ {0, G_8, I_8, H_8},
+ {0, G_9, I_9, H_9},
+ {0, G_10, I_10, H_10},
+ {0, G_11, I_11, H_11},
+ {0, G_12, I_12, H_12},
+ {0, G_13, I_13, H_13},
+ {0, G_14, I_14, H_14},
+ {0, G_15, I_15, H_15},
+ {0, D_1, F_1, E_1},
+ {0, D_2, F_2, E_2},
+ {0, D_3, F_3, E_3},
+ {0, D_4, F_4, E_4},
+ {0, D_5, F_5, E_5},
+ {0, D_6, F_6, E_6},
+ {0, D_7, F_7, E_7},
+ {0, D_8, F_8, E_8},
+ {0, D_9, F_9, E_9},
+ {0, D_10, F_10, E_10},
+ {0, D_11, F_11, E_11},
+ {0, D_12, F_12, E_12},
+ {0, D_13, F_13, E_13},
+ {0, D_14, F_14, E_14},
+ {0, D_15, F_15, E_15},
+ {0, A_1, C_1, B_1},
+ {0, A_2, C_2, B_2},
+ {0, A_3, C_3, B_3},
+ {0, A_4, C_4, B_4},
+ {0, A_5, C_5, B_5},
+ {0, A_6, C_6, B_6},
+ {0, A_7, C_7, B_7},
+ {0, A_8, C_8, B_8},
+ {0, A_9, C_9, B_9},
+ {0, A_10, C_10, B_10},
+ {0, A_11, C_11, B_11},
+ {0, A_12, C_12, B_12},
+ {0, A_13, C_13, B_13},
+ {0, A_14, C_14, B_14},
+ {0, A_15, C_15, B_15},
+ {1, G_1, I_1, H_1},
+ {1, G_2, I_2, H_2},
+ {1, G_3, I_3, H_3},
+ {1, G_4, I_4, H_4},
+ {1, G_5, I_5, H_5},
+ {1, G_6, I_6, H_6},
+ {1, G_7, I_7, H_7},
+ {1, G_8, I_8, H_8},
+ {1, G_9, I_9, H_9},
+ {1, G_10, I_10, H_10},
+ {1, G_11, I_11, H_11},
+ {1, G_12, I_12, H_12},
+ {1, G_13, I_13, H_13},
+ {1, G_14, I_14, H_14},
+ {1, G_15, I_15, H_15},
+ {1, D_1, F_1, E_1},
+ {1, D_2, F_2, E_2},
+ {1, D_3, F_3, E_3},
+ {1, D_4, F_4, E_4},
+ {1, D_5, F_5, E_5},
+ {1, D_6, F_6, E_6},
+ {1, D_7, F_7, E_7},
+ {1, D_8, F_8, E_8},
+ {1, D_9, F_9, E_9},
+ {1, D_10, F_10, E_10},
+ {1, D_11, F_11, E_11},
+ {1, D_12, F_12, E_12},
+ {1, D_13, F_13, E_13},
+ {1, D_14, F_14, E_14},
+ {1, D_15, F_15, E_15},
+ {1, A_1, C_1, B_1},
+ {1, A_2, C_2, B_2},
+ {1, A_3, C_3, B_3},
+ {1, A_5, C_5, B_5},
+ {1, A_6, C_6, B_6},
+ {1, A_7, C_7, B_7},
+ {1, A_8, C_8, B_8},
+ {1, A_9, C_9, B_9},
+ {1, A_10, C_10, B_10},
+ {1, A_11, C_11, B_11},
+ {1, A_12, C_12, B_12},
+ {1, A_13, C_13, B_13},
+ {1, A_14, C_14, B_14},
+ {1, A_15, C_15, B_15},
+ {0, G_2, I_2, H_2},
+ {1, A_4, C_4, B_4}
+};
+#endif
diff --git a/keyboards/redragon/k667/keymaps/default/keymap.c b/keyboards/redragon/k667/keymaps/default/keymap.c
new file mode 100644
index 000000000000..48fab8614b09
--- /dev/null
+++ b/keyboards/redragon/k667/keymaps/default/keymap.c
@@ -0,0 +1,42 @@
+/* Copyright 2023 temp4gh
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include QMK_KEYBOARD_H
+
+enum layer_names
+{
+ _BASE,
+ _FnLay,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_BASE] = LAYOUT(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_END,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FnLay), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
+ ),
+ [_FnLay] = LAYOUT(
+ QK_BOOT, KC_MY_COMPUTER, KC_WWW_HOME, KC_CALCULATOR, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_MAIL, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAI, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, XXXXXXX, _______, XXXXXXX, RGB_SPD, RGB_VAD, RGB_SPI
+ )
+};
diff --git a/keyboards/redragon/k667/mcuconf.h b/keyboards/redragon/k667/mcuconf.h
new file mode 100644
index 000000000000..9187c76aad0d
--- /dev/null
+++ b/keyboards/redragon/k667/mcuconf.h
@@ -0,0 +1,22 @@
+/*
+ ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+#pragma once
+
+#include_next
+
+#undef STM32_I2C_USE_I2C1
+#define STM32_I2C_USE_I2C1 TRUE
diff --git a/keyboards/redragon/k667/readme.md b/keyboards/redragon/k667/readme.md
new file mode 100644
index 000000000000..71e5349ff642
--- /dev/null
+++ b/keyboards/redragon/k667/readme.md
@@ -0,0 +1,21 @@
+# K667
+
+![k667](https://i.imgur.com/7K5h5Obh.jpg)
+
+A customizable 75% keyboard.
+
+- Keyboard Maintainer: [temp4gh](https://github.com/temp4gh)
+- Hardware Supported: K667 PCB
+- Hardware Availability: www.redragonzone.com
+
+Make example for this keyboard (after setting up your build environment):
+
+ make redragon/k667:default
+
+Flashing example for this keyboard:
+
+ make redragon/k667:default:flash
+
+**Reset Key**: Hold down the key located at *K10*, commonly programmed as *Grave* while plugging in the keyboard.
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/redragon/k667/rules.mk b/keyboards/redragon/k667/rules.mk
new file mode 100644
index 000000000000..7ff128fa692e
--- /dev/null
+++ b/keyboards/redragon/k667/rules.mk
@@ -0,0 +1 @@
+# This file intentionally left blank
\ No newline at end of file
diff --git a/keyboards/wolf/m6_c/config.h b/keyboards/wolf/m6_c/config.h
new file mode 100644
index 000000000000..d5f391bcdd24
--- /dev/null
+++ b/keyboards/wolf/m6_c/config.h
@@ -0,0 +1,10 @@
+// Copyright 2023 contact@vwolf.be
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+
+#define RGB_MATRIX_LED_COUNT 6
+#define RGB_DISABLE_WHEN_USB_SUSPENDED
+#define RGB_MATRIX_KEYPRESSES
+#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
+
+#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
\ No newline at end of file
diff --git a/keyboards/wolf/m6_c/info.json b/keyboards/wolf/m6_c/info.json
new file mode 100644
index 000000000000..ff83a951641f
--- /dev/null
+++ b/keyboards/wolf/m6_c/info.json
@@ -0,0 +1,101 @@
+{
+ "manufacturer": "Rama",
+ "keyboard_name": "M6-C",
+ "maintainer": "ToastyStoemp",
+ "bootloader": "atmel-dfu",
+ "diode_direction": "COL2ROW",
+ "features": {
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": false,
+ "rgb_matrix": true
+ },
+ "matrix_pins": {
+ "cols": ["B0", "B1", "B7"],
+ "rows": ["B2", "B3"]
+ },
+ "processor": "atmega32u4",
+ "ws2812": {
+ "pin": "D5"
+ },
+ "rgb_matrix": {
+ "driver": "ws2812",
+ "max_brightness": 120,
+ "animations": {
+ "solid_color": true,
+ "alphas_mods": true,
+ "gradient_up_down": true,
+ "gradient_left_right": true,
+ "breathing": true,
+ "band_sat": true,
+ "band_val": true,
+ "band_pinwheel_sat": true,
+ "band_pinwheel_val": true,
+ "band_spiral_sat": true,
+ "band_spiral_val": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_up_down": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "rainbow_moving_chevron": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "dual_beacon": true,
+ "rainbow_beacon": true,
+ "rainbow_pinwheels": true,
+ "raindrops": true,
+ "jellybean_raindrops": true,
+ "hue_breathing": true,
+ "hue_pendulum": true,
+ "hue_wave": true,
+ "pixel_fractal": true,
+ "pixel_flow": true,
+ "pixel_rain": true,
+ "typing_heatmap": true,
+ "digital_rain": true,
+ "solid_reactive_simple": true,
+ "solid_reactive": true,
+ "solid_reactive_wide": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_cross": true,
+ "solid_reactive_multicross": true,
+ "solid_reactive_nexus": true,
+ "solid_reactive_multinexus": true,
+ "splash": true,
+ "multisplash": true,
+ "solid_splash": true,
+ "solid_multisplash": true
+ },
+ "layout": [
+ { "flags": 4, "matrix": [0, 0], "x": 0, "y": 0 },
+ { "flags": 4, "matrix": [0, 1], "x": 122, "y": 0 },
+ { "flags": 4, "matrix": [0, 2], "x": 243, "y": 0 },
+ { "flags": 4, "matrix": [1, 2], "x": 244, "y": 64 },
+ { "flags": 4, "matrix": [1, 1], "x": 122, "y": 64 },
+ { "flags": 4, "matrix": [1, 0], "x": 0, "y": 64 }
+ ]
+ },
+ "url": "",
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x0060",
+ "vid": "0x5453"
+ },
+ "community_layouts": ["ortho_2x3"],
+ "layouts": {
+ "LAYOUT_ortho_2x3": {
+ "layout": [
+ { "matrix": [0, 0], "x": 0, "y": 0 },
+ { "matrix": [0, 1], "x": 1, "y": 0 },
+ { "matrix": [0, 2], "x": 2, "y": 0 },
+ { "matrix": [1, 0], "x": 0, "y": 1 },
+ { "matrix": [1, 1], "x": 1, "y": 1 },
+ { "matrix": [1, 2], "x": 2, "y": 1 }
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/keyboards/wolf/m6_c/keymaps/default/keymap.c b/keyboards/wolf/m6_c/keymaps/default/keymap.c
new file mode 100644
index 000000000000..893ea2eb900a
--- /dev/null
+++ b/keyboards/wolf/m6_c/keymaps/default/keymap.c
@@ -0,0 +1,12 @@
+// Copyright 2020-2022 QMK (@qmk)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT_ortho_2x3(
+ KC_1, KC_2, KC_3,
+ KC_4, KC_5, KC_6
+ )
+};
diff --git a/keyboards/wolf/m6_c/keymaps/via/keymap.c b/keyboards/wolf/m6_c/keymaps/via/keymap.c
new file mode 100644
index 000000000000..893ea2eb900a
--- /dev/null
+++ b/keyboards/wolf/m6_c/keymaps/via/keymap.c
@@ -0,0 +1,12 @@
+// Copyright 2020-2022 QMK (@qmk)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT_ortho_2x3(
+ KC_1, KC_2, KC_3,
+ KC_4, KC_5, KC_6
+ )
+};
diff --git a/keyboards/wolf/m6_c/keymaps/via/rules.mk b/keyboards/wolf/m6_c/keymaps/via/rules.mk
new file mode 100644
index 000000000000..43061db1dd46
--- /dev/null
+++ b/keyboards/wolf/m6_c/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/wolf/m6_c/readme.md b/keyboards/wolf/m6_c/readme.md
new file mode 100644
index 000000000000..c07471dca01e
--- /dev/null
+++ b/keyboards/wolf/m6_c/readme.md
@@ -0,0 +1,24 @@
+# M6-C
+
+![M6-C](https://i.imgur.com/gkRotHh.jpeg)
+
+The following is the QMK Firmware for the M6-C PCB.
+
+* Keyboard Maintainer: [Wolf](https://github.com/ToastyStoemp)
+* Hardware Supported: M6-C PCB
+* Hardware Availability: https://ramaworks.store/products/m6-c
+
+Make example for this keyboard (after setting up your build environment):
+
+ make wolf/m6_c:default
+
+Flashing example for this keyboard:
+
+ make wolf/m6_c: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 ESC key and plug in the keyboard (Top Left most switch)
+* **Physical reset button**: Double press the button through the pinhole in the case
+* **Keycode in layout**: Press the key mapped to `QK_BOOT`
diff --git a/keyboards/wolf/m6_c/rules.mk b/keyboards/wolf/m6_c/rules.mk
new file mode 100644
index 000000000000..3437a35bdf1d
--- /dev/null
+++ b/keyboards/wolf/m6_c/rules.mk
@@ -0,0 +1,2 @@
+# Processor frequency
+F_CPU = 8000000
diff --git a/layouts/default/60_jis/default_60_jis/keymap.c b/layouts/default/60_jis/default_60_jis/keymap.c
index a35e3f0f795e..caaa82d38a72 100644
--- a/layouts/default/60_jis/default_60_jis/keymap.c
+++ b/layouts/default/60_jis/default_60_jis/keymap.c
@@ -21,7 +21,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_INT3, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
- KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_INT2, KC_RALT, KC_RGUI, KC_RCTL
)
};
diff --git a/quantum/dynamic_keymap.c b/quantum/dynamic_keymap.c
index 4c951283371b..3c22bbd4457f 100644
--- a/quantum/dynamic_keymap.c
+++ b/quantum/dynamic_keymap.c
@@ -26,6 +26,7 @@
# include "via.h"
# define DYNAMIC_KEYMAP_EEPROM_START (VIA_EEPROM_CONFIG_END)
#else
+# include "eeconfig.h"
# define DYNAMIC_KEYMAP_EEPROM_START (EECONFIG_SIZE)
#endif
diff --git a/util/install/macos.sh b/util/install/macos.sh
index 870b4bec9451..8890c5a3f08c 100755
--- a/util/install/macos.sh
+++ b/util/install/macos.sh
@@ -19,8 +19,13 @@ _qmk_install() {
# https://github.com/qmk/homebrew-qmk
brew install qmk/qmk/qmk
+ # Conflicts with new toolchain formulae
+ brew uninstall --ignore-dependencies arm-gcc-bin@8 >/dev/null 2>&1
+
+ # Keg-only, so need to be manually linked
brew link --force avr-gcc@8
- brew link --force arm-gcc-bin@8
+ brew link --force arm-none-eabi-binutils
+ brew link --force arm-none-eabi-gcc@8
python3 -m pip install -r $QMK_FIRMWARE_DIR/requirements.txt
}