summaryrefslogtreecommitdiffstats
path: root/keyboards/mechlovin
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/mechlovin')
-rw-r--r--keyboards/mechlovin/delphine/info.json2
-rw-r--r--keyboards/mechlovin/delphine/rules.mk6
-rw-r--r--keyboards/mechlovin/foundation/info.json2
-rw-r--r--keyboards/mechlovin/foundation/rules.mk7
-rw-r--r--keyboards/mechlovin/hannah60rgb/rev1/info.json3
-rw-r--r--keyboards/mechlovin/hannah60rgb/rev2/info.json3
-rw-r--r--keyboards/mechlovin/hannah60rgb/rules.mk7
-rw-r--r--keyboards/mechlovin/hannah65/info.json5
-rw-r--r--keyboards/mechlovin/hannah65/rules.mk7
-rw-r--r--keyboards/mechlovin/hannah910/rev1/info.json2
-rw-r--r--keyboards/mechlovin/hannah910/rev1/rules.mk6
-rw-r--r--keyboards/mechlovin/hannah910/rev2/info.json2
-rw-r--r--keyboards/mechlovin/hannah910/rev2/rules.mk6
-rw-r--r--keyboards/mechlovin/hannah910/rev3/info.json2
-rw-r--r--keyboards/mechlovin/hannah910/rev3/rules.mk6
-rw-r--r--keyboards/mechlovin/hex4b/rev1/info.json4
-rw-r--r--keyboards/mechlovin/hex4b/rev1/rules.mk6
-rw-r--r--keyboards/mechlovin/hex4b/rev2/info.json4
-rw-r--r--keyboards/mechlovin/hex4b/rev2/rules.mk6
-rw-r--r--keyboards/mechlovin/hex6c/info.json3
-rw-r--r--keyboards/mechlovin/hex6c/rules.mk7
-rw-r--r--keyboards/mechlovin/infinity87/rev1/info.json5
-rw-r--r--keyboards/mechlovin/infinity87/rev1/rules.mk7
-rw-r--r--keyboards/mechlovin/infinity87/rev2/info.json2
-rw-r--r--keyboards/mechlovin/infinity87/rev2/rules.mk6
-rw-r--r--keyboards/mechlovin/infinity87/rgb_rev1/info.json3
-rw-r--r--keyboards/mechlovin/infinity87/rgb_rev1/rules.mk7
-rw-r--r--keyboards/mechlovin/infinity875/info.json2
-rw-r--r--keyboards/mechlovin/infinity875/rules.mk6
-rw-r--r--keyboards/mechlovin/infinity88/info.json3
-rw-r--r--keyboards/mechlovin/infinity88/rules.mk7
-rw-r--r--keyboards/mechlovin/infinityce/info.json2
-rw-r--r--keyboards/mechlovin/infinityce/rules.mk6
-rw-r--r--keyboards/mechlovin/jay60/info.json2
-rw-r--r--keyboards/mechlovin/jay60/rules.mk6
-rw-r--r--keyboards/mechlovin/kanu/info.json2
-rw-r--r--keyboards/mechlovin/kanu/rules.mk6
-rw-r--r--keyboards/mechlovin/kay60/info.json2
-rw-r--r--keyboards/mechlovin/kay60/rules.mk6
-rw-r--r--keyboards/mechlovin/kay65/info.json2
-rw-r--r--keyboards/mechlovin/kay65/rules.mk6
-rw-r--r--keyboards/mechlovin/mechlovin9/rev1/info.json5
-rw-r--r--keyboards/mechlovin/mechlovin9/rev1/rules.mk7
-rw-r--r--keyboards/mechlovin/mechlovin9/rev2/info.json4
-rw-r--r--keyboards/mechlovin/mechlovin9/rev2/rules.mk6
-rw-r--r--keyboards/mechlovin/olly/bb/info.json2
-rw-r--r--keyboards/mechlovin/olly/bb/rules.mk6
-rw-r--r--keyboards/mechlovin/olly/jf/info.json2
-rw-r--r--keyboards/mechlovin/olly/jf/rules.mk6
-rw-r--r--keyboards/mechlovin/olly/octagon/info.json2
-rw-r--r--keyboards/mechlovin/olly/octagon/rules.mk6
-rw-r--r--keyboards/mechlovin/olly/orion/info.json2
-rw-r--r--keyboards/mechlovin/olly/orion/rules.mk7
-rw-r--r--keyboards/mechlovin/pisces/info.json2
-rw-r--r--keyboards/mechlovin/pisces/rules.mk6
-rw-r--r--keyboards/mechlovin/serratus/info.json2
-rw-r--r--keyboards/mechlovin/serratus/rules.mk6
-rw-r--r--keyboards/mechlovin/th1800/info.json2
-rw-r--r--keyboards/mechlovin/th1800/rules.mk6
-rw-r--r--keyboards/mechlovin/tmkl/info.json3
-rw-r--r--keyboards/mechlovin/tmkl/rules.mk7
-rw-r--r--keyboards/mechlovin/zed60/info.json2
-rw-r--r--keyboards/mechlovin/zed60/rules.mk7
-rw-r--r--keyboards/mechlovin/zed65/info.json4
-rw-r--r--keyboards/mechlovin/zed65/rules.mk7
65 files changed, 85 insertions, 208 deletions
diff --git a/keyboards/mechlovin/delphine/info.json b/keyboards/mechlovin/delphine/info.json
index 66dedc5ef7..5958db55d0 100644
--- a/keyboards/mechlovin/delphine/info.json
+++ b/keyboards/mechlovin/delphine/info.json
@@ -6,6 +6,8 @@
"usb": {
"vid": "0x4D4C"
},
+ "processor": "atmega32u4",
+ "bootloader": "atmel-dfu",
"community_layouts": ["numpad_6x4", "ortho_6x4"],
"layouts": {
"LAYOUT_ortho_6x4": {
diff --git a/keyboards/mechlovin/delphine/rules.mk b/keyboards/mechlovin/delphine/rules.mk
index 1cb91c908c..ef29542a93 100644
--- a/keyboards/mechlovin/delphine/rules.mk
+++ b/keyboards/mechlovin/delphine/rules.mk
@@ -1,9 +1,3 @@
-# MCU name
-MCU = atmega32u4
-
-# Bootloader selection
-BOOTLOADER = atmel-dfu
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/mechlovin/foundation/info.json b/keyboards/mechlovin/foundation/info.json
index 584a774367..2ed9cbdc06 100644
--- a/keyboards/mechlovin/foundation/info.json
+++ b/keyboards/mechlovin/foundation/info.json
@@ -8,6 +8,8 @@
"pid": "0x0180",
"device_version": "0.0.2"
},
+ "processor": "STM32F103",
+ "bootloader": "stm32duino",
"layout_aliases": {
"LAYOUT_tkl_nofrow_ansi": "LAYOUT_ansi",
"LAYOUT_tkl_nofrow_iso": "LAYOUT_iso"
diff --git a/keyboards/mechlovin/foundation/rules.mk b/keyboards/mechlovin/foundation/rules.mk
index 5a0af7c463..c0fdd8a2ce 100644
--- a/keyboards/mechlovin/foundation/rules.mk
+++ b/keyboards/mechlovin/foundation/rules.mk
@@ -1,10 +1,3 @@
-# MCU name
-MCU = STM32F103
-BOARD = STM32_F103_STM32DUINO
-
-# Bootloader selection
-BOOTLOADER = stm32duino
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/mechlovin/hannah60rgb/rev1/info.json b/keyboards/mechlovin/hannah60rgb/rev1/info.json
index 912f973e0c..2ed43a3fc2 100644
--- a/keyboards/mechlovin/hannah60rgb/rev1/info.json
+++ b/keyboards/mechlovin/hannah60rgb/rev1/info.json
@@ -8,6 +8,9 @@
"pid": "0x6001",
"device_version": "0.0.1"
},
+ "processor": "STM32F303",
+ "bootloader": "stm32-dfu",
+ "board": "QMK_PROTON_C",
"community_layouts": ["60_ansi", "60_iso"],
"layouts": {
"LAYOUT_all": {
diff --git a/keyboards/mechlovin/hannah60rgb/rev2/info.json b/keyboards/mechlovin/hannah60rgb/rev2/info.json
index 616d15c3e2..798e67ee78 100644
--- a/keyboards/mechlovin/hannah60rgb/rev2/info.json
+++ b/keyboards/mechlovin/hannah60rgb/rev2/info.json
@@ -8,6 +8,9 @@
"pid": "0x6002",
"device_version": "0.0.1"
},
+ "processor": "STM32F303",
+ "bootloader": "stm32-dfu",
+ "board": "QMK_PROTON_C",
"community_layouts": ["60_ansi", "60_iso"],
"layouts": {
"LAYOUT_all": {
diff --git a/keyboards/mechlovin/hannah60rgb/rules.mk b/keyboards/mechlovin/hannah60rgb/rules.mk
index 8d52323021..65e5f070fb 100644
--- a/keyboards/mechlovin/hannah60rgb/rules.mk
+++ b/keyboards/mechlovin/hannah60rgb/rules.mk
@@ -1,10 +1,3 @@
-# MCU name
-MCU = STM32F303
-BOARD = QMK_PROTON_C
-
-# Bootloader selection
-BOOTLOADER = stm32-dfu
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/mechlovin/hannah65/info.json b/keyboards/mechlovin/hannah65/info.json
new file mode 100644
index 0000000000..c06ffbaf06
--- /dev/null
+++ b/keyboards/mechlovin/hannah65/info.json
@@ -0,0 +1,5 @@
+{
+ "processor": "STM32F303",
+ "bootloader": "stm32-dfu",
+ "board": "QMK_PROTON_C"
+}
diff --git a/keyboards/mechlovin/hannah65/rules.mk b/keyboards/mechlovin/hannah65/rules.mk
index 39cf604383..e01e6c73da 100644
--- a/keyboards/mechlovin/hannah65/rules.mk
+++ b/keyboards/mechlovin/hannah65/rules.mk
@@ -1,10 +1,3 @@
-# MCU name
-MCU = STM32F303
-BOARD = QMK_PROTON_C
-
-# Bootloader selection
-BOOTLOADER = stm32-dfu
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/mechlovin/hannah910/rev1/info.json b/keyboards/mechlovin/hannah910/rev1/info.json
index bbfdddf1ad..7f61b0e023 100644
--- a/keyboards/mechlovin/hannah910/rev1/info.json
+++ b/keyboards/mechlovin/hannah910/rev1/info.json
@@ -8,6 +8,8 @@
"pid": "0x9101",
"device_version": "0.0.1"
},
+ "processor": "atmega32u4",
+ "bootloader": "atmel-dfu",
"layouts": {
"LAYOUT_all": {
"layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Back", "x":13, "y":0}, {"label":"Delete", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"INS", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"HOME", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"Shift", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Up", "x":14, "y":3}, {"label":"END", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"Space", "x":3.75, "y":4, "w":2.75}, {"label":"Space", "x":6.5, "y":4, "w":1.25}, {"label":"Space", "x":7.75, "y":4, "w":2.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Left", "x":13, "y":4}, {"label":"Down", "x":14, "y":4}, {"label":"Right", "x":15, "y":4}]
diff --git a/keyboards/mechlovin/hannah910/rev1/rules.mk b/keyboards/mechlovin/hannah910/rev1/rules.mk
index c483c98ee3..8a6e2c7b71 100644
--- a/keyboards/mechlovin/hannah910/rev1/rules.mk
+++ b/keyboards/mechlovin/hannah910/rev1/rules.mk
@@ -1,9 +1,3 @@
-# MCU name
-MCU = atmega32u4
-
-# Bootloader selection
-BOOTLOADER = atmel-dfu
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/mechlovin/hannah910/rev2/info.json b/keyboards/mechlovin/hannah910/rev2/info.json
index b180466eeb..76cb6cb8f0 100644
--- a/keyboards/mechlovin/hannah910/rev2/info.json
+++ b/keyboards/mechlovin/hannah910/rev2/info.json
@@ -8,6 +8,8 @@
"pid": "0x9102",
"device_version": "0.0.2"
},
+ "processor": "atmega32u4",
+ "bootloader": "atmel-dfu",
"community_layouts": ["65_ansi_blocker", "65_iso_blocker_split_bs"],
"layouts": {
"LAYOUT_all": {
diff --git a/keyboards/mechlovin/hannah910/rev2/rules.mk b/keyboards/mechlovin/hannah910/rev2/rules.mk
index c483c98ee3..8a6e2c7b71 100644
--- a/keyboards/mechlovin/hannah910/rev2/rules.mk
+++ b/keyboards/mechlovin/hannah910/rev2/rules.mk
@@ -1,9 +1,3 @@
-# MCU name
-MCU = atmega32u4
-
-# Bootloader selection
-BOOTLOADER = atmel-dfu
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/mechlovin/hannah910/rev3/info.json b/keyboards/mechlovin/hannah910/rev3/info.json
index dc4953d831..7bae7c1579 100644
--- a/keyboards/mechlovin/hannah910/rev3/info.json
+++ b/keyboards/mechlovin/hannah910/rev3/info.json
@@ -8,6 +8,8 @@
"pid": "0x9103",
"device_version": "0.0.2"
},
+ "processor": "atmega32u4",
+ "bootloader": "atmel-dfu",
"community_layouts": ["65_ansi"],
"layouts": {
"LAYOUT_all": {
diff --git a/keyboards/mechlovin/hannah910/rev3/rules.mk b/keyboards/mechlovin/hannah910/rev3/rules.mk
index c483c98ee3..8a6e2c7b71 100644
--- a/keyboards/mechlovin/hannah910/rev3/rules.mk
+++ b/keyboards/mechlovin/hannah910/rev3/rules.mk
@@ -1,9 +1,3 @@
-# MCU name
-MCU = atmega32u4
-
-# Bootloader selection
-BOOTLOADER = atmel-dfu
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/mechlovin/hex4b/rev1/info.json b/keyboards/mechlovin/hex4b/rev1/info.json
index b2dfdec696..be59552b33 100644
--- a/keyboards/mechlovin/hex4b/rev1/info.json
+++ b/keyboards/mechlovin/hex4b/rev1/info.json
@@ -2,5 +2,7 @@
"keyboard_name": "Hex-4B Rev.1",
"usb": {
"device_version": "0.0.1"
- }
+ },
+ "processor": "atmega32a",
+ "bootloader": "usbasploader"
}
diff --git a/keyboards/mechlovin/hex4b/rev1/rules.mk b/keyboards/mechlovin/hex4b/rev1/rules.mk
index c3a1785039..15d473397d 100644
--- a/keyboards/mechlovin/hex4b/rev1/rules.mk
+++ b/keyboards/mechlovin/hex4b/rev1/rules.mk
@@ -1,9 +1,3 @@
-# MCU name
-MCU = atmega32a
-
-# Bootloader selection
-BOOTLOADER = usbasploader
-
# Processor frequency
F_CPU = 16000000
diff --git a/keyboards/mechlovin/hex4b/rev2/info.json b/keyboards/mechlovin/hex4b/rev2/info.json
index da18a2ce4b..040f96b010 100644
--- a/keyboards/mechlovin/hex4b/rev2/info.json
+++ b/keyboards/mechlovin/hex4b/rev2/info.json
@@ -2,5 +2,7 @@
"keyboard_name": "Hex-4B Rev.2",
"usb": {
"device_version": "0.0.2"
- }
+ },
+ "processor": "STM32F103",
+ "bootloader": "stm32duino"
}
diff --git a/keyboards/mechlovin/hex4b/rev2/rules.mk b/keyboards/mechlovin/hex4b/rev2/rules.mk
index a61a25009b..a5089d51a5 100644
--- a/keyboards/mechlovin/hex4b/rev2/rules.mk
+++ b/keyboards/mechlovin/hex4b/rev2/rules.mk
@@ -1,9 +1,3 @@
-# MCU name
-MCU = STM32F103
-
-# Bootloader selection
-BOOTLOADER = stm32duino
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/mechlovin/hex6c/info.json b/keyboards/mechlovin/hex6c/info.json
index 5c01225cd7..990dbfd48c 100644
--- a/keyboards/mechlovin/hex6c/info.json
+++ b/keyboards/mechlovin/hex6c/info.json
@@ -8,6 +8,9 @@
"pid": "0x6C01",
"device_version": "0.0.1"
},
+ "processor": "STM32F303",
+ "bootloader": "stm32-dfu",
+ "board": "QMK_PROTON_C",
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/mechlovin/hex6c/rules.mk b/keyboards/mechlovin/hex6c/rules.mk
index 3bdec7329d..61776ab892 100644
--- a/keyboards/mechlovin/hex6c/rules.mk
+++ b/keyboards/mechlovin/hex6c/rules.mk
@@ -1,10 +1,3 @@
-# MCU name
-MCU = STM32F303
-BOARD = QMK_PROTON_C
-
-# Bootloader selection
-BOOTLOADER = stm32-dfu
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/mechlovin/infinity87/rev1/info.json b/keyboards/mechlovin/infinity87/rev1/info.json
new file mode 100644
index 0000000000..c06ffbaf06
--- /dev/null
+++ b/keyboards/mechlovin/infinity87/rev1/info.json
@@ -0,0 +1,5 @@
+{
+ "processor": "STM32F303",
+ "bootloader": "stm32-dfu",
+ "board": "QMK_PROTON_C"
+}
diff --git a/keyboards/mechlovin/infinity87/rev1/rules.mk b/keyboards/mechlovin/infinity87/rev1/rules.mk
index 82b0f2e482..53a9137b2f 100644
--- a/keyboards/mechlovin/infinity87/rev1/rules.mk
+++ b/keyboards/mechlovin/infinity87/rev1/rules.mk
@@ -1,10 +1,3 @@
-# MCU name
-MCU = STM32F303
-BOARD = QMK_PROTON_C
-
-# Bootloader selection
-BOOTLOADER = stm32-dfu
-
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
DEFAULT_FOLDER = mechlovin/infinity87/rev1/standard
diff --git a/keyboards/mechlovin/infinity87/rev2/info.json b/keyboards/mechlovin/infinity87/rev2/info.json
index 62aa3cfeb0..858f906ed2 100644
--- a/keyboards/mechlovin/infinity87/rev2/info.json
+++ b/keyboards/mechlovin/infinity87/rev2/info.json
@@ -8,6 +8,8 @@
"pid": "0x8702",
"device_version": "0.0.1"
},
+ "processor": "atmega32u4",
+ "bootloader": "atmel-dfu",
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/mechlovin/infinity87/rev2/rules.mk b/keyboards/mechlovin/infinity87/rev2/rules.mk
index 92823adea9..ea7804f158 100644
--- a/keyboards/mechlovin/infinity87/rev2/rules.mk
+++ b/keyboards/mechlovin/infinity87/rev2/rules.mk
@@ -1,9 +1,3 @@
-# MCU name
-MCU = atmega32u4
-
-# Bootloader selection
-BOOTLOADER = atmel-dfu
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/info.json b/keyboards/mechlovin/infinity87/rgb_rev1/info.json
index fc308175cf..604fa512ed 100644
--- a/keyboards/mechlovin/infinity87/rgb_rev1/info.json
+++ b/keyboards/mechlovin/infinity87/rgb_rev1/info.json
@@ -8,6 +8,9 @@
"pid": "0x8710",
"device_version": "0.0.1"
},
+ "processor": "STM32F303",
+ "bootloader": "stm32-dfu",
+ "board": "QMK_PROTON_C",
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/rules.mk b/keyboards/mechlovin/infinity87/rgb_rev1/rules.mk
index 27de40424a..5a28c2e1c2 100644
--- a/keyboards/mechlovin/infinity87/rgb_rev1/rules.mk
+++ b/keyboards/mechlovin/infinity87/rgb_rev1/rules.mk
@@ -1,9 +1,2 @@
-# MCU name
-MCU = STM32F303
-BOARD = QMK_PROTON_C
-
-# Bootloader selection
-BOOTLOADER = stm32-dfu
-
RGB_MATRIX_ENABLE = yes # Use RGB matrix
RGB_MATRIX_DRIVER = IS31FL3741
diff --git a/keyboards/mechlovin/infinity875/info.json b/keyboards/mechlovin/infinity875/info.json
index 9c9fe10a10..3b31aee81a 100644
--- a/keyboards/mechlovin/infinity875/info.json
+++ b/keyboards/mechlovin/infinity875/info.json
@@ -8,6 +8,8 @@
"pid": "0x0875",
"device_version": "0.0.1"
},
+ "processor": "atmega32u4",
+ "bootloader": "atmel-dfu",
"layouts": {
"LAYOUT_tkl_ansi_split_bs_rshift": {
"layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":2, "y":0}, {"label":"0,2", "x":3, "y":0}, {"label":"0,3", "x":4, "y":0}, {"label":"0,4", "x":5, "y":0}, {"label":"0,5", "x":6.5, "y":0}, {"label":"0,6", "x":7.5, "y":0}, {"label":"0,7", "x":8.5, "y":0}, {"label":"0,8", "x":9.5, "y":0}, {"label":"0,9", "x":11, "y":0}, {"label":"0,10", "x":12, "y":0}, {"label":"0,11", "x":13, "y":0}, {"label":"0,12", "x":14, "y":0}, {"label":"0,14", "x":15.25, "y":0}, {"label":"0,15", "x":16.25, "y":0}, {"label":"0,16", "x":17.25, "y":0}, {"label":"1,0", "x":0, "y":1.25}, {"label":"1,1", "x":1, "y":1.25}, {"label":"1,2", "x":2, "y":1.25}, {"label":"1,3", "x":3, "y":1.25}, {"label":"1,4", "x":4, "y":1.25}, {"label":"1,5", "x":5, "y":1.25}, {"label":"1,6", "x":6, "y":1.25}, {"label":"1,7", "x":7, "y":1.25}, {"label":"1,8", "x":8, "y":1.25}, {"label":"1,9", "x":9, "y":1.25}, {"label":"1,10", "x