summaryrefslogtreecommitdiffstats
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.json521
-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.json290
-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, 917 insertions, 389 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..9d304c8de9 100644
--- a/keyboards/alf/dc60/info.json
+++ b/keyboards/alf/dc60/info.json
@@ -1,26 +1,541 @@
{
- "keyboard_name": "dc60",
+ "keyboard_name": "dc60",
"manufacturer": "Alf",
- "maintainer": "qmk",
+ "maintainer": "qmk",
"usb": {
"vid": "0xFEED",
"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", "ma