diff options
Diffstat (limited to 'keyboards/splitkb')
47 files changed, 323 insertions, 441 deletions
diff --git a/keyboards/splitkb/aurora/corne/keymaps/x123/config.h b/keyboards/splitkb/aurora/corne/keymaps/x123/config.h index 12ca322b04..29d2337f10 100644 --- a/keyboards/splitkb/aurora/corne/keymaps/x123/config.h +++ b/keyboards/splitkb/aurora/corne/keymaps/x123/config.h @@ -21,5 +21,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define TAPPING_TOGGLE 1 #define TAPPING_TERM 280 -#define IGNORE_MOD_TAP_INTERRUPT -#define UNICODE_SELECTED_MODES UNICODE_MODE_WINCOMPOSE, UNICODE_MODE_MACOS, UNICODE_MODE_LINUX
\ No newline at end of file +#define UNICODE_SELECTED_MODES UNICODE_MODE_WINCOMPOSE, UNICODE_MODE_MACOS, UNICODE_MODE_LINUX diff --git a/keyboards/splitkb/aurora/corne/rev1/info.json b/keyboards/splitkb/aurora/corne/rev1/info.json index 64da285877..2051020895 100644 --- a/keyboards/splitkb/aurora/corne/rev1/info.json +++ b/keyboards/splitkb/aurora/corne/rev1/info.json @@ -105,12 +105,14 @@ } }, "rgblight": { - "pin": "D3", "led_count": 54, "split": true, "split_count": [27, 27], "max_brightness": 128 }, + "ws2812": { + "pin": "D3" + }, "rgb_matrix": { "driver": "WS2812", "layout": [ diff --git a/keyboards/splitkb/aurora/corne/rev1/rev1.c b/keyboards/splitkb/aurora/corne/rev1/rev1.c index 1fdbbf93f1..31ea13fb53 100644 --- a/keyboards/splitkb/aurora/corne/rev1/rev1.c +++ b/keyboards/splitkb/aurora/corne/rev1/rev1.c @@ -14,7 +14,7 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include QMK_KEYBOARD_H +#include "quantum.h" #ifdef SWAP_HANDS_ENABLE // clang-format off diff --git a/keyboards/splitkb/aurora/lily58/rev1/info.json b/keyboards/splitkb/aurora/lily58/rev1/info.json index 4c00eedbeb..0341189830 100644 --- a/keyboards/splitkb/aurora/lily58/rev1/info.json +++ b/keyboards/splitkb/aurora/lily58/rev1/info.json @@ -116,12 +116,14 @@ } }, "rgblight": { - "pin": "D3", "led_count": 68, "split": true, "split_count": [34, 34], "max_brightness": 128 }, + "ws2812": { + "pin": "D3" + }, "rgb_matrix": { "driver": "WS2812", "layout": [ diff --git a/keyboards/splitkb/aurora/lily58/rev1/rev1.c b/keyboards/splitkb/aurora/lily58/rev1/rev1.c index d6f0a1153b..34de643c1d 100644 --- a/keyboards/splitkb/aurora/lily58/rev1/rev1.c +++ b/keyboards/splitkb/aurora/lily58/rev1/rev1.c @@ -14,7 +14,7 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include QMK_KEYBOARD_H +#include "quantum.h" #ifdef SWAP_HANDS_ENABLE // clang-format off diff --git a/keyboards/splitkb/aurora/sweep/keymaps/default/keymap.json b/keyboards/splitkb/aurora/sweep/keymaps/default/keymap.json index b62202d2b4..ade21d5ece 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/default/keymap.json +++ b/keyboards/splitkb/aurora/sweep/keymaps/default/keymap.json @@ -79,7 +79,6 @@ "tapping": { "term": 200, "permissive_hold": true, - "ignore_mod_tap_interrupt": true, "force_hold": true } } diff --git a/keyboards/splitkb/aurora/sweep/rev1/info.json b/keyboards/splitkb/aurora/sweep/rev1/info.json index dc1cfeea82..d044b243b2 100644 --- a/keyboards/splitkb/aurora/sweep/rev1/info.json +++ b/keyboards/splitkb/aurora/sweep/rev1/info.json @@ -108,12 +108,14 @@ } }, "rgblight": { - "pin": "D3", "led_count": 46, "split": true, "split_count": [23, 23], "max_brightness": 128 }, + "ws2812": { + "pin": "D3" + }, "rgb_matrix": { "driver": "WS2812", "layout": [ diff --git a/keyboards/splitkb/aurora/sweep/rev1/rev1.c b/keyboards/splitkb/aurora/sweep/rev1/rev1.c index 43c2d12a67..a6b1a6796d 100644 --- a/keyboards/splitkb/aurora/sweep/rev1/rev1.c +++ b/keyboards/splitkb/aurora/sweep/rev1/rev1.c @@ -14,7 +14,7 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include QMK_KEYBOARD_H +#include "quantum.h" #ifdef SWAP_HANDS_ENABLE // clang-format off diff --git a/keyboards/splitkb/kyria/keymaps/artflag/config.h b/keyboards/splitkb/kyria/keymaps/artflag/config.h index 5607926cd3..de044c8d29 100644 --- a/keyboards/splitkb/kyria/keymaps/artflag/config.h +++ b/keyboards/splitkb/kyria/keymaps/artflag/config.h @@ -18,6 +18,3 @@ #define TAPPING_TERM 175 #define TAPPING_TOGGLE 2 - -// Lets you roll mod-tap keys -#define IGNORE_MOD_TAP_INTERRUPT diff --git a/keyboards/splitkb/kyria/keymaps/cameronjlarsen/config.h b/keyboards/splitkb/kyria/keymaps/cameronjlarsen/config.h index efd8c8fe24..bcbdbac9e2 100644 --- a/keyboards/splitkb/kyria/keymaps/cameronjlarsen/config.h +++ b/keyboards/splitkb/kyria/keymaps/cameronjlarsen/config.h @@ -33,8 +33,6 @@ # define RGBLIGHT_LIMIT_VAL 150 #endif -// Lets you roll mod-tap keys -#define IGNORE_MOD_TAP_INTERRUPT // Enable rapid switch from tap to hold, disables double tap hold auto-repeat. #define TAPPING_FORCE_HOLD // Configure the global tapping term (default: 200ms) diff --git a/keyboards/splitkb/kyria/keymaps/default/config.h b/keyboards/splitkb/kyria/keymaps/default/config.h index 00be07e2fa..3fcf25be13 100644 --- a/keyboards/splitkb/kyria/keymaps/default/config.h +++ b/keyboards/splitkb/kyria/keymaps/default/config.h @@ -35,5 +35,3 @@ # endif #endif -// Lets you roll mod-tap keys -#define IGNORE_MOD_TAP_INTERRUPT diff --git a/keyboards/splitkb/kyria/keymaps/gotham/config.h b/keyboards/splitkb/kyria/keymaps/gotham/config.h index 1b0ba183d0..8feb6042f5 100644 --- a/keyboards/splitkb/kyria/keymaps/gotham/config.h +++ b/keyboards/splitkb/kyria/keymaps/gotham/config.h @@ -17,7 +17,6 @@ #pragma once #define EE_HANDS -#define IGNORE_MOD_TAP_INTERRUPT // Fix for Elite C rev3 #define SPLIT_USB_DETECT diff --git a/keyboards/splitkb/kyria/keymaps/gotham/thumbstick.c b/keyboards/splitkb/kyria/keymaps/gotham/thumbstick.c index ec08fb07d4..bb307b149f 100644 --- a/keyboards/splitkb/kyria/keymaps/gotham/thumbstick.c +++ b/keyboards/splitkb/kyria/keymaps/gotham/thumbstick.c @@ -146,7 +146,7 @@ void update_keycode_status(uint16_t keycode, bool last, bool current) { void pointing_device_init(void) { thumbstick_init(); } -void pointing_device_task(void) { +bool pointing_device_task(void) { report_mouse_t report = pointing_device_get_report(); if (!isLeftHand) { @@ -191,5 +191,5 @@ void pointing_device_task(void) { } pointing_device_set_report(report); - pointing_device_send(); + return pointing_device_send(); } diff --git a/keyboards/splitkb/kyria/keymaps/jimmysjolund/config.h b/keyboards/splitkb/kyria/keymaps/jimmysjolund/config.h deleted file mode 100644 index 217e97f931..0000000000 --- a/keyboards/splitkb/kyria/keymaps/jimmysjolund/config.h +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright 2022 Thomas Baart <thomas@splitkb.com> - * - * 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 - -// Lets you roll mod-tap keys -#define IGNORE_MOD_TAP_INTERRUPT diff --git a/keyboards/splitkb/kyria/keymaps/lw/config.h b/keyboards/splitkb/kyria/keymaps/lw/config.h index 6766ab5cdb..efacab2ffe 100644 --- a/keyboards/splitkb/kyria/keymaps/lw/config.h +++ b/keyboards/splitkb/kyria/keymaps/lw/config.h @@ -16,11 +16,8 @@ #pragma once -// Lets you roll mod-tap keys -#define IGNORE_MOD_TAP_INTERRUPT - // If you are using an Elite C rev3 on the slave side, uncomment the lines below: // #define SPLIT_USB_DETECT // #define NO_USB_STARTUP_CHECK -#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX, UNICODE_MODE_WINCOMPOSE // support for Linux and Windows unicode
\ No newline at end of file +#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX, UNICODE_MODE_WINCOMPOSE // support for Linux and Windows unicode diff --git a/keyboards/splitkb/kyria/keymaps/maherma-adg/config.h b/keyboards/splitkb/kyria/keymaps/maherma-adg/config.h index 1a4c64ed13..e4146661c6 100644 --- a/keyboards/splitkb/kyria/keymaps/maherma-adg/config.h +++ b/keyboards/splitkb/kyria/keymaps/maherma-adg/config.h @@ -33,8 +33,6 @@ # define RGBLIGHT_LIMIT_VAL 150 #endif -// Lets you roll mod-tap keys -#define IGNORE_MOD_TAP_INTERRUPT // If you are using an Elite C rev3 on the slave side, uncomment the lines below: // #define SPLIT_USB_DETECT diff --git a/keyboards/splitkb/kyria/keymaps/muppetjones/config.h b/keyboards/splitkb/kyria/keymaps/muppetjones/config.h index b6351869fe..210beee0ed 100644 --- a/keyboards/splitkb/kyria/keymaps/muppetjones/config.h +++ b/keyboards/splitkb/kyria/keymaps/muppetjones/config.h @@ -39,9 +39,6 @@ // -- defined in user namespace // #define TAPPING_TERM 200 -// Prevent normal rollover on alphas from accidentally triggering mods. -#define IGNORE_MOD_TAP_INTERRUPT - // Enable rapid switch from tap to hold, disables double tap hold auto-repeat. #define QUICK_TAP_TERM 0 diff --git a/keyboards/splitkb/kyria/keymaps/ohlin/config.h b/keyboards/splitkb/kyria/keymaps/ohlin/config.h index 4451ff731c..6e07be170b 100644 --- a/keyboards/splitkb/kyria/keymaps/ohlin/config.h +++ b/keyboards/splitkb/kyria/keymaps/ohlin/config.h @@ -23,7 +23,5 @@ // Configure the global tapping term (default: 200ms) #define TAPPING_TERM 175 -// Prevent normal rollover on alphas from accidentally triggering mods. -#define IGNORE_MOD_TAP_INTERRUPT // Enable rapid switch from tap to hold, disables double tap hold auto-repeat. #define QUICK_TAP_TERM 0 diff --git a/keyboards/splitkb/kyria/keymaps/pierrec83/config.h b/keyboards/splitkb/kyria/keymaps/pierrec83/config.h index b4f3f32255..280e6b1d12 100644 --- a/keyboards/splitkb/kyria/keymaps/pierrec83/config.h +++ b/keyboards/splitkb/kyria/keymaps/pierrec83/config.h @@ -43,7 +43,6 @@ #define TAPPING_TERM 200 #define PERMISSIVE_HOLD -#define IGNORE_MOD_TAP_INTERRUPT #define QUICK_TAP_TERM 0 // Allows to use either side as the master. Look at the documentation for info: // https://docs.qmk.fm/#/config_options?id=setting-handedness diff --git a/keyboards/splitkb/kyria/keymaps/via/config.h b/keyboards/splitkb/kyria/keymaps/via/config.h index f4449ac7a0..9d1c0eee5c 100644 --- a/keyboards/splitkb/kyria/keymaps/via/config.h +++ b/keyboards/splitkb/kyria/keymaps/via/config.h @@ -18,7 +18,6 @@ #define LAYER_STATE_8BIT #define DYNAMIC_KEYMAP_LAYER_COUNT 5 -#define IGNORE_MOD_TAP_INTERRUPT #undef LOCKING_SUPPORT_ENABLE #undef LOCKING_RESYNC_ENABLE diff --git a/keyboards/splitkb/kyria/keymaps/winternebs/config.h b/keyboards/splitkb/kyria/keymaps/winternebs/config.h index f0632e90ae..95e2a04152 100755 --- a/keyboards/splitkb/kyria/keymaps/winternebs/config.h +++ b/keyboards/splitkb/kyria/keymaps/winternebs/config.h @@ -28,4 +28,3 @@ #define NO_ACTION_FUNCTION #define NO_ACTION_ONESHOT #define QUICK_TAP_TERM 0 -#define IGNORE_MOD_TAP_INTERRUPT diff --git a/keyboards/splitkb/kyria/keymaps/zigotica/config.h b/keyboards/splitkb/kyria/keymaps/zigotica/config.h index 8c4e8dfece..9376550cab 100644 --- a/keyboards/splitkb/kyria/keymaps/zigotica/config.h +++ b/keyboards/splitkb/kyria/keymaps/zigotica/config.h @@ -23,7 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. // these should work better for homerow modifiers #define TAPPING_TERM 350 #define PERMISSIVE_HOLD -#define IGNORE_MOD_TAP_INTERRUPT #define QUICK_TAP_TERM 0 #define LEADER_PER_KEY_TIMING diff --git a/keyboards/splitkb/kyria/kyria.h b/keyboards/splitkb/kyria/kyria.h deleted file mode 100644 index 9018220eba..0000000000 --- a/keyboards/splitkb/kyria/kyria.h +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright 2022 Thomas Baart <thomas@splitkb.com> - * - * 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" - -#if defined(KEYBOARD_splitkb_kyria_rev1) -# include "rev1.h" -#endif -#if defined(KEYBOARD_splitkb_kyria_rev2) -# include "rev2.h" -#endif diff --git a/keyboards/splitkb/kyria/rev1/base/info.json b/keyboards/splitkb/kyria/rev1/base/info.json new file mode 100644 index 0000000000..9f75b9c218 --- /dev/null +++ b/keyboards/splitkb/kyria/rev1/base/info.json @@ -0,0 +1,5 @@ +{ + "build": { + "lto": true + } +} diff --git a/keyboards/splitkb/kyria/rev1/base/rules.mk b/keyboards/splitkb/kyria/rev1/base/rules.mk new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/keyboards/splitkb/kyria/rev1/base/rules.mk diff --git a/keyboards/splitkb/kyria/rev1/config.h b/keyboards/splitkb/kyria/rev1/config.h index 8ca0d50ea6..3f7655d431 100644 --- a/keyboards/splitkb/kyria/rev1/config.h +++ b/keyboards/splitkb/kyria/rev1/config.h @@ -17,15 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #pragma once -// wiring -#define MATRIX_ROW_PINS \ - { B4, E6, D7, D4 } -#define MATRIX_COL_PINS \ - { B6, B2, B3, B1, F7, F6, F5, F4 } - -/* COL2ROW, ROW2COL*/ -#define DIODE_DIRECTION COL2ROW - /* * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. */ @@ -38,7 +29,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. # define SERIAL_USART_TX_PIN D3 # define SERIAL_USART_RX_PIN D2 -# define RGB_DI_PIN PAL_LINE(GPIOA, 3) +# define WS2812_DI_PIN PAL_LINE(GPIOA, 3) # define WS2812_PWM_DRIVER PWMD2 // default: PWMD2 # define WS2812_PWM_CHANNEL 4 // default: 2 # define WS2812_PWM_PAL_MODE 1 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2 @@ -46,7 +37,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. # define WS2812_DMA_CHANNEL 2 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. # define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM2_UP // DMAMUX configuration for TIMx_UP -- only required if your MCU has a DMAMUX peripheral, see the respective reference manual for the appropriate values for your MCU. #else -# define RGB_DI_PIN D3 +# define WS2812_DI_PIN D3 # define SOFT_SERIAL_PIN D2 #endif diff --git a/keyboards/splitkb/kyria/rev1/info.json b/keyboards/splitkb/kyria/rev1/info.json index 895f9283ac..03774dcfe5 100644 --- a/keyboards/splitkb/kyria/rev1/info.json +++ b/keyboards/splitkb/kyria/rev1/info.json @@ -4,6 +4,11 @@ "pid": "0x9D9D", "device_version": "0.0.1" }, + "matrix_pins": { + "cols": ["B6", "B2", "B3", "B1", "F7", "F6", "F5", "F4"], + "rows": ["B4", "E6", "D7", "D4"] + }, + "diode_direction": "COL2ROW", "encoder": { "rotary": [ {"pin_a": "C6", "pin_b": "B5"} @@ -18,59 +23,130 @@ } } }, + "layout_aliases": { + "LAYOUT": "LAYOUT_split_3x6_5" + }, "layouts": { - "LAYOUT": { + "LAYOUT_split_3x6_5": { + "layout": [ + {"matrix": [0, 7], "x": 0, "y": 0.75}, + {"matrix": [0, 6], "x": 1, "y": 0.75}, + {"matrix": [0, 5], "x": 2, "y": 0.25}, + {"matrix": [0, 4], "x": 3, "y": 0}, + {"matrix": [0, 3], "x": 4, "y": 0.25}, + {"matrix": [0, 2], "x": 5, "y": 0.5}, + + {"matrix": [4, 2], "x": 10.5, "y": 0.5}, + {"matrix": [4, 3], "x": 11.5, "y": 0.25}, + {"matrix": [4, 4], "x": 12.5, "y": 0}, + {"matrix": [4, 5], "x": 13.5, "y": 0.25}, + {"matrix": [4, 6], "x": 14.5, "y": 0.75}, + {"matrix": [4, 7], "x": 15.5, "y": 0.75}, + + {"matrix": [1, 7], "x": 0, "y": 1.75}, + {"matrix": [1, 6], "x": 1, "y": 1.75}, + {"matrix": [1, 5], "x": 2, "y": 1.25}, + {"matrix": [1, 4], "x": 3, "y": 1}, + {"matrix": [1, 3], "x": 4, "y": 1.25}, + {"matrix": [1, 2], "x": 5, "y": 1.5}, + + {"matrix": [5, 2], "x": 10.5, "y": 1.5}, + {"matrix": [5, 3], "x": 11.5, "y": 1.25}, + {"matrix": [5, 4], "x": 12.5, "y": 1}, + {"matrix": [5, 5], "x": 13.5, "y": 1.25}, + {"matrix": [5, 6], "x": 14.5, "y": 1.75}, + {"matrix": [5, 7], "x": 15.5, "y": 1.75}, + + {"matrix": [2, 7], "x": 0, "y": 2.75}, + {"matrix": [2, 6], "x": 1, "y": 2.75}, + {"matrix": [2, 5], "x": 2, "y": 2.25}, + {"matrix": [2, 4], "x": 3, "y": 2}, + {"matrix": [2, 3], "x": 4, "y": 2.25}, + {"matrix": [2, 2], "x": 5, "y": 2.5}, + {"matrix": [2, 1], "x": 6, "y": 3}, + {"matrix": [2, 0], "x": 7, "y": 3.25}, + + {"matrix": [6, 0], "x": 8.5, "y": 3.25}, + {"matrix": [6, 1], "x": 9.5, "y": 3}, + {"matrix": [6, 2], "x": 10.5, "y": 2.5}, + {"matrix": [6, 3], "x": 11.5, "y": 2.25}, + {"matrix": [6, 4], "x": 12.5, "y": 2}, + {"matrix": [6, 5], "x": 13.5, "y": 2.25}, + {"matrix": [6, 6], "x": 14.5, "y": 2.75}, + {"matrix": [6, 7], "x": 15.5, "y": 2.75}, + + {"matrix": [3, 4], "x": 2.5, "y": 3.25}, + {"matrix": [3, 3], "x": 3.5, "y": 3.25}, + {"matrix": [3, 2], "x": 4.5, "y": 3.5}, + {"matrix": [3, 1], "x": 5.5, "y": 4}, + {"matrix": [3, 0], "x": 6.5, "y": 4.25}, + + {"matrix": [7, 0], "x": 9, "y": 4.25}, + {"matrix": [7, 1], "x": 10, "y": 4}, + {"matrix": [7, 2], "x": 11, "y": 3.5}, + {"matrix": [7, 3], "x": 12, "y": 3.25}, + {"matrix": [7, 4], "x": 13, "y": 3.25} + ] + }, + "LAYOUT_stack": { "layout": [ - {"x":0, "y":0.75}, - {"x":1, "y":0.75}, - {"x":2, "y":0.25}, - {"x":3, "y":0}, - {"x":4, "y":0.25}, - {"x":5, "y":0.5}, - {"x":10.5, "y":0.5}, - {"x":11.5, "y":0.25}, - {"x":12.5, "y":0}, - {"x":13.5, "y":0.25}, - {"x":14.5, "y":0.75}, - {"x":15.5, "y":0.75}, - {"x":0, "y":1.75}, - {"x":1, "y":1.75}, - {"x":2, "y":1.25}, - {"x":3, "y":1}, - {"x":4, "y":1.25}, - {"x":5, "y":1.5}, - {"x":10.5, "y":1.5}, - {"x":11.5, "y":1.25}, - {"x":12.5, "y":1}, - {"x":13.5, "y":1.25}, - {"x":14.5, "y":1.75}, - {"x":15.5, "y":1.75}, - {"x":0, "y":2.75}, - {"x":1, "y":2.75}, - {"x":2, "y":2.25}, - {"x":3, "y":2}, - {"x":4, "y":2.25}, - {"x":5, "y":2.5}, - {"x":6, "y":3}, - {"x":7, "y":3.25}, - {"x":8.5, "y":3.25}, - {"x":9.5, "y":3}, - {"x":10.5, "y":2.5}, - {"x":11.5, "y":2.25}, - {"x":12.5, "y":2}, - {"x":13.5, "y":2.25}, |