summaryrefslogtreecommitdiff
path: root/keyboards/alf
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/alf')
-rw-r--r--keyboards/alf/dc60/config.h20
-rw-r--r--keyboards/alf/dc60/dc60.c16
-rw-r--r--keyboards/alf/dc60/dc60.h41
-rw-r--r--keyboards/alf/dc60/info.json523
-rw-r--r--keyboards/alf/dc60/matrix_diagram.md45
-rw-r--r--keyboards/alf/x11/config.h20
-rw-r--r--keyboards/alf/x11/info.json187
-rw-r--r--keyboards/alf/x11/x11.c16
-rw-r--r--keyboards/alf/x11/x11.h43
-rw-r--r--keyboards/alf/x2/config.h13
-rw-r--r--keyboards/alf/x2/info.json302
-rw-r--r--keyboards/alf/x2/keymaps/hhkb_60/keymap.c12
-rw-r--r--keyboards/alf/x2/matrix_diagram.md27
-rw-r--r--keyboards/alf/x2/x2.c17
-rw-r--r--keyboards/alf/x2/x2.h38
15 files changed, 928 insertions, 392 deletions
diff --git a/keyboards/alf/dc60/config.h b/keyboards/alf/dc60/config.h
index e81b6a2010..b94b584df0 100644
--- a/keyboards/alf/dc60/config.h
+++ b/keyboards/alf/dc60/config.h
@@ -17,25 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-
-/*
- * Keyboard Matrix Assignments
- *
- * Change this to how you wired your keyboard
- * COLS: AVR pins used for columns, left to right
- * ROWS: AVR pins used for rows, top to bottom
- * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
- * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
- *
-*/
-#define MATRIX_ROW_PINS { B0, B1, B2, B3, B4 }
-#define MATRIX_COL_PINS { B5, D0, D1, D2, D3, D4, D5, D6, D7, C6, C7, F4, F5, F6, F7 }
-
-/* COL2ROW, ROW2COL*/
-#define DIODE_DIRECTION COL2ROW
-
-#define RGB_DI_PIN E6
-#ifdef RGB_DI_PIN
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
@@ -50,7 +31,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
-#endif
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboards/alf/dc60/dc60.c b/keyboards/alf/dc60/dc60.c
deleted file mode 100644
index 4096d10a64..0000000000
--- a/keyboards/alf/dc60/dc60.c
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright 2018 MechMerlin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#include "dc60.h"
diff --git a/keyboards/alf/dc60/dc60.h b/keyboards/alf/dc60/dc60.h
deleted file mode 100644
index 710ae703ed..0000000000
--- a/keyboards/alf/dc60/dc60.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright 2018 MechMerlin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define XXX KC_NO
-
-// This a shortcut to help you visually see your layout.
-// The following is an example using the Planck MIT layout
-// The first section contains all of the arguments representing the physical
-// layout of the board and position of the keys
-// The second converts the arguments into a two-dimensional array which
-// represents the switch matrix.
-#define LAYOUT_all( \
- k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \
- k10, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, \
- k20, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, \
- k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, \
- k40, k42, k43, k45, k47, k48, k4A, k4B, k4C, k4D, k4E \
-) { \
- { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
- { k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
- { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, XXX }, \
- { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \
- { k40, XXX, k42, k43, XXX, k45, XXX, k47, k48, XXX, k4A, k4B, k4C, k4D, k4E } \
-}
diff --git a/keyboards/alf/dc60/info.json b/keyboards/alf/dc60/info.json
index faf199d8a0..e7d977bcaf 100644
--- a/keyboards/alf/dc60/info.json
+++ b/keyboards/alf/dc60/info.json
@@ -7,20 +7,541 @@
"pid": "0x0000",
"device_version": "0.0.1"
},
+ "matrix_pins": {
+ "cols": ["B5", "D0", "D1", "D2", "D3", "D4", "D5", "D6", "D7", "C6", "C7", "F4", "F5", "F6", "F7"],
+ "rows": ["B0", "B1", "B2", "B3", "B4"]
+ },
+ "diode_direction": "COL2ROW",
"backlight": {
"pin": "B6",
"levels": 5,
"breathing": true
},
+ "ws2812": {
+ "pin": "E6"
+ },
"indicators": {
"caps_lock": "B7",
"on_state": 0
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
+ "community_layouts": [
+ "60_ansi",
+ "60_ansi_arrow",
+ "64_ansi",
+ "60_iso",
+ "64_iso"
+ ],
"layouts": {
"LAYOUT_all": {
- "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4, "w":1.25}, {"x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.75}, {"x":6.5, "y":4, "w":1.25}, {"x":7.75, "y":4, "w":2.25}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}]
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0},
+ {"label": "Backspace", "matrix": [0, 14], "x": 14, "y": 0},
+
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 3], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 4], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 5], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 6], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 8], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 9], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 10], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 11], "x": 10.5, "y": 1},
+ {"label": "[", "matrix": [1, 12], "x": 11.5, "y": 1},
+ {"label": "]", "matrix": [1, 13], "x": 12.5, "y": 1},
+ {"label": "\\", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
+
+ {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 2], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 3], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 4], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 5], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 6], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 7], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 8], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 9], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 10], "x": 9.75, "y": 2},
+ {"label": ";", "matrix": [2, 11], "x": 10.75, "y": 2},
+ {"label": "'", "matrix": [2, 12], "x": 11.75, "y": 2},
+ {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3},
+ {"label": "\\", "matrix": [3, 1], "x": 1, "y": 3},
+ {"label": "Z", "matrix": [3, 2], "x": 2, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8, "y": 3},
+ {"label": ",", "matrix": [3, 9], "x": 9, "y": 3},
+ {"label": ".", "matrix": [3, 10], "x": 10, "y": 3},
+ {"label": "/", "matrix": [3, 11], "x": 11, "y": 3},
+ {"label": "Shift", "matrix": [3, 12], "x": 12, "y": 3},
+ {"label": "\u2191", "matrix": [3, 13], "x": 13, "y": 3},
+ {"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3},
+
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"label": "GUI", "matrix": [4, 2], "x": 1.25, "y": 4, "w": 1.25},
+ {"label": "Alt", "matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
+ {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 2.75},
+ {"label": "Space", "matrix": [4, 7], "x": 6.5, "y": 4, "w": 1.25},
+ {"label": "Space", "matrix": [4, 8], "x": 7.75, "y": 4, "w": 2.25},
+ {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4},
+ {"label": "Ctrl", "matrix": [4, 11], "x": 11, "y": 4},
+ {"label": "\u2190", "matrix": [4, 12], "x": 12, "y": 4},
+ {"label": "\u2193", "matrix": [4, 13], "x": 13, "y": 4},
+ {"label": "\u2192", "matrix": [4, 14], "x": 14, "y": 4}
+ ]
+ },
+
+ "LAYOUT_60_ansi": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "Backspace", "matrix": [0, 14], "x": 13, "y": 0, "w": 2},
+
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 3], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 4], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 5], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 6], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 8], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 9], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 10], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 11], "x": 10.5, "y": 1},
+ {"label": "[", "matrix": [1, 12], "x": 11.5, "y": 1},
+ {"label": "]", "matrix": [1, 13], "x": 12.5, "y": 1},
+ {"label": "\\", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
+
+ {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 2], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 3], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 4], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 5], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 6], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 7], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 8], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 9], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 10], "x": 9.75, "y": 2},
+ {"label": ";", "matrix": [2, 11], "x": 10.75, "y": 2},
+ {"label": "'", "matrix": [2, 12], "x": 11.75, "y": 2},
+ {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3},
+ {"label": "Shift", "matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
+
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"label": "GUI", "matrix": [4, 2], "x": 1.25, "y": 4, "w": 1.25},
+ {"label": "Alt", "matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
+ {"label": "Space", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25},
+ {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+ {"label": "GUI", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+ {"label": "Menu", "matrix": [4, 13], "x": 12.5, "y": 4, "w": 1.25},
+ {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}
+ ]
+ },
+
+ "LAYOUT_60_ansi_arrow": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "Backspace", "matrix": [0, 14], "x": 13, "y": 0, "w": 2},
+
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 3], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 4], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 5], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 6], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 8], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 9], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 10], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 11], "x": 10.5, "y": 1},
+ {"label": "[", "matrix": [1, 12], "x": 11.5, "y": 1},
+ {"label": "]", "matrix": [1, 13], "x": 12.5, "y": 1},
+ {"label": "\\", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
+
+ {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 2], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 3], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 4], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 5], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 6], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 7], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 8], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 9], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 10], "x": 9.75, "y": 2},
+ {"label": ";", "matrix": [2, 11], "x": 10.75, "y": 2},
+ {"label": "'", "matrix": [2, 12], "x": 11.75, "y": 2},
+ {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "Shift", "matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.75},
+ {"label": "\u2191", "matrix": [3, 13], "x": 13, "y": 3},
+ {"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3},
+
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"label": "GUI", "matrix": [4, 2], "x": 1.25, "y": 4, "w": 1.25},
+ {"label": "Alt", "matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
+ {"label": "Space", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25},
+ {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4},
+ {"label": "Ctrl", "matrix": [4, 11], "x": 11, "y": 4},
+ {"label": "\u2190", "matrix": [4, 12], "x": 12, "y": 4},
+ {"label": "\u2193", "matrix": [4, 13], "x": 13, "y": 4},
+ {"label": "\u2192", "matrix": [4, 14], "x": 14, "y": 4}
+ ]
+ },
+
+ "LAYOUT_64_ansi": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "Backspace", "matrix": [0, 14], "x": 13, "y": 0, "w": 2},
+
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 3], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 4], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 5], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 6], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 8], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 9], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 10], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 11], "x": 10.5, "y": 1},
+ {"label": "[", "matrix": [1, 12], "x": 11.5, "y": 1},
+ {"label": "]", "matrix": [1, 13], "x": 12.5, "y": 1},
+ {"label": "\\", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
+
+ {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 2], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 3], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 4], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 5], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 6], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 7], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 8], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 9], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 10], "x": 9.75, "y": 2},
+ {"label": ";", "matrix": [2, 11], "x": 10.75, "y": 2},
+ {"label": "'", "matrix": [2, 12], "x": 11.75, "y": 2},
+ {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2},
+ {"label": "Z", "matrix": [3, 2], "x": 2, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8, "y": 3},
+ {"label": ",", "matrix": [3, 9], "x": 9, "y": 3},
+ {"label": ".", "matrix": [3, 10], "x": 10, "y": 3},
+ {"label": "/", "matrix": [3, 11], "x": 11, "y": 3},
+ {"label": "Shift", "matrix": [3, 12], "x": 12, "y": 3},
+ {"label": "\u2191", "matrix": [3, 13], "x": 13, "y": 3},
+ {"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3},
+
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"label": "GUI", "matrix": [4, 2], "x": 1.25, "y": 4, "w": 1.25},
+ {"label": "Alt", "matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
+ {"label": "Space", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25},
+ {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4},
+ {"label": "Ctrl", "matrix": [4, 11], "x": 11, "y": 4},
+ {"label": "\u2190", "matrix": [4, 12], "x": 12, "y": 4},
+ {"label": "\u2193", "matrix": [4, 13], "x": 13, "y": 4},
+ {"label": "\u2192", "matrix": [4, 14], "x": 14, "y": 4}
+ ]
+ },
+
+ "LAYOUT_60_iso": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "Backspace", "matrix": [0, 14], "x": 13, "y": 0, "w": 2},
+
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 3], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 4], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 5], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 6], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 8], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 9], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 10], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 11], "x": 10.5, "y": 1},
+ {"label": "[", "matrix": [1, 12], "x": 11.5, "y": 1},
+ {"label": "]", "matrix": [1, 13], "x": 12.5, "y": 1},
+
+ {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 2], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 3], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 4], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 5], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 6], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 7], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 8], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 9], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 10], "x": 9.75, "y": 2},
+ {"label": ";", "matrix": [2, 11], "x": 10.75, "y": 2},
+ {"label": "'", "matrix": [2, 12], "x": 11.75, "y": 2},
+ {"label": "#", "matrix": [1, 14], "x": 12.75, "y": 2},
+ {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"label": "\\", "matrix": [3, 1], "x": 1.25, "y": 3},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3},
+ {"label": "Shift", "matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
+
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"label": "GUI", "matrix": [4, 2], "x": 1.25, "y": 4, "w": 1.25},
+ {"label": "Alt", "matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
+ {"label": "Space", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25},
+ {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+ {"label": "GUI", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+ {"label": "Menu", "matrix": [4, 13], "x": 12.5, "y": 4, "w": 1.25},
+ {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}
+ ]
+ },
+
+ "LAYOUT_60_iso_arrow": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "Backspace", "matrix": [0, 14], "x": 13, "y": 0, "w": 2},
+
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 3], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 4], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 5], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 6], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 8], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 9], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 10], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 11], "x": 10.5, "y": 1},
+ {"label": "[", "matrix": [1, 12], "x": 11.5, "y": 1},
+ {"label": "]", "matrix": [1, 13], "x": 12.5, "y": 1},
+
+ {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 2], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 3], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 4], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 5], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 6], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 7], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 8], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 9], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 10], "x": 9.75, "y": 2},
+ {"label": ";", "matrix": [2, 11], "x": 10.75, "y": 2},
+ {"label": "'", "matrix": [2, 12], "x": 11.75, "y": 2},
+ {"label": "#", "matrix": [1, 14], "x": 12.75, "y": 2},
+ {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"label": "\\", "matrix": [3, 1], "x": 1.25, "y": 3},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "Shift", "matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.75},
+ {"label": "\u2191", "matrix": [3, 13], "x": 13, "y": 3},
+ {"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3},
+
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"label": "GUI", "matrix": [4, 2], "x": 1.25, "y": 4, "w": 1.25},
+ {"label": "Alt", "matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
+ {"label": "Space", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25},
+ {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4},
+ {"label": "Ctrl", "matrix": [4, 11], "x": 11, "y": 4},
+ {"label": "\u2190", "matrix": [4, 12], "x": 12, "y": 4},
+ {"label": "\u2193", "matrix": [4, 13], "x": 13, "y": 4},
+ {"label": "\u2192", "matrix": [4, 14], "x": 14, "y": 4}
+ ]
+ },
+
+ "LAYOUT_64_iso": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "Backspace", "matrix": [0, 14], "x": 13, "y": 0, "w": 2},
+
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 3], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 4], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 5], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 6], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 8], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 9], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 10], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 11], "x": 10.5, "y": 1},
+ {"label": "[", "matrix": [1, 12], "x": 11.5, "y": 1},
+ {"label": "]", "matrix": [1, 13], "x": 12.5, "y": 1},
+
+ {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 2], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 3], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 4], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 5], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 6], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 7], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 8], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 9], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 10], "x": 9.75, "y": 2},
+ {"label": ";", "matrix": [2, 11], "x": 10.75, "y": 2},
+ {"label": "'", "matrix": [2, 12], "x": 11.75, "y": 2},
+ {"label": "#", "matrix": [1, 14], "x": 12.75, "y": 2},
+ {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3},
+ {"label": "\\", "matrix": [3, 1], "x": 1, "y": 3},
+ {"label": "Z", "matrix": [3, 2], "x": 2, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8, "y": 3},
+ {"label": ",", "matrix": [3, 9], "x": 9, "y": 3},
+ {"label": ".", "matrix": [3, 10], "x": 10, "y": 3},
+ {"label": "/", "matrix": [3, 11], "x": 11, "y": 3},
+ {"label": "Shift", "matrix": [3, 12], "x": 12, "y": 3},
+ {"label": "\u2191", "matrix": [3, 13], "x": 13, "y": 3},
+ {"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3},
+
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"label": "GUI", "matrix": [4, 2], "x": 1.25, "y": 4, "w": 1.25},
+ {"label": "Alt", "matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
+ {"label": "Space", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25},
+ {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4},
+ {"label": "Ctrl", "matrix": [4, 11], "x": 11, "y": 4},
+ {"label": "\u2190", "matrix": [4, 12], "x": 12, "y": 4},
+ {"label": "\u2193", "matrix": [4, 13], "x": 13, "y": 4},
+ {"label": "\u2192", "matrix": [4, 14], "x": 14, "y": 4}
+ ]
}
}
}
diff --git a/keyboards/alf/dc60/matrix_diagram.md b/keyboards/alf/dc60/matrix_diagram.md
new file mode 100644
index 0000000000..368318c1cd
--- /dev/null
+++ b/keyboards/alf/dc60/matrix_diagram.md
@@ -0,0 +1,45 @@
+# Matrix Diagram for ALF DC60
+
+Most of these are "best-guess." I was using photos I found on ZFrontier as a
+reference and I don't have the PCB on-hand.
+ - @noroadsleft
+ 2023-01-20
+
+```
+┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐
+│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │ │0E │ 2u Backspace
+├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ └─┬─────┤
+│10 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │ │ │
+├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐2D │ ISO Enter
+│20 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ │1E │ │
+└──────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴────────┘ └───┴────┘
+
+------------------------ SHIFT ROWS -------------------------
+┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │
+└───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
+┌───────┐
+│30 │ 2u LShift
+└───────┘
+
+┌────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬──────┬───┬───┐
+│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │3E │
+└────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴──────┴───┴───┘
+┌────────┐ ┌───┬──────────┐
+│30 │ 2.25u LShift │3B │3D │ 1u/2.75u RShift
+└────────┘ └───┴──────────┘
+ ┌───┬──────┬───┐
+ │3B │3D │3E │ 1u/1.75u/1u RShift
+ └───┴──────┴───┘
+
+------------------------ BOTTOM ROWS ------------------------
+┌────┬────┬────┬──────────┬────┬────────┬───┬───┬───┬───┬───┐
+│40 │42 │43 │45 │47 │48 │4A │4B │4C │4D │4E │
+└────┴────┴────┴──────────┴────┴────────┴───┴───┴───┴───┴───┘
+┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐
+│40 │42 │43 │47 │4A │4B │4D │4E │ Standard
+└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐
+│40 │42 │43 │47 │4B │4D │4E │ Tsangan/WKL/HHKB
+└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
+```
diff --git a/keyboards/alf/x11/config.h b/keyboards/alf/x11/config.h
index 04ebe0c657..467b15b1c5 100644
--- a/keyboards/alf/x11/config.h
+++ b/keyboards/alf/x11/config.h
@@ -17,25 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-
-/*
- * Keyboard Matrix Assignments
- *
- * Change this to how you wired your keyboard
- * COLS: AVR pins used for columns, left to right
- * ROWS: AVR pins used for rows, top to bottom
- * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
- * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
- *
-*/
-#define MATRIX_ROW_PINS { B0, B1, B2, B3, B4, B5, B6 }
-#define MATRIX_COL_PINS { D0, D1, D2, D3, D4, D5, D6, D7, F0, F1, F4, F5, F6 }
-
-/* COL2ROW, ROW2COL*/
-#define DIODE_DIRECTION COL2ROW
-
-#define RGB_DI_PIN F7
-#ifdef RGB_DI_PIN
#define RGBLED_NUM 28
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
@@ -52,7 +33,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
# define RGBLIGHT_EFFECT_RGB_TEST
# define RGBLIGHT_EFFECT_ALTERNATING
# define RGBLIGHT_EFFECT_TWINKLE
-#endif
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboards/alf/x11/info.json b/keyboards/alf/x11/info.json
index 8b3ae6f2ba..bca26ecb0a 100644
--- a/keyboards/alf/x11/info.json
+++ b/keyboards/alf/x11/info.json
@@ -8,10 +8,18 @@
"pid": "0x0001",
"device_version": "0.0.1"
},
+ "matrix_pins": {
+ "cols": ["D0", "D1", "D2", "D3", "D4", "D5", "D6", "D7", "F0", "F1", "F4", "F5", "F6"],
+ "rows": ["B0", "B1", "B2", "B3", "B4", "B5", "B6"]
+ },
+ "diode_direction": "COL2ROW",
"backlight": {
"pin": "B7",
"breathing": true
},
+ "ws2812": {
+ "pin": "F7"
+ },
"indicators": {
"caps_lock": "C6",
"num_lock": "E6",
@@ -23,104 +31,107 @@
"layouts": {
"LAYOUT": {
"layout": [
- {"label":"K00", "x":0, "y":0},
- {"label":"K01", "x":2, "y":0},
- {"label":"K02", "x":3, "y":0},
- {"label":"K03", "x":4, "y":0},
- {"label":"K04", "x":5, "y":0},
- {"label":"K05", "x":6.5, "y":0},
- {"label":"K06", "x":7.5, "y":0},
- {"label":"K07", "x":8.5, "y":0},
- {"label":"K08", "x":9.5, "y":0},
- {"label":"K09", "x":11, "y":0},
- {"label":"K0A", "x":12, "y":0},
- {"label":"K0B", "x":13, "y":0},
- {"label":"K0C", "x":14, "y":0},
+ {"matrix": [0, 0], "x": 0, "y": 0},
+
+ {"matrix": [0, 1], "x": 2, "y": 0},
+ {"matrix": [0, 2], "x": 3, "y": 0},
+ {"matrix": [0, 3], "x": 4, "y": 0},
+ {"matrix": [0, 4], "x": 5, "y": 0},
+
+ {"matrix": [0, 5], "x": 6.5, "y": 0},
+ {"matrix": [0, 6], "x": 7.5, "y": 0},
+ {"matrix": [0, 7], "x": 8.5, "y": 0},
+ {"matrix": [0, 8], "x": 9.5, "y": 0},
+
+ {"matrix": [0, 9], "x": 11, "y": 0},
+ {"matrix": [0, 10], "x": 12, "y": 0},
+ {"matrix": [0, 11], "x": 13, "y": 0},
+ {"matrix": [0, 12], "x": 14, "y": 0},
- {"label":"K62", "x":15.25, "y":0},
- {"label":"K61", "x":16.25, "y":0},
- {"label":"K60", "x":17.25, "y":0},
+ {"matrix": [6, 2], "x": 15.25, "y": 0},
+ {"matrix": [6, 1], "x": 16.25, "y": 0},
+ {"matrix": [6, 0], "x": 17.25, "y": 0},
- {"label":"K10", "x":0, "y":1.5},
- {"label":"K11", "x":1, "y":1.5},
- {"label":"K12", "x":2, "y":1.5},
- {"label":"K13", "x":3, "y":1.5},
- {"label":"K14", "x":4, "y":1.5},
- {"label":"K15", "x":5, "y":1.5},
- {"label":"K16", "x":6, "y":1.5},
- {"label":"K17", "x":7, "y":1.5},
- {"label":"K18", "x":8, "y":1.5},
- {"label":"K19", "x":9, "y":1.5},
- {"label":"K1A", "x":10, "y":1.5},
- {"label":"K1B", "x":11, "y":1.5},
- {"label":"K1C", "x":12, "y":1.5},
- {"label":"K5A", "x":13, "y":1.5, "w":2},
+ {"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": [5, 10], "x": 13, "y": 1.5, "w": 2},
- {"label":"K63", "x":15.25, "y":1.5},
- {"label":"K65", "x":16.25, "y":1.5},
- {"label":"K67", "x":17.25, "y":1.5},
+ {"matrix": [6, 3], "x": 15.25, "y": 1.5},
+ {"matrix": [6, 5], "x": 16.25, "y": 1.5},
+ {"matrix": [6, 7], "x": 17.25, "y": 1.5},
- {"label":"K20", "x":0, "y":2.5, "w":1.5},
- {"label":"K21", "x":1.5, "y":2.5},
- {"label":"K22", "x":2.5, "y":2.5},
- {"label":"K23", "x":3.5, "y":2.5},
- {"label":"K24", "x":4.5, "y":2.5},
- {"label":"K25", "x":5.5, "y":2.5},
- {"label":"K26", "x":6.5, "y":2.5},
- {"label":"K27", "x":7.5, "y":2.5},
- {"label":"K28", "x":8.5, "y":2.5},
- {"label":"K29", "x":9.5, "y":2.5},
- {"label":"K2A", "x":10.5, "y":2.5},
- {"label":"K2B", "x":11.5, "y":2.5},
- {"label":"K2C", "x":12.5, "y":2.5},
- {"label":"K4C", "x":13.5, "y":2.5, "w":1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.5},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.5},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.5},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.5},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.5},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.5},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.5},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.5},
+ {"matrix": [2, 9], "x": 9.5, "y": 2.5},
+ {"matrix": [2, 10], "x": 10.5, "y": 2.5},
+ {"matrix": [2, 11], "x": 11.5, "y": 2.5},
+ {"matrix": [2, 12], "x": 12.5, "y": 2.5},
+ {"matrix": [4, 12], "x": 13.5, "y": 2.5, "w": 1.5},
- {"label":"K64", "x":15.25, "y":2.5},
- {"label":"K66", "x":16.25, "y":2.5},
- {"label":"K68", "x":17.25, "y":2.5},
+ {"matrix": [6, 4], "x": 15.25, "y": 2.5},
+ {"matrix": [6, 6], "x": 16.25, "y": 2.5},
+ {"matrix": [6, 8], "x": 17.25, "y": 2.5},
- {"label":"K30", "x":0, "y":3.5, "w":1.75},
- {"label":"K31", "x":1.75, "y":3.5},
- {"label":"K32", "x":2.75, "y":3.5},
- {"label":"K33", "x":3.75, "y":3.5},
- {"label":"K34", "x":4.75, "y":3.5},
- {"label":"K35", "x":5.75, "y":3.5},
- {"label":"K36", "x":6.75, "y":3.5},
- {"label":"K37", "x":7.75, "y":3.5},
- {"label":"K38", "x":8.75, "y":3.5},
- {"label":"K39", "x":9.75, "y":3.5},
- {"label":"K3A", "x":10.75, "y":3.5},
- {"label":"K3B", "x":11.75, "y":3.5},
- {"label":"K3C", "x":12.75, "y":3.5, "w":2.25},
+ {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.5},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.5},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.5},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.5},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.5},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.5},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.5},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.5},
+ {"matrix": [3, 9], "x": 9.75, "y": 3.5},
+ {"matrix": [3, 10], "x": 10.75, "y": 3.5},
+ {"matrix": [3, 11], "x": 11.75, "y": 3.5},
+ {"matrix": [3, 12], "x": 12.75, "y": 3.5, "w": 2.25},
- {"label":"K40", "x":0, "y":4.5, "w":2.25},
- {"label":"K41", "x":2.25, "y":4.5},
- {"label":"K42", "x":3.25, "y":4.5},
- {"label":"K43", "x":4.25, "y":4.5},
- {"label":"K44", "x":5.25, "y":4.5},
- {"label":"K45", "x":6.25, "y":4.5},
- {"label":"K46", "x":7.25, "y":4.5},
- {"label":"K47", "x":8.25, "y":4.5},
- {"label":"K48", "x":9.25, "y":4.5},
- {"label":"K49", "x":10.25, "y":4.5},
- {"label":"K4A", "x":11.25, "y":4.5},
- {"label":"K4B", "x":12.25, "y":4.5, "w":1.75},
- {"label":"K69", "x":14, "y":4.5},
+ {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25},
+ {"matrix": [4, 1], "x": 2.25, "y": 4.5},
+ {"matrix": [4, 2], "x": 3.25, "y": 4.5},
+ {"matrix": [4, 3], "x": 4.25, "y": 4.5},
+ {"matrix": [4, 4], "x": 5.25, "y": 4.5},
+ {"matrix": [4, 5], "x": 6.25, "y": 4.5},
+ {"matrix": [4, 6], "x": 7.25, "y": 4.5},
+ {"matrix": [4, 7], "x": 8.25, "y": 4.5},
+ {"matrix": [4, 8], "x": 9.25, "y": 4.5},
+ {"matrix": [4, 9], "x": 10.25, "y": 4.5},
+ {"matrix": [4, 10], "x": 11.25, "y": 4.5},
+ {"matrix": [4, 11], "x": 12.25, "y": 4.5, "w": 1.75},
+ {"matrix": [6, 9], "x": 14, "y": 4.5},
- {"label":"K58", "x":16.25, "y":4.5},
+ {"matrix": [5, 8], "x": 16.25, "y": 4.5},
- {"label":"K50", "x":0, "y":5.5, "w":1.25},
- {"label":"K51", "x":1.25, "y":5.5, "w":1.25},
- {"label":"K52", "x":2.5, "y":5.5, "w":1.25},
- {"label":"K53", "x":3.75, "y":5.5, "w":6.25},
- {"label":"K54", "x":10, "y":5.5, "w":1.25},
- {"label":"K55", "x":11.25, "y":5.5, "w":1.25},
- {"label":"K56", "x":12.5, "y":5.5, "w":1.25},
- {"label":"K57", "x":13.75, "y":5.5, "w":1.25},
+ {"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, 3], "x": 3.75, "y": 5.5, "w": 6.25},
+ {"matrix": [5, 4], "x": 10, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 5], "x": 11.25, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 6], "x": 12.5, "y": 5.5, "w": 1.25},
+ {"matrix": [5, 7], "x": 13.75, "y": 5.5, "w": 1.25},
- {"label":"K6A", "x":15.25, "y":5.5},
- {"label":"K59", "x":16.25, "y":5.5},
- {"label":"K6B", "x":17.25, "y":5.5}
+ {"matrix": [6, 10], "x": 15.25, "y": 5.5},
+ {"matrix": [5, 9], "x": 16.25, "y": 5.5},
+ {"matrix": [6, 11], "x": 17.25, "y": 5.5}
]
}
}
diff --git a/keyboards/alf/x11/x11.c b/keyboards/alf/x11/x11.c
deleted file mode 100644
index 28e77ecd3f..0000000000
--- a/keyboards/alf/x11/x11.c
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright 2019 MechMerlin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#include "x11.h"
diff --git a/keyboards/alf/x11/x11.h b/keyboards/alf/x11/x11.h
deleted file mode 100644
index 2a1d886fdd..0000000000
--- a/keyboards/alf/x11/x11.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright 2019 MechMerlin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include "quantum.h"
-
-/* This a shortcut to help you visually see your layout.
- *
- * The first section contains all of the arguments representing the physical
- * layout of the board and position of the keys.
- *
- * The second converts the arguments into a two-dimensional array which
- * represents the switch matrix.
- */
-#define LAYOUT( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K62, K61, K60, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K5A, K63, K65, K67, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K4C, K64, K66, K68, \
- K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
- K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K69, K58, \
- K50, K51, K52, K53, K54, K55, K56, K57, K6A, K59, K6B \
-) { \
- { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C }, \
- { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C }, \
- { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C }, \
- { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C }, \
- { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C }, \
- { K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, KC_NO, KC_NO }, \
- { K60, K61, K62, K63, K64, K65, K66, K67, K68, K69, K6A, K6B, KC_NO }, \
-}
diff --git a/keyboards/alf/x2/config.h b/keyboards/alf/x2/config.h
index 374873d5d5..c982289a0b 100644
--- a/keyboards/alf/x2/config.h
+++ b/keyboards/alf/x2/config.h
@@ -16,24 +16,12 @@
#pragma once
-
-/* key matrix pins */
-#define MATRIX_ROW_PINS \
- { D0, D1, D2, D3, D5 }
-#define MATRIX_COL_PINS \
- { F0, F1, E6, C7, C6, B7, D4, B1, B0, B5, B4, D7, D6, B3, F4 }
-
-/* COL2ROW or ROW2COL */
-#define DIODE_DIRECTION COL2ROW
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define RGB_DI_PIN E2
-#ifdef RGB_DI_PIN
# define RGBLIGHT_EFFECT_BREATHING
# define RGBLIGHT_EFFECT_RAINBOW_MOOD
# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
@@ -48,4 +36,3 @@
# define RGBLIGHT_HUE_STEP 8
# define RGBLIGHT_SAT_STEP 8
# define RGBLIGHT_VAL_STEP 8
-#endif
diff --git a/keyboards/alf/x2/info.json b/keyboards/alf/x2/info.json
index 5e0b3087a8..e15b07c2fb 100644
--- a/keyboards/alf/x2/info.json
+++ b/keyboards/alf/x2/info.json
@@ -8,10 +8,18 @@
"pid": "0x6060",
"device_version": "0.0.1"
},
+ "matrix_pins": {
+ "cols": ["F0", "F1", "E6", "C7", "C6", "B7", "D4", "B1", "B0", "B5", "B4", "D7", "D6", "B3", "F4"],
+ "rows": ["D0", "D1", "D2", "D3", "D5"]
+ },
+ "diode_direction": "COL2ROW",
"indicators": {
"caps_lock": "B2",
"on_state": 0
},
+ "ws2812": {
+ "pin": "E2"
+ },
"backlight": {
"pin": "B6"
},
@@ -20,79 +28,227 @@
"layouts": {
"LAYOUT_all": {
"layout": [
- {"x":1.5, "y":0},
- {"x":2.5, "y":0},
-
- {"label":"~", "x":0, "y":1},
- {"label":"!", "x":1, "y":1},
- {"label":"@", "x":2, "y":1},
- {"label":"#", "x":3, "y":1},
- {"label":"$", "x":4, "y":1},
- {"label":"%", "x":5, "y":1},
- {"label":"^", "x":6, "y":1},
- {"label":"&", "x":7, "y":1},
- {"label":"*", "x":8, "y":1},
- {"label":"(", "x":9, "y":1},
- {"label":")", "x":10, "y":1},
- {"label":"_", "x":11, "y":1},
- {"label":"+", "x":12, "y":1},
- {"x":13, "y":1},
- {"x":14, "y":1},
-
- {"label":"Tab", "x":0, "y":2, "w":1.5},
- {"label":"Q", "x":1.5, "y":2},
- {"label":"W", "x":2.5, "y":2},
- {"label":"E", "x":3.5, "y":2},
- {"label":"R", "x":4.5, "y":2},
- {"label":"T", "x":5.5, "y":2},
- {"label":"Y", "x":6.5, "y":2},
- {"label":"U", "x":7.5, "y":2},
- {"label":"I", "x":8.5, "y":2},
- {"label":"O", "x":9.5, "y":2},
- {"label":"P", "x":10.5, "y":2},
- {"label":"{", "x":11.5, "y":2},
- {"label":"}", "x":12.5, "y":2},
- {"label":"|", "x":13.5, "y":2, "w":1.5},
-
- {"label":"Caps Lock", "x":0, "y":3, "w":1.75},
- {"label":"A", "x":1.75, "y":3},
- {"label":"S", "x":2.75, "y":3},
- {"label":"D", "x":3.75, "y":3},
- {"label":"F", "x":4.75, "y":3},
- {"label":"G", "x":5.75, "y":3},
- {"label":"H", "x":6.75, "y":3},
- {"label":"J", "x":7.75, "y":3},
- {"label":"K", "x":8.75, "y":3},
- {"label":"L", "x":9.75, "y":3},
- {"label":":", "x":10.75, "y":3},
- {"label":"\"", "x":11.75, "y":3},
- {"label":"Enter", "x":12.75, "y":3, "w":2.25},
-
- {"label":"Shift", "x":0, "y":4},
- {"x":1, "y":4},
- {"label":"Z", "x":2, "y":4},
- {"label":"X", "x":3, "y":4},
- {"label":"C", "x":4, "y":4},
- {"label":"V", "x":5, "y":4},
- {"label":"B", "x":6, "y":4},
- {"label":"N", "x":7, "y":4},
- {"label":"M", "x":8, "y":4},
- {"label":"<", "x":9, "y":4},
- {"label":">", "x":10, "y":4},
- {"label":"?", "x":11, "y":4},
- {"x":12, "y":4},
- {"x":13, "y":4},
- {"x":14, "y":4},
-
- {"label":"Ctrl", "x":0, "y":5, "w":1.25},
- {"label":"Win", "x":1.25, "y":5, "w":1.25},
- {"label":"Alt", "x":2.5, "y":5, "w":1.25},
- {"x":3.75, "y":5, "w":6.25},
- {"label":"Alt", "x":10, "y":5},
- {"label":"Win", "x":11, "y":5},
- {"label":"Menu", "x":12, "y":5},
- {"label":"Ctrl", "x":13, "y":5},
- {"x":14, "y":5}
+ {"label": "Volume Up", "matrix": [4, 4], "x": 1.5, "y": 0},
+ {"label": "Volume Down", "matrix": [4, 8], "x": 2.5, "y": 0},
+
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 1},
+ {"label": "1", "matrix": [0, 1], "x": 1, "y": 1},
+ {"label": "2", "matrix": [0, 2], "x": 2, "y": 1},
+ {"label": "3", "matrix": [0, 3], "x": 3, "y": 1},
+ {"label": "4", "matrix": [0, 4], "x": 4, "y": 1},
+ {"label": "5", "matrix": [0, 5], "x": 5, "y": 1},
+ {"label": "6", "matrix": [0, 6], "x": 6, "y": 1},
+ {"label": "7", "matrix": [0, 7], "x": 7, "y": 1},
+ {"label": "8", "matrix": [0, 8], "x": 8, "y": 1},
+ {"label": "9", "matrix": [0, 9], "x": 9, "y": 1},
+ {"label": "0", "matrix": [0, 10], "x": 10, "y": 1},
+ {"label": "-", "matrix": [0, 11], "x": 11, "y": 1},
+ {"label": "=", "matrix": [0, 12], "x": 12, "y": 1},
+ {"label": "\u2298", "matrix": [0, 13], "x": 13, "y": 1},
+ {"label": "Backspace", "matrix": [0, 14], "x": 14, "y": 1},
+
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 2, "w": 1.5},
+ {"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 2},
+ {"label": "W", "matrix": [1, 3], "x": 2.5, "y": 2},
+ {"label": "E", "matrix": [1, 4], "x": 3.5, "y": 2},
+ {"label": "R", "matrix": [1, 5], "x": 4.5, "y": 2},
+ {"label": "T", "matrix": [1, 6], "x": 5.5, "y": 2},
+ {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 2},
+ {"label": "U", "matrix": [1, 8], "x": 7.5, "y": 2},
+ {"label": "I", "matrix": [1, 9], "x": 8.5, "y": 2},
+ {"label": "O", "matrix": [1, 10], "x": 9.5, "y": 2},
+ {"label": "P", "matrix": [1, 11], "x": 10.5, "y": 2},
+ {"label": "[", "matrix": [1, 12], "x": 11.5, "y": 2},
+ {"label": "]", "matrix": [1, 13], "x": 12.5, "y": 2},
+ {"label": "\\", "matrix": [1, 14], "x": 13.5, "y": 2, "w": 1.5},
+
+ {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.75},
+ {"label": "A", "matrix": [2, 2], "x": 1.75, "y": 3},
+ {"label": "S", "matrix": [2, 3], "x": 2.75, "y": 3},
+ {"label": "D", "matrix": [2, 4], "x": 3.75, "y": 3},
+ {"label": "F", "matrix": [2, 5], "x": 4.75, "y": 3},
+ {"label": "G", "matrix": [2, 6], "x": 5.75, "y": 3},
+ {"label": "H", "matrix": [2, 7], "x": 6.75, "y": 3},
+ {"label": "J", "matrix": [2, 8], "x": 7.75, "y": 3},
+ {"label": "K", "matrix": [2, 9], "x": 8.75, "y": 3},
+ {"label": "L", "matrix": [2, 10], "x": 9.75, "y": 3},
+ {"label": ";", "matrix": [2, 11], "x": 10.75, "y": 3},
+ {"label": "'", "matrix": [2, 12], "x": 11.75, "y": 3},
+ {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 3, "w": 2.25},
+
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 4},
+ {"label": "\u2298", "matrix": [3, 1], "x": 1, "y": 4},
+ {"label": "Z", "matrix": [3, 2], "x": 2, "y": 4},
+ {"label": "X", "matrix": [3, 3], "x": 3, "y": 4},
+ {"label": "C", "matrix": [3, 4], "x": 4, "y": 4},
+ {"label": "V", "matrix": [3, 5], "x": 5, "y": 4},
+ {"label": "B", "matrix": [3, 6], "x": 6, "y": 4},
+ {"label": "N", "matrix": [3, 7], "x": 7, "y": 4},
+ {"label": "M", "matrix": [3, 8], "x": 8, "y": 4},
+ {"label": ",", "matrix": [3, 9], "x": 9, "y": 4},
+ {"label": ".", "matrix": [3, 10], "x": 10, "y": 4},
+ {"label": "/", "matrix": [3, 11], "x": 11, "y": 4},
+ {"label": "\u2298", "matrix": [3, 12], "x": 12, "y": 4},
+ {"label": "Shift", "matrix": [3, 13], "x": 13, "y": 4},
+ {"label": "\u2298", "matrix": [3, 14], "x": 14, "y": 4},
+
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 5, "w": 1.25},
+ {"label": "GUI", "matrix": [4, 1], "x": 1.25, "y": 5, "w": 1.25},
+ {"label": "Alt", "matrix": [4, 3], "x": 2.5, "y": 5, "w": 1.25},
+ {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 5, "w": 6.25},
+ {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 5},
+ {"label": "Fn", "matrix": [4, 11], "x": 11, "y": 5},
+ {"label": "\u2298", "matrix": [4, 12], "x": 12, "y": 5},
+ {"label": "Menu", "matrix": [4, 13], "x": 13, "y": 5},
+ {"label": "Ctrl", "matrix": [4, 14], "x": 14, "y": 5}
+ ]
+ },
+
+ "LAYOUT_ansi": {
+ "layout": [
+ {"label": "Volume Up", "matrix": [4, 4], "x": 1.5, "y": 0},
+ {"label": "Volume Down", "matrix": [4, 8], "x": 2.5, "y": 0},
+
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 1},
+ {"label": "1", "matrix": [0, 1], "x": 1, "y": 1},
+ {"label": "2", "matrix": [0, 2], "x": 2, "y": 1},
+ {"label": "3", "matrix": [0, 3], "x": 3, "y": 1},
+ {"label": "4", "matrix": [0, 4], "x": 4, "y": 1},
+ {"label": "5", "matrix": [0, 5], "x": 5, "y": 1},
+ {"label": "6", "matrix": [0, 6], "x": 6, "y": 1},
+ {"label": "7", "matrix": [0, 7], "x": 7, "y": 1},
+ {"label": "8", "matrix": [0, 8], "x": 8, "y": 1},
+ {"label": "9", "matrix": [0, 9], "x": 9, "y": 1},
+ {"label": "0", "matrix": [0, 10], "x": 10, "y": 1},
+ {"label": "-", "matrix": [0, 11], "x": 11, "y": 1},
+ {"label": "=", "matrix": [0, 12], "x": 12, "y": 1},
+ {"label": "Backspace", "matrix": [0, 14], "x": 13, "y": 1, "w": 2},
+
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 2, "w": 1.5},
+ {"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 2},
+ {"label": "W", "matrix": [1, 3], "x": 2.5, "y": 2},
+ {"label": "E", "matrix": [1, 4], "x": 3.5, "y": 2},
+ {"label": "R", "matrix": [1, 5], "x": 4.5, "y": 2},
+ {"label": "T", "matrix": [1, 6], "x": 5.5, "y": 2},
+ {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 2},
+ {"label": "U", "matrix": [1, 8], "x": 7.5, "y": 2},
+ {"label": "I", "matrix": [1, 9], "x": 8.5, "y": 2},
+ {"label": "O", "matrix": [1, 10], "x": 9.5, "y": 2},
+ {"label": "P", "matrix": [1, 11], "x": 10.5, "y": 2},
+ {"label": "[", "matrix": [1, 12], "x": 11.5, "y": 2},
+ {"label": "]", "matrix": [1, 13], "x": 12.5, "y": 2},
+ {"label": "\\", "matrix": [1, 14], "x": 13.5, "y": 2, "w": 1.5},
+
+ {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.75},
+ {"label": "A", "matrix": [2, 2], "x": 1.75, "y": 3},
+ {"label": "S", "matrix": [2, 3], "x": 2.75, "y": 3},
+ {"label": "D", "matrix": [2, 4], "x": 3.75, "y": 3},
+ {"label": "F", "matrix": [2, 5], "x": 4.75, "y": 3},
+ {"label": "G", "matrix": [2, 6], "x": 5.75, "y": 3},
+ {"label": "H", "matrix": [2, 7], "x": 6.75, "y": 3},
+ {"label": "J", "matrix": [2, 8], "x": 7.75, "y": 3},
+ {"label": "K", "matrix": [2, 9], "x": 8.75, "y": 3},
+ {"label": "L", "matrix": [2, 10], "x": 9.75, "y": 3},
+ {"label": ";", "matrix": [2, 11], "x": 10.75, "y": 3},
+ {"label": "'", "matrix": [2, 12], "x": 11.75, "y": 3},
+ {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 3, "w": 2.25},
+
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 4, "w": 2.25},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 4},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 4},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 4},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 4},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 4},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 4},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 4},
+ {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 4},
+ {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 4},
+ {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 4},
+ {"label": "Shift", "matrix": [3, 13], "x": 12.25, "y": 4, "w": 2.75},
+
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 5, "w": 1.25},
+ {"label": "GUI", "matrix": [4, 1], "x": 1.25, "y": 5, "w": 1.25},
+ {"label": "Alt", "matrix": [4, 3], "x": 2.5, "y": 5, "w": 1.25},
+ {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 5, "w": 6.25},
+ {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 5, "w": 1.25},
+ {"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 5, "w": 1.25},
+ {"label": "Menu", "matrix": [4, 13], "x": 12.5, "y": 5, "w": 1.25},
+ {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 5, "w": 1.25}
+ ]
+ },
+
+ "LAYOUT_ansi_split_bs_rshift": {
+ "layout": [
+ {"label": "Volume Up", "matrix": [4, 4], "x": 1.5, "y": 0},
+ {"label": "Volume Down", "matrix": [4, 8], "x": 2.5, "y": 0},
+
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 1},
+ {"label": "1", "matrix": [0, 1], "x": 1, "y": 1},
+ {"label": "2", "matrix": [0, 2], "x": 2, "y": 1},
+ {"label": "3", "matrix": [0, 3], "x": 3, "y": 1},
+ {"label": "4", "matrix": [0, 4], "x": 4, "y": 1},
+ {"label": "5", "matrix": [0, 5], "x": 5, "y": 1},
+ {"label": "6", "matrix": [0, 6], "x": 6, "y": 1},
+ {"label": "7", "matrix": [0, 7], "x": 7, "y": 1},
+ {"label": "8", "matrix": [0, 8], "x": 8, "y": 1},
+ {"label": "9", "matrix": [0, 9], "x": 9, "y": 1},
+ {"label": "0", "matrix": [0, 10], "x": 10, "y": 1},
+ {"label": "-", "matrix": [0, 11], "x": 11, "y": 1},
+ {"label": "=", "matrix": [0, 12], "x": 12, "y": 1},
+ {"label": "\u2298", "matrix": [0, 13], "x": 13, "y": 1},
+ {"label": "Backspace", "matrix": [0, 14], "x": 14, "y": 1},
+
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 2, "w": 1.5},
+ {"label": "Q", "matrix": [1, 2], "x": 1.5, "y": 2},
+ {"label": "W", "matrix": [1, 3], "x": 2.5, "y": 2},
+ {"label": "E", "matrix": [1, 4], "x": 3.5, "y": 2},
+ {"label": "R", "matrix": [1, 5], "x": 4.5, "y": 2},
+ {"label": "T", "matrix": [1, 6], "x": 5.5, "y": 2},
+ {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 2},
+ {"label": "U", "matrix": [1, 8], "x": 7.5, "y": 2},
+ {"label": "I", "matrix": [1, 9], "x": 8.5, "y": 2},
+ {"label": "O", "matrix": [1, 10], "x": 9.5, "y": 2},
+ {"label": "P", "matrix": [1, 11], "x": 10.5, "y": 2},
+ {"label": "[", "matrix": [1, 12], "x": 11.5, "y": 2},
+ {"label": "]", "matrix": [1, 13], "x": 12.5, "y": 2},
+ {"label": "\\", "matrix": [1, 14], "x": 13.5, "y": 2, "w": 1.5},
+
+ {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.75},
+ {"label": "A", "matrix": [2, 2], "x": 1.75, "y": 3},
+ {"label": "S", "matrix": [2, 3], "x": 2.75, "y": 3},
+ {"label": "D", "matrix": [2, 4], "x": 3.75, "y": 3},
+ {"label": "F", "matrix": [2, 5], "x": 4.75, "y": 3},
+ {"label": "G", "matrix": [2, 6], "x": 5.75, "y": 3},
+ {"label": "H", "matrix": [2, 7], "x": 6.75, "y": 3},
+ {"label": "J", "matrix": [2, 8], "x": 7.75, "y": 3},
+ {"label": "K", "matrix": [2, 9], "x": 8.75, "y": 3},
+ {"label": "L", "matrix": [2, 10], "x": 9.75, "y": 3},
+ {"label": ";", "matrix": [2, 11], "x": 10.75, "y": 3},
+ {"label": "'", "matrix": [2, 12], "x": 11.75, "y": 3},
+ {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 3, "w": 2.25},
+
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 4, "w": 2.25},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 4},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 4},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 4},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 4},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 4},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 4},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 4},
+ {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 4},
+ {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 4},
+ {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 4},
+ {"label": "Shift", "matrix": [3, 13], "x": 12.25, "y": 4, "w": 1.75},
+ {"label": "\u2298", "matrix": [3, 14], "x": 14, "y": 4},
+
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 5, "w": 1.25},
+ {"label": "GUI", "matrix": [4, 1], "x": 1.25, "y": 5, "w": 1.25},
+ {"label": "Alt", "matrix": [4, 3], "x": 2.5, "y": 5, "w": 1.25},
+ {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 5, "w": 6.25},
+ {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 5, "w": 1.25},
+ {"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 5, "w": 1.25},
+ {"label": "Menu", "matrix": [4, 13], "x": 12.5, "y": 5, "w": 1.25},
+ {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 5, "w": 1.25}
]
}
}
diff --git a/keyboards/alf/x2/keymaps/hhkb_60/keymap.c b/keyboards/alf/x2/keymaps/hhkb_60/keymap.c
index 2e261d1a28..6345591d64 100644
--- a/keyboards/alf/x2/keymaps/hhkb_60/keymap.c
+++ b/keyboards/alf/x2/keymaps/hhkb_60/keymap.c
@@ -18,22 +18,22 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_all(
+ [0] = LAYOUT_ansi_split_bs_rshift(
KC_VOLU, KC_VOLD,
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, XXXXXXX, KC_RSFT, MO(1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, XXXXXXX, KC_APP, KC_RCTL
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL
),
- [1] = LAYOUT_all(
+ [1] = LAYOUT_ansi_split_bs_rshift(
KC_MNXT, KC_MPRV,
KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, _______, QK_BOOT,
_______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______
),
};
diff --git a/keyboards/alf/x2/matrix_diagram.md b/keyboards/alf/x2/matrix_diagram.md
new file mode 100644
index 0000000000..45859e862a
--- /dev/null
+++ b/keyboards/alf/x2/matrix_diagram.md
@@ -0,0 +1,27 @@
+# Matrix Diagram for Alf X2
+
+```
+ ┌───┬───┐
+ │44 │48 │
+ └───┴───┘
+┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐
+│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │ │0E │ 2u Backspace
+├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ └─┬─────┤
+│10 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │ │ │
+├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐ │ ISO Enter
+│20 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ │ │ │
+├───┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬───┬───┤ ┌─┴───┴────┤ ┌──────┬───┐
+│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │ │3D │ 2.75u RShift │3D │3E │ 1.75u/1u RShift
+├───┴┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┼───┼───┼───┼───┤ └──────────┘ └──────┴───┘
+│40 │41 │43 │46 │4A │4B │4C │4D │4E │
+└────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘
+┌────────┐
+│30 │ 2.25u LShift
+└────────┘
+┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐
+│40 │41 │43 │46 │4A │4B │4D │4E │ Standard
+└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐
+│40 │41 │43 │46 │4B │4D │4E │ Tsangan/WKL
+└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
+```
diff --git a/keyboards/alf/x2/x2.c b/keyboards/alf/x2/x2.c
deleted file mode 100644
index e4352296b9..0000000000
--- a/keyboards/alf/x2/x2.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2018 @fixed
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "x2.h"
diff --git a/keyboards/alf/x2/x2.h b/keyboards/alf/x2/x2.h
deleted file mode 100644
index 48683ea50b..0000000000
--- a/keyboards/alf/x2/x2.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright 2018-2021 @fixed, MechMerlin, QMK
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define ___ KC_NO
-
-// K44 and K48 are the microswitches at the top of the PCB
-
-#define LAYOUT_all( \
- K44, K48, \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
- K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
- K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
- K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
- K40, K41, K43, K46, K4A, K4B, K4C, K4D, K4E \
-) { \
- { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
- { K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
- { K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___ }, \
- { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
- { K40, K41, ___, K43, K44, ___, K46, ___, K48, ___, K4A, K4B, K4C, K4D, K4E } \
-}