From 51acd35e6f2196ca1d9a1328be92355b128d8239 Mon Sep 17 00:00:00 2001
From: Joel Challis
Date: Mon, 17 Jun 2024 19:22:47 +0100
Subject: Implement data driven serial driver (#23923)
---
data/mappings/info_rules.hjson | 1 +
1 file changed, 1 insertion(+)
(limited to 'data/mappings')
diff --git a/data/mappings/info_rules.hjson b/data/mappings/info_rules.hjson
index 97611bcf58..384bc87b78 100644
--- a/data/mappings/info_rules.hjson
+++ b/data/mappings/info_rules.hjson
@@ -41,6 +41,7 @@
"RGB_MATRIX_DRIVER": {"info_key": "rgb_matrix.driver"},
"RGBLIGHT_DRIVER": {"info_key": "rgblight.driver"},
"SECURE_ENABLE": {"info_key": "secure.enabled", "value_type": "bool"},
+ "SERIAL_DRIVER": {"info_key": "split.serial.driver"},
"SPLIT_KEYBOARD": {"info_key": "split.enabled", "value_type": "bool"},
"SPLIT_TRANSPORT": {"info_key": "split.transport.protocol", "to_c": false},
"STENO_ENABLE": {"info_key": "stenography.enabled", "value_type": "bool"},
--
cgit v1.2.3
From 53a0cdc4467fb688faa2708fe75daa26686e918d Mon Sep 17 00:00:00 2001
From: Joel Challis
Date: Tue, 18 Jun 2024 03:44:22 +0100
Subject: Implement data driven joysticks (#22947)
---
data/mappings/info_config.hjson | 5 +++
data/mappings/info_rules.hjson | 2 ++
data/schemas/keyboard.jsonschema | 30 +++++++++++++++++
.../battleship_gamepad/battleship_gamepad.c | 6 ----
keyboards/handwired/battleship_gamepad/config.h | 21 ------------
.../handwired/battleship_gamepad/keyboard.json | 8 +++++
keyboards/handwired/battleship_gamepad/rules.mk | 1 -
lib/python/qmk/cli/generate/keyboard_c.py | 38 +++++++++++++++++++++-
lib/python/qmk/constants.py | 2 ++
lib/python/qmk/info.py | 15 +++++++--
10 files changed, 97 insertions(+), 31 deletions(-)
delete mode 100644 keyboards/handwired/battleship_gamepad/config.h
delete mode 100644 keyboards/handwired/battleship_gamepad/rules.mk
(limited to 'data/mappings')
diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson
index b61ca04071..4f731b6011 100644
--- a/data/mappings/info_config.hjson
+++ b/data/mappings/info_config.hjson
@@ -72,6 +72,11 @@
"LED_KANA_PIN": {"info_key": "indicators.kana"},
"LED_PIN_ON_STATE": {"info_key": "indicators.on_state", "value_type": "int"},
+ // Joystick
+ "JOYSTICK_AXIS_COUNT": {"info_key": "joystick.axis_count", "value_type": "int"},
+ "JOYSTICK_AXIS_RESOLUTION": {"info_key": "joystick.axis_resolution", "value_type": "int"},
+ "JOYSTICK_BUTTON_COUNT": {"info_key": "joystick.button_count", "value_type": "int"},
+
// Leader Key
"LEADER_PER_KEY_TIMING": {"info_key": "leader_key.timing", "value_type": "flag"},
"LEADER_KEY_STRICT_KEY_PROCESSING": {"info_key": "leader_key.strict_processing", "value_type": "flag"},
diff --git a/data/mappings/info_rules.hjson b/data/mappings/info_rules.hjson
index 384bc87b78..64972af63b 100644
--- a/data/mappings/info_rules.hjson
+++ b/data/mappings/info_rules.hjson
@@ -25,6 +25,8 @@
"ENCODER_DRIVER": {"info_key": "encoder.driver"},
"FIRMWARE_FORMAT": {"info_key": "build.firmware_format"},
"HAPTIC_DRIVER": {"info_key": "haptic.driver"},
+ "JOYSTICK_DRIVER": {"info_key": "joystick.driver"},
+ "JOYSTICK_ENABLE": {"info_key": "joystick.enabled", "value_type": "bool"},
"KEYBOARD_SHARED_EP": {"info_key": "usb.shared_endpoint.keyboard", "value_type": "bool"},
"LAYOUTS": {"info_key": "community_layouts", "value_type": "list"},
"LED_MATRIX_DRIVER": {"info_key": "led_matrix.driver"},
diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema
index 5b63acf8e8..e758c325c7 100644
--- a/data/schemas/keyboard.jsonschema
+++ b/data/schemas/keyboard.jsonschema
@@ -342,6 +342,36 @@
"on_state": {"$ref": "qmk.definitions.v1#/bit"}
}
},
+ "joystick": {
+ "type": "object",
+ "properties": {
+ "enabled": {"type": "boolean"},
+ "driver": {"type": "string"},
+ "button_count": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "axis_resolution": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "axes": {
+ "type": "object",
+ "propertyNames": {"enum": ["x", "y", "z", "rx", "ry", "rz"]}
+ "additionalProperties": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "input_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
+ "low": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "rest": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "high": {"$ref": "qmk.definitions.v1#/unsigned_int"}
+ }
+ },
+ {
+ "type": "string",
+ "enum": ["virtual"]
+ }
+ ]
+ }
+ }
+ }
+ },
"keycodes": {"$ref": "qmk.definitions.v1#/keycode_decl_array"},
"layout_aliases": {
"type": "object",
diff --git a/keyboards/handwired/battleship_gamepad/battleship_gamepad.c b/keyboards/handwired/battleship_gamepad/battleship_gamepad.c
index cccc03a287..7b5e65a990 100644
--- a/keyboards/handwired/battleship_gamepad/battleship_gamepad.c
+++ b/keyboards/handwired/battleship_gamepad/battleship_gamepad.c
@@ -16,12 +16,6 @@
#include "quantum.h"
-/* joystick config */
-joystick_config_t joystick_axes[JOYSTICK_AXIS_COUNT] = {
- [0] = JOYSTICK_AXIS_IN(F5, 1023, 512, 0),
- [1] = JOYSTICK_AXIS_IN(F4, 0, 512, 1023)
-};
-
/* joystick button code (thumbstick pressed) */
void keyboard_pre_init_kb(void) {
gpio_set_pin_input_high(F6);
diff --git a/keyboards/handwired/battleship_gamepad/config.h b/keyboards/handwired/battleship_gamepad/config.h
deleted file mode 100644
index b785c80aad..0000000000
--- a/keyboards/handwired/battleship_gamepad/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2021 Andrew Braini
- *
- * This program is free software: you can 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
-
-/* joystick configuration */
-#define JOYSTICK_BUTTON_COUNT 25
-#define JOYSTICK_AXIS_RESOLUTION 10
diff --git a/keyboards/handwired/battleship_gamepad/keyboard.json b/keyboards/handwired/battleship_gamepad/keyboard.json
index 2832741875..8350f31fdd 100644
--- a/keyboards/handwired/battleship_gamepad/keyboard.json
+++ b/keyboards/handwired/battleship_gamepad/keyboard.json
@@ -13,6 +13,14 @@
"rows": ["B6", "B2", "B3", "B1", "F7"]
},
"diode_direction": "COL2ROW",
+ "joystick": {
+ "button_count": 25,
+ "axis_resolution": 10,
+ "axes": {
+ "x": {"input_pin": "F5", "low": 1023, "rest": 512, "high": 0},
+ "y": {"input_pin": "F4", "low": 0, "rest": 512, "high": 1023}
+ }
+ },
"processor": "atmega32u4",
"bootloader": "caterina",
"features": {
diff --git a/keyboards/handwired/battleship_gamepad/rules.mk b/keyboards/handwired/battleship_gamepad/rules.mk
deleted file mode 100644
index c5ab560bca..0000000000
--- a/keyboards/handwired/battleship_gamepad/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-JOYSTICK_DRIVER = analog
diff --git a/lib/python/qmk/cli/generate/keyboard_c.py b/lib/python/qmk/cli/generate/keyboard_c.py
index 5a6c967486..228b320942 100755
--- a/lib/python/qmk/cli/generate/keyboard_c.py
+++ b/lib/python/qmk/cli/generate/keyboard_c.py
@@ -6,7 +6,7 @@ from qmk.info import info_json
from qmk.commands import dump_lines
from qmk.keyboard import keyboard_completer, keyboard_folder
from qmk.path import normpath
-from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE
+from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, JOYSTICK_AXES
def _gen_led_configs(info_data):
@@ -91,6 +91,41 @@ def _gen_matrix_mask(info_data):
return lines
+def _gen_joystick_axes(info_data):
+ """Convert info.json content to joystick_axes
+ """
+ if 'axes' not in info_data.get('joystick', {}):
+ return []
+
+ axes = info_data['joystick']['axes']
+ axes_keys = list(axes.keys())
+
+ lines = []
+ lines.append('#ifdef JOYSTICK_ENABLE')
+ lines.append('joystick_config_t joystick_axes[JOYSTICK_AXIS_COUNT] = {')
+
+ # loop over all available axes - injecting virtual axis for those not specified
+ for index, cur in enumerate(JOYSTICK_AXES):
+ # bail out if we have generated all requested axis
+ if len(axes_keys) == 0:
+ break
+
+ axis = 'virtual'
+ if cur in axes:
+ axis = axes[cur]
+ axes_keys.remove(cur)
+
+ if axis == 'virtual':
+ lines.append(f" [{index}] = JOYSTICK_AXIS_VIRTUAL,")
+ else:
+ lines.append(f" [{index}] = JOYSTICK_AXIS_IN({axis['input_pin']}, {axis['low']}, {axis['rest']}, {axis['high']}),")
+
+ lines.append('};')
+ lines.append('#endif')
+
+ return lines
+
+
@cli.argument('-o', '--output', arg_only=True, type=normpath, help='File to write to')
@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages")
@cli.argument('-kb', '--keyboard', arg_only=True, type=keyboard_folder, completer=keyboard_completer, required=True, help='Keyboard to generate keyboard.c for.')
@@ -105,6 +140,7 @@ def generate_keyboard_c(cli):
keyboard_h_lines.extend(_gen_led_configs(kb_info_json))
keyboard_h_lines.extend(_gen_matrix_mask(kb_info_json))
+ keyboard_h_lines.extend(_gen_joystick_axes(kb_info_json))
# Show the results
dump_lines(cli.args.output, keyboard_h_lines, cli.args.quiet)
diff --git a/lib/python/qmk/constants.py b/lib/python/qmk/constants.py
index 90e4452f2b..b6f46180b2 100644
--- a/lib/python/qmk/constants.py
+++ b/lib/python/qmk/constants.py
@@ -320,3 +320,5 @@ LICENSE_TEXTS = [
you may not use this file except in compliance with the License.
"""]),
]
+
+JOYSTICK_AXES = ['x', 'y', 'z', 'rx', 'ry', 'rz']
diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py
index 833271c09c..091a11854c 100644
--- a/lib/python/qmk/info.py
+++ b/lib/python/qmk/info.py
@@ -7,7 +7,7 @@ from dotty_dict import dotty
from milc import cli
-from qmk.constants import COL_LETTERS, ROW_LETTERS, CHIBIOS_PROCESSORS, LUFA_PROCESSORS, VUSB_PROCESSORS
+from qmk.constants import COL_LETTERS, ROW_LETTERS, CHIBIOS_PROCESSORS, LUFA_PROCESSORS, VUSB_PROCESSORS, JOYSTICK_AXES
from qmk.c_parse import find_layouts, parse_config_h_file, find_led_config
from qmk.json_schema import deep_update, json_load, validate
from qmk.keyboard import config_h, rules_mk
@@ -249,8 +249,9 @@ def info_json(keyboard):
info_data = _extract_rules_mk(info_data, rules_mk(str(keyboard)))
info_data = _extract_config_h(info_data, config_h(str(keyboard)))
- # Ensure that we have matrix row and column counts
+ # Ensure that we have various calculated values
info_data = _matrix_size(info_data)
+ info_data = _joystick_axis_count(info_data)
# Merge in data from
info_data = _extract_led_config(info_data, str(keyboard))
@@ -800,6 +801,16 @@ def _matrix_size(info_data):
return info_data
+def _joystick_axis_count(info_data):
+ """Add info_data['joystick.axis_count'] if required
+ """
+ if 'axes' in info_data.get('joystick', {}):
+ axes_keys = info_data['joystick']['axes'].keys()
+ info_data['joystick']['axis_count'] = max(JOYSTICK_AXES.index(a) for a in axes_keys) + 1 if axes_keys else 0
+
+ return info_data
+
+
def _check_matrix(info_data):
"""Check the matrix to ensure that row/column count is consistent.
"""
--
cgit v1.2.3
From f5319d891185d4c8099861a303701d312bfca9d1 Mon Sep 17 00:00:00 2001
From: Joel Challis
Date: Thu, 11 Jul 2024 01:17:08 +0100
Subject: Remove DEFAULT_FOLDER from maple_computing/lets_split_eh (#24054)
---
data/mappings/keyboard_aliases.hjson | 5 +-
keyboards/maple_computing/lets_split_eh/config.h | 26 +++++
.../maple_computing/lets_split_eh/eh/config.h | 26 -----
keyboards/maple_computing/lets_split_eh/eh/eh.c | 16 ---
.../maple_computing/lets_split_eh/eh/keyboard.json | 117 --------------------
.../maple_computing/lets_split_eh/eh/rules.mk | 2 -
.../maple_computing/lets_split_eh/keyboard.json | 118 +++++++++++++++++++++
.../maple_computing/lets_split_eh/lets_split_eh.c | 16 +++
keyboards/maple_computing/lets_split_eh/readme.md | 2 +-
keyboards/maple_computing/lets_split_eh/rules.mk | 3 +-
10 files changed, 167 insertions(+), 164 deletions(-)
create mode 100644 keyboards/maple_computing/lets_split_eh/config.h
delete mode 100644 keyboards/maple_computing/lets_split_eh/eh/config.h
delete mode 100644 keyboards/maple_computing/lets_split_eh/eh/eh.c
delete mode 100644 keyboards/maple_computing/lets_split_eh/eh/keyboard.json
delete mode 100644 keyboards/maple_computing/lets_split_eh/eh/rules.mk
create mode 100644 keyboards/maple_computing/lets_split_eh/keyboard.json
create mode 100644 keyboards/maple_computing/lets_split_eh/lets_split_eh.c
(limited to 'data/mappings')
diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson
index 57585aae92..14eec52e31 100644
--- a/data/mappings/keyboard_aliases.hjson
+++ b/data/mappings/keyboard_aliases.hjson
@@ -1060,7 +1060,7 @@
"target": "lyso1/lefishe"
},
"lets_split_eh/eh": {
- "target": "maple_computing/lets_split_eh/eh"
+ "target": "maple_computing/lets_split_eh"
},
"ls_60": {
"target": "weirdo/ls_60"
@@ -1080,6 +1080,9 @@
"macro1": {
"target": "laneware/macro1"
},
+ "maple_computing/lets_split_eh/eh": {
+ "target": "maple_computing/lets_split_eh"
+ },
"massdrop/thekey": {
"target": "drop/thekey/v1"
},
diff --git a/keyboards/maple_computing/lets_split_eh/config.h b/keyboards/maple_computing/lets_split_eh/config.h
new file mode 100644
index 0000000000..38cf73ae1e
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/config.h
@@ -0,0 +1,26 @@
+/*
+Copyright 2012 Jun Wako
+Copyright 2015 Jack Humbert
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
+#pragma once
+
+/* Split Defines */
+#define SPLIT_HAND_PIN D3
+
+// The 'EH' has previously forced use of I2C so this default has been kept
+// however users can undef to use serial
+#define USE_I2C
diff --git a/keyboards/maple_computing/lets_split_eh/eh/config.h b/keyboards/maple_computing/lets_split_eh/eh/config.h
deleted file mode 100644
index 38cf73ae1e..0000000000
--- a/keyboards/maple_computing/lets_split_eh/eh/config.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
-Copyright 2012 Jun Wako
-Copyright 2015 Jack Humbert
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see .
-*/
-
-#pragma once
-
-/* Split Defines */
-#define SPLIT_HAND_PIN D3
-
-// The 'EH' has previously forced use of I2C so this default has been kept
-// however users can undef to use serial
-#define USE_I2C
diff --git a/keyboards/maple_computing/lets_split_eh/eh/eh.c b/keyboards/maple_computing/lets_split_eh/eh/eh.c
deleted file mode 100644
index 37e8b3ab9b..0000000000
--- a/keyboards/maple_computing/lets_split_eh/eh/eh.c
+++ /dev/null
@@ -1,16 +0,0 @@
-#include "quantum.h"
-
-#ifdef SWAP_HANDS_ENABLE
-__attribute__ ((weak))
-const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
-
- {{0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4}, {5, 4}},
- {{0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}, {5, 5}},
- {{0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6}, {5, 6}},
- {{0, 7}, {1, 7}, {2, 7}, {3, 7}, {4, 7}, {5, 7}},
- {{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}},
- {{0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1}},
- {{0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}, {5, 2}},
- {{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}, {5, 3}},
-};
-#endif
diff --git a/keyboards/maple_computing/lets_split_eh/eh/keyboard.json b/keyboards/maple_computing/lets_split_eh/eh/keyboard.json
deleted file mode 100644
index f40b15098f..0000000000
--- a/keyboards/maple_computing/lets_split_eh/eh/keyboard.json
+++ /dev/null
@@ -1,117 +0,0 @@
-{
- "keyboard_name": "Lets Split Eh?",
- "manufacturer": "That-Canadian",
- "url": "",
- "maintainer": "qmk",
- "usb": {
- "vid": "0xFEED",
- "pid": "0xE401",
- "device_version": "1.0.0"
- },
- "matrix_pins": {
- "cols": ["F4", "F5", "C6", "B6", "B5", "D5"],
- "rows": ["B1", "B3", "D7", "B4"]
- },
- "diode_direction": "COL2ROW",
- "backlight": {
- "pin": "B7"
- },
- "rgblight": {
- "led_count": 12,
- "split_count": [6, 6],
- "animations": {
- "breathing": true,
- "rainbow_mood": true,
- "rainbow_swirl": true,
- "snake": true,
- "knight": true,
- "christmas": true,
- "static_gradient": true,
- "rgb_test": true,
- "alternating": true,
- "twinkle": true
- }
- },
- "ws2812": {
- "pin": "B2"
- },
- "split": {
- "enabled": true,
- "soft_serial_pin": "D0"
- },
- "processor": "atmega32u4",
- "bootloader": "atmel-dfu",
- "features": {
- "bootmagic": false,
- "mousekey": false,
- "extrakey": true,
- "nkro": true,
- "backlight": true,
- "rgblight": true
- },
- "community_layouts": ["ortho_4x12"],
- "layout_aliases": {
- "LAYOUT": "LAYOUT_ortho_4x12"
- },
- "layouts": {
- "LAYOUT_ortho_4x12": {
- "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": [4, 0], "x": 7, "y": 0},
- {"matrix": [4, 1], "x": 8, "y": 0},
- {"matrix": [4, 2], "x": 9, "y": 0},
- {"matrix": [4, 3], "x": 10, "y": 0},
- {"matrix": [4, 4], "x": 11, "y": 0},
- {"matrix": [4, 5], "x": 12, "y": 0},
-
- {"matrix": [1, 0], "x": 0, "y": 1},
- {"matrix": [1, 1], "x": 1, "y": 1},
- {"matrix": [1, 2], "x": 2, "y": 1},
- {"matrix": [1, 3], "x": 3, "y": 1},
- {"matrix": [1, 4], "x": 4, "y": 1},
- {"matrix": [1, 5], "x": 5, "y": 1},
-
- {"matrix": [5, 0], "x": 7, "y": 1},
- {"matrix": [5, 1], "x": 8, "y": 1},
- {"matrix": [5, 2], "x": 9, "y": 1},
- {"matrix": [5, 3], "x": 10, "y": 1},
- {"matrix": [5, 4], "x": 11, "y": 1},
- {"matrix": [5, 5], "x": 12, "y": 1},
-
- {"matrix": [2, 0], "x": 0, "y": 2},
- {"matrix": [2, 1], "x": 1, "y": 2},
- {"matrix": [2, 2], "x": 2, "y": 2},
- {"matrix": [2, 3], "x": 3, "y": 2},
- {"matrix": [2, 4], "x": 4, "y": 2},
- {"matrix": [2, 5], "x": 5, "y": 2},
-
- {"matrix": [6, 0], "x": 7, "y": 2},
- {"matrix": [6, 1], "x": 8, "y": 2},
- {"matrix": [6, 2], "x": 9, "y": 2},
- {"matrix": [6, 3], "x": 10, "y": 2},
- {"matrix": [6, 4], "x": 11, "y": 2},
- {"matrix": [6, 5], "x": 12, "y": 2},
-
- {"matrix": [3, 0], "x": 0, "y": 3},
- {"matrix": [3, 1], "x": 1, "y": 3},
- {"matrix": [3, 2], "x": 2, "y": 3},
- {"matrix": [3, 3], "x": 3, "y": 3},
- {"matrix": [3, 4], "x": 4, "y": 3},
- {"matrix": [3, 5], "x": 5, "y": 3},
-
- {"matrix": [7, 0], "x": 7, "y": 3},
- {"matrix": [7, 1], "x": 8, "y": 3},
- {"matrix": [7, 2], "x": 9, "y": 3},
- {"matrix": [7, 3], "x": 10, "y": 3},
- {"matrix": [7, 4], "x": 11, "y": 3},
- {"matrix": [7, 5], "x": 12, "y": 3}
- ]
- }
- }
-}
diff --git a/keyboards/maple_computing/lets_split_eh/eh/rules.mk b/keyboards/maple_computing/lets_split_eh/eh/rules.mk
deleted file mode 100644
index 271780b75e..0000000000
--- a/keyboards/maple_computing/lets_split_eh/eh/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-# Disable unsupported hardware
-AUDIO_SUPPORTED = no
diff --git a/keyboards/maple_computing/lets_split_eh/keyboard.json b/keyboards/maple_computing/lets_split_eh/keyboard.json
new file mode 100644
index 0000000000..62d489d60c
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/keyboard.json
@@ -0,0 +1,118 @@
+{
+ "keyboard_name": "Lets Split Eh?",
+ "manufacturer": "That-Canadian",
+ "url": "",
+ "maintainer": "qmk",
+ "usb": {
+ "vid": "0xFEED",
+ "pid": "0xE401",
+ "device_version": "1.0.0"
+ },
+ "matrix_pins": {
+ "cols": ["F4", "F5", "C6", "B6", "B5", "D5"],
+ "rows": ["B1", "B3", "D7", "B4"]
+ },
+ "diode_direction": "COL2ROW",
+ "backlight": {
+ "pin": "B7"
+ },
+ "rgblight": {
+ "led_count": 12,
+ "split_count": [6, 6],
+ "sleep": true,
+ "animations": {
+ "breathing": true,
+ "rainbow_mood": true,
+ "rainbow_swirl": true,
+ "snake": true,
+ "knight": true,
+ "christmas": true,
+ "static_gradient": true,
+ "rgb_test": true,
+ "alternating": true,
+ "twinkle": true
+ }
+ },
+ "ws2812": {
+ "pin": "B2"
+ },
+ "split": {
+ "enabled": true,
+ "soft_serial_pin": "D0"
+ },
+ "processor": "atmega32u4",
+ "bootloader": "atmel-dfu",
+ "features": {
+ "bootmagic": true,
+ "mousekey": false,
+ "extrakey": true,
+ "nkro": true,
+ "backlight": true,
+ "rgblight": true
+ },
+ "community_layouts": ["ortho_4x12"],
+ "layout_aliases": {
+ "LAYOUT": "LAYOUT_ortho_4x12"
+ },
+ "layouts": {
+ "LAYOUT_ortho_4x12": {
+ "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": [4, 0], "x": 7, "y": 0},
+ {"matrix": [4, 1], "x": 8, "y": 0},
+ {"matrix": [4, 2], "x": 9, "y": 0},
+ {"matrix": [4, 3], "x": 10, "y": 0},
+ {"matrix": [4, 4], "x": 11, "y": 0},
+ {"matrix": [4, 5], "x": 12, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1},
+ {"matrix": [1, 1], "x": 1, "y": 1},
+ {"matrix": [1, 2], "x": 2, "y": 1},
+ {"matrix": [1, 3], "x": 3, "y": 1},
+ {"matrix": [1, 4], "x": 4, "y": 1},
+ {"matrix": [1, 5], "x": 5, "y": 1},
+
+ {"matrix": [5, 0], "x": 7, "y": 1},
+ {"matrix": [5, 1], "x": 8, "y": 1},
+ {"matrix": [5, 2], "x": 9, "y": 1},
+ {"matrix": [5, 3], "x": 10, "y": 1},
+ {"matrix": [5, 4], "x": 11, "y": 1},
+ {"matrix": [5, 5], "x": 12, "y": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 2},
+ {"matrix": [2, 1], "x": 1, "y": 2},
+ {"matrix": [2, 2], "x": 2, "y": 2},
+ {"matrix": [2, 3], "x": 3, "y": 2},
+ {"matrix": [2, 4], "x": 4, "y": 2},
+ {"matrix": [2, 5], "x": 5, "y": 2},
+
+ {"matrix": [6, 0], "x": 7, "y": 2},
+ {"matrix": [6, 1], "x": 8, "y": 2},
+ {"matrix": [6, 2], "x": 9, "y": 2},
+ {"matrix": [6, 3], "x": 10, "y": 2},
+ {"matrix": [6, 4], "x": 11, "y": 2},
+ {"matrix": [6, 5], "x": 12, "y": 2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3},
+ {"matrix": [3, 1], "x": 1, "y": 3},
+ {"matrix": [3, 2], "x": 2, "y": 3},
+ {"matrix": [3, 3], "x": 3, "y": 3},
+ {"matrix": [3, 4], "x": 4, "y": 3},
+ {"matrix": [3, 5], "x": 5, "y": 3},
+
+ {"matrix": [7, 0], "x": 7, "y": 3},
+ {"matrix": [7, 1], "x": 8, "y": 3},
+ {"matrix": [7, 2], "x": 9, "y": 3},
+ {"matrix": [7, 3], "x": 10, "y": 3},
+ {"matrix": [7, 4], "x": 11, "y": 3},
+ {"matrix": [7, 5], "x": 12, "y": 3}
+ ]
+ }
+ }
+}
diff --git a/keyboards/maple_computing/lets_split_eh/lets_split_eh.c b/keyboards/maple_computing/lets_split_eh/lets_split_eh.c
new file mode 100644
index 0000000000..37e8b3ab9b
--- /dev/null
+++ b/keyboards/maple_computing/lets_split_eh/lets_split_eh.c
@@ -0,0 +1,16 @@
+#include "quantum.h"
+
+#ifdef SWAP_HANDS_ENABLE
+__attribute__ ((weak))
+const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
+
+ {{0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4}, {5, 4}},
+ {{0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}, {5, 5}},
+ {{0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6}, {5, 6}},
+ {{0, 7}, {1, 7}, {2, 7}, {3, 7}, {4, 7}, {5, 7}},
+ {{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}},
+ {{0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1}},
+ {{0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}, {5, 2}},
+ {{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}, {5, 3}},
+};
+#endif
diff --git a/keyboards/maple_computing/lets_split_eh/readme.md b/keyboards/maple_computing/lets_split_eh/readme.md
index 90ae5393d1..dc769b72c4 100644
--- a/keyboards/maple_computing/lets_split_eh/readme.md
+++ b/keyboards/maple_computing/lets_split_eh/readme.md
@@ -8,6 +8,6 @@ Keyboard Maintainer: [Christopher Poole (That-Canadian)](https://github.com/That
Make example for this keyboard (after setting up your build environment):
- make maple_computing/lets_split_eh/eh:default
+ make maple_computing/lets_split_eh:default
See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
diff --git a/keyboards/maple_computing/lets_split_eh/rules.mk b/keyboards/maple_computing/lets_split_eh/rules.mk
index 9bae45fde8..271780b75e 100644
--- a/keyboards/maple_computing/lets_split_eh/rules.mk
+++ b/keyboards/maple_computing/lets_split_eh/rules.mk
@@ -1 +1,2 @@
-DEFAULT_FOLDER = maple_computing/lets_split_eh/eh
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
--
cgit v1.2.3
From 2623a258f1cc2a1687ef4529892b8fe6fb9be5f0 Mon Sep 17 00:00:00 2001
From: leyew
Date: Thu, 11 Jul 2024 21:40:54 +0800
Subject: [Keyboard] Rename dnworks/9973 to dnworks/tkl87 (#23692)
---
data/mappings/keyboard_aliases.hjson | 3 +
keyboards/dnworks/9973/config.h | 20 -
keyboards/dnworks/9973/keyboard.json | 480 -----------------------
keyboards/dnworks/9973/keymaps/default/keymap.c | 27 --
keyboards/dnworks/9973/keymaps/via/keymap.c | 27 --
keyboards/dnworks/9973/keymaps/via/rules.mk | 1 -
keyboards/dnworks/9973/readme.md | 27 --
keyboards/dnworks/tkl87/config.h | 20 +
keyboards/dnworks/tkl87/keyboard.json | 480 +++++++++++++++++++++++
keyboards/dnworks/tkl87/keymaps/default/keymap.c | 27 ++
keyboards/dnworks/tkl87/keymaps/via/keymap.c | 27 ++
keyboards/dnworks/tkl87/keymaps/via/rules.mk | 1 +
keyboards/dnworks/tkl87/readme.md | 27 ++
13 files changed, 585 insertions(+), 582 deletions(-)
delete mode 100644 keyboards/dnworks/9973/config.h
delete mode 100644 keyboards/dnworks/9973/keyboard.json
delete mode 100644 keyboards/dnworks/9973/keymaps/default/keymap.c
delete mode 100644 keyboards/dnworks/9973/keymaps/via/keymap.c
delete mode 100644 keyboards/dnworks/9973/keymaps/via/rules.mk
delete mode 100644 keyboards/dnworks/9973/readme.md
create mode 100644 keyboards/dnworks/tkl87/config.h
create mode 100644 keyboards/dnworks/tkl87/keyboard.json
create mode 100644 keyboards/dnworks/tkl87/keymaps/default/keymap.c
create mode 100644 keyboards/dnworks/tkl87/keymaps/via/keymap.c
create mode 100644 keyboards/dnworks/tkl87/keymaps/via/rules.mk
create mode 100644 keyboards/dnworks/tkl87/readme.md
(limited to 'data/mappings')
diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson
index 14eec52e31..174704e99a 100644
--- a/data/mappings/keyboard_aliases.hjson
+++ b/data/mappings/keyboard_aliases.hjson
@@ -1528,5 +1528,8 @@
},
"kprepublic/jj50": {
"target": "kprepublic/jj50/rev1"
+ },
+ "dnworks/9973": {
+ "target": "dnworks/tkl87"
}
}
diff --git a/keyboards/dnworks/9973/config.h b/keyboards/dnworks/9973/config.h
deleted file mode 100644
index 77970ce4d3..0000000000
--- a/keyboards/dnworks/9973/config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-Copyright 2023 zeix (@itsme-zeix)
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see .
-*/
-
-#pragma once
-
-#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
-#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
diff --git a/keyboards/dnworks/9973/keyboard.json b/keyboards/dnworks/9973/keyboard.json
deleted file mode 100644
index 6169606026..0000000000
--- a/keyboards/dnworks/9973/keyboard.json
+++ /dev/null
@@ -1,480 +0,0 @@
-{
- "keyboard_name": "DN 997.3",
- "maintainer": "itsme-zeix",
- "manufacturer": "dnworks",
- "processor": "RP2040",
- "bootloader": "rp2040",
- "usb": {
- "vid": "0x4C23",
- "pid": "0x2936",
- "device_version": "0.0.1"
- },
- "features": {
- "bootmagic": true,
- "mousekey": true,
- "extrakey": true,
- "nkro": true
- },
- "indicators": {
- "caps_lock": "GP27",
- "scroll_lock": "GP1",
- "on_state": 1
- },
- "diode_direction": "COL2ROW",
- "matrix_pins": {
- "rows": ["GP2", "GP3", "GP4", "GP29", "GP12", "GP13"],
- "cols": ["GP28", "GP26", "GP25", "GP24", "GP23", "GP22", "GP21", "GP20", "GP19", "GP18", "GP17", "GP16", "GP15", "GP14", "GP6", "GP5", "GP0"]
- },
- "community_layouts": ["tkl_ansi_tsangan", "tkl_iso_tsangan"],
- "layouts": {
- "LAYOUT_all": {
- "layout": [
- { "matrix": [0, 0], "x": 0, "y": 0 },
- { "matrix": [0, 2], "x": 2, "y": 0 },
- { "matrix": [0, 3], "x": 3, "y": 0 },
- { "matrix": [0, 4], "x": 4, "y": 0 },
- { "matrix": [0, 5], "x": 5, "y": 0 },
- { "matrix": [0, 6], "x": 6.5, "y": 0 },
- { "matrix": [0, 7], "x": 7.5, "y": 0 },
- { "matrix": [0, 8], "x": 8.5, "y": 0 },
- { "matrix": [0, 9], "x": 9.5, "y": 0 },
- { "matrix": [0, 10], "x": 11, "y": 0 },
- { "matrix": [0, 11], "x": 12, "y": 0 },
- { "matrix": [0, 12], "x": 13, "y": 0 },
- { "matrix": [0, 13], "x": 14, "y": 0 },
- { "matrix": [0, 14], "x": 15.25, "y": 0 },
- { "matrix": [0, 15], "x": 16.25, "y": 0 },
- { "matrix": [0, 16], "x": 17.25, "y": 0 },
- { "matrix": [1, 0], "x": 0, "y": 1.5 },
- { "matrix": [1, 1], "x": 1, "y": 1.5 },
- { "matrix": [1, 2], "x": 2, "y": 1.5 },
- { "matrix": [1, 3], "x": 3, "y": 1.5 },
- { "matrix": [1, 4], "x": 4, "y": 1.5 },
- { "matrix": [1, 5], "x": 5, "y": 1.5 },
- { "matrix": [1, 6], "x": 6, "y": 1.5 },
- { "matrix": [1, 7], "x": 7, "y": 1.5 },
- { "matrix": [1, 8], "x": 8, "y": 1.5 },
- { "matrix": [1, 9], "x": 9, "y": 1.5 },
- { "matrix": [1, 10], "x": 10, "y": 1.5 },
- { "matrix": [1, 11], "x": 11, "y": 1.5 },
- { "matrix": [1, 12], "x": 12, "y": 1.5 },
- { "matrix": [1, 13], "w": 2, "x": 13, "y": 1.5 },
- { "matrix": [1, 14], "x": 15.25, "y": 1.5 },
- { "matrix": [1, 15], "x": 16.25, "y": 1.5 },
- { "matrix": [1, 16], "x": 17.25, "y": 1.5 },
- { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.5 },
- { "matrix": [2, 1], "x": 1.5, "y": 2.5 },
- { "matrix": [2, 2], "x": 2.5, "y": 2.5 },
- { "matrix": [2, 3], "x": 3.5, "y": 2.5 },
- { "matrix": [2, 4], "x": 4.5, "y": 2.5 },
- { "matrix": [2, 5], "x": 5.5, "y": 2.5 },
- { "matrix": [2, 6], "x": 6.5, "y": 2.5 },
- { "matrix": [2, 7], "x": 7.5, "y": 2.5 },
- { "matrix": [2, 8], "x": 8.5, "y": 2.5 },
- { "matrix": [2, 9], "x": 9.5, "y": 2.5 },
- { "matrix": [2, 10], "x": 10.5, "y": 2.5 },
- { "matrix": [2, 11], "x": 11.5, "y": 2.5 },
- { "matrix": [2, 12], "x": 12.5, "y": 2.5 },
- { "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.5 },
- { "matrix": [2, 14], "x": 15.25, "y": 2.5 },
- { "matrix": [2, 15], "x": 16.25, "y": 2.5 },
- { "matrix": [2, 16], "x": 17.25, "y": 2.5 },
- { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.5 },
- { "matrix": [3, 1], "x": 1.75, "y": 3.5 },
- { "matrix": [3, 2], "x": 2.75, "y": 3.5 },
- { "matrix": [3, 3], "x": 3.75, "y": 3.5 },
- { "matrix": [3, 4], "x": 4.75, "y": 3.5 },
- { "matrix": [3, 5], "x": 5.75, "y": 3.5 },
- { "matrix": [3, 6], "x": 6.75, "y": 3.5 },
- { "matrix": [3, 7], "x": 7.75, "y": 3.5 },
- { "matrix": [3, 8], "x": 8.75, "y": 3.5 },
- { "matrix": [3, 9], "x": 9.75, "y": 3.5 },
- { "matrix": [3, 10], "x": 10.75, "y": 3.5 },
- { "matrix": [3, 11], "x": 11.75, "y": 3.5 },
- { "matrix": [3, 12], "w": 2.25, "x": 12.75, "y": 3.5 },
- { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.5 },
- { "matrix": [4, 1], "x": 1.25, "y": 4.5 },
- { "matrix": [4, 2], "x": 2.25, "y": 4.5 },
- { "matrix": [4, 3], "x": 3.25, "y": 4.5 },
- { "matrix": [4, 4], "x": 4.25, "y": 4.5 },
- { "matrix": [4, 5], "x": 5.25, "y": 4.5 },
- { "matrix": [4, 6], "x": 6.25, "y": 4.5 },
- { "matrix": [4, 7], "x": 7.25, "y": 4.5 },
- { "matrix": [4, 8], "x": 8.25, "y": 4.5 },
- { "matrix": [4, 9], "x": 9.25, "y": 4.5 },
- { "matrix": [4, 10], "x": 10.25, "y": 4.5 },
- { "matrix": [4, 11], "x": 11.25, "y": 4.5 },
- { "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.5 },
- { "matrix": [4, 15], "x": 16.25, "y": 4.5 },
- { "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.5 },
- { "matrix": [5, 1], "x": 1.5, "y": 5.5 },
- { "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.5 },
- { "matrix": [5, 6], "w": 7, "x": 4, "y": 5.5 },
- { "matrix": [5, 10], "w": 1.5, "x": 11, "y": 5.5 },
- { "matrix": [5, 11], "x": 12.5, "y": 5.5 },
- { "matrix": [5, 12], "w": 1.5, "x": 13.5, "y": 5.5 },
- { "matrix": [5, 14], "x": 15.25, "y": 5.5 },
- { "matrix": [5, 15], "x": 16.25, "y": 5.5 },
- { "matrix": [5, 16], "x": 17.25, "y": 5.5 }
- ]
- },
- "LAYOUT_tkl_ansi_tsangan": {
- "layout": [
- { "matrix": [0, 0], "x": 0, "y": 0 },
- { "matrix": [0, 2], "x": 2, "y": 0 },
- { "matrix": [0, 3], "x": 3, "y": 0 },
- { "matrix": [0, 4], "x": 4, "y": 0 },
- { "matrix": [0, 5], "x": 5, "y": 0 },
- { "matrix": [0, 6], "x": 6.5, "y": 0 },
- { "matrix": [0, 7], "x": 7.5, "y": 0 },
- { "matrix": [0, 8], "x": 8.5, "y": 0 },
- { "matrix": [0, 9], "x": 9.5, "y": 0 },
- { "matrix": [0, 10], "x": 11, "y": 0 },
- { "matrix": [0, 11], "x": 12, "y": 0 },
- { "matrix": [0, 12], "x": 13, "y": 0 },
- { "matrix": [0, 13], "x": 14, "y": 0 },
- { "matrix": [0, 14], "x": 15.25, "y": 0 },
- { "matrix": [0, 15], "x": 16.25, "y": 0 },
- { "matrix": [0, 16], "x": 17.25, "y": 0 },
- { "matrix": [1, 0], "x": 0, "y": 1.5 },
- { "matrix": [1, 1], "x": 1, "y": 1.5 },
- { "matrix": [1, 2], "x": 2, "y": 1.5 },
- { "matrix": [1, 3], "x": 3, "y": 1.5 },
- { "matrix": [1, 4], "x": 4, "y": 1.5 },
- { "matrix": [1, 5], "x": 5, "y": 1.5 },
- { "matrix": [1, 6], "x": 6, "y": 1.5 },
- { "matrix": [1, 7], "x": 7, "y": 1.5 },
- { "matrix": [1, 8], "x": 8, "y": 1.5 },
- { "matrix": [1, 9], "x": 9, "y": 1.5 },
- { "matrix": [1, 10], "x": 10, "y": 1.5 },
- { "matrix": [1, 11], "x": 11, "y": 1.5 },
- { "matrix": [1, 12], "x": 12, "y": 1.5 },
- { "matrix": [1, 13], "w": 2, "x": 13, "y": 1.5 },
- { "matrix": [1, 14], "x": 15.25, "y": 1.5 },
- { "matrix": [1, 15], "x": 16.25, "y": 1.5 },
- { "matrix": [1, 16], "x": 17.25, "y": 1.5 },
- { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.5 },
- { "matrix": [2, 1], "x": 1.5, "y": 2.5 },
- { "matrix": [2, 2], "x": 2.5, "y": 2.5 },
- { "matrix": [2, 3], "x": 3.5, "y": 2.5 },
- { "matrix": [2, 4], "x": 4.5, "y": 2.5 },
- { "matrix": [2, 5], "x": 5.5, "y": 2.5 },
- { "matrix": [2, 6], "x": 6.5, "y": 2.5 },
- { "matrix": [2, 7], "x": 7.5, "y": 2.5 },
- { "matrix": [2, 8], "x": 8.5, "y": 2.5 },
- { "matrix": [2, 9], "x": 9.5, "y": 2.5 },
- { "matrix": [2, 10], "x": 10.5, "y": 2.5 },
- { "matrix": [2, 11], "x": 11.5, "y": 2.5 },
- { "matrix": [2, 12], "x": 12.5, "y": 2.5 },
- { "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.5 },
- { "matrix": [2, 14], "x": 15.25, "y": 2.5 },
- { "matrix": [2, 15], "x": 16.25, "y": 2.5 },
- { "matrix": [2, 16], "x": 17.25, "y": 2.5 },
- { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.5 },
- { "matrix": [3, 1], "x": 1.75, "y": 3.5 },
- { "matrix": [3, 2], "x": 2.75, "y": 3.5 },
- { "matrix": [3, 3], "x": 3.75, "y": 3.5 },
- { "matrix": [3, 4], "x": 4.75, "y": 3.5 },
- { "matrix": [3, 5], "x": 5.75, "y": 3.5 },
- { "matrix": [3, 6], "x": 6.75, "y": 3.5 },
- { "matrix": [3, 7], "x": 7.75, "y": 3.5 },
- { "matrix": [3, 8], "x": 8.75, "y": 3.5 },
- { "matrix": [3, 9], "x": 9.75, "y": 3.5 },
- { "matrix": [3, 10], "x": 10.75, "y": 3.5 },
- { "matrix": [3, 11], "x": 11.75, "y": 3.5 },
- { "matrix": [3, 12], "w": 2.25, "x": 12.75, "y": 3.5 },
- { "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.5 },
- { "matrix": [4, 2], "x": 2.25, "y": 4.5 },
- { "matrix": [4, 3], "x": 3.25, "y": 4.5 },
- { "matrix": [4, 4], "x": 4.25, "y": 4.5 },
- { "matrix": [4, 5], "x": 5.25, "y": 4.5 },
- { "matrix": [4, 6], "x": 6.25, "y": 4.5 },
- { "matrix": [4, 7], "x": 7.25, "y": 4.5 },
- { "matrix": [4, 8], "x": 8.25, "y": 4.5 },
- { "matrix": [4, 9], "x": 9.25, "y": 4.5 },
- { "matrix": [4, 10], "x": 10.25, "y": 4.5 },
- { "matrix": [4, 11], "x": 11.25, "y": 4.5 },
- { "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.5 },
- { "matrix": [4, 15], "x": 16.25, "y": 4.5 },
- { "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.5 },
- { "matrix": [5, 1], "x": 1.5, "y": 5.5 },
- { "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.5 },
- { "matrix": [5, 6], "w": 7, "x": 4, "y": 5.5 },
- { "matrix": [5, 10], "w": 1.5, "x": 11, "y": 5.5 },
- { "matrix": [5, 11], "x": 12.5, "y": 5.5 },
- { "matrix": [5, 12], "w": 1.5, "x": 13.5, "y": 5.5 },
- { "matrix": [5, 14], "x": 15.25, "y": 5.5 },
- { "matrix": [5, 15], "x": 16.25, "y": 5.5 },
- { "matrix": [5, 16], "x": 17.25, "y": 5.5 }
- ]
- },
- "LAYOUT_tkl_ansi_wkl": {
- "layout": [
- { "matrix": [0, 0], "x": 0, "y": 0 },
- { "matrix": [0, 2], "x": 2, "y": 0 },
- { "matrix": [0, 3], "x": 3, "y": 0 },
- { "matrix": [0, 4], "x": 4, "y": 0 },
- { "matrix": [0, 5], "x": 5, "y": 0 },
- { "matrix": [0, 6], "x": 6.5, "y": 0 },
- { "matrix": [0, 7], "x": 7.5, "y": 0 },
- { "matrix": [0, 8], "x": 8.5, "y": 0 },
- { "matrix": [0, 9], "x": 9.5, "y": 0 },
- { "matrix": [0, 10], "x": 11, "y": 0 },
- { "matrix": [0, 11], "x": 12, "y": 0 },
- { "matrix": [0, 12], "x": 13, "y": 0 },
- { "matrix": [0, 13], "x": 14, "y": 0 },
- { "matrix": [0, 14], "x": 15.25, "y": 0 },
- { "matrix": [0, 15], "x": 16.25, "y": 0 },
- { "matrix": [0, 16], "x": 17.25, "y": 0 },
- { "matrix": [1, 0], "x": 0, "y": 1.5 },
- { "matrix": [1, 1], "x": 1, "y": 1.5 },
- { "matrix": [1, 2], "x": 2, "y": 1.5 },
- { "matrix": [1, 3], "x": 3, "y": 1.5 },
- { "matrix": [1, 4], "x": 4, "y": 1.5 },
- { "matrix": [1, 5], "x": 5, "y": 1.5 },
- { "matrix": [1, 6], "x": 6, "y": 1.5 },
- { "matrix": [1, 7], "x": 7, "y": 1.5 },
- { "matrix": [1, 8], "x": 8, "y": 1.5 },
- { "matrix": [1, 9], "x": 9, "y": 1.5 },
- { "matrix": [1, 10], "x": 10, "y": 1.5 },
- { "matrix": [1, 11], "x": 11, "y": 1.5 },
- { "matrix": [1, 12], "x": 12, "y": 1.5 },
- { "matrix": [1, 13], "w": 2, "x": 13, "y": 1.5 },
- { "matrix": [1, 14], "x": 15.25, "y": 1.5 },
- { "matrix": [1, 15], "x": 16.25, "y": 1.5 },
- { "matrix": [1, 16], "x": 17.25, "y": 1.5 },
- { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.5 },
- { "matrix": [2, 1], "x": 1.5, "y": 2.5 },
- { "matrix": [2, 2], "x": 2.5, "y": 2.5 },
- { "matrix": [2, 3], "x": 3.5, "y": 2.5 },
- { "matrix": [2, 4], "x": 4.5, "y": 2.5 },
- { "matrix": [2, 5], "x": 5.5, "y": 2.5 },
- { "matrix": [2, 6], "x": 6.5, "y": 2.5 },
- { "matrix": [2, 7], "x": 7.5, "y": 2.5 },
- { "matrix": [2, 8], "x": 8.5, "y": 2.5 },
- { "matrix": [2, 9], "x": 9.5, "y": 2.5 },
- { "matrix": [2, 10], "x": 10.5, "y": 2.5 },
- { "matrix": [2, 11], "x": 11.5, "y": 2.5 },
- { "matrix": [2, 12], "x": 12.5, "y": 2.5 },
- { "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.5 },
- { "matrix": [2, 14], "x": 15.25, "y": 2.5 },
- { "matrix": [2, 15], "x": 16.25, "y": 2.5 },
- { "matrix": [2, 16], "x": 17.25, "y": 2.5 },
- { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.5 },
- { "matrix": [3, 1], "x": 1.75, "y": 3.5 },
- { "matrix": [3, 2], "x": 2.75, "y": 3.5 },
- { "matrix": [3, 3], "x": 3.75, "y": 3.5 },
- { "matrix": [3, 4], "x": 4.75, "y": 3.5 },
- { "matrix": [3, 5], "x": 5.75, "y": 3.5 },
- { "matrix": [3, 6], "x": 6.75, "y": 3.5 },
- { "matrix": [3, 7], "x": 7.75, "y": 3.5 },
- { "matrix": [3, 8], "x": 8.75, "y": 3.5 },
- { "matrix": [3, 9], "x": 9.75, "y": 3.5 },
- { "matrix": [3, 10], "x": 10.75, "y": 3.5 },
- { "matrix": [3, 11], "x": 11.75, "y": 3.5 },
- { "matrix": [3, 12], "w": 2.25, "x": 12.75, "y": 3.5 },
- { "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.5 },
- { "matrix": [4, 2], "x": 2.25, "y": 4.5 },
- { "matrix": [4, 3], "x": 3.25, "y": 4.5 },
- { "matrix": [4, 4], "x": 4.25, "y": 4.5 },
- { "matrix": [4, 5], "x": 5.25, "y": 4.5 },
- { "matrix": [4, 6], "x": 6.25, "y": 4.5 },
- { "matrix": [4, 7], "x": 7.25, "y": 4.5 },
- { "matrix": [4, 8], "x": 8.25, "y": 4.5 },
- { "matrix": [4, 9], "x": 9.25, "y": 4.5 },
- { "matrix": [4, 10], "x": 10.25, "y": 4.5 },
- { "matrix": [4, 11], "x": 11.25, "y": 4.5 },
- { "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.5 },
- { "matrix": [4, 15], "x": 16.25, "y": 4.5 },
- { "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.5 },
- { "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.5 },
- { "matrix": [5, 6], "w": 7, "x": 4, "y": 5.5 },
- { "matrix": [5, 10], "w": 1.5, "x": 11, "y": 5.5 },
- { "matrix": [5, 12], "w": 1.5, "x": 13.5, "y": 5.5 },
- { "matrix": [5, 14], "x": 15.25, "y": 5.5 },
- { "matrix": [5, 15], "x": 16.25, "y": 5.5 },
- { "matrix": [5, 16], "x": 17.25, "y": 5.5 }
- ]
- },
- "LAYOUT_tkl_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.5 },
- { "matrix": [1, 1], "x": 1, "y": 1.5 },
- { "matrix": [1, 2], "x": 2, "y": 1.5 },
- { "matrix": [1, 3], "x": 3, "y": 1.5 },
- { "matrix": [1, 4], "x": 4, "y": 1.5 },
- { "matrix": [1, 5], "x": 5, "y": 1.5 },
- { "matrix": [1, 6], "x": 6, "y": 1.5 },
- { "matrix": [1, 7], "x": 7, "y": 1.5 },
- { "matrix": [1, 8], "x": 8, "y": 1.5 },
- { "matrix": [1, 9], "x": 9, "y": 1.5 },
- { "matrix": [1, 10], "x": 10, "y": 1.5 },
- { "matrix": [1, 11], "x": 11, "y": 1.5 },
- { "matrix": [1, 12], "x": 12, "y": 1.5 },
- { "matrix": [1, 13], "w": 2, "x": 13, "y": 1.5 },
- { "matrix": [1, 14], "x": 15.25, "y": 1.5 },
- { "matrix": [1, 15], "x": 16.25, "y": 1.5 },
- { "matrix": [1, 16], "x": 17.25, "y": 1.5 },
- { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.5 },
- { "matrix": [2, 1], "x": 1.5, "y": 2.5 },
- { "matrix": [2, 2], "x": 2.5, "y": 2.5 },
- { "matrix": [2, 3], "x": 3.5, "y": 2.5 },
- { "matrix": [2, 4], "x": 4.5, "y": 2.5 },
- { "matrix": [2, 5], "x": 5.5, "y": 2.5 },
- { "matrix": [2, 6], "x": 6.5, "y": 2.5 },
- { "matrix": [2, 7], "x": 7.5, "y": 2.5 },
- { "matrix": [2, 8], "x": 8.5, "y": 2.5 },
- { "matrix": [2, 9], "x": 9.5, "y": 2.5 },
- { "matrix": [2, 10], "x": 10.5, "y": 2.5 },
- { "matrix": [2, 11], "x": 11.5, "y": 2.5 },
- { "matrix": [2, 12], "x": 12.5, "y": 2.5 },
- { "matrix": [2, 14], "x": 15.25, "y": 2.5 },
- { "matrix": [2, 15], "x": 16.25, "y": 2.5 },
- { "matrix": [2, 16], "x": 17.25, "y": 2.5 },
- { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.5 },
- { "matrix": [3, 1], "x": 1.75, "y": 3.5 },
- { "matrix": [3, 2], "x": 2.75, "y": 3.5 },
- { "matrix": [3, 3], "x": 3.75, "y": 3.5 },
- { "matrix": [3, 4], "x": 4.75, "y": 3.5 },
- { "matrix": [3, 5], "x": 5.75, "y": 3.5 },
- { "matrix": [3, 6], "x": 6.75, "y": 3.5 },
- { "matrix": [3, 7], "x": 7.75, "y": 3.5 },
- { "matrix": [3, 8], "x": 8.75, "y": 3.5 },
- { "matrix": [3, 9], "x": 9.75, "y": 3.5 },
- { "matrix": [3, 10], "x": 10.75, "y": 3.5 },
- { "matrix": [3, 11], "x": 11.75, "y": 3.5 },
- { "matrix": [2, 13], "x": 12.75, "y": 3.5 },
- { "matrix": [3, 12], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2 },
- { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.5 },
- { "matrix": [4, 1], "x": 1.25, "y": 4.5 },
- { "matrix": [4, 2], "x": 2.25, "y": 4.5 },
- { "matrix": [4, 3], "x": 3.25, "y": 4.5 },
- { "matrix": [4, 4], "x": 4.25, "y": 4.5 },
- { "matrix": [4, 5], "x": 5.25, "y": 4.5 },
- { "matrix": [4, 6], "x": 6.25, "y": 4.5 },
- { "matrix": [4, 7], "x": 7.25, "y": 4.5 },
- { "matrix": [4, 8], "x": 8.25, "y": 4.5 },
- { "matrix": [4, 9], "x": 9.25, "y": 4.5 },
- { "matrix": [4, 10], "x": 10.25, "y": 4.5 },
- { "matrix": [4, 11], "x": 11.25, "y": 4.5 },
- { "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.5 },
- { "matrix": [4, 15], "x": 16.25, "y": 4.5 },
- { "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.5 },
- { "matrix": [5, 1], "x": 1.5, "y": 5.5 },
- { "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.5 },
- { "matrix": [5, 6], "w": 7, "x": 4, "y": 5.5 },
- { "matrix": [5, 10], "w": 1.5, "x": 11, "y": 5.5 },
- { "matrix": [5, 11], "x": 12.5, "y": 5.5 },
- { "matrix": [5, 12], "w": 1.5, "x": 13.5, "y": 5.5 },
- { "matrix": [5, 14], "x": 15.25, "y": 5.5 },
- { "matrix": [5, 15], "x": 16.25, "y": 5.5 },
- { "matrix": [5, 16], "x": 17.25, "y": 5.5 }
- ]
- },
- "LAYOUT_tkl_iso_wkl": {
- "layout": [
- { "matrix": [0, 0], "x": 0, "y": 0 },
- { "matrix": [0, 2], "x": 2, "y": 0 },
- { "matrix": [0, 3], "x": 3, "y": 0 },
- { "matrix": [0, 4], "x": 4, "y": 0 },
- { "matrix": [0, 5], "x": 5, "y": 0 },
- { "matrix": [0, 6], "x": 6.5, "y": 0 },
- { "matrix": [0, 7], "x": 7.5, "y": 0 },
- { "matrix": [0, 8], "x": 8.5, "y": 0 },
- { "matrix": [0, 9], "x": 9.5, "y": 0 },
- { "matrix": [0, 10], "x": 11, "y": 0 },
- { "matrix": [0, 11], "x": 12, "y": 0 },
- { "matrix": [0, 12], "x": 13, "y": 0 },
- { "matrix": [0, 13], "x": 14, "y": 0 },
- { "matrix": [0, 14], "x": 15.25, "y": 0 },
- { "matrix": [0, 15], "x": 16.25, "y": 0 },
- { "matrix": [0, 16], "x": 17.25, "y": 0 },
- { "matrix": [1, 0], "x": 0, "y": 1.5 },
- { "matrix": [1, 1], "x": 1, "y": 1.5 },
- { "matrix": [1, 2], "x": 2, "y": 1.5 },
- { "matrix": [1, 3], "x": 3, "y": 1.5 },
- { "matrix": [1, 4], "x": 4, "y": 1.5 },
- { "matrix": [1, 5], "x": 5, "y": 1.5 },
- { "matrix": [1, 6], "x": 6, "y": 1.5 },
- { "matrix": [1, 7], "x": 7, "y": 1.5 },
- { "matrix": [1, 8], "x": 8, "y": 1.5 },
- { "matrix": [1, 9], "x": 9, "y": 1.5 },
- { "matrix": [1, 10], "x": 10, "y": 1.5 },
- { "matrix": [1, 11], "x": 11, "y": 1.5 },
- { "matrix": [1, 12], "x": 12, "y": 1.5 },
- { "matrix": [1, 13], "w": 2, "x": 13, "y": 1.5 },
- { "matrix": [1, 14], "x": 15.25, "y": 1.5 },
- { "matrix": [1, 15], "x": 16.25, "y": 1.5 },
- { "matrix": [1, 16], "x": 17.25, "y": 1.5 },
- { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.5 },
- { "matrix": [2, 1], "x": 1.5, "y": 2.5 },
- { "matrix": [2, 2], "x": 2.5, "y": 2.5 },
- { "matrix": [2, 3], "x": 3.5, "y": 2.5 },
- { "matrix": [2, 4], "x": 4.5, "y": 2.5 },
- { "matrix": [2, 5], "x": 5.5, "y": 2.5 },
- { "matrix": [2, 6], "x": 6.5, "y": 2.5 },
- { "matrix": [2, 7], "x": 7.5, "y": 2.5 },
- { "matrix": [2, 8], "x": 8.5, "y": 2.5 },
- { "matrix": [2, 9], "x": 9.5, "y": 2.5 },
- { "matrix": [2, 10], "x": 10.5, "y": 2.5 },
- { "matrix": [2, 11], "x": 11.5, "y": 2.5 },
- { "matrix": [2, 12], "x": 12.5, "y": 2.5 },
- { "matrix": [2, 14], "x": 15.25, "y": 2.5 },
- { "matrix": [2, 15], "x": 16.25, "y": 2.5 },
- { "matrix": [2, 16], "x": 17.25, "y": 2.5 },
- { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.5 },
- { "matrix": [3, 1], "x": 1.75, "y": 3.5 },
- { "matrix": [3, 2], "x": 2.75, "y": 3.5 },
- { "matrix": [3, 3], "x": 3.75, "y": 3.5 },
- { "matrix": [3, 4], "x": 4.75, "y": 3.5 },
- { "matrix": [3, 5], "x": 5.75, "y": 3.5 },
- { "matrix": [3, 6], "x": 6.75, "y": 3.5 },
- { "matrix": [3, 7], "x": 7.75, "y": 3.5 },
- { "matrix": [3, 8], "x": 8.75, "y": 3.5 },
- { "matrix": [3, 9], "x": 9.75, "y": 3.5 },
- { "matrix": [3, 10], "x": 10.75, "y": 3.5 },
- { "matrix": [3, 11], "x": 11.75, "y": 3.5 },
- { "matrix": [2, 13], "x": 12.75, "y": 3.5 },
- { "matrix": [3, 12], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2 },
- { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.5 },
- { "matrix": [4, 1], "x": 1.25, "y": 4.5 },
- { "matrix": [4, 2], "x": 2.25, "y": 4.5 },
- { "matrix": [4, 3], "x": 3.25, "y": 4.5 },
- { "matrix": [4, 4], "x": 4.25, "y": 4.5 },
- { "matrix": [4, 5], "x": 5.25, "y": 4.5 },
- { "matrix": [4, 6], "x": 6.25, "y": 4.5 },
- { "matrix": [4, 7], "x": 7.25, "y": 4.5 },
- { "matrix": [4, 8], "x": 8.25, "y": 4.5 },
- { "matrix": [4, 9], "x": 9.25, "y": 4.5 },
- { "matrix": [4, 10], "x": 10.25, "y": 4.5 },
- { "matrix": [4, 11], "x": 11.25, "y": 4.5 },
- { "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.5 },
- { "matrix": [4, 15], "x": 16.25, "y": 4.5 },
- { "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.5 },
- { "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.5 },
- { "matrix": [5, 6], "w": 7, "x": 4, "y": 5.5 },
- { "matrix": [5, 10], "w": 1.5, "x": 11, "y": 5.5 },
- { "matrix": [5, 12], "w": 1.5, "x": 13.5, "y": 5.5 },
- { "matrix": [5, 14], "x": 15.25, "y": 5.5 },
- { "matrix": [5, 15], "x": 16.25, "y": 5.5 },
- { "matrix": [5, 16], "x": 17.25, "y": 5.5 }
- ]
- }
- }
-}
diff --git a/keyboards/dnworks/9973/keymaps/default/keymap.c b/keyboards/dnworks/9973/keymaps/default/keymap.c
deleted file mode 100644
index 8307bf9e76..0000000000
--- a/keyboards/dnworks/9973/keymaps/default/keymap.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
-Copyright 2023 zeix (@itsme-zeix)
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see .
-*/
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[0] = LAYOUT_all(
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS,
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, 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_INS, KC_END, KC_PGDN,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT)
-};
diff --git a/keyboards/dnworks/9973/keymaps/via/keymap.c b/keyboards/dnworks/9973/keymaps/via/keymap.c
deleted file mode 100644
index 8307bf9e76..0000000000
--- a/keyboards/dnworks/9973/keymaps/via/keymap.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
-Copyright 2023 zeix (@itsme-zeix)
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see .
-*/
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[0] = LAYOUT_all(
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS,
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, 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_INS, KC_END, KC_PGDN,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT)
-};
diff --git a/keyboards/dnworks/9973/keymaps/via/rules.mk b/keyboards/dnworks/9973/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807c..0000000000
--- a/keyboards/dnworks/9973/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/dnworks/9973/readme.md b/keyboards/dnworks/9973/readme.md
deleted file mode 100644
index 790f236cb7..0000000000
--- a/keyboards/dnworks/9973/readme.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# 997.3 TKL
-
-
-
-PCB that supports the 997.3 TKL designed by dnworks, including its variants.
-
-* Keyboard Maintainer: [Zeix](https://github.com/itsme-zeix)
-* Hardware Supported: 997.3 Solder PCB rev1
-* Hardware Availability: dnworks.co
-
-Make example for this keyboard (after setting up your build environment):
-
- make dnworks/997pt3:default
-
-Flashing example for this keyboard:
-
- make dnworks/997pt3:default:flash
-
-See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
-
-## Bootloader
-
-Enter the bootloader in 3 ways:
-
-* **Bootmagic reset**: Hold down the top left key and plug in the keyboard
-* **Physical reset button**: Briefly press the `RESET` button twice or short the `USB_BOOT` and `GND` pads and plug in the keyboard
-* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
\ No newline at end of file
diff --git a/keyboards/dnworks/tkl87/config.h b/keyboards/dnworks/tkl87/config.h
new file mode 100644
index 0000000000..77970ce4d3
--- /dev/null
+++ b/keyboards/dnworks/tkl87/config.h
@@ -0,0 +1,20 @@
+/*
+Copyright 2023 zeix (@itsme-zeix)
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
+#pragma once
+
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
diff --git a/keyboards/dnworks/tkl87/keyboard.json b/keyboards/dnworks/tkl87/keyboard.json
new file mode 100644
index 0000000000..6b56435ae3
--- /dev/null
+++ b/keyboards/dnworks/tkl87/keyboard.json
@@ -0,0 +1,480 @@
+{
+ "keyboard_name": "DN TKL F12",
+ "maintainer": "itsme-zeix",
+ "manufacturer": "dnworks",
+ "processor": "RP2040",
+ "bootloader": "rp2040",
+ "usb": {
+ "vid": "0x4C23",
+ "pid": "0x2936",
+ "device_version": "0.0.1"
+ },
+ "features": {
+ "bootmagic": true,
+ "mousekey": true,
+ "extrakey": true,
+ "nkro": true
+ },
+ "indicators": {
+ "caps_lock": "GP27",
+ "scroll_lock": "GP1",
+ "on_state": 1
+ },
+ "diode_direction": "COL2ROW",
+ "matrix_pins": {
+ "rows": ["GP2", "GP3", "GP4", "GP29", "GP12", "GP13"],
+ "cols": ["GP28", "GP26", "GP25", "GP24", "GP23", "GP22", "GP21", "GP20", "GP19", "GP18", "GP17", "GP16", "GP15", "GP14", "GP6", "GP5", "GP0"]
+ },
+ "community_layouts": ["tkl_ansi_tsangan", "tkl_iso_tsangan"],
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [
+ { "matrix": [0, 0], "x": 0, "y": 0 },
+ { "matrix": [0, 2], "x": 2, "y": 0 },
+ { "matrix": [0, 3], "x": 3, "y": 0 },
+ { "matrix": [0, 4], "x": 4, "y": 0 },
+ { "matrix": [0, 5], "x": 5, "y": 0 },
+ { "matrix": [0, 6], "x": 6.5, "y": 0 },
+ { "matrix": [0, 7], "x": 7.5, "y": 0 },
+ { "matrix": [0, 8], "x": 8.5, "y": 0 },
+ { "matrix": [0, 9], "x": 9.5, "y": 0 },
+ { "matrix": [0, 10], "x": 11, "y": 0 },
+ { "matrix": [0, 11], "x": 12, "y": 0 },
+ { "matrix": [0, 12], "x": 13, "y": 0 },
+ { "matrix": [0, 13], "x": 14, "y": 0 },
+ { "matrix": [0, 14], "x": 15.25, "y": 0 },
+ { "matrix": [0, 15], "x": 16.25, "y": 0 },
+ { "matrix": [0, 16], "x": 17.25, "y": 0 },
+ { "matrix": [1, 0], "x": 0, "y": 1.5 },
+ { "matrix": [1, 1], "x": 1, "y": 1.5 },
+ { "matrix": [1, 2], "x": 2, "y": 1.5 },
+ { "matrix": [1, 3], "x": 3, "y": 1.5 },
+ { "matrix": [1, 4], "x": 4, "y": 1.5 },
+ { "matrix": [1, 5], "x": 5, "y": 1.5 },
+ { "matrix": [1, 6], "x": 6, "y": 1.5 },
+ { "matrix": [1, 7], "x": 7, "y": 1.5 },
+ { "matrix": [1, 8], "x": 8, "y": 1.5 },
+ { "matrix": [1, 9], "x": 9, "y": 1.5 },
+ { "matrix": [1, 10], "x": 10, "y": 1.5 },
+ { "matrix": [1, 11], "x": 11, "y": 1.5 },
+ { "matrix": [1, 12], "x": 12, "y": 1.5 },
+ { "matrix": [1, 13], "w": 2, "x": 13, "y": 1.5 },
+ { "matrix": [1, 14], "x": 15.25, "y": 1.5 },
+ { "matrix": [1, 15], "x": 16.25, "y": 1.5 },
+ { "matrix": [1, 16], "x": 17.25, "y": 1.5 },
+ { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.5 },
+ { "matrix": [2, 1], "x": 1.5, "y": 2.5 },
+ { "matrix": [2, 2], "x": 2.5, "y": 2.5 },
+ { "matrix": [2, 3], "x": 3.5, "y": 2.5 },
+ { "matrix": [2, 4], "x": 4.5, "y": 2.5 },
+ { "matrix": [2, 5], "x": 5.5, "y": 2.5 },
+ { "matrix": [2, 6], "x": 6.5, "y": 2.5 },
+ { "matrix": [2, 7], "x": 7.5, "y": 2.5 },
+ { "matrix": [2, 8], "x": 8.5, "y": 2.5 },
+ { "matrix": [2, 9], "x": 9.5, "y": 2.5 },
+ { "matrix": [2, 10], "x": 10.5, "y": 2.5 },
+ { "matrix": [2, 11], "x": 11.5, "y": 2.5 },
+ { "matrix": [2, 12], "x": 12.5, "y": 2.5 },
+ { "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.5 },
+ { "matrix": [2, 14], "x": 15.25, "y": 2.5 },
+ { "matrix": [2, 15], "x": 16.25, "y": 2.5 },
+ { "matrix": [2, 16], "x": 17.25, "y": 2.5 },
+ { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.5 },
+ { "matrix": [3, 1], "x": 1.75, "y": 3.5 },
+ { "matrix": [3, 2], "x": 2.75, "y": 3.5 },
+ { "matrix": [3, 3], "x": 3.75, "y": 3.5 },
+ { "matrix": [3, 4], "x": 4.75, "y": 3.5 },
+ { "matrix": [3, 5], "x": 5.75, "y": 3.5 },
+ { "matrix": [3, 6], "x": 6.75, "y": 3.5 },
+ { "matrix": [3, 7], "x": 7.75, "y": 3.5 },
+ { "matrix": [3, 8], "x": 8.75, "y": 3.5 },
+ { "matrix": [3, 9], "x": 9.75, "y": 3.5 },
+ { "matrix": [3, 10], "x": 10.75, "y": 3.5 },
+ { "matrix": [3, 11], "x": 11.75, "y": 3.5 },
+ { "matrix": [3, 12], "w": 2.25, "x": 12.75, "y": 3.5 },
+ { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.5 },
+ { "matrix": [4, 1], "x": 1.25, "y": 4.5 },
+ { "matrix": [4, 2], "x": 2.25, "y": 4.5 },
+ { "matrix": [4, 3], "x": 3.25, "y": 4.5 },
+ { "matrix": [4, 4], "x": 4.25, "y": 4.5 },
+ { "matrix": [4, 5], "x": 5.25, "y": 4.5 },
+ { "matrix": [4, 6], "x": 6.25, "y": 4.5 },
+ { "matrix": [4, 7], "x": 7.25, "y": 4.5 },
+ { "matrix": [4, 8], "x": 8.25, "y": 4.5 },
+ { "matrix": [4, 9], "x": 9.25, "y": 4.5 },
+ { "matrix": [4, 10], "x": 10.25, "y": 4.5 },
+ { "matrix": [4, 11], "x": 11.25, "y": 4.5 },
+ { "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.5 },
+ { "matrix": [4, 15], "x": 16.25, "y": 4.5 },
+ { "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.5 },
+ { "matrix": [5, 1], "x": 1.5, "y": 5.5 },
+ { "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.5 },
+ { "matrix": [5, 6], "w": 7, "x": 4, "y": 5.5 },
+ { "matrix": [5, 10], "w": 1.5, "x": 11, "y": 5.5 },
+ { "matrix": [5, 11], "x": 12.5, "y": 5.5 },
+ { "matrix": [5, 12], "w": 1.5, "x": 13.5, "y": 5.5 },
+ { "matrix": [5, 14], "x": 15.25, "y": 5.5 },
+ { "matrix": [5, 15], "x": 16.25, "y": 5.5 },
+ { "matrix": [5, 16], "x": 17.25, "y": 5.5 }
+ ]
+ },
+ "LAYOUT_tkl_ansi_tsangan": {
+ "layout": [
+ { "matrix": [0, 0], "x": 0, "y": 0 },
+ { "matrix": [0, 2], "x": 2, "y": 0 },
+ { "matrix": [0, 3], "x": 3, "y": 0 },
+ { "matrix": [0, 4], "x": 4, "y": 0 },
+ { "matrix": [0, 5], "x": 5, "y": 0 },
+ { "matrix": [0, 6], "x": 6.5, "y": 0 },
+ { "matrix": [0, 7], "x": 7.5, "y": 0 },
+ { "matrix": [0, 8], "x": 8.5, "y": 0 },
+ { "matrix": [0, 9], "x": 9.5, "y": 0 },
+ { "matrix": [0, 10], "x": 11, "y": 0 },
+ { "matrix": [0, 11], "x": 12, "y": 0 },
+ { "matrix": [0, 12], "x": 13, "y": 0 },
+ { "matrix": [0, 13], "x": 14, "y": 0 },
+ { "matrix": [0, 14], "x": 15.25, "y": 0 },
+ { "matrix": [0, 15], "x": 16.25, "y": 0 },
+ { "matrix": [0, 16], "x": 17.25, "y": 0 },
+ { "matrix": [1, 0], "x": 0, "y": 1.5 },
+ { "matrix": [1, 1], "x": 1, "y": 1.5 },
+ { "matrix": [1, 2], "x": 2, "y": 1.5 },
+ { "matrix": [1, 3], "x": 3, "y": 1.5 },
+ { "matrix": [1, 4], "x": 4, "y": 1.5 },
+ { "matrix": [1, 5], "x": 5, "y": 1.5 },
+ { "matrix": [1, 6], "x": 6, "y": 1.5 },
+ { "matrix": [1, 7], "x": 7, "y": 1.5 },
+ { "matrix": [1, 8], "x": 8, "y": 1.5 },
+ { "matrix": [1, 9], "x": 9, "y": 1.5 },
+ { "matrix": [1, 10], "x": 10, "y": 1.5 },
+ { "matrix": [1, 11], "x": 11, "y": 1.5 },
+ { "matrix": [1, 12], "x": 12, "y": 1.5 },
+ { "matrix": [1, 13], "w": 2, "x": 13, "y": 1.5 },
+ { "matrix": [1, 14], "x": 15.25, "y": 1.5 },
+ { "matrix": [1, 15], "x": 16.25, "y": 1.5 },
+ { "matrix": [1, 16], "x": 17.25, "y": 1.5 },
+ { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.5 },
+ { "matrix": [2, 1], "x": 1.5, "y": 2.5 },
+ { "matrix": [2, 2], "x": 2.5, "y": 2.5 },
+ { "matrix": [2, 3], "x": 3.5, "y": 2.5 },
+ { "matrix": [2, 4], "x": 4.5, "y": 2.5 },
+ { "matrix": [2, 5], "x": 5.5, "y": 2.5 },
+ { "matrix": [2, 6], "x": 6.5, "y": 2.5 },
+ { "matrix": [2, 7], "x": 7.5, "y": 2.5 },
+ { "matrix": [2, 8], "x": 8.5, "y": 2.5 },
+ { "matrix": [2, 9], "x": 9.5, "y": 2.5 },
+ { "matrix": [2, 10], "x": 10.5, "y": 2.5 },
+ { "matrix": [2, 11], "x": 11.5, "y": 2.5 },
+ { "matrix": [2, 12], "x": 12.5, "y": 2.5 },
+ { "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.5 },
+ { "matrix": [2, 14], "x": 15.25, "y": 2.5 },
+ { "matrix": [2, 15], "x": 16.25, "y": 2.5 },
+ { "matrix": [2, 16], "x": 17.25, "y": 2.5 },
+ { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.5 },
+ { "matrix": [3, 1], "x": 1.75, "y": 3.5 },
+ { "matrix": [3, 2], "x": 2.75, "y": 3.5 },
+ { "matrix": [3, 3], "x": 3.75, "y": 3.5 },
+ { "matrix": [3, 4], "x": 4.75, "y": 3.5 },
+ { "matrix": [3, 5], "x": 5.75, "y": 3.5 },
+ { "matrix": [3, 6], "x": 6.75, "y": 3.5 },
+ { "matrix": [3, 7], "x": 7.75, "y": 3.5 },
+ { "matrix": [3, 8], "x": 8.75, "y": 3.5 },
+ { "matrix": [3, 9], "x": 9.75, "y": 3.5 },
+ { "matrix": [3, 10], "x": 10.75, "y": 3.5 },
+ { "matrix": [3, 11], "x": 11.75, "y": 3.5 },
+ { "matrix": [3, 12], "w": 2.25, "x": 12.75, "y": 3.5 },
+ { "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.5 },
+ { "matrix": [4, 2], "x": 2.25, "y": 4.5 },
+ { "matrix": [4, 3], "x": 3.25, "y": 4.5 },
+ { "matrix": [4, 4], "x": 4.25, "y": 4.5 },
+ { "matrix": [4, 5], "x": 5.25, "y": 4.5 },
+ { "matrix": [4, 6], "x": 6.25, "y": 4.5 },
+ { "matrix": [4, 7], "x": 7.25, "y": 4.5 },
+ { "matrix": [4, 8], "x": 8.25, "y": 4.5 },
+ { "matrix": [4, 9], "x": 9.25, "y": 4.5 },
+ { "matrix": [4, 10], "x": 10.25, "y": 4.5 },
+ { "matrix": [4, 11], "x": 11.25, "y": 4.5 },
+ { "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.5 },
+ { "matrix": [4, 15], "x": 16.25, "y": 4.5 },
+ { "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.5 },
+ { "matrix": [5, 1], "x": 1.5, "y": 5.5 },
+ { "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.5 },
+ { "matrix": [5, 6], "w": 7, "x": 4, "y": 5.5 },
+ { "matrix": [5, 10], "w": 1.5, "x": 11, "y": 5.5 },
+ { "matrix": [5, 11], "x": 12.5, "y": 5.5 },
+ { "matrix": [5, 12], "w": 1.5, "x": 13.5, "y": 5.5 },
+ { "matrix": [5, 14], "x": 15.25, "y": 5.5 },
+ { "matrix": [5, 15], "x": 16.25, "y": 5.5 },
+ { "matrix": [5, 16], "x": 17.25, "y": 5.5 }
+ ]
+ },
+ "LAYOUT_tkl_ansi_wkl": {
+ "layout": [
+ { "matrix": [0, 0], "x": 0, "y": 0 },
+ { "matrix": [0, 2], "x": 2, "y": 0 },
+ { "matrix": [0, 3], "x": 3, "y": 0 },
+ { "matrix": [0, 4], "x": 4, "y": 0 },
+ { "matrix": [0, 5], "x": 5, "y": 0 },
+ { "matrix": [0, 6], "x": 6.5, "y": 0 },
+ { "matrix": [0, 7], "x": 7.5, "y": 0 },
+ { "matrix": [0, 8], "x": 8.5, "y": 0 },
+ { "matrix": [0, 9], "x": 9.5, "y": 0 },
+ { "matrix": [0, 10], "x": 11, "y": 0 },
+ { "matrix": [0, 11], "x": 12, "y": 0 },
+ { "matrix": [0, 12], "x": 13, "y": 0 },
+ { "matrix": [0, 13], "x": 14, "y": 0 },
+ { "matrix": [0, 14], "x": 15.25, "y": 0 },
+ { "matrix": [0, 15], "x": 16.25, "y": 0 },
+ { "matrix": [0, 16], "x": 17.25, "y": 0 },
+ { "matrix": [1, 0], "x": 0, "y": 1.5 },
+ { "matrix": [1, 1], "x": 1, "y": 1.5 },
+ { "matrix": [1, 2], "x": 2, "y": 1.5 },
+ { "matrix": [1, 3], "x": 3, "y": 1.5 },
+ { "matrix": [1, 4], "x": 4, "y": 1.5 },
+ { "matrix": [1, 5], "x": 5, "y": 1.5 },
+ { "matrix": [1, 6], "x": 6, "y": 1.5 },
+ { "matrix": [1, 7], "x": 7, "y": 1.5 },
+ { "matrix": [1, 8], "x": 8, "y": 1.5 },
+ { "matrix": [1, 9], "x": 9, "y": 1.5 },
+ { "matrix": [1, 10], "x": 10, "y": 1.5 },
+ { "matrix": [1, 11], "x": 11, "y": 1.5 },
+ { "matrix": [1, 12], "x": 12, "y": 1.5 },
+ { "matrix": [1, 13], "w": 2, "x": 13, "y": 1.5 },
+ { "matrix": [1, 14], "x": 15.25, "y": 1.5 },
+ { "matrix": [1, 15], "x": 16.25, "y": 1.5 },
+ { "matrix": [1, 16], "x": 17.25, "y": 1.5 },
+ { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.5 },
+ { "matrix": [2, 1], "x": 1.5, "y": 2.5 },
+ { "matrix": [2, 2], "x": 2.5, "y": 2.5 },
+ { "matrix": [2, 3], "x": 3.5, "y": 2.5 },
+ { "matrix": [2, 4], "x": 4.5, "y": 2.5 },
+ { "matrix": [2, 5], "x": 5.5, "y": 2.5 },
+ { "matrix": [2, 6], "x": 6.5, "y": 2.5 },
+ { "matrix": [2, 7], "x": 7.5, "y": 2.5 },
+ { "matrix": [2, 8], "x": 8.5, "y": 2.5 },
+ { "matrix": [2, 9], "x": 9.5, "y": 2.5 },
+ { "matrix": [2, 10], "x": 10.5, "y": 2.5 },
+ { "matrix": [2, 11], "x": 11.5, "y": 2.5 },
+ { "matrix": [2, 12], "x": 12.5, "y": 2.5 },
+ { "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.5 },
+ { "matrix": [2, 14], "x": 15.25, "y": 2.5 },
+ { "matrix": [2, 15], "x": 16.25, "y": 2.5 },
+ { "matrix": [2, 16], "x": 17.25, "y": 2.5 },
+ { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.5 },
+ { "matrix": [3, 1], "x": 1.75, "y": 3.5 },
+ { "matrix": [3, 2], "x": 2.75, "y": 3.5 },
+ { "matrix": [3, 3], "x": 3.75, "y": 3.5 },
+ { "matrix": [3, 4], "x": 4.75, "y": 3.5 },
+ { "matrix": [3, 5], "x": 5.75, "y": 3.5 },
+ { "matrix": [3, 6], "x": 6.75, "y": 3.5 },
+ { "matrix": [3, 7], "x": 7.75, "y": 3.5 },
+ { "matrix": [3, 8], "x": 8.75, "y": 3.5 },
+ { "matrix": [3, 9], "x": 9.75, "y": 3.5 },
+ { "matrix": [3, 10], "x": 10.75, "y": 3.5 },
+ { "matrix": [3, 11], "x": 11.75, "y": 3.5 },
+ { "matrix": [3, 12], "w": 2.25, "x": 12.75, "y": 3.5 },
+ { "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.5 },
+ { "matrix": [4, 2], "x": 2.25, "y": 4.5 },
+ { "matrix": [4, 3], "x": 3.25, "y": 4.5 },
+ { "matrix": [4, 4], "x": 4.25, "y": 4.5 },
+ { "matrix": [4, 5], "x": 5.25, "y": 4.5 },
+ { "matrix": [4, 6], "x": 6.25, "y": 4.5 },
+ { "matrix": [4, 7], "x": 7.25, "y": 4.5 },
+ { "matrix": [4, 8], "x": 8.25, "y": 4.5 },
+ { "matrix": [4, 9], "x": 9.25, "y": 4.5 },
+ { "matrix": [4, 10], "x": 10.25, "y": 4.5 },
+ { "matrix": [4, 11], "x": 11.25, "y": 4.5 },
+ { "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.5 },
+ { "matrix": [4, 15], "x": 16.25, "y": 4.5 },
+ { "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.5 },
+ { "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.5 },
+ { "matrix": [5, 6], "w": 7, "x": 4, "y": 5.5 },
+ { "matrix": [5, 10], "w": 1.5, "x": 11, "y": 5.5 },
+ { "matrix": [5, 12], "w": 1.5, "x": 13.5, "y": 5.5 },
+ { "matrix": [5, 14], "x": 15.25, "y": 5.5 },
+ { "matrix": [5, 15], "x": 16.25, "y": 5.5 },
+ { "matrix": [5, 16], "x": 17.25, "y": 5.5 }
+ ]
+ },
+ "LAYOUT_tkl_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.5 },
+ { "matrix": [1, 1], "x": 1, "y": 1.5 },
+ { "matrix": [1, 2], "x": 2, "y": 1.5 },
+ { "matrix": [1, 3], "x": 3, "y": 1.5 },
+ { "matrix": [1, 4], "x": 4, "y": 1.5 },
+ { "matrix": [1, 5], "x": 5, "y": 1.5 },
+ { "matrix": [1, 6], "x": 6, "y": 1.5 },
+ { "matrix": [1, 7], "x": 7, "y": 1.5 },
+ { "matrix": [1, 8], "x": 8, "y": 1.5 },
+ { "matrix": [1, 9], "x": 9, "y": 1.5 },
+ { "matrix": [1, 10], "x": 10, "y": 1.5 },
+ { "matrix": [1, 11], "x": 11, "y": 1.5 },
+ { "matrix": [1, 12], "x": 12, "y": 1.5 },
+ { "matrix": [1, 13], "w": 2, "x": 13, "y": 1.5 },
+ { "matrix": [1, 14], "x": 15.25, "y": 1.5 },
+ { "matrix": [1, 15], "x": 16.25, "y": 1.5 },
+ { "matrix": [1, 16], "x": 17.25, "y": 1.5 },
+ { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.5 },
+ { "matrix": [2, 1], "x": 1.5, "y": 2.5 },
+ { "matrix": [2, 2], "x": 2.5, "y": 2.5 },
+ { "matrix": [2, 3], "x": 3.5, "y": 2.5 },
+ { "matrix": [2, 4], "x": 4.5, "y": 2.5 },
+ { "matrix": [2, 5], "x": 5.5, "y": 2.5 },
+ { "matrix": [2, 6], "x": 6.5, "y": 2.5 },
+ { "matrix": [2, 7], "x": 7.5, "y": 2.5 },
+ { "matrix": [2, 8], "x": 8.5, "y": 2.5 },
+ { "matrix": [2, 9], "x": 9.5, "y": 2.5 },
+ { "matrix": [2, 10], "x": 10.5, "y": 2.5 },
+ { "matrix": [2, 11], "x": 11.5, "y": 2.5 },
+ { "matrix": [2, 12], "x": 12.5, "y": 2.5 },
+ { "matrix": [2, 14], "x": 15.25, "y": 2.5 },
+ { "matrix": [2, 15], "x": 16.25, "y": 2.5 },
+ { "matrix": [2, 16], "x": 17.25, "y": 2.5 },
+ { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.5 },
+ { "matrix": [3, 1], "x": 1.75, "y": 3.5 },
+ { "matrix": [3, 2], "x": 2.75, "y": 3.5 },
+ { "matrix": [3, 3], "x": 3.75, "y": 3.5 },
+ { "matrix": [3, 4], "x": 4.75, "y": 3.5 },
+ { "matrix": [3, 5], "x": 5.75, "y": 3.5 },
+ { "matrix": [3, 6], "x": 6.75, "y": 3.5 },
+ { "matrix": [3, 7], "x": 7.75, "y": 3.5 },
+ { "matrix": [3, 8], "x": 8.75, "y": 3.5 },
+ { "matrix": [3, 9], "x": 9.75, "y": 3.5 },
+ { "matrix": [3, 10], "x": 10.75, "y": 3.5 },
+ { "matrix": [3, 11], "x": 11.75, "y": 3.5 },
+ { "matrix": [2, 13], "x": 12.75, "y": 3.5 },
+ { "matrix": [3, 12], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2 },
+ { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.5 },
+ { "matrix": [4, 1], "x": 1.25, "y": 4.5 },
+ { "matrix": [4, 2], "x": 2.25, "y": 4.5 },
+ { "matrix": [4, 3], "x": 3.25, "y": 4.5 },
+ { "matrix": [4, 4], "x": 4.25, "y": 4.5 },
+ { "matrix": [4, 5], "x": 5.25, "y": 4.5 },
+ { "matrix": [4, 6], "x": 6.25, "y": 4.5 },
+ { "matrix": [4, 7], "x": 7.25, "y": 4.5 },
+ { "matrix": [4, 8], "x": 8.25, "y": 4.5 },
+ { "matrix": [4, 9], "x": 9.25, "y": 4.5 },
+ { "matrix": [4, 10], "x": 10.25, "y": 4.5 },
+ { "matrix": [4, 11], "x": 11.25, "y": 4.5 },
+ { "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.5 },
+ { "matrix": [4, 15], "x": 16.25, "y": 4.5 },
+ { "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.5 },
+ { "matrix": [5, 1], "x": 1.5, "y": 5.5 },
+ { "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.5 },
+ { "matrix": [5, 6], "w": 7, "x": 4, "y": 5.5 },
+ { "matrix": [5, 10], "w": 1.5, "x": 11, "y": 5.5 },
+ { "matrix": [5, 11], "x": 12.5, "y": 5.5 },
+ { "matrix": [5, 12], "w": 1.5, "x": 13.5, "y": 5.5 },
+ { "matrix": [5, 14], "x": 15.25, "y": 5.5 },
+ { "matrix": [5, 15], "x": 16.25, "y": 5.5 },
+ { "matrix": [5, 16], "x": 17.25, "y": 5.5 }
+ ]
+ },
+ "LAYOUT_tkl_iso_wkl": {
+ "layout": [
+ { "matrix": [0, 0], "x": 0, "y": 0 },
+ { "matrix": [0, 2], "x": 2, "y": 0 },
+ { "matrix": [0, 3], "x": 3, "y": 0 },
+ { "matrix": [0, 4], "x": 4, "y": 0 },
+ { "matrix": [0, 5], "x": 5, "y": 0 },
+ { "matrix": [0, 6], "x": 6.5, "y": 0 },
+ { "matrix": [0, 7], "x": 7.5, "y": 0 },
+ { "matrix": [0, 8], "x": 8.5, "y": 0 },
+ { "matrix": [0, 9], "x": 9.5, "y": 0 },
+ { "matrix": [0, 10], "x": 11, "y": 0 },
+ { "matrix": [0, 11], "x": 12, "y": 0 },
+ { "matrix": [0, 12], "x": 13, "y": 0 },
+ { "matrix": [0, 13], "x": 14, "y": 0 },
+ { "matrix": [0, 14], "x": 15.25, "y": 0 },
+ { "matrix": [0, 15], "x": 16.25, "y": 0 },
+ { "matrix": [0, 16], "x": 17.25, "y": 0 },
+ { "matrix": [1, 0], "x": 0, "y": 1.5 },
+ { "matrix": [1, 1], "x": 1, "y": 1.5 },
+ { "matrix": [1, 2], "x": 2, "y": 1.5 },
+ { "matrix": [1, 3], "x": 3, "y": 1.5 },
+ { "matrix": [1, 4], "x": 4, "y": 1.5 },
+ { "matrix": [1, 5], "x": 5, "y": 1.5 },
+ { "matrix": [1, 6], "x": 6, "y": 1.5 },
+ { "matrix": [1, 7], "x": 7, "y": 1.5 },
+ { "matrix": [1, 8], "x": 8, "y": 1.5 },
+ { "matrix": [1, 9], "x": 9, "y": 1.5 },
+ { "matrix": [1, 10], "x": 10, "y": 1.5 },
+ { "matrix": [1, 11], "x": 11, "y": 1.5 },
+ { "matrix": [1, 12], "x": 12, "y": 1.5 },
+ { "matrix": [1, 13], "w": 2, "x": 13, "y": 1.5 },
+ { "matrix": [1, 14], "x": 15.25, "y": 1.5 },
+ { "matrix": [1, 15], "x": 16.25, "y": 1.5 },
+ { "matrix": [1, 16], "x": 17.25, "y": 1.5 },
+ { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.5 },
+ { "matrix": [2, 1], "x": 1.5, "y": 2.5 },
+ { "matrix": [2, 2], "x": 2.5, "y": 2.5 },
+ { "matrix": [2, 3], "x": 3.5, "y": 2.5 },
+ { "matrix": [2, 4], "x": 4.5, "y": 2.5 },
+ { "matrix": [2, 5], "x": 5.5, "y": 2.5 },
+ { "matrix": [2, 6], "x": 6.5, "y": 2.5 },
+ { "matrix": [2, 7], "x": 7.5, "y": 2.5 },
+ { "matrix": [2, 8], "x": 8.5, "y": 2.5 },
+ { "matrix": [2, 9], "x": 9.5, "y": 2.5 },
+ { "matrix": [2, 10], "x": 10.5, "y": 2.5 },
+ { "matrix": [2, 11], "x": 11.5, "y": 2.5 },
+ { "matrix": [2, 12], "x": 12.5, "y": 2.5 },
+ { "matrix": [2, 14], "x": 15.25, "y": 2.5 },
+ { "matrix": [2, 15], "x": 16.25, "y": 2.5 },
+ { "matrix": [2, 16], "x": 17.25, "y": 2.5 },
+ { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.5 },
+ { "matrix": [3, 1], "x": 1.75, "y": 3.5 },
+ { "matrix": [3, 2], "x": 2.75, "y": 3.5 },
+ { "matrix": [3, 3], "x": 3.75, "y": 3.5 },
+ { "matrix": [3, 4], "x": 4.75, "y": 3.5 },
+ { "matrix": [3, 5], "x": 5.75, "y": 3.5 },
+ { "matrix": [3, 6], "x": 6.75, "y": 3.5 },
+ { "matrix": [3, 7], "x": 7.75, "y": 3.5 },
+ { "matrix": [3, 8], "x": 8.75, "y": 3.5 },
+ { "matrix": [3, 9], "x": 9.75, "y": 3.5 },
+ { "matrix": [3, 10], "x": 10.75, "y": 3.5 },
+ { "matrix": [3, 11], "x": 11.75, "y": 3.5 },
+ { "matrix": [2, 13], "x": 12.75, "y": 3.5 },
+ { "matrix": [3, 12], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2 },
+ { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.5 },
+ { "matrix": [4, 1], "x": 1.25, "y": 4.5 },
+ { "matrix": [4, 2], "x": 2.25, "y": 4.5 },
+ { "matrix": [4, 3], "x": 3.25, "y": 4.5 },
+ { "matrix": [4, 4], "x": 4.25, "y": 4.5 },
+ { "matrix": [4, 5], "x": 5.25, "y": 4.5 },
+ { "matrix": [4, 6], "x": 6.25, "y": 4.5 },
+ { "matrix": [4, 7], "x": 7.25, "y": 4.5 },
+ { "matrix": [4, 8], "x": 8.25, "y": 4.5 },
+ { "matrix": [4, 9], "x": 9.25, "y": 4.5 },
+ { "matrix": [4, 10], "x": 10.25, "y": 4.5 },
+ { "matrix": [4, 11], "x": 11.25, "y": 4.5 },
+ { "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.5 },
+ { "matrix": [4, 15], "x": 16.25, "y": 4.5 },
+ { "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.5 },
+ { "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.5 },
+ { "matrix": [5, 6], "w": 7, "x": 4, "y": 5.5 },
+ { "matrix": [5, 10], "w": 1.5, "x": 11, "y": 5.5 },
+ { "matrix": [5, 12], "w": 1.5, "x": 13.5, "y": 5.5 },
+ { "matrix": [5, 14], "x": 15.25, "y": 5.5 },
+ { "matrix": [5, 15], "x": 16.25, "y": 5.5 },
+ { "matrix": [5, 16], "x": 17.25, "y": 5.5 }
+ ]
+ }
+ }
+}
diff --git a/keyboards/dnworks/tkl87/keymaps/default/keymap.c b/keyboards/dnworks/tkl87/keymaps/default/keymap.c
new file mode 100644
index 0000000000..8307bf9e76
--- /dev/null
+++ b/keyboards/dnworks/tkl87/keymaps/default/keymap.c
@@ -0,0 +1,27 @@
+/*
+Copyright 2023 zeix (@itsme-zeix)
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[0] = LAYOUT_all(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, 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_INS, KC_END, KC_PGDN,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT)
+};
diff --git a/keyboards/dnworks/tkl87/keymaps/via/keymap.c b/keyboards/dnworks/tkl87/keymaps/via/keymap.c
new file mode 100644
index 0000000000..8307bf9e76
--- /dev/null
+++ b/keyboards/dnworks/tkl87/keymaps/via/keymap.c
@@ -0,0 +1,27 @@
+/*
+Copyright 2023 zeix (@itsme-zeix)
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[0] = LAYOUT_all(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, 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_INS, KC_END, KC_PGDN,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT)
+};
diff --git a/keyboards/dnworks/tkl87/keymaps/via/rules.mk b/keyboards/dnworks/tkl87/keymaps/via/rules.mk
new file mode 100644
index 0000000000..1e5b99807c
--- /dev/null
+++ b/keyboards/dnworks/tkl87/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/dnworks/tkl87/readme.md b/keyboards/dnworks/tkl87/readme.md
new file mode 100644
index 0000000000..121cdccddf
--- /dev/null
+++ b/keyboards/dnworks/tkl87/readme.md
@@ -0,0 +1,27 @@
+# dnworks TKL (F12)
+
+
+
+PCB that supports the F12 TKLs designed by dnworks.
+
+* Keyboard Maintainer: [Zeix](https://github.com/itsme-zeix)
+* Hardware Supported: 997.3 Solder PCB rev1, 765LT Solder PCB rev1 and Best Friend Solder PCB Rev1.
+* Hardware Availability: https://dnworks.co/products
+
+Make example for this keyboard (after setting up your build environment):
+
+ make dnworks/tkl87:default
+
+Flashing example for this keyboard:
+
+ make dnworks/tkl87: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 escape and plug in the keyboard
+* **Physical reset button**: Short the 'USB_BOOT' button and plug in keyboard or press the 'RESET' button twice with the keyboard plugged in.
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
\ No newline at end of file
--
cgit v1.2.3
From 4ab36df48fba751ca88beaf1a7a5dd84ba34a370 Mon Sep 17 00:00:00 2001
From: Joel Challis
Date: Thu, 18 Jul 2024 00:02:53 +0100
Subject: Move split.soft_serial_pin to split.serial.pin (#24127)
---
data/mappings/info_config.hjson | 2 +-
data/schemas/keyboard.jsonschema | 8 ++++++--
docs/reference_info_json.md | 4 ++--
keyboards/zvecr/zv48/info.json | 10 +++++-----
lib/python/qmk/info.py | 9 +++++++++
5 files changed, 23 insertions(+), 10 deletions(-)
(limited to 'data/mappings')
diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson
index 4f731b6011..4c895cf5d5 100644
--- a/data/mappings/info_config.hjson
+++ b/data/mappings/info_config.hjson
@@ -176,7 +176,7 @@
"SECURE_UNLOCK_TIMEOUT": {"info_key": "secure.unlock_timeout", "value_type": "int"},
// Split Keyboard
- "SOFT_SERIAL_PIN": {"info_key": "split.soft_serial_pin"},
+ "SOFT_SERIAL_PIN": {"info_key": "split.serial.pin"},
"SOFT_SERIAL_SPEED": {"info_key": "split.soft_serial_speed"},
"SPLIT_HAND_MATRIX_GRID": {"info_key": "split.handedness.matrix_grid", "value_type": "array", "to_c": false},
"SPLIT_HAND_PIN": {"info_key": "split.handedness.pin"},
diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema
index e758c325c7..7649a8e31b 100644
--- a/data/schemas/keyboard.jsonschema
+++ b/data/schemas/keyboard.jsonschema
@@ -823,7 +823,10 @@
}
}
},
- "soft_serial_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
+ "soft_serial_pin": {
+ "$ref": "qmk.definitions.v1#/mcu_pin",
+ "$comment": "Deprecated: use split.serial.pin instead"
+ },
"soft_serial_speed": {
"type": "integer",
"minimum": 0,
@@ -836,7 +839,8 @@
"driver": {
"type": "string",
"enum": ["bitbang", "usart", "vendor"]
- }
+ },
+ "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}
}
},
"transport": {
diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md
index a7a6caff79..e658b48b71 100644
--- a/docs/reference_info_json.md
+++ b/docs/reference_info_json.md
@@ -736,8 +736,8 @@ Configures the [Split Keyboard](features/split_keyboard) feature.
* `driver`
* The driver to use. Must be one of `bitbang`, `usart`, `vendor`.
* Default: `"bitbang"`
- * `soft_serial_pin`
- * The GPIO pin to use (`serial` transport protocol only).
+ * `pin`
+ * The GPIO pin to use for transmit and receive.
* `soft_serial_speed`
* The protocol speed, from `0` to `5` (`serial` transport protocol only).
* Default: `1`
diff --git a/keyboards/zvecr/zv48/info.json b/keyboards/zvecr/zv48/info.json
index 6e4daad312..39a05a61e6 100644
--- a/keyboards/zvecr/zv48/info.json
+++ b/keyboards/zvecr/zv48/info.json
@@ -50,15 +50,15 @@
},
"split": {
"enabled": true,
- "handedness": {
- "pin": "B9"
- },
- "soft_serial_pin": "B6",
"bootmagic": {
"matrix": [4, 0]
},
+ "handedness": {
+ "pin": "B9"
+ },
"serial": {
- "driver": "usart"
+ "driver": "usart",
+ "pin": "B6"
},
"matrix_pins": {
"right": {
diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py
index 5b3b249015..5948b66b5e 100644
--- a/lib/python/qmk/info.py
+++ b/lib/python/qmk/info.py
@@ -461,6 +461,14 @@ def _extract_split_handedness(info_data, config_c):
split['handedness']['matrix_grid'] = split.pop('matrix_grid')
+def _extract_split_serial(info_data, config_c):
+ # Migrate
+ split = info_data.get('split', {})
+ if 'soft_serial_pin' in split:
+ split['serial'] = split.get('serial', {})
+ split['serial']['pin'] = split.pop('soft_serial_pin')
+
+
def _extract_split_transport(info_data, config_c):
# Figure out the transport method
if config_c.get('USE_I2C') is True:
@@ -656,6 +664,7 @@ def _extract_config_h(info_data, config_c):
_extract_audio(info_data, config_c)
_extract_secure_unlock(info_data, config_c)
_extract_split_handedness(info_data, config_c)
+ _extract_split_serial(info_data, config_c)
_extract_split_transport(info_data, config_c)
_extract_split_right_pins(info_data, config_c)
_extract_encoders(info_data, config_c)
--
cgit v1.2.3
From 938837e881cb45fd567dfe8b4a2759c71864ec74 Mon Sep 17 00:00:00 2001
From: Less/Rikki
Date: Fri, 26 Jul 2024 22:14:00 -0400
Subject: refactor: keyboard/ncr80/r2 (#22670)
Co-authored-by: Duncan Sutherland
---
data/mappings/keyboard_aliases.hjson | 6 +
keyboards/mt/ncr80/hotswap/keyboard.json | 150 ---
.../mt/ncr80/hotswap/keymaps/default/keymap.c | 27 -
keyboards/mt/ncr80/hotswap/keymaps/via/keymap.c | 49 -
keyboards/mt/ncr80/hotswap/keymaps/via/rules.mk | 2 -
keyboards/mt/ncr80/hotswap/readme.md | 31 -
keyboards/mt/ncr80/info.json | 8 +
keyboards/mt/ncr80/r2/hotswap/keyboard.json | 122 ++
.../mt/ncr80/r2/hotswap/keymaps/default/keymap.c | 27 +
keyboards/mt/ncr80/r2/hotswap/keymaps/via/keymap.c | 28 +
keyboards/mt/ncr80/r2/hotswap/keymaps/via/rules.mk | 2 +
keyboards/mt/ncr80/r2/info.json | 15 +
keyboards/mt/ncr80/r2/solder/keyboard.json | 1209 ++++++++++++++++++++
.../mt/ncr80/r2/solder/keymaps/default/keymap.c | 39 +
.../r2/solder/keymaps/default_tkl_ansi/keymap.c | 28 +
.../r2/solder/keymaps/default_tkl_iso/keymap.c | 28 +
keyboards/mt/ncr80/r2/solder/keymaps/via/keymap.c | 39 +
keyboards/mt/ncr80/r2/solder/keymaps/via/rules.mk | 2 +
keyboards/mt/ncr80/readme.md | 26 +-
keyboards/mt/ncr80/rules.mk | 1 -
keyboards/mt/ncr80/solder/keyboard.json | 352 ------
keyboards/mt/ncr80/solder/keymaps/default/keymap.c | 39 -
.../ncr80/solder/keymaps/default_tkl_ansi/keymap.c | 28 -
.../ncr80/solder/keymaps/default_tkl_iso/keymap.c | 28 -
keyboards/mt/ncr80/solder/keymaps/via/keymap.c | 57 -
keyboards/mt/ncr80/solder/keymaps/via/rules.mk | 2 -
keyboards/mt/ncr80/solder/readme.md | 29 -
27 files changed, 1575 insertions(+), 799 deletions(-)
delete mode 100644 keyboards/mt/ncr80/hotswap/keyboard.json
delete mode 100644 keyboards/mt/ncr80/hotswap/keymaps/default/keymap.c
delete mode 100644 keyboards/mt/ncr80/hotswap/keymaps/via/keymap.c
delete mode 100644 keyboards/mt/ncr80/hotswap/keymaps/via/rules.mk
delete mode 100644 keyboards/mt/ncr80/hotswap/readme.md
create mode 100644 keyboards/mt/ncr80/info.json
create mode 100644 keyboards/mt/ncr80/r2/hotswap/keyboard.json
create mode 100644 keyboards/mt/ncr80/r2/hotswap/keymaps/default/keymap.c
create mode 100644 keyboards/mt/ncr80/r2/hotswap/keymaps/via/keymap.c
create mode 100644 keyboards/mt/ncr80/r2/hotswap/keymaps/via/rules.mk
create mode 100644 keyboards/mt/ncr80/r2/info.json
create mode 100644 keyboards/mt/ncr80/r2/solder/keyboard.json
create mode 100644 keyboards/mt/ncr80/r2/solder/keymaps/default/keymap.c
create mode 100644 keyboards/mt/ncr80/r2/solder/keymaps/default_tkl_ansi/keymap.c
create mode 100644 keyboards/mt/ncr80/r2/solder/keymaps/default_tkl_iso/keymap.c
create mode 100644 keyboards/mt/ncr80/r2/solder/keymaps/via/keymap.c
create mode 100644 keyboards/mt/ncr80/r2/solder/keymaps/via/rules.mk
delete mode 100644 keyboards/mt/ncr80/rules.mk
delete mode 100644 keyboards/mt/ncr80/solder/keyboard.json
delete mode 100644 keyboards/mt/ncr80/solder/keymaps/default/keymap.c
delete mode 100644 keyboards/mt/ncr80/solder/keymaps/default_tkl_ansi/keymap.c
delete mode 100644 keyboards/mt/ncr80/solder/keymaps/default_tkl_iso/keymap.c
delete mode 100644 keyboards/mt/ncr80/solder/keymaps/via/keymap.c
delete mode 100644 keyboards/mt/ncr80/solder/keymaps/via/rules.mk
delete mode 100644 keyboards/mt/ncr80/solder/readme.md
(limited to 'data/mappings')
diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson
index 174704e99a..0dcda6f61d 100644
--- a/data/mappings/keyboard_aliases.hjson
+++ b/data/mappings/keyboard_aliases.hjson
@@ -1140,6 +1140,12 @@
"mt980": {
"target": "mt/mt980"
},
+ "mt/ncr80/hotswap": {
+ "target": "mt/ncr80/r2/hotswap"
+ },
+ "mt/ncr80/solder": {
+ "target": "mt/ncr80/r2/solder"
+ },
"nafuda": {
"target": "salicylic_acid3/nafuda"
},
diff --git a/keyboards/mt/ncr80/hotswap/keyboard.json b/keyboards/mt/ncr80/hotswap/keyboard.json
deleted file mode 100644
index 6f82bb0e78..0000000000
--- a/keyboards/mt/ncr80/hotswap/keyboard.json
+++ /dev/null
@@ -1,150 +0,0 @@
-{
- "keyboard_name": "NCR-80 Hotswap",
- "manufacturer": "NCR",
- "url": "https://www.aliexpress.com/item/1005003345941543.html",
- "maintainer": "qmk",
- "usb": {
- "vid": "0x4D54",
- "pid": "0x2002",
- "device_version": "0.0.1"
- },
- "features": {
- "bootmagic": true,
- "mousekey": false,
- "extrakey": true,
- "nkro": true
- },
- "matrix_pins": {
- "cols": ["D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4"],
- "rows": ["E6", "B0", "B1", "B2", "B3", "B7", "F7", "F6", "F5", "F4", "F1"]
- },
- "diode_direction": "ROW2COL",
- "indicators": {
- "caps_lock": "C6",
- "num_lock": "B5",
- "scroll_lock": "C7",
- "on_state": 0
- },
- "ws2812": {
- "pin": "E2"
- },
- "rgblight": {
- "saturation_steps": 8,
- "brightness_steps": 8,
- "led_count": 81,
- "max_brightness": 180,
- "animations": {
- "breathing": true,
- "rainbow_mood": true,
- "rainbow_swirl": true,
- "snake": true,
- "knight": true,
- "christmas": true,
- "static_gradient": true,
- "rgb_test": true,
- "alternating": true,
- "twinkle": true
- }
- },
- "processor": "atmega32u4",
- "bootloader": "atmel-dfu",
- "layouts": {
- "LAYOUT": {
- "layout": [
- {"x": 0, "y": 0, "matrix": [0, 0]},
-
- {"x": 2, "y": 0, "matrix": [0, 2]},
- {"x": 3, "y": 0, "matrix": [0, 3]},
- {"x": 4, "y": 0, "matrix": [0, 4]},
- {"x": 5, "y": 0, "matrix": [0, 5]},
-
- {"x": 6.5, "y": 0, "matrix": [0, 6]},
- {"x": 7.5, "y": 0, "matrix": [0, 7]},
- {"x": 8.5, "y": 0, "matrix": [0, 8]},
- {"x": 9.5, "y": 0, "matrix": [6, 8]},
-
- {"x": 11, "y": 0, "matrix": [6, 7]},
- {"x": 12, "y": 0, "matrix": [6, 5]},
- {"x": 13, "y": 0, "matrix": [6, 4]},
- {"x": 14, "y": 0, "matrix": [6, 3]},
-
- {"x": 0, "y": 1.5, "matrix": [1, 0]},
- {"x": 1, "y": 1.5, "matrix": [1, 1]},
- {"x": 2, "y": 1.5, "matrix": [1, 2]},
- {"x": 3, "y": 1.5, "matrix": [1, 3]},
- {"x": 4, "y": 1.5, "matrix": [1, 4]},
- {"x": 5, "y": 1.5, "matrix": [1, 5]},
- {"x": 6, "y": 1.5, "matrix": [1, 6]},
- {"x": 7, "y": 1.5, "matrix": [1, 7]},
- {"x": 8, "y": 1.5, "matrix": [1, 8]},
- {"x": 9, "y": 1.5, "matrix": [7, 8]},
- {"x": 10, "y": 1.5, "matrix": [7, 0]},
- {"x": 11, "y": 1.5, "matrix": [7, 7]},
- {"x": 12, "y": 1.5, "matrix": [7, 5]},
- {"x": 13, "y": 1.5, "w": 2, "matrix": [7, 3]},
-
- {"x": 15.25, "y": 1.5, "matrix": [7, 6]},
- {"x": 16.25, "y": 1.5, "matrix": [7, 2]},
- {"x": 17.25, "y": 1.5, "matrix": [7, 1]},
-
- {"x": 0, "y": 2.5, "w": 1.5, "matrix": [2, 0]},
- {"x": 1.5, "y": 2.5, "matrix": [2, 1]},
- {"x": 2.5, "y": 2.5, "matrix": [2, 2]},
- {"x": 3.5, "y": 2.5, "matrix": [2, 3]},
- {"x": 4.5, "y": 2.5, "matrix": [2, 4]},
- {"x": 5.5, "y": 2.5, "matrix": [2, 5]},
- {"x": 6.5, "y": 2.5, "matrix": [2, 6]},
- {"x": 7.5, "y": 2.5, "matrix": [2, 7]},
- {"x": 8.5, "y": 2.5, "matrix": [2, 8]},
- {"x": 9.5, "y": 2.5, "matrix": [8, 8]},
- {"x": 10.5, "y": 2.5, "matrix": [8, 7]},
- {"x": 11.5, "y": 2.5, "matrix": [8, 5]},
- {"x": 12.5, "y": 2.5, "matrix": [8, 4]},
- {"x": 13.5, "y": 2.5, "w": 1.5, "matrix": [8, 3]},
-
- {"x": 15.25, "y": 2.5, "matrix": [8, 6]},
- {"x": 16.25, "y": 2.5, "matrix": [8, 2]},
- {"x": 17.25, "y": 2.5, "matrix": [8, 1]},
-
- {"x": 0, "y": 3.5, "w": 1.75, "matrix": [3, 0]},
- {"x": 1.75, "y": 3.5, "matrix": [3, 1]},
- {"x": 2.75, "y": 3.5, "matrix": [3, 2]},
- {"x": 3.75, "y": 3.5, "matrix": [3, 3]},
- {"x": 4.75, "y": 3.5, "matrix": [3, 4]},
- {"x": 5.75, "y": 3.5, "matrix": [3, 5]},
- {"x": 6.75, "y": 3.5, "matrix": [3, 6]},
- {"x": 7.75, "y": 3.5, "matrix": [3, 7]},
- {"x": 8.75, "y": 3.5, "matrix": [3, 8]},
- {"x": 9.75, "y": 3.5, "matrix": [9, 8]},
- {"x": 10.75, "y": 3.5, "matrix": [9, 7]},
- {"x": 11.75, "y": 3.5, "matrix": [9, 5]},
- {"x": 12.75, "y": 3.5, "w": 2.25, "matrix": [9, 3]},
-
- {"x": 0, "y": 4.5, "w": 2.25, "matrix": [4, 0]},
- {"x": 2.25, "y": 4.5, "matrix": [4, 2]},
- {"x": 3.25, "y": 4.5, "matrix": [4, 3]},
- {"x": 4.25, "y": 4.5, "matrix": [4, 4]},
- {"x": 5.25, "y": 4.5, "matrix": [4, 5]},
- {"x": 6.25, "y": 4.5, "matrix": [4, 6]},
- {"x": 7.25, "y": 4.5, "matrix": [4, 7]},
- {"x": 8.25, "y": 4.5, "matrix": [4, 8]},
- {"x": 9.25, "y": 4.5, "matrix": [10, 8]},
- {"x": 10.25, "y": 4.5, "matrix": [10, 7]},
- {"x": 11.25, "y": 4.5, "matrix": [10, 5]},
- {"x": 12.25, "y": 4.5, "w": 2.75, "matrix": [10, 4]},
-
- {"x": 16.25, "y": 4.5, "matrix": [9, 2]},
-
- {"x": 0, "y": 5.5, "w": 1.5, "matrix": [5, 0]},
- {"x": 2.5, "y": 5.5, "w": 1.5, "matrix": [5, 2]},
- {"x": 4, "y": 5.5, "w": 7, "matrix": [5, 6]},
- {"x": 11, "y": 5.5, "w": 1.5, "matrix": [5, 7]},
- {"x": 13.5, "y": 5.5, "w": 1.5, "matrix": [5, 3]},
-
- {"x": 15.25, "y": 5.5, "matrix": [10, 6]},
- {"x": 16.25, "y": 5.5, "matrix": [10, 2]},
- {"x": 17.25, "y": 5.5, "matrix": [10, 1]}
- ]
- }
- }
-}
diff --git a/keyboards/mt/ncr80/hotswap/keymaps/default/keymap.c b/keyboards/mt/ncr80/hotswap/keymaps/default/keymap.c
deleted file mode 100644
index 33f98796e3..0000000000
--- a/keyboards/mt/ncr80/hotswap/keymaps/default/keymap.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright 2022 peepeetee
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT(
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-};
diff --git a/keyboards/mt/ncr80/hotswap/keymaps/via/keymap.c b/keyboards/mt/ncr80/hotswap/keymaps/via/keymap.c
deleted file mode 100644
index e23de81b78..0000000000
--- a/keyboards/mt/ncr80/hotswap/keymaps/via/keymap.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Copyright 2022 peepeetee
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT(
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
- [1] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______),
- [2] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______),
- [3] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______),
-
-};
diff --git a/keyboards/mt/ncr80/hotswap/keymaps/via/rules.mk b/keyboards/mt/ncr80/hotswap/keymaps/via/rules.mk
deleted file mode 100644
index 36b7ba9cbc..0000000000
--- a/keyboards/mt/ncr80/hotswap/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/mt/ncr80/hotswap/readme.md b/keyboards/mt/ncr80/hotswap/readme.md
deleted file mode 100644
index 5f9aa43c3e..0000000000
--- a/keyboards/mt/ncr80/hotswap/readme.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# NCR-80
-
-
-
-> Re-imagination of the classic rebranded Cherry G81-3000 by NCR
-
-NCR-80 is an affordable keyboard kit inspired by iconic vintage keyboards.
-
-* Keyboard Maintainer: QMK Community
-* Hardware Supported: ATmega32U4
-* Hardware Availability: [AliExpress](https://www.aliexpress.com/item/1005003345941543.html) [Taobao 淘宝](https://item.taobao.com/item.htm?id=657482028672)
-
-Make example for this keyboard (after setting up your build environment):
-
- make ncr80/hotswap:default
-
-Flashing example for this keyboard:
-
- make ncr80/hotswap:default:flash
-
-See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
-
-## Bootloader
-
-Enter the bootloader in 3 ways:
-
-* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
-* **Physical reset button**: Briefly press the button on the back of the PCB
-* **Keycode in layout**: Press the key mapped to `RESET` if it is available
-
-See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/mt/ncr80/info.json b/keyboards/mt/ncr80/info.json
new file mode 100644
index 0000000000..3573e72012
--- /dev/null
+++ b/keyboards/mt/ncr80/info.json
@@ -0,0 +1,8 @@
+{
+ "manufacturer": "MT",
+ "keyboard_name": "NCR-80",
+ "maintainer": "qmk",
+ "usb": {
+ "vid": "0x4D54"
+ }
+}
diff --git a/keyboards/mt/ncr80/r2/hotswap/keyboard.json b/keyboards/mt/ncr80/r2/hotswap/keyboard.json
new file mode 100644
index 0000000000..fbd10e0ee8
--- /dev/null
+++ b/keyboards/mt/ncr80/r2/hotswap/keyboard.json
@@ -0,0 +1,122 @@
+{
+ "features": {
+ "bootmagic": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgblight": true
+ },
+ "rgblight": {
+ "animations": {
+ "alternating": true,
+ "breathing": true,
+ "christmas": true,
+ "knight": true,
+ "rainbow_mood": true,
+ "rainbow_swirl": true,
+ "rgb_test": true,
+ "snake": true,
+ "static_gradient": true,
+ "twinkle": true
+ },
+ "brightness_steps": 8,
+ "led_count": 81,
+ "max_brightness": 180,
+ "saturation_steps": 8
+ },
+ "url": "https://www.aliexpress.com/item/1005003345941543.html",
+ "usb": {
+ "device_version": "0.0.1",
+ "pid": "0x2002"
+ },
+ "ws2812": {
+ "pin": "E2"
+ },
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6.5, "y": 0},
+ {"matrix": [0, 7], "x": 7.5, "y": 0},
+ {"matrix": [0, 8], "x": 8.5, "y": 0},
+ {"matrix": [6, 8], "x": 9.5, "y": 0},
+ {"matrix": [6, 7], "x": 11, "y": 0},
+ {"matrix": [6, 5], "x": 12, "y": 0},
+ {"matrix": [6, 4], "x": 13, "y": 0},
+ {"matrix": [6, 3], "x": 14, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1.5},
+ {"matrix": [1, 1], "x": 1, "y": 1.5},
+ {"matrix": [1, 2], "x": 2, "y": 1.5},
+ {"matrix": [1, 3], "x": 3, "y": 1.5},
+ {"matrix": [1, 4], "x": 4, "y": 1.5},
+ {"matrix": [1, 5], "x": 5, "y": 1.5},
+ {"matrix": [1, 6], "x": 6, "y": 1.5},
+ {"matrix": [1, 7], "x": 7, "y": 1.5},
+ {"matrix": [1, 8], "x": 8, "y": 1.5},
+ {"matrix": [7, 8], "x": 9, "y": 1.5},
+ {"matrix": [7, 0], "x": 10, "y": 1.5},
+ {"matrix": [7, 7], "x": 11, "y": 1.5},
+ {"matrix": [7, 5], "x": 12, "y": 1.5},
+ {"matrix": [7, 3], "x": 13, "y": 1.5, "w": 2},
+ {"matrix": [7, 6], "x": 15.25, "y": 1.5},
+ {"matrix": [7, 2], "x": 16.25, "y": 1.5},
+ {"matrix": [7, 1], "x": 17.25, "y": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.5},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.5},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.5},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.5},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.5},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.5},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.5},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.5},
+ {"matrix": [8, 8], "x": 9.5, "y": 2.5},
+ {"matrix": [8, 7], "x": 10.5, "y": 2.5},
+ {"matrix": [8, 5], "x": 11.5, "y": 2.5},
+ {"matrix": [8, 4], "x": 12.5, "y": 2.5},
+ {"matrix": [8, 3], "x": 13.5, "y": 2.5, "w": 1.5},
+ {"matrix": [8, 6], "x": 15.25, "y": 2.5},
+ {"matrix": [8, 2], "x": 16.25, "y": 2.5},
+ {"matrix": [8, 1], "x": 17.25, "y": 2.5},
+ {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.5},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.5},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.5},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.5},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.5},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.5},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.5},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.5},
+ {"matrix": [9, 8], "x": 9.75, "y": 3.5},
+ {"matrix": [9, 7], "x": 10.75, "y": 3.5},
+ {"matrix": [9, 5], "x": 11.75, "y": 3.5},
+ {"matrix": [9, 3], "x": 12.75, "y": 3.5, "w": 2.25},
+ {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.5},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.5},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.5},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.5},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.5},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.5},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.5},
+ {"matrix": [10, 8], "x": 9.25, "y": 4.5},
+ {"matrix": [10, 7], "x": 10.25, "y": 4.5},
+ {"matrix": [10, 5], "x": 11.25, "y": 4.5},
+ {"matrix": [10, 4], "x": 12.25, "y": 4.5, "w": 2.75},
+ {"matrix": [9, 2], "x": 16.25, "y": 4.5},
+ {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5},
+ {"matrix": [5, 6], "x": 4, "y": 5.5, "w": 7},
+ {"matrix": [5, 7], "x": 11, "y": 5.5, "w": 1.5},
+ {"matrix": [5, 3], "x": 13.5, "y": 5.5, "w": 1.5},
+ {"matrix": [10, 6], "x": 15.25, "y": 5.5},
+ {"matrix": [10, 2], "x": 16.25, "y": 5.5},
+ {"matrix": [10, 1], "x": 17.25, "y": 5.5}
+ ]
+ }
+ }
+}
diff --git a/keyboards/mt/ncr80/r2/hotswap/keymaps/default/keymap.c b/keyboards/mt/ncr80/r2/hotswap/keymaps/default/keymap.c
new file mode 100644
index 0000000000..33f98796e3
--- /dev/null
+++ b/keyboards/mt/ncr80/r2/hotswap/keymaps/default/keymap.c
@@ -0,0 +1,27 @@
+/* Copyright 2022 peepeetee
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
+ KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
+};
diff --git a/keyboards/mt/ncr80/r2/hotswap/keymaps/via/keymap.c b/keyboards/mt/ncr80/r2/hotswap/keymaps/via/keymap.c
new file mode 100644
index 0000000000..91afb7c4f7
--- /dev/null
+++ b/keyboards/mt/ncr80/r2/hotswap/keymaps/via/keymap.c
@@ -0,0 +1,28 @@
+/* Copyright 2022 peepeetee
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
+ KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ )
+};
diff --git a/keyboards/mt/ncr80/r2/hotswap/keymaps/via/rules.mk b/keyboards/mt/ncr80/r2/hotswap/keymaps/via/rules.mk
new file mode 100644
index 0000000000..36b7ba9cbc
--- /dev/null
+++ b/keyboards/mt/ncr80/r2/hotswap/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
diff --git a/keyboards/mt/ncr80/r2/info.json b/keyboards/mt/ncr80/r2/info.json
new file mode 100644
index 0000000000..214153235e
--- /dev/null
+++ b/keyboards/mt/ncr80/r2/info.json
@@ -0,0 +1,15 @@
+{
+ "bootloader": "atmel-dfu",
+ "diode_direction": "ROW2COL",
+ "indicators": {
+ "caps_lock": "C6",
+ "num_lock": "B5",
+ "on_state": 0,
+ "scroll_lock": "C7"
+ },
+ "matrix_pins": {
+ "cols": ["D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4"],
+ "rows": ["E6", "B0", "B1", "B2", "B3", "B7", "F7", "F6", "F5", "F4", "F1"]
+ },
+ "processor": "atmega32u4"
+}
diff --git a/keyboards/mt/ncr80/r2/solder/keyboard.json b/keyboards/mt/ncr80/r2/solder/keyboard.json
new file mode 100644
index 0000000000..8c7265614a
--- /dev/null
+++ b/keyboards/mt/ncr80/r2/solder/keyboard.json
@@ -0,0 +1,1209 @@
+{
+ "backlight": {
+ "levels": 5,
+ "pin": "B6"
+ },
+ "features": {
+ "backlight": true,
+ "bootmagic": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true
+ },
+ "url": "https://www.aliexpress.com/item/1005003364462523.html",
+ "usb": {
+ "device_version": "0.0.1",
+ "pid": "0x2001"
+ },
+ "community_layouts": ["tkl_ansi", "tkl_ansi_split_bs_rshift", "tkl_ansi_tsangan", "tkl_ansi_tsangan_split_bs_rshift", "tkl_ansi_wkl", "tkl_ansi_wkl_split_bs_rshift", "tkl_iso", "tkl_iso_split_bs_rshift", "tkl_iso_tsangan", "tkl_iso_tsangan_split_bs_rshift", "tkl_iso_wkl", "tkl_iso_wkl_split_bs_rshift"],
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6.5, "y": 0},
+ {"matrix": [0, 7], "x": 7.5, "y": 0},
+ {"matrix": [0, 8], "x": 8.5, "y": 0},
+ {"matrix": [6, 8], "x": 9.5, "y": 0},
+ {"matrix": [6, 7], "x": 11, "y": 0},
+ {"matrix": [6, 5], "x": 12, "y": 0},
+ {"matrix": [6, 4], "x": 13, "y": 0},
+ {"matrix": [6, 3], "x": 14, "y": 0},
+ {"matrix": [6, 6], "x": 15.25, "y": 0},
+ {"matrix": [6, 2], "x": 16.25, "y": 0},
+ {"matrix": [6, 1], "x": 17.25, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1.5},
+ {"matrix": [1, 1], "x": 1, "y": 1.5},
+ {"matrix": [1, 2], "x": 2, "y": 1.5},
+ {"matrix": [1, 3], "x": 3, "y": 1.5},
+ {"matrix": [1, 4], "x": 4, "y": 1.5},
+ {"matrix": [1, 5], "x": 5, "y": 1.5},
+ {"matrix": [1, 6], "x": 6, "y": 1.5},
+ {"matrix": [1, 7], "x": 7, "y": 1.5},
+ {"matrix": [1, 8], "x": 8, "y": 1.5},
+ {"matrix": [7, 8], "x": 9, "y": 1.5},
+ {"matrix": [7, 0], "x": 10, "y": 1.5},
+ {"matrix": [7, 7], "x": 11, "y": 1.5},
+ {"matrix": [7, 5], "x": 12, "y": 1.5},
+ {"matrix": [7, 4], "x": 13, "y": 1.5},
+ {"matrix": [7, 3], "x": 14, "y": 1.5},
+ {"matrix": [7, 6], "x": 15.25, "y": 1.5},
+ {"matrix": [7, 2], "x": 16.25, "y": 1.5},
+ {"matrix": [7, 1], "x": 17.25, "y": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.5},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.5},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.5},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.5},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.5},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.5},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.5},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.5},
+ {"matrix": [8, 8], "x": 9.5, "y": 2.5},
+ {"matrix": [8, 7], "x": 10.5, "y": 2.5},
+ {"matrix": [8, 5], "x": 11.5, "y": 2.5},
+ {"matrix": [8, 4], "x": 12.5, "y": 2.5},
+ {"matrix": [9, 4], "x": 13.5, "y": 2.5, "w": 1.5},
+ {"matrix": [8, 6], "x": 15.25, "y": 2.5},
+ {"matrix": [8, 2], "x": 16.25, "y": 2.5},
+ {"matrix": [8, 1], "x": 17.25, "y": 2.5},
+ {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.5},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.5},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.5},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.5},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.5},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.5},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.5},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.5},
+ {"matrix": [9, 8], "x": 9.75, "y": 3.5},
+ {"matrix": [9, 7], "x": 10.75, "y": 3.5},
+ {"matrix": [9, 5], "x": 11.75, "y": 3.5},
+ {"matrix": [8, 3], "x": 12.75, "y": 3.5, "w": 2.25},
+ {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4.5},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.5},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.5},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.5},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.5},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.5},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.5},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.5},
+ {"matrix": [10, 8], "x": 9.25, "y": 4.5},
+ {"matrix": [10, 7], "x": 10.25, "y": 4.5},
+ {"matrix": [10, 5], "x": 11.25, "y": 4.5},
+ {"matrix": [10, 4], "x": 12.25, "y": 4.5, "w": 1.75},
+ {"matrix": [10, 3], "x": 14, "y": 4.5},
+ {"matrix": [9, 2], "x": 16.25, "y": 4.5},
+ {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25},
+ {"matrix": [5, 8], "x": 10, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 7], "x": 11.25, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 4], "x": 12.5, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 3], "x": 13.75, "y": 5.5, "w": 1.25},
+ {"matrix": [10, 6], "x": 15.25, "y": 5.5},
+ {"matrix": [10, 2], "x": 16.25, "y": 5.5},
+ {"matrix": [10, 1], "x": 17.25, "y": 5.5}
+ ]
+ },
+ "LAYOUT_tkl_ansi": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6.5, "y": 0},
+ {"matrix": [0, 7], "x": 7.5, "y": 0},
+ {"matrix": [0, 8], "x": 8.5, "y": 0},
+ {"matrix": [6, 8], "x": 9.5, "y": 0},
+ {"matrix": [6, 7], "x": 11, "y": 0},
+ {"matrix": [6, 5], "x": 12, "y": 0},
+ {"matrix": [6, 4], "x": 13, "y": 0},
+ {"matrix": [6, 3], "x": 14, "y": 0},
+ {"matrix": [6, 6], "x": 15.25, "y": 0},
+ {"matrix": [6, 2], "x": 16.25, "y": 0},
+ {"matrix": [6, 1], "x": 17.25, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1.5},
+ {"matrix": [1, 1], "x": 1, "y": 1.5},
+ {"matrix": [1, 2], "x": 2, "y": 1.5},
+ {"matrix": [1, 3], "x": 3, "y": 1.5},
+ {"matrix": [1, 4], "x": 4, "y": 1.5},
+ {"matrix": [1, 5], "x": 5, "y": 1.5},
+ {"matrix": [1, 6], "x": 6, "y": 1.5},
+ {"matrix": [1, 7], "x": 7, "y": 1.5},
+ {"matrix": [1, 8], "x": 8, "y": 1.5},
+ {"matrix": [7, 8], "x": 9, "y": 1.5},
+ {"matrix": [7, 0], "x": 10, "y": 1.5},
+ {"matrix": [7, 7], "x": 11, "y": 1.5},
+ {"matrix": [7, 5], "x": 12, "y": 1.5},
+ {"matrix": [7, 3], "x": 13, "y": 1.5, "w": 2},
+ {"matrix": [7, 6], "x": 15.25, "y": 1.5},
+ {"matrix": [7, 2], "x": 16.25, "y": 1.5},
+ {"matrix": [7, 1], "x": 17.25, "y": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.5},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.5},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.5},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.5},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.5},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.5},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.5},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.5},
+ {"matrix": [8, 8], "x": 9.5, "y": 2.5},
+ {"matrix": [8, 7], "x": 10.5, "y": 2.5},
+ {"matrix": [8, 5], "x": 11.5, "y": 2.5},
+ {"matrix": [8, 4], "x": 12.5, "y": 2.5},
+ {"matrix": [9, 4], "x": 13.5, "y": 2.5, "w": 1.5},
+ {"matrix": [8, 6], "x": 15.25, "y": 2.5},
+ {"matrix": [8, 2], "x": 16.25, "y": 2.5},
+ {"matrix": [8, 1], "x": 17.25, "y": 2.5},
+ {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.5},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.5},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.5},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.5},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.5},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.5},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.5},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.5},
+ {"matrix": [9, 8], "x": 9.75, "y": 3.5},
+ {"matrix": [9, 7], "x": 10.75, "y": 3.5},
+ {"matrix": [9, 5], "x": 11.75, "y": 3.5},
+ {"matrix": [8, 3], "x": 12.75, "y": 3.5, "w": 2.25},
+ {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.5},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.5},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.5},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.5},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.5},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.5},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.5},
+ {"matrix": [10, 8], "x": 9.25, "y": 4.5},
+ {"matrix": [10, 7], "x": 10.25, "y": 4.5},
+ {"matrix": [10, 5], "x": 11.25, "y": 4.5},
+ {"matrix": [10, 4], "x": 12.25, "y": 4.5, "w": 2.75},
+ {"matrix": [9, 2], "x": 16.25, "y": 4.5},
+ {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25},
+ {"matrix": [5, 8], "x": 10, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 7], "x": 11.25, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 4], "x": 12.5, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 3], "x": 13.75, "y": 5.5, "w": 1.25},
+ {"matrix": [10, 6], "x": 15.25, "y": 5.5},
+ {"matrix": [10, 2], "x": 16.25, "y": 5.5},
+ {"matrix": [10, 1], "x": 17.25, "y": 5.5}
+ ]
+ },
+ "LAYOUT_tkl_ansi_split_bs_rshift": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6.5, "y": 0},
+ {"matrix": [0, 7], "x": 7.5, "y": 0},
+ {"matrix": [0, 8], "x": 8.5, "y": 0},
+ {"matrix": [6, 8], "x": 9.5, "y": 0},
+ {"matrix": [6, 7], "x": 11, "y": 0},
+ {"matrix": [6, 5], "x": 12, "y": 0},
+ {"matrix": [6, 4], "x": 13, "y": 0},
+ {"matrix": [6, 3], "x": 14, "y": 0},
+ {"matrix": [6, 6], "x": 15.25, "y": 0},
+ {"matrix": [6, 2], "x": 16.25, "y": 0},
+ {"matrix": [6, 1], "x": 17.25, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1.5},
+ {"matrix": [1, 1], "x": 1, "y": 1.5},
+ {"matrix": [1, 2], "x": 2, "y": 1.5},
+ {"matrix": [1, 3], "x": 3, "y": 1.5},
+ {"matrix": [1, 4], "x": 4, "y": 1.5},
+ {"matrix": [1, 5], "x": 5, "y": 1.5},
+ {"matrix": [1, 6], "x": 6, "y": 1.5},
+ {"matrix": [1, 7], "x": 7, "y": 1.5},
+ {"matrix": [1, 8], "x": 8, "y": 1.5},
+ {"matrix": [7, 8], "x": 9, "y": 1.5},
+ {"matrix": [7, 0], "x": 10, "y": 1.5},
+ {"matrix": [7, 7], "x": 11, "y": 1.5},
+ {"matrix": [7, 5], "x": 12, "y": 1.5},
+ {"matrix": [7, 4], "x": 13, "y": 1.5},
+ {"matrix": [7, 3], "x": 14, "y": 1.5},
+ {"matrix": [7, 6], "x": 15.25, "y": 1.5},
+ {"matrix": [7, 2], "x": 16.25, "y": 1.5},
+ {"matrix": [7, 1], "x": 17.25, "y": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.5},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.5},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.5},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.5},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.5},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.5},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.5},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.5},
+ {"matrix": [8, 8], "x": 9.5, "y": 2.5},
+ {"matrix": [8, 7], "x": 10.5, "y": 2.5},
+ {"matrix": [8, 5], "x": 11.5, "y": 2.5},
+ {"matrix": [8, 4], "x": 12.5, "y": 2.5},
+ {"matrix": [9, 4], "x": 13.5, "y": 2.5, "w": 1.5},
+ {"matrix": [8, 6], "x": 15.25, "y": 2.5},
+ {"matrix": [8, 2], "x": 16.25, "y": 2.5},
+ {"matrix": [8, 1], "x": 17.25, "y": 2.5},
+ {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.5},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.5},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.5},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.5},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.5},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.5},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.5},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.5},
+ {"matrix": [9, 8], "x": 9.75, "y": 3.5},
+ {"matrix": [9, 7], "x": 10.75, "y": 3.5},
+ {"matrix": [9, 5], "x": 11.75, "y": 3.5},
+ {"matrix": [8, 3], "x": 12.75, "y": 3.5, "w": 2.25},
+ {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.5},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.5},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.5},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.5},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.5},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.5},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.5},
+ {"matrix": [10, 8], "x": 9.25, "y": 4.5},
+ {"matrix": [10, 7], "x": 10.25, "y": 4.5},
+ {"matrix": [10, 5], "x": 11.25, "y": 4.5},
+ {"matrix": [10, 4], "x": 12.25, "y": 4.5, "w": 1.75},
+ {"matrix": [10, 3], "x": 14, "y": 4.5},
+ {"matrix": [9, 2], "x": 16.25, "y": 4.5},
+ {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25},
+ {"matrix": [5, 8], "x": 10, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 7], "x": 11.25, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 4], "x": 12.5, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 3], "x": 13.75, "y": 5.5, "w": 1.25},
+ {"matrix": [10, 6], "x": 15.25, "y": 5.5},
+ {"matrix": [10, 2], "x": 16.25, "y": 5.5},
+ {"matrix": [10, 1], "x": 17.25, "y": 5.5}
+ ]
+ },
+ "LAYOUT_tkl_ansi_tsangan": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6.5, "y": 0},
+ {"matrix": [0, 7], "x": 7.5, "y": 0},
+ {"matrix": [0, 8], "x": 8.5, "y": 0},
+ {"matrix": [6, 8], "x": 9.5, "y": 0},
+ {"matrix": [6, 7], "x": 11, "y": 0},
+ {"matrix": [6, 5], "x": 12, "y": 0},
+ {"matrix": [6, 4], "x": 13, "y": 0},
+ {"matrix": [6, 3], "x": 14, "y": 0},
+ {"matrix": [6, 6], "x": 15.25, "y": 0},
+ {"matrix": [6, 2], "x": 16.25, "y": 0},
+ {"matrix": [6, 1], "x": 17.25, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1.5},
+ {"matrix": [1, 1], "x": 1, "y": 1.5},
+ {"matrix": [1, 2], "x": 2, "y": 1.5},
+ {"matrix": [1, 3], "x": 3, "y": 1.5},
+ {"matrix": [1, 4], "x": 4, "y": 1.5},
+ {"matrix": [1, 5], "x": 5, "y": 1.5},
+ {"matrix": [1, 6], "x": 6, "y": 1.5},
+ {"matrix": [1, 7], "x": 7, "y": 1.5},
+ {"matrix": [1, 8], "x": 8, "y": 1.5},
+ {"matrix": [7, 8], "x": 9, "y": 1.5},
+ {"matrix": [7, 0], "x": 10, "y": 1.5},
+ {"matrix": [7, 7], "x": 11, "y": 1.5},
+ {"matrix": [7, 5], "x": 12, "y": 1.5},
+ {"matrix": [7, 3], "x": 13, "y": 1.5, "w": 2},
+ {"matrix": [7, 6], "x": 15.25, "y": 1.5},
+ {"matrix": [7, 2], "x": 16.25, "y": 1.5},
+ {"matrix": [7, 1], "x": 17.25, "y": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.5},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.5},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.5},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.5},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.5},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.5},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.5},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.5},
+ {"matrix": [8, 8], "x": 9.5, "y": 2.5},
+ {"matrix": [8, 7], "x": 10.5, "y": 2.5},
+ {"matrix": [8, 5], "x": 11.5, "y": 2.5},
+ {"matrix": [8, 4], "x": 12.5, "y": 2.5},
+ {"matrix": [9, 4], "x": 13.5, "y": 2.5, "w": 1.5},
+ {"matrix": [8, 6], "x": 15.25, "y": 2.5},
+ {"matrix": [8, 2], "x": 16.25, "y": 2.5},
+ {"matrix": [8, 1], "x": 17.25, "y": 2.5},
+ {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.5},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.5},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.5},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.5},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.5},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.5},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.5},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.5},
+ {"matrix": [9, 8], "x": 9.75, "y": 3.5},
+ {"matrix": [9, 7], "x": 10.75, "y": 3.5},
+ {"matrix": [9, 5], "x": 11.75, "y": 3.5},
+ {"matrix": [8, 3], "x": 12.75, "y": 3.5, "w": 2.25},
+ {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.5},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.5},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.5},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.5},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.5},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.5},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.5},
+ {"matrix": [10, 8], "x": 9.25, "y": 4.5},
+ {"matrix": [10, 7], "x": 10.25, "y": 4.5},
+ {"matrix": [10, 5], "x": 11.25, "y": 4.5},
+ {"matrix": [10, 4], "x": 12.25, "y": 4.5, "w": 2.75},
+ {"matrix": [9, 2], "x": 16.25, "y": 4.5},
+ {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5},
+ {"matrix": [5, 1], "x": 1.5, "y": 5.5},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5},
+ {"matrix": [5, 6], "x": 4, "y": 5.5, "w": 7},
+ {"matrix": [5, 7], "x": 11, "y": 5.5, "w": 1.5},
+ {"matrix": [5, 4], "x": 12.5, "y": 5.5},
+ {"matrix": [5, 3], "x": 13.5, "y": 5.5, "w": 1.5},
+ {"matrix": [10, 6], "x": 15.25, "y": 5.5},
+ {"matrix": [10, 2], "x": 16.25, "y": 5.5},
+ {"matrix": [10, 1], "x": 17.25, "y": 5.5}
+ ]
+ },
+ "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6.5, "y": 0},
+ {"matrix": [0, 7], "x": 7.5, "y": 0},
+ {"matrix": [0, 8], "x": 8.5, "y": 0},
+ {"matrix": [6, 8], "x": 9.5, "y": 0},
+ {"matrix": [6, 7], "x": 11, "y": 0},
+ {"matrix": [6, 5], "x": 12, "y": 0},
+ {"matrix": [6, 4], "x": 13, "y": 0},
+ {"matrix": [6, 3], "x": 14, "y": 0},
+ {"matrix": [6, 6], "x": 15.25, "y": 0},
+ {"matrix": [6, 2], "x": 16.25, "y": 0},
+ {"matrix": [6, 1], "x": 17.25, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1.5},
+ {"matrix": [1, 1], "x": 1, "y": 1.5},
+ {"matrix": [1, 2], "x": 2, "y": 1.5},
+ {"matrix": [1, 3], "x": 3, "y": 1.5},
+ {"matrix": [1, 4], "x": 4, "y": 1.5},
+ {"matrix": [1, 5], "x": 5, "y": 1.5},
+ {"matrix": [1, 6], "x": 6, "y": 1.5},
+ {"matrix": [1, 7], "x": 7, "y": 1.5},
+ {"matrix": [1, 8], "x": 8, "y": 1.5},
+ {"matrix": [7, 8], "x": 9, "y": 1.5},
+ {"matrix": [7, 0], "x": 10, "y": 1.5},
+ {"matrix": [7, 7], "x": 11, "y": 1.5},
+ {"matrix": [7, 5], "x": 12, "y": 1.5},
+ {"matrix": [7, 4], "x": 13, "y": 1.5},
+ {"matrix": [7, 3], "x": 14, "y": 1.5},
+ {"matrix": [7, 6], "x": 15.25, "y": 1.5},
+ {"matrix": [7, 2], "x": 16.25, "y": 1.5},
+ {"matrix": [7, 1], "x": 17.25, "y": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.5},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.5},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.5},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.5},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.5},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.5},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.5},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.5},
+ {"matrix": [8, 8], "x": 9.5, "y": 2.5},
+ {"matrix": [8, 7], "x": 10.5, "y": 2.5},
+ {"matrix": [8, 5], "x": 11.5, "y": 2.5},
+ {"matrix": [8, 4], "x": 12.5, "y": 2.5},
+ {"matrix": [9, 4], "x": 13.5, "y": 2.5, "w": 1.5},
+ {"matrix": [8, 6], "x": 15.25, "y": 2.5},
+ {"matrix": [8, 2], "x": 16.25, "y": 2.5},
+ {"matrix": [8, 1], "x": 17.25, "y": 2.5},
+ {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.5},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.5},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.5},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.5},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.5},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.5},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.5},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.5},
+ {"matrix": [9, 8], "x": 9.75, "y": 3.5},
+ {"matrix": [9, 7], "x": 10.75, "y": 3.5},
+ {"matrix": [9, 5], "x": 11.75, "y": 3.5},
+ {"matrix": [8, 3], "x": 12.75, "y": 3.5, "w": 2.25},
+ {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.5},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.5},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.5},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.5},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.5},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.5},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.5},
+ {"matrix": [10, 8], "x": 9.25, "y": 4.5},
+ {"matrix": [10, 7], "x": 10.25, "y": 4.5},
+ {"matrix": [10, 5], "x": 11.25, "y": 4.5},
+ {"matrix": [10, 4], "x": 12.25, "y": 4.5, "w": 1.75},
+ {"matrix": [10, 3], "x": 14, "y": 4.5},
+ {"matrix": [9, 2], "x": 16.25, "y": 4.5},
+ {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5},
+ {"matrix": [5, 1], "x": 1.5, "y": 5.5},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5},
+ {"matrix": [5, 6], "x": 4, "y": 5.5, "w": 7},
+ {"matrix": [5, 7], "x": 11, "y": 5.5, "w": 1.5},
+ {"matrix": [5, 4], "x": 12.5, "y": 5.5},
+ {"matrix": [5, 3], "x": 13.5, "y": 5.5, "w": 1.5},
+ {"matrix": [10, 6], "x": 15.25, "y": 5.5},
+ {"matrix": [10, 2], "x": 16.25, "y": 5.5},
+ {"matrix": [10, 1], "x": 17.25, "y": 5.5}
+ ]
+ },
+ "LAYOUT_tkl_ansi_wkl": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6.5, "y": 0},
+ {"matrix": [0, 7], "x": 7.5, "y": 0},
+ {"matrix": [0, 8], "x": 8.5, "y": 0},
+ {"matrix": [6, 8], "x": 9.5, "y": 0},
+ {"matrix": [6, 7], "x": 11, "y": 0},
+ {"matrix": [6, 5], "x": 12, "y": 0},
+ {"matrix": [6, 4], "x": 13, "y": 0},
+ {"matrix": [6, 3], "x": 14, "y": 0},
+ {"matrix": [6, 6], "x": 15.25, "y": 0},
+ {"matrix": [6, 2], "x": 16.25, "y": 0},
+ {"matrix": [6, 1], "x": 17.25, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1.5},
+ {"matrix": [1, 1], "x": 1, "y": 1.5},
+ {"matrix": [1, 2], "x": 2, "y": 1.5},
+ {"matrix": [1, 3], "x": 3, "y": 1.5},
+ {"matrix": [1, 4], "x": 4, "y": 1.5},
+ {"matrix": [1, 5], "x": 5, "y": 1.5},
+ {"matrix": [1, 6], "x": 6, "y": 1.5},
+ {"matrix": [1, 7], "x": 7, "y": 1.5},
+ {"matrix": [1, 8], "x": 8, "y": 1.5},
+ {"matrix": [7, 8], "x": 9, "y": 1.5},
+ {"matrix": [7, 0], "x": 10, "y": 1.5},
+ {"matrix": [7, 7], "x": 11, "y": 1.5},
+ {"matrix": [7, 5], "x": 12, "y": 1.5},
+ {"matrix": [7, 3], "x": 13, "y": 1.5, "w": 2},
+ {"matrix": [7, 6], "x": 15.25, "y": 1.5},
+ {"matrix": [7, 2], "x": 16.25, "y": 1.5},
+ {"matrix": [7, 1], "x": 17.25, "y": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.5},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.5},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.5},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.5},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.5},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.5},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.5},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.5},
+ {"matrix": [8, 8], "x": 9.5, "y": 2.5},
+ {"matrix": [8, 7], "x": 10.5, "y": 2.5},
+ {"matrix": [8, 5], "x": 11.5, "y": 2.5},
+ {"matrix": [8, 4], "x": 12.5, "y": 2.5},
+ {"matrix": [9, 4], "x": 13.5, "y": 2.5, "w": 1.5},
+ {"matrix": [8, 6], "x": 15.25, "y": 2.5},
+ {"matrix": [8, 2], "x": 16.25, "y": 2.5},
+ {"matrix": [8, 1], "x": 17.25, "y": 2.5},
+ {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.5},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.5},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.5},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.5},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.5},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.5},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.5},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.5},
+ {"matrix": [9, 8], "x": 9.75, "y": 3.5},
+ {"matrix": [9, 7], "x": 10.75, "y": 3.5},
+ {"matrix": [9, 5], "x": 11.75, "y": 3.5},
+ {"matrix": [8, 3], "x": 12.75, "y": 3.5, "w": 2.25},
+ {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.5},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.5},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.5},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.5},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.5},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.5},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.5},
+ {"matrix": [10, 8], "x": 9.25, "y": 4.5},
+ {"matrix": [10, 7], "x": 10.25, "y": 4.5},
+ {"matrix": [10, 5], "x": 11.25, "y": 4.5},
+ {"matrix": [10, 4], "x": 12.25, "y": 4.5, "w": 2.75},
+ {"matrix": [9, 2], "x": 16.25, "y": 4.5},
+ {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5},
+ {"matrix": [5, 6], "x": 4, "y": 5.5, "w": 7},
+ {"matrix": [5, 7], "x": 11, "y": 5.5, "w": 1.5},
+ {"matrix": [5, 3], "x": 13.5, "y": 5.5, "w": 1.5},
+ {"matrix": [10, 6], "x": 15.25, "y": 5.5},
+ {"matrix": [10, 2], "x": 16.25, "y": 5.5},
+ {"matrix": [10, 1], "x": 17.25, "y": 5.5}
+ ]
+ },
+ "LAYOUT_tkl_ansi_wkl_split_bs_rshift": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6.5, "y": 0},
+ {"matrix": [0, 7], "x": 7.5, "y": 0},
+ {"matrix": [0, 8], "x": 8.5, "y": 0},
+ {"matrix": [6, 8], "x": 9.5, "y": 0},
+ {"matrix": [6, 7], "x": 11, "y": 0},
+ {"matrix": [6, 5], "x": 12, "y": 0},
+ {"matrix": [6, 4], "x": 13, "y": 0},
+ {"matrix": [6, 3], "x": 14, "y": 0},
+ {"matrix": [6, 6], "x": 15.25, "y": 0},
+ {"matrix": [6, 2], "x": 16.25, "y": 0},
+ {"matrix": [6, 1], "x": 17.25, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1.5},
+ {"matrix": [1, 1], "x": 1, "y": 1.5},
+ {"matrix": [1, 2], "x": 2, "y": 1.5},
+ {"matrix": [1, 3], "x": 3, "y": 1.5},
+ {"matrix": [1, 4], "x": 4, "y": 1.5},
+ {"matrix": [1, 5], "x": 5, "y": 1.5},
+ {"matrix": [1, 6], "x": 6, "y": 1.5},
+ {"matrix": [1, 7], "x": 7, "y": 1.5},
+ {"matrix": [1, 8], "x": 8, "y": 1.5},
+ {"matrix": [7, 8], "x": 9, "y": 1.5},
+ {"matrix": [7, 0], "x": 10, "y": 1.5},
+ {"matrix": [7, 7], "x": 11, "y": 1.5},
+ {"matrix": [7, 5], "x": 12, "y": 1.5},
+ {"matrix": [7, 4], "x": 13, "y": 1.5},
+ {"matrix": [7, 3], "x": 14, "y": 1.5},
+ {"matrix": [7, 6], "x": 15.25, "y": 1.5},
+ {"matrix": [7, 2], "x": 16.25, "y": 1.5},
+ {"matrix": [7, 1], "x": 17.25, "y": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.5},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.5},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.5},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.5},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.5},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.5},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.5},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.5},
+ {"matrix": [8, 8], "x": 9.5, "y": 2.5},
+ {"matrix": [8, 7], "x": 10.5, "y": 2.5},
+ {"matrix": [8, 5], "x": 11.5, "y": 2.5},
+ {"matrix": [8, 4], "x": 12.5, "y": 2.5},
+ {"matrix": [9, 4], "x": 13.5, "y": 2.5, "w": 1.5},
+ {"matrix": [8, 6], "x": 15.25, "y": 2.5},
+ {"matrix": [8, 2], "x": 16.25, "y": 2.5},
+ {"matrix": [8, 1], "x": 17.25, "y": 2.5},
+ {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.5},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.5},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.5},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.5},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.5},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.5},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.5},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.5},
+ {"matrix": [9, 8], "x": 9.75, "y": 3.5},
+ {"matrix": [9, 7], "x": 10.75, "y": 3.5},
+ {"matrix": [9, 5], "x": 11.75, "y": 3.5},
+ {"matrix": [8, 3], "x": 12.75, "y": 3.5, "w": 2.25},
+ {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.5},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.5},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.5},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.5},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.5},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.5},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.5},
+ {"matrix": [10, 8], "x": 9.25, "y": 4.5},
+ {"matrix": [10, 7], "x": 10.25, "y": 4.5},
+ {"matrix": [10, 5], "x": 11.25, "y": 4.5},
+ {"matrix": [10, 4], "x": 12.25, "y": 4.5, "w": 1.75},
+ {"matrix": [10, 3], "x": 14, "y": 4.5},
+ {"matrix": [9, 2], "x": 16.25, "y": 4.5},
+ {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5},
+ {"matrix": [5, 6], "x": 4, "y": 5.5, "w": 7},
+ {"matrix": [5, 7], "x": 11, "y": 5.5, "w": 1.5},
+ {"matrix": [5, 3], "x": 13.5, "y": 5.5, "w": 1.5},
+ {"matrix": [10, 6], "x": 15.25, "y": 5.5},
+ {"matrix": [10, 2], "x": 16.25, "y": 5.5},
+ {"matrix": [10, 1], "x": 17.25, "y": 5.5}
+ ]
+ },
+ "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": [6, 8], "x": 9.5, "y": 0},
+ {"matrix": [6, 7], "x": 11, "y": 0},
+ {"matrix": [6, 5], "x": 12, "y": 0},
+ {"matrix": [6, 4], "x": 13, "y": 0},
+ {"matrix": [6, 3], "x": 14, "y": 0},
+ {"matrix": [6, 6], "x": 15.25, "y": 0},
+ {"matrix": [6, 2], "x": 16.25, "y": 0},
+ {"matrix": [6, 1], "x": 17.25, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1.5},
+ {"matrix": [1, 1], "x": 1, "y": 1.5},
+ {"matrix": [1, 2], "x": 2, "y": 1.5},
+ {"matrix": [1, 3], "x": 3, "y": 1.5},
+ {"matrix": [1, 4], "x": 4, "y": 1.5},
+ {"matrix": [1, 5], "x": 5, "y": 1.5},
+ {"matrix": [1, 6], "x": 6, "y": 1.5},
+ {"matrix": [1, 7], "x": 7, "y": 1.5},
+ {"matrix": [1, 8], "x": 8, "y": 1.5},
+ {"matrix": [7, 8], "x": 9, "y": 1.5},
+ {"matrix": [7, 0], "x": 10, "y": 1.5},
+ {"matrix": [7, 7], "x": 11, "y": 1.5},
+ {"matrix": [7, 5], "x": 12, "y": 1.5},
+ {"matrix": [7, 3], "x": 13, "y": 1.5, "w": 2},
+ {"matrix": [7, 6], "x": 15.25, "y": 1.5},
+ {"matrix": [7, 2], "x": 16.25, "y": 1.5},
+ {"matrix": [7, 1], "x": 17.25, "y": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.5},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.5},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.5},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.5},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.5},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.5},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.5},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.5},
+ {"matrix": [8, 8], "x": 9.5, "y": 2.5},
+ {"matrix": [8, 7], "x": 10.5, "y": 2.5},
+ {"matrix": [8, 5], "x": 11.5, "y": 2.5},
+ {"matrix": [8, 4], "x": 12.5, "y": 2.5},
+ {"matrix": [8, 6], "x": 15.25, "y": 2.5},
+ {"matrix": [8, 2], "x": 16.25, "y": 2.5},
+ {"matrix": [8, 1], "x": 17.25, "y": 2.5},
+ {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.5},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.5},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.5},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.5},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.5},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.5},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.5},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.5},
+ {"matrix": [9, 8], "x": 9.75, "y": 3.5},
+ {"matrix": [9, 7], "x": 10.75, "y": 3.5},
+ {"matrix": [9, 5], "x": 11.75, "y": 3.5},
+ {"matrix": [9, 4], "x": 12.75, "y": 3.5},
+ {"matrix": [8, 3], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2},
+ {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4.5},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.5},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.5},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.5},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.5},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.5},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.5},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.5},
+ {"matrix": [10, 8], "x": 9.25, "y": 4.5},
+ {"matrix": [10, 7], "x": 10.25, "y": 4.5},
+ {"matrix": [10, 5], "x": 11.25, "y": 4.5},
+ {"matrix": [10, 4], "x": 12.25, "y": 4.5, "w": 2.75},
+ {"matrix": [9, 2], "x": 16.25, "y": 4.5},
+ {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25},
+ {"matrix": [5, 8], "x": 10, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 7], "x": 11.25, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 4], "x": 12.5, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 3], "x": 13.75, "y": 5.5, "w": 1.25},
+ {"matrix": [10, 6], "x": 15.25, "y": 5.5},
+ {"matrix": [10, 2], "x": 16.25, "y": 5.5},
+ {"matrix": [10, 1], "x": 17.25, "y": 5.5}
+ ]
+ },
+ "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": [6, 8], "x": 9.5, "y": 0},
+ {"matrix": [6, 7], "x": 11, "y": 0},
+ {"matrix": [6, 5], "x": 12, "y": 0},
+ {"matrix": [6, 4], "x": 13, "y": 0},
+ {"matrix": [6, 3], "x": 14, "y": 0},
+ {"matrix": [6, 6], "x": 15.25, "y": 0},
+ {"matrix": [6, 2], "x": 16.25, "y": 0},
+ {"matrix": [6, 1], "x": 17.25, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1.5},
+ {"matrix": [1, 1], "x": 1, "y": 1.5},
+ {"matrix": [1, 2], "x": 2, "y": 1.5},
+ {"matrix": [1, 3], "x": 3, "y": 1.5},
+ {"matrix": [1, 4], "x": 4, "y": 1.5},
+ {"matrix": [1, 5], "x": 5, "y": 1.5},
+ {"matrix": [1, 6], "x": 6, "y": 1.5},
+ {"matrix": [1, 7], "x": 7, "y": 1.5},
+ {"matrix": [1, 8], "x": 8, "y": 1.5},
+ {"matrix": [7, 8], "x": 9, "y": 1.5},
+ {"matrix": [7, 0], "x": 10, "y": 1.5},
+ {"matrix": [7, 7], "x": 11, "y": 1.5},
+ {"matrix": [7, 5], "x": 12, "y": 1.5},
+ {"matrix": [7, 4], "x": 13, "y": 1.5},
+ {"matrix": [7, 3], "x": 14, "y": 1.5},
+ {"matrix": [7, 6], "x": 15.25, "y": 1.5},
+ {"matrix": [7, 2], "x": 16.25, "y": 1.5},
+ {"matrix": [7, 1], "x": 17.25, "y": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.5},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.5},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.5},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.5},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.5},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.5},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.5},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.5},
+ {"matrix": [8, 8], "x": 9.5, "y": 2.5},
+ {"matrix": [8, 7], "x": 10.5, "y": 2.5},
+ {"matrix": [8, 5], "x": 11.5, "y": 2.5},
+ {"matrix": [8, 4], "x": 12.5, "y": 2.5},
+ {"matrix": [8, 6], "x": 15.25, "y": 2.5},
+ {"matrix": [8, 2], "x": 16.25, "y": 2.5},
+ {"matrix": [8, 1], "x": 17.25, "y": 2.5},
+ {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.5},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.5},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.5},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.5},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.5},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.5},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.5},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.5},
+ {"matrix": [9, 8], "x": 9.75, "y": 3.5},
+ {"matrix": [9, 7], "x": 10.75, "y": 3.5},
+ {"matrix": [9, 5], "x": 11.75, "y": 3.5},
+ {"matrix": [9, 4], "x": 12.75, "y": 3.5},
+ {"matrix": [8, 3], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2},
+ {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4.5},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.5},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.5},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.5},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.5},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.5},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.5},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.5},
+ {"matrix": [10, 8], "x": 9.25, "y": 4.5},
+ {"matrix": [10, 7], "x": 10.25, "y": 4.5},
+ {"matrix": [10, 5], "x": 11.25, "y": 4.5},
+ {"matrix": [10, 4], "x": 12.25, "y": 4.5, "w": 1.75},
+ {"matrix": [10, 3], "x": 14, "y": 4.5},
+ {"matrix": [9, 2], "x": 16.25, "y": 4.5},
+ {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25},
+ {"matrix": [5, 8], "x": 10, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 7], "x": 11.25, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 4], "x": 12.5, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 3], "x": 13.75, "y": 5.5, "w": 1.25},
+ {"matrix": [10, 6], "x": 15.25, "y": 5.5},
+ {"matrix": [10, 2], "x": 16.25, "y": 5.5},
+ {"matrix": [10, 1], "x": 17.25, "y": 5.5}
+ ]
+ },
+ "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": [6, 8], "x": 9.5, "y": 0},
+ {"matrix": [6, 7], "x": 11, "y": 0},
+ {"matrix": [6, 5], "x": 12, "y": 0},
+ {"matrix": [6, 4], "x": 13, "y": 0},
+ {"matrix": [6, 3], "x": 14, "y": 0},
+ {"matrix": [6, 6], "x": 15.25, "y": 0},
+ {"matrix": [6, 2], "x": 16.25, "y": 0},
+ {"matrix": [6, 1], "x": 17.25, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1.5},
+ {"matrix": [1, 1], "x": 1, "y": 1.5},
+ {"matrix": [1, 2], "x": 2, "y": 1.5},
+ {"matrix": [1, 3], "x": 3, "y": 1.5},
+ {"matrix": [1, 4], "x": 4, "y": 1.5},
+ {"matrix": [1, 5], "x": 5, "y": 1.5},
+ {"matrix": [1, 6], "x": 6, "y": 1.5},
+ {"matrix": [1, 7], "x": 7, "y": 1.5},
+ {"matrix": [1, 8], "x": 8, "y": 1.5},
+ {"matrix": [7, 8], "x": 9, "y": 1.5},
+ {"matrix": [7, 0], "x": 10, "y": 1.5},
+ {"matrix": [7, 7], "x": 11, "y": 1.5},
+ {"matrix": [7, 5], "x": 12, "y": 1.5},
+ {"matrix": [7, 3], "x": 13, "y": 1.5, "w": 2},
+ {"matrix": [7, 6], "x": 15.25, "y": 1.5},
+ {"matrix": [7, 2], "x": 16.25, "y": 1.5},
+ {"matrix": [7, 1], "x": 17.25, "y": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.5},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.5},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.5},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.5},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.5},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.5},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.5},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.5},
+ {"matrix": [8, 8], "x": 9.5, "y": 2.5},
+ {"matrix": [8, 7], "x": 10.5, "y": 2.5},
+ {"matrix": [8, 5], "x": 11.5, "y": 2.5},
+ {"matrix": [8, 4], "x": 12.5, "y": 2.5},
+ {"matrix": [8, 6], "x": 15.25, "y": 2.5},
+ {"matrix": [8, 2], "x": 16.25, "y": 2.5},
+ {"matrix": [8, 1], "x": 17.25, "y": 2.5},
+ {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.5},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.5},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.5},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.5},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.5},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.5},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.5},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.5},
+ {"matrix": [9, 8], "x": 9.75, "y": 3.5},
+ {"matrix": [9, 7], "x": 10.75, "y": 3.5},
+ {"matrix": [9, 5], "x": 11.75, "y": 3.5},
+ {"matrix": [9, 4], "x": 12.75, "y": 3.5},
+ {"matrix": [8, 3], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2},
+ {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4.5},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.5},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.5},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.5},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.5},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.5},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.5},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.5},
+ {"matrix": [10, 8], "x": 9.25, "y": 4.5},
+ {"matrix": [10, 7], "x": 10.25, "y": 4.5},
+ {"matrix": [10, 5], "x": 11.25, "y": 4.5},
+ {"matrix": [10, 4], "x": 12.25, "y": 4.5, "w": 2.75},
+ {"matrix": [9, 2], "x": 16.25, "y": 4.5},
+ {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5},
+ {"matrix": [5, 1], "x": 1.5, "y": 5.5},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5},
+ {"matrix": [5, 6], "x": 4, "y": 5.5, "w": 7},
+ {"matrix": [5, 7], "x": 11, "y": 5.5, "w": 1.5},
+ {"matrix": [5, 4], "x": 12.5, "y": 5.5},
+ {"matrix": [5, 3], "x": 13.5, "y": 5.5, "w": 1.5},
+ {"matrix": [10, 6], "x": 15.25, "y": 5.5},
+ {"matrix": [10, 2], "x": 16.25, "y": 5.5},
+ {"matrix": [10, 1], "x": 17.25, "y": 5.5}
+ ]
+ },
+ "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": [6, 8], "x": 9.5, "y": 0},
+ {"matrix": [6, 7], "x": 11, "y": 0},
+ {"matrix": [6, 5], "x": 12, "y": 0},
+ {"matrix": [6, 4], "x": 13, "y": 0},
+ {"matrix": [6, 3], "x": 14, "y": 0},
+ {"matrix": [6, 6], "x": 15.25, "y": 0},
+ {"matrix": [6, 2], "x": 16.25, "y": 0},
+ {"matrix": [6, 1], "x": 17.25, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1.5},
+ {"matrix": [1, 1], "x": 1, "y": 1.5},
+ {"matrix": [1, 2], "x": 2, "y": 1.5},
+ {"matrix": [1, 3], "x": 3, "y": 1.5},
+ {"matrix": [1, 4], "x": 4, "y": 1.5},
+ {"matrix": [1, 5], "x": 5, "y": 1.5},
+ {"matrix": [1, 6], "x": 6, "y": 1.5},
+ {"matrix": [1, 7], "x": 7, "y": 1.5},
+ {"matrix": [1, 8], "x": 8, "y": 1.5},
+ {"matrix": [7, 8], "x": 9, "y": 1.5},
+ {"matrix": [7, 0], "x": 10, "y": 1.5},
+ {"matrix": [7, 7], "x": 11, "y": 1.5},
+ {"matrix": [7, 5], "x": 12, "y": 1.5},
+ {"matrix": [7, 4], "x": 13, "y": 1.5},
+ {"matrix": [7, 3], "x": 14, "y": 1.5},
+ {"matrix": [7, 6], "x": 15.25, "y": 1.5},
+ {"matrix": [7, 2], "x": 16.25, "y": 1.5},
+ {"matrix": [7, 1], "x": 17.25, "y": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.5},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.5},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.5},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.5},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.5},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.5},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.5},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.5},
+ {"matrix": [8, 8], "x": 9.5, "y": 2.5},
+ {"matrix": [8, 7], "x": 10.5, "y": 2.5},
+ {"matrix": [8, 5], "x": 11.5, "y": 2.5},
+ {"matrix": [8, 4], "x": 12.5, "y": 2.5},
+ {"matrix": [8, 6], "x": 15.25, "y": 2.5},
+ {"matrix": [8, 2], "x": 16.25, "y": 2.5},
+ {"matrix": [8, 1], "x": 17.25, "y": 2.5},
+ {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.5},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.5},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.5},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.5},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.5},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.5},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.5},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.5},
+ {"matrix": [9, 8], "x": 9.75, "y": 3.5},
+ {"matrix": [9, 7], "x": 10.75, "y": 3.5},
+ {"matrix": [9, 5], "x": 11.75, "y": 3.5},
+ {"matrix": [9, 4], "x": 12.75, "y": 3.5},
+ {"matrix": [8, 3], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2},
+ {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4.5},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.5},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.5},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.5},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.5},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.5},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.5},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.5},
+ {"matrix": [10, 8], "x": 9.25, "y": 4.5},
+ {"matrix": [10, 7], "x": 10.25, "y": 4.5},
+ {"matrix": [10, 5], "x": 11.25, "y": 4.5},
+ {"matrix": [10, 4], "x": 12.25, "y": 4.5, "w": 1.75},
+ {"matrix": [10, 3], "x": 14, "y": 4.5},
+ {"matrix": [9, 2], "x": 16.25, "y": 4.5},
+ {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5},
+ {"matrix": [5, 1], "x": 1.5, "y": 5.5},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5},
+ {"matrix": [5, 6], "x": 4, "y": 5.5, "w": 7},
+ {"matrix": [5, 7], "x": 11, "y": 5.5, "w": 1.5},
+ {"matrix": [5, 4], "x": 12.5, "y": 5.5},
+ {"matrix": [5, 3], "x": 13.5, "y": 5.5, "w": 1.5},
+ {"matrix": [10, 6], "x": 15.25, "y": 5.5},
+ {"matrix": [10, 2], "x": 16.25, "y": 5.5},
+ {"matrix": [10, 1], "x": 17.25, "y": 5.5}
+ ]
+ },
+ "LAYOUT_tkl_iso_wkl": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6.5, "y": 0},
+ {"matrix": [0, 7], "x": 7.5, "y": 0},
+ {"matrix": [0, 8], "x": 8.5, "y": 0},
+ {"matrix": [6, 8], "x": 9.5, "y": 0},
+ {"matrix": [6, 7], "x": 11, "y": 0},
+ {"matrix": [6, 5], "x": 12, "y": 0},
+ {"matrix": [6, 4], "x": 13, "y": 0},
+ {"matrix": [6, 3], "x": 14, "y": 0},
+ {"matrix": [6, 6], "x": 15.25, "y": 0},
+ {"matrix": [6, 2], "x": 16.25, "y": 0},
+ {"matrix": [6, 1], "x": 17.25, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1.5},
+ {"matrix": [1, 1], "x": 1, "y": 1.5},
+ {"matrix": [1, 2], "x": 2, "y": 1.5},
+ {"matrix": [1, 3], "x": 3, "y": 1.5},
+ {"matrix": [1, 4], "x": 4, "y": 1.5},
+ {"matrix": [1, 5], "x": 5, "y": 1.5},
+ {"matrix": [1, 6], "x": 6, "y": 1.5},
+ {"matrix": [1, 7], "x": 7, "y": 1.5},
+ {"matrix": [1, 8], "x": 8, "y": 1.5},
+ {"matrix": [7, 8], "x": 9, "y": 1.5},
+ {"matrix": [7, 0], "x": 10, "y": 1.5},
+ {"matrix": [7, 7], "x": 11, "y": 1.5},
+ {"matrix": [7, 5], "x": 12, "y": 1.5},
+ {"matrix": [7, 3], "x": 13, "y": 1.5, "w": 2},
+ {"matrix": [7, 6], "x": 15.25, "y": 1.5},
+ {"matrix": [7, 2], "x": 16.25, "y": 1.5},
+ {"matrix": [7, 1], "x": 17.25, "y": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.5},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.5},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.5},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.5},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.5},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.5},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.5},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.5},
+ {"matrix": [8, 8], "x": 9.5, "y": 2.5},
+ {"matrix": [8, 7], "x": 10.5, "y": 2.5},
+ {"matrix": [8, 5], "x": 11.5, "y": 2.5},
+ {"matrix": [8, 4], "x": 12.5, "y": 2.5},
+ {"matrix": [8, 6], "x": 15.25, "y": 2.5},
+ {"matrix": [8, 2], "x": 16.25, "y": 2.5},
+ {"matrix": [8, 1], "x": 17.25, "y": 2.5},
+ {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.5},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.5},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.5},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.5},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.5},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.5},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.5},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.5},
+ {"matrix": [9, 8], "x": 9.75, "y": 3.5},
+ {"matrix": [9, 7], "x": 10.75, "y": 3.5},
+ {"matrix": [9, 5], "x": 11.75, "y": 3.5},
+ {"matrix": [9, 4], "x": 12.75, "y": 3.5},
+ {"matrix": [8, 3], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2},
+ {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4.5},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.5},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.5},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.5},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.5},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.5},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.5},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.5},
+ {"matrix": [10, 8], "x": 9.25, "y": 4.5},
+ {"matrix": [10, 7], "x": 10.25, "y": 4.5},
+ {"matrix": [10, 5], "x": 11.25, "y": 4.5},
+ {"matrix": [10, 4], "x": 12.25, "y": 4.5, "w": 2.75},
+ {"matrix": [9, 2], "x": 16.25, "y": 4.5},
+ {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5},
+ {"matrix": [5, 6], "x": 4, "y": 5.5, "w": 7},
+ {"matrix": [5, 7], "x": 11, "y": 5.5, "w": 1.5},
+ {"matrix": [5, 3], "x": 13.5, "y": 5.5, "w": 1.5},
+ {"matrix": [10, 6], "x": 15.25, "y": 5.5},
+ {"matrix": [10, 2], "x": 16.25, "y": 5.5},
+ {"matrix": [10, 1], "x": 17.25, "y": 5.5}
+ ]
+ },
+ "LAYOUT_tkl_iso_wkl_split_bs_rshift": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6.5, "y": 0},
+ {"matrix": [0, 7], "x": 7.5, "y": 0},
+ {"matrix": [0, 8], "x": 8.5, "y": 0},
+ {"matrix": [6, 8], "x": 9.5, "y": 0},
+ {"matrix": [6, 7], "x": 11, "y": 0},
+ {"matrix": [6, 5], "x": 12, "y": 0},
+ {"matrix": [6, 4], "x": 13, "y": 0},
+ {"matrix": [6, 3], "x": 14, "y": 0},
+ {"matrix": [6, 6], "x": 15.25, "y": 0},
+ {"matrix": [6, 2], "x": 16.25, "y": 0},
+ {"matrix": [6, 1], "x": 17.25, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1.5},
+ {"matrix": [1, 1], "x": 1, "y": 1.5},
+ {"matrix": [1, 2], "x": 2, "y": 1.5},
+ {"matrix": [1, 3], "x": 3, "y": 1.5},
+ {"matrix": [1, 4], "x": 4, "y": 1.5},
+ {"matrix": [1, 5], "x": 5, "y": 1.5},
+ {"matrix": [1, 6], "x": 6, "y": 1.5},
+ {"matrix": [1, 7], "x": 7, "y": 1.5},
+ {"matrix": [1, 8], "x": 8, "y": 1.5},
+ {"matrix": [7, 8], "x": 9, "y": 1.5},
+ {"matrix": [7, 0], "x": 10, "y": 1.5},
+ {"matrix": [7, 7], "x": 11, "y": 1.5},
+ {"matrix": [7, 5], "x": 12, "y": 1.5},
+ {"matrix": [7, 4], "x": 13, "y": 1.5},
+ {"matrix": [7, 3], "x": 14, "y": 1.5},
+ {"matrix": [7, 6], "x": 15.25, "y": 1.5},
+ {"matrix": [7, 2], "x": 16.25, "y": 1.5},
+ {"matrix": [7, 1], "x": 17.25, "y": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.5},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.5},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.5},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.5},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.5},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.5},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.5},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.5},
+ {"matrix": [8, 8], "x": 9.5, "y": 2.5},
+ {"matrix": [8, 7], "x": 10.5, "y": 2.5},
+ {"matrix": [8, 5], "x": 11.5, "y": 2.5},
+ {"matrix": [8, 4], "x": 12.5, "y": 2.5},
+ {"matrix": [8, 6], "x": 15.25, "y": 2.5},
+ {"matrix": [8, 2], "x": 16.25, "y": 2.5},
+ {"matrix": [8, 1], "x": 17.25, "y": 2.5},
+ {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.5},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.5},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.5},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.5},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.5},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.5},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.5},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.5},
+ {"matrix": [9, 8], "x": 9.75, "y": 3.5},
+ {"matrix": [9, 7], "x": 10.75, "y": 3.5},
+ {"matrix": [9, 5], "x": 11.75, "y": 3.5},
+ {"matrix": [9, 4], "x": 12.75, "y": 3.5},
+ {"matrix": [8, 3], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2},
+ {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4.5},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.5},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.5},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.5},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.5},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.5},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.5},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.5},
+ {"matrix": [10, 8], "x": 9.25, "y": 4.5},
+ {"matrix": [10, 7], "x": 10.25, "y": 4.5},
+ {"matrix": [10, 5], "x": 11.25, "y": 4.5},
+ {"matrix": [10, 4], "x": 12.25, "y": 4.5, "w": 1.75},
+ {"matrix": [10, 3], "x": 14, "y": 4.5},
+ {"matrix": [9, 2], "x": 16.25, "y": 4.5},
+ {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5},
+ {"matrix": [5, 6], "x": 4, "y": 5.5, "w": 7},
+ {"matrix": [5, 7], "x": 11, "y": 5.5, "w": 1.5},
+ {"matrix": [5, 3], "x": 13.5, "y": 5.5, "w": 1.5},
+ {"matrix": [10, 6], "x": 15.25, "y": 5.5},
+ {"matrix": [10, 2], "x": 16.25, "y": 5.5},
+ {"matrix": [10, 1], "x": 17.25, "y": 5.5}
+ ]
+ }
+ }
+}
diff --git a/keyboards/mt/ncr80/r2/solder/keymaps/default/keymap.c b/keyboards/mt/ncr80/r2/solder/keymaps/default/keymap.c
new file mode 100644
index 0000000000..8f9dda7826
--- /dev/null
+++ b/keyboards/mt/ncr80/r2/solder/keymaps/default/keymap.c
@@ -0,0 +1,39 @@
+/* Copyright 2022 Jordan Duabe
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT_all(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_SPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_SPC, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_SPC, KC_UP,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [1] = LAYOUT_all(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, BL_DOWN, BL_UP, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_NUM, _______, _______, _______
+ ),
+
+};
diff --git a/keyboards/mt/ncr80/r2/solder/keymaps/default_tkl_ansi/keymap.c b/keyboards/mt/ncr80/r2/solder/keymaps/default_tkl_ansi/keymap.c
new file mode 100644
index 0000000000..f5604db5f4
--- /dev/null
+++ b/keyboards/mt/ncr80/r2/solder/keymaps/default_tkl_ansi/keymap.c
@@ -0,0 +1,28 @@
+/* Copyright 2022 peepeetee
+ *
+ * This program is free software: you can 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_tkl_ansi(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
+ KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ),
+
+};
diff --git a/keyboards/mt/ncr80/r2/solder/keymaps/default_tkl_iso/keymap.c b/keyboards/mt/ncr80/r2/solder/keymaps/default_tkl_iso/keymap.c
new file mode 100644
index 0000000000..b80c0f1d49
--- /dev/null
+++ b/keyboards/mt/ncr80/r2/solder/keymaps/default_tkl_iso/keymap.c
@@ -0,0 +1,28 @@
+/* Copyright 2022 peepeetee
+ *
+ * This program is free software: you can 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_tkl_iso(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN,
+ KC_CAPS,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_NUHS, KC_ENT,
+ KC_LSFT,KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
+ KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ),
+
+};
diff --git a/keyboards/mt/ncr80/r2/solder/keymaps/via/keymap.c b/keyboards/mt/ncr80/r2/solder/keymaps/via/keymap.c
new file mode 100644
index 0000000000..66cdca8a71
--- /dev/null
+++ b/keyboards/mt/ncr80/r2/solder/keymaps/via/keymap.c
@@ -0,0 +1,39 @@
+/* Copyright 2022 Jordan Duabe
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT_all(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_SPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_SPC, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_SPC, KC_UP,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [1] = LAYOUT_all(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, BL_DOWN, BL_UP, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_NUM, _______, _______, _______
+ )
+
+};
diff --git a/keyboards/mt/ncr80/r2/solder/keymaps/via/rules.mk b/keyboards/mt/ncr80/r2/solder/keymaps/via/rules.mk
new file mode 100644
index 0000000000..36b7ba9cbc
--- /dev/null
+++ b/keyboards/mt/ncr80/r2/solder/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
diff --git a/keyboards/mt/ncr80/readme.md b/keyboards/mt/ncr80/readme.md
index 210822f28e..1211efa720 100644
--- a/keyboards/mt/ncr80/readme.md
+++ b/keyboards/mt/ncr80/readme.md
@@ -6,11 +6,29 @@
NCR-80 is an affordable keyboard kit inspired by iconic vintage keyboards.
-For more information, read the readme.md in soldered/ or hotswap/, depending on the version you are interested in.
+* Keyboard Maintainer: QMK Community
+* Hardware Supported:
+ * NCR-80 R2 PCBs (ATmega32U4, atmel-dfu)
+* Hardware Availability:
+ * R2 Hotswap: [AliExpress](https://www.aliexpress.com/item/1005003345941543.html) [Taobao 淘宝](https://item.taobao.com/item.htm?id=657482028672)
+ * R2 Solder: [AliExpress](https://www.aliexpress.com/item/1005003364462523.html) [Taobao 淘宝](https://item.taobao.com/item.htm?id=657482028672)
Make example for this keyboard (after setting up your build environment):
- make ncr80/solder:default
- make ncr80/hotswap:default
+ make mt/ncr80/r2/hotswap:default
+ make mt/ncr80/r2/solder:default
-For more information, read the readme.md in [solder/](solder/) or [hotswap/](hotswap/), depending on the version you are interested in.
+Flashing example for this keyboard:
+
+ make mt/ncr80/r2/hotswap:default:flash
+ make mt/ncr80/r2/solder:default:flash
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+## Bootloader
+
+Enter the bootloader in 3 ways:
+
+* **Bootmagic reset**: Hold down the top left key and plug in the keyboard. This will also clear EEPROM, so it is a good first step if the keyboard is misbehaving.
+* **Physical reset button**: Briefly press the button on the back of the PCB
+* **Keycode in layout**: There is no key mapped to `QK_BOOT` in the pre-created keymaps, but you may assign this key in any keymaps you create.
diff --git a/keyboards/mt/ncr80/rules.mk b/keyboards/mt/ncr80/rules.mk
deleted file mode 100644
index 5ebd6454f6..0000000000
--- a/keyboards/mt/ncr80/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DEFAULT_FOLDER = mt/ncr80/hotswap
diff --git a/keyboards/mt/ncr80/solder/keyboard.json b/keyboards/mt/ncr80/solder/keyboard.json
deleted file mode 100644
index fac59abadd..0000000000
--- a/keyboards/mt/ncr80/solder/keyboard.json
+++ /dev/null
@@ -1,352 +0,0 @@
-{
- "keyboard_name": "NCR-80",
- "manufacturer": "NCR",
- "url": "https://www.aliexpress.com/item/1005003364462523.html",
- "maintainer": "qmk",
- "usb": {
- "vid": "0x4D54",
- "pid": "0x2001",
- "device_version": "0.0.1"
- },
- "features": {
- "bootmagic": true,
- "mousekey": false,
- "extrakey": true,
- "nkro": true,
- "backlight": true
- },
- "matrix_pins": {
- "cols": ["D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4"],
- "rows": ["E6", "B0", "B1", "B2", "B3", "B7", "F7", "F6", "F5", "F4", "F1"]
- },
- "diode_direction": "ROW2COL",
- "backlight": {
- "pin": "B6",
- "levels": 5
- },
- "indicators": {
- "caps_lock": "C6",
- "num_lock": "B5",
- "scroll_lock": "C7",
- "on_state": 0
- },
- "processor": "atmega32u4",
- "bootloader": "atmel-dfu",
- "layouts": {
- "LAYOUT_all": {
- "layout": [
- {"x": 0, "y": 0, "matrix": [0, 0]},
-
- {"x": 2, "y": 0, "matrix": [0, 2]},
- {"x": 3, "y": 0, "matrix": [0, 3]},
- {"x": 4, "y": 0, "matrix": [0, 4]},
- {"x": 5, "y": 0, "matrix": [0, 5]},
-
- {"x": 6.5, "y": 0, "matrix": [0, 6]},
- {"x": 7.5, "y": 0, "matrix": [0, 7]},
- {"x": 8.5, "y": 0, "matrix": [0, 8]},
- {"x": 9.5, "y": 0, "matrix": [6, 8]},
-
- {"x": 11, "y": 0, "matrix": [6, 7]},
- {"x": 12, "y": 0, "matrix": [6, 5]},
- {"x": 13, "y": 0, "matrix": [6, 4]},
- {"x": 14, "y": 0, "matrix": [6, 3]},
-
- {"x": 15.25, "y": 0, "matrix": [6, 6]},
- {"x": 16.25, "y": 0, "matrix": [6, 2]},
- {"x": 17.25, "y": 0, "matrix": [6, 1]},
-
- {"x": 0, "y": 1.5, "matrix": [1, 0]},
- {"x": 1, "y": 1.5, "matrix": [1, 1]},
- {"x": 2, "y": 1.5, "matrix": [1, 2]},
- {"x": 3, "y": 1.5, "matrix": [1, 3]},
- {"x": 4, "y": 1.5, "matrix": [1, 4]},
- {"x": 5, "y": 1.5, "matrix": [1, 5]},
- {"x": 6, "y": 1.5, "matrix": [1, 6]},
- {"x": 7, "y": 1.5, "matrix": [1, 7]},
- {"x": 8, "y": 1.5, "matrix": [1, 8]},
- {"x": 9, "y": 1.5, "matrix": [7, 8]},
- {"x": 10, "y": 1.5, "matrix": [7, 0]},
- {"x": 11, "y": 1.5, "matrix": [7, 7]},
- {"x": 12, "y": 1.5, "matrix": [7, 5]},
- {"x": 13, "y": 1.5, "matrix": [7, 4]},
- {"x": 14, "y": 1.5, "matrix": [7, 3]},
-
- {"x": 15.25, "y": 1.5, "matrix": [7, 6]},
- {"x": 16.25, "y": 1.5, "matrix": [7, 2]},
- {"x": 17.25, "y": 1.5, "matrix": [7, 1]},
-
- {"x": 0, "y": 2.5, "w": 1.5, "matrix": [2, 0]},
- {"x": 1.5, "y": 2.5, "matrix": [2, 1]},
- {"x": 2.5, "y": 2.5, "matrix": [2, 2]},
- {"x": 3.5, "y": 2.5, "matrix": [2, 3]},
- {"x": 4.5, "y": 2.5, "matrix": [2, 4]},
- {"x": 5.5, "y": 2.5, "matrix": [2, 5]},
- {"x": 6.5, "y": 2.5, "matrix": [2, 6]},
- {"x": 7.5, "y": 2.5, "matrix": [2, 7]},
- {"x": 8.5, "y": 2.5, "matrix": [2, 8]},
- {"x": 9.5, "y": 2.5, "matrix": [8, 8]},
- {"x": 10.5, "y": 2.5, "matrix": [8, 7]},
- {"x": 11.5, "y": 2.5, "matrix": [8, 5]},
- {"x": 12.5, "y": 2.5, "matrix": [8, 4]},
- {"x": 13.5, "y": 2.5, "w": 1.5, "matrix": [9, 4]},
-
- {"x": 15.25, "y": 2.5, "matrix": [8, 6]},
- {"x": 16.25, "y": 2.5, "matrix": [8, 2]},
- {"x": 17.25, "y": 2.5, "matrix": [8, 1]},
-
- {"x": 0, "y": 3.5, "w": 1.75, "matrix": [3, 0]},
- {"x": 1.75, "y": 3.5, "matrix": [3, 1]},
- {"x": 2.75, "y": 3.5, "matrix": [3, 2]},
- {"x": 3.75, "y": 3.5, "matrix": [3, 3]},
- {"x": 4.75, "y": 3.5, "matrix": [3, 4]},
- {"x": 5.75, "y": 3.5, "matrix": [3, 5]},
- {"x": 6.75, "y": 3.5, "matrix": [3, 6]},
- {"x": 7.75, "y": 3.5, "matrix": [3, 7]},
- {"x": 8.75, "y": 3.5, "matrix": [3, 8]},
- {"x": 9.75, "y": 3.5, "matrix": [9, 8]},
- {"x": 10.75, "y": 3.5, "matrix": [9, 7]},
- {"x": 11.75, "y": 3.5, "matrix": [9, 5]},
- {"x": 12.75, "y": 3.5, "w": 2.25, "matrix": [8, 3]},
-
- {"x": 0, "y": 4.5, "w": 1.25, "matrix": [4, 0]},
- {"x": 1.25, "y": 4.5, "matrix": [4, 1]},
- {"x": 2.25, "y": 4.5, "matrix": [4, 2]},
- {"x": 3.25, "y": 4.5, "matrix": [4, 3]},
- {"x": 4.25, "y": 4.5, "matrix": [4, 4]},
- {"x": 5.25, "y": 4.5, "matrix": [4, 5]},
- {"x": 6.25, "y": 4.5, "matrix": [4, 6]},
- {"x": 7.25, "y": 4.5, "matrix": [4, 7]},
- {"x": 8.25, "y": 4.5, "matrix": [4, 8]},
- {"x": 9.25, "y": 4.5, "matrix": [10, 8]},
- {"x": 10.25, "y": 4.5, "matrix": [10, 7]},
- {"x": 11.25, "y": 4.5, "matrix": [10, 5]},
- {"x": 12.25, "y": 4.5, "w": 1.75, "matrix": [10, 4]},
- {"x": 14, "y": 4.5, "matrix": [10, 3]},
-
- {"x": 16.25, "y": 4.5, "matrix": [9, 2]},
-
- {"x": 0, "y": 5.5, "w": 1.25, "matrix": [5, 0]},
- {"x": 1.25, "y": 5.5, "w": 1.25, "matrix": [5, 1]},
- {"x": 2.5, "y": 5.5, "w": 1.25, "matrix": [5, 2]},
- {"x": 3.75, "y": 5.5, "w": 6.25, "matrix": [5, 6]},
- {"x": 10, "y": 5.5, "w": 1.25, "matrix": [5, 8]},
- {"x": 11.25, "y": 5.5, "w": 1.25, "matrix": [5, 7]},
- {"x": 12.5, "y": 5.5, "w": 1.25, "matrix": [5, 4]},
- {"x": 13.75, "y": 5.5, "w": 1.25, "matrix": [5, 3]},
-
- {"x": 15.25, "y": 5.5, "matrix": [10, 6]},
- {"x": 16.25, "y": 5.5, "matrix": [10, 2]},
- {"x": 17.25, "y": 5.5, "matrix": [10, 1]}
- ]
- },
- "LAYOUT_tkl_ansi": {
- "layout": [
- {"x": 0, "y": 0, "matrix": [0, 0]},
-
- {"x": 2, "y": 0, "matrix": [0, 2]},
- {"x": 3, "y": 0, "matrix": [0, 3]},
- {"x": 4, "y": 0, "matrix": [0, 4]},
- {"x": 5, "y": 0, "matrix": [0, 5]},
-
- {"x": 6.5, "y": 0, "matrix": [0, 6]},
- {"x": 7.5, "y": 0, "matrix": [0, 7]},
- {"x": 8.5, "y": 0, "matrix": [0, 8]},
- {"x": 9.5, "y": 0, "matrix": [6, 8]},
-
- {"x": 11, "y": 0, "matrix": [6, 7]},
- {"x": 12, "y": 0, "matrix": [6, 5]},
- {"x": 13, "y": 0, "matrix": [6, 4]},
- {"x": 14, "y": 0, "matrix": [6, 3]},
-
- {"x": 15.25, "y": 0, "matrix": [6, 6]},
- {"x": 16.25, "y": 0, "matrix": [6, 2]},
- {"x": 17.25, "y": 0, "matrix": [6, 1]},
-
- {"x": 0, "y": 1.25, "matrix": [1, 0]},
- {"x": 1, "y": 1.25, "matrix": [1, 1]},
- {"x": 2, "y": 1.25, "matrix": [1, 2]},
- {"x": 3, "y": 1.25, "matrix": [1, 3]},
- {"x": 4, "y": 1.25, "matrix": [1, 4]},
- {"x": 5, "y": 1.25, "matrix": [1, 5]},
- {"x": 6, "y": 1.25, "matrix": [1, 6]},
- {"x": 7, "y": 1.25, "matrix": [1, 7]},
- {"x": 8, "y": 1.25, "matrix": [1, 8]},
- {"x": 9, "y": 1.25, "matrix": [7, 8]},
- {"x": 10, "y": 1.25, "matrix": [7, 0]},
- {"x": 11, "y": 1.25, "matrix": [7, 7]},
- {"x": 12, "y": 1.25, "matrix": [7, 5]},
- {"x": 13, "y": 1.25, "w": 2, "matrix": [7, 3]},
-
- {"x": 15.25, "y": 1.25, "matrix": [7, 6]},
- {"x": 16.25, "y": 1.25, "matrix": [7, 2]},
- {"x": 17.25, "y": 1.25, "matrix": [7, 1]},
-
- {"x": 0, "y": 2.25, "w": 1.5, "matrix": [2, 0]},
- {"x": 1.5, "y": 2.25, "matrix": [2, 1]},
- {"x": 2.5, "y": 2.25, "matrix": [2, 2]},
- {"x": 3.5, "y": 2.25, "matrix": [2, 3]},
- {"x": 4.5, "y": 2.25, "matrix": [2, 4]},
- {"x": 5.5, "y": 2.25, "matrix": [2, 5]},
- {"x": 6.5, "y": 2.25, "matrix": [2, 6]},
- {"x": 7.5, "y": 2.25, "matrix": [2, 7]},
- {"x": 8.5, "y": 2.25, "matrix": [2, 8]},
- {"x": 9.5, "y": 2.25, "matrix": [8, 8]},
- {"x": 10.5, "y": 2.25, "matrix": [8, 7]},
- {"x": 11.5, "y": 2.25, "matrix": [8, 5]},
- {"x": 12.5, "y": 2.25, "matrix": [8, 4]},
- {"x": 13.5, "y": 2.25, "w": 1.5, "matrix": [9, 4]},
-
- {"x": 15.25, "y": 2.25, "matrix": [8, 6]},
- {"x": 16.25, "y": 2.25, "matrix": [8, 2]},
- {"x": 17.25, "y": 2.25, "matrix": [8, 1]},
-
- {"x": 0, "y": 3.25, "w": 1.75, "matrix": [3, 0]},
- {"x": 1.75, "y": 3.25, "matrix": [3, 1]},
- {"x": 2.75, "y": 3.25, "matrix": [3, 2]},
- {"x": 3.75, "y": 3.25, "matrix": [3, 3]},
- {"x": 4.75, "y": 3.25, "matrix": [3, 4]},
- {"x": 5.75, "y": 3.25, "matrix": [3, 5]},
- {"x": 6.75, "y": 3.25, "matrix": [3, 6]},
- {"x": 7.75, "y": 3.25, "matrix": [3, 7]},
- {"x": 8.75, "y": 3.25, "matrix": [3, 8]},
- {"x": 9.75, "y": 3.25, "matrix": [9, 8]},
- {"x": 10.75, "y": 3.25, "matrix": [9, 7]},
- {"x": 11.75, "y": 3.25, "matrix": [9, 5]},
- {"x": 12.75, "y": 3.25, "w": 2.25, "matrix": [8, 3]},
-
- {"x": 0, "y": 4.25, "w": 2.25, "matrix": [4, 0]},
- {"x": 2.25, "y": 4.25, "matrix": [4, 2]},
- {"x": 3.25, "y": 4.25, "matrix": [4, 3]},
- {"x": 4.25, "y": 4.25, "matrix": [4, 4]},
- {"x": 5.25, "y": 4.25, "matrix": [4, 5]},
- {"x": 6.25, "y": 4.25, "matrix": [4, 6]},
- {"x": 7.25, "y": 4.25, "matrix": [4, 7]},
- {"x": 8.25, "y": 4.25, "matrix": [4, 8]},
- {"x": 9.25, "y": 4.25, "matrix": [10, 8]},
- {"x": 10.25, "y": 4.25, "matrix": [10, 7]},
- {"x": 11.25, "y": 4.25, "matrix": [10, 5]},
- {"x": 12.25, "y": 4.25, "w": 2.75, "matrix": [10, 4]},
-
- {"x": 16.25, "y": 4.25, "matrix": [9, 2]},
-
- {"x": 0, "y": 5.25, "w": 1.25, "matrix": [5, 0]},
- {"x": 1.25, "y": 5.25, "w": 1.25, "matrix": [5, 1]},
- {"x": 2.5, "y": 5.25, "w": 1.25, "matrix": [5, 2]},
- {"x": 3.75, "y": 5.25, "w": 6.25, "matrix": [5, 6]},
- {"x": 10, "y": 5.25, "w": 1.25, "matrix": [5, 8]},
- {"x": 11.25, "y": 5.25, "w": 1.25, "matrix": [5, 7]},
- {"x": 12.5, "y": 5.25, "w": 1.25, "matrix": [5, 4]},
- {"x": 13.75, "y": 5.25, "w": 1.25, "matrix": [5, 3]},
- {"x": 15.25, "y": 5.25, "matrix": [10, 6]},
- {"x": 16.25, "y": 5.25, "matrix": [10, 2]},
- {"x": 17.25, "y": 5.25, "matrix": [10, 1]}
- ]
- },
- "LAYOUT_tkl_iso": {
- "layout": [
- {"x": 0, "y": 0, "matrix": [0, 0]},
-
- {"x": 2, "y": 0, "matrix": [0, 2]},
- {"x": 3, "y": 0, "matrix": [0, 3]},
- {"x": 4, "y": 0, "matrix": [0, 4]},
- {"x": 5, "y": 0, "matrix": [0, 5]},
-
- {"x": 6.5, "y": 0, "matrix": [0, 6]},
- {"x": 7.5, "y": 0, "matrix": [0, 7]},
- {"x": 8.5, "y": 0, "matrix": [0, 8]},
- {"x": 9.5, "y": 0, "matrix": [6, 8]},
-
- {"x": 11, "y": 0, "matrix": [6, 7]},
- {"x": 12, "y": 0, "matrix": [6, 5]},
- {"x": 13, "y": 0, "matrix": [6, 4]},
- {"x": 14, "y": 0, "matrix": [6, 3]},
-
- {"x": 15.25, "y": 0, "matrix": [6, 6]},
- {"x": 16.25, "y": 0, "matrix": [6, 2]},
- {"x": 17.25, "y": 0, "matrix": [6, 1]},
-
- {"x": 0, "y": 1.25, "matrix": [1, 0]},
- {"x": 1, "y": 1.25, "matrix": [1, 1]},
- {"x": 2, "y": 1.25, "matrix": [1, 2]},
- {"x": 3, "y": 1.25, "matrix": [1, 3]},
- {"x": 4, "y": 1.25, "matrix": [1, 4]},
- {"x": 5, "y": 1.25, "matrix": [1, 5]},
- {"x": 6, "y": 1.25, "matrix": [1, 6]},
- {"x": 7, "y": 1.25, "matrix": [1, 7]},
- {"x": 8, "y": 1.25, "matrix": [1, 8]},
- {"x": 9, "y": 1.25, "matrix": [7, 8]},
- {"x": 10, "y": 1.25, "matrix": [7, 0]},
- {"x": 11, "y": 1.25, "matrix": [7, 7]},
- {"x": 12, "y": 1.25, "matrix": [7, 5]},
- {"x": 13, "y": 1.25, "w": 2, "matrix": [7, 3]},
-
- {"x": 15.25, "y": 1.25, "matrix": [7, 6]},
- {"x": 16.25, "y": 1.25, "matrix": [7, 2]},
- {"x": 17.25, "y": 1.25, "matrix": [7, 1]},
-
- {"x": 0, "y": 2.25, "w": 1.5, "matrix": [2, 0]},
- {"x": 1.5, "y": 2.25, "matrix": [2, 1]},
- {"x": 2.5, "y": 2.25, "matrix": [2, 2]},
- {"x": 3.5, "y": 2.25, "matrix": [2, 3]},
- {"x": 4.5, "y": 2.25, "matrix": [2, 4]},
- {"x": 5.5, "y": 2.25, "matrix": [2, 5]},
- {"x": 6.5, "y": 2.25, "matrix": [2, 6]},
- {"x": 7.5, "y": 2.25, "matrix": [2, 7]},
- {"x": 8.5, "y": 2.25, "matrix": [2, 8]},
- {"x": 9.5, "y": 2.25, "matrix": [8, 8]},
- {"x": 10.5, "y": 2.25, "matrix": [8, 7]},
- {"x": 11.5, "y": 2.25, "matrix": [8, 5]},
- {"x": 12.5, "y": 2.25, "matrix": [8, 4]},
-
- {"x": 15.25, "y": 2.25, "matrix": [8, 6]},
- {"x": 16.25, "y": 2.25, "matrix": [8, 2]},
- {"x": 17.25, "y": 2.25, "matrix": [8, 1]},
-
- {"x": 0, "y": 3.25, "w": 1.75, "matrix": [3, 0]},
- {"x": 1.75, "y": 3.25, "matrix": [3, 1]},
- {"x": 2.75, "y": 3.25, "matrix": [3, 2]},
- {"x": 3.75, "y": 3.25, "matrix": [3, 3]},
- {"x": 4.75, "y": 3.25, "matrix": [3, 4]},
- {"x": 5.75, "y": 3.25, "matrix": [3, 5]},
- {"x": 6.75, "y": 3.25, "matrix": [3, 6]},
- {"x": 7.75, "y": 3.25, "matrix": [3, 7]},
- {"x": 8.75, "y": 3.25, "matrix": [3, 8]},
- {"x": 9.75, "y": 3.25, "matrix": [9, 8]},
- {"x": 10.75, "y": 3.25, "matrix": [9, 7]},
- {"x": 11.75, "y": 3.25, "matrix": [9, 5]},
- {"x": 12.75, "y": 3.25, "matrix": [9, 4]},
- {"x": 13.75, "y": 2.25, "w": 1.25, "h": 2, "matrix": [8, 3]},
-
- {"x": 0, "y": 4.25, "w": 1.25, "matrix": [4, 0]},
- {"x": 1.25, "y": 4.25, "matrix": [4, 1]},
- {"x": 2.25, "y": 4.25, "matrix": [4, 2]},
- {"x": 3.25, "y": 4.25, "matrix": [4, 3]},
- {"x": 4.25, "y": 4.25, "matrix": [4, 4]},
- {"x": 5.25, "y": 4.25, "matrix": [4, 5]},
- {"x": 6.25, "y": 4.25, "matrix": [4, 6]},
- {"x": 7.25, "y": 4.25, "matrix": [4, 7]},
- {"x": 8.25, "y": 4.25, "matrix": [4, 8]},
- {"x": 9.25, "y": 4.25, "matrix": [10, 8]},
- {"x": 10.25, "y": 4.25, "matrix": [10, 7]},
- {"x": 11.25, "y": 4.25, "matrix": [10, 5]},
- {"x": 12.25, "y": 4.25, "w": 2.75, "matrix": [10, 4]},
-
- {"x": 16.25, "y": 4.25, "matrix": [9, 2]},
-
- {"x": 0, "y": 5.25, "w": 1.25, "matrix": [5, 0]},
- {"x": 1.25, "y": 5.25, "w": 1.25, "matrix": [5, 1]},
- {"x": 2.5, "y": 5.25, "w": 1.25, "matrix": [5, 2]},
- {"x": 3.75, "y": 5.25, "w": 6.25, "matrix": [5, 6]},
- {"x": 10, "y": 5.25, "w": 1.25, "matrix": [5, 8]},
- {"x": 11.25, "y": 5.25, "w": 1.25, "matrix": [5, 7]},
- {"x": 12.5, "y": 5.25, "w": 1.25, "matrix": [5, 4]},
- {"x": 13.75, "y": 5.25, "w": 1.25, "matrix": [5, 3]},
-
- {"x": 15.25, "y": 5.25, "matrix": [10, 6]},
- {"x": 16.25, "y": 5.25, "matrix": [10, 2]},
- {"x": 17.25, "y": 5.25, "matrix": [10, 1]}
- ]
- }
- }
-}
diff --git a/keyboards/mt/ncr80/solder/keymaps/default/keymap.c b/keyboards/mt/ncr80/solder/keymaps/default/keymap.c
deleted file mode 100644
index 8f9dda7826..0000000000
--- a/keyboards/mt/ncr80/solder/keymaps/default/keymap.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2022 Jordan Duabe
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [0] = LAYOUT_all(
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS,
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_SPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- KC_LSFT, KC_SPC, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_SPC, KC_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [1] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, BL_DOWN, BL_UP, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_NUM, _______, _______, _______
- ),
-
-};
diff --git a/keyboards/mt/ncr80/solder/keymaps/default_tkl_ansi/keymap.c b/keyboards/mt/ncr80/solder/keymaps/default_tkl_ansi/keymap.c
deleted file mode 100644
index f5604db5f4..0000000000
--- a/keyboards/mt/ncr80/solder/keymaps/default_tkl_ansi/keymap.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright 2022 peepeetee
- *
- * This program is free software: you can 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_tkl_ansi(
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS,
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ),
-
-};
diff --git a/keyboards/mt/ncr80/solder/keymaps/default_tkl_iso/keymap.c b/keyboards/mt/ncr80/solder/keymaps/default_tkl_iso/keymap.c
deleted file mode 100644
index b80c0f1d49..0000000000
--- a/keyboards/mt/ncr80/solder/keymaps/default_tkl_iso/keymap.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright 2022 peepeetee
- *
- * This program is free software: you can 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_tkl_iso(
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS,
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN,
- KC_CAPS,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_NUHS, KC_ENT,
- KC_LSFT,KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ),
-
-};
diff --git a/keyboards/mt/ncr80/solder/keymaps/via/keymap.c b/keyboards/mt/ncr80/solder/keymaps/via/keymap.c
deleted file mode 100644
index 493165c22f..0000000000
--- a/keyboards/mt/ncr80/solder/keymaps/via/keymap.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Copyright 2022 Jordan Duabe
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [0] = LAYOUT_all(
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS,
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_SPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- KC_LSFT, KC_SPC, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_SPC, KC_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [1] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, BL_DOWN, BL_UP, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_NUM, _______, _______, _______
- ),
-
- [2] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [3] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
-};
diff --git a/keyboards/mt/ncr80/solder/keymaps/via/rules.mk b/keyboards/mt/ncr80/solder/keymaps/via/rules.mk
deleted file mode 100644
index 36b7ba9cbc..0000000000
--- a/keyboards/mt/ncr80/solder/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/mt/ncr80/solder/readme.md b/keyboards/mt/ncr80/solder/readme.md
deleted file mode 100644
index 9333c57ac1..0000000000
--- a/keyboards/mt/ncr80/solder/readme.md
+++ /dev/null
@@ -1,29 +0,0 @@
-# NCR-80
-
-
-
-> Re-imagination of the classic rebranded Cherry G81-3000 by NCR
-
-NCR-80 is an affordable keyboard kit inspired by iconic vintage keyboards.
-
-* Keyboard Maintainer: QMK Community
-* Hardware Supported: ATmega32U4
-* Hardware Availability: [AliExpress](https://www.aliexpress.com/item/1005003364462523.html) [Taobao 淘宝](https://item.taobao.com/item.htm?id=657482028672)
-
-Make example for this keyboard (after setting up your build environment):
-
- make ncr80/solder:default
-
-Flashing example for this keyboard:
-
- make ncr80/solder:default:flash
-
-## Bootloader
-
-Enter the bootloader in 3 ways:
-
-* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
-* **Physical reset button**: Briefly press the button on the back of the PCB
-* **Keycode in layout**: Press the key mapped to `RESET` if it is available
-
-See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
\ No newline at end of file
--
cgit v1.2.3
From 2d2eed9594bb62b79d1eaffe25775d56adcd537f Mon Sep 17 00:00:00 2001
From: Drashna Jaelre
Date: Wed, 14 Aug 2024 06:27:37 -0700
Subject: [Keyboard] Move Planck EZ to ZSA vendor folder (#23917)
---
data/mappings/keyboard_aliases.hjson | 9 +
keyboards/planck/ez/base/keyboard.json | 6 -
keyboards/planck/ez/config.h | 62 ----
keyboards/planck/ez/ez.c | 369 ---------------------
keyboards/planck/ez/ez.h | 47 ---
keyboards/planck/ez/glow/keyboard.json | 9 -
keyboards/planck/ez/halconf.h | 23 --
keyboards/planck/ez/info.json | 207 ------------
keyboards/planck/ez/mcuconf.h | 41 ---
keyboards/planck/ez/readme.md | 64 ----
keyboards/planck/ez/rules.mk | 4 -
keyboards/zsa/planck_ez/base/keyboard.json | 6 +
keyboards/zsa/planck_ez/config.h | 26 ++
keyboards/zsa/planck_ez/glow/glow.c | 75 +++++
keyboards/zsa/planck_ez/glow/keyboard.json | 109 ++++++
keyboards/zsa/planck_ez/halconf.h | 23 ++
keyboards/zsa/planck_ez/info.json | 157 +++++++++
.../zsa/planck_ez/keymaps/default/keymap.json | 17 +
keyboards/zsa/planck_ez/mcuconf.h | 37 +++
keyboards/zsa/planck_ez/planck_ez.c | 286 ++++++++++++++++
keyboards/zsa/planck_ez/planck_ez.h | 47 +++
keyboards/zsa/planck_ez/readme.md | 64 ++++
keyboards/zsa/planck_ez/rules.mk | 4 +
23 files changed, 860 insertions(+), 832 deletions(-)
delete mode 100644 keyboards/planck/ez/base/keyboard.json
delete mode 100644 keyboards/planck/ez/config.h
delete mode 100644 keyboards/planck/ez/ez.c
delete mode 100644 keyboards/planck/ez/ez.h
delete mode 100644 keyboards/planck/ez/glow/keyboard.json
delete mode 100644 keyboards/planck/ez/halconf.h
delete mode 100644 keyboards/planck/ez/info.json
delete mode 100644 keyboards/planck/ez/mcuconf.h
delete mode 100644 keyboards/planck/ez/readme.md
delete mode 100644 keyboards/planck/ez/rules.mk
create mode 100644 keyboards/zsa/planck_ez/base/keyboard.json
create mode 100644 keyboards/zsa/planck_ez/config.h
create mode 100644 keyboards/zsa/planck_ez/glow/glow.c
create mode 100644 keyboards/zsa/planck_ez/glow/keyboard.json
create mode 100644 keyboards/zsa/planck_ez/halconf.h
create mode 100644 keyboards/zsa/planck_ez/info.json
create mode 100644 keyboards/zsa/planck_ez/keymaps/default/keymap.json
create mode 100644 keyboards/zsa/planck_ez/mcuconf.h
create mode 100644 keyboards/zsa/planck_ez/planck_ez.c
create mode 100644 keyboards/zsa/planck_ez/planck_ez.h
create mode 100644 keyboards/zsa/planck_ez/readme.md
create mode 100644 keyboards/zsa/planck_ez/rules.mk
(limited to 'data/mappings')
diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson
index 0dcda6f61d..bca1865fc9 100644
--- a/data/mappings/keyboard_aliases.hjson
+++ b/data/mappings/keyboard_aliases.hjson
@@ -563,6 +563,15 @@
"plain60": {
"target": "evyd13/plain60"
},
+ "planck/ez": {
+ "target": "zsa/planck_ez/base"
+ },
+ "planck/ez/base": {
+ "target": "zsa/planck_ez/base"
+ },
+ "planck/ez/glow": {
+ "target": "zsa/planck_ez/glow"
+ },
"ploopyco/trackball": {
"target": "ploopyco/trackball/rev1_005"
},
diff --git a/keyboards/planck/ez/base/keyboard.json b/keyboards/planck/ez/base/keyboard.json
deleted file mode 100644
index 07167a8c2a..0000000000
--- a/keyboards/planck/ez/base/keyboard.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "keyboard_name": "Planck EZ",
- "usb": {
- "pid": "0xC6CE"
- }
-}
diff --git a/keyboards/planck/ez/config.h b/keyboards/planck/ez/config.h
deleted file mode 100644
index e4fa0924d3..0000000000
--- a/keyboards/planck/ez/config.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Copyright 2018 Jack Humbert
- * Copyright 2015 ZSA Technology Labs Inc (@zsa)
- * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna)
- *
- * This program is free software: you can 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 MUSIC_MAP
-#undef AUDIO_VOICES
-#undef AUDIO_PIN
-#define AUDIO_PIN A5
-#define AUDIO_PIN_ALT A4
-#define AUDIO_PIN_ALT_AS_NEGATIVE
-
-/*
- * Feature disable options
- * These options are also useful to firmware size reduction.
- */
-
-/* disable debug print */
-//#define NO_DEBUG
-
-/* disable print */
-//#define NO_PRINT
-
-/* disable action features */
-//#define NO_ACTION_LAYER
-//#define NO_ACTION_TAPPING
-//#define NO_ACTION_ONESHOT
-
-// #define WS2812_LED_N 2
-// #define WS2812_TIM_N 2
-// #define WS2812_TIM_CH 2
-// #define PORT_WS2812 GPIOA
-// #define PIN_WS2812 1
-// #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2 // DMA stream for TIMx_UP (look up in reference manual under DMA Channel selection)
-//#define WS2812_PWM_DMA_CHANNEL 7 // DMA channel for TIMx_UP
-//#define WS2812_EXTERNAL_PULLUP
-
-#define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND
-
-#define MOUSEKEY_INTERVAL 20
-#define MOUSEKEY_DELAY 0
-#define MOUSEKEY_TIME_TO_MAX 60
-#define MOUSEKEY_MAX_SPEED 7
-#define MOUSEKEY_WHEEL_DELAY 400
-#define MOUSEKEY_WHEEL_INTERVAL MOUSEKEY_INTERVAL
-#define MOUSEKEY_WHEEL_MAX_SPEED MOUSEKEY_MAX_SPEED
-#define MOUSEKEY_WHEEL_TIME_TO_MAX MOUSEKEY_TIME_TO_MAX
diff --git a/keyboards/planck/ez/ez.c b/keyboards/planck/ez/ez.c
deleted file mode 100644
index 522fd70033..0000000000
--- a/keyboards/planck/ez/ez.c
+++ /dev/null
@@ -1,369 +0,0 @@
-/* Copyright 2018 Jack Humbert
- * Copyright 2015 ZSA Technology Labs Inc (@zsa)
- * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna)
- *
- * This program is free software: you can 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 "ez.h"
-#include
-#include
-
-keyboard_config_t keyboard_config;
-#ifdef RGB_MATRIX_ENABLE
-const is31fl3737_led_t PROGMEM g_is31fl3737_leds[IS31FL3737_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
- * driver
- * | R location
- * | | G location
- * | | | B location
- * | | | | */
- {0, SW2_CS12, SW1_CS12, SW3_CS12},
- {0, SW2_CS11, SW1_CS11, SW3_CS11},
- {0, SW2_CS10, SW1_CS10, SW3_CS10},
- {0, SW2_CS9, SW1_CS9, SW3_CS9},
- {0, SW2_CS8, SW1_CS8, SW3_CS8},
- {0, SW2_CS7, SW1_CS7, SW3_CS7},
-
- {0, SW8_CS12, SW7_CS12, SW9_CS12},
- {0, SW8_CS11, SW7_CS11, SW9_CS11},
- {0, SW8_CS10, SW7_CS10, SW9_CS10},
- {0, SW8_CS9, SW7_CS9, SW9_CS9},
- {0, SW8_CS8, SW7_CS8, SW9_CS8},
- {0, SW8_CS7, SW7_CS7, SW9_CS7},
-
- {0, SW2_CS6, SW1_CS6, SW3_CS6},
- {0, SW2_CS5, SW1_CS5, SW3_CS5},
- {0, SW2_CS4, SW1_CS4, SW3_CS4},
- {0, SW2_CS3, SW1_CS3, SW3_CS3},
- {0, SW2_CS2, SW1_CS2, SW3_CS2},
- {0, SW2_CS1, SW1_CS1, SW3_CS1},
-
- {0, SW8_CS6, SW7_CS6, SW9_CS6},
- {0, SW8_CS5, SW7_CS5, SW9_CS5},
- {0, SW8_CS4, SW7_CS4, SW9_CS4},
- {0, SW8_CS3, SW7_CS3, SW9_CS3},
- {0, SW8_CS2, SW7_CS2, SW9_CS2},
- {0, SW8_CS1, SW7_CS1, SW9_CS1},
-
- {0, SW5_CS12, SW4_CS12, SW6_CS12},
- {0, SW5_CS11, SW4_CS11, SW6_CS11},
- {0, SW5_CS10, SW4_CS10, SW6_CS10},
- {0, SW5_CS9, SW4_CS9, SW6_CS9},
- {0, SW5_CS8, SW4_CS8, SW6_CS8},
- {0, SW5_CS7, SW4_CS7, SW6_CS7},
-
- {0, SW11_CS12, SW10_CS12, SW12_CS12},
- {0, SW11_CS11, SW10_CS11, SW12_CS11},
- {0, SW11_CS10, SW10_CS10, SW12_CS10},
- {0, SW11_CS9, SW10_CS9, SW12_CS9},
- {0, SW11_CS8, SW10_CS8, SW12_CS8},
- {0, SW11_CS7, SW10_CS7, SW12_CS7},
-
- {0, SW5_CS6, SW4_CS6, SW6_CS6},
- {0, SW5_CS5, SW4_CS5, SW6_CS5},
- {0, SW5_CS4, SW4_CS4, SW6_CS4},
- {0, SW5_CS3, SW4_CS3, SW6_CS3},
- {0, SW5_CS2, SW4_CS2, SW6_CS2},
- {0, SW5_CS1, SW4_CS1, SW6_CS1},
-
- {0, SW11_CS6, SW10_CS6, SW12_CS6},
- {0, SW11_CS5, SW10_CS5, SW12_CS5},
- {0, SW11_CS4, SW10_CS4, SW12_CS4},
- {0, SW11_CS3, SW10_CS3, SW12_CS3},
- {0, SW11_CS2, SW10_CS2, SW12_CS2},
-
-};
-
-led_config_t g_led_config = { {
- { 0, 1, 2, 3, 4, 5 },
- { 12, 13, 14, 15, 16, 17 },
- { 24, 25, 26, 27, 28, 29 },
- { 36, 37, 38, 45, 46, NO_LED },
- { 6, 7, 8, 9, 10, 11 },
- { 18, 19, 20, 21, 22, 23 },
- { 30, 31, 32, 33, 34, 35 },
- { 42, 43, 44, 39, 40, 41 }
-}, {
- { 0, 0 }, { 20, 0 }, { 40, 0 }, { 61, 0 }, { 81, 0 }, { 101, 0 }, { 122, 0 }, { 142, 0 }, { 162, 0 }, { 183, 0 }, { 203, 0 }, { 223, 0 },
- { 0, 21 }, { 20, 21 }, { 40, 21 }, { 61, 21 }, { 81, 21 }, { 101, 21 }, { 122, 21 }, { 142, 21 }, { 162, 21 }, { 183, 21 }, { 203, 21 }, { 223, 21 },
- { 0, 42 }, { 20, 42 }, { 40, 42 }, { 61, 42 }, { 81, 42 }, { 101, 42 }, { 122, 42 }, { 142, 42 }, { 162, 42 }, { 183, 42 }, { 203, 42 }, { 223, 42 },
- { 0, 63 }, { 20, 63 }, { 40, 63 }, { 61, 63 }, { 81, 63 }, { 111, 63 }, { 142, 63 }, { 162, 63 }, { 183, 63 }, { 203, 63 }, { 223, 63 }
-}, {
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1
-} };
-
-#endif
-
-/* Left B9 Right B8 */
-
-// See http://jared.geek.nz/2013/feb/linear-led-pwm
-static uint16_t cie_lightness(uint16_t v) {
- if (v <= 5243) // if below 8% of max
- return v / 9; // same as dividing by 900%
- else {
- uint32_t y = (((uint32_t) v + 10486) << 8) / (10486 + 0xFFFFUL); // add 16% of max and compare
- // to get a useful result with integer division, we shift left in the expression above
- // and revert what we've done again after squaring.
- y = y * y * y >> 8;
- if (y > 0xFFFFUL) // prevent overflow
- return 0xFFFFU;
- else
- return (uint16_t) y;
- }
-}
-
-static PWMConfig pwmCFG = {
- 0xFFFF,/* PWM clock frequency */
- 256,/* initial PWM period (in ticks) 1S (1/10kHz=0.1mS 0.1ms*10000 ticks=1S) */
- NULL,
- {
- {PWM_OUTPUT_DISABLED, NULL}, /* channel 0 -> TIM1-CH1 = PA8 */
- {PWM_OUTPUT_DISABLED, NULL}, /* channel 1 -> TIM1-CH2 = PA9 */
- {PWM_OUTPUT_ACTIVE_HIGH, NULL},
- {PWM_OUTPUT_ACTIVE_HIGH, NULL}
- },
- 0, /* HW dependent part.*/
- 0
-};
-
-static uint32_t planck_ez_right_led_duty;
-static uint32_t planck_ez_left_led_duty;
-
-void planck_ez_right_led_level(uint8_t level) {
- planck_ez_right_led_duty = (uint32_t)(cie_lightness(0xFFFF * (uint32_t) level / 255));
- if (level == 0) {
- // Turn backlight off
- pwmDisableChannel(&PWMD4, 2);
- } else {
- // Turn backlight on
- pwmEnableChannel(&PWMD4, 2, PWM_FRACTION_TO_WIDTH(&PWMD4,0xFFFF,planck_ez_right_led_duty));
- }
-}
-
-
-void planck_ez_right_led_on(void){
- pwmEnableChannel(&PWMD4, 2, PWM_FRACTION_TO_WIDTH(&PWMD4,0xFFFF,planck_ez_right_led_duty));
-}
-
-void planck_ez_right_led_off(void){
- pwmDisableChannel(&PWMD4, 2);
-}
-
-void planck_ez_left_led_level(uint8_t level) {
- planck_ez_left_led_duty = (uint32_t)(cie_lightness(0xFFFF * (uint32_t) level / 255));
- if (level == 0) {
- // Turn backlight off
- pwmDisableChannel(&PWMD4, 3);
- } else {
- // Turn backlight on
- pwmEnableChannel(&PWMD4, 3, PWM_FRACTION_TO_WIDTH(&PWMD4,0xFFFF,planck_ez_left_led_duty));
- }
-}
-
-void planck_ez_left_led_on(void){
- pwmEnableChannel(&PWMD4, 3, PWM_FRACTION_TO_WIDTH(&PWMD4,0xFFFF,planck_ez_left_led_duty));
-}
-
-void planck_ez_left_led_off(void){
- pwmDisableChannel(&PWMD4, 3);
-}
-
-
-void led_initialize_hardware(void) {
- pwmStart(&PWMD4, &pwmCFG);
-
- // set up defaults
- planck_ez_right_led_level((uint8_t)keyboard_config.led_level * 255 / 4 );
- palSetPadMode(GPIOB, 8, PAL_MODE_ALTERNATE(2));
- planck_ez_left_led_level((uint8_t)keyboard_config.led_level * 255 / 4 );
- palSetPadMode(GPIOB, 9, PAL_MODE_ALTERNATE(2));
-
-
- // turn LEDs off by default
- planck_ez_left_led_off();
- planck_ez_right_led_off();
-}
-
-void keyboard_pre_init_kb(void) {
- if (!eeconfig_is_enabled()) {
- eeconfig_init();
- }
- // read kb settings from eeprom
- keyboard_config.raw = eeconfig_read_kb();
-#if defined(RGB_MATRIX_ENABLE) && defined(ORYX_CONFIGURATOR)
- if (keyboard_config.rgb_matrix_enable) {
- rgb_matrix_set_flags(LED_FLAG_ALL);
- } else {
- rgb_matrix_set_flags(LED_FLAG_NONE);
- }
-#endif
- led_initialize_hardware();
- keyboard_pre_init_user();
-}
-
-#if defined(RGB_MATRIX_ENABLE) && defined(ORYX_CONFIGURATOR)
-void keyboard_post_init_kb(void) {
- rgb_matrix_enable_noeeprom();
- keyboard_post_init_user();
-}
-#endif
-
-void eeconfig_init_kb(void) { // EEPROM is getting reset!
- keyboard_config.raw = 0;
- keyboard_config.rgb_matrix_enable = true;
- keyboard_config.led_level = 4;
- eeconfig_update_kb(keyboard_config.raw);
- eeconfig_init_user();
-}
-
-
-#ifdef ORYX_CONFIGURATOR
-
-#ifndef PLANCK_EZ_USER_LEDS
-
-#ifndef PLANCK_EZ_LED_LOWER
-# define PLANCK_EZ_LED_LOWER 3
-#endif
-#ifndef PLANCK_EZ_LED_RAISE
-# define PLANCK_EZ_LED_RAISE 4
-#endif
-#ifndef PLANCK_EZ_LED_ADJUST
-# define PLANCK_EZ_LED_ADJUST 6
-#endif
-
-layer_state_t layer_state_set_kb(layer_state_t state) {
- planck_ez_left_led_off();
- planck_ez_right_led_off();
- state = layer_state_set_user(state);
- uint8_t layer = get_highest_layer(state);
- switch (layer) {
- case PLANCK_EZ_LED_LOWER:
- planck_ez_left_led_on();
- break;
- case PLANCK_EZ_LED_RAISE:
- planck_ez_right_led_on();
- break;
- case PLANCK_EZ_LED_ADJUST:
- planck_ez_right_led_on();
- planck_ez_left_led_on();
- break;
- default:
- break;
- }
- return state;
-}
-#endif
-
-bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case LED_LEVEL:
- if (record->event.pressed) {
- keyboard_config.led_level++;
- if (keyboard_config.led_level > 4) {
- keyboard_config.led_level = 0;
- }
- planck_ez_right_led_level((uint8_t)keyboard_config.led_level * 255 / 4 );
- planck_ez_left_led_level((uint8_t)keyboard_config.led_level * 255 / 4 );
- eeconfig_update_kb(keyboard_config.raw);
- layer_state_set_kb(layer_state);
- }
- break;
-#ifdef RGB_MATRIX_ENABLE
- case TOGGLE_LAYER_COLOR:
- if (record->event.pressed) {
- keyboard_config.disable_layer_led ^= 1;
- if (keyboard_config.disable_layer_led)
- rgb_matrix_set_color_all(0, 0, 0);
- eeconfig_update_kb(keyboard_config.raw);
- }
- break;
- case RGB_TOG:
- if (record->event.pressed) {
- switch (rgb_matrix_get_flags()) {
- case LED_FLAG_ALL: {
- rgb_matrix_set_flags(LED_FLAG_NONE);
- keyboard_config.rgb_matrix_enable = false;
- rgb_matrix_set_color_all(0, 0, 0);
- }
- break;
- default: {
- rgb_matrix_set_flags(LED_FLAG_ALL);
- keyboard_config.rgb_matrix_enable = true;
- }
- break;
- }
- eeconfig_update_kb(keyboard_config.raw);
- }
- return false;
-#endif
- }
- return process_record_user(keycode, record);
-}
-#endif
-
-#ifdef AUDIO_ENABLE
-bool music_mask_kb(uint16_t keycode) {
- switch (keycode) {
- case QK_LAYER_TAP ... QK_LAYER_TAP_MAX:
- case QK_TO ... QK_TO_MAX:
- case QK_MOMENTARY ... QK_MOMENTARY_MAX:
- case QK_DEF_LAYER ... QK_DEF_LAYER_MAX:
- case QK_TOGGLE_LAYER ... QK_TOGGLE_LAYER_MAX:
- case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_LAYER_MAX:
- case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX:
- case QK_LAYER_MOD ... QK_LAYER_MOD_MAX:
- case QK_ONE_SHOT_MOD ... QK_ONE_SHOT_MOD_MAX:
- case QK_MOD_TAP ... QK_MOD_TAP_MAX:
- case AU_ON ... AU_PREV:
- case QK_BOOT:
- case QK_CLEAR_EEPROM:
- return false;
- default:
- return music_mask_user(keycode);
- }
-}
-#endif
-
-#ifdef SWAP_HANDS_ENABLE
-__attribute__ ((weak))
-const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
- {{5, 4}, {4, 4}, {3, 4}, {2, 4}, {1, 4}, {0, 4}},
- {{5, 5}, {4, 5}, {3, 5}, {2, 5}, {1, 5}, {0, 5}},
- {{5, 6}, {4, 6}, {3, 6}, {2, 6}, {1, 6}, {0, 6}},
- {{5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}},
-
- {{5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}},
- {{5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}},
- {{5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}},
- {{5, 7}, {4, 7}, {3, 7}, {2, 7}, {1, 7}, {0, 7}},
-};
-
-# ifdef ENCODER_MAP_ENABLE
-const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {0};
-# endif
-#endif
-
-const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = {
- {36, 37, 38, 39, 40, 41},
- {24, 25, 26, 27, 28, 29},
- {12, 13, 14, 15, 16, 17},
- { 0, 1, 2, 10, 11, 6},
- {42, 43, 44, 45, 46, 47},
- {30, 31, 32, 33, 34, 35},
- {18, 19, 20, 21, 22, 23},
- { 7, 8, 9, 3, 4, 5}
-};
diff --git a/keyboards/planck/ez/ez.h b/keyboards/planck/ez/ez.h
deleted file mode 100644
index 695b14d9ad..0000000000
--- a/keyboards/planck/ez/ez.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright 2018 Jack Humbert
- * Copyright 2015 ZSA Technology Labs Inc (@zsa)
- * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna)
- *
- * This program is free software: you can 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 planck_ez_right_led_on(void);
-void planck_ez_right_led_off(void);
-void planck_ez_right_led_level(uint8_t level);
-void planck_ez_left_led_on(void);
-void planck_ez_left_led_off(void);
-void planck_ez_left_led_level(uint8_t level);
-
-enum planck_ez_keycodes {
- LED_LEVEL = QK_KB_0,
- TOGGLE_LAYER_COLOR,
-};
-
-#ifndef WEBUSB_ENABLE
-# define WEBUSB_PAIR KC_NO
-#endif
-
-typedef union {
- uint32_t raw;
- struct {
- uint8_t led_level :3;
- bool disable_layer_led :1;
- bool rgb_matrix_enable :1;
- };
-} keyboard_config_t;
-
-extern keyboard_config_t keyboard_config;
diff --git a/keyboards/planck/ez/glow/keyboard.json b/keyboards/planck/ez/glow/keyboard.json
deleted file mode 100644
index 6c957b165b..0000000000
--- a/keyboards/planck/ez/glow/keyboard.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "keyboard_name": "Planck EZ Glow",
- "usb": {
- "pid": "0xC6CF"
- },
- "features": {
- "rgb_matrix": true
- }
-}
diff --git a/keyboards/planck/ez/halconf.h b/keyboards/planck/ez/halconf.h
deleted file mode 100644
index f1044867f7..0000000000
--- a/keyboards/planck/ez/halconf.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2021 QMK
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-#pragma once
-
-#define HAL_USE_I2C TRUE
-#define HAL_USE_GPT TRUE
-#define HAL_USE_DAC TRUE
-#define HAL_USE_PWM TRUE
-
-#include_next
diff --git a/keyboards/planck/ez/info.json b/keyboards/planck/ez/info.json
deleted file mode 100644
index f7b2a8f8a1..0000000000
--- a/keyboards/planck/ez/info.json
+++ /dev/null
@@ -1,207 +0,0 @@
-{
- "manufacturer": "ZSA Technology Labs",
- "url": "https://ergodox-ez.com/pages/planck",
- "maintainer": "jackhumbert",
- "usb": {
- "vid": "0x3297",
- "device_version": "0.0.1",
- "shared_endpoint": {
- "mouse": false
- }
- },
- "features": {
- "audio": true,
- "bootmagic": true,
- "command": true,
- "console": true,
- "encoder": true,
- "extrakey": true,
- "mousekey": true,
- "nkro": true
- },
- "rgb_matrix": {
- "animations": {
- "alphas_mods": true,
- "gradient_up_down": true,
- "gradient_left_right": true,
- "breathing": true,
- "band_sat": true,
- "band_val": true,
- "band_pinwheel_sat": true,
- "band_pinwheel_val": true,
- "band_spiral_sat": true,
- "band_spiral_val": true,
- "cycle_all": true,
- "cycle_left_right": true,
- "cycle_up_down": true,
- "rainbow_moving_chevron": true,
- "cycle_out_in": true,
- "cycle_out_in_dual": true,
- "cycle_pinwheel": true,
- "cycle_spiral": true,
- "dual_beacon": true,
- "rainbow_beacon": true,
- "rainbow_pinwheels": true,
- "raindrops": true,
- "jellybean_raindrops": true,
- "hue_breathing": true,
- "hue_pendulum": true,
- "hue_wave": true,
- "pixel_rain": true,
- "pixel_flow": true,
- "pixel_fractal": true,
- "typing_heatmap": true,
- "digital_rain": true,
- "solid_reactive_simple": true,
- "solid_reactive": true,
- "solid_reactive_wide": true,
- "solid_reactive_multiwide": true,
- "solid_reactive_cross": true,
- "solid_reactive_multicross": true,
- "solid_reactive_nexus": true,
- "solid_reactive_multinexus": true,
- "splash": true,
- "multisplash": true,
- "solid_splash": true,
- "solid_multisplash": true
- },
- "driver": "is31fl3737",
- "led_process_limit": 5,
- "led_flush_limit": 26,
- "sleep": true
- },
- "matrix_pins": {
- "cols": ["B11", "B10", "B2", "B1", "A7", "B0"],
- "rows": ["A10", "A9", "A8", "B15", "C13", "C14", "C15", "A2"]
- },
- "diode_direction": "COL2ROW",
- "audio": {
- "driver": "dac_additive"
- },
- "encoder": {
- "rotary": [
- {"pin_a": "B12", "pin_b": "B13"}
- ]
- },
- "processor": "STM32F303",
- "bootloader": "stm32-dfu",
- "tapping": {
- "toggle": 1
- },
- "community_layouts": ["ortho_4x12", "planck_mit"],
- "layout_aliases": {
- "LAYOUT_planck_grid": "LAYOUT_ortho_4x12",
- "LAYOUT_planck_mit": "LAYOUT_planck_1x2uC"
- },
- "layouts": {
- "LAYOUT_planck_1x2uC": {
- "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": [4, 0], "x": 6, "y": 0},
- {"matrix": [4, 1], "x": 7, "y": 0},
- {"matrix": [4, 2], "x": 8, "y": 0},
- {"matrix": [4, 3], "x": 9, "y": 0},
- {"matrix": [4, 4], "x": 10, "y": 0},
- {"matrix": [4, 5], "x": 11, "y": 0},
-
- {"matrix": [1, 0], "x": 0, "y": 1},
- {"matrix": [1, 1], "x": 1, "y": 1},
- {"matrix": [1, 2], "x": 2, "y": 1},
- {"matrix": [1, 3], "x": 3, "y": 1},
- {"matrix": [1, 4], "x": 4, "y": 1},
- {"matrix": [1, 5], "x": 5, "y": 1},
- {"matrix": [5, 0], "x": 6, "y": 1},
- {"matrix": [5, 1], "x": 7, "y": 1},
- {"matrix": [5, 2], "x": 8, "y": 1},
- {"matrix": [5, 3], "x": 9, "y": 1},
- {"matrix": [5, 4], "x": 10, "y": 1},
- {"matrix": [5, 5], "x": 11, "y": 1},
-
- {"matrix": [2, 0], "x": 0, "y": 2},
- {"matrix": [2, 1], "x": 1, "y": 2},
- {"matrix": [2, 2], "x": 2, "y": 2},
- {"matrix": [2, 3], "x": 3, "y": 2},
- {"matrix": [2, 4], "x": 4, "y": 2},
- {"matrix": [2, 5], "x": 5, "y": 2},
- {"matrix": [6, 0], "x": 6, "y": 2},
- {"matrix": [6, 1], "x": 7, "y": 2},
- {"matrix": [6, 2], "x": 8, "y": 2},
- {"matrix": [6, 3], "x": 9, "y": 2},
- {"matrix": [6, 4], "x": 10, "y": 2},
- {"matrix": [6, 5], "x": 11, "y": 2},
-
- {"matrix": [3, 0], "x": 0, "y": 3},
- {"matrix": [3, 1], "x": 1, "y": 3},
- {"matrix": [3, 2], "x": 2, "y": 3},
- {"matrix": [7, 3], "x": 3, "y": 3},
- {"matrix": [7, 4], "x": 4, "y": 3},
- {"matrix": [7, 5], "x": 5, "y": 3, "w": 2},
- {"matrix": [7, 0], "x": 7, "y": 3},
- {"matrix": [7, 1], "x": 8, "y": 3},
- {"matrix": [7, 2], "x": 9, "y": 3},
- {"matrix": [3, 3], "x": 10, "y": 3},
- {"matrix": [3, 4], "x": 11, "y": 3}
- ]
- },
- "LAYOUT_ortho_4x12": {
- "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": [4, 0], "x": 6, "y": 0},
- {"matrix": [4, 1], "x": 7, "y": 0},
- {"matrix": [4, 2], "x": 8, "y": 0},
- {"matrix": [4, 3], "x": 9, "y": 0},
- {"matrix": [4, 4], "x": 10, "y": 0},
- {"matrix": [4, 5], "x": 11, "y": 0},
-
- {"matrix": [1, 0], "x": 0, "y": 1},
- {"matrix": [1, 1], "x": 1, "y": 1},
- {"matrix": [1, 2], "x": 2, "y": 1},
- {"matrix": [1, 3], "x": 3, "y": 1},
- {"matrix": [1, 4], "x": 4, "y": 1},
- {"matrix": [1, 5], "x": 5, "y": 1},
- {"matrix": [5, 0], "x": 6, "y": 1},
- {"matrix": [5, 1], "x": 7, "y": 1},
- {"matrix": [5, 2], "x": 8, "y": 1},
- {"matrix": [5, 3], "x": 9, "y": 1},
- {"matrix": [5, 4], "x": 10, "y": 1},
- {"matrix": [5, 5], "x": 11, "y": 1},
-
- {"matrix": [2, 0], "x": 0, "y": 2},
- {"matrix": [2, 1], "x": 1, "y": 2},
- {"matrix": [2, 2], "x": 2, "y": 2},
- {"matrix": [2, 3], "x": 3, "y": 2},
- {"matrix": [2, 4], "x": 4, "y": 2},
- {"matrix": [2, 5], "x": 5, "y": 2},
- {"matrix": [6, 0], "x": 6, "y": 2},
- {"matrix": [6, 1], "x": 7, "y": 2},
- {"matrix": [6, 2], "x": 8, "y": 2},
- {"matrix": [6, 3], "x": 9, "y": 2},
- {"matrix": [6, 4], "x": 10, "y": 2},
- {"matrix": [6, 5], "x": 11, "y": 2},
-
- {"matrix": [3, 0], "x": 0, "y": 3},
- {"matrix": [3, 1], "x": 1, "y": 3},
- {"matrix": [3, 2], "x": 2, "y": 3},
- {"matrix": [7, 3], "x": 3, "y": 3},
- {"matrix": [7, 4], "x": 4, "y": 3},
- {"matrix": [7, 5], "x": 5, "y": 3},
- {"matrix": [3, 5], "x": 6, "y": 3},
- {"matrix": [7, 0], "x": 7, "y": 3},
- {"matrix": [7, 1], "x": 8, "y": 3},
- {"matrix": [7, 2], "x": 9, "y": 3},
- {"matrix": [3, 3], "x": 10, "y": 3},
- {"matrix": [3, 4], "x": 11, "y": 3}
- ]
- }
- }
-}
diff --git a/keyboards/planck/ez/mcuconf.h b/keyboards/planck/ez/mcuconf.h
deleted file mode 100644
index 7475b0990c..0000000000
--- a/keyboards/planck/ez/mcuconf.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright 2021 QMK
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#pragma once
-
-#include_next
-
-// for i2c expander, and ISSI
-#undef STM32_I2C_USE_I2C1
-#define STM32_I2C_USE_I2C1 TRUE
-
-// for indicator LEDs
-#undef STM32_PWM_USE_TIM3
-#define STM32_PWM_USE_TIM3 TRUE
-#undef STM32_PWM_USE_TIM4
-#define STM32_PWM_USE_TIM4 TRUE
-
-// for audio
-#undef STM32_DAC_USE_DAC1_CH1
-#define STM32_DAC_USE_DAC1_CH1 TRUE
-#undef STM32_DAC_USE_DAC1_CH2
-#define STM32_DAC_USE_DAC1_CH2 TRUE
-#undef STM32_GPT_USE_TIM6
-#define STM32_GPT_USE_TIM6 TRUE
-#undef STM32_GPT_USE_TIM7
-#define STM32_GPT_USE_TIM7 TRUE
-#undef STM32_GPT_USE_TIM8
-#define STM32_GPT_USE_TIM8 TRUE
diff --git a/keyboards/planck/ez/readme.md b/keyboards/planck/ez/readme.md
deleted file mode 100644
index f85ab59693..0000000000
--- a/keyboards/planck/ez/readme.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# Planck EZ
-
-
-
-A variant of the Planck featuring a 2u spacebar and per-key RGB backlighting.
-
-Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert), [Drashna Jael're](https://github.com/drashna)
-Hardware Supported: Planck EZ
-Hardware Availability: [ZSA](https://www.zsa.io/planck/)
-
-Make example for this keyboard (after setting up your build environment):
-
- make planck/ez:oryx
-
-For the per key RGB version of this keyboard, you want to use the "glow" subdirectory. For example:
-
- make planck/ez/glow:oryx
-
-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).
-
-## Planck EZ Configuration (from Oryx)
-
-To enable the features from Oryx (ZSA's Configurator), either compile the the `oryx` keymap, or add `#define ORYX_CONFIGURATOR` to your `config.h` file.
-
-This enables the front Indicator LEDs, and the `TOGGLE_LAYER_COLOR`, and `LED_LEVEL` keycodes. The `TOGGLE_LAYER_COLOR` keycode toggles the customized LED map configured on Oryx. The `LED_LEVEL` cycles through the brightness levels for the front "teeth" LEDs.
-
-### Indicator LEDs
-
-The two front "teeth" LED indicators are PWM controlled. If you have `ORYX_CONFIGURATOR` defined in your keymap's `config.h`, you can use the `LED_LEVEL` to cycle through preset vales (0, 25%, 50%, 75%, 100%), and will be saved to EEPROM (persistent storage)
-
-Alternatively, you can set the brightness by calling the following functions:
-
-```c
-void planck_ez_right_led_level(uint8_t level);
-void planck_ez_left_led_level(uint8_t level);
-```
-
-These settings are not persistent, so you'd need to reset it every time the board starts.
-
-These are on a 0-255 scale
-
-#### Layer indication
-
-By default, the indicator lights are used for layer indication, expecting the specific layers used in the default keymap. However, this may not work for you. And if that is the case, you can add `#define PLANCK_EZ_USER_LEDS` to your `config.h` file.
-
-This will remove the default behavior for changing the LEDs based on layer, and allow you to control them manually.
-
-Alternatively, you can use the following defines in your keymap's `config.h` to control which layers are used, as long as you have `ORYX_CONFIGURATOR` defined in your keymap's `config.h` file, as well.
-
-```c
-#define PLANCK_EZ_LED_LOWER 3
-#define PLANCK_EZ_LED_RAISE 4
-#define PLANCK_EZ_LED_ADJUST 6
-```
-
-This will allow you to change the layers that are used, without having to add anything code to your `keymap.c`
-
-### RGB Matrix Features
-
-If you're using the Smart LED (layer indication) feature from the Oryx Configurator, you want to make sure that you enable these options by adding `#define ORYX_CONFIGURATOR` to your keymap's `config.h`.
-
-This changes the `RGB_TOG` keycode so that it will toggle the lights on and off, in a way that will allow the Smart LEDs to continue to work, even with the rest of the LEDs turned off.
-
-Additionally, a new keycode has been added to toggle the Smart LEDs. Use `TOGGLE_LAYER_COLOR`, if you aren't already.
diff --git a/keyboards/planck/ez/rules.mk b/keyboards/planck/ez/rules.mk
deleted file mode 100644
index ef20f95b65..0000000000
--- a/keyboards/planck/ez/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-RGBLIGHT_SUPPORTED = no
-BAKCLIGHT_SUPPORTED = no
-
-DEFAULT_FOLDER = planck/ez/base
diff --git a/keyboards/zsa/planck_ez/base/keyboard.json b/keyboards/zsa/planck_ez/base/keyboard.json
new file mode 100644
index 0000000000..07167a8c2a
--- /dev/null
+++ b/keyboards/zsa/planck_ez/base/keyboard.json
@@ -0,0 +1,6 @@
+{
+ "keyboard_name": "Planck EZ",
+ "usb": {
+ "pid": "0xC6CE"
+ }
+}
diff --git a/keyboards/zsa/planck_ez/config.h b/keyboards/zsa/planck_ez/config.h
new file mode 100644
index 0000000000..1145df9ef9
--- /dev/null
+++ b/keyboards/zsa/planck_ez/config.h
@@ -0,0 +1,26 @@
+/* Copyright 2018 Jack Humbert
+ * Copyright 2015 ZSA Technology Labs Inc (@zsa)
+ * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna)
+ *
+ * This program is free software: you can 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 MUSIC_MAP
+#define AUDIO_PIN A5
+#define AUDIO_PIN_ALT A4
+#define AUDIO_PIN_ALT_AS_NEGATIVE
+
+#define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND
diff --git a/keyboards/zsa/planck_ez/glow/glow.c b/keyboards/zsa/planck_ez/glow/glow.c
new file mode 100644
index 0000000000..2c11c2351e
--- /dev/null
+++ b/keyboards/zsa/planck_ez/glow/glow.c
@@ -0,0 +1,75 @@
+/* Copyright 2018 Jack Humbert
+ * Copyright 2015 ZSA Technology Labs Inc (@zsa)
+ * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna)
+ *
+ * This program is free software: you can 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 "planck_ez.h"
+
+const is31fl3737_led_t PROGMEM g_is31fl3737_leds[IS31FL3737_LED_COUNT] = {
+ {0, SW2_CS12, SW1_CS12, SW3_CS12},
+ {0, SW2_CS11, SW1_CS11, SW3_CS11},
+ {0, SW2_CS10, SW1_CS10, SW3_CS10},
+ {0, SW2_CS9, SW1_CS9, SW3_CS9},
+ {0, SW2_CS8, SW1_CS8, SW3_CS8},
+ {0, SW2_CS7, SW1_CS7, SW3_CS7},
+
+ {0, SW8_CS12, SW7_CS12, SW9_CS12},
+ {0, SW8_CS11, SW7_CS11, SW9_CS11},
+ {0, SW8_CS10, SW7_CS10, SW9_CS10},
+ {0, SW8_CS9, SW7_CS9, SW9_CS9},
+ {0, SW8_CS8, SW7_CS8, SW9_CS8},
+ {0, SW8_CS7, SW7_CS7, SW9_CS7},
+
+ {0, SW2_CS6, SW1_CS6, SW3_CS6},
+ {0, SW2_CS5, SW1_CS5, SW3_CS5},
+ {0, SW2_CS4, SW1_CS4, SW3_CS4},
+ {0, SW2_CS3, SW1_CS3, SW3_CS3},
+ {0, SW2_CS2, SW1_CS2, SW3_CS2},
+ {0, SW2_CS1, SW1_CS1, SW3_CS1},
+
+ {0, SW8_CS6, SW7_CS6, SW9_CS6},
+ {0, SW8_CS5, SW7_CS5, SW9_CS5},
+ {0, SW8_CS4, SW7_CS4, SW9_CS4},
+ {0, SW8_CS3, SW7_CS3, SW9_CS3},
+ {0, SW8_CS2, SW7_CS2, SW9_CS2},
+ {0, SW8_CS1, SW7_CS1, SW9_CS1},
+
+ {0, SW5_CS12, SW4_CS12, SW6_CS12},
+ {0, SW5_CS11, SW4_CS11, SW6_CS11},
+ {0, SW5_CS10, SW4_CS10, SW6_CS10},
+ {0, SW5_CS9, SW4_CS9, SW6_CS9},
+ {0, SW5_CS8, SW4_CS8, SW6_CS8},
+ {0, SW5_CS7, SW4_CS7, SW6_CS7},
+
+ {0, SW11_CS12, SW10_CS12, SW12_CS12},
+ {0, SW11_CS11, SW10_CS11, SW12_CS11},
+ {0, SW11_CS10, SW10_CS10, SW12_CS10},
+ {0, SW11_CS9, SW10_CS9, SW12_CS9},
+ {0, SW11_CS8, SW10_CS8, SW12_CS8},
+ {0, SW11_CS7, SW10_CS7, SW12_CS7},
+
+ {0, SW5_CS6, SW4_CS6, SW6_CS6},
+ {0, SW5_CS5, SW4_CS5, SW6_CS5},
+ {0, SW5_CS4, SW4_CS4, SW6_CS4},
+ {0, SW5_CS3, SW4_CS3, SW6_CS3},
+ {0, SW5_CS2, SW4_CS2, SW6_CS2},
+ {0, SW5_CS1, SW4_CS1, SW6_CS1},
+
+ {0, SW11_CS6, SW10_CS6, SW12_CS6},
+ {0, SW11_CS5, SW10_CS5, SW12_CS5},
+ {0, SW11_CS4, SW10_CS4, SW12_CS4},
+ {0, SW11_CS3, SW10_CS3, SW12_CS3},
+ {0, SW11_CS2, SW10_CS2, SW12_CS2},
+};
diff --git a/keyboards/zsa/planck_ez/glow/keyboard.json b/keyboards/zsa/planck_ez/glow/keyboard.json
new file mode 100644
index 0000000000..fa83190a79
--- /dev/null
+++ b/keyboards/zsa/planck_ez/glow/keyboard.json
@@ -0,0 +1,109 @@
+{
+ "keyboard_name": "Planck EZ Glow",
+ "usb": {
+ "pid": "0xC6CF"
+ },
+ "features": {
+ "rgb_matrix": true
+ },
+ "rgb_matrix": {
+ "animations": {
+ "alphas_mods": true,
+ "gradient_up_down": true,
+ "gradient_left_right": true,
+ "breathing": true,
+ "band_sat": true,
+ "band_val": true,
+ "band_pinwheel_sat": true,
+ "band_pinwheel_val": true,
+ "band_spiral_sat": true,
+ "band_spiral_val": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_up_down": true,
+ "rainbow_moving_chevron": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "dual_beacon": true,
+ "rainbow_beacon": true,
+ "rainbow_pinwheels": true,
+ "raindrops": true,
+ "jellybean_raindrops": true,
+ "hue_breathing": true,
+ "hue_pendulum": true,
+ "hue_wave": true,
+ "pixel_rain": true,
+ "pixel_flow": true,
+ "pixel_fractal": true,
+ "typing_heatmap": true,
+ "digital_rain": true,
+ "solid_reactive_simple": true,
+ "solid_reactive": true,
+ "solid_reactive_wide": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_cross": true,
+ "solid_reactive_multicross": true,
+ "solid_reactive_nexus": true,
+ "solid_reactive_multinexus": true,
+ "splash": true,
+ "multisplash": true,
+ "solid_splash": true,
+ "solid_multisplash": true
+ },
+ "driver": "is31fl3737",
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+ {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4},
+ {"matrix": [0, 2], "x": 40, "y": 0, "flags": 4},
+ {"matrix": [0, 3], "x": 61, "y": 0, "flags": 4},
+ {"matrix": [0, 4], "x": 81, "y": 0, "flags": 4},
+ {"matrix": [0, 5], "x": 101, "y": 0, "flags": 4},
+ {"matrix": [4, 0], "x": 122, "y": 0, "flags": 4},
+ {"matrix": [4, 1], "x": 142, "y": 0, "flags": 4},
+ {"matrix": [4, 2], "x": 162, "y": 0, "flags": 4},
+ {"matrix": [4, 3], "x": 183, "y": 0, "flags": 4},
+ {"matrix": [4, 4], "x": 203, "y": 0, "flags": 4},
+ {"matrix": [4, 5], "x": 223, "y": 0, "flags": 1},
+ {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1},
+ {"matrix": [1, 1], "x": 20, "y": 21, "flags": 4},
+ {"matrix": [1, 2], "x": 40, "y": 21, "flags": 4},
+ {"matrix": [1, 3], "x": 61, "y": 21, "flags": 4},
+ {"matrix": [1, 4], "x": 81, "y": 21, "flags": 4},
+ {"matrix": [1, 5], "x": 101, "y": 21, "flags": 4},
+ {"matrix": [5, 0], "x": 122, "y": 21, "flags": 4},
+ {"matrix": [5, 1], "x": 142, "y": 21, "flags": 4},
+ {"matrix": [5, 2], "x": 162, "y": 21, "flags": 4},
+ {"matrix": [5, 3], "x": 183, "y": 21, "flags": 4},
+ {"matrix": [5, 4], "x": 203, "y": 21, "flags": 4},
+ {"matrix": [5, 5], "x": 223, "y": 21, "flags": 1},
+ {"matrix": [2, 0], "x": 0, "y": 42, "flags": 1},
+ {"matrix": [2, 1], "x": 20, "y": 42, "flags": 4},
+ {"matrix": [2, 2], "x": 40, "y": 42, "flags": 4},
+ {"matrix": [2, 3], "x": 61, "y": 42, "flags": 4},
+ {"matrix": [2, 4], "x": 81, "y": 42, "flags": 4},
+ {"matrix": [2, 5], "x": 101, "y": 42, "flags": 4},
+ {"matrix": [6, 0], "x": 122, "y": 42, "flags": 4},
+ {"matrix": [6, 1], "x": 142, "y": 42, "flags": 4},
+ {"matrix": [6, 2], "x": 162, "y": 42, "flags": 4},
+ {"matrix": [6, 3], "x": 183, "y": 42, "flags": 4},
+ {"matrix": [6, 4], "x": 203, "y": 42, "flags": 4},
+ {"matrix": [6, 5], "x": 223, "y": 42, "flags": 1},
+ {"matrix": [3, 0], "x": 0, "y": 63, "flags": 1},
+ {"matrix": [3, 1], "x": 20, "y": 63, "flags": 1},
+ {"matrix": [3, 2], "x": 40, "y": 63, "flags": 1},
+ {"matrix": [7, 3], "x": 61, "y": 63, "flags": 1},
+ {"matrix": [7, 4], "x": 81, "y": 63, "flags": 1},
+ {"matrix": [7, 5], "x": 111, "y": 63, "flags": 4},
+ {"matrix": [7, 0], "x": 142, "y": 63, "flags": 1},
+ {"matrix": [7, 1], "x": 162, "y": 63, "flags": 1},
+ {"matrix": [7, 2], "x": 183, "y": 63, "flags": 1},
+ {"matrix": [3, 3], "x": 203, "y": 63, "flags": 1},
+ {"matrix": [3, 4], "x": 223, "y": 63, "flags": 1}
+ ],
+ "led_flush_limit": 26,
+ "led_process_limit": 5,
+ "sleep": true
+ }
+}
diff --git a/keyboards/zsa/planck_ez/halconf.h b/keyboards/zsa/planck_ez/halconf.h
new file mode 100644
index 0000000000..f1044867f7
--- /dev/null
+++ b/keyboards/zsa/planck_ez/halconf.h
@@ -0,0 +1,23 @@
+/* Copyright 2021 QMK
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#pragma once
+
+#define HAL_USE_I2C TRUE
+#define HAL_USE_GPT TRUE
+#define HAL_USE_DAC TRUE
+#define HAL_USE_PWM TRUE
+
+#include_next
diff --git a/keyboards/zsa/planck_ez/info.json b/keyboards/zsa/planck_ez/info.json
new file mode 100644
index 0000000000..eda13449b5
--- /dev/null
+++ b/keyboards/zsa/planck_ez/info.json
@@ -0,0 +1,157 @@
+{
+ "manufacturer": "ZSA Technology Labs",
+ "maintainer": "drashna",
+ "audio": {
+ "driver": "dac_additive"
+ },
+ "bootloader": "stm32-dfu",
+ "diode_direction": "COL2ROW",
+ "encoder": {
+ "rotary": [
+ {"pin_a": "B12", "pin_b": "B13"}
+ ]
+ },
+ "features": {
+ "audio": true,
+ "bootmagic": true,
+ "command": true,
+ "console": true,
+ "encoder": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true
+ },
+ "matrix_pins": {
+ "cols": ["B11", "B10", "B2", "B1", "A7", "B0"],
+ "rows": ["A10", "A9", "A8", "B15", "C13", "C14", "C15", "A2"]
+ },
+ "mousekey": {
+ "delay": 0,
+ "interval": 20,
+ "max_speed": 7,
+ "time_to_max": 60,
+ "wheel_delay": 400
+ },
+ "processor": "STM32F303",
+ "tapping": {
+ "toggle": 1
+ },
+ "url": "https://blog.zsa.io/2307-goodbye-planck-ez/",
+ "usb": {
+ "device_version": "0.0.1",
+ "shared_endpoint": {
+ "mouse": false
+ },
+ "vid": "0x3297"
+ },
+ "community_layouts": ["ortho_4x12", "planck_mit"],
+ "layout_aliases": {
+ "LAYOUT_planck_grid": "LAYOUT_ortho_4x12",
+ "LAYOUT_planck_mit": "LAYOUT_planck_1x2uC"
+ },
+ "layouts": {
+ "LAYOUT_ortho_4x12": {
+ "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": [4, 0], "x": 6, "y": 0},
+ {"matrix": [4, 1], "x": 7, "y": 0},
+ {"matrix": [4, 2], "x": 8, "y": 0},
+ {"matrix": [4, 3], "x": 9, "y": 0},
+ {"matrix": [4, 4], "x": 10, "y": 0},
+ {"matrix": [4, 5], "x": 11, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1},
+ {"matrix": [1, 1], "x": 1, "y": 1},
+ {"matrix": [1, 2], "x": 2, "y": 1},
+ {"matrix": [1, 3], "x": 3, "y": 1},
+ {"matrix": [1, 4], "x": 4, "y": 1},
+ {"matrix": [1, 5], "x": 5, "y": 1},
+ {"matrix": [5, 0], "x": 6, "y": 1},
+ {"matrix": [5, 1], "x": 7, "y": 1},
+ {"matrix": [5, 2], "x": 8, "y": 1},
+ {"matrix": [5, 3], "x": 9, "y": 1},
+ {"matrix": [5, 4], "x": 10, "y": 1},
+ {"matrix": [5, 5], "x": 11, "y": 1},
+ {"matrix": [2, 0], "x": 0, "y": 2},
+ {"matrix": [2, 1], "x": 1, "y": 2},
+ {"matrix": [2, 2], "x": 2, "y": 2},
+ {"matrix": [2, 3], "x": 3, "y": 2},
+ {"matrix": [2, 4], "x": 4, "y": 2},
+ {"matrix": [2, 5], "x": 5, "y": 2},
+ {"matrix": [6, 0], "x": 6, "y": 2},
+ {"matrix": [6, 1], "x": 7, "y": 2},
+ {"matrix": [6, 2], "x": 8, "y": 2},
+ {"matrix": [6, 3], "x": 9, "y": 2},
+ {"matrix": [6, 4], "x": 10, "y": 2},
+ {"matrix": [6, 5], "x": 11, "y": 2},
+ {"matrix": [3, 0], "x": 0, "y": 3},
+ {"matrix": [3, 1], "x": 1, "y": 3},
+ {"matrix": [3, 2], "x": 2, "y": 3},
+ {"matrix": [7, 3], "x": 3, "y": 3},
+ {"matrix": [7, 4], "x": 4, "y": 3},
+ {"matrix": [7, 5], "x": 5, "y": 3},
+ {"matrix": [3, 5], "x": 6, "y": 3},
+ {"matrix": [7, 0], "x": 7, "y": 3},
+ {"matrix": [7, 1], "x": 8, "y": 3},
+ {"matrix": [7, 2], "x": 9, "y": 3},
+ {"matrix": [3, 3], "x": 10, "y": 3},
+ {"matrix": [3, 4], "x": 11, "y": 3}
+ ]
+ },
+ "LAYOUT_planck_1x2uC": {
+ "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": [4, 0], "x": 6, "y": 0},
+ {"matrix": [4, 1], "x": 7, "y": 0},
+ {"matrix": [4, 2], "x": 8, "y": 0},
+ {"matrix": [4, 3], "x": 9, "y": 0},
+ {"matrix": [4, 4], "x": 10, "y": 0},
+ {"matrix": [4, 5], "x": 11, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1},
+ {"matrix": [1, 1], "x": 1, "y": 1},
+ {"matrix": [1, 2], "x": 2, "y": 1},
+ {"matrix": [1, 3], "x": 3, "y": 1},
+ {"matrix": [1, 4], "x": 4, "y": 1},
+ {"matrix": [1, 5], "x": 5, "y": 1},
+ {"matrix": [5, 0], "x": 6, "y": 1},
+ {"matrix": [5, 1], "x": 7, "y": 1},
+ {"matrix": [5, 2], "x": 8, "y": 1},
+ {"matrix": [5, 3], "x": 9, "y": 1},
+ {"matrix": [5, 4], "x": 10, "y": 1},
+ {"matrix": [5, 5], "x": 11, "y": 1},
+ {"matrix": [2, 0], "x": 0, "y": 2},
+ {"matrix": [2, 1], "x": 1, "y": 2},
+ {"matrix": [2, 2], "x": 2, "y": 2},
+ {"matrix": [2, 3], "x": 3, "y": 2},
+ {"matrix": [2, 4], "x": 4, "y": 2},
+ {"matrix": [2, 5], "x": 5, "y": 2},
+ {"matrix": [6, 0], "x": 6, "y": 2},
+ {"matrix": [6, 1], "x": 7, "y": 2},
+ {"matrix": [6, 2], "x": 8, "y": 2},
+ {"matrix": [6, 3], "x": 9, "y": 2},
+ {"matrix": [6, 4], "x": 10, "y": 2},
+ {"matrix": [6, 5], "x": 11, "y": 2},
+ {"matrix": [3, 0], "x": 0, "y": 3},
+ {"matrix": [3, 1], "x": 1, "y": 3},
+ {"matrix": [3, 2], "x": 2, "y": 3},
+ {"matrix": [7, 3], "x": 3, "y": 3},
+ {"matrix": [7, 4], "x": 4, "y": 3},
+ {"matrix": [7, 5], "x": 5, "y": 3, "w": 2},
+ {"matrix": [7, 0], "x": 7, "y": 3},
+ {"matrix": [7, 1], "x": 8, "y": 3},
+ {"matrix": [7, 2], "x": 9, "y": 3},
+ {"matrix": [3, 3], "x": 10, "y": 3},
+ {"matrix": [3, 4], "x": 11, "y": 3}
+ ]
+ }
+ }
+}
diff --git a/keyboards/zsa/planck_ez/keymaps/default/keymap.json b/keyboards/zsa/planck_ez/keymaps/default/keymap.json
new file mode 100644
index 0000000000..4b27cc2970
--- /dev/null
+++ b/keyboards/zsa/planck_ez/keymaps/default/keymap.json
@@ -0,0 +1,17 @@
+{
+ "keyboard": "zsa/planck_ez/base",
+ "keymap": "default",
+ "layers": [
+ ["KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPC", "KC_ESC", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_LSFT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_ENT", "CW_TOGG", "KC_LCTL", "KC_LALT", "KC_LGUI", "TL_LOWR", "KC_SPC", "TL_UPPR", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RGHT"],
+ ["KC_TILD", "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "KC_BSPC", "KC_DEL", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_UNDS", "KC_PLUS", "KC_LCBR", "KC_RCBR", "KC_PIPE", "KC_TRNS", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "S(KC_NUHS)", "S(KC_NUBS)", "KC_HOME", "KC_END", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MNXT", "KC_VOLD", "KC_VOLU", "KC_MPLY"],
+ ["KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_BSPC", "KC_DEL", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_MINS", "KC_EQL", "KC_LBRC", "KC_RBRC", "KC_BSLS", "KC_TRNS", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "KC_NUHS", "KC_NUBS", "KC_PGUP", "KC_PGDN", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MNXT", "KC_VOLD", "KC_VOLU", "KC_MPLY"],
+ ["KC_TRNS", "QK_BOOT", "DB_TOGG", "RGB_TOG", "RGB_MOD", "RGB_HUI", "RGB_HUD", "RGB_SAI", "RGB_SAD", "RGB_VAI", "RGB_VAD", "KC_DEL", "KC_TRNS", "KC_TRNS", "MU_NEXT", "AU_ON", "AU_OFF", "AG_NORM", "AG_SWAP", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "AU_PREV", "AU_NEXT", "MU_ON", "MU_OFF", "MI_ON", "MI_OFF", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"]
+ ],
+ "layout": "LAYOUT_planck_1x2uC",
+ "config": {
+ "features": {
+ "tri_layer": true,
+ "caps_word": true
+ }
+ }
+}
diff --git a/keyboards/zsa/planck_ez/mcuconf.h b/keyboards/zsa/planck_ez/mcuconf.h
new file mode 100644
index 0000000000..e29f64dd72
--- /dev/null
+++ b/keyboards/zsa/planck_ez/mcuconf.h
@@ -0,0 +1,37 @@
+/* Copyright 2021 QMK
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#pragma once
+
+#include_next
+
+// for i2c expander, and ISSI
+#undef STM32_I2C_USE_I2C1
+#define STM32_I2C_USE_I2C1 TRUE
+
+// for indicator LEDs
+#undef STM32_PWM_USE_TIM3
+#define STM32_PWM_USE_TIM3 TRUE
+#undef STM32_PWM_USE_TIM4
+#define STM32_PWM_USE_TIM4 TRUE
+
+// for audio
+#undef STM32_DAC_USE_DAC1_CH1
+#define STM32_DAC_USE_DAC1_CH1 TRUE
+#undef STM32_DAC_USE_DAC1_CH2
+#define STM32_DAC_USE_DAC1_CH2 TRUE
+#undef STM32_GPT_USE_TIM6
+#define STM32_GPT_USE_TIM6 TRUE
diff --git a/keyboards/zsa/planck_ez/planck_ez.c b/keyboards/zsa/planck_ez/planck_ez.c
new file mode 100644
index 0000000000..9c0e911654
--- /dev/null
+++ b/keyboards/zsa/planck_ez/planck_ez.c
@@ -0,0 +1,286 @@
+/* Copyright 2018 Jack Humbert
+ * Copyright 2015 ZSA Technology Labs Inc (@zsa)
+ * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna)
+ *
+ * This program is free software: you can 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 "planck_ez.h"
+#include
+#include
+#include "keycodes.h"
+
+keyboard_config_t keyboard_config;
+
+
+/* Left B9 Right B8 */
+
+// See http://jared.geek.nz/2013/feb/linear-led-pwm
+static uint16_t cie_lightness(uint16_t v) {
+ if (v <= 5243) // if below 8% of max
+ return v / 9; // same as dividing by 900%
+ else {
+ uint32_t y = (((uint32_t) v + 10486) << 8) / (10486 + 0xFFFFUL); // add 16% of max and compare
+ // to get a useful result with integer division, we shift left in the expression above
+ // and revert what we've done again after squaring.
+ y = y * y * y >> 8;
+ if (y > 0xFFFFUL) // prevent overflow
+ return 0xFFFFU;
+ else
+ return (uint16_t) y;
+ }
+}
+
+static PWMConfig pwmCFG = {
+ 0xFFFF,/* PWM clock frequency */
+ 256,/* initial PWM period (in ticks) 1S (1/10kHz=0.1mS 0.1ms*10000 ticks=1S) */
+ NULL,
+ {
+ {PWM_OUTPUT_DISABLED, NULL}, /* channel 0 -> TIM1-CH1 = PA8 */
+ {PWM_OUTPUT_DISABLED, NULL}, /* channel 1 -> TIM1-CH2 = PA9 */
+ {PWM_OUTPUT_ACTIVE_HIGH, NULL},
+ {PWM_OUTPUT_ACTIVE_HIGH, NULL}
+ },
+ 0, /* HW dependent part.*/
+ 0
+};
+
+static uint32_t planck_ez_right_led_duty;
+static uint32_t planck_ez_left_led_duty;
+
+void planck_ez_right_led_level(uint8_t level) {
+ planck_ez_right_led_duty = (uint32_t)(cie_lightness(0xFFFF * (uint32_t) level / 255));
+ if (level == 0) {
+ // Turn backlight off
+ pwmDisableChannel(&PWMD4, 2);
+ } else {
+ // Turn backlight on
+ pwmEnableChannel(&PWMD4, 2, PWM_FRACTION_TO_WIDTH(&PWMD4,0xFFFF,planck_ez_right_led_duty));
+ }
+}
+
+
+void planck_ez_right_led_on(void){
+ pwmEnableChannel(&PWMD4, 2, PWM_FRACTION_TO_WIDTH(&PWMD4,0xFFFF,planck_ez_right_led_duty));
+}
+
+void planck_ez_right_led_off(void){
+ pwmDisableChannel(&PWMD4, 2);
+}
+
+void planck_ez_left_led_level(uint8_t level) {
+ planck_ez_left_led_duty = (uint32_t)(cie_lightness(0xFFFF * (uint32_t) level / 255));
+ if (level == 0) {
+ // Turn backlight off
+ pwmDisableChannel(&PWMD4, 3);
+ } else {
+ // Turn backlight on
+ pwmEnableChannel(&PWMD4, 3, PWM_FRACTION_TO_WIDTH(&PWMD4,0xFFFF,planck_ez_left_led_duty));
+ }
+}
+
+void planck_ez_left_led_on(void){
+ pwmEnableChannel(&PWMD4, 3, PWM_FRACTION_TO_WIDTH(&PWMD4,0xFFFF,planck_ez_left_led_duty));
+}
+
+void planck_ez_left_led_off(void){
+ pwmDisableChannel(&PWMD4, 3);
+}
+
+
+void led_initialize_hardware(void) {
+ pwmStart(&PWMD4, &pwmCFG);
+
+ // set up defaults
+ planck_ez_right_led_level((uint8_t)keyboard_config.led_level * 255 / 4 );
+ palSetPadMode(GPIOB, 8, PAL_MODE_ALTERNATE(2));
+ planck_ez_left_led_level((uint8_t)keyboard_config.led_level * 255 / 4 );
+ palSetPadMode(GPIOB, 9, PAL_MODE_ALTERNATE(2));
+
+
+ // turn LEDs off by default
+ planck_ez_left_led_off();
+ planck_ez_right_led_off();
+}
+
+void keyboard_pre_init_kb(void) {
+ if (!eeconfig_is_enabled()) {
+ eeconfig_init();
+ }
+ // read kb settings from eeprom
+ keyboard_config.raw = eeconfig_read_kb();
+#if defined(RGB_MATRIX_ENABLE) && defined(ORYX_CONFIGURATOR)
+ if (keyboard_config.rgb_matrix_enable) {
+ rgb_matrix_set_flags(LED_FLAG_ALL);
+ } else {
+ rgb_matrix_set_flags(LED_FLAG_NONE);
+ }
+#endif
+ led_initialize_hardware();
+ keyboard_pre_init_user();
+}
+
+#if defined(RGB_MATRIX_ENABLE) && defined(ORYX_CONFIGURATOR)
+void keyboard_post_init_kb(void) {
+ rgb_matrix_enable_noeeprom();
+ keyboard_post_init_user();
+}
+#endif
+
+void eeconfig_init_kb(void) { // EEPROM is getting reset!
+ keyboard_config.raw = 0;
+ keyboard_config.rgb_matrix_enable = true;
+ keyboard_config.led_level = 4;
+ eeconfig_update_kb(keyboard_config.raw);
+ eeconfig_init_user();
+}
+
+
+#ifdef ORYX_CONFIGURATOR
+
+#ifndef PLANCK_EZ_USER_LEDS
+
+#ifndef PLANCK_EZ_LED_LOWER
+# define PLANCK_EZ_LED_LOWER 1
+#endif
+#ifndef PLANCK_EZ_LED_RAISE
+# define PLANCK_EZ_LED_RAISE 2
+#endif
+#ifndef PLANCK_EZ_LED_ADJUST
+# define PLANCK_EZ_LED_ADJUST 3
+#endif
+
+layer_state_t layer_state_set_kb(layer_state_t state) {
+ planck_ez_left_led_off();
+ planck_ez_right_led_off();
+ state = layer_state_set_user(state);
+ uint8_t layer = get_highest_layer(state);
+ switch (layer) {
+ case PLANCK_EZ_LED_LOWER:
+ planck_ez_left_led_on();
+ break;
+ case PLANCK_EZ_LED_RAISE:
+ planck_ez_right_led_on();
+ break;
+ case PLANCK_EZ_LED_ADJUST:
+ planck_ez_right_led_on();
+ planck_ez_left_led_on();
+ break;
+ default:
+ break;
+ }
+ return state;
+}
+#endif
+
+bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case LED_LEVEL:
+ if (record->event.pressed) {
+ keyboard_config.led_level++;
+ if (keyboard_config.led_level > 4) {
+ keyboard_config.led_level = 0;
+ }
+ planck_ez_right_led_level((uint8_t)keyboard_config.led_level * 255 / 4 );
+ planck_ez_left_led_level((uint8_t)keyboard_config.led_level * 255 / 4 );
+ eeconfig_update_kb(keyboard_config.raw);
+ layer_state_set_kb(layer_state);
+ }
+ break;
+#ifdef RGB_MATRIX_ENABLE
+ case TOGGLE_LAYER_COLOR:
+ if (record->event.pressed) {
+ keyboard_config.disable_layer_led ^= 1;
+ if (keyboard_config.disable_layer_led)
+ rgb_matrix_set_color_all(0, 0, 0);
+ eeconfig_update_kb(keyboard_config.raw);
+ }
+ break;
+ case RGB_TOG:
+ if (record->event.pressed) {
+ switch (rgb_matrix_get_flags()) {
+ case LED_FLAG_ALL: {
+ rgb_matrix_set_flags(LED_FLAG_NONE);
+ keyboard_config.rgb_matrix_enable = false;
+ rgb_matrix_set_color_all(0, 0, 0);
+ }
+ break;
+ default: {
+ rgb_matrix_set_flags(LED_FLAG_ALL);
+ keyboard_config.rgb_matrix_enable = true;
+ }
+ break;
+ }
+ eeconfig_update_kb(keyboard_config.raw);
+ }
+ return false;
+#endif
+ }
+ return process_record_user(keycode, record);
+}
+#endif
+
+#ifdef AUDIO_ENABLE
+bool music_mask_kb(uint16_t keycode) {
+ switch (keycode) {
+ case QK_LAYER_TAP ... QK_LAYER_TAP_MAX:
+ case QK_TO ... QK_TO_MAX:
+ case QK_MOMENTARY ... QK_MOMENTARY_MAX:
+ case QK_DEF_LAYER ... QK_DEF_LAYER_MAX:
+ case QK_TOGGLE_LAYER ... QK_TOGGLE_LAYER_MAX:
+ case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_LAYER_MAX:
+ case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX:
+ case QK_LAYER_MOD ... QK_LAYER_MOD_MAX:
+ case QK_ONE_SHOT_MOD ... QK_ONE_SHOT_MOD_MAX:
+ case QK_MOD_TAP ... QK_MOD_TAP_MAX:
+ case AU_ON ... AU_PREV:
+ case QK_BOOT:
+ case QK_CLEAR_EEPROM:
+ case QK_TRI_LAYER_LOWER:
+ case QK_TRI_LAYER_UPPER:
+ return false;
+ default:
+ return music_mask_user(keycode);
+ }
+}
+#endif
+
+#ifdef SWAP_HANDS_ENABLE
+__attribute__ ((weak))
+const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
+ {{5, 4}, {4, 4}, {3, 4}, {2, 4}, {1, 4}, {0, 4}},
+ {{5, 5}, {4, 5}, {3, 5}, {2, 5}, {1, 5}, {0, 5}},
+ {{5, 6}, {4, 6}, {3, 6}, {2, 6}, {1, 6}, {0, 6}},
+ {{5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}},
+
+ {{5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}},
+ {{5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}},
+ {{5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}},
+ {{5, 7}, {4, 7}, {3, 7}, {2, 7}, {1, 7}, {0, 7}},
+};
+
+# ifdef ENCODER_MAP_ENABLE
+const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {0};
+# endif
+#endif
+
+const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = {
+ {36, 37, 38, 39, 40, 41},
+ {24, 25, 26, 27, 28, 29},
+ {12, 13, 14, 15, 16, 17},
+ { 0, 1, 2, 10, 11, 6},
+ {42, 43, 44, 45, 46, 47},
+ {30, 31, 32, 33, 34, 35},
+ {18, 19, 20, 21, 22, 23},
+ { 7, 8, 9, 3, 4, 5}
+};
diff --git a/keyboards/zsa/planck_ez/planck_ez.h b/keyboards/zsa/planck_ez/planck_ez.h
new file mode 100644
index 0000000000..695b14d9ad
--- /dev/null
+++ b/keyboards/zsa/planck_ez/planck_ez.h
@@ -0,0 +1,47 @@
+/* Copyright 2018 Jack Humbert
+ * Copyright 2015 ZSA Technology Labs Inc (@zsa)
+ * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna)
+ *
+ * This program is free software: you can 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 planck_ez_right_led_on(void);
+void planck_ez_right_led_off(void);
+void planck_ez_right_led_level(uint8_t level);
+void planck_ez_left_led_on(void);
+void planck_ez_left_led_off(void);
+void planck_ez_left_led_level(uint8_t level);
+
+enum planck_ez_keycodes {
+ LED_LEVEL = QK_KB_0,
+ TOGGLE_LAYER_COLOR,
+};
+
+#ifndef WEBUSB_ENABLE
+# define WEBUSB_PAIR KC_NO
+#endif
+
+typedef union {
+ uint32_t raw;
+ struct {
+ uint8_t led_level :3;
+ bool disable_layer_led :1;
+ bool rgb_matrix_enable :1;
+ };
+} keyboard_config_t;
+
+extern keyboard_config_t keyboard_config;
diff --git a/keyboards/zsa/planck_ez/readme.md b/keyboards/zsa/planck_ez/readme.md
new file mode 100644
index 0000000000..d76a01cb25
--- /dev/null
+++ b/keyboards/zsa/planck_ez/readme.md
@@ -0,0 +1,64 @@
+# Planck EZ
+
+
+
+A variant of the Planck featuring a 2u spacebar and per-key RGB backlighting.
+
+Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert), [Drashna Jael're](https://github.com/drashna)
+Hardware Supported: Planck EZ
+Hardware Availability: [ZSA](https://www.zsa.io/planck/) (discontinued)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make zsa/planck_ez/base:default
+
+For the per key RGB version of this keyboard, you want to use the "glow" subdirectory. For example:
+
+ make zsa/planck_ez/glow: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).
+
+## Planck EZ Configuration (from Oryx)
+
+To enable the features from Oryx (ZSA's Configurator), either compile the the `oryx` keymap, or add `#define ORYX_CONFIGURATOR` to your `config.h` file.
+
+This enables the front Indicator LEDs, and the `TOGGLE_LAYER_COLOR`, and `LED_LEVEL` keycodes. The `TOGGLE_LAYER_COLOR` keycode toggles the customized LED map configured on Oryx. The `LED_LEVEL` cycles through the brightness levels for the front "teeth" LEDs.
+
+### Indicator LEDs
+
+The two front "teeth" LED indicators are PWM controlled. If you have `ORYX_CONFIGURATOR` defined in your keymap's `config.h`, you can use the `LED_LEVEL` to cycle through preset vales (0, 25%, 50%, 75%, 100%), and will be saved to EEPROM (persistent storage)
+
+Alternatively, you can set the brightness by calling the following functions:
+
+```c
+void planck_ez_right_led_level(uint8_t level);
+void planck_ez_left_led_level(uint8_t level);
+```
+
+These settings are not persistent, so you'd need to reset it every time the board starts.
+
+These are on a 0-255 scale
+
+#### Layer indication
+
+By default, the indicator lights are used for layer indication, expecting the specific layers used in the default keymap. However, this may not work for you. And if that is the case, you can add `#define PLANCK_EZ_USER_LEDS` to your `config.h` file.
+
+This will remove the default behavior for changing the LEDs based on layer, and allow you to control them manually.
+
+Alternatively, you can use the following defines in your keymap's `config.h` to control which layers are used, as long as you have `ORYX_CONFIGURATOR` defined in your keymap's `config.h` file, as well.
+
+```c
+#define PLANCK_EZ_LED_LOWER 3
+#define PLANCK_EZ_LED_RAISE 4
+#define PLANCK_EZ_LED_ADJUST 6
+```
+
+This will allow you to change the layers that are used, without having to add anything code to your `keymap.c`
+
+### RGB Matrix Features
+
+If you're using the Smart LED (layer indication) feature from the Oryx Configurator, you want to make sure that you enable these options by adding `#define ORYX_CONFIGURATOR` to your keymap's `config.h`.
+
+This changes the `RGB_TOG` keycode so that it will toggle the lights on and off, in a way that will allow the Smart LEDs to continue to work, even with the rest of the LEDs turned off.
+
+Additionally, a new keycode has been added to toggle the Smart LEDs. Use `TOGGLE_LAYER_COLOR`, if you aren't already.
diff --git a/keyboards/zsa/planck_ez/rules.mk b/keyboards/zsa/planck_ez/rules.mk
new file mode 100644
index 0000000000..67921c96ed
--- /dev/null
+++ b/keyboards/zsa/planck_ez/rules.mk
@@ -0,0 +1,4 @@
+RGBLIGHT_SUPPORTED = no
+BAKCLIGHT_SUPPORTED = no
+
+DEFAULT_FOLDER = zsa/planck_ez/base
--
cgit v1.2.3