From be7786bfc6f8e14a796cf13991428d1ef8135f26 Mon Sep 17 00:00:00 2001 From: Stephen Onnen Date: Mon, 2 Dec 2024 08:57:34 -0600 Subject: [PATCH 01/77] Addition of Hotdog Pad (#24650) * Add Hotdog Pad * remove encoder_map feature * Add rules.mk * move rules.mk into keymap * Update keyboards/onnenon/hotdog_pad/keyboard.json Co-authored-by: Joel Challis * Update keyboards/onnenon/hotdog_pad/keyboard.json Co-authored-by: Joel Challis * Update keyboards/onnenon/hotdog_pad/keymaps/default/keymap.c Co-authored-by: Joel Challis * Update keyboards/onnenon/hotdog_pad/keymaps/default/keymap.c Co-authored-by: Joel Challis * add hotdog_pad.c * fix reversed encoder pins * Update keyboards/onnenon/hotdog_pad/hotdog_pad.c Co-authored-by: Joel Challis --------- Co-authored-by: Joel Challis --- keyboards/onnenon/hotdog_pad/hotdog_pad.c | 12 +++++ keyboards/onnenon/hotdog_pad/keyboard.json | 53 +++++++++++++++++++ .../hotdog_pad/keymaps/default/keymap.c | 14 +++++ .../hotdog_pad/keymaps/default/rules.mk | 1 + keyboards/onnenon/hotdog_pad/readme.md | 24 +++++++++ 5 files changed, 104 insertions(+) create mode 100644 keyboards/onnenon/hotdog_pad/hotdog_pad.c create mode 100644 keyboards/onnenon/hotdog_pad/keyboard.json create mode 100644 keyboards/onnenon/hotdog_pad/keymaps/default/keymap.c create mode 100644 keyboards/onnenon/hotdog_pad/keymaps/default/rules.mk create mode 100644 keyboards/onnenon/hotdog_pad/readme.md diff --git a/keyboards/onnenon/hotdog_pad/hotdog_pad.c b/keyboards/onnenon/hotdog_pad/hotdog_pad.c new file mode 100644 index 0000000000..c48274fb55 --- /dev/null +++ b/keyboards/onnenon/hotdog_pad/hotdog_pad.c @@ -0,0 +1,12 @@ +// Copyright 2024 Stephen Onnen (@onnenon) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +void keyboard_pre_init_kb(void) { + // Enable the power pin for the Xiao Seeed rp2040 onboard NeoPixel + gpio_set_pin_output(GP11); + gpio_write_pin_high(GP11); + + keyboard_pre_init_user(); +} diff --git a/keyboards/onnenon/hotdog_pad/keyboard.json b/keyboards/onnenon/hotdog_pad/keyboard.json new file mode 100644 index 0000000000..3831e7afed --- /dev/null +++ b/keyboards/onnenon/hotdog_pad/keyboard.json @@ -0,0 +1,53 @@ +{ + "manufacturer": "onnenon", + "keyboard_name": "Hotdog Pad", + "maintainer": "onnenon", + "processor": "RP2040", + "bootloader": "rp2040", + "matrix_pins": { + "direct": [["GP1", "GP2", "GP4", "GP6", "GP0"]] + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x0001", + "vid": "0x4F4E" + }, + "features": { + "encoder": true, + "rgblight": true, + "extrakey": true, + "mousekey": true + }, + "encoder": { + "rotary": [{ "pin_a": "GP29", "pin_b": "GP28" }] + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "x": 0, "y": 0, "matrix": [0, 0] }, + { "x": 1, "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] } + ] + } + }, + "ws2812": { + "pin": "GP12", + "driver": "vendor" + }, + "rgblight": { + "led_count": 1, + "max_brightness": 185, + "animations": { + "breathing": true, + "rainbow_mood": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } + } +} diff --git a/keyboards/onnenon/hotdog_pad/keymaps/default/keymap.c b/keyboards/onnenon/hotdog_pad/keymaps/default/keymap.c new file mode 100644 index 0000000000..9370249098 --- /dev/null +++ b/keyboards/onnenon/hotdog_pad/keymaps/default/keymap.c @@ -0,0 +1,14 @@ +// Copyright 2024 Stephen Onnen (@onnenon) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT(KC_A, KC_B, KC_C, KC_D, KC_MUTE) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, +}; +#endif diff --git a/keyboards/onnenon/hotdog_pad/keymaps/default/rules.mk b/keyboards/onnenon/hotdog_pad/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/onnenon/hotdog_pad/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/onnenon/hotdog_pad/readme.md b/keyboards/onnenon/hotdog_pad/readme.md new file mode 100644 index 0000000000..c3b0699c21 --- /dev/null +++ b/keyboards/onnenon/hotdog_pad/readme.md @@ -0,0 +1,24 @@ +# Hotdog Pad + +* Keyboard Maintainer: [Stephen Onnen](https://github.com/onnenon) +* Hardware Supported: Seeed Studio XIAO RP2040 +* Hardware Availability: https://github.com/onnenon/hotdog_pad + +Make example for this keyboard (after setting up your build environment): + + make onnenon/hotdog_pad:default + +Flashing example for this keyboard: + + make onnenon/hotdog_pad:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available + From e592a7da0017a57a476debee2355f8dbb5d81349 Mon Sep 17 00:00:00 2001 From: Nibell Date: Mon, 2 Dec 2024 16:00:29 +0100 Subject: [PATCH 02/77] [Keyboard] Added nibell micropad4x4 (#24662) * feat: added nibell micropad4x4 * chore: updated readme * chore: updated keymap * feat: added layers * chore: added bootloader doc * Added layers * changed RSHIFT and RCTRL * Update keyboards/nibell/micropad4x4/keyboard.json Co-authored-by: Duncan Sutherland * Update keyboards/nibell/micropad4x4/readme.md --------- Co-authored-by: Duncan Sutherland Co-authored-by: jack --- keyboards/nibell/micropad4x4/keyboard.json | 50 +++++++++++ .../micropad4x4/keymaps/default/keymap.c | 90 +++++++++++++++++++ keyboards/nibell/micropad4x4/readme.md | 26 ++++++ 3 files changed, 166 insertions(+) create mode 100644 keyboards/nibell/micropad4x4/keyboard.json create mode 100644 keyboards/nibell/micropad4x4/keymaps/default/keymap.c create mode 100644 keyboards/nibell/micropad4x4/readme.md diff --git a/keyboards/nibell/micropad4x4/keyboard.json b/keyboards/nibell/micropad4x4/keyboard.json new file mode 100644 index 0000000000..b992f501cf --- /dev/null +++ b/keyboards/nibell/micropad4x4/keyboard.json @@ -0,0 +1,50 @@ +{ + "manufacturer": "nibell", + "keyboard_name": "nibell/micropad4x4", + "maintainer": "Linus Nibell", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP2", "GP3", "GP4", "GP5"], + "rows": ["GP10", "GP11", "GP12", "GP13"] + }, + "processor": "RP2040", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0xFEED", + "vid": "0x4C4E" + }, + "community_layouts": ["ortho_4x4"], + "layouts": { + "LAYOUT_ortho_4x4": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3} + ] + } + } +} diff --git a/keyboards/nibell/micropad4x4/keymaps/default/keymap.c b/keyboards/nibell/micropad4x4/keymaps/default/keymap.c new file mode 100644 index 0000000000..1da79514ed --- /dev/null +++ b/keyboards/nibell/micropad4x4/keymaps/default/keymap.c @@ -0,0 +1,90 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base + * ┌──────┬─────┬──────┬───────┐ + * │NUMLK │ │ │QK_BOOT│ + * ├──────┼─────├──────┼───────┤ + * │NUMPAD│MINI │ FN │ │ + * ├──────┼─────┼──────┼───────┤ + * │ 1 │ 2 │ 3 │ 4 │ + * ├──────┼─────┼──────┼───────┤ + * │ │ │RSHIFT│ RCTRL │ + * └──────┴─────┴──────┴───────┘ + */ + [0] = LAYOUT_ortho_4x4( + KC_NUM, KC_NO, KC_NO, QK_BOOT, + TO(1), TO(2), TO(3), KC_NO, + KC_1, KC_2, KC_3, KC_4, + KC_NO, KC_NO, KC_RSFT, KC_RCTL + ), + + /* Numpad + * ┌─────┬─────┬─────┬─────┐ + * │ 7 │ 8 │ 9 │ * │ + * ├─────┼─────├─────┼─────┤ + * │ 4 │ 5 │ 6 │ - │ + * ├─────┼─────┼─────┼─────┤ + * │ 1 │ 2 │ 3 │ + │ + * ├─────┼─────┼─────┼─────┤ + * │ 0 │ . │ / │ = │ + * └─────┴─────┴─────┴─────┘ + */ + [1] = LAYOUT_ortho_4x4( + KC_P7, KC_P8, KC_P9, KC_PAST, + KC_P4, KC_P5, KC_P6, KC_PMNS, + KC_P1, KC_P2, KC_P3, KC_PPLS, + KC_P0, KC_PDOT, KC_PSLS, LT(3, KC_PENT) + ), + + /* Mini KeyBoard + * ┌─────┬─────┬─────┬─────┐ + * │ ESC │ 1 │ 2 │ 3 │ + * ├─────┼─────┼─────┼─────┤ + * │ TAB │ Q │ W │ E │ + * ├─────┼─────┼─────┼─────┤ + * │SHIFT│ A │ S │ D │ + * ├─────┼─────┼─────┼─────┤ + * │CTRL │ C │ R │SPACE│ + * └─────┴─────┴─────┴─────┘ + */ + [2] = LAYOUT_ortho_4x4( + LT(3, KC_ESC), KC_1, KC_2, KC_3, + KC_TAB, KC_Q, KC_W, KC_E, + KC_LSFT, KC_A, KC_S, KC_D, + KC_LCTL, KC_C, KC_R, KC_SPC + ), + + /* FN Keyboard + * ┌─────┬─────┬─────┬─────┐ + * │ F1 │ F2 │ F3 │ F4 │ + * ├─────┼─────┼─────┼─────┤ + * │ F5 │ F6 │ F7 │ F8 │ + * ├─────┼─────┼─────┼─────┤ + * │ F9 │ F10 │ F11 │ F12 │ + * ├─────┼─────┼─────┼─────┤ + * │BASE │ │ │ │ + * └─────┴─────┴─────┴─────┘ + */ + [3] = LAYOUT_ortho_4x4( + KC_F1, KC_F2, KC_F3, KC_F4, + KC_F5, KC_F6, KC_F7, KC_F8, + KC_F9, KC_F10, KC_F11, KC_F12, + TO(0), KC_NO, KC_NO, KC_NO + ), +}; diff --git a/keyboards/nibell/micropad4x4/readme.md b/keyboards/nibell/micropad4x4/readme.md new file mode 100644 index 0000000000..6fec293b65 --- /dev/null +++ b/keyboards/nibell/micropad4x4/readme.md @@ -0,0 +1,26 @@ +# Micropad 4x4 + +![Micropad 4x4](https://imgur.com/ugfJLXJ.jpg) + +A budget-friendly 4x4 Macropad + +* Keyboard Maintainer: [nibell](https://github.com/Nibell) +* Hardware Supported: Raspberry Pi Pico +* Hardware Availability: [GitHub](https://github.com/Nibell/Keyboards/tree/main/micropad4x4) + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Physical reset button**: Hold the button down on the raspberry pi pico while plugging it in. There is no reset button on the pcb. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available + +Make example for this keyboard (after setting up your build environment): + + make nibell/micropad4x4:default + +Flashing example for this keyboard: + + make nibell/macropad4x4:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). From fa3be8a3fb6bc45ed60674b6a7c7bc80d8d00594 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=E1=BA=AFn?= <59417802+MaiTheSan@users.noreply.github.com> Date: Mon, 2 Dec 2024 07:02:29 -0800 Subject: [PATCH 03/77] sawnsprojects/bunnygirl65: Fix typo in name (#24668) --- keyboards/sawnsprojects/bunnygirl65/keyboard.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/sawnsprojects/bunnygirl65/keyboard.json b/keyboards/sawnsprojects/bunnygirl65/keyboard.json index 810d481b5d..92dca8693d 100644 --- a/keyboards/sawnsprojects/bunnygirl65/keyboard.json +++ b/keyboards/sawnsprojects/bunnygirl65/keyboard.json @@ -1,5 +1,5 @@ { - "manufacturer": "auaera", + "manufacturer": "auaena", "keyboard_name": "Bunnygirl65", "maintainer": "MaiTheSan", "bootloader": "stm32-dfu", From 0ad3ffdfbce15406acf318d8db335c4bf612bc7a Mon Sep 17 00:00:00 2001 From: Thanh Son Tran <62438883+trnthsn@users.noreply.github.com> Date: Mon, 2 Dec 2024 22:20:48 +0700 Subject: [PATCH 04/77] [Keyboard] Add support E8ghty (#24632) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update support S6xty5 * Delete chconf.h * Update manufacturer, community layout for hhkb * Update layout * fix row index * Update tyson60s * Update community layout and layout name * Update remove rgb test mode * Update capslock led * Apply suggestions from code review Co-authored-by: Duncan Sutherland * Remove deprecated s6xty5 * Update support for E8ghty * remove rgb test mode * Update community layout * Update fix pipeline build ci * Apply suggestions from code review Co-authored-by: Duncan Sutherland --------- Co-authored-by: Trần Thanh Sơn Co-authored-by: Duncan Sutherland --- keyboards/trnthsn/e8ghty/config.h | 23 + keyboards/trnthsn/e8ghty/halconf.h | 21 + keyboards/trnthsn/e8ghty/info.json | 577 ++++++++++++++++++ .../trnthsn/e8ghty/keymaps/default/keymap.c | 39 ++ keyboards/trnthsn/e8ghty/mcuconf.h | 22 + keyboards/trnthsn/e8ghty/readme.md | 27 + keyboards/trnthsn/e8ghty/rules.mk | 1 + .../trnthsn/e8ghty/stm32f072/keyboard.json | 4 + .../trnthsn/e8ghty/stm32f103/keyboard.json | 4 + 9 files changed, 718 insertions(+) create mode 100644 keyboards/trnthsn/e8ghty/config.h create mode 100644 keyboards/trnthsn/e8ghty/halconf.h create mode 100644 keyboards/trnthsn/e8ghty/info.json create mode 100644 keyboards/trnthsn/e8ghty/keymaps/default/keymap.c create mode 100644 keyboards/trnthsn/e8ghty/mcuconf.h create mode 100644 keyboards/trnthsn/e8ghty/readme.md create mode 100644 keyboards/trnthsn/e8ghty/rules.mk create mode 100644 keyboards/trnthsn/e8ghty/stm32f072/keyboard.json create mode 100644 keyboards/trnthsn/e8ghty/stm32f103/keyboard.json diff --git a/keyboards/trnthsn/e8ghty/config.h b/keyboards/trnthsn/e8ghty/config.h new file mode 100644 index 0000000000..ae9f251eb6 --- /dev/null +++ b/keyboards/trnthsn/e8ghty/config.h @@ -0,0 +1,23 @@ +/* +Copyright 2024 ThanhSon.Mech + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define WS2812_SPI_DRIVER SPID2 +#define WS2812_SPI_MOSI_PAL_MODE 0 +#define WS2812_SPI_SCK_PAL_MODE 0 +#define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/trnthsn/e8ghty/halconf.h b/keyboards/trnthsn/e8ghty/halconf.h new file mode 100644 index 0000000000..b8f0a217c4 --- /dev/null +++ b/keyboards/trnthsn/e8ghty/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2024 ThanhSon.Mech + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_SPI TRUE + +#include_next diff --git a/keyboards/trnthsn/e8ghty/info.json b/keyboards/trnthsn/e8ghty/info.json new file mode 100644 index 0000000000..ec4e724878 --- /dev/null +++ b/keyboards/trnthsn/e8ghty/info.json @@ -0,0 +1,577 @@ +{ + "manufacturer": "ThanhSon.Mech", + "keyboard_name": "E8ghty", + "maintainer": "trnthsn", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["A8", "B14", "B12", "B11", "B10", "B1", "B0", "A7", "A6", "A5", "A3", "A2", "A1", "A0", "C14", "C13", "B5"], + "rows": ["A15", "A10", "A9", "A4", "C15", "B9"] + }, + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "led_count": 26, + "sleep": true + }, + "ws2812": { + "pin": "B15", + "driver": "spi" + }, + "indicators": { + "caps_lock": "B4" + }, + "url": "", + "usb": { + "vid": "0x5453", + "pid": "0x3830", + "device_version": "0.0.1" + }, + "community_layouts": ["tkl_ansi_tsangan", "tkl_ansi_tsangan_split_bs_rshift", "tkl_f13_ansi_tsangan", "tkl_f13_ansi_tsangan_split_bs_rshift"], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, + + {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0}, + + {"label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0}, + + {"label": "Play/Pause", "matrix": [0, 13], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [3, 12], "x": 13, "y": 1.25}, + {"label": "Backspace", "matrix": [1, 13], "x": 14, "y": 1.25}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"label": "Shift", "matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 4.25}, + + {"label": "Up", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "Left", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "Down", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "Right", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, + + {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0}, + + {"label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0}, + + {"label": "Play/Pause", "matrix": [0, 13], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "PgUp", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"label": "Up", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "Left", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "Down", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "Right", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, + + {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0}, + + {"label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0}, + + {"label": "Play/Pause", "matrix": [0, 13], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [3, 12], "x": 13, "y": 1.25}, + {"label": "Backspace", "matrix": [1, 13], "x": 14, "y": 1.25}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 4.25}, + + {"label": "Up", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "Left", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "Down", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "Right", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 5], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "Fn", "matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 5], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [3, 12], "x": 13, "y": 1.25}, + {"label": "Delete", "matrix": [1, 13], "x": 14, "y": 1.25}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "Shift", "matrix": [4, 13], "x": 14, "y": 4.25}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "Fn", "matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/trnthsn/e8ghty/keymaps/default/keymap.c b/keyboards/trnthsn/e8ghty/keymaps/default/keymap.c new file mode 100644 index 0000000000..f16b0d5eb4 --- /dev/null +++ b/keyboards/trnthsn/e8ghty/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ + // │Esc││F1 │F2 │F3 │F4 ││F5 │F6 │F7 │F8 ││F9 │F10│F11│F12││F13│ │Prs│Srk│Ps │ + // └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ + // ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ + // │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ ` │Bsp│ │Ins│Hm │PgU│ + // ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ + // │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ + // ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤ └───┴───┴───┘ + // │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │Ent │ + // ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ ┌───┐ + // │Sft │ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │Fn │ │ ↑ │ + // ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + // │Ctrl │Win│Alt │ │Alt │Win│Ctrl │ │ ← │ ↓ │ → │ + // └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPLY, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, UG_TOGG, _______, _______, _______, _______, UG_NEXT, UG_VALD, UG_VALU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, + _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_VOLD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/trnthsn/e8ghty/mcuconf.h b/keyboards/trnthsn/e8ghty/mcuconf.h new file mode 100644 index 0000000000..3bf940e0be --- /dev/null +++ b/keyboards/trnthsn/e8ghty/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2024 ThanhSon.Mech + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE diff --git a/keyboards/trnthsn/e8ghty/readme.md b/keyboards/trnthsn/e8ghty/readme.md new file mode 100644 index 0000000000..7a46bf2c4c --- /dev/null +++ b/keyboards/trnthsn/e8ghty/readme.md @@ -0,0 +1,27 @@ +# E8ghty + +![trnthsn/e8ghty](https://imgur.com/M4Oudco.png) + +A TKL keyboard PCB compatible with various keyboard cases. Supports both right USB Type-C connector and bottom USB Type-C connector, 1 FPC header, and 3 JST SH positions for a daughter board. + +* Keyboard Maintainer: [ThanhSon.Mech](https://github.com/trnthsn) +* Hardware Supported: STM32F103/STM32F072, Geon F1 xx, TKD Cycle 8, Keycult, ... +* Hardware Availability: [ThanhSon.Mech](https://www.facebook.com/ThanhSon.mech) + +Make example for this keyboard (after setting up your build environment): + + make trnthsn/e8ghty:default + +Flashing example for this keyboard: + + make trnthsn/e8ghty:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/trnthsn/e8ghty/rules.mk b/keyboards/trnthsn/e8ghty/rules.mk new file mode 100644 index 0000000000..e06e8fe182 --- /dev/null +++ b/keyboards/trnthsn/e8ghty/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = trnthsn/e8ghty/stm32f103 diff --git a/keyboards/trnthsn/e8ghty/stm32f072/keyboard.json b/keyboards/trnthsn/e8ghty/stm32f072/keyboard.json new file mode 100644 index 0000000000..b5d728b1cd --- /dev/null +++ b/keyboards/trnthsn/e8ghty/stm32f072/keyboard.json @@ -0,0 +1,4 @@ +{ + "processor": "STM32F072", + "bootloader": "stm32-dfu", +} diff --git a/keyboards/trnthsn/e8ghty/stm32f103/keyboard.json b/keyboards/trnthsn/e8ghty/stm32f103/keyboard.json new file mode 100644 index 0000000000..5b2b6bc7d9 --- /dev/null +++ b/keyboards/trnthsn/e8ghty/stm32f103/keyboard.json @@ -0,0 +1,4 @@ +{ + "processor": "STM32F103", + "bootloader": "uf2boot", +} From cd286e4b9db186b3a42b918ff043986ab9504ca3 Mon Sep 17 00:00:00 2001 From: suikagiken <115451678+suikagiken@users.noreply.github.com> Date: Tue, 3 Dec 2024 00:30:02 +0900 Subject: [PATCH 05/77] [Keyboard] Add suika27melo (#24616) * add keyboard suika27melo * Update keyboards/suikagiken/suika27melo/keyboard.json Co-authored-by: jack * Update keyboards/suikagiken/suika27melo/keyboard.json Co-authored-by: jack * Update keyboards/suikagiken/suika27melo/readme.md Co-authored-by: jack * Update keyboards/suikagiken/suika27melo/readme.md Co-authored-by: jack * change to imgur link --------- Co-authored-by: jack --- keyboards/suikagiken/suika27melo/config.h | 5 ++ .../suikagiken/suika27melo/keyboard.json | 64 +++++++++++++++++++ .../suika27melo/keymaps/default/keymap.json | 12 ++++ .../suika27melo/keymaps/midi/keymap.json | 12 ++++ keyboards/suikagiken/suika27melo/readme.md | 44 +++++++++++++ 5 files changed, 137 insertions(+) create mode 100644 keyboards/suikagiken/suika27melo/config.h create mode 100644 keyboards/suikagiken/suika27melo/keyboard.json create mode 100644 keyboards/suikagiken/suika27melo/keymaps/default/keymap.json create mode 100644 keyboards/suikagiken/suika27melo/keymaps/midi/keymap.json create mode 100644 keyboards/suikagiken/suika27melo/readme.md diff --git a/keyboards/suikagiken/suika27melo/config.h b/keyboards/suikagiken/suika27melo/config.h new file mode 100644 index 0000000000..7d35e3c436 --- /dev/null +++ b/keyboards/suikagiken/suika27melo/config.h @@ -0,0 +1,5 @@ +// Copyright 2025 @suikagiken +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once +#define MIDI_ADVANCED diff --git a/keyboards/suikagiken/suika27melo/keyboard.json b/keyboards/suikagiken/suika27melo/keyboard.json new file mode 100644 index 0000000000..cba2561129 --- /dev/null +++ b/keyboards/suikagiken/suika27melo/keyboard.json @@ -0,0 +1,64 @@ +{ + "manufacturer": "suikagiken", + "keyboard_name": "suika27melo", + "maintainer": "suikagiken", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "midi": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["F0", "B4", "B5", "D7", "B6", "D6", "C6", "C7", "D0"], + "rows": ["F1", "F4", "D1", "D2"] + }, + "url": "https://github.com/suikagiken/suika27melo", + "usb": { + "device_version": "1.1.0", + "vid": "0x4B48", + "pid": "0x0201" + }, + "build": { + "debounce_type": "sym_eager_pk" + }, + "debounce": 50, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix":[0, 0], "x":0, "y":0}, + {"matrix":[0, 1], "x":2, "y":0}, + {"matrix":[0, 2], "x":3, "y":0}, + {"matrix":[0, 4], "x":5, "y":0}, + {"matrix":[0, 5], "x":6, "y":0}, + {"matrix":[0, 6], "x":7, "y":0}, + {"matrix":[2, 1], "x":9, "y":0}, + {"matrix":[2, 2], "x":10, "y":0}, + {"matrix":[2, 4], "x":12, "y":0}, + {"matrix":[2, 5], "x":13, "y":0}, + {"matrix":[2, 6], "x":14, "y":0}, + {"matrix":[1, 0], "x":0, "y":1}, + {"matrix":[1, 1], "x":1.5, "y":1}, + {"matrix":[1, 2], "x":2.5, "y":1}, + {"matrix":[1, 3], "x":3.5, "y":1}, + {"matrix":[1, 4], "x":4.5, "y":1}, + {"matrix":[1, 5], "x":5.5, "y":1}, + {"matrix":[1, 6], "x":6.5, "y":1}, + {"matrix":[1, 7], "x":7.5, "y":1}, + {"matrix":[3, 1], "x":8.5, "y":1}, + {"matrix":[3, 2], "x":9.5, "y":1}, + {"matrix":[3, 3], "x":10.5, "y":1}, + {"matrix":[3, 4], "x":11.5, "y":1}, + {"matrix":[3, 5], "x":12.5, "y":1}, + {"matrix":[3, 6], "x":13.5, "y":1}, + {"matrix":[3, 7], "x":14.5, "y":1}, + {"matrix":[3, 8], "x":15.5, "y":1} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/suikagiken/suika27melo/keymaps/default/keymap.json b/keyboards/suikagiken/suika27melo/keymaps/default/keymap.json new file mode 100644 index 0000000000..dadd846e48 --- /dev/null +++ b/keyboards/suikagiken/suika27melo/keymaps/default/keymap.json @@ -0,0 +1,12 @@ +{ + "author": "@suikagiken", + "keyboard": "suikagiken/suika85ergo", + "keymap": "default", + "layout": "LAYOUT", + "layers": [ + [ + "KC_A", "KC_D", "KC_F", "KC_I", "KC_K", "KC_M", "KC_P", "KC_R", "KC_U", "KC_W", "KC_Y", + "KC_B", "KC_C", "KC_E", "KC_G", "KC_H", "KC_J", "KC_L", "KC_N", "KC_O", "KC_Q", "KC_S", "KC_T", "KC_V", "KC_X", "KC_Z", "KC_SPC" + ] + ] +} diff --git a/keyboards/suikagiken/suika27melo/keymaps/midi/keymap.json b/keyboards/suikagiken/suika27melo/keymaps/midi/keymap.json new file mode 100644 index 0000000000..189665ddbf --- /dev/null +++ b/keyboards/suikagiken/suika27melo/keymaps/midi/keymap.json @@ -0,0 +1,12 @@ +{ + "author": "@suikagiken", + "keyboard": "suikagiken/suika85ergo", + "keymap": "midi", + "layout": "LAYOUT", + "layers": [ + [ + "MI_OCTU", "MI_Cs1", "MI_Ds1", "MI_Fs1", "MI_Gs1", "MI_As1", "MI_Cs2", "MI_Ds2", "MI_Fs2", "MI_Gs2", "MI_As2", + "MI_OCTD", "MI_C1", "MI_D1", "MI_E1", "MI_F1", "MI_G1", "MI_A1", "MI_B1", "MI_C2", "MI_D2", "MI_E2", "MI_F2", "MI_G2", "MI_A2", "MI_B2", "MI_C2" + ] + ] +} diff --git a/keyboards/suikagiken/suika27melo/readme.md b/keyboards/suikagiken/suika27melo/readme.md new file mode 100644 index 0000000000..1aa46565f0 --- /dev/null +++ b/keyboards/suikagiken/suika27melo/readme.md @@ -0,0 +1,44 @@ +# suika27melo +(English Follows Japanese) + +## 概要 +![suika27melo1](https://i.imgur.com/iFz3c1U.jpg) +![suika27melo2](https://i.imgur.com/xR7KpVR.jpg) + +suika27meloは2オクターブのピアノ鍵盤型マクロキーパッドです。 +通常のマクロキーパッドとしても使えるほか、MIDIキーボードとしてDAWソフトの入力や演奏に使用できます。 + +* 制作 : すいか技研 (Website: https://suikagiken.net GitHub: [suikagiken](https://github.com/suikagiken) ) +* 販売 : すいか技研の[booth](https://suikagiken.booth.pm/)にて販売予定です + +## ビルドガイド + +[こちら](https://github.com/suikagiken/suika27melo/blob/main/buildguide_1.1.md)からご覧下さい。 + +--- + +## Overview + +suika27melo is a 2-octave piano shaped macro keypad. +You can use it as a normal macro keypad, or use it as a MIDI keyboard for DAW software input and musical performance. + +* Keyboard Maintainer: [suikagiken](https://github.com/suikagiken) +* Hardware Availability: Available at [booth](https://suikagiken.booth.pm/) soon. + +Make example for this keyboard (after setting up your build environment): + + make suikagiken/suika27melo:default + +Flashing example for this keyboard: + + make suikagiken/suika27melo:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the top left key) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 28320f0cb5e42a9178c0f0b71da057b87060b358 Mon Sep 17 00:00:00 2001 From: Thanh Son Tran <62438883+trnthsn@users.noreply.github.com> Date: Mon, 2 Dec 2024 22:37:02 +0700 Subject: [PATCH 06/77] [Keyboard] Add support S6xty5Neo Rev.2 (#24631) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update support S6xty5 * Delete chconf.h * Update manufacturer, community layout for hhkb * Update layout * fix row index * Update tyson60s * Update community layout and layout name * Update remove rgb test mode * Update capslock led * Apply suggestions from code review Co-authored-by: Duncan Sutherland * Add support for S6xty5Neo Rev.2 * Remove deprecated s6xty5 * Update layout * Apply suggestions from code review Co-authored-by: Duncan Sutherland * Move mcuconf and config to outer folder --------- Co-authored-by: Trần Thanh Sơn Co-authored-by: Duncan Sutherland --- keyboards/trnthsn/s6xty5neor2/config.h | 23 ++ keyboards/trnthsn/s6xty5neor2/halconf.h | 22 ++ keyboards/trnthsn/s6xty5neor2/info.json | 255 ++++++++++++++++++ .../s6xty5neor2/keymaps/default/keymap.c | 41 +++ keyboards/trnthsn/s6xty5neor2/mcuconf.h | 22 ++ keyboards/trnthsn/s6xty5neor2/readme.md | 27 ++ keyboards/trnthsn/s6xty5neor2/rules.mk | 1 + .../s6xty5neor2/stm32f072/keyboard.json | 4 + .../s6xty5neor2/stm32f103/keyboard.json | 4 + 9 files changed, 399 insertions(+) create mode 100644 keyboards/trnthsn/s6xty5neor2/config.h create mode 100644 keyboards/trnthsn/s6xty5neor2/halconf.h create mode 100644 keyboards/trnthsn/s6xty5neor2/info.json create mode 100644 keyboards/trnthsn/s6xty5neor2/keymaps/default/keymap.c create mode 100644 keyboards/trnthsn/s6xty5neor2/mcuconf.h create mode 100644 keyboards/trnthsn/s6xty5neor2/readme.md create mode 100644 keyboards/trnthsn/s6xty5neor2/rules.mk create mode 100644 keyboards/trnthsn/s6xty5neor2/stm32f072/keyboard.json create mode 100644 keyboards/trnthsn/s6xty5neor2/stm32f103/keyboard.json diff --git a/keyboards/trnthsn/s6xty5neor2/config.h b/keyboards/trnthsn/s6xty5neor2/config.h new file mode 100644 index 0000000000..ae9f251eb6 --- /dev/null +++ b/keyboards/trnthsn/s6xty5neor2/config.h @@ -0,0 +1,23 @@ +/* +Copyright 2024 ThanhSon.Mech + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define WS2812_SPI_DRIVER SPID2 +#define WS2812_SPI_MOSI_PAL_MODE 0 +#define WS2812_SPI_SCK_PAL_MODE 0 +#define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/trnthsn/s6xty5neor2/halconf.h b/keyboards/trnthsn/s6xty5neor2/halconf.h new file mode 100644 index 0000000000..337ed5da18 --- /dev/null +++ b/keyboards/trnthsn/s6xty5neor2/halconf.h @@ -0,0 +1,22 @@ +/* Copyright 2024 ThanhSon.Mech + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD +#include_next diff --git a/keyboards/trnthsn/s6xty5neor2/info.json b/keyboards/trnthsn/s6xty5neor2/info.json new file mode 100644 index 0000000000..ba20dbc2ba --- /dev/null +++ b/keyboards/trnthsn/s6xty5neor2/info.json @@ -0,0 +1,255 @@ +{ + "manufacturer": "ThanhSon.Mech", + "keyboard_name": "S6xty5Neo Rev.2", + "maintainer": "trnthsn", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["A4", "A3", "A2", "A1", "A0", "A5", "A8", "B14", "B12", "B11", "B10", "B1", "B0", "A7", "A6"], + "rows": ["B4", "A10", "A9", "B7", "B9"] + }, + "indicators": { + "caps_lock": "C13" + }, + "url": "", + "usb": { + "vid": "0x5453", + "pid": "0x4E45", + "device_version": "0.0.1" + }, + "community_layouts": ["65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs"], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [2, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 14], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [2, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/trnthsn/s6xty5neor2/keymaps/default/keymap.c b/keyboards/trnthsn/s6xty5neor2/keymaps/default/keymap.c new file mode 100644 index 0000000000..bc6c2e3271 --- /dev/null +++ b/keyboards/trnthsn/s6xty5neor2/keymaps/default/keymap.c @@ -0,0 +1,41 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + // │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Bsp│Del│ + // ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ + // │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │PgU│ + // ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + // │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgD│ + // ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + // │Shf │Shf│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │End│ + // ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤ + // │Ctrl │GUI│ Alt │ │ Fn │ │ ← │ ↓ │ → │ + // └─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ + + + [0] = LAYOUT_all( + 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_BSPC, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + KC_GRV, 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_DEL, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + MO(2) , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/trnthsn/s6xty5neor2/mcuconf.h b/keyboards/trnthsn/s6xty5neor2/mcuconf.h new file mode 100644 index 0000000000..3bf940e0be --- /dev/null +++ b/keyboards/trnthsn/s6xty5neor2/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2024 ThanhSon.Mech + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE diff --git a/keyboards/trnthsn/s6xty5neor2/readme.md b/keyboards/trnthsn/s6xty5neor2/readme.md new file mode 100644 index 0000000000..6c7e595abe --- /dev/null +++ b/keyboards/trnthsn/s6xty5neor2/readme.md @@ -0,0 +1,27 @@ +# S6xty5Neo Rev.2 + +![S6xty5Neo Rev.2](https://imgur.com/C6X3fCI.png) + +A 65% keyboard PCB compatible with Neo65. Supports Neo65 keyboard like an out-of-the-box PCB without any modification. + +* Keyboard Maintainer: [Trnthsn](https://github.com/trnthsn) +* Hardware Supported: STM32, S6xty5Neo Rev.2, Neo65 +* Hardware Availability: [ThanhSon.Mech](https://www.facebook.com/ThanhSon.mech) + +Make example for this keyboard (after setting up your build environment): + + make trnthsn/s6xty5neor2:default + +Flashing example for this keyboard: + + make trnthsn/s6xty5neor2:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/trnthsn/s6xty5neor2/rules.mk b/keyboards/trnthsn/s6xty5neor2/rules.mk new file mode 100644 index 0000000000..1fc77fba72 --- /dev/null +++ b/keyboards/trnthsn/s6xty5neor2/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = trnthsn/s6xty5neor2/stm32f103 diff --git a/keyboards/trnthsn/s6xty5neor2/stm32f072/keyboard.json b/keyboards/trnthsn/s6xty5neor2/stm32f072/keyboard.json new file mode 100644 index 0000000000..b5d728b1cd --- /dev/null +++ b/keyboards/trnthsn/s6xty5neor2/stm32f072/keyboard.json @@ -0,0 +1,4 @@ +{ + "processor": "STM32F072", + "bootloader": "stm32-dfu", +} diff --git a/keyboards/trnthsn/s6xty5neor2/stm32f103/keyboard.json b/keyboards/trnthsn/s6xty5neor2/stm32f103/keyboard.json new file mode 100644 index 0000000000..5b2b6bc7d9 --- /dev/null +++ b/keyboards/trnthsn/s6xty5neor2/stm32f103/keyboard.json @@ -0,0 +1,4 @@ +{ + "processor": "STM32F103", + "bootloader": "uf2boot", +} From e4e66c61ad9278124699dd452c7f7e5518e772a3 Mon Sep 17 00:00:00 2001 From: Thomas Queste Date: Mon, 2 Dec 2024 17:48:26 +0100 Subject: [PATCH 07/77] [murcielago] Enable split watchdog (#24463) --- keyboards/murcielago/rev1/config.h | 1 + .../murcielago/rev1/keymaps/default/keymap.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/keyboards/murcielago/rev1/config.h b/keyboards/murcielago/rev1/config.h index 17f316d6af..0d61c034de 100644 --- a/keyboards/murcielago/rev1/config.h +++ b/keyboards/murcielago/rev1/config.h @@ -20,6 +20,7 @@ along with this program. If not, see . /* split options, use EEPROM for side detection */ #define EE_HANDS #define SPLIT_USB_DETECT +#define SPLIT_WATCHDOG_ENABLE /* * Feature disable options diff --git a/keyboards/murcielago/rev1/keymaps/default/keymap.c b/keyboards/murcielago/rev1/keymaps/default/keymap.c index 63fbb04f7b..8dc5e21074 100644 --- a/keyboards/murcielago/rev1/keymaps/default/keymap.c +++ b/keyboards/murcielago/rev1/keymaps/default/keymap.c @@ -1,3 +1,19 @@ +/* +Copyright 2020 elagil + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ #include QMK_KEYBOARD_H enum layers { From 09dfbf8efe5655947b92361a6bdbf8aa2adc0b88 Mon Sep 17 00:00:00 2001 From: Josh Hinnebusch Date: Mon, 2 Dec 2024 11:49:11 -0500 Subject: [PATCH 08/77] [Keyboard] Add h88 gen2 (#24454) * initial commit * small updates * matrix fix * fix rgb lighting * updates * fix rgb pin * pin fixes * readme update * json formatting * Update keyboards/hineybush/h88_g2/config.h Co-authored-by: Drashna Jaelre --------- Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Drashna Jaelre --- keyboards/hineybush/h88_g2/config.h | 19 + keyboards/hineybush/h88_g2/halconf.h | 20 + keyboards/hineybush/h88_g2/keyboard.json | 1174 +++++++++++++++++ .../hineybush/h88_g2/keymaps/default/keymap.c | 42 + keyboards/hineybush/h88_g2/mcuconf.h | 21 + keyboards/hineybush/h88_g2/readme.md | 27 + 6 files changed, 1303 insertions(+) create mode 100644 keyboards/hineybush/h88_g2/config.h create mode 100644 keyboards/hineybush/h88_g2/halconf.h create mode 100644 keyboards/hineybush/h88_g2/keyboard.json create mode 100644 keyboards/hineybush/h88_g2/keymaps/default/keymap.c create mode 100644 keyboards/hineybush/h88_g2/mcuconf.h create mode 100644 keyboards/hineybush/h88_g2/readme.md diff --git a/keyboards/hineybush/h88_g2/config.h b/keyboards/hineybush/h88_g2/config.h new file mode 100644 index 0000000000..ccde4ac624 --- /dev/null +++ b/keyboards/hineybush/h88_g2/config.h @@ -0,0 +1,19 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#define BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_PWM_CHANNEL 1 +#define BACKLIGHT_PAL_MODE 1 diff --git a/keyboards/hineybush/h88_g2/halconf.h b/keyboards/hineybush/h88_g2/halconf.h new file mode 100644 index 0000000000..976d17d891 --- /dev/null +++ b/keyboards/hineybush/h88_g2/halconf.h @@ -0,0 +1,20 @@ +/* Copyright 2024 Josh Hinnebusch + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/hineybush/h88_g2/keyboard.json b/keyboards/hineybush/h88_g2/keyboard.json new file mode 100644 index 0000000000..983cbcc1f5 --- /dev/null +++ b/keyboards/hineybush/h88_g2/keyboard.json @@ -0,0 +1,1174 @@ +{ + "manufacturer": "Hiney LLC", + "keyboard_name": "h88_g2", + "maintainer": "hineybush", + "backlight": { + "pin": "A6" + }, + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "backlight": true, + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "indicators": { + "caps_lock": "B12", + "scroll_lock": "B14" + }, + "matrix_pins": { + "cols": ["B11", "B10", "B2", "B1", "B0", "A7", "A5", "A4", "A3", "F1", "C15", "C14", "F0", "C13", "B9", "B8", "B5"], + "rows": ["A15", "B3", "B4", "A0", "B6", "B7"] + }, + "processor": "STM32F072", + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "brightness_steps": 8, + "default": { + "val": 128 + }, + "led_count": 24, + "max_brightness": 200, + "saturation_steps": 8, + "sleep": true + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0002", + "vid": "0x4069" + }, + "ws2812": { + "pin": "B15" + }, + "community_layouts": ["tkl_f13_ansi", "tkl_f13_ansi_split_bs_rshift", "tkl_f13_ansi_tsangan", "tkl_f13_ansi_tsangan_split_bs_rshift", "tkl_f13_iso", "tkl_f13_iso_split_bs_rshift", "tkl_f13_iso_tsangan", "tkl_f13_iso_tsangan_split_bs_rshift", "tkl_f13_iso_wkl", "tkl_f13_iso_wkl_split_bs_rshift"], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 11], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 11], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi_wkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25}, + {"matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 11], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 11], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso_wkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso_wkl_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [2, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [4, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/hineybush/h88_g2/keymaps/default/keymap.c b/keyboards/hineybush/h88_g2/keymaps/default/keymap.c new file mode 100644 index 0000000000..d9dbaf08e7 --- /dev/null +++ b/keyboards/hineybush/h88_g2/keymaps/default/keymap.c @@ -0,0 +1,42 @@ +// Copyright 2023 Josh Hinnebusch +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴───────┼───┴┬────┬────┤ ┌───┼───┼───┐ + * │Ctrl│GUI │Alt │ │ Fn │ GUI│Ctrl│ │ ← │ ↓ │ → │ + * └────┴────┴────┴─────────────────────────────┴────┴────┴────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_0, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_TOGG, UG_NEXT, UG_HUED, UG_HUEU, UG_SATD, UG_SATU, UG_VALD, UG_VALU, KC_TRNS, BL_TOGG, BL_DOWN, BL_UP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + +}; diff --git a/keyboards/hineybush/h88_g2/mcuconf.h b/keyboards/hineybush/h88_g2/mcuconf.h new file mode 100644 index 0000000000..7e226e4371 --- /dev/null +++ b/keyboards/hineybush/h88_g2/mcuconf.h @@ -0,0 +1,21 @@ +/* Copyright 2024 Josh Hinnebusch + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include_next + +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/hineybush/h88_g2/readme.md b/keyboards/hineybush/h88_g2/readme.md new file mode 100644 index 0000000000..e5cd60b432 --- /dev/null +++ b/keyboards/hineybush/h88_g2/readme.md @@ -0,0 +1,27 @@ +# h88_g2 + +[h88_g2](https://i.imgur.com/t7chDf8h.png) + +New generation of the h88 keyboard PCB platform with an STM32 microcontroller. + +* Keyboard Maintainer: [Josh Hinnebusch](https://github.com/hineybush) +* Hardware Supported: H88 G2 PCB w/ STM32F072 MCU +* Hardware Availability: [hineybush.com](https://hineybush.com) + +Make example for this keyboard (after setting up your build environment): + + make hineybush/h88_g2:default + +Flashing example for this keyboard: + + make hineybush/h88_g2:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix Escape and plug in the keyboard. +* **Physical reset button**: Press the button on the back of the PCB for a minumum of 3 seconds, then release. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. From 50966934b2d7fd30514068cf262caf2213630159 Mon Sep 17 00:00:00 2001 From: takashicompany Date: Tue, 3 Dec 2024 02:10:01 +0900 Subject: [PATCH 09/77] Add new keyboard "Jourkey" (#24409) * jourkey * rotary encoder * fix keymap * jourkey * format json * Update keyboards/takashicompany/jourkey/readme.md Co-authored-by: Joel Challis * fix layout * Update readme.md --------- Co-authored-by: Joel Challis --- .../takashicompany/jourkey/keyboard.json | 51 +++++++++++++++++++ .../jourkey/keymaps/default/keymap.c | 18 +++++++ .../jourkey/keymaps/default/rules.mk | 1 + keyboards/takashicompany/jourkey/readme.md | 41 +++++++++++++++ 4 files changed, 111 insertions(+) create mode 100644 keyboards/takashicompany/jourkey/keyboard.json create mode 100644 keyboards/takashicompany/jourkey/keymaps/default/keymap.c create mode 100644 keyboards/takashicompany/jourkey/keymaps/default/rules.mk create mode 100644 keyboards/takashicompany/jourkey/readme.md diff --git a/keyboards/takashicompany/jourkey/keyboard.json b/keyboards/takashicompany/jourkey/keyboard.json new file mode 100644 index 0000000000..01847cfa53 --- /dev/null +++ b/keyboards/takashicompany/jourkey/keyboard.json @@ -0,0 +1,51 @@ +{ + "manufacturer": "takashicompany", + "keyboard_name": "Jourkey", + "maintainer": "takashicompany", + "development_board": "promicro", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "D1", "pin_b": "D0"} + ] + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "direct": [ + ["D4", "C6", "D7", "E6", "B4", "F5", "F6", "F7", "B5", "B1", "B3", "B2", "B6"] + ] + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0062", + "vid": "0x7463" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [0, 6], "x": 1.5, "y": 1}, + {"matrix": [0, 7], "x": 2.5, "y": 1}, + {"matrix": [0, 8], "x": 3.5, "y": 1, "w": 1.5}, + {"matrix": [0, 9], "x": 0, "y": 2, "w":1.75}, + {"matrix": [0, 10], "x": 1.75, "y": 2}, + {"matrix": [0, 11], "x": 2.75, "y": 2}, + {"matrix": [0, 12], "x": 3.75, "y": 2, "w":1.25} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/takashicompany/jourkey/keymaps/default/keymap.c b/keyboards/takashicompany/jourkey/keymaps/default/keymap.c new file mode 100644 index 0000000000..fa642bc6e2 --- /dev/null +++ b/keyboards/takashicompany/jourkey/keymaps/default/keymap.c @@ -0,0 +1,18 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, + KC_TAB, KC_Q, KC_W, KC_ENT, + KC_LCTL, KC_A, KC_S, KC_RSFT + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN) } +}; +#endif diff --git a/keyboards/takashicompany/jourkey/keymaps/default/rules.mk b/keyboards/takashicompany/jourkey/keymaps/default/rules.mk new file mode 100644 index 0000000000..a40474b4d5 --- /dev/null +++ b/keyboards/takashicompany/jourkey/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/takashicompany/jourkey/readme.md b/keyboards/takashicompany/jourkey/readme.md new file mode 100644 index 0000000000..b76dd7cbb8 --- /dev/null +++ b/keyboards/takashicompany/jourkey/readme.md @@ -0,0 +1,41 @@ +# Joukey + +![takashicompany/jourkey](https://i.imgur.com/pCrTbKn.jpeg) + +Jourkey was designed as “a keyboard for taking pictures with scenery while traveling. + +The layout is like a smaller version of a traditional keyboard. +Decorate it with your favorite keycaps and case to make it your travel companion. + +Of course, it can also be used as a macro pad. + +--- + +Jourkeyは「旅先で景色と写真を撮るためのキーボード」としてデザインされました。 + +従来のキーボードを小さくしたようなレイアウトです。 +お気に入りのキーキャップやケースでデコレーションして貴方の旅のお供になります。 + +もちろん、マクロパッドとして使用することも可能です。 + +* Keyboard Maintainer: [takashicompany](https://github.com/takashicompany) +* Hardware Supported: Jourkey PCB, Pro Micro +* Hardware Availability: https://github.com/takashicompany/jourkey + +Make example for this keyboard (after setting up your build environment): + + make takashicompany/jourkey:default + +Flashing example for this keyboard: + + make takashicompany/jourkey:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From c8fe565ee6528942cfc71187e32237b39ab7320a Mon Sep 17 00:00:00 2001 From: VeyPatch <126267034+VeyPatch@users.noreply.github.com> Date: Mon, 2 Dec 2024 22:26:10 +0100 Subject: [PATCH 10/77] [Keyboard] Add splitkb.com's Halcyon Kyria rev4 (#24512) * Add Halcyon Kyria Rev4 * Remove bootmagic and unused features * Fix encoderindex * Update readme.md * Remove rgblight * Implement requested changes * Add encoder update user * Remove rules.mk and add VIK configuration * Move options to config.h * Update RGB keycodes (qmk#24484) * implement changes --------- Co-authored-by: harvey-splitkb <126267034+harvey-splitkb@users.noreply.github.com> --- keyboards/splitkb/halcyon/kyria/info.json | 68 +++++ .../halcyon/kyria/keymaps/default/keymap.c | 206 +++++++++++++++ .../halcyon/kyria/keymaps/default/readme.md | 242 ++++++++++++++++++ keyboards/splitkb/halcyon/kyria/readme.md | 31 +++ keyboards/splitkb/halcyon/kyria/rev4/config.h | 32 +++ .../splitkb/halcyon/kyria/rev4/halconf.h | 14 + .../splitkb/halcyon/kyria/rev4/keyboard.json | 168 ++++++++++++ .../splitkb/halcyon/kyria/rev4/mcuconf.h | 14 + keyboards/splitkb/halcyon/kyria/rev4/rev4.c | 28 ++ 9 files changed, 803 insertions(+) create mode 100755 keyboards/splitkb/halcyon/kyria/info.json create mode 100755 keyboards/splitkb/halcyon/kyria/keymaps/default/keymap.c create mode 100755 keyboards/splitkb/halcyon/kyria/keymaps/default/readme.md create mode 100755 keyboards/splitkb/halcyon/kyria/readme.md create mode 100755 keyboards/splitkb/halcyon/kyria/rev4/config.h create mode 100644 keyboards/splitkb/halcyon/kyria/rev4/halconf.h create mode 100755 keyboards/splitkb/halcyon/kyria/rev4/keyboard.json create mode 100644 keyboards/splitkb/halcyon/kyria/rev4/mcuconf.h create mode 100644 keyboards/splitkb/halcyon/kyria/rev4/rev4.c diff --git a/keyboards/splitkb/halcyon/kyria/info.json b/keyboards/splitkb/halcyon/kyria/info.json new file mode 100755 index 0000000000..8e49bb12f3 --- /dev/null +++ b/keyboards/splitkb/halcyon/kyria/info.json @@ -0,0 +1,68 @@ +{ + "manufacturer": "splitkb.com", + "maintainer": "splitkb.com", + "url": "https://splitkb.com", + "usb": { + "device_version": "1.0.0", + "vid": "0x8D1D" + }, + "layout_aliases": { + "LAYOUT": "LAYOUT_split_3x6_5" + }, + "layouts": { + "LAYOUT_split_3x6_5": { + "layout": [ + {"label": "L06", "matrix": [0, 6], "x": 0, "y": 0.75}, + {"label": "L05", "matrix": [0, 5], "x": 1, "y": 0.75}, + {"label": "L04", "matrix": [0, 4], "x": 2, "y": 0.25}, + {"label": "L03", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "L02", "matrix": [0, 2], "x": 4, "y": 0.25}, + {"label": "L01", "matrix": [0, 1], "x": 5, "y": 0.5}, + {"label": "R01", "matrix": [4, 1], "x": 10.5, "y": 0.5}, + {"label": "R02", "matrix": [4, 2], "x": 11.5, "y": 0.25}, + {"label": "R03", "matrix": [4, 3], "x": 12.5, "y": 0}, + {"label": "R04", "matrix": [4, 4], "x": 13.5, "y": 0.25}, + {"label": "R05", "matrix": [4, 5], "x": 14.5, "y": 0.75}, + {"label": "R06", "matrix": [4, 6], "x": 15.5, "y": 0.75}, + {"label": "L12", "matrix": [1, 6], "x": 0, "y": 1.75}, + {"label": "L11", "matrix": [1, 5], "x": 1, "y": 1.75}, + {"label": "L10", "matrix": [1, 4], "x": 2, "y": 1.25}, + {"label": "L09", "matrix": [1, 3], "x": 3, "y": 1}, + {"label": "L08", "matrix": [1, 2], "x": 4, "y": 1.25}, + {"label": "L07", "matrix": [1, 1], "x": 5, "y": 1.5}, + {"label": "R07", "matrix": [5, 1], "x": 10.5, "y": 1.5}, + {"label": "R08", "matrix": [5, 2], "x": 11.5, "y": 1.25}, + {"label": "R09", "matrix": [5, 3], "x": 12.5, "y": 1}, + {"label": "R10", "matrix": [5, 4], "x": 13.5, "y": 1.25}, + {"label": "R11", "matrix": [5, 5], "x": 14.5, "y": 1.75}, + {"label": "R12", "matrix": [5, 6], "x": 15.5, "y": 1.75}, + {"label": "L20", "matrix": [2, 6], "x": 0, "y": 2.75}, + {"label": "L19", "matrix": [2, 5], "x": 1, "y": 2.75}, + {"label": "L18", "matrix": [2, 4], "x": 2, "y": 2.25}, + {"label": "L17", "matrix": [2, 3], "x": 3, "y": 2}, + {"label": "L16", "matrix": [2, 2], "x": 4, "y": 2.25}, + {"label": "L15", "matrix": [2, 1], "x": 5, "y": 2.5}, + {"label": "L14", "matrix": [3, 3], "x": 6, "y": 3}, + {"label": "L13", "matrix": [2, 0], "x": 7, "y": 3.25}, + {"label": "R13", "matrix": [6, 0], "x": 8.5, "y": 3.25}, + {"label": "R14", "matrix": [7, 3], "x": 9.5, "y": 3}, + {"label": "R15", "matrix": [6, 1], "x": 10.5, "y": 2.5}, + {"label": "R16", "matrix": [6, 2], "x": 11.5, "y": 2.25}, + {"label": "R17", "matrix": [6, 3], "x": 12.5, "y": 2}, + {"label": "R18", "matrix": [6, 4], "x": 13.5, "y": 2.25}, + {"label": "R19", "matrix": [6, 5], "x": 14.5, "y": 2.75}, + {"label": "R20", "matrix": [6, 6], "x": 15.5, "y": 2.75}, + {"label": "L25", "matrix": [3, 4], "x": 2.5, "y": 3.25}, + {"label": "L24", "matrix": [3, 2], "x": 3.5, "y": 3.25}, + {"label": "L23", "matrix": [3, 1], "x": 4.5, "y": 3.5}, + {"label": "L22", "matrix": [3, 5], "x": 5.5, "y": 4}, + {"label": "L21", "matrix": [3, 0], "x": 6.5, "y": 4.25}, + {"label": "R21", "matrix": [7, 0], "x": 9, "y": 4.25}, + {"label": "R22", "matrix": [7, 5], "x": 10, "y": 4}, + {"label": "R23", "matrix": [7, 1], "x": 11, "y": 3.5}, + {"label": "R24", "matrix": [7, 2], "x": 12, "y": 3.25}, + {"label": "R25", "matrix": [7, 4], "x": 13, "y": 3.25} + ] + } + } +} diff --git a/keyboards/splitkb/halcyon/kyria/keymaps/default/keymap.c b/keyboards/splitkb/halcyon/kyria/keymaps/default/keymap.c new file mode 100755 index 0000000000..78fd8d4fab --- /dev/null +++ b/keyboards/splitkb/halcyon/kyria/keymaps/default/keymap.c @@ -0,0 +1,206 @@ +// Copyright 2024 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layers { + _QWERTY = 0, + _DVORAK, + _COLEMAK_DH, + _NAV, + _SYM, + _FUNCTION, + _ADJUST, +}; + + +// Aliases for readability +#define QWERTY DF(_QWERTY) +#define COLEMAK DF(_COLEMAK_DH) +#define DVORAK DF(_DVORAK) + +#define SYM MO(_SYM) +#define NAV MO(_NAV) +#define FKEYS MO(_FUNCTION) +#define ADJUST MO(_ADJUST) + +#define CTL_ESC MT(MOD_LCTL, KC_ESC) +#define CTL_QUOT MT(MOD_RCTL, KC_QUOTE) +#define CTL_MINS MT(MOD_RCTL, KC_MINUS) +#define ALT_ENT MT(MOD_LALT, KC_ENT) + +// Note: LAlt/Enter (ALT_ENT) is not the same thing as the keyboard shortcut Alt+Enter. +// The notation `mod/tap` denotes a key that activates the modifier `mod` when held down, and +// produces the key `tap` when tapped (i.e. pressed and released). + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* + * Base Layer: QWERTY + * + * ,-------------------------------------------. ,-------------------------------------------. + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * |Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' "| + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + * | | | Enter| | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_QWERTY] = LAYOUT( + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y, KC_U , KC_I , KC_O , KC_P , KC_BSPC, + CTL_ESC , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H, KC_J , KC_K , KC_L ,KC_SCLN,CTL_QUOT, + KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_N, KC_M ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, + ADJUST , KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP + ), + +/* + * Base Layer: Dvorak + * + * ,-------------------------------------------. ,-------------------------------------------. + * | Tab | ' " | , < | . > | P | Y | | F | G | C | R | L | Bksp | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * |Ctrl/Esc| A | O | E | U | I | | D | H | T | N | S |Ctrl/- _| + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | LShift | ; : | Q | J | K | X | [ { |CapsLk| |F-keys| ] } | B | M | W | V | Z | RShift | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + * | | | Enter| | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_DVORAK] = LAYOUT( + KC_TAB ,KC_QUOTE,KC_COMM, KC_DOT, KC_P , KC_Y , KC_F, KC_G , KC_C , KC_R , KC_L , KC_BSPC, + CTL_ESC , KC_A , KC_O , KC_E , KC_U , KC_I , KC_D, KC_H , KC_T , KC_N , KC_S , CTL_MINS, + KC_LSFT ,KC_SCLN, KC_Q , KC_J , KC_K , KC_X , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_B, KC_M , KC_W , KC_V , KC_Z , KC_RSFT, + ADJUST, KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP + ), + +/* + * Base Layer: Colemak DH + * + * ,-------------------------------------------. ,-------------------------------------------. + * | Tab | Q | W | F | P | B | | J | L | U | Y | ; : | Bksp | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * |Ctrl/Esc| A | R | S | T | G | | M | N | E | I | O |Ctrl/' "| + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | LShift | Z | X | C | D | V | [ { |CapsLk| |F-keys| ] } | K | H | , < | . > | / ? | RShift | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + * | | | Enter| | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_COLEMAK_DH] = LAYOUT( + KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_B , KC_J, KC_L , KC_U , KC_Y ,KC_SCLN, KC_BSPC, + CTL_ESC , KC_A , KC_R , KC_S , KC_T , KC_G , KC_M, KC_N , KC_E , KC_I , KC_O , CTL_QUOT, + KC_LSFT , KC_Z , KC_X , KC_C , KC_D , KC_V , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_K, KC_H ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, + ADJUST, KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP + ), + +/* + * Nav Layer: Media, navigation + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | | | | | | | PgUp | Home | ↑ | End | VolUp| Delete | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | GUI | Alt | Ctrl | Shift| | | PgDn | ← | ↓ | → | VolDn| Insert | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | | | | | | |ScLck | | | | Pause|M Prev|M Play|M Next|VolMut| PrtSc | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_NAV] = LAYOUT( + _______, _______, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_VOLU, KC_DEL, + _______, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_VOLD, KC_INS, + _______, _______, _______, _______, _______, _______, _______, KC_SCRL, _______, _______,KC_PAUSE, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_PSCR, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +/* + * Sym Layer: Numbers and symbols + * + * ,-------------------------------------------. ,-------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | = | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | + | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | | \ | : | ; | - | [ | { | | | | } | ] | _ | , | . | / | ? | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_SYM] = LAYOUT( + KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_EQL , + KC_TILD , KC_EXLM, KC_AT , KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PLUS, + KC_PIPE , KC_BSLS, KC_COLN, KC_SCLN, KC_MINS, KC_LBRC, KC_LCBR, _______, _______, KC_RCBR, KC_RBRC, KC_UNDS, KC_COMM, KC_DOT, KC_SLSH, KC_QUES, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +/* + * Function Layer: Function keys + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | F9 | F10 | F11 | F12 | | | | | | | | | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | F5 | F6 | F7 | F8 | | | | Shift| Ctrl | Alt | GUI | | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | F1 | F2 | F3 | F4 | | | | | | | | | | | | | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_FUNCTION] = LAYOUT( + _______, KC_F9 , KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, + _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , _______, _______, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, _______, + _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +/* + * Adjust Layer: Default layer settings, RGB + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | | |QWERTY| | | | | | | | | | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | | |Dvorak| | | | TOG | SAI | HUI | VAI | MOD | | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | | |Colmak| | | | | | | | | SAD | HUD | VAD | RMOD | | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_ADJUST] = LAYOUT( + _______, _______, _______, QWERTY , _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, DVORAK , _______, _______, RM_TOGG, RM_SATU, RM_HUEU, RM_VALU, RM_NEXT, _______, + _______, _______, _______, COLEMAK, _______, _______,_______, _______, _______, _______, _______, RM_SATD, RM_HUED, RM_VALD, RM_PREV, _______, + _______, _______, _______,_______, _______, _______, _______, _______, _______, _______ + ), + +// /* +// * Layer template +// * +// * ,-------------------------------------------. ,-------------------------------------------. +// * | | | | | | | | | | | | | | +// * |--------+------+------+------+------+------| |------+------+------+------+------+--------| +// * | | | | | | | | | | | | | | +// * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +// * | | | | | | | | | | | | | | | | | | +// * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' +// * | | | | | | | | | | | | +// * | | | | | | | | | | | | +// * `----------------------------------' `----------------------------------' +// */ +// [_LAYERINDEX] = LAYOUT( +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +// ), +// +}; \ No newline at end of file diff --git a/keyboards/splitkb/halcyon/kyria/keymaps/default/readme.md b/keyboards/splitkb/halcyon/kyria/keymaps/default/readme.md new file mode 100755 index 0000000000..e56bbbb773 --- /dev/null +++ b/keyboards/splitkb/halcyon/kyria/keymaps/default/readme.md @@ -0,0 +1,242 @@ +# Halcyon Kyria's Default Keymap + +![KLE render of the default Halcyon Kyria keymap with QWERTY as the base layer. Layers are shown in sublegends.](https://i.ibb.co/RQZx2dY/default-kyria2.jpg) + + +The default keymap contains 5 layers which allows it to include all keys found on an ANSI layout TKL keyboard plus media keys. + +The five different layers are the following: +1. Base layer (QWERTY, Colemak-DH or Dvorak) +2. Navigation layer +3. Symbols/Numbers layer +4. Function layer +5. Adjust layer + +## Base layer(s) +``` +Base Layer: - + +,-------------------------------------------. ,-------------------------------------------. +| Tab | - | - | - | - | - | | - | - | - | - | - | Bksp | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +|Ctrl/Esc| - | - | - | - | - | | - | - | - | - | - |Ctrl/ - | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| LShift | - | - | - | - | - | [ { |CapsLk| |F-Keys| ] } | - | - | - | - | - | RShift | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + | | | Enter| | | | | | | | | + `----------------------------------' `----------------------------------' +``` +Three different well-known keyboard layouts are provided to fill in the placeholder `-` keys: QWERTY, Colemak-DH, and Dvorak. The default layer can be changed at runtime, more info on that in the section on the [adjust layer](#adjust-layer). + +For the rest of this write-up, the base layer will be assumed to be QWERTY and will be used as a reference to describe physical keys, e.g. “B key” vs, the much more verbose, “lower inner index key”. + +``` +Base Layer: QWERTY + +,-------------------------------------------. ,-------------------------------------------. +| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' "| +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + | | | Enter| | | | | | | | | + `----------------------------------' `----------------------------------' +``` + +Aside from variations in the alpha cluster, the rest of the base keys remain the same and are designed to feel familiar. + +![Step-by-step animation of the transformation of an ortholinear TKL to a Kyria](https://i.imgur.com/uVDCOek.gif) + +
+After making transformations to the classic ANSI US QWERTY TKL 60% to arrive to the layout of the Kyria, as illustrated in the animation above, the result looks like this: + +``` +,-------------------------------------------. ,-------------------------------------------. +| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +| Cap Lk | A | S | D | F | G | | H | J | K | L | ; : | ' " | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| LShift | Z | X | C | V | B | | | | | | N | M | , < | . > | / ? | RShift | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + | LCtrl| LGUI | LAlt | Space| | | | Space| AltGr| RGUI | Menu | + | | | | | | | | | | | | + `----------------------------------' '----------------------------------' +``` + +First thing to notice is the presence of blank keys. To fill in the blank keys above the Space keys, we can take inspiration from other split keyboards featuring an extra inner index column on each half. A common mapping for those kind of keys are the bracket keys that got removed in the fourth step of the animated transformation. The thumb keys besides Spaces is prime real estate for dedicated layer-switching keys. It doesn't matter on which side is assigned the sym-layer-switch key but it helps to keep the nav-layer-switch on the left in order to keep the arrow keys on the right side like on a classic keyboard, so we'll put nav on the left and sym on the right. We'll address the remaining blank thumb keys later. + +The base layer is starting to form but there remains some flaws. One glaring issue is the position of Control. Control is a very commonly used function but the key on which it sits right now is way too tucked in under the hand to be able to press it comfortably with either the thumb or the pinky from resting position. In fact, installing a rotary encoder there is a common move among Kyria users and I guarantee you that activating Control by holding down a rotary encoder does not spark joy. Instead, let's employ a popular trick that involves remapping the current Caps Lock key, which is positioned at a comfortable position on the keyboard, to Control. + +We can go further though; a variant of this trick makes the Control key produce Escape when tapped. This is called a “modtap”. There is no use to tapping Control by itself without chording it with another key and there is no use to holding down the Esc key so why not combine the two into a single key? + +All of this leaves us with three blank keys. + +``` +,-------------------------------------------. ,-------------------------------------------. +| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : | ' " | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| LShift | Z | X | C | V | B | [ { | | | | ] } | N | M | , < | . > | / ? | RShift | +`--------+-------------+--------------------+------+------| |------+------+--------------------+------+---------------' + | | LGUI | LAlt | Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + | | | | | | | | | | | | + `----------------------------------' '----------------------------------' +``` + +These keys are not easily reachable while touch typing (that is, not reachable without picking up your hand) and should thus be associated with functions that you are not likely to be typed within a stream of text. The idea is that if you have to pick up your hand to hit a key, you want it to be at a time when you are likely to be pausing your interaction with the machine, rather than in the midst of a flurry of typing. They're thus well suited for accessing the adjust layer and the function layer. We can also toss in Caps Lock even though it is an editing-type function that gets used within a stream of text because shouting in ALL-CAPS should be a deliberate action. + +``` +,-------------------------------------------. ,-------------------------------------------. +| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : | ' " | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + |Adjust| LGUI | LAlt | Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' +``` + +The next glaring issue is the absence of an Enter key on the current base layer this far. Enter is a very frequently used key so it deserves to be placed at a good spot in the keymap. The best way to insert it in the keymap with minimal changes to the current layout is to use modtaps. A tempting solution is to turn the RShift key into a RShift/Enter modtap but that can result in chat messages sent too frustratingly early when you're not used to it. Using GUI is also sub-optimal because tapping the GUI modifier actually has a use as opposed to taps of the Control or the Shift key. Pressing and releasing the GUI key by itself opens the App menu in many desktop environments. The natural choice is thus LAlt/Enter. That way, Enter is 1u away from resting thumb position and is unlikely to get accidentally activated because Alt is very rarely used in the midst of prose. + +Finally, we're one Quality-Of-Life update away from the actual base layer. Ctrl/' " not only preserves symmetry in the keymap with Ctrl/Esc but also helps balance the load between your pinkies and invites you to use both hands instead of contortions. Perhaps more importantly, it also frees you from the necessity of picking up your hand, breaking touch typing position and pressing a pinky key with your ring finger in order to execute Ctrl+A or Ctrl+Z. That becomes even more important on a board with such an aggressive pinky columnar stagger like the Kyria. + + +``` +,-------------------------------------------. ,-------------------------------------------. +| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' "| +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + | | | Enter| | | | | | | | | + `----------------------------------' `----------------------------------' +``` + +
+ +## Navigation layer + +``` +Nav Layer: Media, navigation + +,-------------------------------------------. ,-------------------------------------------. +| | | | | | | | PgUp | Home | ↑ | End | VolUp| Delete | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +| | GUI | Alt | Ctrl | Shift| | | PgDn | ← | ↓ | → | VolDn| Insert | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| | | | | | | |ScLck | | | | Pause|M Prev|M Play|M Next|VolMut| PrtSc | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + | | | | | | | | | | | | + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' +``` + +This is where you'll find all the keys that are generally between the main block of a classic keyboard and the numpad in addition to media controls and modifiers on easy access on the home row for fast and comfortable chording with navigation keys. + +Useful mnemonics: +- “GACS” to remember the order of the modifiers on the left-hand home row +- Scroll Lock is on the same key as Caps Lock because they're both locks +- Delete is on the same key as Backspace because they both erase characters +- Home is the leftmost position on the current line so it is above . Same logic applies for End. +- Media Previous = ⏮, Media Next = ⏭ +- Page Up, Page Down and Volume Up, Volume Down are positioned like the main Up and Down keys. + +## Sym layer +``` +Sym Layer: Numbers, symbols + +,-------------------------------------------. ,-------------------------------------------. +| ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | = | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +| ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | + | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| | | \ | : | ; | - | [ | { | | | | } | ] | _ | , | . | / | ? | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + | | | | | | | | | | | | + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' +``` +The top row is the unshifted num row, the home row of the layer is the shifted num row and the bottom row contains the hyphen `-` and the underscore `_` on the best lower row spot because of how frequent they are as well as redundant symbols that are already present on the base layer but are reproduced here to avoid juggling back and forth between base, shift, and sym when typing a string of symbols. + +The layout of the first two rows needs no introduction, you're already used to them but it's worth looking into the structure of the bottom row. + +The two halves are mirrored in a sense. On the right, you can find , . / at their usual spots with the addition of Shift+/=? to the right of the / key to remove the need to press simultaneously Sym and a Shift key to access `?`. + +Now, if you look at the left side, you'll notice that the mirror of , is ;, the mirror of . is : and the mirror of / is \\. The same logic used for Shift+/=? also applies to Shift+\\=|. + +In case you wish to combine Shift with a symbol key anyways, you can hold down Shift on the base layer with your pinky, activate Sym with your right thumb and while still holding down the Shift key, tap your desired symbol key. Same thing if you need Ctrl+Digit. + +## Function layer +``` +Function Layer: Function keys + +,-------------------------------------------. ,-------------------------------------------. +| | F9 | F10 | F11 | F12 | | | | | | | | | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +| | F5 | F6 | F7 | F8 | | | | Shift| Ctrl | Alt | GUI | | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| | F1 | F2 | F3 | F4 | | | | | | | | | | | | | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + | | | | | | | | | | | | + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' +``` +In a similar fashion to the nav layer, pressing down `FKEYS` with the right thumb enables a numpad of function keys on the opposite hand and modifiers on the right-hand home row. Once again, mirror symmetry is leveraged in this keymap for the order of the right-hand modifiers. + +The Alt modifier, despite being situated on the right half of the keyboard is *not* `KC_RALT`, it is `KC_LALT`. `KC_RALT` is actually the AltGr key which generally acts very differently to the left Alt key. Keyboard shortcuts involving AltGr+F# are rare and infrequent as opposed to the much more common Alt+F# shortcuts. Consequently, `KC_LALT` was chosen for the function layer. + +Since there are more than 10 function keys, the cluster of F-keys does not follow the usual 3×3+1 numpad arrangement. + + +## Adjust layer +``` +Adjust Layer: Default layer settings, RGB + +,-------------------------------------------. ,-------------------------------------------. +| | | |QWERTY| | | | | | | | | | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +| | | |Dvorak| | | | TOG | SAI | HUI | VAI | MOD | | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| | | |Colmak| | | | | | | | | SAD | HUD | VAD | RMOD | | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + | | | | | | | | | | | | + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' +``` + +Default layer settings on the left and various RGB underglow controls on the right. + +The default layer settings are lined up on the middle finger column because the home middle finger key is D on QWERTY (like the “D” in “Dvorak”) and the lower middle finger key is C on QWERTY (like the “C” in “Colemak”). I can hear you say that “QWERTY” doesn't start with “E” but Dvorak and Colemak were already aligned in a column so the QWERTY may as well join the formation. + +NOTE: The default layer settings set by those keys are *NOT* stored in EEPROM and thus do not persist through boots. If you wish to change the default layer in a non-volatile manner, either change the order of the layers in the firmware, for example like so if you want to set Dvorak as the new default: +```c +enum layers { + _DVORAK = 0, + _QWERTY, + _COLEMAK_DH, + _NAV, + _SYM, + _FUNCTION, + _ADJUST +}; +``` +or re-define the `QWERTY`, `COLEMAK` and `DVORAK` keys to point to custom keycodes starting on `SAFE_RANGE` and calling the `set_single_persistent_default_layer` function inside of `process_record_user`. + +## Hardware Features + +### Rotary Encoder +The left rotary encoder is programmed to control the volume whereas the right encoder sends PgUp or PgDn on every turn. + +## Going further… + +This default keymap can be used as is, unchanged, as a daily driver for your Kyria but you're invited to treat your keymap like a bonsai. At the beginning, it's just like the default keymap but from time to time, you can tweak it a little. Cut a little key here, let another combo grow there. Slowly but surely it will be a unique keymap that will fit you like a glove. + +Check out the #keymap-ideas channel on the official SplitKB Discord server for inspiration. diff --git a/keyboards/splitkb/halcyon/kyria/readme.md b/keyboards/splitkb/halcyon/kyria/readme.md new file mode 100755 index 0000000000..62689d35b0 --- /dev/null +++ b/keyboards/splitkb/halcyon/kyria/readme.md @@ -0,0 +1,31 @@ +# Halcyon Kyria + +![splitkb/halcyon/kyria](https://i.imgur.com/n7WuUs9.jpg) + +The Halcyon Kyria rev4 is the fourth Kyria revision and the first keyboard in our Halcyon range. Similar to Aurora, all keyboards in the series share the same feature set. The key highlights: + +- Halcyon keyboards come preassembled! You won't need a soldering iron. +- You'll be able to install [VIK](https://github.com/sadekbaroudi/vik) modules. +- It'll come fully documented, which includes the unboxing, assembly (with only a screwdriver), first installation and some advanced use cases. +- Both the connection to the host device as well as the interconnect between the keyboard halves use USB C. +- The controller has full ESD protection on all USB C ports, as well as all switch matrix GPIO! +- The controller is interchangable. If part of your keyboard ever breaks, we can replace just the bits that need replacing. + +* Keyboard Maintainer: [splitkb.com](https://github.com/splitkb.com) +* Hardware Availability: [splitkb.com](https://splitkb.com). + +Make example for this keyboard (after setting up your build environment): + + make splitkb/halcyon/kyria/rev4:default + +The keyboard can be flashed by copying the resulting `.uf2` file onto the `RPI-RP2` flash drive. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Reset button**: Double-tap the reset button at the top of the controller, right above the USB-C port. +* **Bootloader reset**: Hold down the "Boot" button and plug in the keyboard. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/splitkb/halcyon/kyria/rev4/config.h b/keyboards/splitkb/halcyon/kyria/rev4/config.h new file mode 100755 index 0000000000..c09744f923 --- /dev/null +++ b/keyboards/splitkb/halcyon/kyria/rev4/config.h @@ -0,0 +1,32 @@ +// Copyright 2024 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// Make it easier to enter the bootloader +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U + +// UART1, communication between the two halves +#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode. +#define SERIAL_USART_TX_PIN GP28 // USART TX pin +#define SERIAL_USART_RX_PIN GP29 // USART RX pin +#define SERIAL_PIO_USE_PIO1 // Use PIO1 as PIO0 is used for WS2812 driver + +// VBUS detection +#define USB_VBUS_PIN GP1 + +//// VIK + +// GPIO1 = GP27 +// GPIO2 = GP26 +// CS = GP13 + +#define I2C_DRIVER I2C0 +#define I2C1_SDA_PIN GP16 +#define I2C1_SCL_PIN GP17 + +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN GP14 +#define SPI_MOSI_PIN GP15 +#define SPI_MISO_PIN GP12 \ No newline at end of file diff --git a/keyboards/splitkb/halcyon/kyria/rev4/halconf.h b/keyboards/splitkb/halcyon/kyria/rev4/halconf.h new file mode 100644 index 0000000000..1050ebf313 --- /dev/null +++ b/keyboards/splitkb/halcyon/kyria/rev4/halconf.h @@ -0,0 +1,14 @@ +// Copyright 2024 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +//// VIK + +#define HAL_USE_I2C TRUE + +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#include_next \ No newline at end of file diff --git a/keyboards/splitkb/halcyon/kyria/rev4/keyboard.json b/keyboards/splitkb/halcyon/kyria/rev4/keyboard.json new file mode 100755 index 0000000000..c9e891964b --- /dev/null +++ b/keyboards/splitkb/halcyon/kyria/rev4/keyboard.json @@ -0,0 +1,168 @@ +{ + "keyboard_name": "Halcyon Kyria rev4", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "GP23", "pin_b": "GP22", "resolution": 2} + ] + }, + "features": { + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP19", "GP20", "GP25", "GP4", "GP9", "GP10", "GP5"], + "rows": ["GP8", "GP11", "GP7", "GP6"] + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "multisplash": true, + "pixel_flow": true, + "pixel_fractal": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "solid_color": true, + "solid_multisplash": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "default": { + "animation": "cycle_left_right" + }, + "driver": "ws2812", + "layout": [ + {"x": 75, "y": 2, "flags": 2}, + {"x": 50, "y": 1, "flags": 2}, + {"x": 14, "y": 4, "flags": 2}, + {"x": 25, "y": 45, "flags": 2}, + {"x": 58, "y": 49, "flags": 2}, + {"x": 94, "y": 53, "flags": 2}, + {"matrix": [3, 0], "x": 94, "y": 64, "flags": 4}, + {"matrix": [3, 5], "x": 79, "y": 60, "flags": 4}, + {"matrix": [3, 1], "x": 65, "y": 53, "flags": 4}, + {"matrix": [3, 2], "x": 51, "y": 49, "flags": 4}, + {"matrix": [3, 4], "x": 36, "y": 49, "flags": 4}, + {"matrix": [2, 0], "x": 101, "y": 49, "flags": 4}, + {"matrix": [3, 3], "x": 87, "y": 45, "flags": 4}, + {"matrix": [2, 1], "x": 72, "y": 38, "flags": 4}, + {"matrix": [2, 2], "x": 58, "y": 34, "flags": 4}, + {"matrix": [2, 3], "x": 43, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 29, "y": 34, "flags": 4}, + {"matrix": [2, 5], "x": 14, "y": 41, "flags": 4}, + {"matrix": [2, 6], "x": 0, "y": 41, "flags": 4}, + {"matrix": [1, 1], "x": 72, "y": 23, "flags": 4}, + {"matrix": [1, 2], "x": 58, "y": 19, "flags": 4}, + {"matrix": [1, 3], "x": 43, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 29, "y": 19, "flags": 4}, + {"matrix": [1, 5], "x": 14, "y": 26, "flags": 4}, + {"matrix": [1, 6], "x": 0, "y": 26, "flags": 4}, + {"matrix": [0, 1], "x": 72, "y": 8, "flags": 4}, + {"matrix": [0, 2], "x": 58, "y": 4, "flags": 4}, + {"matrix": [0, 3], "x": 43, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 29, "y": 4, "flags": 4}, + {"matrix": [0, 5], "x": 14, "y": 11, "flags": 4}, + {"matrix": [0, 6], "x": 0, "y": 11, "flags": 4}, + {"x": 149, "y": 2, "flags": 2}, + {"x": 174, "y": 1, "flags": 2}, + {"x": 210, "y": 4, "flags": 2}, + {"x": 199, "y": 45, "flags": 2}, + {"x": 166, "y": 49, "flags": 2}, + {"x": 130, "y": 53, "flags": 2}, + {"matrix": [7, 0], "x": 130, "y": 64, "flags": 4}, + {"matrix": [7, 5], "x": 145, "y": 60, "flags": 4}, + {"matrix": [7, 1], "x": 159, "y": 53, "flags": 4}, + {"matrix": [7, 2], "x": 173, "y": 49, "flags": 4}, + {"matrix": [7, 4], "x": 188, "y": 49, "flags": 4}, + {"matrix": [6, 0], "x": 123, "y": 49, "flags": 4}, + {"matrix": [7, 3], "x": 137, "y": 45, "flags": 4}, + {"matrix": [6, 1], "x": 152, "y": 38, "flags": 4}, + {"matrix": [6, 2], "x": 166, "y": 34, "flags": 4}, + {"matrix": [6, 3], "x": 181, "y": 30, "flags": 4}, + {"matrix": [6, 4], "x": 195, "y": 34, "flags": 4}, + {"matrix": [6, 5], "x": 210, "y": 41, "flags": 4}, + {"matrix": [6, 6], "x": 224, "y": 41, "flags": 4}, + {"matrix": [5, 1], "x": 152, "y": 23, "flags": 4}, + {"matrix": [5, 2], "x": 166, "y": 19, "flags": 4}, + {"matrix": [5, 3], "x": 181, "y": 15, "flags": 4}, + {"matrix": [5, 4], "x": 195, "y": 19, "flags": 4}, + {"matrix": [5, 5], "x": 210, "y": 26, "flags": 4}, + {"matrix": [5, 6], "x": 224, "y": 26, "flags": 4}, + {"matrix": [4, 1], "x": 152, "y": 8, "flags": 4}, + {"matrix": [4, 2], "x": 166, "y": 4, "flags": 4}, + {"matrix": [4, 3], "x": 181, "y": 0, "flags": 4}, + {"matrix": [4, 4], "x": 195, "y": 4, "flags": 4}, + {"matrix": [4, 5], "x": 210, "y": 11, "flags": 4}, + {"matrix": [4, 6], "x": 224, "y": 11, "flags": 4} + ], + "max_brightness": 128, + "sleep": true, + "split_count": [31, 31] + }, + "split": { + "enabled": true, + "handedness": { + "pin": "GP24" + }, + "matrix_pins": { + "right": { + "cols": ["GP5", "GP10", "GP9", "GP4", "GP25", "GP20", "GP19"], + "rows": ["GP8", "GP11", "GP7", "GP6"] + } + }, + "serial": { + "driver": "vendor" + }, + "transport": { + "sync": { + "matrix_state": true + } + } + }, + "usb": { + "pid": "0x7FCE" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP3" + } +} diff --git a/keyboards/splitkb/halcyon/kyria/rev4/mcuconf.h b/keyboards/splitkb/halcyon/kyria/rev4/mcuconf.h new file mode 100644 index 0000000000..6792b923f1 --- /dev/null +++ b/keyboards/splitkb/halcyon/kyria/rev4/mcuconf.h @@ -0,0 +1,14 @@ +// Copyright 2024 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +//// VIK + +#undef RP_I2C_USE_I2C0 +#define RP_I2C_USE_I2C0 TRUE + +#undef RP_SPI_USE_SPI1 +#define RP_SPI_USE_SPI1 TRUE \ No newline at end of file diff --git a/keyboards/splitkb/halcyon/kyria/rev4/rev4.c b/keyboards/splitkb/halcyon/kyria/rev4/rev4.c new file mode 100644 index 0000000000..27671b9d7c --- /dev/null +++ b/keyboards/splitkb/halcyon/kyria/rev4/rev4.c @@ -0,0 +1,28 @@ +// Copyright 2024 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { + return false; + } + if (index == 0) { + // Volume control + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (index == 1) { + // Page up/Page down + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } + return false; +} +#endif From 191172aa4e03081ec36cc918a6ac7ffe289162d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=E1=BA=AFn?= <59417802+MaiTheSan@users.noreply.github.com> Date: Mon, 2 Dec 2024 23:35:24 -0800 Subject: [PATCH 11/77] [Keyboard] Add NCR80 ALPS SKFL/FR (#24625) * ADD NCR80 ALPS SKFL/FR * fix * Update config.h * Update config.h * Update keyboards/salane/ncr80alpsskfl/keyboard.json Co-authored-by: Duncan Sutherland * Update keyboards/salane/ncr80alpsskfl/keymaps/default/keymap.c Co-authored-by: Duncan Sutherland * Update keyboards/salane/ncr80alpsskfl/keymaps/default/keymap.c Co-authored-by: Duncan Sutherland * Update keyboards/salane/ncr80alpsskfl/keyboard.json Co-authored-by: jack * Update keyboards/salane/ncr80alpsskfl/readme.md Co-authored-by: jack --------- Co-authored-by: Duncan Sutherland Co-authored-by: jack --- keyboards/salane/ncr80alpsskfl/config.h | 17 +++ keyboards/salane/ncr80alpsskfl/keyboard.json | 124 ++++++++++++++++++ .../ncr80alpsskfl/keymaps/default/keymap.c | 28 ++++ keyboards/salane/ncr80alpsskfl/readme.md | 29 ++++ 4 files changed, 198 insertions(+) create mode 100644 keyboards/salane/ncr80alpsskfl/config.h create mode 100644 keyboards/salane/ncr80alpsskfl/keyboard.json create mode 100644 keyboards/salane/ncr80alpsskfl/keymaps/default/keymap.c create mode 100644 keyboards/salane/ncr80alpsskfl/readme.md diff --git a/keyboards/salane/ncr80alpsskfl/config.h b/keyboards/salane/ncr80alpsskfl/config.h new file mode 100644 index 0000000000..cc6fb298f4 --- /dev/null +++ b/keyboards/salane/ncr80alpsskfl/config.h @@ -0,0 +1,17 @@ +/* +Copyright 2024 Salane +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define RP2040_FLASH_GENERIC_03H diff --git a/keyboards/salane/ncr80alpsskfl/keyboard.json b/keyboards/salane/ncr80alpsskfl/keyboard.json new file mode 100644 index 0000000000..512593d351 --- /dev/null +++ b/keyboards/salane/ncr80alpsskfl/keyboard.json @@ -0,0 +1,124 @@ +{ + "keyboard_name": "NCR80 ALPS SKFL", + "manufacturer": "Salane", + "url": "", + "maintainer": "Mai The San", + "processor": "RP2040", + "bootloader": "rp2040", + "usb": { + "vid": "0x534C", + "pid": "0x087A", + "device_version": "0.0.1" + }, + "matrix_pins": { + "rows": ["GP24", "GP9", "GP10", "GP13", "GP12", "GP11"], + "cols": ["GP16", "GP17", "GP18", "GP19", "GP20", "GP21", "GP22", "GP23", "GP25", "GP26", "GP27", "GP28", "GP29", "GP6", "GP5", "GP4", "GP3"] + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true + }, + "indicators": { + "num_lock": "GP0", + "caps_lock": "GP1", + "scroll_lock": "GP2" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "K01", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "K02", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "K03", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "K04", "matrix": [0, 4], "x": 5, "y": 0}, + {"label": "K05", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "K06", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "K07", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "K08", "matrix": [0, 8], "x": 9.5, "y": 0}, + {"label": "K09", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "K0A", "matrix": [0, 10], "x": 12, "y": 0}, + {"label": "K0B", "matrix": [0, 11], "x": 13, "y": 0}, + {"label": "K0C", "matrix": [0, 12], "x": 14, "y": 0}, + + {"label": "K10", "matrix": [1, 0], "x": 0, "y": 2}, + {"label": "K11", "matrix": [1, 1], "x": 1, "y": 2}, + {"label": "K12", "matrix": [1, 2], "x": 2, "y": 2}, + {"label": "K13", "matrix": [1, 3], "x": 3, "y": 2}, + {"label": "K14", "matrix": [1, 4], "x": 4, "y": 2}, + {"label": "K15", "matrix": [1, 5], "x": 5, "y": 2}, + {"label": "K16", "matrix": [1, 6], "x": 6, "y": 2}, + {"label": "K17", "matrix": [1, 7], "x": 7, "y": 2}, + {"label": "K18", "matrix": [1, 8], "x": 8, "y": 2}, + {"label": "K19", "matrix": [1, 9], "x": 9, "y": 2}, + {"label": "K1A", "matrix": [1, 10], "x": 10, "y": 2}, + {"label": "K1B", "matrix": [1, 11], "x": 11, "y": 2}, + {"label": "K1C", "matrix": [1, 12], "x": 12, "y": 2}, + {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 2}, + {"label": "K1D", "matrix": [1, 13], "x": 14, "y": 2}, + {"label": "K1E", "matrix": [1, 14], "x": 15.25, "y": 2}, + {"label": "K1F", "matrix": [1, 15], "x": 16.25, "y": 2}, + {"label": "K1G", "matrix": [1, 16], "x": 17.25, "y": 2}, + + {"label": "K20", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.5}, + {"label": "K21", "matrix": [2, 1], "x": 1.5, "y": 3}, + {"label": "K22", "matrix": [2, 2], "x": 2.5, "y": 3}, + {"label": "K23", "matrix": [2, 3], "x": 3.5, "y": 3}, + {"label": "K24", "matrix": [2, 4], "x": 4.5, "y": 3}, + {"label": "K25", "matrix": [2, 5], "x": 5.5, "y": 3}, + {"label": "K26", "matrix": [2, 6], "x": 6.5, "y": 3}, + {"label": "K27", "matrix": [2, 7], "x": 7.5, "y": 3}, + {"label": "K28", "matrix": [2, 8], "x": 8.5, "y": 3}, + {"label": "K29", "matrix": [2, 9], "x": 9.5, "y": 3}, + {"label": "K2A", "matrix": [2, 10], "x": 10.5, "y": 3}, + {"label": "K2B", "matrix": [2, 11], "x": 11.5, "y": 3}, + {"label": "K2C", "matrix": [2, 12], "x": 12.5, "y": 3}, + {"label": "K2D", "matrix": [2, 13], "x": 13.5, "y": 3, "w": 1.5}, + {"label": "K2E", "matrix": [2, 14], "x": 15.25, "y": 3}, + {"label": "K2F", "matrix": [2, 15], "x": 16.25, "y": 3}, + {"label": "K2G", "matrix": [2, 16], "x": 17.25, "y": 3}, + + {"label": "K30", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.75}, + {"label": "K31", "matrix": [3, 1], "x": 1.75, "y": 4}, + {"label": "K32", "matrix": [3, 2], "x": 2.75, "y": 4}, + {"label": "K33", "matrix": [3, 3], "x": 3.75, "y": 4}, + {"label": "K34", "matrix": [3, 4], "x": 4.75, "y": 4}, + {"label": "K35", "matrix": [3, 5], "x": 5.75, "y": 4}, + {"label": "K36", "matrix": [3, 6], "x": 6.75, "y": 4}, + {"label": "K37", "matrix": [3, 7], "x": 7.75, "y": 4}, + {"label": "K38", "matrix": [3, 8], "x": 8.75, "y": 4}, + {"label": "K39", "matrix": [3, 9], "x": 9.75, "y": 4}, + {"label": "K3A", "matrix": [3, 10], "x": 10.75, "y": 4}, + {"label": "K3B", "matrix": [3, 11], "x": 11.75, "y": 4}, + {"label": "K3D", "matrix": [3, 13], "x": 12.75, "y": 4, "w": 2.25}, + + {"label": "K40", "matrix": [4, 0], "x": 0, "y": 5, "w": 2.25}, + {"label": "K42", "matrix": [4, 2], "x": 2.25, "y": 5}, + {"label": "K43", "matrix": [4, 3], "x": 3.25, "y": 5}, + {"label": "K44", "matrix": [4, 4], "x": 4.25, "y": 5}, + {"label": "K45", "matrix": [4, 5], "x": 5.25, "y": 5}, + {"label": "K46", "matrix": [4, 6], "x": 6.25, "y": 5}, + {"label": "K47", "matrix": [4, 7], "x": 7.25, "y": 5}, + {"label": "K48", "matrix": [4, 8], "x": 8.25, "y": 5}, + {"label": "K49", "matrix": [4, 9], "x": 9.25, "y": 5}, + {"label": "K4A", "matrix": [4, 10], "x": 10.25, "y": 5}, + {"label": "K4B", "matrix": [4, 11], "x": 11.25, "y": 5}, + {"label": "K4C", "matrix": [4, 12], "x": 12.25, "y": 5, "w": 1.75}, + {"label": "K4D", "matrix": [4, 13], "x": 14, "y": 5}, + {"label": "K4F", "matrix": [4, 15], "x": 16.25, "y": 5}, + + {"label": "K50", "matrix": [5, 0], "x": 0, "y": 6, "w": 1.5}, + {"label": "K51", "matrix": [5, 1], "x": 1.5, "y": 6}, + {"label": "K52", "matrix": [5, 2], "x": 2.5, "y": 6, "w": 1.5}, + {"label": "K57", "matrix": [5, 7], "x": 4, "y": 6, "w": 7}, + {"label": "K5B", "matrix": [5, 11], "x": 11, "y": 6, "w": 1.5}, + {"label": "K5C", "matrix": [5, 12], "x": 12.5, "y": 6}, + {"label": "K5D", "matrix": [5, 13], "x": 13.5, "y": 6, "w": 1.5}, + {"label": "K5E", "matrix": [5, 14], "x": 15.25, "y": 6}, + {"label": "K5F", "matrix": [5, 15], "x": 16.25, "y": 6}, + {"label": "K5G", "matrix": [5, 16], "x": 17.25, "y": 6} + ] + } + } +} diff --git a/keyboards/salane/ncr80alpsskfl/keymaps/default/keymap.c b/keyboards/salane/ncr80alpsskfl/keymaps/default/keymap.c new file mode 100644 index 0000000000..e0db926341 --- /dev/null +++ b/keyboards/salane/ncr80alpsskfl/keymaps/default/keymap.c @@ -0,0 +1,28 @@ +/* Copyright 2023 SawnsProjects + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_SLSH, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/keyboards/salane/ncr80alpsskfl/readme.md b/keyboards/salane/ncr80alpsskfl/readme.md new file mode 100644 index 0000000000..a8e0c0725a --- /dev/null +++ b/keyboards/salane/ncr80alpsskfl/readme.md @@ -0,0 +1,29 @@ +# NCR80 ALPS SKFL + +![NCR80 ALPS SKFL](https://i.imgur.com/X964J2P.jpeg) + + PCB Replace for NCR80 with ALPS SKFL switch. + + **Firmware files are SPECIFIC to each board. Firmware files from one, will not work on the other.** Please use the `.hex` or `.bin` appropriate for your board. + +* Keyboard Maintainer: [Mai The San](https://github.com/MaiTheSan) +* Hardware Supported: NCR80 +* Hardware Availability: [Github](https://github.com/MaiTheSan/NCR80-ALPS-SKFL) + +Make examples for this keyboard (after setting up your build environment): + + make salane/ncr80alpsskfl:default + +Flashing example for this keyboard: + + make salane/ncr80alpsskfl:default:flash + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: short 2 pin in the back of pcb and plug the usb in +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file From c5eeac9686b9ff163c91546adc569eb6d433359b Mon Sep 17 00:00:00 2001 From: gtips <51393966+gtips@users.noreply.github.com> Date: Tue, 3 Dec 2024 16:46:37 +0900 Subject: [PATCH 12/77] [Keyboard] Add keyboard reviung46 (#24245) * add keyboard reviung46 * modified keyboards/reviung/reviung46/readme.md * modified keyboards/reviung/reviung46/keyboard.json * modified keyboards/reviung/reviung46/readme.md * fix keyboards/reviung/reviung46/keyboard.json * fix keyboards/reviung/reviung46/keymaps/default/keymap.c fix keyboards/reviung/reviung46/keymaps/via/keymap.c * fix keyboards/reviung/reviung46/keymaps/via/keymap.c * fix keyboards/reviung/reviung46/keyboard.json * fix keyboards/reviung/reviung46/keyboard.json * modified reviung/reviung46/readme.md * fixed keyboards/reviung/reviung46/keyboard.json * fixed keyboards/reviung/reviung46/keymaps/default/keymap.c deleted keyboards/reviung/reviung46/keymaps/via/keymap.c deleted keyboards/reviung/reviung46/keymaps/via/rules.mk * fix keyboards/reviung/reviung46/keyboard.json and keyboards/reviung/reviung46/keymaps/default/keymap.c * Update keyboards/reviung/reviung46/readme.md --------- Co-authored-by: jack --- keyboards/reviung/reviung46/keyboard.json | 463 ++++++++++++++++++ .../reviung46/keymaps/default/keymap.c | 47 ++ keyboards/reviung/reviung46/readme.md | 27 + 3 files changed, 537 insertions(+) create mode 100644 keyboards/reviung/reviung46/keyboard.json create mode 100644 keyboards/reviung/reviung46/keymaps/default/keymap.c create mode 100644 keyboards/reviung/reviung46/readme.md diff --git a/keyboards/reviung/reviung46/keyboard.json b/keyboards/reviung/reviung46/keyboard.json new file mode 100644 index 0000000000..cdf9a24e17 --- /dev/null +++ b/keyboards/reviung/reviung46/keyboard.json @@ -0,0 +1,463 @@ +{ + "keyboard_name": "reviung46", + "manufacturer": "gtips", + "url": "https://github.com/gtips/reviung/tree/master/reviung46/", + "maintainer": "gtips", + "usb": { + "vid": "0x4E95", + "pid": "0x4E19", + "device_version": "0.0.1" + }, + "rgblight": { + "hue_steps": 16, + "saturation_steps": 16, + "brightness_steps": 16, + "led_count": 10, + "sleep": true, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "alternating": true, + "twinkle": true + } + }, + "ws2812": { + "pin": "D3" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "matrix_pins": { + "cols": ["B5", "C6", "D4", "D0", "D1", "D2"], + "rows": ["B6", "B2", "B3", "B1", "F7", "F6", "F5", "F4"] + }, + "diode_direction": "COL2ROW", + "development_board": "promicro", + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [0, 3], "x": 5.5, "y": 0}, + {"matrix": [0, 4], "x": 6.5, "y": 0}, + {"matrix": [0, 5], "x": 7.5, "y": 0}, + {"matrix": [4, 0], "x": 8.5, "y": 0}, + {"matrix": [4, 1], "x": 9.5, "y": 0}, + {"matrix": [4, 2], "x": 10.5, "y": 0}, + {"matrix": [4, 3], "x": 11.5, "y": 0}, + {"matrix": [4, 4], "x": 12.5, "y": 0}, + {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 3.75, "y": 1}, + {"matrix": [1, 2], "x": 4.75, "y": 1}, + {"matrix": [1, 3], "x": 5.75, "y": 1}, + {"matrix": [1, 4], "x": 6.75, "y": 1}, + {"matrix": [1, 5], "x": 7.75, "y": 1}, + {"matrix": [5, 0], "x": 8.75, "y": 1}, + {"matrix": [5, 1], "x": 9.75, "y": 1}, + {"matrix": [5, 2], "x": 10.75, "y": 1}, + {"matrix": [5, 3], "x": 11.75, "y": 1}, + {"matrix": [5, 4], "x": 12.75, "y": 1}, + {"matrix": [5, 5], "x": 13.75, "y": 1, "w": 1.25}, + + {"matrix": [2, 0], "x": 1, "y": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, + {"matrix": [2, 2], "x": 4.25, "y": 2}, + {"matrix": [2, 3], "x": 5.25, "y": 2}, + {"matrix": [2, 4], "x": 6.25, "y": 2}, + {"matrix": [2, 5], "x": 7.25, "y": 2}, + {"matrix": [6, 0], "x": 8.25, "y": 2}, + {"matrix": [6, 1], "x": 9.25, "y": 2}, + {"matrix": [6, 2], "x": 10.25, "y": 2}, + {"matrix": [6, 3], "x": 11.25, "y": 2}, + {"matrix": [6, 4], "x": 12.25, "y": 2}, + {"matrix": [6, 5], "x": 13.25, "y": 2, "w": 1.75}, + + {"matrix": [3, 0], "x": 0, "y": 3.25}, + {"matrix": [3, 1], "x": 1, "y": 3.25}, + {"matrix": [3, 2], "x": 2, "y": 3.25}, + {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3, "w": 1.25}, + {"matrix": [3, 5], "x": 6, "y": 3, "w": 2.25}, + {"matrix": [7, 0], "x": 8.25, "y": 3, "w": 2.75}, + {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, + {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, + {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_225u_enter": { + "layout": [ + {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [0, 3], "x": 5.5, "y": 0}, + {"matrix": [0, 4], "x": 6.5, "y": 0}, + {"matrix": [0, 5], "x": 7.5, "y": 0}, + {"matrix": [4, 0], "x": 8.5, "y": 0}, + {"matrix": [4, 1], "x": 9.5, "y": 0}, + {"matrix": [4, 2], "x": 10.5, "y": 0}, + {"matrix": [4, 3], "x": 11.5, "y": 0}, + {"matrix": [4, 4], "x": 12.5, "y": 0}, + {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 3.75, "y": 1}, + {"matrix": [1, 2], "x": 4.75, "y": 1}, + {"matrix": [1, 3], "x": 5.75, "y": 1}, + {"matrix": [1, 4], "x": 6.75, "y": 1}, + {"matrix": [1, 5], "x": 7.75, "y": 1}, + {"matrix": [5, 0], "x": 8.75, "y": 1}, + {"matrix": [5, 1], "x": 9.75, "y": 1}, + {"matrix": [5, 2], "x": 10.75, "y": 1}, + {"matrix": [5, 3], "x": 11.75, "y": 1}, + {"matrix": [5, 5], "x": 12.75, "y": 1, "w": 2.25}, + + {"matrix": [2, 0], "x": 1, "y": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, + {"matrix": [2, 2], "x": 4.25, "y": 2}, + {"matrix": [2, 3], "x": 5.25, "y": 2}, + {"matrix": [2, 4], "x": 6.25, "y": 2}, + {"matrix": [2, 5], "x": 7.25, "y": 2}, + {"matrix": [6, 0], "x": 8.25, "y": 2}, + {"matrix": [6, 1], "x": 9.25, "y": 2}, + {"matrix": [6, 2], "x": 10.25, "y": 2}, + {"matrix": [6, 3], "x": 11.25, "y": 2}, + {"matrix": [6, 4], "x": 12.25, "y": 2}, + {"matrix": [6, 5], "x": 13.25, "y": 2, "w": 1.75}, + + {"matrix": [3, 0], "x": 0, "y": 3.25}, + {"matrix": [3, 1], "x": 1, "y": 3.25}, + {"matrix": [3, 2], "x": 2, "y": 3.25}, + {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3, "w": 1.25}, + {"matrix": [3, 5], "x": 6, "y": 3, "w": 2.25}, + {"matrix": [7, 0], "x": 8.25, "y": 3, "w": 2.75}, + {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, + {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, + {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_275u_r_shift": { + "layout": [ + {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [0, 3], "x": 5.5, "y": 0}, + {"matrix": [0, 4], "x": 6.5, "y": 0}, + {"matrix": [0, 5], "x": 7.5, "y": 0}, + {"matrix": [4, 0], "x": 8.5, "y": 0}, + {"matrix": [4, 1], "x": 9.5, "y": 0}, + {"matrix": [4, 2], "x": 10.5, "y": 0}, + {"matrix": [4, 3], "x": 11.5, "y": 0}, + {"matrix": [4, 4], "x": 12.5, "y": 0}, + {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 3.75, "y": 1}, + {"matrix": [1, 2], "x": 4.75, "y": 1}, + {"matrix": [1, 3], "x": 5.75, "y": 1}, + {"matrix": [1, 4], "x": 6.75, "y": 1}, + {"matrix": [1, 5], "x": 7.75, "y": 1}, + {"matrix": [5, 0], "x": 8.75, "y": 1}, + {"matrix": [5, 1], "x": 9.75, "y": 1}, + {"matrix": [5, 2], "x": 10.75, "y": 1}, + {"matrix": [5, 3], "x": 11.75, "y": 1}, + {"matrix": [5, 4], "x": 12.75, "y": 1}, + {"matrix": [5, 5], "x": 13.75, "y": 1, "w": 1.25}, + + {"matrix": [2, 0], "x": 1, "y": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, + {"matrix": [2, 2], "x": 4.25, "y": 2}, + {"matrix": [2, 3], "x": 5.25, "y": 2}, + {"matrix": [2, 4], "x": 6.25, "y": 2}, + {"matrix": [2, 5], "x": 7.25, "y": 2}, + {"matrix": [6, 0], "x": 8.25, "y": 2}, + {"matrix": [6, 1], "x": 9.25, "y": 2}, + {"matrix": [6, 2], "x": 10.25, "y": 2}, + {"matrix": [6, 3], "x": 11.25, "y": 2}, + {"matrix": [6, 5], "x": 12.25, "y": 2, "w": 2.75}, + + {"matrix": [3, 0], "x": 0, "y": 3.25}, + {"matrix": [3, 1], "x": 1, "y": 3.25}, + {"matrix": [3, 2], "x": 2, "y": 3.25}, + {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3, "w": 1.25}, + {"matrix": [3, 5], "x": 6, "y": 3, "w": 2.25}, + {"matrix": [7, 0], "x": 8.25, "y": 3, "w": 2.75}, + {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, + {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, + {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_625u_space": { + "layout": [ + {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [0, 3], "x": 5.5, "y": 0}, + {"matrix": [0, 4], "x": 6.5, "y": 0}, + {"matrix": [0, 5], "x": 7.5, "y": 0}, + {"matrix": [4, 0], "x": 8.5, "y": 0}, + {"matrix": [4, 1], "x": 9.5, "y": 0}, + {"matrix": [4, 2], "x": 10.5, "y": 0}, + {"matrix": [4, 3], "x": 11.5, "y": 0}, + {"matrix": [4, 4], "x": 12.5, "y": 0}, + {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 3.75, "y": 1}, + {"matrix": [1, 2], "x": 4.75, "y": 1}, + {"matrix": [1, 3], "x": 5.75, "y": 1}, + {"matrix": [1, 4], "x": 6.75, "y": 1}, + {"matrix": [1, 5], "x": 7.75, "y": 1}, + {"matrix": [5, 0], "x": 8.75, "y": 1}, + {"matrix": [5, 1], "x": 9.75, "y": 1}, + {"matrix": [5, 2], "x": 10.75, "y": 1}, + {"matrix": [5, 3], "x": 11.75, "y": 1}, + {"matrix": [5, 4], "x": 12.75, "y": 1}, + {"matrix": [5, 5], "x": 13.75, "y": 1, "w": 1.25}, + + {"matrix": [2, 0], "x": 1, "y": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, + {"matrix": [2, 2], "x": 4.25, "y": 2}, + {"matrix": [2, 3], "x": 5.25, "y": 2}, + {"matrix": [2, 4], "x": 6.25, "y": 2}, + {"matrix": [2, 5], "x": 7.25, "y": 2}, + {"matrix": [6, 0], "x": 8.25, "y": 2}, + {"matrix": [6, 1], "x": 9.25, "y": 2}, + {"matrix": [6, 2], "x": 10.25, "y": 2}, + {"matrix": [6, 3], "x": 11.25, "y": 2}, + {"matrix": [6, 4], "x": 12.25, "y": 2}, + {"matrix": [6, 5], "x": 13.25, "y": 2, "w": 1.75}, + + {"matrix": [3, 0], "x": 0, "y": 3.25}, + {"matrix": [3, 1], "x": 1, "y": 3.25}, + {"matrix": [3, 2], "x": 2, "y": 3.25}, + {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, + {"matrix": [3, 5], "x": 4.75, "y": 3, "w": 6.25}, + {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, + {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, + {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_225u_enter_275u_r_shift": { + "layout": [ + {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [0, 3], "x": 5.5, "y": 0}, + {"matrix": [0, 4], "x": 6.5, "y": 0}, + {"matrix": [0, 5], "x": 7.5, "y": 0}, + {"matrix": [4, 0], "x": 8.5, "y": 0}, + {"matrix": [4, 1], "x": 9.5, "y": 0}, + {"matrix": [4, 2], "x": 10.5, "y": 0}, + {"matrix": [4, 3], "x": 11.5, "y": 0}, + {"matrix": [4, 4], "x": 12.5, "y": 0}, + {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 3.75, "y": 1}, + {"matrix": [1, 2], "x": 4.75, "y": 1}, + {"matrix": [1, 3], "x": 5.75, "y": 1}, + {"matrix": [1, 4], "x": 6.75, "y": 1}, + {"matrix": [1, 5], "x": 7.75, "y": 1}, + {"matrix": [5, 0], "x": 8.75, "y": 1}, + {"matrix": [5, 1], "x": 9.75, "y": 1}, + {"matrix": [5, 2], "x": 10.75, "y": 1}, + {"matrix": [5, 3], "x": 11.75, "y": 1}, + {"matrix": [5, 5], "x": 12.75, "y": 1, "w": 2.25}, + + {"matrix": [2, 0], "x": 1, "y": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, + {"matrix": [2, 2], "x": 4.25, "y": 2}, + {"matrix": [2, 3], "x": 5.25, "y": 2}, + {"matrix": [2, 4], "x": 6.25, "y": 2}, + {"matrix": [2, 5], "x": 7.25, "y": 2}, + {"matrix": [6, 0], "x": 8.25, "y": 2}, + {"matrix": [6, 1], "x": 9.25, "y": 2}, + {"matrix": [6, 2], "x": 10.25, "y": 2}, + {"matrix": [6, 3], "x": 11.25, "y": 2}, + {"matrix": [6, 5], "x": 12.25, "y": 2, "w": 2.75}, + + {"matrix": [3, 0], "x": 0, "y": 3.25}, + {"matrix": [3, 1], "x": 1, "y": 3.25}, + {"matrix": [3, 2], "x": 2, "y": 3.25}, + {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3, "w": 1.25}, + {"matrix": [3, 5], "x": 6, "y": 3, "w": 2.25}, + {"matrix": [7, 0], "x": 8.25, "y": 3, "w": 2.75}, + {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, + {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, + {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_225u_enter_625u_space": { + "layout": [ + {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [0, 3], "x": 5.5, "y": 0}, + {"matrix": [0, 4], "x": 6.5, "y": 0}, + {"matrix": [0, 5], "x": 7.5, "y": 0}, + {"matrix": [4, 0], "x": 8.5, "y": 0}, + {"matrix": [4, 1], "x": 9.5, "y": 0}, + {"matrix": [4, 2], "x": 10.5, "y": 0}, + {"matrix": [4, 3], "x": 11.5, "y": 0}, + {"matrix": [4, 4], "x": 12.5, "y": 0}, + {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 3.75, "y": 1}, + {"matrix": [1, 2], "x": 4.75, "y": 1}, + {"matrix": [1, 3], "x": 5.75, "y": 1}, + {"matrix": [1, 4], "x": 6.75, "y": 1}, + {"matrix": [1, 5], "x": 7.75, "y": 1}, + {"matrix": [5, 0], "x": 8.75, "y": 1}, + {"matrix": [5, 1], "x": 9.75, "y": 1}, + {"matrix": [5, 2], "x": 10.75, "y": 1}, + {"matrix": [5, 3], "x": 11.75, "y": 1}, + {"matrix": [5, 5], "x": 12.75, "y": 1, "w": 2.25}, + + {"matrix": [2, 0], "x": 1, "y": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, + {"matrix": [2, 2], "x": 4.25, "y": 2}, + {"matrix": [2, 3], "x": 5.25, "y": 2}, + {"matrix": [2, 4], "x": 6.25, "y": 2}, + {"matrix": [2, 5], "x": 7.25, "y": 2}, + {"matrix": [6, 0], "x": 8.25, "y": 2}, + {"matrix": [6, 1], "x": 9.25, "y": 2}, + {"matrix": [6, 2], "x": 10.25, "y": 2}, + {"matrix": [6, 3], "x": 11.25, "y": 2}, + {"matrix": [6, 4], "x": 12.25, "y": 2}, + {"matrix": [6, 5], "x": 13.25, "y": 2, "w": 1.75}, + + {"matrix": [3, 0], "x": 0, "y": 3.25}, + {"matrix": [3, 1], "x": 1, "y": 3.25}, + {"matrix": [3, 2], "x": 2, "y": 3.25}, + {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, + {"matrix": [3, 5], "x": 4.75, "y": 3, "w": 6.25}, + {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, + {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, + {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_275u_r_shift_625u_space": { + "layout": [ + {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [0, 3], "x": 5.5, "y": 0}, + {"matrix": [0, 4], "x": 6.5, "y": 0}, + {"matrix": [0, 5], "x": 7.5, "y": 0}, + {"matrix": [4, 0], "x": 8.5, "y": 0}, + {"matrix": [4, 1], "x": 9.5, "y": 0}, + {"matrix": [4, 2], "x": 10.5, "y": 0}, + {"matrix": [4, 3], "x": 11.5, "y": 0}, + {"matrix": [4, 4], "x": 12.5, "y": 0}, + {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 3.75, "y": 1}, + {"matrix": [1, 2], "x": 4.75, "y": 1}, + {"matrix": [1, 3], "x": 5.75, "y": 1}, + {"matrix": [1, 4], "x": 6.75, "y": 1}, + {"matrix": [1, 5], "x": 7.75, "y": 1}, + {"matrix": [5, 0], "x": 8.75, "y": 1}, + {"matrix": [5, 1], "x": 9.75, "y": 1}, + {"matrix": [5, 2], "x": 10.75, "y": 1}, + {"matrix": [5, 3], "x": 11.75, "y": 1}, + {"matrix": [5, 4], "x": 12.75, "y": 1}, + {"matrix": [5, 5], "x": 13.75, "y": 1, "w": 1.25}, + + {"matrix": [2, 0], "x": 1, "y": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, + {"matrix": [2, 2], "x": 4.25, "y": 2}, + {"matrix": [2, 3], "x": 5.25, "y": 2}, + {"matrix": [2, 4], "x": 6.25, "y": 2}, + {"matrix": [2, 5], "x": 7.25, "y": 2}, + {"matrix": [6, 0], "x": 8.25, "y": 2}, + {"matrix": [6, 1], "x": 9.25, "y": 2}, + {"matrix": [6, 2], "x": 10.25, "y": 2}, + {"matrix": [6, 3], "x": 11.25, "y": 2}, + {"matrix": [6, 5], "x": 12.25, "y": 2, "w": 2.75}, + + {"matrix": [3, 0], "x": 0, "y": 3.25}, + {"matrix": [3, 1], "x": 1, "y": 3.25}, + {"matrix": [3, 2], "x": 2, "y": 3.25}, + {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, + {"matrix": [3, 5], "x": 4.75, "y": 3, "w": 6.25}, + {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, + {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, + {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_225u_enter_275u_r_shift_625u_space": { + "layout": [ + {"matrix": [0, 0], "x": 2, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 3.5, "y": 0}, + {"matrix": [0, 2], "x": 4.5, "y": 0}, + {"matrix": [0, 3], "x": 5.5, "y": 0}, + {"matrix": [0, 4], "x": 6.5, "y": 0}, + {"matrix": [0, 5], "x": 7.5, "y": 0}, + {"matrix": [4, 0], "x": 8.5, "y": 0}, + {"matrix": [4, 1], "x": 9.5, "y": 0}, + {"matrix": [4, 2], "x": 10.5, "y": 0}, + {"matrix": [4, 3], "x": 11.5, "y": 0}, + {"matrix": [4, 4], "x": 12.5, "y": 0}, + {"matrix": [4, 5], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 2, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 3.75, "y": 1}, + {"matrix": [1, 2], "x": 4.75, "y": 1}, + {"matrix": [1, 3], "x": 5.75, "y": 1}, + {"matrix": [1, 4], "x": 6.75, "y": 1}, + {"matrix": [1, 5], "x": 7.75, "y": 1}, + {"matrix": [5, 0], "x": 8.75, "y": 1}, + {"matrix": [5, 1], "x": 9.75, "y": 1}, + {"matrix": [5, 2], "x": 10.75, "y": 1}, + {"matrix": [5, 3], "x": 11.75, "y": 1}, + {"matrix": [5, 5], "x": 12.75, "y": 1, "w": 2.25}, + + {"matrix": [2, 0], "x": 1, "y": 2.25}, + {"matrix": [2, 1], "x": 2.25, "y": 2, "w": 2}, + {"matrix": [2, 2], "x": 4.25, "y": 2}, + {"matrix": [2, 3], "x": 5.25, "y": 2}, + {"matrix": [2, 4], "x": 6.25, "y": 2}, + {"matrix": [2, 5], "x": 7.25, "y": 2}, + {"matrix": [6, 0], "x": 8.25, "y": 2}, + {"matrix": [6, 1], "x": 9.25, "y": 2}, + {"matrix": [6, 2], "x": 10.25, "y": 2}, + {"matrix": [6, 3], "x": 11.25, "y": 2}, + {"matrix": [6, 5], "x": 12.25, "y": 2, "w": 2.75}, + + {"matrix": [3, 0], "x": 0, "y": 3.25}, + {"matrix": [3, 1], "x": 1, "y": 3.25}, + {"matrix": [3, 2], "x": 2, "y": 3.25}, + {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.5}, + {"matrix": [3, 5], "x": 4.75, "y": 3, "w": 6.25}, + {"matrix": [7, 1], "x": 11, "y": 3, "w": 1.25}, + {"matrix": [7, 2], "x": 12.25, "y": 3, "w": 1.25}, + {"matrix": [7, 3], "x": 13.5, "y": 3, "w": 1.5} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/reviung/reviung46/keymaps/default/keymap.c b/keyboards/reviung/reviung46/keymaps/default/keymap.c new file mode 100644 index 0000000000..60f1d32a70 --- /dev/null +++ b/keyboards/reviung/reviung46/keymaps/default/keymap.c @@ -0,0 +1,47 @@ +// Copyright 2024 gtips (@gtips) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _LOWER, + _RAISE, + _ADJUST, +}; + +#define SF_SS RSFT_T(KC_SLSH) +#define SP_LO LT(_LOWER, KC_SPC) +#define SP_RA LT(_RAISE, KC_SPC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_UP, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SF_SS, + KC_LEFT, KC_DOWN, KC_RGHT, KC_LCTL, KC_LALT, SP_LO, SP_RA, KC_LALT, KC_RGUI, KC_RCTL + ), + [_LOWER] = LAYOUT( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, KC_QUOT, + _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, XXXXXXX, XXXXXXX, XXXXXXX, KC_SLSH, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_RAISE] = LAYOUT( + 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_LBRC, KC_RBRC, KC_BSLS, KC_HOME, KC_END, KC_PGUP, KC_PGDN, XXXXXXX, KC_DQUO, + _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, KC_QUES, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_ADJUST] = LAYOUT( + UG_VALU, UG_SATU, UG_HUEU, UG_NEXT, XXXXXXX, UG_TOGG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + UG_VALD, UG_SATD, UG_HUED, UG_PREV, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_VOLU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_MUTE, KC_VOLD, KC_MPLY, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX + ), +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} diff --git a/keyboards/reviung/reviung46/readme.md b/keyboards/reviung/reviung46/readme.md new file mode 100644 index 0000000000..0914155d14 --- /dev/null +++ b/keyboards/reviung/reviung46/readme.md @@ -0,0 +1,27 @@ +# reviung46 + +![reviung46](https://i.imgur.com/hAanqOQ.jpeg) + +The REVIUNG46 is 42-46 key keyboard. + +* Keyboard Maintainer: [gtips](https://github.com/gtips) +* Hardware Supported: REVIUNG46 PCB. +* Hardware Availability: [PCB & Case Data](https://github.com/gtips/reviung/tree/master/reviung46) + +Make example for this keyboard (after setting up your build environment): + + make reviung46:default + +Flashing example for this keyboard: + + make reviung46:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 93765bb0ef9206517ef4c1d98d5b00ccec7bde28 Mon Sep 17 00:00:00 2001 From: russell-myers1 <124931768+russell-myers1@users.noreply.github.com> Date: Tue, 3 Dec 2024 10:35:39 -0800 Subject: [PATCH 13/77] Update hardware_keyboard_guidelines.md to Fix Typos (#24671) Corrected a typo in the phrase "iOS device need lessthan 100" to "iOS devices need less than 100." This was to improve clarity and professionalism of the doc. --- docs/hardware_keyboard_guidelines.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/hardware_keyboard_guidelines.md b/docs/hardware_keyboard_guidelines.md index de67fa3bc3..7f17c46748 100644 --- a/docs/hardware_keyboard_guidelines.md +++ b/docs/hardware_keyboard_guidelines.md @@ -111,7 +111,7 @@ The `post_config.h` file can be used for additional post-processing, depending o #define USB_MAX_POWER_CONSUMPTION 400 #else // fix iPhone and iPad power adapter issue - // iOS device need lessthan 100 + // iOS devices need less than 100 #define USB_MAX_POWER_CONSUMPTION 100 #endif From f0eb2460d9e5b6e71ff76da3f341795ac53e1ec2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Dec 2024 19:31:16 +0000 Subject: [PATCH 14/77] Bump JamesIves/github-pages-deploy-action from 4.7.1 to 4.7.2 (#24672) Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.7.1 to 4.7.2. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.7.1...v4.7.2) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 95a2cfa3af..edce1a6e5c 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -56,7 +56,7 @@ jobs: - name: Deploy if: ${{ github.event_name == 'push' && github.repository == 'qmk/qmk_firmware' }} - uses: JamesIves/github-pages-deploy-action@v4.7.1 + uses: JamesIves/github-pages-deploy-action@v4.7.2 with: token: ${{ secrets.GITHUB_TOKEN }} branch: gh-pages From e7f138831727aa0aecb0eb3b5959bfdd3a714567 Mon Sep 17 00:00:00 2001 From: Vaarai Date: Tue, 3 Dec 2024 23:40:07 +0100 Subject: [PATCH 15/77] Add cornia keyboard (#24442) * Add cornia keyboard * Update Fire keymap * [Cornia/Doc] Host image on imgur * [Cornia/config] Remove unnecessary defines * [Cornia] Move I2C stuff to keyboard level * [Cornia/config] Remove unnecessary defines & move all callbacks to keymap.c * [Cornia] Use tri-layer in default keymap * [Cornia/makefiles] remove license headers & root makefile * [Cornia] Put common configuration to top keyboard level * [Cornia] Remove unecessary custom keycodes * [Cornia] Fix readme * [Cornia] Fix RGB keycodes * [Cornia] Fix config files * [Cornia] Fix readme * [Cornia] Fix mcuconf.h license --- keyboards/cornia/config.h | 30 +++ keyboards/cornia/cornia.c | 44 ++++ keyboards/cornia/cornia.h | 21 ++ keyboards/cornia/info.json | 139 +++++++++++++ keyboards/cornia/keymaps/default/keymap.c | 75 +++++++ keyboards/cornia/keymaps/default/rules.mk | 1 + keyboards/cornia/keymaps/fire/config.h | 33 +++ keyboards/cornia/keymaps/fire/keymap.c | 226 +++++++++++++++++++++ keyboards/cornia/keymaps/fire/keymap.h | 55 +++++ keyboards/cornia/keymaps/fire/rules.mk | 8 + keyboards/cornia/keymaps/fire/tap_dances.c | 154 ++++++++++++++ keyboards/cornia/keymaps/fire/tap_dances.h | 47 +++++ keyboards/cornia/mcuconf.h | 25 +++ keyboards/cornia/readme.md | 46 +++++ keyboards/cornia/v0_6/keyboard.json | 12 ++ keyboards/cornia/v1/keyboard.json | 21 ++ 16 files changed, 937 insertions(+) create mode 100644 keyboards/cornia/config.h create mode 100644 keyboards/cornia/cornia.c create mode 100644 keyboards/cornia/cornia.h create mode 100644 keyboards/cornia/info.json create mode 100644 keyboards/cornia/keymaps/default/keymap.c create mode 100644 keyboards/cornia/keymaps/default/rules.mk create mode 100644 keyboards/cornia/keymaps/fire/config.h create mode 100644 keyboards/cornia/keymaps/fire/keymap.c create mode 100644 keyboards/cornia/keymaps/fire/keymap.h create mode 100644 keyboards/cornia/keymaps/fire/rules.mk create mode 100644 keyboards/cornia/keymaps/fire/tap_dances.c create mode 100644 keyboards/cornia/keymaps/fire/tap_dances.h create mode 100644 keyboards/cornia/mcuconf.h create mode 100644 keyboards/cornia/readme.md create mode 100644 keyboards/cornia/v0_6/keyboard.json create mode 100644 keyboards/cornia/v1/keyboard.json diff --git a/keyboards/cornia/config.h b/keyboards/cornia/config.h new file mode 100644 index 0000000000..dbf7031b62 --- /dev/null +++ b/keyboards/cornia/config.h @@ -0,0 +1,30 @@ +/* Copyright 2024 Vaarai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Select hand configuration */ +// #define MASTER_LEFT +#define MASTER_RIGHT +// #define EE_HANDS + +/* I²C config */ +#define I2C_DRIVER I2CD1 +#define I2C1_SDA_PIN GP10 +#define I2C1_SCL_PIN GP11 + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // Timeout window in ms in which the double tap can occur. \ No newline at end of file diff --git a/keyboards/cornia/cornia.c b/keyboards/cornia/cornia.c new file mode 100644 index 0000000000..9a09047333 --- /dev/null +++ b/keyboards/cornia/cornia.c @@ -0,0 +1,44 @@ +/* Copyright 2024 Vaarai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "cornia.h" + +// 'Cornia', 32x32px +#define OLED_LOGO_CORNIA {\ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, \ + 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xe0, 0x00, \ + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xfd, 0xe1, \ + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, \ + 0x00, 0x00, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0x3f, 0x07, 0x00, 0x00, 0x00, 0x07, 0x3f, 0xff, 0xff, \ + 0xff, 0xf8, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ + 0x00, 0x1e, 0x1f, 0x1f, 0x1f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, \ + 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x0e, 0x00 \ + } + +void cornia_render_logo(void) { +#ifdef OLED_ENABLE + static const char PROGMEM logo[] = OLED_LOGO_CORNIA; + oled_write_raw_P(logo, sizeof(logo)); +#endif +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + cornia_render_logo(); + return true; +} diff --git a/keyboards/cornia/cornia.h b/keyboards/cornia/cornia.h new file mode 100644 index 0000000000..2cee8d4a68 --- /dev/null +++ b/keyboards/cornia/cornia.h @@ -0,0 +1,21 @@ +/* Copyright 2024 Vaarai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +void cornia_render_logo(void); diff --git a/keyboards/cornia/info.json b/keyboards/cornia/info.json new file mode 100644 index 0000000000..7c0b5aabf2 --- /dev/null +++ b/keyboards/cornia/info.json @@ -0,0 +1,139 @@ +{ + "manufacturer": "Vaarai", + "maintainer": "Vaarai", + "url": "https://github.com/Vaarai/Cornia", + "usb": { + "vid": "0xFEED" + }, + "processor": "RP2040", + "bootloader": "rp2040", + "split": { + "enabled": true, + "serial": { + "driver": "vendor", + "pin": "GP1" + }, + "transport": { + "sync": { + "matrix_state": true + } + } + }, + "features": { + "extrakey": true, + "mousekey": true, + "bootmagic": true, + "nkro": true, + "oled": true, + "rgb_matrix": true + }, + "community_layouts": [ "split_3x6_3" ], + "layout_aliases": { + "LAYOUT": "LAYOUT_split_3x6_3" + }, + "layouts": { + "LAYOUT_split_3x6_3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.3}, + {"matrix": [0, 1], "x": 1, "y": 0.3}, + {"matrix": [0, 2], "x": 2, "y": 0.1}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0.1}, + {"matrix": [0, 5], "x": 5, "y": 0.2}, + {"matrix": [4, 5], "x": 9, "y": 0.2}, + {"matrix": [4, 4], "x": 10, "y": 0.1}, + {"matrix": [4, 3], "x": 11, "y": 0}, + {"matrix": [4, 2], "x": 12, "y": 0.1}, + {"matrix": [4, 1], "x": 13, "y": 0.3}, + {"matrix": [4, 0], "x": 14, "y": 0.3}, + {"matrix": [1, 0], "x": 0, "y": 1.3}, + {"matrix": [1, 1], "x": 1, "y": 1.3}, + {"matrix": [1, 2], "x": 2, "y": 1.1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1.1}, + {"matrix": [1, 5], "x": 5, "y": 1.2}, + {"matrix": [5, 5], "x": 9, "y": 1.2}, + {"matrix": [5, 4], "x": 10, "y": 1.1}, + {"matrix": [5, 3], "x": 11, "y": 1}, + {"matrix": [5, 2], "x": 12, "y": 1.1}, + {"matrix": [5, 1], "x": 13, "y": 1.3}, + {"matrix": [5, 0], "x": 14, "y": 1.3}, + {"matrix": [2, 0], "x": 0, "y": 2.3}, + {"matrix": [2, 1], "x": 1, "y": 2.3}, + {"matrix": [2, 2], "x": 2, "y": 2.1}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2.1}, + {"matrix": [2, 5], "x": 5, "y": 2.2}, + {"matrix": [6, 5], "x": 9, "y": 2.2}, + {"matrix": [6, 4], "x": 10, "y": 2.1}, + {"matrix": [6, 3], "x": 11, "y": 2}, + {"matrix": [6, 2], "x": 12, "y": 2.1}, + {"matrix": [6, 1], "x": 13, "y": 2.3}, + {"matrix": [6, 0], "x": 14, "y": 2.3}, + {"matrix": [3, 3], "x": 4, "y": 3.7}, + {"matrix": [3, 4], "x": 5, "y": 3.7}, + {"matrix": [3, 5], "x": 6, "y": 3.2}, + {"matrix": [7, 5], "x": 8, "y": 3.2}, + {"matrix": [7, 4], "x": 9, "y": 3.7}, + {"matrix": [7, 3], "x": 10, "y": 3.7} + ] + } + }, + "ws2812": { + "driver": "vendor", + "pin": "GP0" + }, + "rgb_matrix": { + "driver": "ws2812", + "sleep": true, + "split_count": [21, 21], + "animations": { + "static_gradient": true, + "breathing": true + }, + "layout": [ + {"matrix": [3, 5], "x": 95, "y": 63, "flags": 1}, + {"matrix": [2, 5], "x": 85, "y": 39, "flags": 4}, + {"matrix": [1, 5], "x": 85, "y": 21, "flags": 4}, + {"matrix": [0, 5], "x": 85, "y": 4, "flags": 4}, + {"matrix": [0, 4], "x": 68, "y": 2, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 19, "flags": 4}, + {"matrix": [2, 4], "x": 68, "y": 37, "flags": 4}, + {"matrix": [3, 4], "x": 80, "y": 58, "flags": 1}, + {"matrix": [3, 3], "x": 60, "y": 55, "flags": 1}, + {"matrix": [2, 3], "x": 50, "y": 35, "flags": 4}, + {"matrix": [1, 3], "x": 50, "y": 13, "flags": 4}, + {"matrix": [0, 3], "x": 50, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 33, "y": 3, "flags": 4}, + {"matrix": [1, 2], "x": 33, "y": 20, "flags": 4}, + {"matrix": [2, 2], "x": 33, "y": 37, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 42, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 24, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 7, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 7, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 24, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 41, "flags": 1}, + {"matrix": [7, 5], "x": 129, "y": 63, "flags": 1}, + {"matrix": [6, 5], "x": 139, "y": 39, "flags": 4}, + {"matrix": [5, 5], "x": 139, "y": 21, "flags": 4}, + {"matrix": [4, 5], "x": 139, "y": 4, "flags": 4}, + {"matrix": [4, 4], "x": 156, "y": 2, "flags": 4}, + {"matrix": [5, 4], "x": 156, "y": 19, "flags": 4}, + {"matrix": [6, 4], "x": 156, "y": 37, "flags": 4}, + {"matrix": [7, 4], "x": 144, "y": 58, "flags": 1}, + {"matrix": [7, 3], "x": 164, "y": 55, "flags": 1}, + {"matrix": [6, 3], "x": 174, "y": 35, "flags": 4}, + {"matrix": [5, 3], "x": 174, "y": 13, "flags": 4}, + {"matrix": [4, 3], "x": 174, "y": 0, "flags": 4}, + {"matrix": [4, 2], "x": 191, "y": 3, "flags": 4}, + {"matrix": [5, 2], "x": 191, "y": 20, "flags": 4}, + {"matrix": [6, 2], "x": 191, "y": 37, "flags": 4}, + {"matrix": [6, 1], "x": 208, "y": 42, "flags": 4}, + {"matrix": [5, 1], "x": 208, "y": 24, "flags": 4}, + {"matrix": [4, 1], "x": 208, "y": 7, "flags": 4}, + {"matrix": [4, 0], "x": 224, "y": 7, "flags": 1}, + {"matrix": [5, 0], "x": 224, "y": 24, "flags": 1}, + {"matrix": [6, 0], "x": 224, "y": 41, "flags": 1} + ] + } +} \ No newline at end of file diff --git a/keyboards/cornia/keymaps/default/keymap.c b/keyboards/cornia/keymaps/default/keymap.c new file mode 100644 index 0000000000..1aa48d471f --- /dev/null +++ b/keyboards/cornia/keymaps/default/keymap.c @@ -0,0 +1,75 @@ +/* Copyright 2024 Vaarai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +/* Layers definitions */ +enum layers { + _ALPHA, + _LOWER, + _UPPER, + _ADJUST, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_ALPHA] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTL, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LSFT, TL_LOWR, KC_SPC, KC_ENT, TL_UPPR, KC_RSFT + //`--------------------------' `--------------------------' + ), + + [_LOWER] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LALT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_RALT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, _______, _______, _______, _______, _______ + //`--------------------------' `--------------------------' + ), + + [_UPPER] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, KC_SLSH, KC_LCBR, KC_LPRN, KC_LBRC, KC_MINS, KC_UNDS, KC_RBRC, KC_RPRN, KC_RCBR, KC_BSLS, _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, XXXXXXX, KC_GRV, KC_QUES, KC_EQL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, KC_RGUI + //`--------------------------' `--------------------------' + ), + + [_ADJUST] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, RM_TOGG, RM_HUEU, RM_VALU, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + //|--------+--------+--------+--------+--------|--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, RM_NEXT, RM_HUED, RM_VALD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______ + //`--------------------------' `--------------------------' + ), +}; \ No newline at end of file diff --git a/keyboards/cornia/keymaps/default/rules.mk b/keyboards/cornia/keymaps/default/rules.mk new file mode 100644 index 0000000000..7c9bf212a6 --- /dev/null +++ b/keyboards/cornia/keymaps/default/rules.mk @@ -0,0 +1 @@ +TRI_LAYER_ENABLE = yes diff --git a/keyboards/cornia/keymaps/fire/config.h b/keyboards/cornia/keymaps/fire/config.h new file mode 100644 index 0000000000..a40a881bf5 --- /dev/null +++ b/keyboards/cornia/keymaps/fire/config.h @@ -0,0 +1,33 @@ +/* Copyright 2024 Vaarai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Split */ +#define SPLIT_ACTIVITY_ENABLE +#define SPLIT_LAYER_STATE_ENABLE +#define SPLIT_LED_STATE_ENABLE +#define SPLIT_MODS_ENABLE + +/* Trackpad */ +#define SPLIT_POINTING_ENABLE +#define POINTING_DEVICE_RIGHT +#define POINTING_DEVICE_ROTATION_90 +#define CIRQUE_PINNACLE_DIAMETER_MM 40 +#define CIRQUE_PINNACLE_TAP_ENABLE +#define CIRQUE_PINNACLE_CURVED_OVERLAY +#define CIRQUE_PINNACLE_POSITION_MODE CIRQUE_PINNACLE_RELATIVE_MODE +#define CIRQUE_PINNACLE_ATTENUATION EXTREG__TRACK_ADCCONFIG__ADC_ATTENUATE_2X diff --git a/keyboards/cornia/keymaps/fire/keymap.c b/keyboards/cornia/keymaps/fire/keymap.c new file mode 100644 index 0000000000..9215c61f9c --- /dev/null +++ b/keyboards/cornia/keymaps/fire/keymap.c @@ -0,0 +1,226 @@ +/* Copyright 2024 Vaarai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +#include "./keymap.h" +#include "./tap_dances.h" + +/* Flag to enable/disable trackpad scroll */ +bool set_scrolling = false; + +/* Variables to store accumulated scroll values */ +float scroll_accumulated_h = 0; +float scroll_accumulated_v = 0; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_ALPHA] = LAYOUT_split_3x6_3( /* Fire (Oxey) : https://bit.ly/layout-doc-v2 */ + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_ESC, KC_P, KC_L, KC_D, KC_G, KC_V, KC_Q, KC_F, KC_O, KC_U, KC_COMM, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TAB, KC_N, KC_R, KC_T, KC_S, KC_Y, KC_J, KC_H, KC_A, KC_E, KC_I, KC_LALT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_X, KC_K, KC_C, KC_W, KC_Z, KC_B, KC_M, KC_QUOT, KC_SCLN, KC_DOT, KC_RCTL, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + TD(TD_SFT_CAPSW), TD(TD_NAV_ACCENT), KC_SPC, KC_ENT, TD(TD_NUM_ACCENT), TD(TD_SFT_CAPSW) + //`--------------------------' `--------------------------' + ), + + [_NAV] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, G(KC_L), XXXXXXX, CK_SCRL, C(KC_A), XXXXXXX, KC_BTN1, KC_BTN2, KC_BTN3, XXXXXXX, XXXXXXX, KC_DEL, + //|--------+--------+ GUI V +--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, C(KC_X), G(KC_V), C(KC_V), C(KC_C), C(KC_Z), KC_WH_U, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, _______, + //|ALT LEFT+--------+ ALT SFT+scrnshot+--------+--------| |--------+--------+--------+--------+--------+--------| + A(KC_LEFT),C(KC_S),S(KC_LALT), CK_SSHT,C(KC_F), C(KC_Y), KC_WH_D, KC_HOME, CK_SELL, CK_SELR, KC_END, _______, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, _______, _______, _______,MO(_ADJUST),_______ + //`--------------------------' `--------------------------' + ), + + [_NUM] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + //|--------+-- / ---+-- { ---+-- ( ---+-- [ ---+-- - ---| |--- _ --+--- ] --+-- ) ---+-- } ---+-- \ ---+--------| + _______, KC_SLSH, KC_LCBR, KC_LPRN, KC_LBRC, KC_MINS, KC_UNDS, KC_RBRC, KC_RPRN, KC_RCBR, KC_BSLS, _______, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, XXXXXXX, KC_GRV, KC_QUES, KC_EQL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + _______,MO(_ADJUST),_______, _______, _______, KC_RGUI + //`--------------------------' `--------------------------' + ), + + [_ADJUST] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, RM_TOGG, RM_HUEU, RM_VALU, CK_DPII, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + //|--------+--------+--------+--------+--------|--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, RM_NEXT, RM_HUED, RM_VALD, CK_DPID, XXXXXXX, TO(_G0), TO(_G1), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______ + //`--------------------------' `--------------------------' + ), + + /* Generic game */ + [_G0] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_ESC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, KC_LSFT, KC_A, KC_S, KC_D, KC_F, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LGUI, KC_LCTL, KC_Z, KC_X, KC_C, KC_V, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_SPC, KC_SPC, XXXXXXX, XXXXXXX, TG(_G0), XXXXXXX + //`--------------------------' `--------------------------' + ), + + /* Warframe */ + [_G1] = LAYOUT_split_3x6_3( + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TAB, KC_ESC, KC_Q, KC_W, KC_1, KC_2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_F, KC_LSFT, KC_A, KC_S, KC_D, KC_3, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LGUI, KC_LCTL, KC_M, KC_Y, KC_X, KC_4, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_SPC,CK_RKJMP, KC_5, XXXXXXX, TG(_G1), XXXXXXX + //`--------------------------' `--------------------------' + ), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case CK_RKJMP: /* Warframe rocket jump */ + if (record->event.pressed) { + SEND_STRING(SS_DOWN(X_C)); + } else { + SEND_STRING(SS_DOWN(X_SPC) SS_DELAY(50) SS_UP(X_C) SS_DELAY(50) SS_UP(X_SPC)); + } + return false; + case CK_DPII: /* Increase trackpad DPI */ + if (record->event.pressed) { + pointing_device_set_cpi(pointing_device_get_cpi()+100); + } + return false; + case CK_DPID: /* Decrease trackpad DPI */ + if (record->event.pressed) { + pointing_device_set_cpi(pointing_device_get_cpi()-100); + } + return false; + case CK_SCRL: /* Toggle set_scrolling when CK_SCRL key is pressed or released */ + set_scrolling = record->event.pressed; + return false; + } + /* Accented letters */ + if (accent_state != ACCENT_NONE && record->event.pressed) + { + switch (keycode) { + case KC_A: + SEND_STRING(SS_ACCENT_A_GRAVE); + break; + case KC_C: + SEND_STRING(SS_ACCENT_C_CEDIL); + break; + case KC_E: + switch (accent_state) { + case ACCENT_LEFT: + SEND_STRING(SS_ACCENT_E_ACUTE); break; + case ACCENT_RIGHT: + SEND_STRING(SS_ACCENT_E_GRAVE); break; + case ACCENT_NONE: + break; + } + break; + case KC_O: + SEND_STRING(SS_ACCENT_O_CIRCU); + break; + case KC_U: + SEND_STRING(SS_ACCENT_U_GRAVE); + break; + } + accent_state = ACCENT_NONE; + return false; + } + return true; +} + +bool shutdown_user(bool jump_to_bootloader) { + oled_clear(); + oled_set_cursor(0, 2); + if (jump_to_bootloader) { + oled_write_P(PSTR("FLASH"), false); + } else { + oled_write_P(PSTR("RESET"), false); + } + oled_render_dirty(true); + return false; +} + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_270; +} + +bool oled_task_user(void) { + /* Print cornia logo */ + cornia_render_logo(); + + /* Print layer status */ + oled_set_cursor(0, 7); + switch (get_highest_layer(layer_state)) { + case _ALPHA: + oled_write_ln("ALPHA", 0); + break; + case _NAV: + oled_write_ln("NAV", 0); + break; + case _NUM: + oled_write_ln("NUM", 0); + break; + case _ADJUST: + oled_write_ln("ADJUS", 0); + break; + case _G0: + oled_write_ln("GAME0", 0); + break; + case _G1: + oled_write_ln("GAME1", 0); + break; + } + return false; +} + +report_mouse_t pointing_device_task_user(report_mouse_t mouse_report) { + /* Check if drag scrolling is active */ + if (set_scrolling) { + /* Calculate and accumulate scroll values based on mouse movement and divisors */ + scroll_accumulated_h += (float)mouse_report.x / SCROLL_DIVISOR_H; + scroll_accumulated_v += (float)mouse_report.y / SCROLL_DIVISOR_V; + + /* Assign integer parts of accumulated scroll values to the mouse report */ + mouse_report.h = (int8_t)scroll_accumulated_h; + mouse_report.v = (int8_t)scroll_accumulated_v; + + /* Update accumulated scroll values by subtracting the integer parts */ + scroll_accumulated_h -= (int8_t)scroll_accumulated_h; + scroll_accumulated_v -= (int8_t)scroll_accumulated_v; + + /* Clear the X and Y values of the mouse report */ + mouse_report.x = 0; + mouse_report.y = 0; + } + return mouse_report; +} \ No newline at end of file diff --git a/keyboards/cornia/keymaps/fire/keymap.h b/keyboards/cornia/keymaps/fire/keymap.h new file mode 100644 index 0000000000..719c2b97a8 --- /dev/null +++ b/keyboards/cornia/keymaps/fire/keymap.h @@ -0,0 +1,55 @@ +/* Copyright 2024 Vaarai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include QMK_KEYBOARD_H + +/* Trackpad srolling speed adjustment */ +#define SCROLL_DIVISOR_H 8.0 +#define SCROLL_DIVISOR_V 8.0 + +/* Trackpad srolling enablement flag */ +extern bool set_scrolling; + +/* Layers definitions */ +enum layers { + _ALPHA, + _NAV, + _NUM, + _ADJUST, + _G0, + _G1 +}; + +/* Custom Keycodes (CK_xxx) */ +#define CK_SSHT LSG(KC_S) +#define CK_SELL LSFT(LCTL(KC_LEFT)) +#define CK_SELR LSFT(LCTL(KC_RIGHT)) + +typedef enum { + CK_RKJMP = SAFE_RANGE, /* Warframe rocket/bullet jump */ + CK_DPII, + CK_DPID, + CK_SCRL, +} cornia_custom_keycodes_t; + +#define SS_ACCENT_A_GRAVE SS_DOWN(X_LALT) SS_TAP(X_P1) SS_TAP(X_P3) SS_TAP(X_P3) SS_UP(X_LALT) /* à */ +#define SS_ACCENT_C_CEDIL SS_DOWN(X_LALT) SS_TAP(X_P1) SS_TAP(X_P3) SS_TAP(X_P5) SS_UP(X_LALT) /* ç */ +#define SS_ACCENT_E_ACUTE SS_DOWN(X_LALT) SS_TAP(X_P1) SS_TAP(X_P3) SS_TAP(X_P0) SS_UP(X_LALT) /* é */ +#define SS_ACCENT_E_GRAVE SS_DOWN(X_LALT) SS_TAP(X_P1) SS_TAP(X_P3) SS_TAP(X_P8) SS_UP(X_LALT) /* è */ +#define SS_ACCENT_O_CIRCU SS_DOWN(X_LALT) SS_TAP(X_P1) SS_TAP(X_P4) SS_TAP(X_P7) SS_UP(X_LALT) /* ô */ +#define SS_ACCENT_U_GRAVE SS_DOWN(X_LALT) SS_TAP(X_P0) SS_TAP(X_P2) SS_TAP(X_P4) SS_TAP(X_P9) SS_UP(X_LALT) /* ù */ diff --git a/keyboards/cornia/keymaps/fire/rules.mk b/keyboards/cornia/keymaps/fire/rules.mk new file mode 100644 index 0000000000..221d810975 --- /dev/null +++ b/keyboards/cornia/keymaps/fire/rules.mk @@ -0,0 +1,8 @@ +SRC += tap_dances.c + +CAPS_WORD_ENABLE = yes +TAP_DANCE_ENABLE = yes + +# Cirque Trackpad I²C configuration +POINTING_DEVICE_ENABLE = yes +POINTING_DEVICE_DRIVER = cirque_pinnacle_i2c diff --git a/keyboards/cornia/keymaps/fire/tap_dances.c b/keyboards/cornia/keymaps/fire/tap_dances.c new file mode 100644 index 0000000000..63f9911549 --- /dev/null +++ b/keyboards/cornia/keymaps/fire/tap_dances.c @@ -0,0 +1,154 @@ +/* Copyright 2024 Vaarai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +#include "./tap_dances.h" +#include "./keymap.h" + +/* define a type containing as many tapdance states as you need */ +typedef enum { + SINGLE_TAP, + SINGLE_HOLD, + DOUBLE_TAP, + DOUBLE_HOLD, + OTHER_TAP +} td_state_t; + +/* Create a global instance of the tapdance state type */ +static td_state_t td_state; +accent_state_t accent_state = ACCENT_NONE; + +tap_dance_action_t tap_dance_actions[TAP_DANCE_ACTIONS_COUNT] = { + [TD_SFT_CAPSW] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_shift_capsword_finished, dance_shift_capsword_reset), + [TD_NAV_ACCENT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_nav_accent_finished, dance_nav_accent_reset), + [TD_NUM_ACCENT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_num_accent_finished, dance_num_accent_reset) +}; + +int cur_dance (tap_dance_state_t *state) { + if (state->count == 1) { + if (state->interrupted || !state->pressed) + { + return SINGLE_TAP; + } else { + return SINGLE_HOLD; + } + } + if (state->count == 2) + { + if (state->interrupted || !state->pressed) + { + return DOUBLE_TAP; + } else { + return DOUBLE_HOLD; + } + } else { + return OTHER_TAP; + } +} + +void dance_shift_capsword_finished (tap_dance_state_t *state, void *user_data) +{ + td_state = cur_dance(state); + switch (td_state) { + case SINGLE_TAP: + case SINGLE_HOLD: + register_code(KC_LSFT); + break; + case DOUBLE_TAP: + case DOUBLE_HOLD: + caps_word_on(); + break; + case OTHER_TAP: + break; + } +} + +void dance_shift_capsword_reset (tap_dance_state_t *state, void *user_data) +{ + switch (td_state) { + case SINGLE_TAP: + case SINGLE_HOLD: + unregister_code(KC_LSFT); + break; + case DOUBLE_TAP: + case DOUBLE_HOLD: + case OTHER_TAP: + break; + } +} + +void dance_nav_accent_finished (tap_dance_state_t *state, void *user_data) +{ + td_state = cur_dance(state); + switch (td_state) { + case SINGLE_TAP: + case SINGLE_HOLD: + layer_on(_NAV); + break; + case DOUBLE_TAP: + case DOUBLE_HOLD: + accent_state = ACCENT_LEFT; + break; + case OTHER_TAP: + break; + } +} + +void dance_nav_accent_reset (tap_dance_state_t *state, void *user_data) +{ + switch (td_state) { + case SINGLE_TAP: + case SINGLE_HOLD: + layer_off(_NAV); + break; + case DOUBLE_TAP: + case DOUBLE_HOLD: + case OTHER_TAP: + break; + } +} + +void dance_num_accent_finished (tap_dance_state_t *state, void *user_data) +{ + td_state = cur_dance(state); + switch (td_state) { + case SINGLE_TAP: + case SINGLE_HOLD: + layer_on(_NUM); + break; + case DOUBLE_TAP: + case DOUBLE_HOLD: + accent_state = ACCENT_RIGHT; + break; + case OTHER_TAP: + break; + } +} + +void dance_num_accent_reset (tap_dance_state_t *state, void *user_data) +{ + switch (td_state) { + case SINGLE_TAP: + case SINGLE_HOLD: + layer_off(_NUM); + break; + case DOUBLE_TAP: + case DOUBLE_HOLD: + case OTHER_TAP: + break; + } +} \ No newline at end of file diff --git a/keyboards/cornia/keymaps/fire/tap_dances.h b/keyboards/cornia/keymaps/fire/tap_dances.h new file mode 100644 index 0000000000..082e81f3ce --- /dev/null +++ b/keyboards/cornia/keymaps/fire/tap_dances.h @@ -0,0 +1,47 @@ +/* Copyright 2024 Vaarai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include QMK_KEYBOARD_H + +/* Tap dances definitions */ +enum tap_dances { + TD_SFT_CAPSW, + TD_NAV_ACCENT, + TD_NUM_ACCENT, + TAP_DANCE_ACTIONS_COUNT /* Utility to get TD_xxx count */ +}; + +/* Accented letters */ +typedef enum { + ACCENT_NONE, + ACCENT_LEFT, + ACCENT_RIGHT +} accent_state_t; + +extern accent_state_t accent_state; + +extern tap_dance_action_t tap_dance_actions[TAP_DANCE_ACTIONS_COUNT]; + +void dance_shift_capsword_finished (tap_dance_state_t *state, void *user_data); +void dance_shift_capsword_reset (tap_dance_state_t *state, void *user_data); + +void dance_nav_accent_finished (tap_dance_state_t *state, void *user_data); +void dance_nav_accent_reset (tap_dance_state_t *state, void *user_data); + +void dance_num_accent_finished (tap_dance_state_t *state, void *user_data); +void dance_num_accent_reset (tap_dance_state_t *state, void *user_data); diff --git a/keyboards/cornia/mcuconf.h b/keyboards/cornia/mcuconf.h new file mode 100644 index 0000000000..9c018283f8 --- /dev/null +++ b/keyboards/cornia/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright 2024 Vaarai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef RP_I2C_USE_I2C0 +#define RP_I2C_USE_I2C0 FALSE + +#undef RP_I2C_USE_I2C1 +#define RP_I2C_USE_I2C1 TRUE \ No newline at end of file diff --git a/keyboards/cornia/readme.md b/keyboards/cornia/readme.md new file mode 100644 index 0000000000..3051d010a9 --- /dev/null +++ b/keyboards/cornia/readme.md @@ -0,0 +1,46 @@ +# Cornia Keyboard + +![Cornia v1](https://i.imgur.com/3vRlvi3.jpeg) + +A split keyboard with 3x6 column strongly staggered keys and 3 thumb keys + +* Keyboard Maintainer: [Vaarai](https://github.com/Vaarai) +* Hardware Supported: Cornia PCB, RP2040 / 0xCB-Helios +* Hardware Availability: [PCB Data](https://github.com/Vaarai/Cornia) + +Make example for this keyboard (after setting up your build environment): + + make cornia/v1:default + +Flashing example for this keyboard: + + make cornia/v1:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK ? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +The Cornia PCBs have a reset button on the bottom side near to the TRRS jack. + +To enter in to the bootloader you can either: +- Hold reset when plugging in that half of the keyboard. +- Double press reset if firmware was already flashed and if RP2040 is used +- Press NAV+NUM+ESC if firmware was already flashed no matter what controller is used + +## Keymaps + +Two keymaps are available for now, below are their [KLE](https://www.keyboard-layout-editor.com/) views: +- [Default QWERTY layout for Cornia keyboard](https://www.keyboard-layout-editor.com/#/gists/5af136790cefe4b35cdf02ca52c1fccc) +- [Fire layout for Cornia keyboard](https://www.keyboard-layout-editor.com/#/gists/a40345c92e1f3f326426ef890ebf4d1c) (Based on [Fire (Oxey)](https://docs.google.com/document/d/1Ic-h8UxGe5-Q0bPuYNgE3NoWiI8ekeadvSQ5YysrwII) layout) + +## OLED Display & Cirque Trackpad + +The Cornia Keyboard also support OLED Display and Cirque Trackpad through I²C, an implementation is available in `fire` keymap. + +To use it please make with the following command: + + make cornia/v1:fire + +And flash with: + + make cornia/v1:fire:flash \ No newline at end of file diff --git a/keyboards/cornia/v0_6/keyboard.json b/keyboards/cornia/v0_6/keyboard.json new file mode 100644 index 0000000000..5e4b96da21 --- /dev/null +++ b/keyboards/cornia/v0_6/keyboard.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Cornia v0.6", + "usb": { + "pid": "0x0600", + "device_version": "0.6.0" + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": [ "GP29", "GP28", "GP27", "GP26", "GP22", "GP20" ], + "rows": [ "GP4", "GP5", "GP6", "GP7" ] + } +} diff --git a/keyboards/cornia/v1/keyboard.json b/keyboards/cornia/v1/keyboard.json new file mode 100644 index 0000000000..90a54f288e --- /dev/null +++ b/keyboards/cornia/v1/keyboard.json @@ -0,0 +1,21 @@ +{ + "keyboard_name": "Cornia v1", + "usb": { + "pid": "0x1000", + "device_version": "1.0.0" + }, + "split": { + + "handedness": { + "pin": "GP25" + } + }, + "matrix_pins": { + "direct":[ + ["GP27", "GP4", "GP28", "GP3", "GP29", "GP2"], + ["GP5", "GP26", "GP6", "GP22", "GP7", "GP20"], + ["GP8", "GP15", "GP9", "GP14", "GP12", "GP13"], + [ null, null, null, "GP16", "GP23", "GP21"] + ] + } +} From 85222dfd8caaec4c914e74720718f4288f530b0f Mon Sep 17 00:00:00 2001 From: Stephen Edwards Date: Tue, 3 Dec 2024 16:43:14 -0600 Subject: [PATCH 16/77] Add a keyboard entry for yacobo model m replacement control boards (#23827) * add the keyboard * Update keyboards/ibm/model_m/yacobo/keyboard.json Co-authored-by: jack <0x6a73@protonmail.com> * remove dead file * PR Comments * standardize comments * PR Comments --------- Co-authored-by: Stephen Edwards Co-authored-by: jack --- keyboards/ibm/model_m/yacobo/config.h | 22 ++ keyboards/ibm/model_m/yacobo/keyboard.json | 285 ++++++++++++++++++ .../model_m/yacobo/keymaps/default/keymap.c | 30 ++ keyboards/ibm/model_m/yacobo/readme.md | 28 ++ keyboards/ibm/model_m/yacobo/yacobo.c | 26 ++ 5 files changed, 391 insertions(+) create mode 100644 keyboards/ibm/model_m/yacobo/config.h create mode 100644 keyboards/ibm/model_m/yacobo/keyboard.json create mode 100644 keyboards/ibm/model_m/yacobo/keymaps/default/keymap.c create mode 100644 keyboards/ibm/model_m/yacobo/readme.md create mode 100644 keyboards/ibm/model_m/yacobo/yacobo.c diff --git a/keyboards/ibm/model_m/yacobo/config.h b/keyboards/ibm/model_m/yacobo/config.h new file mode 100644 index 0000000000..f8e96c8d6e --- /dev/null +++ b/keyboards/ibm/model_m/yacobo/config.h @@ -0,0 +1,22 @@ +/* Copyright 2024 Stephen Edwards + * + * 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 . + * + * Adapted from the Model H Project by Jonathan Hawthorn. + */ + +#pragma once + +/* The status LED on the Blue Pill. */ +#define BLUE_PILL_STATUS_LED C13 diff --git a/keyboards/ibm/model_m/yacobo/keyboard.json b/keyboards/ibm/model_m/yacobo/keyboard.json new file mode 100644 index 0000000000..7ea9c6a621 --- /dev/null +++ b/keyboards/ibm/model_m/yacobo/keyboard.json @@ -0,0 +1,285 @@ +{ + "manufacturer": "IBM", + "keyboard_name": "Model M (Yacobo)", + "maintainer": "sje-mse", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true + }, + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "indicators": { + "num_lock": "B11", + "caps_lock": "B10", + "scroll_lock": "B1", + "on_state": 0 + }, + "matrix_pins": { + "cols": ["B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15", "A10", "A9", "A8", "B15", "B14", "B13", "B12", "A0"], + "rows": ["A1", "A2", "A3", "A4", "A5", "A6", "A7","B0"], + "ghost": true + }, + "development_board": "bluepill", + "url": "https://github.com/sje-mse/yacobo", + "usb": { + "device_version": "1.0.0", + "max_power": 100, + "pid": "0xB155", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT_fullsize_ansi_wkl": { + "layout": [ + {"label": "Esc", "matrix": [0, 2], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [2, 3], "x": 2, "y": 0}, + {"label": "F2", "matrix": [2, 4], "x": 3, "y": 0}, + {"label": "F3", "matrix": [1, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 8], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [1, 9], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [2, 9], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [2, 6], "x": 11, "y": 0}, + {"label": "F10", "matrix": [3, 6], "x": 12, "y": 0}, + {"label": "F11", "matrix": [3, 11], "x": 13, "y": 0}, + {"label": "F12", "matrix": [3, 12], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [3, 15], "x": 15.5, "y": 0}, + {"label": "Scroll Lock", "matrix": [4, 15], "x": 16.5, "y": 0}, + {"label": "Pause", "matrix": [6, 14], "x": 17.5, "y": 0}, + + {"label": "`", "matrix": [2, 2], "x": 0, "y": 1.5}, + {"label": "1", "matrix": [3, 2], "x": 1, "y": 1.5}, + {"label": "2", "matrix": [3, 3], "x": 2, "y": 1.5}, + {"label": "3", "matrix": [3, 4], "x": 3, "y": 1.5}, + {"label": "4", "matrix": [3, 5], "x": 4, "y": 1.5}, + {"label": "5", "matrix": [2, 5], "x": 5, "y": 1.5}, + {"label": "6", "matrix": [2, 7], "x": 6, "y": 1.5}, + {"label": "7", "matrix": [3, 7], "x": 7, "y": 1.5}, + {"label": "8", "matrix": [3, 8], "x": 8, "y": 1.5}, + {"label": "9", "matrix": [3, 9], "x": 9, "y": 1.5}, + {"label": "0", "matrix": [3, 10], "x": 10, "y": 1.5}, + {"label": "-", "matrix": [2, 10], "x": 11, "y": 1.5}, + {"label": "=", "matrix": [2, 8], "x": 12, "y": 1.5}, + {"label": "Backspace", "matrix": [1, 6], "x": 13, "y": 1.5, "w": 2}, + + {"label": "Insert", "matrix": [2, 12], "x": 15.5, "y": 1.5}, + {"label": "Home", "matrix": [2, 14], "x": 16.5, "y": 1.5}, + {"label": "Page Up", "matrix": [2, 13], "x": 17.5, "y": 1.5}, + + {"label": "Num Lock", "matrix": [6, 11], "x": 19, "y": 1.5}, + {"label": "/", "matrix": [6, 12], "x": 20, "y": 1.5}, + {"label": "*", "matrix": [6, 13], "x": 21, "y": 1.5}, + {"label": "-", "matrix": [7, 13], "x": 22, "y": 1.5}, + + {"label": "Tab", "matrix": [1, 2], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [4, 2], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [4, 3], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [4, 4], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [4, 5], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [4, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [4, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [4, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [4, 10], "x": 10.5, "y": 2.5}, + {"label": "[", "matrix": [1, 10], "x": 11.5, "y": 2.5}, + {"label": "]", "matrix": [1, 8], "x": 12.5, "y": 2.5}, + {"label": "\\", "matrix": [5, 6], "x": 13.5, "y": 2.5, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 11], "x": 15.5, "y": 2.5}, + {"label": "End", "matrix": [3, 14], "x": 16.5, "y": 2.5}, + {"label": "Page Down", "matrix": [3, 13], "x": 17.5, "y": 2.5}, + + {"label": "7", "matrix": [4, 11], "x": 19, "y": 2.5}, + {"label": "8", "matrix": [4, 12], "x": 20, "y": 2.5}, + {"label": "9", "matrix": [4, 13], "x": 21, "y": 2.5}, + {"label": "+", "matrix": [4, 14], "x": 22, "y": 2.5, "h": 2}, + + {"label": "Caps Lock", "matrix": [1, 3], "x": 0, "y": 3.5, "w": 1.25}, + {"label": "A", "matrix": [5, 2], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [5, 3], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [5, 4], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [5, 5], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [0, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [0, 7], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [5, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [5, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [5, 9], "x": 9.75, "y": 3.5}, + {"label": ";", "matrix": [5, 10], "x": 10.75, "y": 3.5}, + {"label": "'", "matrix": [0, 10], "x": 11.75, "y": 3.5}, + {"label": "Enter", "matrix": [6, 6], "x": 12.75, "y": 3.5, "w": 2.25}, + + {"label": "4", "matrix": [1, 11], "x": 19, "y": 3.5}, + {"label": "5", "matrix": [1, 12], "x": 20, "y": 3.5}, + {"label": "6", "matrix": [1, 13], "x": 21, "y": 3.5}, + + {"label": "Shift", "matrix": [1, 1], "x": 0, "y": 4.5, "w": 2.25}, + {"label": "Z", "matrix": [6, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [6, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [6, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [6, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [7, 5], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [7, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [6, 7], "x": 8.25, "y": 4.5}, + {"label": ",", "matrix": [6, 8], "x": 9.25, "y": 4.5}, + {"label": ".", "matrix": [6, 9], "x": 10.25, "y": 4.5}, + {"label": "/", "matrix": [7, 10], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [6, 1], "x": 12.25, "y": 4.5, "w": 2.75}, + + {"label": "\u2191", "matrix": [0, 14], "x": 16.5, "y": 4.5}, + + {"label": "1", "matrix": [5, 11], "x": 19, "y": 4.5}, + {"label": "2", "matrix": [5, 12], "x": 20, "y": 4.5}, + {"label": "3", "matrix": [5, 13], "x": 21, "y": 4.5}, + {"label": "Enter", "matrix": [5, 14], "x": 22, "y": 4.5, "h": 2}, + + {"label": "Ctrl", "matrix": [2, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"label": "Alt", "matrix": [0, 15], "x": 2.5, "y": 5.5, "w": 1.5}, + {"label": "Space", "matrix": [7, 6], "x": 4, "y": 5.5, "w": 7}, + {"label": "Alt Gr", "matrix": [7, 15], "x": 11, "y": 5.5, "w": 1.5}, + {"label": "Ctrl", "matrix": [6, 0], "x": 13.5, "y": 5.5, "w": 1.5}, + + {"label": "\u2190", "matrix": [7, 14], "x": 15.5, "y": 5.5}, + {"label": "\u2193", "matrix": [7, 11], "x": 16.5, "y": 5.5}, + {"label": "\u2192", "matrix": [7, 12], "x": 17.5, "y": 5.5}, + + {"label": "0", "matrix": [0, 11], "x": 19, "y": 5.5, "w": 2}, + {"label": ".", "matrix": [0, 13], "x": 21, "y": 5.5} + ] + }, + "LAYOUT_fullsize_iso_wkl": { + "layout": [ + {"label": "Esc", "matrix": [0, 2], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [2, 3], "x": 2, "y": 0}, + {"label": "F2", "matrix": [2, 4], "x": 3, "y": 0}, + {"label": "F3", "matrix": [1, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 8], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [1, 9], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [2, 9], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [2, 6], "x": 11, "y": 0}, + {"label": "F10", "matrix": [3, 6], "x": 12, "y": 0}, + {"label": "F11", "matrix": [3, 11], "x": 13, "y": 0}, + {"label": "F12", "matrix": [3, 12], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [3, 15], "x": 15.5, "y": 0}, + {"label": "Scroll Lock", "matrix": [4, 15], "x": 16.5, "y": 0}, + {"label": "Pause", "matrix": [6, 14], "x": 17.5, "y": 0}, + + {"label": "`", "matrix": [2, 2], "x": 0, "y": 1.5}, + {"label": "1", "matrix": [3, 2], "x": 1, "y": 1.5}, + {"label": "2", "matrix": [3, 3], "x": 2, "y": 1.5}, + {"label": "3", "matrix": [3, 4], "x": 3, "y": 1.5}, + {"label": "4", "matrix": [3, 5], "x": 4, "y": 1.5}, + {"label": "5", "matrix": [2, 5], "x": 5, "y": 1.5}, + {"label": "6", "matrix": [2, 7], "x": 6, "y": 1.5}, + {"label": "7", "matrix": [3, 7], "x": 7, "y": 1.5}, + {"label": "8", "matrix": [3, 8], "x": 8, "y": 1.5}, + {"label": "9", "matrix": [3, 9], "x": 9, "y": 1.5}, + {"label": "0", "matrix": [3, 10], "x": 10, "y": 1.5}, + {"label": "-", "matrix": [2, 10], "x": 11, "y": 1.5}, + {"label": "=", "matrix": [2, 8], "x": 12, "y": 1.5}, + {"label": "Backspace", "matrix": [1, 6], "x": 13, "y": 1.5, "w": 2}, + + {"label": "Insert", "matrix": [2, 12], "x": 15.5, "y": 1.5}, + {"label": "Home", "matrix": [2, 14], "x": 16.5, "y": 1.5}, + {"label": "Page Up", "matrix": [2, 13], "x": 17.5, "y": 1.5}, + + {"label": "Num Lock", "matrix": [6, 11], "x": 19, "y": 1.5}, + {"label": "/", "matrix": [6, 12], "x": 20, "y": 1.5}, + {"label": "*", "matrix": [6, 13], "x": 21, "y": 1.5}, + {"label": "-", "matrix": [7, 13], "x": 22, "y": 1.5}, + + {"label": "Tab", "matrix": [1, 2], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [4, 2], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [4, 3], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [4, 4], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [4, 5], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [4, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [4, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [4, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [4, 10], "x": 10.5, "y": 2.5}, + {"label": "[", "matrix": [1, 10], "x": 11.5, "y": 2.5}, + {"label": "]", "matrix": [1, 8], "x": 12.5, "y": 2.5}, + + {"label": "Delete", "matrix": [2, 11], "x": 15.5, "y": 2.5}, + {"label": "End", "matrix": [3, 14], "x": 16.5, "y": 2.5}, + {"label": "Page Down", "matrix": [3, 13], "x": 17.5, "y": 2.5}, + + {"label": "7", "matrix": [4, 11], "x": 19, "y": 2.5}, + {"label": "8", "matrix": [4, 12], "x": 20, "y": 2.5}, + {"label": "9", "matrix": [4, 13], "x": 21, "y": 2.5}, + {"label": "+", "matrix": [4, 14], "x": 22, "y": 2.5, "h": 2}, + + {"label": "Caps Lock", "matrix": [1, 3], "x": 0, "y": 3.5, "w": 1.25}, + {"label": "A", "matrix": [5, 2], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [5, 3], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [5, 4], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [5, 5], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [0, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [0, 7], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [5, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [5, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [5, 9], "x": 9.75, "y": 3.5}, + {"label": ";", "matrix": [5, 10], "x": 10.75, "y": 3.5}, + {"label": "'", "matrix": [0, 10], "x": 11.75, "y": 3.5}, + {"label": "#", "matrix": [6, 10], "x": 12.75, "y": 3.5}, + {"label": "Enter", "matrix": [6, 6], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + + {"label": "4", "matrix": [1, 11], "x": 19, "y": 3.5}, + {"label": "5", "matrix": [1, 12], "x": 20, "y": 3.5}, + {"label": "6", "matrix": [1, 13], "x": 21, "y": 3.5}, + + {"label": "Shift", "matrix": [1, 1], "x": 0, "y": 4.5, "w": 1.25}, + {"label": "\\", "matrix": [0, 3], "x": 1.25, "y": 4.5}, + {"label": "Z", "matrix": [6, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [6, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [6, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [6, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [7, 5], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [7, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [6, 7], "x": 8.25, "y": 4.5}, + {"label": ",", "matrix": [6, 8], "x": 9.25, "y": 4.5}, + {"label": ".", "matrix": [6, 9], "x": 10.25, "y": 4.5}, + {"label": "/", "matrix": [7, 10], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [6, 1], "x": 12.25, "y": 4.5, "w": 2.75}, + + {"label": "\u2191", "matrix": [0, 14], "x": 16.5, "y": 4.5}, + + {"label": "1", "matrix": [5, 11], "x": 19, "y": 4.5}, + {"label": "2", "matrix": [5, 12], "x": 20, "y": 4.5}, + {"label": "3", "matrix": [5, 13], "x": 21, "y": 4.5}, + {"label": "Enter", "matrix": [5, 14], "x": 22, "y": 4.5, "h": 2}, + + {"label": "Ctrl", "matrix": [2, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"label": "Alt", "matrix": [0, 15], "x": 2.5, "y": 5.5, "w": 1.5}, + {"label": "Space", "matrix": [7, 6], "x": 4, "y": 5.5, "w": 7}, + {"label": "Alt Gr", "matrix": [7, 15], "x": 11, "y": 5.5, "w": 1.5}, + {"label": "Ctrl", "matrix": [6, 0], "x": 13.5, "y": 5.5, "w": 1.5}, + + {"label": "\u2190", "matrix": [7, 14], "x": 15.5, "y": 5.5}, + {"label": "\u2193", "matrix": [7, 11], "x": 16.5, "y": 5.5}, + {"label": "\u2192", "matrix": [7, 12], "x": 17.5, "y": 5.5}, + + {"label": "0", "matrix": [0, 11], "x": 19, "y": 5.5, "w": 2}, + {"label": ".", "matrix": [0, 13], "x": 21, "y": 5.5} + ] + } + } +} diff --git a/keyboards/ibm/model_m/yacobo/keymaps/default/keymap.c b/keyboards/ibm/model_m/yacobo/keymaps/default/keymap.c new file mode 100644 index 0000000000..27647d4ed3 --- /dev/null +++ b/keyboards/ibm/model_m/yacobo/keymaps/default/keymap.c @@ -0,0 +1,30 @@ +/* Copyright 2021 Stephen Edwards + * + * 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 . + * + * Adapted from the Model H Project by Jonathan Hawthorn. + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_fullsize_ansi_wkl( /* Base layer */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), +}; diff --git a/keyboards/ibm/model_m/yacobo/readme.md b/keyboards/ibm/model_m/yacobo/readme.md new file mode 100644 index 0000000000..d0cafa1d44 --- /dev/null +++ b/keyboards/ibm/model_m/yacobo/readme.md @@ -0,0 +1,28 @@ +# yacobo + +![yacobo](https://i.imgur.com/1nfuWoa.jpeg) + +*A replacement qmk-compatible control board for the 101-key Model M keyboards. +Inspired by and based on the ModelH by jhawthorn, in comparison this design uses 100% through-hole components, including the widely available STM32F103C8T6 "Blue Pill" development board, for ease of assembly.* + +* Keyboard Maintainer: [Stephen Edwards](https://github.com/sje-mse) +* Hardware Supported: IBM 101-key Model M with Yacobo replacement control boards. +* Hardware Availability: [Yacobo PCB](https://github.com/sje-mse/yacobo). + +Make example for this keyboard (after setting up your build environment): + + make yacobo:default + +Flashing example for this keyboard: + + make yacobo:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Press the "Reset" button on the Blue Pill daughterboard. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/ibm/model_m/yacobo/yacobo.c b/keyboards/ibm/model_m/yacobo/yacobo.c new file mode 100644 index 0000000000..7664facacc --- /dev/null +++ b/keyboards/ibm/model_m/yacobo/yacobo.c @@ -0,0 +1,26 @@ +/* Copyright 2024 Stephen Edwards + * + * 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 . + * + * Adapted from the Model H Project by Jonathan Hawthorn. + */ + +#include "quantum.h" + + +void keyboard_pre_init_kb(void) { + gpio_set_pin_output(BLUE_PILL_STATUS_LED); + gpio_write_pin(BLUE_PILL_STATUS_LED, 0); + keyboard_pre_init_user(); +} From a794ceeb5168cf82bdbe6d10690596b9cda6fcc3 Mon Sep 17 00:00:00 2001 From: GustawXYZ <129527844+GustawXYZ@users.noreply.github.com> Date: Wed, 4 Dec 2024 00:09:24 +0100 Subject: [PATCH 17/77] [Keyboard] Add dactyl_manuform_pi_pico (#23891) Adds new keyboard under handwired/dactyl_manuform_pi_pico It is a dactyl_manuform(5x6) running on Pi Pico micro controller --- .../dactyl_manuform_pi_pico/config.h | 9 ++ .../dactyl_manuform_pi_pico/keyboard.json | 123 ++++++++++++++++++ .../keymaps/default/keymap.c | 65 +++++++++ .../dactyl_manuform_pi_pico/readme.md | 32 +++++ 4 files changed, 229 insertions(+) create mode 100644 keyboards/handwired/dactyl_manuform_pi_pico/config.h create mode 100644 keyboards/handwired/dactyl_manuform_pi_pico/keyboard.json create mode 100644 keyboards/handwired/dactyl_manuform_pi_pico/keymaps/default/keymap.c create mode 100644 keyboards/handwired/dactyl_manuform_pi_pico/readme.md diff --git a/keyboards/handwired/dactyl_manuform_pi_pico/config.h b/keyboards/handwired/dactyl_manuform_pi_pico/config.h new file mode 100644 index 0000000000..c622149a4a --- /dev/null +++ b/keyboards/handwired/dactyl_manuform_pi_pico/config.h @@ -0,0 +1,9 @@ +// Copyright 2023 Gustaw.xyz (@Gustaw.xyz) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U +#define SERIAL_USART_FULL_DUPLEX +#define SERIAL_USART_TX_PIN GP9 +#define SERIAL_USART_RX_PIN GP8 diff --git a/keyboards/handwired/dactyl_manuform_pi_pico/keyboard.json b/keyboards/handwired/dactyl_manuform_pi_pico/keyboard.json new file mode 100644 index 0000000000..57202c802a --- /dev/null +++ b/keyboards/handwired/dactyl_manuform_pi_pico/keyboard.json @@ -0,0 +1,123 @@ +{ + "manufacturer": "GustawXYZ", + "keyboard_name": "dactyl_manuform_pi_pico", + "maintainer": "GustawXYZ", + "bootloader": "rp2040", + "processor": "RP2040", + "url": "https://github.com/GustawXYZ/dactyl_manuform_pi_pico", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "split": { + "enabled": true, + "handedness": { + "pin": "GP22" + }, + "serial": { + "driver": "vendor" + }, + "transport": { + "watchdog": true + } + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["GP10", "GP11", "GP12", "GP13", "GP14", "GP15"], + "rows": ["GP21", "GP20", "GP19", "GP18", "GP17", "GP16"] + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + + {"matrix": [6, 0], "x": 11, "y": 0}, + {"matrix": [6, 1], "x": 12, "y": 0}, + {"matrix": [6, 2], "x": 13, "y": 0}, + {"matrix": [6, 3], "x": 14, "y": 0}, + {"matrix": [6, 4], "x": 15, "y": 0}, + {"matrix": [6, 5], "x": 16, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + + {"matrix": [7, 0], "x": 11, "y": 1}, + {"matrix": [7, 1], "x": 12, "y": 1}, + {"matrix": [7, 2], "x": 13, "y": 1}, + {"matrix": [7, 3], "x": 14, "y": 1}, + {"matrix": [7, 4], "x": 15, "y": 1}, + {"matrix": [7, 5], "x": 16, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + + {"matrix": [8, 0], "x": 11, "y": 2}, + {"matrix": [8, 1], "x": 12, "y": 2}, + {"matrix": [8, 2], "x": 13, "y": 2}, + {"matrix": [8, 3], "x": 14, "y": 2}, + {"matrix": [8, 4], "x": 15, "y": 2}, + {"matrix": [8, 5], "x": 16, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 5], "x": 5, "y": 3}, + + {"matrix": [9, 0], "x": 11, "y": 3}, + {"matrix": [9, 1], "x": 12, "y": 3}, + {"matrix": [9, 2], "x": 13, "y": 3}, + {"matrix": [9, 3], "x": 14, "y": 3}, + {"matrix": [9, 4], "x": 15, "y": 3}, + {"matrix": [9, 5], "x": 16, "y": 3}, + + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [4, 3], "x": 3, "y": 4}, + + {"matrix": [10, 2], "x": 13, "y": 4}, + {"matrix": [10, 3], "x": 14, "y": 4}, + + {"matrix": [4, 4], "x": 4, "y": 5}, + {"matrix": [4, 5], "x": 5, "y": 5}, + + {"matrix": [10, 0], "x": 11, "y": 5}, + {"matrix": [10, 1], "x": 12, "y": 5}, + + {"matrix": [5, 4], "x": 6, "y": 6}, + {"matrix": [5, 5], "x": 7, "y": 6}, + + {"matrix": [11, 0], "x": 9, "y": 6}, + {"matrix": [11, 1], "x": 10, "y": 6}, + + {"matrix": [5, 2], "x": 6, "y": 7}, + {"matrix": [5, 3], "x": 7, "y": 7}, + + {"matrix": [11, 2], "x": 9, "y": 7}, + {"matrix": [11, 3], "x": 10, "y": 7} + ] + } + } +} diff --git a/keyboards/handwired/dactyl_manuform_pi_pico/keymaps/default/keymap.c b/keyboards/handwired/dactyl_manuform_pi_pico/keymaps/default/keymap.c new file mode 100644 index 0000000000..cd78aef7a9 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform_pi_pico/keymaps/default/keymap.c @@ -0,0 +1,65 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layers { + _QWERTY, + _SYMBOLS, + _GAMING, + _ARROWS, + _WINMGR, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + LALT(KC_LSFT), LALT(KC_SPC), LALT(KC_SPC), LGUI(KC_LALT), + KC_SPC, TT(_SYMBOLS), TT(_ARROWS), LALT(KC_ENTER), + KC_LCTL, KC_LGUI, KC_LGUI, KC_RCTL, + KC_LALT, TT(_WINMGR), TT(_GAMING), KC_LALT), + + [_SYMBOLS] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_CAPS_LOCK, LSFT(KC_BSLS), KC_BSLS, LSFT(KC_LBRC), LSFT(KC_RBRC), KC_TRNS, KC_TRNS, LSFT(KC_7), LSFT(KC_8), LSFT(KC_9), LCTL(KC_EQUAL), LGUI(KC_EQUAL), + TO(_QWERTY), LSFT(KC_EQUAL), KC_MINUS, LSFT(KC_9), LSFT(KC_0), KC_GRAVE, KC_BSLS, LSFT(KC_4), LSFT(KC_5), LSFT(KC_6), LCTL(KC_MINUS), LGUI(KC_MINUS), + KC_TRNS, KC_EQUAL, LSFT(KC_MINUS), KC_LBRC, KC_RBRC, LSFT(KC_GRAVE), LSFT(KC_BSLS), LSFT(KC_1), LSFT(KC_2), LSFT(KC_3), KC_COMMA, KC_CALC, + KC_TRNS, KC_TRNS, LSFT(KC_0), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, LSFT(KC_0), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + QK_RBT, KC_TRNS, KC_TRNS, KC_TRNS), + + [_GAMING] = LAYOUT( + KC_6, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_7, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_ESC, KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, + KC_8, KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_9, KC_0, KC_TRNS, KC_TRNS, + KC_SPC, MO(_ARROWS), KC_TRNS, KC_ENTER, + KC_G, KC_M, KC_TRNS, KC_TRNS, + KC_LALT, TO(_QWERTY), TO(_QWERTY), KC_TRNS), + + [_ARROWS] = LAYOUT( + KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_NUM, KC_KP_SLASH, KC_P7, KC_P8, KC_P9, KC_MINUS, LCTL(KC_LEFT), LCTL(KC_DOWN), LCTL(KC_UP), LCTL(KC_RGHT), KC_TRNS, KC_DELETE, + TO(_QWERTY), KC_KP_PLUS, KC_P4, KC_P5, KC_P6, KC_DOT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_END, KC_PSCR, + KC_UNDS, KC_KP_MINUS, KC_P1, KC_P2, KC_P3, KC_COMMA, KC_HOME, KC_MPLY, KC_MPRV, KC_MNXT, KC_MUTE, KC_INS, + KC_KP_DOT, KC_P0, KC_VOLD, KC_VOLU, + KC_P0, TO(_WINMGR), KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, QK_RBT), + + [_WINMGR] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_F1, LGUI(KC_7), LGUI(KC_8), LGUI(KC_9), KC_F4, KC_F7, SGUI(KC_7), SGUI(KC_8), SGUI(KC_9), KC_F10, KC_TRNS, + TO(_QWERTY), KC_F2, LGUI(KC_4), LGUI(KC_5), LGUI(KC_6), KC_F5, KC_F8, SGUI(KC_4), SGUI(KC_5), SGUI(KC_6), KC_F11, KC_TRNS, + KC_TRNS, KC_F3, LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), KC_F6, KC_F9, SGUI(KC_1), SGUI(KC_2), SGUI(KC_3), KC_F12, KC_TRNS, + KC_TRNS, LGUI(KC_0), SGUI(KC_0), KC_TRNS, + LGUI(KC_0), KC_TRNS, KC_TRNS, SGUI(KC_0), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + LCTL(LGUI(KC_Q)), KC_TRNS, KC_TRNS, KC_TRNS) +}; + diff --git a/keyboards/handwired/dactyl_manuform_pi_pico/readme.md b/keyboards/handwired/dactyl_manuform_pi_pico/readme.md new file mode 100644 index 0000000000..808f030fb0 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform_pi_pico/readme.md @@ -0,0 +1,32 @@ +# dactyl_manuform_pi_pico + +![dactyl_manuform_pi_pico](https://i.imgur.com/T9b74bI.jpg) + +This is a dactyl_manuform 5x6 running Rasrberry Pi Pico. +It's based on alcor_dactyl but with more reasonable GPIO layout for Pi Pico +and clasic dactyl_manuform layout (pinkies have only 4 rows). + +Build instructions: https://github.com/GustawXYZ/dactyl_manuform_pi_pico/ + +* Keyboard Maintainer: [Gustaw.xyz](https://github.com/Gustaw.xyz) +* Hardware Supported: Raspberry Pi Pico and other RP2040 +* Hardware Availability: https://www.raspberrypi.com/products/raspberry-pi-pico/ +* 3D Print model: https://github.com/abstracthat/dactyl-manuform + +Make example for this keyboard (after setting up your build environment): + + make handwired/dactyl_manuform_pi_pico:default + +Flashing example for this keyboard: + + make handwired/dactyl_manuform_pi_pico:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From c2bc6e2b3c4edd20587b881b480232734f966212 Mon Sep 17 00:00:00 2001 From: Can Baytok Date: Wed, 4 Dec 2024 17:37:02 +0100 Subject: [PATCH 18/77] [Keyboard] Add cans12erv2 (#24628) Co-authored-by: jack Co-authored-by: Duncan Sutherland Co-authored-by: Drashna Jaelre Co-authored-by: Can Baytok --- keyboards/handwired/cans12erv2/keyboard.json | 49 +++++++++++++++++++ .../cans12erv2/keymaps/default/keymap.c | 17 +++++++ .../cans12erv2/keymaps/default/rules.mk | 1 + keyboards/handwired/cans12erv2/readme.md | 27 ++++++++++ 4 files changed, 94 insertions(+) create mode 100644 keyboards/handwired/cans12erv2/keyboard.json create mode 100644 keyboards/handwired/cans12erv2/keymaps/default/keymap.c create mode 100644 keyboards/handwired/cans12erv2/keymaps/default/rules.mk create mode 100644 keyboards/handwired/cans12erv2/readme.md diff --git a/keyboards/handwired/cans12erv2/keyboard.json b/keyboards/handwired/cans12erv2/keyboard.json new file mode 100644 index 0000000000..ed0e78cd94 --- /dev/null +++ b/keyboards/handwired/cans12erv2/keyboard.json @@ -0,0 +1,49 @@ +{ + "manufacturer": "Can Baytok", + "keyboard_name": "Cans12erV2", + "maintainer": "canbaytok", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "GP14", "pin_b": "GP15"} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP9", "GP10", "GP11", "GP12"], + "rows": ["GP13", "GP7", "GP8"] + }, + "host_language": "german", + "processor": "RP2040", + "url": "https://github.com/canbaytok/Cans12erV2", + "usb": { + "device_version": "1.0.0", + "pid": "0xABC0", + "vid": "0x4342" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0, "encoder": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2} + ] + } + } +} diff --git a/keyboards/handwired/cans12erv2/keymaps/default/keymap.c b/keyboards/handwired/cans12erv2/keymaps/default/keymap.c new file mode 100644 index 0000000000..0619369bb2 --- /dev/null +++ b/keyboards/handwired/cans12erv2/keymaps/default/keymap.c @@ -0,0 +1,17 @@ +// Copyright 2024 Can Baytok (https://github.com/canbaytok) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_A, KC_B, KC_C, KC_D, + KC_E, KC_F, KC_G, KC_H, + KC_I, KC_J, KC_K, KC_L + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } +}; +#endif diff --git a/keyboards/handwired/cans12erv2/keymaps/default/rules.mk b/keyboards/handwired/cans12erv2/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/handwired/cans12erv2/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/handwired/cans12erv2/readme.md b/keyboards/handwired/cans12erv2/readme.md new file mode 100644 index 0000000000..fa08efacc7 --- /dev/null +++ b/keyboards/handwired/cans12erv2/readme.md @@ -0,0 +1,27 @@ +# Cans12erV2 +![Cans12erV2](https://i.imgur.com/3fkbydJ.png) + +New version of my 12-key orthogonal macro keypad with hot swappable keyswitch support and an encoder knob. + +* Keyboard Maintainer: [Can Baytok](https://github.com/canbaytok) +* Build Instructions: [Github](https://github.com/canbaytok/Cans12erV2) +* Hardware Supported: RP2040 Zero +* Hardware Availability: amazon, aliexpress (RP2040 Zero clones work too) + +Make example for this keyboard (after setting up your build environment): + + make handwired/cans12erv2:default + +Flashing example for this keyboard: + + make handwired/cans12erv2:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Quickly double press the reset button on the PCB to make the RP2040 boot into its uf2 mode +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file From 88d4462e528a64a50942b718e9b7705b4d6dd3dd Mon Sep 17 00:00:00 2001 From: Marco Pelegrini Date: Wed, 4 Dec 2024 08:51:40 -0800 Subject: [PATCH 19/77] [Keyboard] Add Marcopad (#24636) * Marcopad debut * Applying core review suggestions * Optional layout with backlit * Line feeds and replacing dev board configs * Function to toggle backlight * Move to RGB Matrix * Fixing capitalization * Review comments --------- Co-authored-by: Marco Pelegrini --- keyboards/marcopad/keyboard.json | 80 +++++++++++++++++++++ keyboards/marcopad/keymaps/backlit/keymap.c | 44 ++++++++++++ keyboards/marcopad/keymaps/backlit/rules.mk | 4 ++ keyboards/marcopad/keymaps/default/keymap.c | 21 ++++++ keyboards/marcopad/readme.md | 27 +++++++ 5 files changed, 176 insertions(+) create mode 100644 keyboards/marcopad/keyboard.json create mode 100644 keyboards/marcopad/keymaps/backlit/keymap.c create mode 100644 keyboards/marcopad/keymaps/backlit/rules.mk create mode 100644 keyboards/marcopad/keymaps/default/keymap.c create mode 100644 keyboards/marcopad/readme.md diff --git a/keyboards/marcopad/keyboard.json b/keyboards/marcopad/keyboard.json new file mode 100644 index 0000000000..c0a8ca37c0 --- /dev/null +++ b/keyboards/marcopad/keyboard.json @@ -0,0 +1,80 @@ +{ + "manufacturer": "pelegrini.ca", + "keyboard_name": "MarcoPad", + "maintainer": "Marco Pelegrini", + "bootloader": "rp2040", + "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP4", "GP26", "GP27"], + "rows": ["GP15", "GP14", "GP29"] + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "dual_beacon": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "solid_reactive": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "splash": true, + "typing_heatmap": true + }, + "default": { + "animation": "splash", + "hue": 132, + "sat": 102, + "speed": 80, + "val": 255 + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 0, "y": 32, "flags": 4}, + {"matrix": [0, 2], "x": 0, "y": 64, "flags": 4}, + {"matrix": [1, 0], "x": 112, "y": 0, "flags": 4}, + {"matrix": [1, 1], "x": 112, "y": 32, "flags": 4}, + {"matrix": [1, 2], "x": 112, "y": 64, "flags": 4}, + {"matrix": [2, 0], "x": 224, "y": 0, "flags": 4}, + {"matrix": [2, 1], "x": 224, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 224, "y": 64, "flags": 4} + ], + "sleep": true + }, + "url": "https://pelegrini.ca/marcopad", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP28" + }, + "community_layouts": ["ortho_3x3"], + "layouts": { + "LAYOUT_ortho_3x3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 0, "y": 1}, + {"matrix": [0, 2], "x": 0, "y": 2}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 1, "y": 2}, + {"matrix": [2, 0], "x": 2, "y": 0}, + {"matrix": [2, 1], "x": 2, "y": 1}, + {"matrix": [2, 2], "x": 2, "y": 2} + ] + } + } +} diff --git a/keyboards/marcopad/keymaps/backlit/keymap.c b/keyboards/marcopad/keymaps/backlit/keymap.c new file mode 100644 index 0000000000..d70df8e6f7 --- /dev/null +++ b/keyboards/marcopad/keymaps/backlit/keymap.c @@ -0,0 +1,44 @@ +// Copyright (c) 2022 Marco Pelegrini +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┐ + * │ 7 │ 8 │ 9 │ + * ├───┼───┼───┤ + * │ 4 │ 5 │ 6 │ + * ├───┼───┼───┤ + * │ 1 │ 2 │ 3 │ + * └───┴───┴───┘ + */ + [0] = LAYOUT_ortho_3x3( + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, + KC_P1, KC_P2, KC_P3 + ) +}; + +const uint16_t PROGMEM backlight_next[] = {KC_P7, KC_P8, COMBO_END}; +const uint16_t PROGMEM backlight_toggle[] = {KC_P7, KC_P9, COMBO_END}; +const uint16_t PROGMEM hue_up[] = {KC_P7, KC_P4, COMBO_END}; +const uint16_t PROGMEM hue_down[] = {KC_P7, KC_P1, COMBO_END}; +const uint16_t PROGMEM sat_up[] = {KC_P7, KC_P5, COMBO_END}; +const uint16_t PROGMEM sat_down[] = {KC_P7, KC_P2, COMBO_END}; +const uint16_t PROGMEM value_up[] = {KC_P7, KC_P6, COMBO_END}; +const uint16_t PROGMEM value_down[] = {KC_P7, KC_P3, COMBO_END}; +const uint16_t PROGMEM speed_up[] = {KC_P8, KC_P4, COMBO_END}; +const uint16_t PROGMEM speed_down[] = {KC_P8, KC_P1, COMBO_END}; +combo_t key_combos[] = { + COMBO(backlight_next, RGB_MODE_FORWARD), + COMBO(backlight_toggle, RGB_TOG), + COMBO(hue_up, RGB_HUI), + COMBO(hue_down, RGB_HUD), + COMBO(sat_up, RGB_SAI), + COMBO(sat_down, RGB_SAD), + COMBO(value_up, RGB_VAI), + COMBO(value_down, RGB_VAD), + COMBO(speed_up, RGB_SPI), + COMBO(speed_down, RGB_SPD) +}; diff --git a/keyboards/marcopad/keymaps/backlit/rules.mk b/keyboards/marcopad/keymaps/backlit/rules.mk new file mode 100644 index 0000000000..c358f54605 --- /dev/null +++ b/keyboards/marcopad/keymaps/backlit/rules.mk @@ -0,0 +1,4 @@ +# Copyright (c) 2022 Marco Pelegrini +# SPDX-License-Identifier: GPL-2.0-or-later + +COMBO_ENABLE = yes diff --git a/keyboards/marcopad/keymaps/default/keymap.c b/keyboards/marcopad/keymaps/default/keymap.c new file mode 100644 index 0000000000..b892c0e80c --- /dev/null +++ b/keyboards/marcopad/keymaps/default/keymap.c @@ -0,0 +1,21 @@ +// Copyright (c) 2022 Marco Pelegrini +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┐ + * │ 7 │ 8 │ 9 │ + * ├───┼───┼───┤ + * │ 4 │ 5 │ 6 │ + * ├───┼───┼───┤ + * │ 1 │ 2 │ 3 │ + * └───┴───┴───┘ + */ + [0] = LAYOUT_ortho_3x3( + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, + KC_P1, KC_P2, KC_P3 + ) +}; diff --git a/keyboards/marcopad/readme.md b/keyboards/marcopad/readme.md new file mode 100644 index 0000000000..6bc1733f30 --- /dev/null +++ b/keyboards/marcopad/readme.md @@ -0,0 +1,27 @@ +# MarcoPad + +![marcopad](https://i.imgur.com/AnC9SeW.png) + +*A compact 3x3 keys macropad built with RP-2040 Zero* + +* Keyboard Maintainer: [pelegrini.ca](https://pelegrini.ca/marcopad) +* Hardware Supported: [MarcoPad](https://pelegrini.ca/marcopad) +* Hardware Availability: [MarcoPad](https://pelegrini.ca/marcopad) + +Make example for this keyboard (after setting up your build environment): + + make marcopad:default + +Flashing example for this keyboard: + + make marcopad:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (top left key) and plug in the keyboard +* **Physical reset button**: Using 2 paperclips, press and hold the BOOT button, then short press the RESET button on the back of the MarcoPad +* **Physical reset button + plug in**: Using a paperclip, press and hold the BOOT button, then plug in the MarcoPad From 8094a1d182a64f1188ff9d952d71c8f6c267d823 Mon Sep 17 00:00:00 2001 From: Cipulot <40441626+Cipulot@users.noreply.github.com> Date: Wed, 4 Dec 2024 17:55:08 +0100 Subject: [PATCH 20/77] Addition of EC Constellation (#24644) * Addition of EC Constellation * Fix layout macro name --- keyboards/cipulot/ec_constellation/config.h | 63 ++++++ keyboards/cipulot/ec_constellation/halconf.h | 21 ++ .../cipulot/ec_constellation/keyboard.json | 185 ++++++++++++++++++ .../keymaps/65_ansi_rwkl/keymap.c | 43 ++++ .../ec_constellation/keymaps/default/keymap.c | 43 ++++ keyboards/cipulot/ec_constellation/mcuconf.h | 22 +++ .../cipulot/ec_constellation/post_rules.mk | 1 + keyboards/cipulot/ec_constellation/readme.md | 26 +++ keyboards/cipulot/ec_constellation/rules.mk | 1 + 9 files changed, 405 insertions(+) create mode 100644 keyboards/cipulot/ec_constellation/config.h create mode 100644 keyboards/cipulot/ec_constellation/halconf.h create mode 100644 keyboards/cipulot/ec_constellation/keyboard.json create mode 100644 keyboards/cipulot/ec_constellation/keymaps/65_ansi_rwkl/keymap.c create mode 100644 keyboards/cipulot/ec_constellation/keymaps/default/keymap.c create mode 100644 keyboards/cipulot/ec_constellation/mcuconf.h create mode 100644 keyboards/cipulot/ec_constellation/post_rules.mk create mode 100644 keyboards/cipulot/ec_constellation/readme.md create mode 100644 keyboards/cipulot/ec_constellation/rules.mk diff --git a/keyboards/cipulot/ec_constellation/config.h b/keyboards/cipulot/ec_constellation/config.h new file mode 100644 index 0000000000..1a2ecf54a0 --- /dev/null +++ b/keyboards/cipulot/ec_constellation/config.h @@ -0,0 +1,63 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +#define UNUSED_POSITIONS_LIST { {3, 1}, {4, 3}, {4, 4}, {4, 5}, {4, 7}, {4, 8}, {4, 9} } + +#define MATRIX_ROW_PINS \ + { A8, A15, B12, B8, B9 } + +#define AMUX_COUNT 1 +#define AMUX_MAX_COLS_COUNT 15 + +#define AMUX_EN_PINS \ + { B5 } + +#define AMUX_SEL_PINS \ + { B6, B7, B4, B3 } + +#define AMUX_COL_CHANNELS_SIZES \ + { 15 } + +#define AMUX_0_COL_CHANNELS \ + { 7, 6, 5, 4, 3, 2, 1, 0, 9, 15, 14, 13, 10, 11, 12} + +#define AMUX_COL_CHANNELS AMUX_0_COL_CHANNELS + +#define DISCHARGE_PIN A2 +#define ANALOG_PORT A3 + +#define DEFAULT_ACTUATION_MODE 0 +#define DEFAULT_MODE_0_ACTUATION_LEVEL 550 +#define DEFAULT_MODE_0_RELEASE_LEVEL 500 +#define DEFAULT_MODE_1_INITIAL_DEADZONE_OFFSET DEFAULT_MODE_0_ACTUATION_LEVEL +#define DEFAULT_MODE_1_ACTUATION_OFFSET 70 +#define DEFAULT_MODE_1_RELEASE_OFFSET 70 +#define DEFAULT_EXTREMUM 1023 +#define EXPECTED_NOISE_FLOOR 0 +#define NOISE_FLOOR_THRESHOLD 50 +#define BOTTOMING_CALIBRATION_THRESHOLD 50 +#define DEFAULT_NOISE_FLOOR_SAMPLING_COUNT 30 +#define DEFAULT_BOTTOMING_READING 1023 +#define DEFAULT_CALIBRATION_STARTER true + +#define DISCHARGE_TIME 10 + +#define EECONFIG_KB_DATA_SIZE 159 diff --git a/keyboards/cipulot/ec_constellation/halconf.h b/keyboards/cipulot/ec_constellation/halconf.h new file mode 100644 index 0000000000..6b63cb5af9 --- /dev/null +++ b/keyboards/cipulot/ec_constellation/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_ADC TRUE + +#include_next diff --git a/keyboards/cipulot/ec_constellation/keyboard.json b/keyboards/cipulot/ec_constellation/keyboard.json new file mode 100644 index 0000000000..15187c472f --- /dev/null +++ b/keyboards/cipulot/ec_constellation/keyboard.json @@ -0,0 +1,185 @@ +{ + "manufacturer": "Cipulot", + "keyboard_name": "Constellation EC", + "maintainer": "Cipulot", + "bootloader": "stm32-dfu", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "eeprom": { + "wear_leveling": { + "backing_size": 4096 + } + }, + "features": { + "bootmagic": false, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "processor": "STM32F411", + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x6BC9", + "shared_endpoint": { + "keyboard": true + }, + "vid": "0x6369" + }, + "layout_aliases": { + "LAYOUT_all": "LAYOUT_65_ansi_rwkl_split_bs" + }, + "layouts": { + "LAYOUT_65_ansi_rwkl": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 13], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 11.75, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_rwkl_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [1, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 13], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 11.75, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/cipulot/ec_constellation/keymaps/65_ansi_rwkl/keymap.c b/keyboards/cipulot/ec_constellation/keymaps/65_ansi_rwkl/keymap.c new file mode 100644 index 0000000000..acc4c91e4c --- /dev/null +++ b/keyboards/cipulot/ec_constellation/keymaps/65_ansi_rwkl/keymap.c @@ -0,0 +1,43 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_65_ansi_rwkl( + 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_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_65_ansi_rwkl( + KC_GRV, 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_DEL, _______, + _______, _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_65_ansi_rwkl( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_constellation/keymaps/default/keymap.c b/keyboards/cipulot/ec_constellation/keymaps/default/keymap.c new file mode 100644 index 0000000000..18d1418be2 --- /dev/null +++ b/keyboards/cipulot/ec_constellation/keymaps/default/keymap.c @@ -0,0 +1,43 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_65_ansi_rwkl_split_bs( + 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_BSPC, KC_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_65_ansi_rwkl_split_bs( + KC_GRV, 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_DEL, _______, _______, + _______, _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_65_ansi_rwkl_split_bs( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_constellation/mcuconf.h b/keyboards/cipulot/ec_constellation/mcuconf.h new file mode 100644 index 0000000000..1679d3fbc0 --- /dev/null +++ b/keyboards/cipulot/ec_constellation/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE diff --git a/keyboards/cipulot/ec_constellation/post_rules.mk b/keyboards/cipulot/ec_constellation/post_rules.mk new file mode 100644 index 0000000000..5dba48cc5f --- /dev/null +++ b/keyboards/cipulot/ec_constellation/post_rules.mk @@ -0,0 +1 @@ +include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/ec_constellation/readme.md b/keyboards/cipulot/ec_constellation/readme.md new file mode 100644 index 0000000000..16bbdcdf6f --- /dev/null +++ b/keyboards/cipulot/ec_constellation/readme.md @@ -0,0 +1,26 @@ +# Constellation EC + +![Constellation EC](https://i.imgur.com/ndgUV63.jpeg) + +EC version of the Constellation keyboard. + +* Keyboard Maintainer: [cipulot](https://github.com/cipulot) +* Hardware Supported: Constellation EC PCB +* Hardware Availability: [Keyboard Treehouse](https://keyboardtreehouse.com/collections/constellation) + +Make example for this keyboard (after setting up your build environment): + + make cipulot/ec_constellation:default + +Flashing example for this keyboard: + + make cipulot/ec_constellation:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Physical reset**: Long short the exposed pins on the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cipulot/ec_constellation/rules.mk b/keyboards/cipulot/ec_constellation/rules.mk new file mode 100644 index 0000000000..1716098b3e --- /dev/null +++ b/keyboards/cipulot/ec_constellation/rules.mk @@ -0,0 +1 @@ +OPT = 3 From 5dc92edf11946dca663c6723d8039e734126ccb0 Mon Sep 17 00:00:00 2001 From: Cipulot <40441626+Cipulot@users.noreply.github.com> Date: Wed, 4 Dec 2024 17:57:16 +0100 Subject: [PATCH 21/77] Addition of EC1-AT (#24645) --- keyboards/cipulot/ec1_at/config.h | 61 ++++++++ keyboards/cipulot/ec1_at/halconf.h | 21 +++ keyboards/cipulot/ec1_at/keyboard.json | 142 ++++++++++++++++++ .../cipulot/ec1_at/keymaps/default/keymap.c | 42 ++++++ keyboards/cipulot/ec1_at/mcuconf.h | 22 +++ keyboards/cipulot/ec1_at/post_rules.mk | 1 + keyboards/cipulot/ec1_at/readme.md | 26 ++++ keyboards/cipulot/ec1_at/rules.mk | 1 + 8 files changed, 316 insertions(+) create mode 100644 keyboards/cipulot/ec1_at/config.h create mode 100644 keyboards/cipulot/ec1_at/halconf.h create mode 100644 keyboards/cipulot/ec1_at/keyboard.json create mode 100644 keyboards/cipulot/ec1_at/keymaps/default/keymap.c create mode 100644 keyboards/cipulot/ec1_at/mcuconf.h create mode 100644 keyboards/cipulot/ec1_at/post_rules.mk create mode 100644 keyboards/cipulot/ec1_at/readme.md create mode 100644 keyboards/cipulot/ec1_at/rules.mk diff --git a/keyboards/cipulot/ec1_at/config.h b/keyboards/cipulot/ec1_at/config.h new file mode 100644 index 0000000000..5e7af3fac5 --- /dev/null +++ b/keyboards/cipulot/ec1_at/config.h @@ -0,0 +1,61 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define MATRIX_ROWS 5 +#define MATRIX_COLS 21 + +#define UNUSED_POSITIONS_LIST { {2, 16}, {4, 5}, {4, 7}, {4, 9}, {4, 12}, {4, 16} } + +#define MATRIX_ROW_PINS {A8, B15, B14, B12, B13} + +#define AMUX_COUNT 2 +#define AMUX_MAX_COLS_COUNT 16 + +#define AMUX_EN_PINS {B5, A15} + +#define AMUX_SEL_PINS {B6, B7, B4, B3} + +#define AMUX_COL_CHANNELS_SIZES {16, 5} + +#define AMUX_0_COL_CHANNELS {5, 6, 7, 4, 3, 2, 1, 0, 8, 15, 14, 13, 12, 10, 9, 11} + +#define AMUX_1_COL_CHANNELS {4, 2, 1, 0, 3} + +#define AMUX_COL_CHANNELS AMUX_0_COL_CHANNELS, AMUX_1_COL_CHANNELS + +#define DISCHARGE_PIN A2 +#define ANALOG_PORT A3 + +#define DEFAULT_ACTUATION_MODE 0 +#define DEFAULT_MODE_0_ACTUATION_LEVEL 550 +#define DEFAULT_MODE_0_RELEASE_LEVEL 500 +#define DEFAULT_MODE_1_INITIAL_DEADZONE_OFFSET DEFAULT_MODE_0_ACTUATION_LEVEL +#define DEFAULT_MODE_1_ACTUATION_OFFSET 70 +#define DEFAULT_MODE_1_RELEASE_OFFSET 70 +#define DEFAULT_EXTREMUM 1023 +#define EXPECTED_NOISE_FLOOR 0 +#define NOISE_FLOOR_THRESHOLD 50 +#define BOTTOMING_CALIBRATION_THRESHOLD 50 +#define DEFAULT_NOISE_FLOOR_SAMPLING_COUNT 30 +#define DEFAULT_BOTTOMING_READING 1023 +#define DEFAULT_CALIBRATION_STARTER true + +#define DISCHARGE_TIME 10 + +#define EECONFIG_KB_DATA_SIZE 219 +#define DYNAMIC_KEYMAP_MACRO_COUNT 30 diff --git a/keyboards/cipulot/ec1_at/halconf.h b/keyboards/cipulot/ec1_at/halconf.h new file mode 100644 index 0000000000..6b63cb5af9 --- /dev/null +++ b/keyboards/cipulot/ec1_at/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_ADC TRUE + +#include_next diff --git a/keyboards/cipulot/ec1_at/keyboard.json b/keyboards/cipulot/ec1_at/keyboard.json new file mode 100644 index 0000000000..9a7a0ae04e --- /dev/null +++ b/keyboards/cipulot/ec1_at/keyboard.json @@ -0,0 +1,142 @@ +{ + "manufacturer": "Cipulot", + "keyboard_name": "EC1-AT", + "maintainer": "Cipulot", + "bootloader": "stm32-dfu", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "eeprom": { + "wear_leveling": { + "backing_size": 16384 + } + }, + "features": { + "bootmagic": false, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "processor": "STM32F411", + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x6BCE", + "shared_endpoint": { + "keyboard": true + }, + "vid": "0x6369" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.25, "y": 0}, + {"matrix": [0, 6], "x": 6.25, "y": 0}, + {"matrix": [0, 7], "x": 7.25, "y": 0}, + {"matrix": [0, 8], "x": 8.25, "y": 0}, + {"matrix": [0, 9], "x": 9.25, "y": 0}, + {"matrix": [0, 10], "x": 10.25, "y": 0}, + {"matrix": [0, 11], "x": 11.25, "y": 0}, + {"matrix": [0, 12], "x": 12.25, "y": 0}, + {"matrix": [0, 13], "x": 13.25, "y": 0}, + {"matrix": [0, 14], "x": 14.25, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.5, "y": 0}, + {"matrix": [0, 18], "x": 18.5, "y": 0}, + {"matrix": [0, 19], "x": 19.5, "y": 0}, + {"matrix": [0, 20], "x": 20.5, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2.25, "y": 1, "w": 1.5}, + {"matrix": [1, 3], "x": 3.75, "y": 1}, + {"matrix": [1, 4], "x": 4.75, "y": 1}, + {"matrix": [1, 5], "x": 5.75, "y": 1}, + {"matrix": [1, 6], "x": 6.75, "y": 1}, + {"matrix": [1, 7], "x": 7.75, "y": 1}, + {"matrix": [1, 8], "x": 8.75, "y": 1}, + {"matrix": [1, 9], "x": 9.75, "y": 1}, + {"matrix": [1, 10], "x": 10.75, "y": 1}, + {"matrix": [1, 11], "x": 11.75, "y": 1}, + {"matrix": [1, 12], "x": 12.75, "y": 1}, + {"matrix": [1, 13], "x": 13.75, "y": 1}, + {"matrix": [1, 14], "x": 14.75, "y": 1}, + {"matrix": [1, 15], "x": 15.75, "y": 1, "w": 0.75}, + {"matrix": [1, 16], "x": 16.5, "y": 1, "w": 0.75}, + {"matrix": [1, 17], "x": 17.5, "y": 1}, + {"matrix": [1, 18], "x": 18.5, "y": 1}, + {"matrix": [1, 19], "x": 19.5, "y": 1}, + {"matrix": [1, 20], "x": 20.5, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2.25, "y": 2, "w": 1.75}, + {"matrix": [2, 3], "x": 4, "y": 2}, + {"matrix": [2, 4], "x": 5, "y": 2}, + {"matrix": [2, 5], "x": 6, "y": 2}, + {"matrix": [2, 6], "x": 7, "y": 2}, + {"matrix": [2, 7], "x": 8, "y": 2}, + {"matrix": [2, 8], "x": 9, "y": 2}, + {"matrix": [2, 9], "x": 10, "y": 2}, + {"matrix": [2, 10], "x": 11, "y": 2}, + {"matrix": [2, 11], "x": 12, "y": 2}, + {"matrix": [2, 12], "x": 13, "y": 2}, + {"matrix": [2, 13], "x": 14, "y": 2}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [2, 15], "x": 16, "y": 2, "w": 1.25}, + {"matrix": [2, 17], "x": 17.5, "y": 2}, + {"matrix": [2, 18], "x": 18.5, "y": 2}, + {"matrix": [2, 19], "x": 19.5, "y": 2}, + {"matrix": [2, 20], "x": 20.5, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25}, + {"matrix": [3, 3], "x": 3.5, "y": 3}, + {"matrix": [3, 4], "x": 4.5, "y": 3}, + {"matrix": [3, 5], "x": 5.5, "y": 3}, + {"matrix": [3, 6], "x": 6.5, "y": 3}, + {"matrix": [3, 7], "x": 7.5, "y": 3}, + {"matrix": [3, 8], "x": 8.5, "y": 3}, + {"matrix": [3, 9], "x": 9.5, "y": 3}, + {"matrix": [3, 10], "x": 10.5, "y": 3}, + {"matrix": [3, 11], "x": 11.5, "y": 3}, + {"matrix": [3, 12], "x": 12.5, "y": 3}, + {"matrix": [3, 13], "x": 13.5, "y": 3}, + {"matrix": [3, 14], "x": 14.5, "y": 3}, + {"matrix": [3, 15], "x": 15.5, "y": 3, "w": 0.75}, + {"matrix": [3, 16], "x": 16.25, "y": 3}, + {"matrix": [3, 17], "x": 17.5, "y": 3}, + {"matrix": [3, 18], "x": 18.5, "y": 3}, + {"matrix": [3, 19], "x": 19.5, "y": 3}, + {"matrix": [3, 20], "x": 20.5, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5}, + {"matrix": [4, 3], "x": 3.75, "y": 4}, + {"matrix": [4, 4], "x": 4.75, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 6.25, "y": 4, "w": 1.5}, + {"matrix": [4, 8], "x": 7.75, "y": 4, "w": 2.5}, + {"matrix": [4, 10], "x": 10.25, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 11.75, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.25, "y": 4, "w": 1.5}, + {"matrix": [4, 14], "x": 14.75, "y": 4}, + {"matrix": [4, 15], "x": 15.75, "y": 4, "w": 1.5}, + {"matrix": [4, 17], "x": 17.5, "y": 4}, + {"matrix": [4, 18], "x": 18.5, "y": 4}, + {"matrix": [4, 19], "x": 19.5, "y": 4}, + {"matrix": [4, 20], "x": 20.5, "y": 4} + ] + } + } +} diff --git a/keyboards/cipulot/ec1_at/keymaps/default/keymap.c b/keyboards/cipulot/ec1_at/keymaps/default/keymap.c new file mode 100644 index 0000000000..b0e5e3aac3 --- /dev/null +++ b/keyboards/cipulot/ec1_at/keymaps/default/keymap.c @@ -0,0 +1,42 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT( + _______, _______, QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + _______, _______, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_ENTER, KC_P7, KC_P8, KC_P9, KC_PMNS, + _______, _______, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENTER, KC_P4, KC_P5, KC_P6, KC_PPLS, + _______, _______, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, MO(1), KC_P1, KC_P2, KC_P3, KC_PENT, + _______, _______, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RALT, MO(1), KC_RCTL, KC_P0, KC_P0, KC_PDOT, KC_PENT), + + [1] = LAYOUT( + _______, _______, _______, 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_DEL, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RIGHT, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______), + + [2] = LAYOUT( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec1_at/mcuconf.h b/keyboards/cipulot/ec1_at/mcuconf.h new file mode 100644 index 0000000000..1679d3fbc0 --- /dev/null +++ b/keyboards/cipulot/ec1_at/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE diff --git a/keyboards/cipulot/ec1_at/post_rules.mk b/keyboards/cipulot/ec1_at/post_rules.mk new file mode 100644 index 0000000000..5dba48cc5f --- /dev/null +++ b/keyboards/cipulot/ec1_at/post_rules.mk @@ -0,0 +1 @@ +include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/ec1_at/readme.md b/keyboards/cipulot/ec1_at/readme.md new file mode 100644 index 0000000000..8e2081dae7 --- /dev/null +++ b/keyboards/cipulot/ec1_at/readme.md @@ -0,0 +1,26 @@ +# EC1-AT + +![EC1-AT](https://i.imgur.com/69OrQsh.png) + +EC version of the W1-AT keyboard. + +* Keyboard Maintainer: [cipulot](https://github.com/cipulot) +* Hardware Supported: EC1-AT +* Hardware Availability: TBD + +Make example for this keyboard (after setting up your build environment): + + make cipulot/ec1_at:default + +Flashing example for this keyboard: + + make cipulot/ec1_at:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Physical reset**: Long press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cipulot/ec1_at/rules.mk b/keyboards/cipulot/ec1_at/rules.mk new file mode 100644 index 0000000000..1716098b3e --- /dev/null +++ b/keyboards/cipulot/ec1_at/rules.mk @@ -0,0 +1 @@ +OPT = 3 From d01303c060a9c9d33fa79ba0372ea7403ae18a3c Mon Sep 17 00:00:00 2001 From: kbd0 <108237598+kbd0@users.noreply.github.com> Date: Wed, 4 Dec 2024 12:07:26 -0500 Subject: [PATCH 22/77] [Keyboard] add kbd0 Curve0 60 ANSI (#24609) * add kbd0/curve0/60_ansi keyboard * Apply suggestions from code review Co-authored-by: jack * Apply suggestions from code review Co-authored-by: Duncan Sutherland --------- Co-authored-by: unknown Co-authored-by: jack Co-authored-by: Duncan Sutherland --- keyboards/kbd0/curve0/60_ansi/keyboard.json | 228 ++++++++++++++++++ .../60_ansi/keymaps/default/keymap.json | 22 ++ keyboards/kbd0/curve0/60_ansi/readme.md | 27 +++ 3 files changed, 277 insertions(+) create mode 100644 keyboards/kbd0/curve0/60_ansi/keyboard.json create mode 100644 keyboards/kbd0/curve0/60_ansi/keymaps/default/keymap.json create mode 100644 keyboards/kbd0/curve0/60_ansi/readme.md diff --git a/keyboards/kbd0/curve0/60_ansi/keyboard.json b/keyboards/kbd0/curve0/60_ansi/keyboard.json new file mode 100644 index 0000000000..64c39cd24e --- /dev/null +++ b/keyboards/kbd0/curve0/60_ansi/keyboard.json @@ -0,0 +1,228 @@ +{ + "manufacturer": "kbd0", + "keyboard_name": "kbd0/curve0/60_ansi", + "maintainer": "kbd0", + "bootloader": "rp2040", + "bootloader_instructions": "Hold the top left key of the keyboard while plugging in the keyboard", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP6", "GP5", "GP4", "GP7", "GP10", "GP9", "GP11", "GP12", "GP13", "GP14", "GP25", "GP20", "GP19", "GP18", "GP16"], + "rows": ["GP23", "GP22", "GP21", "GP24", "GP17"] + }, + "processor": "RP2040", + "url": "https://kbd0.com/item/curve0", + "usb": { + "device_version": "1.0.0", + "pid": "0xC000", + "vid": "0xCBD0" + }, + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift"], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + } + } +} diff --git a/keyboards/kbd0/curve0/60_ansi/keymaps/default/keymap.json b/keyboards/kbd0/curve0/60_ansi/keymaps/default/keymap.json new file mode 100644 index 0000000000..d84bfd2bf4 --- /dev/null +++ b/keyboards/kbd0/curve0/60_ansi/keymaps/default/keymap.json @@ -0,0 +1,22 @@ +{ + "author": "kbd0", + "keyboard": "kbd0/curve0/60_ansi", + "keymap": "default", + "layout": "LAYOUT_all", + "layers": [ + [ + "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_BSPC", + "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_LBRC", "KC_RBRC", "KC_BSLS", + "KC_CAPS", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_ENT", + "KC_LSFT", "KC_NUBS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT", "MO(1)", + "KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "KC_RGUI", "KC_APP", "KC_RCTL" + ], + [ + "KC_GRV", "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_DEL", + "_______", "_______", "KC_UP", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "_______", "KC_LEFT", "KC_DOWN", "KC_RGHT", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______" + ] + ] +} diff --git a/keyboards/kbd0/curve0/60_ansi/readme.md b/keyboards/kbd0/curve0/60_ansi/readme.md new file mode 100644 index 0000000000..f97ec67312 --- /dev/null +++ b/keyboards/kbd0/curve0/60_ansi/readme.md @@ -0,0 +1,27 @@ +# kbd0/curve0/60_ansi + +![Curve0](https://i.imgur.com/y5ZIbWI.jpeg) + +Curve0 - Curved stainless steel keyboard by kbd0 + +* Keyboard Maintainer: [kbd0](https://github.com/kbd0) +* Hardware Supported: Curve0 PCB +* Hardware Availability: [kbd0.com](https://kbd0.com/item/curve0) + +Make example for this keyboard (after setting up your build environment): + + make kbd0/curve0/60_ansi:default + +Flashing example for this keyboard: + + make kbd0/curve0/60_ansi:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold the top left key of the keyboard while plugging in the keyboard +* **Physical reset button**: Hold the button on the main PCB (inside the keyboard) while plugging in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 3c324cb5e6989713c050a959ef7854427d8bca0f Mon Sep 17 00:00:00 2001 From: Vino Rodrigues <366673+vinorodrigues@users.noreply.github.com> Date: Thu, 5 Dec 2024 04:10:11 +1100 Subject: [PATCH 23/77] [Keyboard] Add Binepad BNK8 keyboard (#24598) * Add Binepad BNK8 keyboard * Moved keymap.c to keymap.json * Fix product page URL * RGB_ -> RM_ keycodes after this round of breaking changes Co-authored-by: Ryan --------- Co-authored-by: Ryan --- keyboards/binepad/bnk8/config.h | 7 ++ keyboards/binepad/bnk8/keyboard.json | 88 +++++++++++++++++++ .../binepad/bnk8/keymaps/default/keymap.json | 40 +++++++++ keyboards/binepad/bnk8/readme.md | 26 ++++++ 4 files changed, 161 insertions(+) create mode 100644 keyboards/binepad/bnk8/config.h create mode 100755 keyboards/binepad/bnk8/keyboard.json create mode 100644 keyboards/binepad/bnk8/keymaps/default/keymap.json create mode 100755 keyboards/binepad/bnk8/readme.md diff --git a/keyboards/binepad/bnk8/config.h b/keyboards/binepad/bnk8/config.h new file mode 100644 index 0000000000..40eea2db81 --- /dev/null +++ b/keyboards/binepad/bnk8/config.h @@ -0,0 +1,7 @@ +// Copyright 2024 binepad (@binepad) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// Timing for SK6812 +#define WS2812_T1H 650 diff --git a/keyboards/binepad/bnk8/keyboard.json b/keyboards/binepad/bnk8/keyboard.json new file mode 100755 index 0000000000..550aa77961 --- /dev/null +++ b/keyboards/binepad/bnk8/keyboard.json @@ -0,0 +1,88 @@ +{ + "manufacturer": "binepad", + "keyboard_name": "BNK8", + "maintainer": "binepad", + "bootloader": "stm32duino", + "bootloader_instructions": "Hold down the key at (0x0) in the matrix (the top left key) and plug in the keyboard.", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "A7", "pin_b": "A0", "resolution": 2} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["B3", "B4", "C13"], + "rows": ["C14", "B13", "B12"] + }, + "processor": "STM32F103", + "rgb_matrix": { + "animations": { + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_pinwheel": true, + "cycle_up_down": true, + "jellybean_raindrops": true, + "riverflow": true, + "solid_reactive": true, + "solid_reactive_simple": true, + "solid_splash": true, + "splash": true, + "starlight": true, + "starlight_dual_hue": true, + "starlight_dual_sat": true + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 112, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 80, "y": 32, "flags": 4}, + {"matrix": [1, 1], "x": 112, "y": 32, "flags": 4}, + {"matrix": [1, 2], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 80, "y": 64, "flags": 4}, + {"matrix": [2, 1], "x": 112, "y": 64, "flags": 4}, + {"matrix": [2, 2], "x": 144, "y": 64, "flags": 4} + ], + "led_process_limit": 9, + "max_brightness": 180, + "sleep": true + }, + "url": "https://www.binepad.com/product-page/bnk8", + "usb": { + "device_version": "1.0.0", + "vid": "0x4249", + "pid": "0x4E41" + }, + "eeprom": { + "wear_leveling": { + "backing_size": 1024 + } + }, + "ws2812": { + "pin": "C15" + }, + "community_layouts": ["ortho_3x3"], + "layouts": { + "LAYOUT_ortho_3x3": { + "layout": [ + {"label": "1", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "2", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "Knob", "matrix": [0, 2], "x": 2, "y": 0, "encoder": 0}, + {"label": "3", "matrix": [1, 0], "x": 0, "y": 1}, + {"label": "4", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "5", "matrix": [1, 2], "x": 2, "y": 1}, + {"label": "6", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "7", "matrix": [2, 1], "x": 1, "y": 2}, + {"label": "8", "matrix": [2, 2], "x": 2, "y": 2} + ] + } + } +} diff --git a/keyboards/binepad/bnk8/keymaps/default/keymap.json b/keyboards/binepad/bnk8/keymaps/default/keymap.json new file mode 100644 index 0000000000..51b5e06619 --- /dev/null +++ b/keyboards/binepad/bnk8/keymaps/default/keymap.json @@ -0,0 +1,40 @@ +{ + "keyboard": "binepad/bnk8", + "version": 1, + "author": "binepad", + "notes": "Copyright 2024 Binepad (@binepad) \n SPDX-License-Identifier: GPL-2.0-or-later \n This file is a keymap.json file for binepad/bnk8", + "keymap": "default", + "layout": "LAYOUT_ortho_3x3", + "layers": [ + [ + "KC_P1", "KC_P2", "KC_MUTE", + "KC_P3", "KC_P4", "KC_P5", + "KC_P6", "KC_P7", "LT(1, KC_P8)" + ], + [ + "RM_HUEU", "RM_SATU", "RM_SPDU", + "RM_HUED", "RM_SATD", "RM_SPDD", + "RM_TOGG", "RM_NEXT", "_______" + + ] + ], + "config": { + "features": { + "encoder_map": true + } + }, + "encoders": [ + [ + { + "ccw": "KC_VOLD", + "cw": "KC_VOLU" + } + ], + [ + { + "ccw": "RM_VALD", + "cw": "RM_VALU" + } + ] + ] +} diff --git a/keyboards/binepad/bnk8/readme.md b/keyboards/binepad/bnk8/readme.md new file mode 100755 index 0000000000..89ceb863a1 --- /dev/null +++ b/keyboards/binepad/bnk8/readme.md @@ -0,0 +1,26 @@ +# BINEPAD BNK8 + +![BINEPAD BNK8](https://i.imgur.com/HFIZg48h.jpeg) + +A compact 8-key 3x3 macropad with a rotary encoder at the top right. + +* Keyboard Maintainer: [binepad](https://github.com/binepad) +* Hardware Supported: BINPAD BNK8 +* Hardware Availability: [binepad.com](https://binepad.com/products/bnk8) + +Make example for this keyboard (after setting up your build environment): + + make binepad/bnk8:default + +Flashing example for this keyboard: + + make binepad/bnk8:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key) and plug in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From d76f7bfac3bffdfbcc664a677db3e13100ad2879 Mon Sep 17 00:00:00 2001 From: Andrew Kannan Date: Thu, 5 Dec 2024 13:18:25 -0500 Subject: [PATCH 24/77] Add Cerberus to QMK (#24226) * Add Cerberus to QMK * Update readme to add hotswap callouts * Update readme formatting * Use format json to update keyboard.json formatting * Split Cerberus HS and Solderable into separate folders * Update JSON formatting * make solderable keymaps a bit more useful * Backlight fix on solderable * Update keyboards/cannonkeys/cerberus/hotswap/keyboard.json Co-authored-by: jack * Remove cerberus VIA keymaps * Apply suggestions from code review Change some whitespace Co-authored-by: Drashna Jaelre * Add RGB control keycodes to cerberus keymap * Add backlight controls to default keymap on solderable version * Update keyboards/cannonkeys/cerberus/readme.md --------- Co-authored-by: jack Co-authored-by: Drashna Jaelre --- keyboards/cannonkeys/cerberus/config.h | 9 + keyboards/cannonkeys/cerberus/halconf.h | 9 + .../cannonkeys/cerberus/hotswap/keyboard.json | 311 ++++++++ .../cerberus/hotswap/keymaps/default/keymap.c | 26 + .../cannonkeys/cerberus/hotswap/rules.mk | 2 + keyboards/cannonkeys/cerberus/info.json | 50 ++ keyboards/cannonkeys/cerberus/mcuconf.h | 9 + keyboards/cannonkeys/cerberus/readme.md | 28 + .../cannonkeys/cerberus/solderable/config.h | 8 + .../cannonkeys/cerberus/solderable/halconf.h | 10 + .../cerberus/solderable/keyboard.json | 711 ++++++++++++++++++ .../solderable/keymaps/default/keymap.c | 25 + .../cerberus/solderable/matrix_diagram.md | 24 + .../cannonkeys/cerberus/solderable/mcuconf.h | 9 + .../cannonkeys/cerberus/solderable/rules.mk | 2 + 15 files changed, 1233 insertions(+) create mode 100644 keyboards/cannonkeys/cerberus/config.h create mode 100644 keyboards/cannonkeys/cerberus/halconf.h create mode 100644 keyboards/cannonkeys/cerberus/hotswap/keyboard.json create mode 100644 keyboards/cannonkeys/cerberus/hotswap/keymaps/default/keymap.c create mode 100644 keyboards/cannonkeys/cerberus/hotswap/rules.mk create mode 100644 keyboards/cannonkeys/cerberus/info.json create mode 100644 keyboards/cannonkeys/cerberus/mcuconf.h create mode 100644 keyboards/cannonkeys/cerberus/readme.md create mode 100644 keyboards/cannonkeys/cerberus/solderable/config.h create mode 100644 keyboards/cannonkeys/cerberus/solderable/halconf.h create mode 100644 keyboards/cannonkeys/cerberus/solderable/keyboard.json create mode 100644 keyboards/cannonkeys/cerberus/solderable/keymaps/default/keymap.c create mode 100644 keyboards/cannonkeys/cerberus/solderable/matrix_diagram.md create mode 100644 keyboards/cannonkeys/cerberus/solderable/mcuconf.h create mode 100644 keyboards/cannonkeys/cerberus/solderable/rules.mk diff --git a/keyboards/cannonkeys/cerberus/config.h b/keyboards/cannonkeys/cerberus/config.h new file mode 100644 index 0000000000..84ea5d9acd --- /dev/null +++ b/keyboards/cannonkeys/cerberus/config.h @@ -0,0 +1,9 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define WS2812_SPI_DRIVER SPID2 +#define WS2812_SPI_MOSI_PAL_MODE 0 +#define WS2812_SPI_SCK_PAL_MODE 0 +#define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/cannonkeys/cerberus/halconf.h b/keyboards/cannonkeys/cerberus/halconf.h new file mode 100644 index 0000000000..d0f34b102c --- /dev/null +++ b/keyboards/cannonkeys/cerberus/halconf.h @@ -0,0 +1,9 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_SPI TRUE + +#include_next + diff --git a/keyboards/cannonkeys/cerberus/hotswap/keyboard.json b/keyboards/cannonkeys/cerberus/hotswap/keyboard.json new file mode 100644 index 0000000000..78890d942e --- /dev/null +++ b/keyboards/cannonkeys/cerberus/hotswap/keyboard.json @@ -0,0 +1,311 @@ +{ + "keyboard_name": "Cerberus HS", + "usb": { + "pid": "0x0034" + }, + "community_layouts": ["tkl_nofrow_ansi"], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "~", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, + {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, + {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "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, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3}, + {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, + {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, + {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_ansi": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, + {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, + {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "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, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, + {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, + {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_ansi_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, + {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, + {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "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, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}, + {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, + {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, + {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "~", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, + {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, + {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "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, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3}, + {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}, + {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, + {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, + {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} + ] + } + } +} diff --git a/keyboards/cannonkeys/cerberus/hotswap/keymaps/default/keymap.c b/keyboards/cannonkeys/cerberus/hotswap/keymaps/default/keymap.c new file mode 100644 index 0000000000..865dbff400 --- /dev/null +++ b/keyboards/cannonkeys/cerberus/hotswap/keymaps/default/keymap.c @@ -0,0 +1,26 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +enum layer_names { + _BASE, + _FN1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + 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_BSPC, KC_GRV, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_LGUI, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_all( + KC_GRV, 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_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, + UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, UG_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, UG_HUED, UG_SATD, UG_VALD, UG_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, UG_PREV, UG_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/cannonkeys/cerberus/hotswap/rules.mk b/keyboards/cannonkeys/cerberus/hotswap/rules.mk new file mode 100644 index 0000000000..0ab54aaaf7 --- /dev/null +++ b/keyboards/cannonkeys/cerberus/hotswap/rules.mk @@ -0,0 +1,2 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF diff --git a/keyboards/cannonkeys/cerberus/info.json b/keyboards/cannonkeys/cerberus/info.json new file mode 100644 index 0000000000..c260c2fcd5 --- /dev/null +++ b/keyboards/cannonkeys/cerberus/info.json @@ -0,0 +1,50 @@ +{ + "manufacturer": "CannonKeys", + "maintainer": "awkannan", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": true, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["B0", "C15", "C14", "A7", "A5", "C13", "A4", "A2", "A1", "A0", "B9", "B8", "B7", "A3", "B6", "B4", "B3", "A15"], + "rows": ["B11", "B10", "B2", "F0", "B5"] + }, + "processor": "STM32F072", + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "led_count": 4 + }, + "url": "https://cannonkeys.com", + "usb": { + "device_version": "0.0.1", + "vid": "0xCA04" + }, + "ws2812": { + "driver": "spi", + "pin": "B15" + } +} diff --git a/keyboards/cannonkeys/cerberus/mcuconf.h b/keyboards/cannonkeys/cerberus/mcuconf.h new file mode 100644 index 0000000000..32f9fbd6db --- /dev/null +++ b/keyboards/cannonkeys/cerberus/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE diff --git a/keyboards/cannonkeys/cerberus/readme.md b/keyboards/cannonkeys/cerberus/readme.md new file mode 100644 index 0000000000..848d746594 --- /dev/null +++ b/keyboards/cannonkeys/cerberus/readme.md @@ -0,0 +1,28 @@ +# Cerberus Keyboard by CannonKeys + +This folder contains firmware for both the Solderable and Hotswap version of Cerberus + +The hotswap PCB does not support per-key LEDs and has reduced layout support (no ISO) + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: STM32F072CBT6 + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/cerberus/hotswap:default + make cannonkeys/cerberus/solderable:default + +Flashing example for this keyboard: + + make cannonkeys/cerberus/hotswap:default:flash + make cannonkeys/cerberus/solderable:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Toggle the switch on the back of the pcb to "1" and briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cannonkeys/cerberus/solderable/config.h b/keyboards/cannonkeys/cerberus/solderable/config.h new file mode 100644 index 0000000000..9e5e637de4 --- /dev/null +++ b/keyboards/cannonkeys/cerberus/solderable/config.h @@ -0,0 +1,8 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_PWM_CHANNEL 1 +#define BACKLIGHT_PAL_MODE 1 diff --git a/keyboards/cannonkeys/cerberus/solderable/halconf.h b/keyboards/cannonkeys/cerberus/solderable/halconf.h new file mode 100644 index 0000000000..fc641ca42f --- /dev/null +++ b/keyboards/cannonkeys/cerberus/solderable/halconf.h @@ -0,0 +1,10 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + + +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next + diff --git a/keyboards/cannonkeys/cerberus/solderable/keyboard.json b/keyboards/cannonkeys/cerberus/solderable/keyboard.json new file mode 100644 index 0000000000..3797df3851 --- /dev/null +++ b/keyboards/cannonkeys/cerberus/solderable/keyboard.json @@ -0,0 +1,711 @@ +{ + "keyboard_name": "Cerberus", + "backlight": { + "breathing": true, + "levels": 6, + "pin": "A6" + }, + "features": { + "backlight": true + }, + "indicators": { + "caps_lock": "F1", + "on_state": 0 + }, + "usb": { + "pid": "0x0031" + }, + "community_layouts": ["tkl_nofrow_ansi", "tkl_nofrow_iso"], + "layout_aliases": { + "LAYOUT_all": "LAYOUT" + }, + "layouts": { + "LAYOUT": { + "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": "`", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Page Up", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "\\", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, + {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, + {"label": "Page Down", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "#", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "x": 13.75, "y": 2, "w": 1.25}, + {"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, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3}, + {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, + {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, + {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_ansi": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, + {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, + {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "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, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, + {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, + {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_ansi_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "~", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, + {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, + {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "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, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3}, + {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, + {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, + {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_ansi_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, + {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, + {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "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, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}, + {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, + {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, + {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "~", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, + {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, + {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "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, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3}, + {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}, + {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, + {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, + {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_iso": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "\"", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "\u00a3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, + {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, + {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "@", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "~", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "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, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, + {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, + {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_iso_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "\"", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "\u00a3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "\u00ac", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, + {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, + {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "@", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "~", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "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, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3}, + {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}, + {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, + {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, + {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_iso_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "\"", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "\u00a3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, + {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, + {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "@", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "~", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "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, 12], "x": 12.25, "y": 3, "w": 2.75}, + {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}, + {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, + {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, + {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} + ] + }, + "LAYOUT_tkl_nofrow_iso_tsangan_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "\"", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "\u00a3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "\u00ac", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1}, + {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1}, + {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "@", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "~", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 14], "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, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3}, + {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}, + {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4}, + {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4}, + {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4} + ] + } + } +} diff --git a/keyboards/cannonkeys/cerberus/solderable/keymaps/default/keymap.c b/keyboards/cannonkeys/cerberus/solderable/keymaps/default/keymap.c new file mode 100644 index 0000000000..2b87af0e99 --- /dev/null +++ b/keyboards/cannonkeys/cerberus/solderable/keymaps/default/keymap.c @@ -0,0 +1,25 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +enum layer_names { + _BASE, + _FN1, +}; +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + 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_BSPC, KC_GRV, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_LGUI, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_all( + KC_GRV, 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_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, + UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, UG_SPDU, BL_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, UG_HUED, UG_SATD, UG_VALD, UG_SPDD, BL_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, UG_PREV, UG_NEXT, KC_TRNS, BL_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/cannonkeys/cerberus/solderable/matrix_diagram.md b/keyboards/cannonkeys/cerberus/solderable/matrix_diagram.md new file mode 100644 index 0000000000..5beb866f72 --- /dev/null +++ b/keyboards/cannonkeys/cerberus/solderable/matrix_diagram.md @@ -0,0 +1,24 @@ +# Matrix Diagram for Cerberus + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │ │0F │0G │0H │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ ┌─────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1E │ │1F │1G │1H │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ┌──┴┐2E │ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2E │ │2C │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ └───┴────┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3E │ │3G │ ISO Enter +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ ┌───┼───┼───┐ +│40 │41 │42 │45 │4A │4B │4C │4E │ │4F │4G │4H │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ +┌────────┐ ┌──────────┐ +│30 │ 2.25u LShift 2.75u RShift │3C │ +└────────┘ └──────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│40 │41 │42 │45 │4B │4C │4E │ Tsangan/WKL +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +``` diff --git a/keyboards/cannonkeys/cerberus/solderable/mcuconf.h b/keyboards/cannonkeys/cerberus/solderable/mcuconf.h new file mode 100644 index 0000000000..931e93d66f --- /dev/null +++ b/keyboards/cannonkeys/cerberus/solderable/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/cannonkeys/cerberus/solderable/rules.mk b/keyboards/cannonkeys/cerberus/solderable/rules.mk new file mode 100644 index 0000000000..0ab54aaaf7 --- /dev/null +++ b/keyboards/cannonkeys/cerberus/solderable/rules.mk @@ -0,0 +1,2 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF From 09fdabf37c5004b1a580d32f61dd093625e62f8a Mon Sep 17 00:00:00 2001 From: suikagiken <115451678+suikagiken@users.noreply.github.com> Date: Fri, 6 Dec 2024 03:58:28 +0900 Subject: [PATCH 25/77] Fix keymap.json error of keyboard/suikagiken/suika27melo (#24677) --- keyboards/suikagiken/suika27melo/keymaps/default/keymap.json | 4 ++-- keyboards/suikagiken/suika27melo/keymaps/midi/keymap.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/suikagiken/suika27melo/keymaps/default/keymap.json b/keyboards/suikagiken/suika27melo/keymaps/default/keymap.json index dadd846e48..48807b2b86 100644 --- a/keyboards/suikagiken/suika27melo/keymaps/default/keymap.json +++ b/keyboards/suikagiken/suika27melo/keymaps/default/keymap.json @@ -1,6 +1,6 @@ { - "author": "@suikagiken", - "keyboard": "suikagiken/suika85ergo", + "author": "suikagiken", + "keyboard": "suikagiken/suika27melo", "keymap": "default", "layout": "LAYOUT", "layers": [ diff --git a/keyboards/suikagiken/suika27melo/keymaps/midi/keymap.json b/keyboards/suikagiken/suika27melo/keymaps/midi/keymap.json index 189665ddbf..5caad45979 100644 --- a/keyboards/suikagiken/suika27melo/keymaps/midi/keymap.json +++ b/keyboards/suikagiken/suika27melo/keymaps/midi/keymap.json @@ -1,6 +1,6 @@ { - "author": "@suikagiken", - "keyboard": "suikagiken/suika85ergo", + "author": "suikagiken", + "keyboard": "suikagiken/suika27melo", "keymap": "midi", "layout": "LAYOUT", "layers": [ From 03937e0c86109b7a488794bb8568d53d48d4ed16 Mon Sep 17 00:00:00 2001 From: Patrickemm Date: Fri, 6 Dec 2024 00:43:35 -0500 Subject: [PATCH 26/77] Add Macroflow Original macropad firmware (#24538) * Adding Macroflow Macropad * Macroflow_Macropad * Macroflow_Macropad * Adding My Macropad * Adding Macroflow Macropad * Adding Macroflow Macropad * Adding Macroflow Macropad * Adding Macroflow Macropad * Adding Macroflow Macropad * Added License Headers * Updated code for merge * Added License Header * Added Encoder Map * Updated Files * Fixed Matrix * Update keyboards/macroflow_original/keyboard.json Co-authored-by: Drashna Jaelre * Update keyboards/macroflow_original/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/macroflow_original/keymaps/default/keymap.c Co-authored-by: Drashna Jaelre * Update keyboards/macroflow_original/keymaps/default/rules.mk Co-authored-by: Drashna Jaelre * Update keyboards/macroflow_original/macroflow_original.c Co-authored-by: Drashna Jaelre --------- Co-authored-by: Drashna Jaelre --- keyboards/macroflow_original/keyboard.json | 52 +++++ .../keymaps/default/keymap.c | 101 +++++++++ .../keymaps/default/rules.mk | 1 + .../macroflow_original/macroflow_original.c | 200 ++++++++++++++++++ keyboards/macroflow_original/readme.md | 27 +++ 5 files changed, 381 insertions(+) create mode 100644 keyboards/macroflow_original/keyboard.json create mode 100644 keyboards/macroflow_original/keymaps/default/keymap.c create mode 100644 keyboards/macroflow_original/keymaps/default/rules.mk create mode 100644 keyboards/macroflow_original/macroflow_original.c create mode 100644 keyboards/macroflow_original/readme.md diff --git a/keyboards/macroflow_original/keyboard.json b/keyboards/macroflow_original/keyboard.json new file mode 100644 index 0000000000..58cabba08e --- /dev/null +++ b/keyboards/macroflow_original/keyboard.json @@ -0,0 +1,52 @@ +{ + "manufacturer": "Customacros", + "keyboard_name": "Macroflow Original", + "maintainer": "Patrickemm", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "encoder": true, + "oled": true + }, + "matrix_pins": { + "cols": ["B1", "B3", "B2", "F7"], + "rows": ["E6", "B4", "B5"] + }, + "development_board": "promicro", + "url": "https://github.com/Patrickemm", + "usb": { + "device_version": "1.0.0", + "pid": "0x0002", + "vid": "0x504D" + }, + "dynamic_keymap": { + "layer_count": 8 + }, + "layouts": { + "LAYOUT": { + "layout": [ + + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2} + ] + } + }, + "encoder": { + "rotary": [ + {"pin_b": "F5", "pin_a": "F4"} + ] + } +} diff --git a/keyboards/macroflow_original/keymaps/default/keymap.c b/keyboards/macroflow_original/keymaps/default/keymap.c new file mode 100644 index 0000000000..76ef39bf5a --- /dev/null +++ b/keyboards/macroflow_original/keymaps/default/keymap.c @@ -0,0 +1,101 @@ +// Copyright 2024 Patrick Mathern (@Patrickemm) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +// Define the keycode, `QK_USER` avoids collisions with existing keycodes +enum keycodes { + KC_CYCLE_LAYERS = QK_USER, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_0, KC_CYCLE_LAYERS, + KC_1, KC_2, KC_3, KC_4, + KC_5, KC_6, KC_7, KC_8 + ), + [1] = LAYOUT( + KC_9, KC_CYCLE_LAYERS, + KC_A, KC_B, KC_C, KC_D, + KC_E, KC_F, KC_G, KC_H + ), + [2] = LAYOUT( + KC_I, KC_CYCLE_LAYERS, + KC_J, KC_K, KC_L, KC_M, + KC_N, KC_O, KC_P, KC_Q + ), + [3] = LAYOUT( + KC_R, KC_CYCLE_LAYERS, + KC_S, KC_T, KC_U, KC_V, + KC_W, KC_X, KC_Y, KC_Z + ), + [4] = LAYOUT( + KC_TRNS, KC_CYCLE_LAYERS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [5] = LAYOUT( + KC_TRNS, KC_CYCLE_LAYERS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [6] = LAYOUT( + KC_TRNS, KC_CYCLE_LAYERS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [7] = LAYOUT( + KC_TRNS, KC_CYCLE_LAYERS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + +// 1st layer on the cycle +#define LAYER_CYCLE_START 0 +// Last layer on the cycle +#define LAYER_CYCLE_END 7 + +// Add the behaviour of this new keycode +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_CYCLE_LAYERS: + // Our logic will happen on presses, nothing is done on releases + if (!record->event.pressed) { + // We've already handled the keycode (doing nothing), let QMK know so no further code is run unnecessarily + return false; + } + + uint8_t current_layer = get_highest_layer(layer_state); + + // Check if we are within the range, if not quit + if (current_layer > LAYER_CYCLE_END || current_layer < LAYER_CYCLE_START) { + return false; + } + + uint8_t next_layer = current_layer + 1; + if (next_layer > LAYER_CYCLE_END) { + next_layer = LAYER_CYCLE_START; + } + layer_move(next_layer); + return false; + + // Process other keycodes normally + default: + return true; + } +} + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN) }, + [1] = { ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, + [4] = { ENCODER_CCW_CW(_______, _______) }, + [5] = { ENCODER_CCW_CW(_______, _______) }, + [6] = { ENCODER_CCW_CW(_______, _______) }, + [7] = { ENCODER_CCW_CW(_______, _______) } +}; +#endif diff --git a/keyboards/macroflow_original/keymaps/default/rules.mk b/keyboards/macroflow_original/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/macroflow_original/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/macroflow_original/macroflow_original.c b/keyboards/macroflow_original/macroflow_original.c new file mode 100644 index 0000000000..fd91fd510e --- /dev/null +++ b/keyboards/macroflow_original/macroflow_original.c @@ -0,0 +1,200 @@ +// Copyright 2024 Patrick Mathern (@Patrickemm) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +static uint16_t oled_logo_timer = 0; +static bool has_startup_ran = false; + +#ifndef SHOW_LOGO +# define SHOW_LOGO 2500 +#endif + +enum layer_names { + one, + two, + three, + four, + five, + six, + seven, + eight +}; + +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + return OLED_ROTATION_180; +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + if (!has_startup_ran) { + static const char startUp [] PROGMEM = { + // 'startUp', 128x32px + 0, 0, 0,128,192,192,128,128, 0, 0,192,192, 0, 0, 0,192,192, 0, 0,128,128,192,192,128, 0, 0,192,192,192,192,192,192,192, 0, 0,128,128,192,192,128, 0, 0, 0,192,192,128, 0, 0, 0, 0,192,192,128, 0, 0, 0,128,192,192, 0, 0, 0, 0, 0,128,128,192,192,128, 0, 0,128,192,192,192,192,128,128, 0, 0, 0,128,192,192,192,128, 0, 0, 0,128,128,192,192,128, 0, 0, 0, 0, 0, 0, 0,128,192,192,128, 0, 0, 0, 0,128,192,192,128,128, 0, 0,192,192,192, 0, 0, 0, 0,128,192,192, 0,0, + 0, 0,255,255, 1, 1, 1, 31, 30, 0,255,255, 0, 0, 0,255,255, 0, 30,127,241,193,129, 7, 15, 0, 1, 1, 1,255,255, 1, 1, 0,254,255, 1, 1, 1,255,255, 0, 0,255, 63,255,224, 0,128,254, 63,255,255, 0, 0,224,255, 15,127,255,192, 0, 0,254,255, 1, 1, 1, 31, 31, 0,255,255,129,129,129,255,127, 0, 0,255,255, 1, 1, 1,255,255, 0, 30,127,241,193,129, 7, 15, 0, 0, 0, 0,252,255, 3, 1, 1, 3, 31, 30, 0,255,255, 1, 1, 1,255,254, 0,255,255,127,252, 0, 0,240,255,255,255, 0, 0, 0, 0,255,255,128,128,192,252, 60, 0,127,255,128,128,128,255,127, 0,120,248,128,129,131,255,254, 0, 0, 0, 0,255,255, 0, 0, 0,127,255,128,128,128,255,255, 0, 0,255, 0, 3,255,248,255, 15, 0,255,255, 0,248,255, 27, 24, 24, 63,255,224, 0,127,255,128,128,128,252,124, 0,255,255, 3, 1, 3,127,254,240, 0,127,255,128,128,128,255,127, 0,120,248,128,129,131,255,254, 0,128,128, 0, 63,255,192,128,128,224,252, 60, 0,255,255,128,128,128,255,127, 0,255,255, 0, 31,255,252,127, 1,255,255, 0, 0,0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0 + }; + oled_write_raw_P(startUp, sizeof(startUp)); + if (timer_elapsed(oled_logo_timer) >= SHOW_LOGO) { + has_startup_ran = true; + oled_clear(); + } + } else { + static const char PROGMEM layerImage[4][67+1] = { + { 224,224,224,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,224,224,224,224, 0, 0, 0, 0, 0,224,224,224,128, 0, 0, 0, 0,128,224,224,224, 0, 0, 0,224,224,224,224,224,224,224,224,224,224,224, 0, 0,224,224,224,224,224,224,224,224,224,192,128, 0 }, + { 255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,255,255,127, 15,127,255,255,240, 0, 0, 0, 0, 3, 15,127,252,240,240,252,127, 15, 3, 0, 0, 0, 0,255,255,255,255,192,192,192,192,192, 0, 0, 0, 0,255,255,255,255,192,192,192,225,255,255,255,127 }, + { 255,255,255,255,192,192,192,192,192,192,192, 0, 0,192,254,255,255,127, 28, 28, 28,127,255,255,254,192, 0, 0, 0, 0, 0,255,255,255,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,129,129,129,129,129,128,128, 0, 0,255,255,255,255, 1, 1, 7,127,255,255,248,192 }, + { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 3, 3, 3, 3 }, + }; + + static const char PROGMEM layer1[4][30+1] = { + { 128,224,240,240,248,248,248,248,248,248,248,120,120, 56, 56, 24, 24, 24,248,248,248,248,248,248,248,248,240,240,224,128 }, + { 255,255,255,255,255,255,255,255,255,255,255,252,252,252, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255 }, + { 255,255,255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255 }, + { 1, 7, 15, 15, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 28, 28, 28, 28, 31, 31, 31, 31, 31, 31, 31, 31, 15, 15, 7, 1 } + }; + + static const char PROGMEM layer2[4][30+1] = { + { 128,224,240,240,248,248,248,248,248,248,120, 56, 24, 24, 24, 24, 24, 24, 56,120,248,248,248,248,248,248,240,240,224,128 }, + { 255,255,255,255,255,255,255,255,255,255,248,248,248,254,255, 63, 6, 0,128,224,255,255,255,255,255,255,255,255,255,255 }, + { 255,255,255,255,255,255,255,255,255,255, 63, 15, 7, 1, 64,112,120,126,127,127,255,255,255,255,255,255,255,255,255,255 }, + { 1, 7, 15, 15, 31, 31, 31, 31, 31, 31, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 31, 31, 31, 31, 31, 31, 15, 15, 7, 1 } + }; + + static const char PROGMEM layer3[4][30+1] = { + { 128,224,240,240,248,248,248,248,248,248,120, 56, 24, 24, 24, 24, 24, 24, 56,120,248,248,248,248,248,248,240,240,224,128 }, + { 255,255,255,255,255,255,255,255,255,255,248,248,248, 62, 63, 63, 30, 0,128,192,255,255,255,255,255,255,255,255,255,255 }, + { 255,255,255,255,255,255,255,255,255,255, 31, 31, 31,126,254,254,124, 0, 0, 1,255,255,255,255,255,255,255,255,255,255 }, + { 1, 7, 15, 15, 31, 31, 31, 31, 31, 31, 30, 28, 24, 24, 24, 24, 24, 24, 28, 30, 31, 31, 31, 31, 31, 31, 15, 15, 7, 1 } + }; + + static const char PROGMEM layer4[4][30+1] = { + { 128,224,240,240,248,248,248,248,248,248,248,248,248,248,120, 24, 24, 24, 24,248,248,248,248,248,248,248,240,240,224,128 }, + { 255,255,255,255,255,255,255,255,255,255,255, 63, 7, 1,192,240, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255 }, + { 255,255,255,255,255,255,255,255,255,255,192,192,192,194,195,195, 0, 0, 0,195,195,255,255,255,255,255,255,255,255,255 }, + { 1, 7, 15, 15, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 28, 28, 28, 31, 31, 31, 31, 31, 31, 31, 15, 15, 7, 1 } + }; + + static const char PROGMEM layer5[4][30+1] = { + { 128,224,240,240,248,248,248,248,248,248, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,248,248,248,248,248,248,240,240,224,128 }, + { 255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0,143,143,143, 15, 15, 31,255,255,255,255,255,255,255,255,255,255 }, + { 255,255,255,255,255,255,255,255,255,255,142, 14, 14, 30,127,127,127, 0, 0, 0,224,255,255,255,255,255,255,255,255,255 }, + { 1, 7, 15, 15, 31, 31, 31, 31, 31, 31, 31, 30, 28, 28, 28, 28, 28, 28, 30, 31, 31, 31, 31, 31, 31, 31, 15, 15, 7, 1 } + }; + + static const char PROGMEM layer6[4][30+1] = { + { 128,224,240,240,248,248,248,248,248,248,248, 56, 24, 24, 24, 24, 24, 24, 24, 56,248,248,248,248,248,248,240,240,224,128 }, + { 255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0, 31, 31, 31, 24, 24, 56,255,255,255,255,255,255,255,255,255,255 }, + { 255,255,255,255,255,255,255,255,255,255,128, 0, 0, 0,127,127,127, 0, 0, 0,128,255,255,255,255,255,255,255,255,255 }, + { 1, 7, 15, 15, 31, 31, 31, 31, 31, 31, 31, 30, 28, 28, 28, 28, 28, 28, 28, 30, 31, 31, 31, 31, 31, 31, 15, 15, 7, 1 } + }; + + static const char PROGMEM layer7[4][30+1] = { + { 128,224,240,240,248,248,248,248,248,248, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,248,248,248,248,248,248,240,240,224,128 }, + { 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 31, 3, 0,128,248,255,255,255,255,255,255,255,255,255,255 }, + { 255,255,255,255,255,255,255,255,255,255,255,255,127, 15, 1, 0,192,252,255,255,255,255,255,255,255,255,255,255,255,255 }, + { 1, 7, 15, 15, 31, 31, 31, 31, 31, 31, 31, 31, 28, 28, 28, 28, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 15, 15, 7, 1 } + }; + + static const char PROGMEM layer8[4][30+1] = { + { 128,224,240,240,248,248,248,248,248,248,248, 56, 24, 24, 24, 24, 24, 24, 24, 56,248,248,248,248,248,248,240,240,224,128 }, + { 255,255,255,255,255,255,255,255,255,255,224,128, 0, 0, 31, 31, 31, 0, 0,128,224,255,255,255,255,255,255,255,255,255 }, + { 255,255,255,255,255,255,255,255,255,255,129, 0, 0, 0,126,126,126, 0, 0, 0,129,255,255,255,255,255,255,255,255,255 }, + { 1, 7, 15, 15, 31, 31, 31, 31, 31, 31, 31, 30, 28, 28, 28, 28, 28, 28, 28, 30, 31, 31, 31, 31, 31, 31, 15, 15, 7, 1 } + }; + + oled_set_cursor(1, 0); // start pos + oled_write_raw_P(layerImage[0], sizeof(layerImage[0])); + oled_set_cursor(1, 1); // move to next line + oled_write_raw_P(layerImage[1], sizeof(layerImage[1])); + oled_set_cursor(1, 2); // move to next line + oled_write_raw_P(layerImage[2], sizeof(layerImage[2])); + oled_set_cursor(1, 3); // move to next line + oled_write_raw_P(layerImage[3], sizeof(layerImage[3])); + + switch (get_highest_layer(layer_state)) { + case one : + oled_set_cursor(16, 0); // move 20 columns out + oled_write_raw_P(layer1[0], sizeof(layer1[0])); + oled_set_cursor(16, 1); // move 20 columns out + oled_write_raw_P(layer1[1], sizeof(layer1[1])); + oled_set_cursor(16, 2); // move 20 columns out + oled_write_raw_P(layer1[2], sizeof(layer1[2])); + oled_set_cursor(16, 3); // move 20 columns out + oled_write_raw_P(layer1[3], sizeof(layer1[3])); + break; + case two : + oled_set_cursor(16, 0); // move 20 columns out + oled_write_raw_P(layer2[0], sizeof(layer2[0])); + oled_set_cursor(16, 1); // move 20 columns out + oled_write_raw_P(layer2[1], sizeof(layer2[1])); + oled_set_cursor(16, 2); // move 20 columns out + oled_write_raw_P(layer2[2], sizeof(layer2[2])); + oled_set_cursor(16, 3); // move 20 columns out + oled_write_raw_P(layer2[3], sizeof(layer2[3])); + break; + case three : + oled_set_cursor(16, 0); // move 20 columns out + oled_write_raw_P(layer3[0], sizeof(layer3[0])); + oled_set_cursor(16, 1); // move 20 columns out + oled_write_raw_P(layer3[1], sizeof(layer3[1])); + oled_set_cursor(16, 2); // move 20 columns out + oled_write_raw_P(layer3[2], sizeof(layer3[2])); + oled_set_cursor(16, 3); // move 20 columns out + oled_write_raw_P(layer3[3], sizeof(layer3[3])); + break; + case four : + oled_set_cursor(16, 0); // move 20 columns out + oled_write_raw_P(layer4[0], sizeof(layer4[0])); + oled_set_cursor(16, 1); // move 20 columns out + oled_write_raw_P(layer4[1], sizeof(layer4[1])); + oled_set_cursor(16, 2); // move 20 columns out + oled_write_raw_P(layer4[2], sizeof(layer4[2])); + oled_set_cursor(16, 3); // move 20 columns out + oled_write_raw_P(layer4[3], sizeof(layer4[3])); + break; + case five : + oled_set_cursor(16, 0); // move 20 columns out + oled_write_raw_P(layer5[0], sizeof(layer5[0])); + oled_set_cursor(16, 1); // move 20 columns out + oled_write_raw_P(layer5[1], sizeof(layer5[1])); + oled_set_cursor(16, 2); // move 20 columns out + oled_write_raw_P(layer5[2], sizeof(layer5[2])); + oled_set_cursor(16, 3); // move 20 columns out + oled_write_raw_P(layer5[3], sizeof(layer5[3])); + break; + case six : + oled_set_cursor(16, 0); // move 20 columns out + oled_write_raw_P(layer6[0], sizeof(layer6[0])); + oled_set_cursor(16, 1); // move 20 columns out + oled_write_raw_P(layer6[1], sizeof(layer6[1])); + oled_set_cursor(16, 2); // move 20 columns out + oled_write_raw_P(layer6[2], sizeof(layer6[2])); + oled_set_cursor(16, 3); // move 20 columns out + oled_write_raw_P(layer6[3], sizeof(layer6[3])); + break; + case seven : + oled_set_cursor(16, 0); // move 20 columns out + oled_write_raw_P(layer7[0], sizeof(layer7[0])); + oled_set_cursor(16, 1); // move 20 columns out + oled_write_raw_P(layer7[1], sizeof(layer7[1])); + oled_set_cursor(16, 2); // move 20 columns out + oled_write_raw_P(layer7[2], sizeof(layer7[2])); + oled_set_cursor(16, 3); // move 20 columns out + oled_write_raw_P(layer7[3], sizeof(layer7[3])); + break; + case eight : + oled_set_cursor(16, 0); // move 20 columns out + oled_write_raw_P(layer8[0], sizeof(layer8[0])); + oled_set_cursor(16, 1); // move 20 columns out + oled_write_raw_P(layer8[1], sizeof(layer8[1])); + oled_set_cursor(16, 2); // move 20 columns out + oled_write_raw_P(layer8[2], sizeof(layer8[2])); + oled_set_cursor(16, 3); // move 20 columns out + oled_write_raw_P(layer8[3], sizeof(layer8[3])); + break; + } + } + return false; +} diff --git a/keyboards/macroflow_original/readme.md b/keyboards/macroflow_original/readme.md new file mode 100644 index 0000000000..a38fefa866 --- /dev/null +++ b/keyboards/macroflow_original/readme.md @@ -0,0 +1,27 @@ +# macroflow_original + +![Imgur](https://i.imgur.com/hIytJTl.png) + +*A 2x4 macropad with a built in encoder and OLED screen* + +* Keyboard Maintainer: [Patrickemm](https://github.com/Patrickemm) +* Hardware Supported: *Pro Micro compatible development board* +* Hardware Availability: *https://www.ebay.com/usr/handycache* + +Make example for this keyboard (after setting up your build environment): + + make macroflow_original:default + +Flashing example for this keyboard: + + make macroflow_original:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From a12ff287eed88d928430b63f4f7faff3b6fb5ebc Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 7 Dec 2024 09:05:40 +1100 Subject: [PATCH 27/77] Organise default community layouts summary (#24500) * Organise default community layouts summary * Remove erroneous layout --- layouts/default/readme.md | 565 ++++++++++++++++++++++++++++++-------- 1 file changed, 450 insertions(+), 115 deletions(-) diff --git a/layouts/default/readme.md b/layouts/default/readme.md index e535008822..3c6da941fb 100644 --- a/layouts/default/readme.md +++ b/layouts/default/readme.md @@ -2,10 +2,14 @@ ## Summary of Layouts -### 60% Form Factor +
+60% Form Factor + +### `LAYOUT_60_abnt2` + +60% ABNT2 layout ``` -LAYOUT_60_abnt2 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -19,8 +23,11 @@ LAYOUT_60_abnt2 └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ ``` +### `LAYOUT_60_ansi` + +60% ANSI layout + ``` -LAYOUT_60_ansi ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -34,8 +41,11 @@ LAYOUT_60_ansi └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ ``` +### `LAYOUT_60_ansi_arrow` + +60% ANSI layout with arrow cluster + ``` -LAYOUT_60_ansi_arrow ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -49,8 +59,11 @@ LAYOUT_60_ansi_arrow └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_60_ansi_arrow_split_bs` + +60% ANSI layout with arrow cluster and split backspace + ``` -LAYOUT_60_ansi_arrow_split_bs ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -64,8 +77,11 @@ LAYOUT_60_ansi_arrow_split_bs └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_60_ansi_split_bs_rshift` + +60% ANSI layout with split backspace and split right shift + ``` -LAYOUT_60_ansi_split_bs_rshift ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -79,8 +95,11 @@ LAYOUT_60_ansi_split_bs_rshift └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ ``` +### `LAYOUT_60_ansi_tsangan` + +60% ANSI layout with Tsangan bottom row + ``` -LAYOUT_60_ansi_tsangan ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -94,8 +113,11 @@ LAYOUT_60_ansi_tsangan └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ ``` +### `LAYOUT_60_ansi_tsangan_split_bs_rshift` + +60% ANSI layout with Tsangan bottom row, split backspace, and split right shift + ``` -LAYOUT_60_ansi_tsangan_split_bs_rshift ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -109,8 +131,11 @@ LAYOUT_60_ansi_tsangan_split_bs_rshift └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ ``` +### `LAYOUT_60_ansi_wkl` + +60% ANSI layout with no Windows (GUI) keys + ``` -LAYOUT_60_ansi_wkl ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -124,8 +149,11 @@ LAYOUT_60_ansi_wkl └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ ``` +### `LAYOUT_60_ansi_wkl_split_bs_rshift` + +60% ANSI layout with no Windows (GUI) keys, split backspace, and split right shift + ``` -LAYOUT_60_ansi_wkl_split_bs_rshift ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -139,8 +167,11 @@ LAYOUT_60_ansi_wkl_split_bs_rshift └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ ``` +### `LAYOUT_60_hhkb` + +60% ANSI layout with HHKB bottom row, split backspace, and split right shift + ``` -LAYOUT_60_hhkb ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -154,8 +185,11 @@ LAYOUT_60_hhkb └───┴─────┴───────────────────────────┴─────┴───┘ ``` +### `LAYOUT_60_iso` + +60% ISO layout + ``` -LAYOUT_60_iso ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -169,8 +203,11 @@ LAYOUT_60_iso └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ ``` +### `LAYOUT_60_iso_arrow` + +60% ISO layout with arrow cluster + ``` -LAYOUT_60_iso_arrow ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -184,8 +221,11 @@ LAYOUT_60_iso_arrow └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_60_iso_arrow_split_bs` + +60% ISO layout with arrow cluster and split backspace + ``` -LAYOUT_60_iso_arrow_split_bs ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -199,8 +239,11 @@ LAYOUT_60_iso_arrow_split_bs └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_60_iso_split_bs_rshift` + +60% ISO layout with split backspace and split right shift + ``` -LAYOUT_60_iso_split_bs_rshift ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -214,8 +257,11 @@ LAYOUT_60_iso_split_bs_rshift └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ ``` +### `LAYOUT_60_iso_tsangan` + +60% ISO layout with Tsangan bottom row + ``` -LAYOUT_60_iso_tsangan ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -229,8 +275,11 @@ LAYOUT_60_iso_tsangan └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ ``` +### `LAYOUT_60_iso_tsangan_split_bs_rshift` + +60% ISO layout with Tsangan bottom row, split backspace, and split right shift + ``` -LAYOUT_60_iso_tsangan_split_bs_rshift ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -244,8 +293,11 @@ LAYOUT_60_iso_tsangan_split_bs_rshift └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ ``` +### `LAYOUT_60_iso_wkl` + +60% ISO layout with no Windows (GUI) keys + ``` -LAYOUT_60_iso_wkl ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -259,8 +311,11 @@ LAYOUT_60_iso_wkl └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ ``` +### `LAYOUT_60_iso_wkl_split_bs_rshift` + +60% ISO layout with no Windows (GUI) keys, split backspace, and split right shift + ``` -LAYOUT_60_iso_wkl_split_bs_rshift ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -274,8 +329,11 @@ LAYOUT_60_iso_wkl_split_bs_rshift └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ ``` +### `LAYOUT_60_jis` + +60% JIS layout + ``` -LAYOUT_60_jis ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ @@ -289,8 +347,11 @@ LAYOUT_60_jis └────┴────┴────┴────┴──────────────┴────┴────┴────┴────┴────┘ ``` +### `LAYOUT_64_ansi` + +64% ANSI layout + ``` -LAYOUT_64_ansi ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -304,8 +365,11 @@ LAYOUT_64_ansi └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_64_iso` + +64% ISO layout + ``` -LAYOUT_64_iso ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ @@ -318,11 +382,16 @@ LAYOUT_64_iso │ │ │ │ │ │ │ │ │ │ └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ ``` +
+ +
+65%+ Form Factor + +### `LAYOUT_65_ansi` -### 65%+ Form Factor +65% ANSI layout ``` -LAYOUT_65_ansi ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ @@ -336,8 +405,11 @@ LAYOUT_65_ansi └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_65_ansi_blocker` + +65% ANSI layout with blocker + ``` -LAYOUT_65_ansi_blocker ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ @@ -351,8 +423,11 @@ LAYOUT_65_ansi_blocker └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_65_ansi_blocker_split_bs` + +65% ANSI layout with blocker and split backspace + ``` -LAYOUT_65_ansi_blocker_split_bs ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ @@ -366,8 +441,11 @@ LAYOUT_65_ansi_blocker_split_bs └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_65_ansi_blocker_tsangan` + +65% ANSI layout with blocker and Tsangan bottom row + ``` -LAYOUT_65_ansi_blocker_tsangan ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ @@ -381,8 +459,11 @@ LAYOUT_65_ansi_blocker_tsangan └─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ ``` +### `LAYOUT_65_ansi_blocker_tsangan_split_bs` + +65% ANSI layout with blocker, Tsangan bottom row, and split backspace + ``` -LAYOUT_65_ansi_blocker_tsangan_split_bs ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ @@ -396,8 +477,11 @@ LAYOUT_65_ansi_blocker_tsangan_split_bs └─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ ``` +### `LAYOUT_65_ansi_split_bs` + +65% ANSI layout with split backspace + ``` -LAYOUT_65_ansi_split_bs ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ @@ -411,8 +495,11 @@ LAYOUT_65_ansi_split_bs └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_65_iso` + +65% ISO layout + ``` -LAYOUT_65_iso ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ @@ -426,8 +513,11 @@ LAYOUT_65_iso └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_65_iso_blocker` + +65% ISO layout with blocker + ``` -LAYOUT_65_iso_blocker ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ @@ -441,8 +531,11 @@ LAYOUT_65_iso_blocker └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_65_iso_blocker_split_bs` + +65% ISO layout with blocker and split backspace + ``` -LAYOUT_65_iso_blocker_split_bs ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ @@ -456,8 +549,11 @@ LAYOUT_65_iso_blocker_split_bs └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_65_iso_blocker_tsangan` + +65% ISO layout with blocker and Tsangan bottom row + ``` -LAYOUT_65_iso_blocker_tsangan ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ @@ -471,8 +567,11 @@ LAYOUT_65_iso_blocker_tsangan └─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ ``` +### `LAYOUT_65_iso_blocker_tsangan_split_bs` + +65% ISO layout with blocker, Tsangan bottom row, and split backspace + ``` -LAYOUT_65_iso_blocker_tsangan_split_bs ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ @@ -486,8 +585,11 @@ LAYOUT_65_iso_blocker_tsangan_split_bs └─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ ``` +### `LAYOUT_65_iso_split_bs` + +65% ISO layout with split backspace + ``` -LAYOUT_65_iso_split_bs ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ @@ -501,8 +603,11 @@ LAYOUT_65_iso_split_bs └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_66_ansi` + +66% ANSI layout + ``` -LAYOUT_66_ansi ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┤ @@ -516,8 +621,11 @@ LAYOUT_66_ansi └────┴───┴────┴────────────────────────┴────┴────┴────┴───┴───┴───┘ ``` +### `LAYOUT_66_iso` + +66% ISO layout + ``` -LAYOUT_66_iso ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┤ @@ -531,8 +639,11 @@ LAYOUT_66_iso └────┴───┴────┴────────────────────────┴────┴────┴────┴───┴───┴───┘ ``` +### `LAYOUT_68_ansi` + +68% ANSI layout + ``` -LAYOUT_68_ansi ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┤ @@ -546,8 +657,11 @@ LAYOUT_68_ansi └────┴────┴────┴────────────────────────┴────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_68_iso` + +68% ISO layout + ``` -LAYOUT_68_iso ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┤ @@ -560,11 +674,16 @@ LAYOUT_68_iso │ │ │ │ │ │ │ │ │ │ │ │ └────┴────┴────┴────────────────────────┴────┴────┴────┘ └───┴───┴───┘ ``` +
-### 75% Form Factor +
+75% Form Factor + +### `LAYOUT_75_ansi` + +75% ANSI layout ``` -LAYOUT_75_ansi ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┤ @@ -580,8 +699,11 @@ LAYOUT_75_ansi └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_75_iso` + +75% ISO layout + ``` -LAYOUT_75_iso ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┤ @@ -596,11 +718,16 @@ LAYOUT_75_iso │ │ │ │ │ │ │ │ │ │ │ └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘ ``` +
+ +
+Tenkeyless (TKL) Form Factor + +### `LAYOUT_tkl_ansi` -### Tenkeyless Layouts +TKL ANSI layout ``` -LAYOUT_tkl_ansi ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -617,8 +744,11 @@ LAYOUT_tkl_ansi └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_ansi_split_bs_rshift` + +TKL ANSI layout with split backspace and split right shift + ``` -LAYOUT_tkl_ansi_split_bs_rshift ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -635,8 +765,11 @@ LAYOUT_tkl_ansi_split_bs_rshift └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_ansi_tsangan` + +TKL ANSI layout with Tsangan bottom row + ``` -LAYOUT_tkl_ansi_tsangan ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -653,8 +786,11 @@ LAYOUT_tkl_ansi_tsangan └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_ansi_tsangan_split_bs_rshift` + +TKL ANSI layout with Tsangan bottom row, split backspace, and split right shift + ``` -LAYOUT_tkl_ansi_tsangan_split_bs_rshift ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -671,8 +807,11 @@ LAYOUT_tkl_ansi_tsangan_split_bs_rshift └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_ansi_wkl` + +TKL ANSI layout with no Windows (GUI) keys + ``` -LAYOUT_tkl_ansi_wkl ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -689,8 +828,11 @@ LAYOUT_tkl_ansi_wkl └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_ansi_wkl_split_bs_rshift` + +TKL ANSI layout with no Windows (GUI) keys, split backspace, and split right shift + ``` -LAYOUT_tkl_ansi_wkl_split_bs_rshift ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -707,8 +849,11 @@ LAYOUT_tkl_ansi_wkl_split_bs_rshift └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_iso` + +TKL ISO layout + ``` -LAYOUT_tkl_iso ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -725,8 +870,11 @@ LAYOUT_tkl_iso └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_iso_split_bs_rshift` + +TKL ISO layout with split backspace and split right shift + ``` -LAYOUT_tkl_iso_split_bs_rshift ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -743,8 +891,11 @@ LAYOUT_tkl_iso_split_bs_rshift └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_iso_tsangan` + +TKL ISO layout with Tsangan bottom row + ``` -LAYOUT_tkl_iso_tsangan ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -761,8 +912,11 @@ LAYOUT_tkl_iso_tsangan └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_iso_tsangan_split_bs_rshift` + +TKL ISO layout with Tsangan bottom row, split backspace, and split right shift + ``` -LAYOUT_tkl_iso_tsangan_split_bs_rshift ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -779,8 +933,11 @@ LAYOUT_tkl_iso_tsangan_split_bs_rshift └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_iso_wkl` + +TKL ISO layout with no Windows (GUI) keys + ``` -LAYOUT_tkl_iso_wkl ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -797,8 +954,11 @@ LAYOUT_tkl_iso_wkl └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_iso_wkl_split_bs_rshift` + +TKL ISO layout with no Windows (GUI) keys, split backspace, and split right shift + ``` -LAYOUT_tkl_iso_wkl_split_bs_rshift ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -815,8 +975,11 @@ LAYOUT_tkl_iso_wkl_split_bs_rshift └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_jis` + +TKL JIS layout + ``` -LAYOUT_tkl_jis ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -833,8 +996,11 @@ LAYOUT_tkl_jis └────┴────┴────┴────┴──────────────┴────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_f13_ansi` + +TKL ANSI layout with F13 key + ``` -LAYOUT_tkl_f13_ansi ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -851,8 +1017,11 @@ LAYOUT_tkl_f13_ansi └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_f13_ansi_split_bs_rshift` + +TKL ANSI layout with F13 key, split backspace, and split right shift + ``` -LAYOUT_tkl_f13_ansi_split_bs_rshift ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -869,8 +1038,11 @@ LAYOUT_tkl_f13_ansi_split_bs_rshift └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_f13_ansi_tsangan` + +TKL ANSI layout with F13 key and Tsangan bottom row + ``` -LAYOUT_tkl_f13_ansi_tsangan ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -887,8 +1059,11 @@ LAYOUT_tkl_f13_ansi_tsangan └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift` + +TKL ANSI layout with F13 key, Tsangan bottom row, split backspace, and split right shift + ``` -LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -905,8 +1080,11 @@ LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_f13_ansi_wkl` + +TKL ANSI layout with F13 key and no Windows (GUI) keys + ``` -LAYOUT_tkl_f13_ansi_wkl ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -923,8 +1101,11 @@ LAYOUT_tkl_f13_ansi_wkl └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_f13_ansi_wkl_split_bs_rshift` + +TKL ANSI layout with F13 key, no Windows (GUI) keys, split backspace, and split right shift + ``` -LAYOUT_tkl_f13_ansi_wkl_split_bs_rshift ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -941,8 +1122,11 @@ LAYOUT_tkl_f13_ansi_wkl_split_bs_rshift └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_f13_iso` + +TKL ISO layout with F13 key + ``` -LAYOUT_tkl_f13_iso ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -959,8 +1143,11 @@ LAYOUT_tkl_f13_iso └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_f13_iso_split_bs_rshift` + +TKL ISO layout with F13 key, split backspace, and split right shift + ``` -LAYOUT_tkl_f13_iso_split_bs_rshift ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -977,8 +1164,11 @@ LAYOUT_tkl_f13_iso_split_bs_rshift └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_f13_iso_tsangan` + +TKL ISO layout with F13 key and Tsangan bottom row + ``` -LAYOUT_tkl_f13_iso_tsangan ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -995,8 +1185,11 @@ LAYOUT_tkl_f13_iso_tsangan └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift` + +TKL ISO layout with F13 key, Tsangan bottom row, split backspace, and split right shift + ``` -LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -1013,8 +1206,11 @@ LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_f13_iso_wkl` + +TKL ISO layout with F13 key and no Windows (GUI) keys + ``` -LAYOUT_tkl_f13_iso_wkl ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -1031,8 +1227,11 @@ LAYOUT_tkl_f13_iso_wkl └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_f13_iso_wkl_split_bs_rshift` + +TKL ISO layout with F13 key, no Windows (GUI) keys, split backspace, and split right shift + ``` -LAYOUT_tkl_f13_iso_wkl_split_bs_rshift ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -1049,8 +1248,11 @@ LAYOUT_tkl_f13_iso_wkl_split_bs_rshift └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_f13_jis` + +TKL JIS layout with F13 key + ``` -LAYOUT_tkl_f13_jis ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ ││ │ │ │ │ │ └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ @@ -1067,8 +1269,11 @@ LAYOUT_tkl_f13_jis └────┴────┴────┴────┴──────────────┴────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_nofrow_ansi` + +TKL ANSI layout with no function row + ``` -LAYOUT_tkl_nofrow_ansi ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ @@ -1082,8 +1287,11 @@ LAYOUT_tkl_nofrow_ansi └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` +### `LAYOUT_tkl_nofrow_iso` + +TKL ISO layout with no function row + ``` -LAYOUT_tkl_nofrow_iso ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ @@ -1096,11 +1304,16 @@ LAYOUT_tkl_nofrow_iso │ │ │ │ │ │ │ │ │ │ │ │ │ └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ ``` +
+ +
+96% Form Factor -### 96% Form Factor +### `LAYOUT_96_ansi` + +96% ANSI layout ``` -LAYOUT_96_ansi ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┼───┼───┼───┤ @@ -1116,8 +1329,11 @@ LAYOUT_96_ansi └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_96_iso` + +96% ISO layout + ``` -LAYOUT_96_iso ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┼───┼───┼───┤ @@ -1132,12 +1348,16 @@ LAYOUT_96_iso │ │ │ │ │ │ │ │ │ │ │ │ │ │ └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` +
+ +
+Fullsize (100%+) Form Factor +### `LAYOUT_fullsize_ansi` -### Fullsize Form Factor +Fullsize ANSI layout ``` -LAYOUT_fullsize_ansi ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -1154,8 +1374,11 @@ LAYOUT_fullsize_ansi └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ ``` +### `LAYOUT_fullsize_iso` + +Fullsize ISO layout + ``` -LAYOUT_fullsize_iso ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -1172,8 +1395,11 @@ LAYOUT_fullsize_iso └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ ``` +### `LAYOUT_fullsize_jis` + +Fullsize JIS layout + ``` -LAYOUT_fullsize_jis ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ @@ -1190,8 +1416,11 @@ LAYOUT_fullsize_jis └────┴────┴────┴────┴────────────┴────┴────┴───┴───┴───┴────┘ └───┴───┴───┘ └───────┴───┴───┘ ``` +### `LAYOUT_fullsize_extended_ansi` + +Fullsize ANSI layout with additional keys above numpad + ``` -LAYOUT_fullsize_extended_ansi ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┴───┘ @@ -1208,8 +1437,11 @@ LAYOUT_fullsize_extended_ansi └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ ``` +### `LAYOUT_fullsize_extended_iso` + +Fullsize ISO layout with additional keys above numpad + ``` -LAYOUT_fullsize_extended_iso ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┴───┘ @@ -1226,8 +1458,11 @@ LAYOUT_fullsize_extended_iso └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘ ``` +### `LAYOUT_fullsize_extended_jis` + +Fullsize JIS layout with additional keys above numpad + ``` -LAYOUT_fullsize_extended_jis ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┴───┘ @@ -1243,11 +1478,16 @@ LAYOUT_fullsize_extended_jis │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └────┴────┴────┴────┴────────────┴────┴────┴───┴───┴───┴────┘ └───┴───┴───┘ └───────┴───┴───┘ ``` +
+ +
+Split Layouts -### Split Layouts +### `LAYOUT_alice` + +Alice-style split layout ``` -LAYOUT_alice ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ┌┴──┬┘ ┌┴───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┘ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┴┐ @@ -1261,8 +1501,11 @@ LAYOUT_alice └─────┘ └─────┴───────┴─────┘ └──────────┴─────┘ └─────┘ ``` +### `LAYOUT_alice_split_bs` + +Alice-style split layout with split backspace + ``` -LAYOUT_alice_split_bs ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ┌┴──┬┘ ┌┴───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┘ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┐ @@ -1276,8 +1519,11 @@ LAYOUT_alice_split_bs └─────┘ └─────┴───────┴─────┘ └──────────┴─────┘ └─────┘ ``` +### `LAYOUT_ergodox` + +Ergodox-style split layout + ``` -LAYOUT_ergodox ┌─────┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬─────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─────┼───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┼─────┤ @@ -1296,8 +1542,11 @@ LAYOUT_ergodox └───┴───┴───┘ └───┴───┴───┘ ``` +### `LAYOUT_split_3x5_2` + +3x5 split layout with two thumb keys + ``` -LAYOUT_split_3x5_2 ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ @@ -1310,8 +1559,11 @@ LAYOUT_split_3x5_2 └───┴───┘ └───┴───┘ ``` +### `LAYOUT_split_3x5_3` + +3x5 split layout with three thumb keys + ``` -LAYOUT_split_3x5_3 ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤ @@ -1324,8 +1576,11 @@ LAYOUT_split_3x5_3 └───┴───┴───┘ └───┴───┴───┘ ``` +### `LAYOUT_split_3x6_3` + +3x6 split layout with three thumb keys + ``` -LAYOUT_split_3x6_3 ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ @@ -1337,11 +1592,16 @@ LAYOUT_split_3x6_3 │ │ │ │ │ │ │ │ └───┴───┴───┘ └───┴───┴───┘ ``` +
+ +
+Number Pads + +### `LAYOUT_numpad_4x4` -### Numpads +4x4 number pad ``` -LAYOUT_numpad_4x4 ┌───┬───┬───┬───┐ │ │ │ │ │ ├───┼───┼───┤ │ @@ -1353,8 +1613,11 @@ LAYOUT_numpad_4x4 └───────┴───┴───┘ ``` +### `LAYOUT_numpad_5x4` + +5x4 number pad + ``` -LAYOUT_numpad_5x4 ┌───┬───┬───┬───┐ │ │ │ │ │ ├───┼───┼───┼───┤ @@ -1368,8 +1631,11 @@ LAYOUT_numpad_5x4 └───────┴───┴───┘ ``` +### `LAYOUT_numpad_5x6` + +5x6 number pad + ``` -LAYOUT_numpad_5x6 ┌───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┤ @@ -1383,8 +1649,11 @@ LAYOUT_numpad_5x6 └───┴───┴───────┴───┴───┘ ``` +### `LAYOUT_numpad_6x4` + +6x4 number pad + ``` -LAYOUT_numpad_6x4 ┌───┬───┬───┬───┐ │ │ │ │ │ ├───┼───┼───┼───┤ @@ -1400,8 +1669,11 @@ LAYOUT_numpad_6x4 └───────┴───┴───┘ ``` +### `LAYOUT_numpad_6x5` + +6x5 number pad + ``` -LAYOUT_numpad_6x5 ┌───┬───┬───┬───┬───┐ │ │ │ │ │ │ ├───┼───┼───┼───┼───┤ @@ -1416,18 +1688,26 @@ LAYOUT_numpad_6x5 │ │ │ │ │ └───┴───────┴───┴───┘ ``` +
+ +
+Ortholinear Layouts -### Ortholinear Layouts +### `LAYOUT_ortho_1x1` + +1x1 ortholinear layout ``` -LAYOUT_ortho_1x1 ┌───┐ │ │ └───┘ ``` +### `LAYOUT_ortho_2x3` + +2x3 ortholinear layout + ``` -LAYOUT_ortho_2x3 ┌───┬───┬───┐ │ │ │ │ ├───┼───┼───┤ @@ -1435,8 +1715,11 @@ LAYOUT_ortho_2x3 └───┴───┴───┘ ``` +### `LAYOUT_ortho_2x6` + +2x6 ortholinear layout + ``` -LAYOUT_ortho_2x6 ┌───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┤ @@ -1444,8 +1727,11 @@ LAYOUT_ortho_2x6 └───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_ortho_3x3` + +3x3 ortholinear layout + ``` -LAYOUT_ortho_3x3 ┌───┬───┬───┐ │ │ │ │ ├───┼───┼───┤ @@ -1455,8 +1741,11 @@ LAYOUT_ortho_3x3 └───┴───┴───┘ ``` +### `LAYOUT_ortho_3x10` + +3x10 ortholinear layout + ``` -LAYOUT_ortho_3x10 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -1466,8 +1755,11 @@ LAYOUT_ortho_3x10 └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_ortho_4x10` + +4x10 ortholinear layout + ``` -LAYOUT_ortho_4x10 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -1479,8 +1771,11 @@ LAYOUT_ortho_4x10 └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_ortho_4x12` + +4x12 ortholinear layout + ``` -LAYOUT_ortho_4x12 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -1492,8 +1787,11 @@ LAYOUT_ortho_4x12 └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_ortho_4x16` + +4x16 ortholinear layout + ``` -LAYOUT_ortho_4x16 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -1505,8 +1803,11 @@ LAYOUT_ortho_4x16 └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_ortho_4x4` + +4x4 ortholinear layout + ``` -LAYOUT_ortho_4x4 ┌───┬───┬───┬───┐ │ │ │ │ │ ├───┼───┼───┼───┤ @@ -1518,8 +1819,11 @@ LAYOUT_ortho_4x4 └───┴───┴───┴───┘ ``` +### `LAYOUT_ortho_4x6` + +4x6 ortholinear layout + ``` -LAYOUT_ortho_4x6 ┌───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┤ @@ -1531,8 +1835,11 @@ LAYOUT_ortho_4x6 └───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_ortho_5x5` + +5x5 ortholinear layout + ``` -LAYOUT_ortho_5x5 ┌───┬───┬───┬───┬───┐ │ │ │ │ │ │ ├───┼───┼───┼───┼───┤ @@ -1546,8 +1853,11 @@ LAYOUT_ortho_5x5 └───┴───┴───┴───┴───┘ ``` +### `LAYOUT_ortho_5x10` + +5x10 ortholinear layout + ``` -LAYOUT_ortho_5x10 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -1561,8 +1871,11 @@ LAYOUT_ortho_5x10 └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_ortho_5x12` + +5x12 ortholinear layout + ``` -LAYOUT_ortho_5x12 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -1576,8 +1889,11 @@ LAYOUT_ortho_5x12 └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_ortho_5x13` + +5x13 ortholinear layout + ``` -LAYOUT_ortho_5x13 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -1591,8 +1907,11 @@ LAYOUT_ortho_5x13 └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_ortho_5x14` + +5x14 ortholinear layout + ``` -LAYOUT_ortho_5x14 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -1606,8 +1925,11 @@ LAYOUT_ortho_5x14 └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_ortho_5x15` + +5x15 ortholinear layout + ``` -LAYOUT_ortho_5x15 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -1621,8 +1943,11 @@ LAYOUT_ortho_5x15 └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_ortho_5x4` + +5x4 ortholinear layout + ``` -LAYOUT_ortho_5x4 ┌───┬───┬───┬───┐ │ │ │ │ │ ├───┼───┼───┼───┤ @@ -1636,8 +1961,11 @@ LAYOUT_ortho_5x4 └───┴───┴───┴───┘ ``` +### `LAYOUT_ortho_6x4` + +6x4 ortholinear layout + ``` -LAYOUT_ortho_6x4 ┌───┬───┬───┬───┐ │ │ │ │ │ ├───┼───┼───┼───┤ @@ -1653,8 +1981,11 @@ LAYOUT_ortho_6x4 └───┴───┴───┴───┘ ``` +### `LAYOUT_ortho_6x13` + +6x13 ortholinear layout + ``` -LAYOUT_ortho_6x13 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -1670,8 +2001,11 @@ LAYOUT_ortho_6x13 └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ ``` +### `LAYOUT_planck_mit` + +4x12 ortholinear layout with center 2u space + ``` -LAYOUT_planck_mit ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ │ │ │ │ │ │ │ │ │ │ │ │ │ ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ @@ -1682,3 +2016,4 @@ LAYOUT_planck_mit │ │ │ │ │ │ │ │ │ │ │ │ └───┴───┴───┴───┴───┴───────┴───┴───┴───┴───┴───┘ ``` +
From 782f91a73a0f6d4128f9454509b4a207af269f8b Mon Sep 17 00:00:00 2001 From: era <73109780+eerraa@users.noreply.github.com> Date: Sun, 8 Dec 2024 15:06:03 +0900 Subject: [PATCH 28/77] [Keyboard] Add SIRIND Tomak79S (#24684) * Add Tomak79S Add Tomak79S * Update keyboards/era/sirind/tomak79s/keymaps/default/keymap.c Co-authored-by: jack <0x6a73@protonmail.com> --------- Co-authored-by: jack --- keyboards/era/sirind/tomak79s/config.h | 15 + keyboards/era/sirind/tomak79s/keyboard.json | 675 ++++++++++++++++++ .../sirind/tomak79s/keymaps/default/keymap.c | 24 + keyboards/era/sirind/tomak79s/readme.md | 27 + keyboards/era/sirind/tomak79s/tomak79s.c | 16 + 5 files changed, 757 insertions(+) create mode 100644 keyboards/era/sirind/tomak79s/config.h create mode 100644 keyboards/era/sirind/tomak79s/keyboard.json create mode 100644 keyboards/era/sirind/tomak79s/keymaps/default/keymap.c create mode 100644 keyboards/era/sirind/tomak79s/readme.md create mode 100644 keyboards/era/sirind/tomak79s/tomak79s.c diff --git a/keyboards/era/sirind/tomak79s/config.h b/keyboards/era/sirind/tomak79s/config.h new file mode 100644 index 0000000000..f04429bcd8 --- /dev/null +++ b/keyboards/era/sirind/tomak79s/config.h @@ -0,0 +1,15 @@ +// Copyright 2024 Hyojin Bak (@eerraa) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* Split configuration */ +#define USB_VBUS_PIN GP19 +#define SERIAL_USART_FULL_DUPLEX +#define SERIAL_USART_TX_PIN GP0 +#define SERIAL_USART_RX_PIN GP1 +#define SERIAL_USART_PIN_SWAP + +/* Reset */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U \ No newline at end of file diff --git a/keyboards/era/sirind/tomak79s/keyboard.json b/keyboards/era/sirind/tomak79s/keyboard.json new file mode 100644 index 0000000000..9011a359ad --- /dev/null +++ b/keyboards/era/sirind/tomak79s/keyboard.json @@ -0,0 +1,675 @@ +{ + "manufacturer": "SIRIND", + "keyboard_name": "Tomak79S", + "maintainer": "eerraa", + "bootloader": "rp2040", + "build": { + "debounce_type": "sym_defer_pk" + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP29", "GP22", "GP5", "GP6", "GP7", "GP4", "GP3", "GP2", null], + "rows": ["GP28", "GP23", "GP24", "GP25", "GP26", "GP27"] + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "flower_blooming": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "multisplash": true, + "pixel_flow": true, + "pixel_fractal": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "riverflow": true, + "solid_multisplash": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_splash": true, + "splash": true, + "starlight": true, + "starlight_dual_hue": true, + "starlight_dual_sat": true, + "typing_heatmap": true + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 20, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 33, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 47, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 93, "y": 0, "flags": 4}, + {"matrix": [1, 7], "x": 95, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 81, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 68, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 54, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 41, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 27, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 14, "y": 15, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 20, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 34, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 47, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 61, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 75, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 88, "y": 26, "flags": 4}, + {"matrix": [3, 6], "x": 92, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 78, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 51, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 37, "y": 38, "flags": 4}, + {"matrix": [3, 1], "x": 24, "y": 38, "flags": 4}, + {"matrix": [3, 0], "x": 5, "y": 38, "flags": 1}, + {"matrix": [3, 0], "x": 2, "y": 38, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 49, "flags": 1}, + {"matrix": [4, 0], "x": 8, "y": 49, "flags": 1}, + {"matrix": [4, 1], "x": 17, "y": 49, "flags": 4}, + {"matrix": [4, 2], "x": 31, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 44, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 58, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 71, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 85, "y": 49, "flags": 4}, + {"matrix": [5, 6], "x": 93, "y": 64, "flags": 1}, + {"matrix": [5, 5], "x": 71, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 37, "y": 61, "flags": 1}, + {"matrix": [5, 1], "x": 20, "y": 61, "flags": 1}, + {"matrix": [5, 0], "x": 3, "y": 61, "flags": 1}, + {"matrix": [6, 8], "x": 221, "y": 0, "flags": 4}, + {"matrix": [6, 7], "x": 205, "y": 0, "flags": 4}, + {"matrix": [6, 5], "x": 185, "y": 0, "flags": 4}, + {"matrix": [6, 4], "x": 171, "y": 0, "flags": 4}, + {"matrix": [6, 3], "x": 158, "y": 0, "flags": 4}, + {"matrix": [6, 2], "x": 144, "y": 0, "flags": 4}, + {"matrix": [6, 1], "x": 124, "y": 0, "flags": 4}, + {"matrix": [6, 0], "x": 111, "y": 0, "flags": 4}, + {"matrix": [7, 0], "x": 109, "y": 15, "flags": 4}, + {"matrix": [7, 1], "x": 123, "y": 15, "flags": 4}, + {"matrix": [7, 2], "x": 136, "y": 15, "flags": 4}, + {"matrix": [7, 3], "x": 150, "y": 15, "flags": 4}, + {"matrix": [7, 4], "x": 163, "y": 15, "flags": 4}, + {"matrix": [7, 5], "x": 177, "y": 15, "flags": 4}, + {"matrix": [7, 6], "x": 191, "y": 15, "flags": 1}, + {"matrix": [7, 7], "x": 197, "y": 15, "flags": 1}, + {"matrix": [7, 7], "x": 204, "y": 15, "flags": 1}, + {"matrix": [7, 8], "x": 221, "y": 15, "flags": 1}, + {"matrix": [8, 8], "x": 221, "y": 26, "flags": 4}, + {"matrix": [8, 7], "x": 200, "y": 26, "flags": 4}, + {"matrix": [8, 6], "x": 184, "y": 26, "flags": 4}, + {"matrix": [8, 5], "x": 170, "y": 26, "flags": 4}, + {"matrix": [8, 4], "x": 157, "y": 26, "flags": 4}, + {"matrix": [8, 3], "x": 143, "y": 26, "flags": 4}, + {"matrix": [8, 2], "x": 130, "y": 26, "flags": 4}, + {"matrix": [8, 1], "x": 116, "y": 26, "flags": 4}, + {"matrix": [8, 0], "x": 102, "y": 26, "flags": 4}, + {"matrix": [9, 0], "x": 106, "y": 38, "flags": 4}, + {"matrix": [9, 1], "x": 119, "y": 38, "flags": 4}, + {"matrix": [9, 2], "x": 133, "y": 38, "flags": 4}, + {"matrix": [9, 3], "x": 147, "y": 38, "flags": 4}, + {"matrix": [9, 4], "x": 160, "y": 38, "flags": 4}, + {"matrix": [9, 5], "x": 174, "y": 38, "flags": 4}, + {"matrix": [9, 6], "x": 187, "y": 38, "flags": 4}, + {"matrix": [9, 7], "x": 200, "y": 38, "flags": 1}, + {"matrix": [9, 7], "x": 202, "y": 34, "flags": 1}, + {"matrix": [10, 7], "x": 208, "y": 52, "flags": 4}, + {"matrix": [10, 6], "x": 186, "y": 49, "flags": 1}, + {"matrix": [10, 5], "x": 167, "y": 49, "flags": 4}, + {"matrix": [10, 4], "x": 153, "y": 49, "flags": 4}, + {"matrix": [10, 3], "x": 140, "y": 49, "flags": 4}, + {"matrix": [10, 2], "x": 126, "y": 49, "flags": 4}, + {"matrix": [10, 1], "x": 113, "y": 49, "flags": 4}, + {"matrix": [10, 0], "x": 99, "y": 49, "flags": 4}, + {"matrix": [11, 2], "x": 123, "y": 64, "flags": 4}, + {"matrix": [11, 4], "x": 160, "y": 61, "flags": 1}, + {"matrix": [11, 5], "x": 177, "y": 61, "flags": 1}, + {"matrix": [11, 6], "x": 194, "y": 64, "flags": 4}, + {"matrix": [11, 7], "x": 208, "y": 64, "flags": 4}, + {"matrix": [11, 8], "x": 221, "y": 64, "flags": 4}, + {"x": 224, "y": 53, "flags": 2}, + {"x": 224, "y": 51, "flags": 2}, + {"x": 224, "y": 49, "flags": 2}, + {"x": 224, "y": 48, "flags": 2}, + {"x": 224, "y": 46, "flags": 2}, + {"x": 224, "y": 44, "flags": 2}, + {"x": 224, "y": 43, "flags": 2}, + {"x": 224, "y": 41, "flags": 2}, + {"x": 224, "y": 39, "flags": 2} + ], + "sleep": true, + "split_count": [43, 59] + }, + "split": { + "bootmagic": { + "matrix": [6, 0] + }, + "enabled": true, + "handedness": { + "pin": "GP20" + }, + "matrix_pins": { + "right": { + "cols": ["GP25", "GP24", "GP23", "GP22", "GP7", "GP6", "GP5", "GP4", "GP2"], + "rows": ["GP29", "GP28", "GP27", "GP26", "GP11", "GP3"] + } + }, + "serial": { + "driver": "vendor" + }, + "transport": { + "sync": { + "indicators": true, + "layer_state": true, + "matrix_state": true + } + } + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0013", + "vid": "0x4552" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP17" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 1.5, "y": 0}, + {"matrix": [0, 3], "x": 2.5, "y": 0}, + {"matrix": [0, 4], "x": 3.5, "y": 0}, + {"matrix": [0, 5], "x": 4.5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [6, 0], "x": 9.5, "y": 0}, + {"matrix": [6, 1], "x": 10.5, "y": 0}, + {"matrix": [6, 2], "x": 12, "y": 0}, + {"matrix": [6, 3], "x": 13, "y": 0}, + {"matrix": [6, 4], "x": 14, "y": 0}, + {"matrix": [6, 5], "x": 15, "y": 0}, + {"matrix": [6, 7], "x": 16.5, "y": 0}, + {"matrix": [6, 8], "x": 17.75, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [7, 0], "x": 9.5, "y": 1.25}, + {"matrix": [7, 1], "x": 10.5, "y": 1.25}, + {"matrix": [7, 2], "x": 11.5, "y": 1.25}, + {"matrix": [7, 3], "x": 12.5, "y": 1.25}, + {"matrix": [7, 4], "x": 13.5, "y": 1.25}, + {"matrix": [7, 5], "x": 14.5, "y": 1.25}, + {"matrix": [7, 6], "x": 15.5, "y": 1.25}, + {"matrix": [7, 7], "x": 16.5, "y": 1.25}, + {"matrix": [7, 8], "x": 17.75, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [8, 0], "x": 9, "y": 2.25}, + {"matrix": [8, 1], "x": 10, "y": 2.25}, + {"matrix": [8, 2], "x": 11, "y": 2.25}, + {"matrix": [8, 3], "x": 12, "y": 2.25}, + {"matrix": [8, 4], "x": 13, "y": 2.25}, + {"matrix": [8, 5], "x": 14, "y": 2.25}, + {"matrix": [8, 6], "x": 15, "y": 2.25}, + {"matrix": [8, 7], "x": 16, "y": 2.25, "w": 1.5}, + {"matrix": [8, 8], "x": 17.75, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [9, 0], "x": 9.25, "y": 3.25}, + {"matrix": [9, 1], "x": 10.25, "y": 3.25}, + {"matrix": [9, 2], "x": 11.25, "y": 3.25}, + {"matrix": [9, 3], "x": 12.25, "y": 3.25}, + {"matrix": [9, 4], "x": 13.25, "y": 3.25}, + {"matrix": [9, 5], "x": 14.25, "y": 3.25}, + {"matrix": [9, 6], "x": 15.25, "y": 3.25}, + {"matrix": [9, 7], "x": 16.25, "y": 3.25, "w": 1.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [10, 0], "x": 8.75, "y": 4.25}, + {"matrix": [10, 1], "x": 9.75, "y": 4.25}, + {"matrix": [10, 2], "x": 10.75, "y": 4.25}, + {"matrix": [10, 3], "x": 11.75, "y": 4.25}, + {"matrix": [10, 4], "x": 12.75, "y": 4.25}, + {"matrix": [10, 5], "x": 13.75, "y": 4.25}, + {"matrix": [10, 6], "x": 14.75, "y": 4.25, "w": 1.75}, + {"matrix": [10, 7], "x": 16.75, "y": 4.5}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 5], "x": 4.75, "y": 5.5, "w": 2.25}, + {"matrix": [5, 6], "x": 7, "y": 5.5}, + {"matrix": [11, 2], "x": 9.5, "y": 5.5, "w": 2.75}, + {"matrix": [11, 4], "x": 13, "y": 5.25, "w": 1.5}, + {"matrix": [11, 5], "x": 14.5, "y": 5.25}, + {"matrix": [11, 6], "x": 15.75, "y": 5.5}, + {"matrix": [11, 7], "x": 16.75, "y": 5.5}, + {"matrix": [11, 8], "x": 17.75, "y": 5.5} + ] + }, + "LAYOUT_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 1.5, "y": 0}, + {"matrix": [0, 3], "x": 2.5, "y": 0}, + {"matrix": [0, 4], "x": 3.5, "y": 0}, + {"matrix": [0, 5], "x": 4.5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [6, 0], "x": 9.5, "y": 0}, + {"matrix": [6, 1], "x": 10.5, "y": 0}, + {"matrix": [6, 2], "x": 12, "y": 0}, + {"matrix": [6, 3], "x": 13, "y": 0}, + {"matrix": [6, 4], "x": 14, "y": 0}, + {"matrix": [6, 5], "x": 15, "y": 0}, + {"matrix": [6, 7], "x": 16.5, "y": 0}, + {"matrix": [6, 8], "x": 17.75, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [7, 0], "x": 9.5, "y": 1.25}, + {"matrix": [7, 1], "x": 10.5, "y": 1.25}, + {"matrix": [7, 2], "x": 11.5, "y": 1.25}, + {"matrix": [7, 3], "x": 12.5, "y": 1.25}, + {"matrix": [7, 4], "x": 13.5, "y": 1.25}, + {"matrix": [7, 5], "x": 14.5, "y": 1.25}, + {"matrix": [7, 7], "x": 15.5, "y": 1.25, "w": 2}, + {"matrix": [7, 8], "x": 17.75, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [8, 0], "x": 9, "y": 2.25}, + {"matrix": [8, 1], "x": 10, "y": 2.25}, + {"matrix": [8, 2], "x": 11, "y": 2.25}, + {"matrix": [8, 3], "x": 12, "y": 2.25}, + {"matrix": [8, 4], "x": 13, "y": 2.25}, + {"matrix": [8, 5], "x": 14, "y": 2.25}, + {"matrix": [8, 6], "x": 15, "y": 2.25}, + {"matrix": [8, 7], "x": 16, "y": 2.25, "w": 1.5}, + {"matrix": [8, 8], "x": 17.75, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [9, 0], "x": 9.25, "y": 3.25}, + {"matrix": [9, 1], "x": 10.25, "y": 3.25}, + {"matrix": [9, 2], "x": 11.25, "y": 3.25}, + {"matrix": [9, 3], "x": 12.25, "y": 3.25}, + {"matrix": [9, 4], "x": 13.25, "y": 3.25}, + {"matrix": [9, 5], "x": 14.25, "y": 3.25}, + {"matrix": [9, 7], "x": 15.25, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [10, 0], "x": 8.75, "y": 4.25}, + {"matrix": [10, 1], "x": 9.75, "y": 4.25}, + {"matrix": [10, 2], "x": 10.75, "y": 4.25}, + {"matrix": [10, 3], "x": 11.75, "y": 4.25}, + {"matrix": [10, 4], "x": 12.75, "y": 4.25}, + {"matrix": [10, 5], "x": 13.75, "y": 4.25}, + {"matrix": [10, 6], "x": 14.75, "y": 4.25, "w": 1.75}, + {"matrix": [10, 7], "x": 16.75, "y": 4.5}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 5], "x": 4.75, "y": 5.5, "w": 2.25}, + {"matrix": [5, 6], "x": 7, "y": 5.5}, + {"matrix": [11, 2], "x": 9.5, "y": 5.5, "w": 2.75}, + {"matrix": [11, 4], "x": 13, "y": 5.25, "w": 1.5}, + {"matrix": [11, 5], "x": 14.5, "y": 5.25}, + {"matrix": [11, 6], "x": 15.75, "y": 5.5}, + {"matrix": [11, 7], "x": 16.75, "y": 5.5}, + {"matrix": [11, 8], "x": 17.75, "y": 5.5} + ] + }, + "LAYOUT_ansi_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 1.5, "y": 0}, + {"matrix": [0, 3], "x": 2.5, "y": 0}, + {"matrix": [0, 4], "x": 3.5, "y": 0}, + {"matrix": [0, 5], "x": 4.5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [6, 0], "x": 9.5, "y": 0}, + {"matrix": [6, 1], "x": 10.5, "y": 0}, + {"matrix": [6, 2], "x": 12, "y": 0}, + {"matrix": [6, 3], "x": 13, "y": 0}, + {"matrix": [6, 4], "x": 14, "y": 0}, + {"matrix": [6, 5], "x": 15, "y": 0}, + {"matrix": [6, 7], "x": 16.5, "y": 0}, + {"matrix": [6, 8], "x": 17.75, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [7, 0], "x": 9.5, "y": 1.25}, + {"matrix": [7, 1], "x": 10.5, "y": 1.25}, + {"matrix": [7, 2], "x": 11.5, "y": 1.25}, + {"matrix": [7, 3], "x": 12.5, "y": 1.25}, + {"matrix": [7, 4], "x": 13.5, "y": 1.25}, + {"matrix": [7, 5], "x": 14.5, "y": 1.25}, + {"matrix": [7, 6], "x": 15.5, "y": 1.25}, + {"matrix": [7, 7], "x": 16.5, "y": 1.25}, + {"matrix": [7, 8], "x": 17.75, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [8, 0], "x": 9, "y": 2.25}, + {"matrix": [8, 1], "x": 10, "y": 2.25}, + {"matrix": [8, 2], "x": 11, "y": 2.25}, + {"matrix": [8, 3], "x": 12, "y": 2.25}, + {"matrix": [8, 4], "x": 13, "y": 2.25}, + {"matrix": [8, 5], "x": 14, "y": 2.25}, + {"matrix": [8, 6], "x": 15, "y": 2.25}, + {"matrix": [8, 7], "x": 16, "y": 2.25, "w": 1.5}, + {"matrix": [8, 8], "x": 17.75, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [9, 0], "x": 9.25, "y": 3.25}, + {"matrix": [9, 1], "x": 10.25, "y": 3.25}, + {"matrix": [9, 2], "x": 11.25, "y": 3.25}, + {"matrix": [9, 3], "x": 12.25, "y": 3.25}, + {"matrix": [9, 4], "x": 13.25, "y": 3.25}, + {"matrix": [9, 5], "x": 14.25, "y": 3.25}, + {"matrix": [9, 7], "x": 15.25, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [10, 0], "x": 8.75, "y": 4.25}, + {"matrix": [10, 1], "x": 9.75, "y": 4.25}, + {"matrix": [10, 2], "x": 10.75, "y": 4.25}, + {"matrix": [10, 3], "x": 11.75, "y": 4.25}, + {"matrix": [10, 4], "x": 12.75, "y": 4.25}, + {"matrix": [10, 5], "x": 13.75, "y": 4.25}, + {"matrix": [10, 6], "x": 14.75, "y": 4.25, "w": 1.75}, + {"matrix": [10, 7], "x": 16.75, "y": 4.5}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 5], "x": 4.75, "y": 5.5, "w": 2.25}, + {"matrix": [5, 6], "x": 7, "y": 5.5}, + {"matrix": [11, 2], "x": 9.5, "y": 5.5, "w": 2.75}, + {"matrix": [11, 4], "x": 13, "y": 5.25, "w": 1.5}, + {"matrix": [11, 5], "x": 14.5, "y": 5.25}, + {"matrix": [11, 6], "x": 15.75, "y": 5.5}, + {"matrix": [11, 7], "x": 16.75, "y": 5.5}, + {"matrix": [11, 8], "x": 17.75, "y": 5.5} + ] + }, + "LAYOUT_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 1.5, "y": 0}, + {"matrix": [0, 3], "x": 2.5, "y": 0}, + {"matrix": [0, 4], "x": 3.5, "y": 0}, + {"matrix": [0, 5], "x": 4.5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [6, 0], "x": 9.5, "y": 0}, + {"matrix": [6, 1], "x": 10.5, "y": 0}, + {"matrix": [6, 2], "x": 12, "y": 0}, + {"matrix": [6, 3], "x": 13, "y": 0}, + {"matrix": [6, 4], "x": 14, "y": 0}, + {"matrix": [6, 5], "x": 15, "y": 0}, + {"matrix": [6, 7], "x": 16.5, "y": 0}, + {"matrix": [6, 8], "x": 17.75, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [7, 0], "x": 9.5, "y": 1.25}, + {"matrix": [7, 1], "x": 10.5, "y": 1.25}, + {"matrix": [7, 2], "x": 11.5, "y": 1.25}, + {"matrix": [7, 3], "x": 12.5, "y": 1.25}, + {"matrix": [7, 4], "x": 13.5, "y": 1.25}, + {"matrix": [7, 5], "x": 14.5, "y": 1.25}, + {"matrix": [7, 7], "x": 15.5, "y": 1.25, "w": 2}, + {"matrix": [7, 8], "x": 17.75, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [8, 0], "x": 9, "y": 2.25}, + {"matrix": [8, 1], "x": 10, "y": 2.25}, + {"matrix": [8, 2], "x": 11, "y": 2.25}, + {"matrix": [8, 3], "x": 12, "y": 2.25}, + {"matrix": [8, 4], "x": 13, "y": 2.25}, + {"matrix": [8, 5], "x": 14, "y": 2.25}, + {"matrix": [8, 6], "x": 15, "y": 2.25}, + {"matrix": [8, 8], "x": 17.75, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [9, 0], "x": 9.25, "y": 3.25}, + {"matrix": [9, 1], "x": 10.25, "y": 3.25}, + {"matrix": [9, 2], "x": 11.25, "y": 3.25}, + {"matrix": [9, 3], "x": 12.25, "y": 3.25}, + {"matrix": [9, 4], "x": 13.25, "y": 3.25}, + {"matrix": [9, 5], "x": 14.25, "y": 3.25}, + {"matrix": [9, 6], "x": 15.25, "y": 3.25}, + {"matrix": [9, 7], "x": 16.25, "y": 3.25, "w": 1.25, "h": 2}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [10, 0], "x": 8.75, "y": 4.25}, + {"matrix": [10, 1], "x": 9.75, "y": 4.25}, + {"matrix": [10, 2], "x": 10.75, "y": 4.25}, + {"matrix": [10, 3], "x": 11.75, "y": 4.25}, + {"matrix": [10, 4], "x": 12.75, "y": 4.25}, + {"matrix": [10, 5], "x": 13.75, "y": 4.25}, + {"matrix": [10, 6], "x": 14.75, "y": 4.25, "w": 1.75}, + {"matrix": [10, 7], "x": 16.75, "y": 4.5}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 5], "x": 4.75, "y": 5.5, "w": 2.25}, + {"matrix": [5, 6], "x": 7, "y": 5.5}, + {"matrix": [11, 2], "x": 9.5, "y": 5.5, "w": 2.75}, + {"matrix": [11, 4], "x": 13, "y": 5.25, "w": 1.5}, + {"matrix": [11, 5], "x": 14.5, "y": 5.25}, + {"matrix": [11, 6], "x": 15.75, "y": 5.5}, + {"matrix": [11, 7], "x": 16.75, "y": 5.5}, + {"matrix": [11, 8], "x": 17.75, "y": 5.5} + ] + }, + "LAYOUT_iso_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 1.5, "y": 0}, + {"matrix": [0, 3], "x": 2.5, "y": 0}, + {"matrix": [0, 4], "x": 3.5, "y": 0}, + {"matrix": [0, 5], "x": 4.5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [6, 0], "x": 9.5, "y": 0}, + {"matrix": [6, 1], "x": 10.5, "y": 0}, + {"matrix": [6, 2], "x": 12, "y": 0}, + {"matrix": [6, 3], "x": 13, "y": 0}, + {"matrix": [6, 4], "x": 14, "y": 0}, + {"matrix": [6, 5], "x": 15, "y": 0}, + {"matrix": [6, 7], "x": 16.5, "y": 0}, + {"matrix": [6, 8], "x": 17.75, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [7, 0], "x": 9.5, "y": 1.25}, + {"matrix": [7, 1], "x": 10.5, "y": 1.25}, + {"matrix": [7, 2], "x": 11.5, "y": 1.25}, + {"matrix": [7, 3], "x": 12.5, "y": 1.25}, + {"matrix": [7, 4], "x": 13.5, "y": 1.25}, + {"matrix": [7, 5], "x": 14.5, "y": 1.25}, + {"matrix": [7, 6], "x": 15.5, "y": 1.25}, + {"matrix": [7, 7], "x": 16.5, "y": 1.25}, + {"matrix": [7, 8], "x": 17.75, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [8, 0], "x": 9, "y": 2.25}, + {"matrix": [8, 1], "x": 10, "y": 2.25}, + {"matrix": [8, 2], "x": 11, "y": 2.25}, + {"matrix": [8, 3], "x": 12, "y": 2.25}, + {"matrix": [8, 4], "x": 13, "y": 2.25}, + {"matrix": [8, 5], "x": 14, "y": 2.25}, + {"matrix": [8, 6], "x": 15, "y": 2.25}, + {"matrix": [8, 8], "x": 17.75, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [9, 0], "x": 9.25, "y": 3.25}, + {"matrix": [9, 1], "x": 10.25, "y": 3.25}, + {"matrix": [9, 2], "x": 11.25, "y": 3.25}, + {"matrix": [9, 3], "x": 12.25, "y": 3.25}, + {"matrix": [9, 4], "x": 13.25, "y": 3.25}, + {"matrix": [9, 5], "x": 14.25, "y": 3.25}, + {"matrix": [9, 6], "x": 15.25, "y": 3.25}, + {"matrix": [9, 7], "x": 16.25, "y": 3.25, "w": 1.25, "h": 2}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [10, 0], "x": 8.75, "y": 4.25}, + {"matrix": [10, 1], "x": 9.75, "y": 4.25}, + {"matrix": [10, 2], "x": 10.75, "y": 4.25}, + {"matrix": [10, 3], "x": 11.75, "y": 4.25}, + {"matrix": [10, 4], "x": 12.75, "y": 4.25}, + {"matrix": [10, 5], "x": 13.75, "y": 4.25}, + {"matrix": [10, 6], "x": 14.75, "y": 4.25, "w": 1.75}, + {"matrix": [10, 7], "x": 16.75, "y": 4.5}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 5], "x": 4.75, "y": 5.5, "w": 2.25}, + {"matrix": [5, 6], "x": 7, "y": 5.5}, + {"matrix": [11, 2], "x": 9.5, "y": 5.5, "w": 2.75}, + {"matrix": [11, 4], "x": 13, "y": 5.25, "w": 1.5}, + {"matrix": [11, 5], "x": 14.5, "y": 5.25}, + {"matrix": [11, 6], "x": 15.75, "y": 5.5}, + {"matrix": [11, 7], "x": 16.75, "y": 5.5}, + {"matrix": [11, 8], "x": 17.75, "y": 5.5} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/era/sirind/tomak79s/keymaps/default/keymap.c b/keyboards/era/sirind/tomak79s/keymaps/default/keymap.c new file mode 100644 index 0000000000..9ac7334d48 --- /dev/null +++ b/keyboards/era/sirind/tomak79s/keymaps/default/keymap.c @@ -0,0 +1,24 @@ +// Copyright 2024 Hyojin Bak (@eerraa) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RM_TOGG, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, RM_NEXT, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; \ No newline at end of file diff --git a/keyboards/era/sirind/tomak79s/readme.md b/keyboards/era/sirind/tomak79s/readme.md new file mode 100644 index 0000000000..5fc275bc65 --- /dev/null +++ b/keyboards/era/sirind/tomak79s/readme.md @@ -0,0 +1,27 @@ +# Tomak79S, Solder ver + +![Tomak79S](https://i.imgur.com/Pq2itWD.jpeg) + +Ergonomics Split Keyboard powered by RP2040. + +* Keyboard Maintainer: [ERA](https://github.com/eerraa) +* Hardware supported: SIRIND Tomak79 +* Hardware availability: [Syryan](https://srind.mysoho.com/) + +Make example for this keyboard (after setting up your build environment): + + make era/sirind/tomak79s:default + +Flashing example for this keyboard: + + make era/sirind/tomak79s:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the 'top-left(ESC, F7)' key and plug in the keyboard. +* **Physical reset**: Short the 'RESET' and 'GND' holes twice within one second, or plug in the keyboard with the 'BOOT' and 'GND' holes shorted. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. \ No newline at end of file diff --git a/keyboards/era/sirind/tomak79s/tomak79s.c b/keyboards/era/sirind/tomak79s/tomak79s.c new file mode 100644 index 0000000000..f5f3165b64 --- /dev/null +++ b/keyboards/era/sirind/tomak79s/tomak79s.c @@ -0,0 +1,16 @@ +// Copyright 2023 Hyojin Bak (@eerraa) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + if (host_keyboard_led_state().caps_lock) { + for (uint8_t i = 93; i <= 101; i++) { + rgb_matrix_set_color(i, 0, 128, 128); + } + } + return true; +} \ No newline at end of file From 1c6d3d0cbc52eefce3c244ed958566204b9d65a7 Mon Sep 17 00:00:00 2001 From: Feags <41646528+Feags@users.noreply.github.com> Date: Sun, 8 Dec 2024 22:30:26 -0500 Subject: [PATCH 29/77] Adding new keyboard Promenade RP24S (#24689) * adding keymaps for krado industries * Modified default keymap.c files to be the same as via. * Changing vendor ID for Krado Industries * Suggested changes made Making changes suggested by zvecr. Removed dynamic_layer indicator, updated copyright year, deleted unused layers in keymaps. Co-authored-by: Joel Challis * rgbpin for ws2812 changed in info.json * Added encoder mapping rule file for default keymaps; added Fn layer shortcuts to Promenade layouts * Added rules.mk with encoder mapping for encoder boards at keymaps level. * Deleted extra key in LAYOUT * Update keyboards/kradoindustries/kousa/rules.mk Move WS2812 Driver from rules.mk to info.json Co-authored-by: jack * Update keyboards/kradoindustries/kousa/info.json Move WS2812 Driver from rules.mk to info.json Co-authored-by: jack * Update keyboards/kradoindustries/kousa/keymaps/default/keymap.c Move WS2812 Driver from rules.mk to info.json Co-authored-by: jack * Reverting settings.json * Encoder map code change [2]>[NUM_DIRECTIONS] * Adding Promenade RP24S Adding Promenade RP24S keyboard.json, default keymap, and readme * Adding layer access to Promenade RP24S Adding layer access to layers 1 and 2 --------- Co-authored-by: Joel Challis Co-authored-by: jack --- .../promenade_rp24s/keyboard.json | 140 ++++++++++++++++++ .../promenade_rp24s/keymaps/default/keymap.c | 102 +++++++++++++ .../promenade_rp24s/keymaps/default/rules.mk | 1 + .../kradoindustries/promenade_rp24s/readme.md | 29 ++++ 4 files changed, 272 insertions(+) create mode 100644 keyboards/kradoindustries/promenade_rp24s/keyboard.json create mode 100644 keyboards/kradoindustries/promenade_rp24s/keymaps/default/keymap.c create mode 100644 keyboards/kradoindustries/promenade_rp24s/keymaps/default/rules.mk create mode 100644 keyboards/kradoindustries/promenade_rp24s/readme.md diff --git a/keyboards/kradoindustries/promenade_rp24s/keyboard.json b/keyboards/kradoindustries/promenade_rp24s/keyboard.json new file mode 100644 index 0000000000..c0d4a7f535 --- /dev/null +++ b/keyboards/kradoindustries/promenade_rp24s/keyboard.json @@ -0,0 +1,140 @@ +{ + "keyboard_name": "Promenade RP24S", + "manufacturer": "Krado Industries", + "url": "https://www.kradoindustries.com/", + "maintainer": "Krado Industries", + "processor": "RP2040", + "bootloader": "rp2040", + "usb": { + "vid": "0x4B72", + "pid": "0x4B6D", + "device_version": "1.0.0" + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true, + "encoder": true, + "rgblight": true + }, + + "encoder": { + "rotary": [ + { "pin_a": "GP12", "pin_b": "GP15" }, + { "pin_a": "GP12", "pin_b": "GP16" }, + { "pin_a": "GP15", "pin_b": "GP18" }, + { "pin_a": "GP16", "pin_b": "GP18" }, + { "pin_a": "GP11", "pin_b": "GP15" }, + { "pin_a": "GP16", "pin_b": "GP11" }, + { "pin_a": "GP16", "pin_b": "GP15" }, + { "pin_a": "GP18", "pin_b": "GP12" } + ] + }, + + "ws2812": { + "pin": "GP26", + "driver": "vendor" + }, + "rgblight": { + "led_count": 14, + "sleep": true, + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + } + }, + + + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["GP20", "GP10", "GP9", "GP8", "GP7", "GP6", "GP14", "GP13", "GP5", "GP4", "GP3", "GP2", "GP1", "GP0"], + "rows": ["GP29", "GP28", "GP27", "GP19", "GP17"] + }, + + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x":0, "y":0, "w":1.5}, + {"matrix": [0, 1], "x":1.5, "y":0}, + {"matrix": [0, 2], "x":2.5, "y":0}, + {"matrix": [0, 3], "x":3.5, "y":0}, + {"matrix": [0, 4], "x":4.5, "y":0}, + {"matrix": [0, 5], "x":5.5, "y":0}, + {"matrix": [0, 6], "x":6.5, "y":0}, + {"matrix": [0, 7], "x":7.5, "y":0}, + {"matrix": [0, 8], "x":8.5, "y":0}, + {"matrix": [0, 9], "x":9.5, "y":0}, + {"matrix": [0, 10], "x":10.5, "y":0}, + {"matrix": [0, 11], "x":11.5, "y":0}, + {"matrix": [0, 12], "x":12.5, "y":0}, + {"matrix": [0, 13], "x":13.5, "y":0, "w":1.5}, + {"matrix": [1, 0], "x":0, "y":1, "w":1.5}, + {"matrix": [1, 1], "x":1.5, "y":1}, + {"matrix": [1, 2], "x":2.5, "y":1}, + {"matrix": [1, 3], "x":3.5, "y":1}, + {"matrix": [1, 4], "x":4.5, "y":1}, + {"matrix": [1, 5], "x":5.5, "y":1}, + {"matrix": [1, 6], "x":6.5, "y":1}, + {"matrix": [1, 7], "x":7.5, "y":1}, + {"matrix": [1, 8], "x":8.5, "y":1}, + {"matrix": [1, 9], "x":9.5, "y":1}, + {"matrix": [1, 10], "x":10.5, "y":1}, + {"matrix": [1, 11], "x":11.5, "y":1}, + {"matrix": [1, 12], "x":12.5, "y":1}, + {"matrix": [1, 13], "x":13.5, "y":1, "w":1.5}, + {"matrix": [2, 0], "x":0, "y":2, "w":1.5}, + {"matrix": [2, 1], "x":1.5, "y":2}, + {"matrix": [2, 2], "x":2.5, "y":2}, + {"matrix": [2, 3], "x":3.5, "y":2}, + {"matrix": [2, 4], "x":4.5, "y":2}, + {"matrix": [2, 5], "x":5.5, "y":2}, + {"matrix": [2, 6], "x":6.5, "y":2}, + {"matrix": [2, 7], "x":7.5, "y":2}, + {"matrix": [2, 8], "x":8.5, "y":2}, + {"matrix": [2, 9], "x":9.5, "y":2}, + {"matrix": [2, 10], "x":10.5, "y":2}, + {"matrix": [2, 11], "x":11.5, "y":2}, + {"matrix": [2, 12], "x":12.5, "y":2}, + {"matrix": [2, 13], "x":13.5, "y":2, "w":1.5}, + {"matrix": [3, 0], "x":0, "y":3, "w":1.5}, + {"matrix": [3, 1], "x":1.5, "y":3}, + {"matrix": [3, 2], "x":2.5, "y":3}, + {"matrix": [3, 3], "x":3.5, "y":3}, + {"matrix": [3, 4], "x":4.5, "y":3}, + {"matrix": [3, 5], "x":5.5, "y":3}, + {"matrix": [3, 6], "x":6.5, "y":3}, + {"matrix": [3, 7], "x":7.5, "y":3}, + {"matrix": [3, 8], "x":8.5, "y":3}, + {"matrix": [3, 9], "x":9.5, "y":3}, + {"matrix": [3, 10], "x":10.5, "y":3}, + {"matrix": [3, 11], "x":11.5, "y":3}, + {"matrix": [3, 12], "x":12.5, "y":3}, + {"matrix": [3, 13], "x":13.5, "y":3, "w":1.5}, + {"matrix": [4, 0], "x":0, "y":4, "w":1.5}, + {"matrix": [4, 1], "x":1.5, "y":4}, + {"matrix": [4, 2], "x":2.5, "y":4}, + {"matrix": [4, 3], "x":3.5, "y":4}, + {"matrix": [4, 4], "x":4.5, "y":4}, + {"matrix": [4, 5], "x":5.5, "y":4}, + {"matrix": [4, 6], "x":6.5, "y":4}, + {"matrix": [4, 7], "x":7.5, "y":4}, + {"matrix": [4, 8], "x":8.5, "y":4}, + {"matrix": [4, 9], "x":9.5, "y":4}, + {"matrix": [4, 10], "x":10.5, "y":4}, + {"matrix": [4, 11], "x":11.5, "y":4}, + {"matrix": [4, 12], "x":12.5, "y":4}, + {"matrix": [4, 13], "x":13.5, "y":4, "w":1.5}] + } + } +} diff --git a/keyboards/kradoindustries/promenade_rp24s/keymaps/default/keymap.c b/keyboards/kradoindustries/promenade_rp24s/keymaps/default/keymap.c new file mode 100644 index 0000000000..ed36cc85fb --- /dev/null +++ b/keyboards/kradoindustries/promenade_rp24s/keymaps/default/keymap.c @@ -0,0 +1,102 @@ +/* +Copyright 2024 Matt F + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + + +#define _FN MO(3) +#define FN_BACK LT(3, KC_BSPC) +#define ZOOMIN C(KC_EQL) +#define ZOOMOUT C(KC_MINS) +#define NTAB C(KC_TAB) +#define BTAB C(S(KC_TAB)) + + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + + /* Base Layer + + + * .-----------------------------------------------------------------------------------------------------------------------------------. + * | Grave | 1 | 2 | 3 | 4 | 5 | - | = | 6 | 7 | 8 | 9 | 0 | Backspace | + * | | | | | | | | | | | | | | | + * |-----------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------| + * | Tab | Q | W | E | R | T | [ | ] | Y | U | I | O | P | Del | + * | | | | | | | | | | | | | | | + * |-----------+--------+--------+--------+--------+--------|--------+--------|--------+--------+--------+-----------------+-----------| + * | FN_BACK | A | S | D | F | G | [ | ] | H | J | K | L | " | Enter | + * | | | | | | | | | | | | | ' | | + * |-----------+--------+--------+--------+--------+--------|--------+--------|--------+--------+--------------------------+-----------| + * | LShift | Z | X | C | V | B | BTab | NTab | N | M | < | > | ? | RShift | + * | | | | | | | | | | | , | . | / | | + * |-----------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+-----------| + * | LCTRL | LGUI | LALT | FN | Space | Space |Space |Space | Space | Space | Space | RALT | FN | RCTRL | + * | | | | | | | | | | | | | | | + * '-----------------------------------------------------------------------------------------------------------------------------------' + */ + + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + FN_BACK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LBRC, KC_RBRC, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, + SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, BTAB, NTAB, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC, + KC_LCTL, KC_LGUI, KC_LALT, _FN, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, _FN, KC_RCTL + ), + + [1] = LAYOUT( /* Layer One */ + + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LBRC, KC_RBRC, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGUP, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, _FN, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, _FN, KC_RCTL + ), + + + [2] = LAYOUT( /* Layer Two */ + + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, ZOOMIN, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + FN_BACK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LBRC, KC_RBRC, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, ZOOMOUT, KC_LBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, _FN, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, _FN, KC_RCTL + ), + + [3] = LAYOUT( /* Layer Three */ + + KC_GRV, 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_DEL, + _______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, DF(0) , DF(1) , _______, _______, _______, _______, KC_PSCR, KC_BSLS, + _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, KC_SCLN, KC_QUOT, + _______, _______, _______, _______, _______, _______, DF(2) , _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_BSLS, KC_CAPS, + _______, _______, _______, _______, _______, _______, KC_ENT, KC_ENT, _______, _______, _______, _______, _______, QK_BOOT + ) + +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(UG_NEXT, UG_PREV), + ENCODER_CCW_CW(KC_LBRC, KC_RBRC), ENCODER_CCW_CW(C(KC_MINS), C(KC_EQL)), + ENCODER_CCW_CW(C(KC_Z), C(S(KC_Z))), ENCODER_CCW_CW(KC_PGUP, KC_PGDN), + ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_UP, KC_DOWN)}, + [1 ... 3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), + ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), + ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), + ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______)} +}; +#endif \ No newline at end of file diff --git a/keyboards/kradoindustries/promenade_rp24s/keymaps/default/rules.mk b/keyboards/kradoindustries/promenade_rp24s/keymaps/default/rules.mk new file mode 100644 index 0000000000..a40474b4d5 --- /dev/null +++ b/keyboards/kradoindustries/promenade_rp24s/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/kradoindustries/promenade_rp24s/readme.md b/keyboards/kradoindustries/promenade_rp24s/readme.md new file mode 100644 index 0000000000..9685cb8296 --- /dev/null +++ b/keyboards/kradoindustries/promenade_rp24s/readme.md @@ -0,0 +1,29 @@ +# Promenade RP24S + +![Promenade RP24S](https://i.imgur.com/uQOhmmJ.jpeg) + +The Promenade RP24S is the solder version of the [Promenade](https://github.com/qmk/qmk_firmware/tree/master/keyboards/kradoindustries/promenade) pcb which is based on the [Boardwalk](https://github.com/qmk/qmk_firmware/tree/master/keyboards/boardwalk), a 60% ortholinear keyboard that uses 1.5u Ergodoxian modifier keys. The original Boardwalk's split hand and 65% layouts are supported, and a new 50% extended layout similar to [RGBKB's Pan](https://github.com/qmk/qmk_firmware/tree/master/keyboards/rgbkb/pan) with two right-side macro columns was also added. In addition to Pok3r-style 60% tray mounting points, the pcb also has edge cuts for use in gummy o-ring mount boards like the Bakeneko60. Some additional spacebar options including 3u, 6u, and triple 2u were added. The pcb has two footprint locations for a JST connector, many breakout pins, and 19 rotary encoder locations. The MCU has been upgraded to a RP2040 with 32M-bit of flash memory. + + +* Keyboard Maintainer: [Feags](https://github.com/Feags) / [Krado Industries](https://kradoindustries.com/) +* Hardware Supported: Promenade pcb. Many 60% cases. +* Hardware Availability: [Krado Industries](https://kradoindustries.com/) + +Make example for this keyboard (after setting up your build environment): + + make kradoindustries/promenade_rp24s:default + +Flashing example for this keyboard: + + make kradoindustries/promenade_rp24s:default:flash + + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file From 379bb770057eb4d8c49fb748813fc1b589802acc Mon Sep 17 00:00:00 2001 From: Amund Tenstad Date: Mon, 9 Dec 2024 06:44:12 +0100 Subject: [PATCH 30/77] fix: KC_MEDIA_PLAY_PAUSE label (#24693) --- data/constants/keycodes/keycodes_0.0.1_basic.hjson | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/constants/keycodes/keycodes_0.0.1_basic.hjson b/data/constants/keycodes/keycodes_0.0.1_basic.hjson index 430211ecca..66aba7b1fc 100644 --- a/data/constants/keycodes/keycodes_0.0.1_basic.hjson +++ b/data/constants/keycodes/keycodes_0.0.1_basic.hjson @@ -1140,7 +1140,7 @@ "0x00AE": { "group": "media", "key": "KC_MEDIA_PLAY_PAUSE", - "label": "Mute", + "label": "Play/Pause Track", "aliases": [ "KC_MPLY" ] From 3c359529445942eda9c9efc3e448f059a5d24cc0 Mon Sep 17 00:00:00 2001 From: nuess0r Date: Mon, 9 Dec 2024 07:21:49 +0100 Subject: [PATCH 31/77] Adding ctrl-M replacement controller for IBM Model M (#24375) * This is a configuration of QMK intended to be used with the [ctrl-M controller](https://github.com/nuess0r/ctrl-M). * Move USB_MAX_POWER_CONSUMPTION to data driven due to upstream change * Clean up according to PR checklist Check the keymaps/nuess0r how you can make better use of your Model M including Windows, multimedia keys etc. * Move CAPS_HOLD feature from default build to custom keymap * More data driven configuration Move layout definition from ctrl_m.h to info.json Move has_ghost to info.json -> this makes the config.h file obsolete * Implement changes suggested by review * Removing user keymap (nuess0r) to follow current guidelines The nuess0r keymap which is shipped with the ctrl-M controller is kept here: https://github.com/nuess0r/qmk_firmware/tree/nuess0r_keymap * Changed image hosting location to Github requested in review by drashna * Changed image hosting location to imgur * Settings removed from info.json that are disabled by default. * Change URL as suggested by @dunk2k Not pointing to the QMK firmware but to the replacement controller electronics project. * Migrate build target markers to keyboard.json * Adding tindie link and implement review suggestions * Removing via keymap to follow current guidelines Will be moved to the https://github.com/the-via/qmk_userspace_via repo. * Add LAYOUT_all to support ANSI and ISO keyboards with the same firmware Add a LAYOUT_all similar to other keyboards that defines all available keys. Change the default keymap to use the _all layout so both ANSI and ISO Model M variants work out of the box. * Remove unnecessary enum from default keymap Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> --------- Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> --- keyboards/ibm/model_m/ctrl_m/keyboard.json | 409 ++++++++++++++++++ .../model_m/ctrl_m/keymaps/default/keymap.c | 27 ++ keyboards/ibm/model_m/ctrl_m/readme.md | 27 ++ 3 files changed, 463 insertions(+) create mode 100644 keyboards/ibm/model_m/ctrl_m/keyboard.json create mode 100644 keyboards/ibm/model_m/ctrl_m/keymaps/default/keymap.c create mode 100644 keyboards/ibm/model_m/ctrl_m/readme.md diff --git a/keyboards/ibm/model_m/ctrl_m/keyboard.json b/keyboards/ibm/model_m/ctrl_m/keyboard.json new file mode 100644 index 0000000000..41801215c1 --- /dev/null +++ b/keyboards/ibm/model_m/ctrl_m/keyboard.json @@ -0,0 +1,409 @@ +{ + "keyboard_name": "ctrl-M", + "manufacturer": "nuess0r", + "url": "https://github.com/nuess0r/ctrl-m", + "maintainer": "nuess0r", + "usb": { + "vid": "0x1D50", + "pid": "0x6180", + "device_version": "1.0.0", + "max_power": 100 + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": false + }, + "matrix_pins": { + "cols": ["A15", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "C13", "C14", "C15", "F0", "F1", "A0", "A1", "A2"], + "rows": ["A3", "A4", "A5", "A6", "A7", "B0", "B1", "B2"], + "ghost": true + }, + "diode_direction": "ROW2COL", + "indicators": { + "num_lock": "B10", + "caps_lock": "B12", + "scroll_lock": "B11", + "on_state": 0 + }, + "bootmagic": { + "matrix": [0, 2] + }, + "processor": "STM32F072", + "bootloader": "stm32-dfu", + "layouts": { + "LAYOUT_fullsize_ansi_wkl": { + "layout": [ + {"label": "Esc", "matrix": [0, 2], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [2, 3], "x": 2, "y": 0}, + {"label": "F2", "matrix": [2, 4], "x": 3, "y": 0}, + {"label": "F3", "matrix": [1, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 8], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [1, 9], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [2, 9], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [2, 6], "x": 11, "y": 0}, + {"label": "F10", "matrix": [3, 6], "x": 12, "y": 0}, + {"label": "F11", "matrix": [3, 11], "x": 13, "y": 0}, + {"label": "F12", "matrix": [3, 12], "x": 14, "y": 0}, + + {"label": "PrtSc", "matrix": [3, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [4, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [6, 14], "x": 17.25, "y": 0}, + + {"label": "~", "matrix": [2, 2], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [3, 2], "x": 1, "y": 1.5}, + {"label": "@", "matrix": [3, 3], "x": 2, "y": 1.5}, + {"label": "#", "matrix": [3, 4], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [3, 5], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [2, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [2, 7], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [3, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [3, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [3, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [3, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [2, 10], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [2, 8], "x": 12, "y": 1.5}, + {"label": "Backspace", "matrix": [1, 6], "x": 13, "y": 1.5, "w": 2}, + + {"label": "Insert", "matrix": [2, 12], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [2, 14], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [2, 13], "x": 17.25, "y": 1.5}, + + {"label": "Num Lock", "matrix": [6, 11], "x": 18.5, "y": 1.5}, + {"label": "/", "matrix": [6, 12], "x": 19.5, "y": 1.5}, + {"label": "*", "matrix": [6, 13], "x": 20.5, "y": 1.5}, + {"label": "-", "matrix": [7, 13], "x": 21.5, "y": 1.5}, + + {"label": "Tab", "matrix": [1, 2], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [4, 2], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [4, 3], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [4, 4], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [4, 5], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [4, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [4, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [4, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [4, 10], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [1, 10], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [1, 8], "x": 12.5, "y": 2.5}, + {"label": "|", "matrix": [5, 6], "x": 13.5, "y": 2.5, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 11], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [3, 14], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [3, 13], "x": 17.25, "y": 2.5}, + + {"label": "7", "matrix": [4, 11], "x": 18.5, "y": 2.5}, + {"label": "8", "matrix": [4, 12], "x": 19.5, "y": 2.5}, + {"label": "9", "matrix": [4, 13], "x": 20.5, "y": 2.5}, + {"label": "+", "matrix": [4, 14], "x": 21.5, "y": 2.5, "h": 2}, + + {"label": "Caps Lock", "matrix": [1, 3], "x": 0, "y": 3.5, "w": 1.5}, + {"label": "A", "matrix": [5, 2], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [5, 3], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [5, 4], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [5, 5], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [0, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [0, 7], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [5, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [5, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [5, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [5, 10], "x": 10.75, "y": 3.5}, + {"label": "\"", "matrix": [0, 10], "x": 11.75, "y": 3.5}, + {"label": "Enter", "matrix": [6, 6], "x": 12.75, "y": 3.5, "w": 2.25}, + + {"label": "4", "matrix": [1, 11], "x": 18.5, "y": 3.5}, + {"label": "5", "matrix": [1, 12], "x": 19.5, "y": 3.5}, + {"label": "6", "matrix": [1, 13], "x": 20.5, "y": 3.5}, + + {"label": "Shift", "matrix": [1, 1], "x": 0, "y": 4.5, "w": 2.25}, + {"label": "Z", "matrix": [6, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [6, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [6, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [6, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [7, 5], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [7, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [6, 7], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [6, 8], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [6, 9], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [7, 10], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [6, 1], "x": 12.25, "y": 4.5, "w": 2.75}, + + {"label": "\u2191", "matrix": [0, 14], "x": 16.25, "y": 4.5}, + + {"label": "1", "matrix": [5, 11], "x": 18.5, "y": 4.5}, + {"label": "2", "matrix": [5, 12], "x": 19.5, "y": 4.5}, + {"label": "3", "matrix": [5, 13], "x": 20.5, "y": 4.5}, + {"label": "Enter", "matrix": [5, 14], "x": 21.5, "y": 4.5, "h": 2}, + + {"label": "Ctrl", "matrix": [2, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"label": "Alt", "matrix": [0, 15], "x": 2.5, "y": 5.5, "w": 1.5}, + {"matrix": [7, 6], "x": 4, "y": 5.5, "w": 7}, + {"label": "Alt", "matrix": [7, 15], "x": 11, "y": 5.5, "w": 1.5}, + {"label": "Ctrl", "matrix": [6, 0], "x": 13.5, "y": 5.5, "w": 1.5}, + + {"label": "\u2190", "matrix": [7, 14], "x": 15.25, "y": 5.5}, + {"label": "\u2193", "matrix": [7, 11], "x": 16.25, "y": 5.5}, + {"label": "\u2192", "matrix": [7, 12], "x": 17.25, "y": 5.5}, + + {"label": "0", "matrix": [0, 12], "x": 18.5, "y": 5.5, "w": 2}, + {"label": ".", "matrix": [0, 13], "x": 20.5, "y": 5.5} + ] + }, + "LAYOUT_fullsize_iso_wkl": { + "layout": [ + {"label": "Esc", "matrix": [0, 2], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [2, 3], "x": 2, "y": 0}, + {"label": "F2", "matrix": [2, 4], "x": 3, "y": 0}, + {"label": "F3", "matrix": [1, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 8], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [1, 9], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [2, 9], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [2, 6], "x": 11, "y": 0}, + {"label": "F10", "matrix": [3, 6], "x": 12, "y": 0}, + {"label": "F11", "matrix": [3, 11], "x": 13, "y": 0}, + {"label": "F12", "matrix": [3, 12], "x": 14, "y": 0}, + + {"label": "PrtSc", "matrix": [3, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [4, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [6, 14], "x": 17.25, "y": 0}, + + {"label": "~", "matrix": [2, 2], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [3, 2], "x": 1, "y": 1.5}, + {"label": "@", "matrix": [3, 3], "x": 2, "y": 1.5}, + {"label": "#", "matrix": [3, 4], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [3, 5], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [2, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [2, 7], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [3, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [3, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [3, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [3, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [2, 10], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [2, 8], "x": 12, "y": 1.5}, + {"label": "Backspace", "matrix": [1, 6], "x": 13, "y": 1.5, "w": 2}, + + {"label": "Insert", "matrix": [2, 12], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [2, 14], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [2, 13], "x": 17.25, "y": 1.5}, + + {"label": "Num Lock", "matrix": [6, 11], "x": 18.5, "y": 1.5}, + {"label": "/", "matrix": [6, 12], "x": 19.5, "y": 1.5}, + {"label": "*", "matrix": [6, 13], "x": 20.5, "y": 1.5}, + {"label": "-", "matrix": [7, 13], "x": 21.5, "y": 1.5}, + + {"label": "Tab", "matrix": [1, 2], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [4, 2], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [4, 3], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [4, 4], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [4, 5], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [4, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [4, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [4, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [4, 10], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [1, 10], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [1, 8], "x": 12.5, "y": 2.5}, + + {"label": "Delete", "matrix": [2, 11], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [3, 14], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [3, 13], "x": 17.25, "y": 2.5}, + + {"label": "7", "matrix": [4, 11], "x": 18.5, "y": 2.5}, + {"label": "8", "matrix": [4, 12], "x": 19.5, "y": 2.5}, + {"label": "9", "matrix": [4, 13], "x": 20.5, "y": 2.5}, + {"label": "+", "matrix": [4, 14], "x": 21.5, "y": 2.5, "h": 2}, + + {"label": "Caps Lock", "matrix": [1, 3], "x": 0, "y": 3.5, "w": 1.5}, + {"label": "A", "matrix": [5, 2], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [5, 3], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [5, 4], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [5, 5], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [0, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [0, 7], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [5, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [5, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [5, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [5, 10], "x": 10.75, "y": 3.5}, + {"label": "\"", "matrix": [0, 10], "x": 11.75, "y": 3.5}, + {"label": "NUHS", "matrix": [6, 10], "x": 12.75, "y": 3.5}, + {"label": "Enter", "matrix": [6, 6], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + + {"label": "4", "matrix": [1, 11], "x": 18.5, "y": 3.5}, + {"label": "5", "matrix": [1, 12], "x": 19.5, "y": 3.5}, + {"label": "6", "matrix": [1, 13], "x": 20.5, "y": 3.5}, + + {"label": "Shift", "matrix": [1, 1], "x": 0, "y": 4.5, "w": 1.25}, + {"label": "NUBS", "matrix": [0, 3], "x": 1.25, "y": 4.5}, + {"label": "Z", "matrix": [6, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [6, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [6, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [6, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [7, 5], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [7, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [6, 7], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [6, 8], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [6, 9], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [7, 10], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [6, 1], "x": 12.25, "y": 4.5, "w": 2.75}, + + {"label": "\u2191", "matrix": [0, 14], "x": 16.25, "y": 4.5}, + + {"label": "1", "matrix": [5, 11], "x": 18.5, "y": 4.5}, + {"label": "2", "matrix": [5, 12], "x": 19.5, "y": 4.5}, + {"label": "3", "matrix": [5, 13], "x": 20.5, "y": 4.5}, + {"label": "Enter", "matrix": [5, 14], "x": 21.5, "y": 4.5, "h": 2}, + + {"label": "Ctrl", "matrix": [2, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"label": "Alt", "matrix": [0, 15], "x": 2.5, "y": 5.5, "w": 1.5}, + {"matrix": [7, 6], "x": 4, "y": 5.5, "w": 7}, + {"label": "Alt", "matrix": [7, 15], "x": 11, "y": 5.5, "w": 1.5}, + {"label": "Ctrl", "matrix": [6, 0], "x": 13.5, "y": 5.5, "w": 1.5}, + + {"label": "\u2190", "matrix": [7, 14], "x": 15.25, "y": 5.5}, + {"label": "\u2193", "matrix": [7, 11], "x": 16.25, "y": 5.5}, + {"label": "\u2192", "matrix": [7, 12], "x": 17.25, "y": 5.5}, + + {"label": "0", "matrix": [0, 12], "x": 18.5, "y": 5.5, "w": 2}, + {"label": ".", "matrix": [0, 13], "x": 20.5, "y": 5.5} + ] + }, + "LAYOUT_all": { + "layout": [ + {"label": "Esc", "matrix": [0, 2], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [2, 3], "x": 2, "y": 0}, + {"label": "F2", "matrix": [2, 4], "x": 3, "y": 0}, + {"label": "F3", "matrix": [1, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 8], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [1, 9], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [2, 9], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [2, 6], "x": 11, "y": 0}, + {"label": "F10", "matrix": [3, 6], "x": 12, "y": 0}, + {"label": "F11", "matrix": [3, 11], "x": 13, "y": 0}, + {"label": "F12", "matrix": [3, 12], "x": 14, "y": 0}, + + {"label": "PrtSc", "matrix": [3, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [4, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [6, 14], "x": 17.25, "y": 0}, + + {"label": "~", "matrix": [2, 2], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [3, 2], "x": 1, "y": 1.5}, + {"label": "@", "matrix": [3, 3], "x": 2, "y": 1.5}, + {"label": "#", "matrix": [3, 4], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [3, 5], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [2, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [2, 7], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [3, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [3, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [3, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [3, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [2, 10], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [2, 8], "x": 12, "y": 1.5}, + {"label": "Backspace", "matrix": [1, 6], "x": 13, "y": 1.5, "w": 2}, + + {"label": "Insert", "matrix": [2, 12], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [2, 14], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [2, 13], "x": 17.25, "y": 1.5}, + + {"label": "Num Lock", "matrix": [6, 11], "x": 18.5, "y": 1.5}, + {"label": "/", "matrix": [6, 12], "x": 19.5, "y": 1.5}, + {"label": "*", "matrix": [6, 13], "x": 20.5, "y": 1.5}, + {"label": "-", "matrix": [7, 13], "x": 21.5, "y": 1.5}, + + {"label": "Tab", "matrix": [1, 2], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [4, 2], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [4, 3], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [4, 4], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [4, 5], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [4, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [4, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [4, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [4, 10], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [1, 10], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [1, 8], "x": 12.5, "y": 2.5}, + {"label": "|", "matrix": [5, 6], "x": 13.5, "y": 2.5, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 11], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [3, 14], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [3, 13], "x": 17.25, "y": 2.5}, + + {"label": "7", "matrix": [4, 11], "x": 18.5, "y": 2.5}, + {"label": "8", "matrix": [4, 12], "x": 19.5, "y": 2.5}, + {"label": "9", "matrix": [4, 13], "x": 20.5, "y": 2.5}, + {"label": "+", "matrix": [4, 14], "x": 21.5, "y": 2.5, "h": 2}, + + {"label": "Caps Lock", "matrix": [1, 3], "x": 0, "y": 3.5, "w": 1.5}, + {"label": "A", "matrix": [5, 2], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [5, 3], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [5, 4], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [5, 5], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [0, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [0, 7], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [5, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [5, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [5, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [5, 10], "x": 10.75, "y": 3.5}, + {"label": "\"", "matrix": [0, 10], "x": 11.75, "y": 3.5}, + {"label": "NUHS", "matrix": [6, 10], "x": 12.75, "y": 3.5}, + {"label": "Enter", "matrix": [6, 6], "x": 13.75, "y": 3.5, "w": 1.25}, + + {"label": "4", "matrix": [1, 11], "x": 18.5, "y": 3.5}, + {"label": "5", "matrix": [1, 12], "x": 19.5, "y": 3.5}, + {"label": "6", "matrix": [1, 13], "x": 20.5, "y": 3.5}, + + {"label": "Shift", "matrix": [1, 1], "x": 0, "y": 4.5, "w": 1.25}, + {"label": "NUBS", "matrix": [0, 3], "x": 1.25, "y": 4.5}, + {"label": "Z", "matrix": [6, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [6, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [6, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [6, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [7, 5], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [7, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [6, 7], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [6, 8], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [6, 9], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [7, 10], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [6, 1], "x": 12.25, "y": 4.5, "w": 2.75}, + + {"label": "\u2191", "matrix": [0, 14], "x": 16.25, "y": 4.5}, + + {"label": "1", "matrix": [5, 11], "x": 18.5, "y": 4.5}, + {"label": "2", "matrix": [5, 12], "x": 19.5, "y": 4.5}, + {"label": "3", "matrix": [5, 13], "x": 20.5, "y": 4.5}, + {"label": "Enter", "matrix": [5, 14], "x": 21.5, "y": 4.5, "h": 2}, + + {"label": "Ctrl", "matrix": [2, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"label": "Alt", "matrix": [0, 15], "x": 2.5, "y": 5.5, "w": 1.5}, + {"matrix": [7, 6], "x": 4, "y": 5.5, "w": 7}, + {"label": "Alt", "matrix": [7, 15], "x": 11, "y": 5.5, "w": 1.5}, + {"label": "Ctrl", "matrix": [6, 0], "x": 13.5, "y": 5.5, "w": 1.5}, + + {"label": "\u2190", "matrix": [7, 14], "x": 15.25, "y": 5.5}, + {"label": "\u2193", "matrix": [7, 11], "x": 16.25, "y": 5.5}, + {"label": "\u2192", "matrix": [7, 12], "x": 17.25, "y": 5.5}, + + {"label": "0", "matrix": [0, 12], "x": 18.5, "y": 5.5, "w": 2}, + {"label": ".", "matrix": [0, 13], "x": 20.5, "y": 5.5} + ] + } + } +} diff --git a/keyboards/ibm/model_m/ctrl_m/keymaps/default/keymap.c b/keyboards/ibm/model_m/ctrl_m/keymaps/default/keymap.c new file mode 100644 index 0000000000..741cb1c4ba --- /dev/null +++ b/keyboards/ibm/model_m/ctrl_m/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2020 Michael Schwingen + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( /* Base layer - standard layout without any special functions */ + KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_INS , KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , KC_END , KC_PGDN, KC_P7, KC_P8 , KC_P9 , KC_PPLS, + KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT , KC_P4, KC_P5 , KC_P6 , + KC_LSFT, KC_NUBS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_P1, KC_P2 , KC_P3 , KC_PENT, + KC_LCTL, KC_LALT, KC_SPC , KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ) +}; diff --git a/keyboards/ibm/model_m/ctrl_m/readme.md b/keyboards/ibm/model_m/ctrl_m/readme.md new file mode 100644 index 0000000000..aab3a685f2 --- /dev/null +++ b/keyboards/ibm/model_m/ctrl_m/readme.md @@ -0,0 +1,27 @@ +# ctrl-M + +![ctrl-M PCB](https://i.imgur.com/wUqY8N3.jpeg) + +This is a configuration of QMK intended to be used with the [ctrl-M controller](https://github.com/nuess0r/ctrl-M). Many thanks to iw0rm3r, ashpil, mschwingen and all QMK contributors for working on similar projects and providing the foundation for this! + +* Keyboard Maintainer: [nuess0r](https://github.com/nuess0r) +* Hardware Supported: [ctrl-M](https://github.com/nuess0r/ctrl-m) +* Hardware Availability: [tindie shop](https://www.tindie.com/products/brain4free/ctrl-m/) + +Example how to compile for this keyboard (after setting up your build environment): + + make ibm/model_m/ctrl_m:default + +Flashing example for this keyboard: + + make ibm/model_m/ctrl_m:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the Escape key and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB and plug in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 39958fe85458ac9cc29694a0bb49c12e1b561d71 Mon Sep 17 00:00:00 2001 From: Lostdotfish Date: Mon, 9 Dec 2024 06:31:49 +0000 Subject: [PATCH 32/77] [Keyboard] Add Orbweaver (#24692) * Create README.md * Add files via upload * Create keymap.c * Update README.md * Update keyboards/lostdotfish/rp2040_orbweaver/README.md Co-authored-by: Drashna Jaelre * Update keyboards/lostdotfish/rp2040_orbweaver/keyboard.json Co-authored-by: Drashna Jaelre * Rename README.md to readme.md * Update readme.md * Update keyboards/lostdotfish/rp2040_orbweaver/keyboard.json Co-authored-by: Drashna Jaelre * Update keyboards/lostdotfish/rp2040_orbweaver/mcuconf.h Co-authored-by: Drashna Jaelre * Update keyboard.json * Update keyboards/lostdotfish/rp2040_orbweaver/config.h Co-authored-by: Drashna Jaelre * Update keyboard.json * Update mcuconf.h * Update rp2040_orbweaver.c * Delete keyboards/lostdotfish/rp2040_orbweaver/halconf.h * Update config.h * Update readme.md * Update readme.md * Update readme.md * Update keyboards/lostdotfish/rp2040_orbweaver/keyboard.json --------- Co-authored-by: Drashna Jaelre Co-authored-by: jack --- .../lostdotfish/rp2040_orbweaver/config.h | 21 +++ .../rp2040_orbweaver/keyboard.json | 141 ++++++++++++++++++ .../rp2040_orbweaver/keymaps/default/keymap.c | 78 ++++++++++ .../lostdotfish/rp2040_orbweaver/mcuconf.h | 9 ++ .../lostdotfish/rp2040_orbweaver/readme.md | 51 +++++++ .../rp2040_orbweaver/rp2040_orbweaver.c | 64 ++++++++ 6 files changed, 364 insertions(+) create mode 100644 keyboards/lostdotfish/rp2040_orbweaver/config.h create mode 100644 keyboards/lostdotfish/rp2040_orbweaver/keyboard.json create mode 100644 keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c create mode 100644 keyboards/lostdotfish/rp2040_orbweaver/mcuconf.h create mode 100644 keyboards/lostdotfish/rp2040_orbweaver/readme.md create mode 100644 keyboards/lostdotfish/rp2040_orbweaver/rp2040_orbweaver.c diff --git a/keyboards/lostdotfish/rp2040_orbweaver/config.h b/keyboards/lostdotfish/rp2040_orbweaver/config.h new file mode 100644 index 0000000000..da2709dc5b --- /dev/null +++ b/keyboards/lostdotfish/rp2040_orbweaver/config.h @@ -0,0 +1,21 @@ +/* Copyright 2024 lostdotfish +* +* 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 +#define I2C_DRIVER I2CD0 +#define I2C1_SDA_PIN GP12 +#define I2C1_SCL_PIN GP13 +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND diff --git a/keyboards/lostdotfish/rp2040_orbweaver/keyboard.json b/keyboards/lostdotfish/rp2040_orbweaver/keyboard.json new file mode 100644 index 0000000000..b711d9c4a8 --- /dev/null +++ b/keyboards/lostdotfish/rp2040_orbweaver/keyboard.json @@ -0,0 +1,141 @@ + +{ + "manufacturer": "Lostdotfish", + "keyboard_name": "rp2040_orbweaver", + "maintainer": "Lostdotfish", + "url": "https://geekhack.org/index.php?topic=124092.0", + "bootloader": "rp2040", + "processor": "RP2040", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "rgb_matrix": { + "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"x": 20, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 40, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 0, "y": 20, "flags": 4}, + {"matrix": [1, 0], "x": 20, "y": 20, "flags": 4}, + {"matrix": [1, 1], "x": 40, "y": 20, "flags": 4}, + {"matrix": [1, 2], "x": 60, "y": 20, "flags": 4}, + {"matrix": [1, 3], "x": 80, "y": 20, "flags": 4}, + {"matrix": [1, 4], "x": 0, "y": 40, "flags": 4}, + {"matrix": [2, 0], "x": 20, "y": 40, "flags": 4}, + {"matrix": [2, 1], "x": 40, "y": 40, "flags": 4}, + {"matrix": [2, 2], "x": 60, "y": 40, "flags": 4}, + {"matrix": [2, 3], "x": 80, "y": 40, "flags": 4}, + {"matrix": [2, 4], "x": 0, "y": 60, "flags": 4}, + {"matrix": [3, 0], "x": 20, "y": 60, "flags": 4}, + {"matrix": [3, 1], "x": 40, "y": 60, "flags": 4}, + {"matrix": [3, 2], "x": 60, "y": 60, "flags": 4}, + {"matrix": [3, 4], "x": 80, "y": 60, "flags": 4} + ], + "led_flush_limit": 26, + "led_process_limit": 5, + "max_brightness": 220, + "sleep": true, + "center_point": [40, 30], + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "flower_blooming": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_fractal": true, + "pixel_flow": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true, + "starlight": true, + "starlight_dual_sat": true, + "starlight_dual_hue": true, + "riverflow": true + } +}, + "matrix_pins": { + "rows": ["GP0", "GP1", "GP2", "GP3", "GP10", "GP9"], + "cols": ["GP4", "GP5", "GP8", "GP7", "GP6"] + }, + + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [4, 3], "x": 3, "y": 4}, + {"matrix": [4, 4], "x": 4, "y": 4}, + {"matrix": [5, 0], "x": 0, "y": 5}, + ] + } + } +} diff --git a/keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c b/keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c new file mode 100644 index 0000000000..f98f656bc9 --- /dev/null +++ b/keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c @@ -0,0 +1,78 @@ +/* Copyright 2024 lostdotfish +* +* 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 QMK_KEYBOARD_H + + +enum orbweaver_layers { + _DEFAULT, + _LETTERS, + _CONTROL +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +//generic default keymap with Razor defaults (+ 20 shifts layer) + + [_DEFAULT] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, + KC_LSFT, KC_Z, KC_X, KC_C, TO(1), + KC_LALT, KC_UP, KC_DOWN, KC_RIGHT, KC_LEFT, + KC_SPACE + ), + +//Second example keymap with all modifier keys replaced with numbers or letters + + [_LETTERS] = LAYOUT( + KC_0, KC_1, KC_2, KC_3, KC_4, + KC_I, KC_Q, KC_W, KC_E, KC_R, + KC_J, KC_A, KC_S, KC_D, KC_F, + KC_K, KC_Z, KC_X, KC_C, TO(2), + KC_L, KC_UP, KC_DOWN, KC_RIGHT, KC_LEFT, + KC_SPACE + ), + +//, RGB Contol Keymap + [_CONTROL] = LAYOUT( + RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, + RM_PREV, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, + RM_TOGG, KC_A, KC_S, KC_D, KC_F, + KC_K, KC_Z, KC_X, KC_C, TO(0), + KC_L, KC_UP, KC_DOWN, KC_RIGHT, KC_LEFT, + KC_SPACE + ) + +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + gpio_write_pin_high(GP23); + gpio_write_pin_high(GP24); + gpio_write_pin_high(GP25); + switch (get_highest_layer(state)) { + case _DEFAULT: + gpio_write_pin_low(GP23); + break; + case _LETTERS: + gpio_write_pin_low(GP25); + break; + case _CONTROL: + gpio_write_pin_low(GP24); + break; + } + return state; +} diff --git a/keyboards/lostdotfish/rp2040_orbweaver/mcuconf.h b/keyboards/lostdotfish/rp2040_orbweaver/mcuconf.h new file mode 100644 index 0000000000..f9b642b1f4 --- /dev/null +++ b/keyboards/lostdotfish/rp2040_orbweaver/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2023 zzeneg (@zzeneg) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef RP_I2C_USE_I2C0 +#define RP_I2C_USE_I2C0 TRUE diff --git a/keyboards/lostdotfish/rp2040_orbweaver/readme.md b/keyboards/lostdotfish/rp2040_orbweaver/readme.md new file mode 100644 index 0000000000..0a4a64d7d6 --- /dev/null +++ b/keyboards/lostdotfish/rp2040_orbweaver/readme.md @@ -0,0 +1,51 @@ +# rp2040_orbweaver +QMK firmware for RP2040 based MCU replacement PCB for the Razer Orbweaver gaming keypad + +![RP2040 Orbweaver](https://i.imgur.com/GCPRUbs.png) + + +This firmware is for the Razer Orbweaver Chroma keypad with a custom, plug and play, RP2040 MCU PCB. For installation instructions and board availability see [geekhack](https://geekhack.org/index.php?topic=124092.0). + +The firmware controls a 6x5 key matrix (4x5 keypad + 6 additional keys on the thumb pad and up to 4 additional keys added by user). It also controls a IS31FL3731 RGB Matrix controller (on the Chroma model) via I2C interface. This requires a single I2C Driver with 20 common anode RGB LEDs. + +Key 20 (bottom right) is used to switch layers. + +The default key map provides 3 preset layers. + +(layer 0) is a generic layer based on the original Razer defaults. +(layer 1) replaces modifier keys with letter keys. +(layer 2) replaces the 2 top rows with RGB control keys. + +The three LEDs on the thumb pad indicate the active layer. + +Blue = layer 0 +Green = layer 1 +Yellow = layer 3 + +All LEDs will be off when any other (user added) layout is activated + +A set of RGB animations are included in confg.h. These are controlled by activating the Yellow layer and using keys 01 - 11 (11 toggles the lighting on and off - see /keymaps/default/keymap.c for more information) + +Many thanks to a_marmot. Without his original handwired project, this board would not have been possible. His original work can be found here. [geekhack](https://geekhack.org/index.php?topic=119396.0). + +* Keyboard Maintainer: [Lostdotfish](https://github.com/Lostdotfish) +* Hardware Supported: RP2040 + IS31FL3731 +* Hardware Availability: [https://geekhack.org/index.php?topic=124092.0](https://geekhack.org/index.php?topic=124092.0) + +Make example for this keyboard (after setting up your build environment): + + make lostdotfish/rp2040_orbweaver:default + +Flashing example for this keyboard: + + make lostdotfish/rp2040_orbweaver:default:flash + + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* Press and hold the upper left hand key on the main keyboard while you plug in the USB. +* Press and release the boot button on the top of the RP2040_Orbweaver v2.0 inside the modded unit. diff --git a/keyboards/lostdotfish/rp2040_orbweaver/rp2040_orbweaver.c b/keyboards/lostdotfish/rp2040_orbweaver/rp2040_orbweaver.c new file mode 100644 index 0000000000..a1ba7c8d1f --- /dev/null +++ b/keyboards/lostdotfish/rp2040_orbweaver/rp2040_orbweaver.c @@ -0,0 +1,64 @@ +/* Copyright 2024 lostdotfish +* +* 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 "rgb_matrix.h" +#include "quantum.h" + +void keyboard_pre_init_kb(void) { + // Initialize Reset pins + + gpio_set_pin_output(GP23); + gpio_set_pin_output(GP24); + gpio_set_pin_output(GP25); + + gpio_write_pin_high(GP23); + gpio_write_pin_high(GP24); + gpio_write_pin_high(GP25); + + keyboard_pre_init_user(); +} + + + +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, C9_1, C8_1, C7_1}, //top left key. + {0, C9_2, C8_2, C7_2}, + {0, C9_3, C8_3, C7_3}, + {0, C9_4, C8_4, C7_4}, + {0, C9_5, C8_5, C7_5}, //top right key. + {0, C9_6, C8_6, C7_6}, + {0, C9_7, C8_7, C6_6}, + {0, C9_8, C7_7, C6_7}, + {0, C1_8, C2_8, C3_8}, + {0, C1_7, C2_7, C3_7}, + {0, C1_6, C2_6, C3_6}, + {0, C1_5, C2_5, C3_5}, + {0, C1_4, C2_4, C3_4}, + {0, C1_3, C2_3, C3_3}, + {0, C1_2, C2_2, C4_3}, + {0, C1_1, C3_2, C4_2}, //lower left key + {0, C9_9, C8_9, C7_9}, + {0, C9_10, C8_10, C7_10}, + {0, C9_11, C8_11, C7_11}, + {0, C9_12, C8_12, C7_12} //lower right key + +}; From 388c3c6d1256a2b66a3ac23d28d8f8937ffdc039 Mon Sep 17 00:00:00 2001 From: Cipulot <40441626+Cipulot@users.noreply.github.com> Date: Mon, 9 Dec 2024 07:33:40 +0100 Subject: [PATCH 33/77] Addition of EC65X (#24648) --- keyboards/cipulot/ec_65x/config.h | 69 +++ keyboards/cipulot/ec_65x/halconf.h | 23 + keyboards/cipulot/ec_65x/keyboard.json | 420 ++++++++++++++++++ .../ec_65x/keymaps/65_ansi_blocker/keymap.c | 42 ++ .../keymaps/65_ansi_blocker_tsangan/keymap.c | 42 ++ .../ec_65x/keymaps/65_iso_blocker/keymap.c | 42 ++ .../keymaps/65_iso_blocker_tsangan/keymap.c | 42 ++ .../cipulot/ec_65x/keymaps/default/keymap.c | 42 ++ keyboards/cipulot/ec_65x/mcuconf.h | 25 ++ keyboards/cipulot/ec_65x/post_rules.mk | 1 + keyboards/cipulot/ec_65x/readme.md | 26 ++ keyboards/cipulot/ec_65x/rules.mk | 1 + 12 files changed, 775 insertions(+) create mode 100644 keyboards/cipulot/ec_65x/config.h create mode 100644 keyboards/cipulot/ec_65x/halconf.h create mode 100644 keyboards/cipulot/ec_65x/keyboard.json create mode 100644 keyboards/cipulot/ec_65x/keymaps/65_ansi_blocker/keymap.c create mode 100644 keyboards/cipulot/ec_65x/keymaps/65_ansi_blocker_tsangan/keymap.c create mode 100644 keyboards/cipulot/ec_65x/keymaps/65_iso_blocker/keymap.c create mode 100644 keyboards/cipulot/ec_65x/keymaps/65_iso_blocker_tsangan/keymap.c create mode 100644 keyboards/cipulot/ec_65x/keymaps/default/keymap.c create mode 100644 keyboards/cipulot/ec_65x/mcuconf.h create mode 100644 keyboards/cipulot/ec_65x/post_rules.mk create mode 100644 keyboards/cipulot/ec_65x/readme.md create mode 100644 keyboards/cipulot/ec_65x/rules.mk diff --git a/keyboards/cipulot/ec_65x/config.h b/keyboards/cipulot/ec_65x/config.h new file mode 100644 index 0000000000..142f7a140e --- /dev/null +++ b/keyboards/cipulot/ec_65x/config.h @@ -0,0 +1,69 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +#define MATRIX_ROW_PINS \ + { A8, A15, B13, B8, B9} + +#define AMUX_COUNT 1 +#define AMUX_MAX_COLS_COUNT 16 + +#define AMUX_EN_PINS \ + { B5 } + +#define AMUX_SEL_PINS \ + { B6, B7, B4, B3 } + +#define AMUX_COL_CHANNELS_SIZES \ + { 16 } + +#define AMUX_0_COL_CHANNELS \ + { 7, 6, 5, 4, 3, 2, 1, 0, 8, 15, 14, 12, 11, 13, 9, 10} + +#define AMUX_COL_CHANNELS AMUX_0_COL_CHANNELS + +#define DISCHARGE_PIN A2 +#define ANALOG_PORT A3 + +#define DEFAULT_ACTUATION_MODE 0 +#define DEFAULT_MODE_0_ACTUATION_LEVEL 550 +#define DEFAULT_MODE_0_RELEASE_LEVEL 500 +#define DEFAULT_MODE_1_INITIAL_DEADZONE_OFFSET DEFAULT_MODE_0_ACTUATION_LEVEL +#define DEFAULT_MODE_1_ACTUATION_OFFSET 70 +#define DEFAULT_MODE_1_RELEASE_OFFSET 70 +#define DEFAULT_EXTREMUM 1023 +#define EXPECTED_NOISE_FLOOR 0 +#define NOISE_FLOOR_THRESHOLD 50 +#define BOTTOMING_CALIBRATION_THRESHOLD 50 +#define DEFAULT_NOISE_FLOOR_SAMPLING_COUNT 30 +#define DEFAULT_BOTTOMING_READING 1023 +#define DEFAULT_CALIBRATION_STARTER true + +#define DISCHARGE_TIME 10 + +#define EECONFIG_KB_DATA_SIZE 169 + +// PWM driver with direct memory access (DMA) support +#define WS2812_PWM_COMPLEMENTARY_OUTPUT +#define WS2812_PWM_DRIVER PWMD1 +#define WS2812_PWM_CHANNEL 3 +#define WS2812_PWM_PAL_MODE 1 +#define WS2812_DMA_STREAM STM32_DMA2_STREAM5 +#define WS2812_DMA_CHANNEL 6 diff --git a/keyboards/cipulot/ec_65x/halconf.h b/keyboards/cipulot/ec_65x/halconf.h new file mode 100644 index 0000000000..fb0f77d82f --- /dev/null +++ b/keyboards/cipulot/ec_65x/halconf.h @@ -0,0 +1,23 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_ADC TRUE +#define HAL_USE_PAL TRUE +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/cipulot/ec_65x/keyboard.json b/keyboards/cipulot/ec_65x/keyboard.json new file mode 100644 index 0000000000..2baf3ea5f0 --- /dev/null +++ b/keyboards/cipulot/ec_65x/keyboard.json @@ -0,0 +1,420 @@ +{ + "manufacturer": "Cipulot", + "keyboard_name": "EC 65X", + "maintainer": "Cipulot", + "bootloader": "stm32-dfu", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "eeprom": { + "wear_leveling": { + "backing_size": 4096 + } + }, + "features": { + "bootmagic": false, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "processor": "STM32F411", + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "led_count": 19 + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x6BD1", + "shared_endpoint": { + "keyboard": true + }, + "vid": "0x6369" + }, + "ws2812": { + "driver": "pwm", + "pin": "B15" + }, + "layouts": { + "LAYOUT_65_ansi_blocker": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 15], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 15], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [1, 15], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 15], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [1, 15], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 15], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + }, + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 0.75}, + {"matrix": [1, 14], "x": 14.25, "y": 1, "w": 0.75}, + {"matrix": [1, 15], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25}, + {"matrix": [2, 15], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 4], "x": 3.75, "y": 4, "w": 2.25}, + {"matrix": [4, 6], "x": 6, "y": 4, "w": 1.25}, + {"matrix": [4, 8], "x": 7.25, "y": 4, "w": 2.75}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/cipulot/ec_65x/keymaps/65_ansi_blocker/keymap.c b/keyboards/cipulot/ec_65x/keymaps/65_ansi_blocker/keymap.c new file mode 100644 index 0000000000..9af029b2e3 --- /dev/null +++ b/keyboards/cipulot/ec_65x/keymaps/65_ansi_blocker/keymap.c @@ -0,0 +1,42 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_65_ansi_blocker( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_65_ansi_blocker( + _______, 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_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, MO(2), _______, _______, _______), + + [2] = LAYOUT_65_ansi_blocker( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_65x/keymaps/65_ansi_blocker_tsangan/keymap.c b/keyboards/cipulot/ec_65x/keymaps/65_ansi_blocker_tsangan/keymap.c new file mode 100644 index 0000000000..69f17a0ae4 --- /dev/null +++ b/keyboards/cipulot/ec_65x/keymaps/65_ansi_blocker_tsangan/keymap.c @@ -0,0 +1,42 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_65_ansi_blocker_tsangan( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_65_ansi_blocker_tsangan( + _______, 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_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, MO(2), _______, _______, _______), + + [2] = LAYOUT_65_ansi_blocker_tsangan( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_65x/keymaps/65_iso_blocker/keymap.c b/keyboards/cipulot/ec_65x/keymaps/65_iso_blocker/keymap.c new file mode 100644 index 0000000000..0d695c2978 --- /dev/null +++ b/keyboards/cipulot/ec_65x/keymaps/65_iso_blocker/keymap.c @@ -0,0 +1,42 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_65_iso_blocker( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_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_ENTER, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_PGDN, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_65_iso_blocker( + _______, 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_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, MO(2), _______, _______, _______), + + [2] = LAYOUT_65_iso_blocker( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_65x/keymaps/65_iso_blocker_tsangan/keymap.c b/keyboards/cipulot/ec_65x/keymaps/65_iso_blocker_tsangan/keymap.c new file mode 100644 index 0000000000..867167cdea --- /dev/null +++ b/keyboards/cipulot/ec_65x/keymaps/65_iso_blocker_tsangan/keymap.c @@ -0,0 +1,42 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_65_iso_blocker_tsangan( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_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_ENTER, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_PGDN, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_65_iso_blocker_tsangan( + _______, 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_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, MO(2), _______, _______, _______), + + [2] = LAYOUT_65_iso_blocker_tsangan( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_65x/keymaps/default/keymap.c b/keyboards/cipulot/ec_65x/keymaps/default/keymap.c new file mode 100644 index 0000000000..e7fb368b0c --- /dev/null +++ b/keyboards/cipulot/ec_65x/keymaps/default/keymap.c @@ -0,0 +1,42 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_all( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_ENTER, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENTER, KC_PGDN, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_all( + _______, 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_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______), + + [2] = LAYOUT_all( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_65x/mcuconf.h b/keyboards/cipulot/ec_65x/mcuconf.h new file mode 100644 index 0000000000..88185d8e9d --- /dev/null +++ b/keyboards/cipulot/ec_65x/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE + +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/cipulot/ec_65x/post_rules.mk b/keyboards/cipulot/ec_65x/post_rules.mk new file mode 100644 index 0000000000..5dba48cc5f --- /dev/null +++ b/keyboards/cipulot/ec_65x/post_rules.mk @@ -0,0 +1 @@ +include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/ec_65x/readme.md b/keyboards/cipulot/ec_65x/readme.md new file mode 100644 index 0000000000..786d2b4504 --- /dev/null +++ b/keyboards/cipulot/ec_65x/readme.md @@ -0,0 +1,26 @@ +# EC 65X + +![EC 65X PCB](https://i.imgur.com/8B86zsO.png) + +Universal 65% Electrostatic Capacitive PCB, with multi-layout support. + +* Keyboard Maintainer: [cipulot](https://github.com/cipulot) +* Hardware Supported: EC 65X +* Hardware Availability: TBD + +Make example for this keyboard (after setting up your build environment): + + make cipulot/ec_66x:default + +Flashing example for this keyboard: + + make cipulot/ec_66x:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Physical button**: Long press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cipulot/ec_65x/rules.mk b/keyboards/cipulot/ec_65x/rules.mk new file mode 100644 index 0000000000..3aa0e2bf06 --- /dev/null +++ b/keyboards/cipulot/ec_65x/rules.mk @@ -0,0 +1 @@ +OPT = 2 From 847257c3c757c475eb9f47493252cc55b0e08f51 Mon Sep 17 00:00:00 2001 From: Cipulot <40441626+Cipulot@users.noreply.github.com> Date: Mon, 9 Dec 2024 07:34:07 +0100 Subject: [PATCH 34/77] Addition of EC TKL X (#24647) --- keyboards/cipulot/ec_tkl_x/config.h | 68 ++ keyboards/cipulot/ec_tkl_x/halconf.h | 23 + keyboards/cipulot/ec_tkl_x/keyboard.json | 714 ++++++++++++++++++ .../cipulot/ec_tkl_x/keymaps/default/keymap.c | 45 ++ .../keymaps/tkl_ansi_tsangan/keymap.c | 45 ++ .../keymaps/tkl_f13_ansi_tsangan/keymap.c | 45 ++ .../keymaps/tkl_f13_iso_tsangan/keymap.c | 45 ++ .../ec_tkl_x/keymaps/tkl_f13_jis/keymap.c | 47 ++ .../ec_tkl_x/keymaps/tkl_iso_tsangan/keymap.c | 45 ++ .../cipulot/ec_tkl_x/keymaps/tkl_jis/keymap.c | 47 ++ keyboards/cipulot/ec_tkl_x/mcuconf.h | 25 + keyboards/cipulot/ec_tkl_x/post_rules.mk | 1 + keyboards/cipulot/ec_tkl_x/readme.md | 26 + keyboards/cipulot/ec_tkl_x/rules.mk | 1 + 14 files changed, 1177 insertions(+) create mode 100644 keyboards/cipulot/ec_tkl_x/config.h create mode 100644 keyboards/cipulot/ec_tkl_x/halconf.h create mode 100644 keyboards/cipulot/ec_tkl_x/keyboard.json create mode 100644 keyboards/cipulot/ec_tkl_x/keymaps/default/keymap.c create mode 100644 keyboards/cipulot/ec_tkl_x/keymaps/tkl_ansi_tsangan/keymap.c create mode 100644 keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_ansi_tsangan/keymap.c create mode 100644 keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_iso_tsangan/keymap.c create mode 100644 keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_jis/keymap.c create mode 100644 keyboards/cipulot/ec_tkl_x/keymaps/tkl_iso_tsangan/keymap.c create mode 100644 keyboards/cipulot/ec_tkl_x/keymaps/tkl_jis/keymap.c create mode 100644 keyboards/cipulot/ec_tkl_x/mcuconf.h create mode 100644 keyboards/cipulot/ec_tkl_x/post_rules.mk create mode 100644 keyboards/cipulot/ec_tkl_x/readme.md create mode 100644 keyboards/cipulot/ec_tkl_x/rules.mk diff --git a/keyboards/cipulot/ec_tkl_x/config.h b/keyboards/cipulot/ec_tkl_x/config.h new file mode 100644 index 0000000000..04d19a5f54 --- /dev/null +++ b/keyboards/cipulot/ec_tkl_x/config.h @@ -0,0 +1,68 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define MATRIX_ROWS 6 +#define MATRIX_COLS 18 + +#define UNUSED_POSITIONS_LIST { {0, 13}, {3, 14}, {3, 15}, {3, 16}, {3, 17}, {4, 15}, {4, 17}, {5, 3}, {5, 5}, {5, 7}, {5, 10}, {5, 15} } + +#define MATRIX_ROW_PINS {A15, B5, B12, B10, B6, B7} + +#define AMUX_COUNT 2 +#define AMUX_MAX_COLS_COUNT 15 + +#define AMUX_EN_PINS {B13, A10} + +#define AMUX_SEL_PINS {A8, A9, B14, B15} + +#define AMUX_COL_CHANNELS_SIZES {15, 3} + +#define AMUX_0_COL_CHANNELS {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14} + +#define AMUX_1_COL_CHANNELS {3, 0, 1} + +#define AMUX_COL_CHANNELS AMUX_0_COL_CHANNELS, AMUX_1_COL_CHANNELS + +#define DISCHARGE_PIN A4 +#define ANALOG_PORT A2 + +#define DEFAULT_ACTUATION_MODE 0 +#define DEFAULT_MODE_0_ACTUATION_LEVEL 550 +#define DEFAULT_MODE_0_RELEASE_LEVEL 500 +#define DEFAULT_MODE_1_INITIAL_DEADZONE_OFFSET DEFAULT_MODE_0_ACTUATION_LEVEL +#define DEFAULT_MODE_1_ACTUATION_OFFSET 70 +#define DEFAULT_MODE_1_RELEASE_OFFSET 70 +#define DEFAULT_EXTREMUM 1023 +#define EXPECTED_NOISE_FLOOR 0 +#define NOISE_FLOOR_THRESHOLD 50 +#define BOTTOMING_CALIBRATION_THRESHOLD 50 +#define DEFAULT_NOISE_FLOOR_SAMPLING_COUNT 30 +#define DEFAULT_BOTTOMING_READING 1023 +#define DEFAULT_CALIBRATION_STARTER true + +#define DISCHARGE_TIME 10 + +// #define DEBUG_MATRIX_SCAN_RATE +#define EECONFIG_KB_DATA_SIZE 225 + +// PWM driver with direct memory access (DMA) support +#define WS2812_PWM_DRIVER PWMD3 +#define WS2812_PWM_CHANNEL 1 +#define WS2812_PWM_PAL_MODE 2 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 +#define WS2812_DMA_CHANNEL 5 diff --git a/keyboards/cipulot/ec_tkl_x/halconf.h b/keyboards/cipulot/ec_tkl_x/halconf.h new file mode 100644 index 0000000000..fb0f77d82f --- /dev/null +++ b/keyboards/cipulot/ec_tkl_x/halconf.h @@ -0,0 +1,23 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_ADC TRUE +#define HAL_USE_PAL TRUE +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/cipulot/ec_tkl_x/keyboard.json b/keyboards/cipulot/ec_tkl_x/keyboard.json new file mode 100644 index 0000000000..9149fb1d3b --- /dev/null +++ b/keyboards/cipulot/ec_tkl_x/keyboard.json @@ -0,0 +1,714 @@ +{ + "manufacturer": "Cipulot", + "keyboard_name": "EC TKL X", + "maintainer": "Cipulot", + "bootloader": "stm32-dfu", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "eeprom": { + "wear_leveling": { + "backing_size": 8192 + } + }, + "features": { + "bootmagic": false, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "processor": "STM32F411", + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "led_count": 22 + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x6BC8", + "shared_endpoint": { + "keyboard": true + }, + "vid": "0x6369" + }, + "ws2812": { + "driver": "pwm", + "pin": "B4" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 0.75}, + {"matrix": [2, 14], "x": 14.25, "y": 2.25, "w": 0.75}, + {"matrix": [2, 15], "x": 15.25, "y": 2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [3, 13], "x": 13.75, "y": 3.25, "w": 1.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25}, + {"matrix": [4, 13], "x": 13.25, "y": 4.25, "w": 0.75}, + {"matrix": [4, 14], "x": 14, "y": 4.25}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 4], "x": 4, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 5.5, "y": 5.25, "w": 2.5}, + {"matrix": [5, 8], "x": 8, "y": 5.25, "w": 1.5}, + {"matrix": [5, 9], "x": 9.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 15], "x": 15.25, "y": 2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 15], "x": 15.25, "y": 2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_iso_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 14], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [2, 15], "x": 15.25, "y": 2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_f13_jis": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 14], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [2, 15], "x": 15.25, "y": 2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25}, + {"matrix": [4, 13], "x": 13.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 4], "x": 4, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 5.5, "y": 5.25, "w": 2.5}, + {"matrix": [5, 8], "x": 8, "y": 5.25, "w": 1.5}, + {"matrix": [5, 9], "x": 9.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 14], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [2, 15], "x": 15.25, "y": 2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_jis": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [0, 16], "x": 16.25, "y": 0}, + {"matrix": [0, 17], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [1, 15], "x": 15.25, "y": 1.25}, + {"matrix": [1, 16], "x": 16.25, "y": 1.25}, + {"matrix": [1, 17], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 14], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [2, 15], "x": 15.25, "y": 2.25}, + {"matrix": [2, 16], "x": 16.25, "y": 2.25}, + {"matrix": [2, 17], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25}, + {"matrix": [4, 13], "x": 13.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 16], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 4], "x": 4, "y": 5.25, "w": 1.5}, + {"matrix": [5, 6], "x": 5.5, "y": 5.25, "w": 2.5}, + {"matrix": [5, 8], "x": 8, "y": 5.25, "w": 1.5}, + {"matrix": [5, 9], "x": 9.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 16], "x": 16.25, "y": 5.25}, + {"matrix": [5, 17], "x": 17.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/cipulot/ec_tkl_x/keymaps/default/keymap.c b/keyboards/cipulot/ec_tkl_x/keymaps/default/keymap.c new file mode 100644 index 0000000000..9a357e2cf3 --- /dev/null +++ b/keyboards/cipulot/ec_tkl_x/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_ENTER, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENTER, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______), + + [2] = LAYOUT_all( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_tkl_x/keymaps/tkl_ansi_tsangan/keymap.c b/keyboards/cipulot/ec_tkl_x/keymaps/tkl_ansi_tsangan/keymap.c new file mode 100644 index 0000000000..86b0699986 --- /dev/null +++ b/keyboards/cipulot/ec_tkl_x/keymaps/tkl_ansi_tsangan/keymap.c @@ -0,0 +1,45 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_tkl_ansi_tsangan( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_tkl_ansi_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______), + + [2] = LAYOUT_tkl_ansi_tsangan( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_ansi_tsangan/keymap.c b/keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_ansi_tsangan/keymap.c new file mode 100644 index 0000000000..eece893fe4 --- /dev/null +++ b/keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_ansi_tsangan/keymap.c @@ -0,0 +1,45 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_tkl_f13_ansi_tsangan( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_tkl_f13_ansi_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______), + + [2] = LAYOUT_tkl_f13_ansi_tsangan( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_iso_tsangan/keymap.c b/keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_iso_tsangan/keymap.c new file mode 100644 index 0000000000..9af7db9008 --- /dev/null +++ b/keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_iso_tsangan/keymap.c @@ -0,0 +1,45 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_tkl_f13_ansi_tsangan( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_tkl_f13_ansi_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______), + + [2] = LAYOUT_tkl_f13_ansi_tsangan( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_jis/keymap.c b/keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_jis/keymap.c new file mode 100644 index 0000000000..8e0fd18d0b --- /dev/null +++ b/keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_jis/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +#include "keymap_japanese.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_tkl_f13_jis( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SCRL, KC_PAUS, + JP_ZKHK, JP_1, JP_2, JP_3, JP_4, JP_5, JP_6, JP_7, JP_8, JP_9, JP_0, JP_MINS, JP_CIRC, JP_YEN, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, JP_Q, JP_W, JP_E, JP_R, JP_T, JP_Y, JP_U, JP_I, JP_O, JP_P, JP_AT, JP_LBRC, KC_ENTER, KC_DEL, KC_END, KC_PGDN, + JP_EISU, JP_A, JP_S, JP_D, JP_F, JP_G, JP_H, JP_J, JP_K, JP_L, JP_SCLN, JP_COLN, JP_RBRC, + KC_LSFT, JP_Z, JP_X, JP_C, JP_V, JP_B, JP_N, JP_M, JP_COMM, JP_DOT, JP_SLSH, JP_BSLS, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, JP_MHEN, KC_SPC, JP_HENK, JP_KANA, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_tkl_f13_jis( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______), + + [2] = LAYOUT_tkl_f13_jis( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_tkl_x/keymaps/tkl_iso_tsangan/keymap.c b/keyboards/cipulot/ec_tkl_x/keymaps/tkl_iso_tsangan/keymap.c new file mode 100644 index 0000000000..bae33d072d --- /dev/null +++ b/keyboards/cipulot/ec_tkl_x/keymaps/tkl_iso_tsangan/keymap.c @@ -0,0 +1,45 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_tkl_ansi_tsangan( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_tkl_ansi_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______), + + [2] = LAYOUT_tkl_ansi_tsangan( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_tkl_x/keymaps/tkl_jis/keymap.c b/keyboards/cipulot/ec_tkl_x/keymaps/tkl_jis/keymap.c new file mode 100644 index 0000000000..f445d71d6e --- /dev/null +++ b/keyboards/cipulot/ec_tkl_x/keymaps/tkl_jis/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +#include "keymap_japanese.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_tkl_jis( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + JP_ZKHK, JP_1, JP_2, JP_3, JP_4, JP_5, JP_6, JP_7, JP_8, JP_9, JP_0, JP_MINS, JP_CIRC, JP_YEN, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, JP_Q, JP_W, JP_E, JP_R, JP_T, JP_Y, JP_U, JP_I, JP_O, JP_P, JP_AT, JP_LBRC, KC_ENTER, KC_DEL, KC_END, KC_PGDN, + JP_EISU, JP_A, JP_S, JP_D, JP_F, JP_G, JP_H, JP_J, JP_K, JP_L, JP_SCLN, JP_COLN, JP_RBRC, + KC_LSFT, JP_Z, JP_X, JP_C, JP_V, JP_B, JP_N, JP_M, JP_COMM, JP_DOT, JP_SLSH, JP_BSLS, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, JP_MHEN, KC_SPC, JP_HENK, JP_KANA, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_tkl_jis( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______), + + [2] = LAYOUT_tkl_jis( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_tkl_x/mcuconf.h b/keyboards/cipulot/ec_tkl_x/mcuconf.h new file mode 100644 index 0000000000..99b613c493 --- /dev/null +++ b/keyboards/cipulot/ec_tkl_x/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright 2024 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE + +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/cipulot/ec_tkl_x/post_rules.mk b/keyboards/cipulot/ec_tkl_x/post_rules.mk new file mode 100644 index 0000000000..5dba48cc5f --- /dev/null +++ b/keyboards/cipulot/ec_tkl_x/post_rules.mk @@ -0,0 +1 @@ +include keyboards/cipulot/common/common_cipulot.mk diff --git a/keyboards/cipulot/ec_tkl_x/readme.md b/keyboards/cipulot/ec_tkl_x/readme.md new file mode 100644 index 0000000000..0e37c23762 --- /dev/null +++ b/keyboards/cipulot/ec_tkl_x/readme.md @@ -0,0 +1,26 @@ +# EC TKL X + +![EC TKL X PCB](https://i.imgur.com/pdkT14y.png) + +Universal TKL Electrostatic Capacitive PCB, with multi-layout support (F12/F13 version). + +* Keyboard Maintainer: [cipulot](https://github.com/cipulot) +* Hardware Supported: EC TKL X PCB +* Hardware Availability: TBD + +Make example for this keyboard (after setting up your build environment): + + make cipulot/ec_tkl_x:default + +Flashing example for this keyboard: + + make cipulot/ec_tkl_x:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Physical reset**: Long press the button on the bottom on the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cipulot/ec_tkl_x/rules.mk b/keyboards/cipulot/ec_tkl_x/rules.mk new file mode 100644 index 0000000000..3aa0e2bf06 --- /dev/null +++ b/keyboards/cipulot/ec_tkl_x/rules.mk @@ -0,0 +1 @@ +OPT = 2 From d283e27bf870aaf24d35720c8eb7f8fc9979562c Mon Sep 17 00:00:00 2001 From: Lostdotfish Date: Wed, 11 Dec 2024 20:29:36 +0000 Subject: [PATCH 35/77] [Keymap] Update rp2040_orbweaver (#24704) * Update keymap.c enhancement - power down indicator LEDs when host sleeps * Update keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c Co-authored-by: jack * Update keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c Co-authored-by: jack --------- Co-authored-by: jack --- .../rp2040_orbweaver/keymaps/default/keymap.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c b/keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c index f98f656bc9..df59752ce0 100644 --- a/keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c +++ b/keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c @@ -76,3 +76,15 @@ layer_state_t layer_state_set_user(layer_state_t state) { } return state; } +void suspend_power_down_kb(void) { + // code will run multiple times while keyboard is suspended + gpio_write_pin_high(GP23); + gpio_write_pin_high(GP24); + gpio_write_pin_high(GP25); + suspend_power_down_user(); +} + +void suspend_wakeup_init_kb(void) { + layer_state_set_kb(layer_state); + suspend_wakeup_init_user(); +} From d589dbb05b31a318086cbf01588230831140d95f Mon Sep 17 00:00:00 2001 From: Guido Bartolucci Date: Thu, 12 Dec 2024 12:59:07 -0500 Subject: [PATCH 36/77] Added VT-40 keyboard (#24706) * Added VT-40 keyboard * Remove commented out code. Oops Co-authored-by: jack * Change name of planck_layers to layers. Co-authored-by: jack * Update keyboards/vt40/keymaps/default/keymap.c Co-authored-by: jack * Removed unused features that I stole from the contra config * Removed unused features that I stole from the contra config * fixed lower/raise keys * make adjust layer accessible * Added adjust key for real this time * Update keyboards/vt40/keyboard.json Co-authored-by: Duncan Sutherland --------- Co-authored-by: jack Co-authored-by: Duncan Sutherland --- keyboards/vt40/keyboard.json | 91 +++++++++++++++ keyboards/vt40/keymaps/default/keymap.c | 144 ++++++++++++++++++++++++ keyboards/vt40/keymaps/default/rules.mk | 1 + keyboards/vt40/readme.md | 24 ++++ 4 files changed, 260 insertions(+) create mode 100644 keyboards/vt40/keyboard.json create mode 100644 keyboards/vt40/keymaps/default/keymap.c create mode 100644 keyboards/vt40/keymaps/default/rules.mk create mode 100644 keyboards/vt40/readme.md diff --git a/keyboards/vt40/keyboard.json b/keyboards/vt40/keyboard.json new file mode 100644 index 0000000000..4a8178b8d5 --- /dev/null +++ b/keyboards/vt40/keyboard.json @@ -0,0 +1,91 @@ +{ + "manufacturer": "vladantrhlik", + "keyboard_name": "vt40", + "maintainer": "vladantrhlik", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP6", "GP7", "GP8", "GP9", "GP10", "GP11", "GP12", "GP13", "GP21", "GP20", "GP19", "GP18", "GP22"], + "rows": ["GP2", "GP3", "GP4", "GP5"] + }, + "encoder": { + "rotary": [ + {"pin_a": "GP26", "pin_b": "GP16"}, + {"pin_a": "GP27", "pin_b": "GP17"}, + ] + }, + "processor": "RP2040", + "url": "https://github.com/vladantrhlik/VT-40", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "community_layouts": ["ortho_4x12"], + "layouts": { + "LAYOUT_ortho_4x12": { + "layout": [ + {"label": "Tab", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "Q", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "W", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "E", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "R", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "T", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "Y", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "U", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "I", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "O", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "P", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "BackSpace", "matrix": [0, 11], "x": 11, "y": 0}, + + {"label": "Esc", "matrix": [1, 0], "x": 0, "y": 1}, + {"label": "A", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "S", "matrix": [1, 2], "x": 2, "y": 1}, + {"label": "D", "matrix": [1, 3], "x": 3, "y": 1}, + {"label": "F", "matrix": [1, 4], "x": 4, "y": 1}, + {"label": "G", "matrix": [1, 5], "x": 5, "y": 1}, + {"label": "H", "matrix": [1, 6], "x": 6, "y": 1}, + {"label": "J", "matrix": [1, 7], "x": 7, "y": 1}, + {"label": "K", "matrix": [1, 8], "x": 8, "y": 1}, + {"label": "L", "matrix": [1, 9], "x": 9, "y": 1}, + {"label": ";", "matrix": [1, 10], "x": 10, "y": 1}, + {"label": "'", "matrix": [1, 11], "x": 11, "y": 1}, + + {"label": "Shift", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "Z", "matrix": [2, 1], "x": 1, "y": 2}, + {"label": "X", "matrix": [2, 2], "x": 2, "y": 2}, + {"label": "C", "matrix": [2, 3], "x": 3, "y": 2}, + {"label": "V", "matrix": [2, 4], "x": 4, "y": 2}, + {"label": "B", "matrix": [2, 5], "x": 5, "y": 2}, + {"label": "N", "matrix": [2, 6], "x": 6, "y": 2}, + {"label": "M", "matrix": [2, 7], "x": 7, "y": 2}, + {"label": ",", "matrix": [2, 8], "x": 8, "y": 2}, + {"label": ".", "matrix": [2, 9], "x": 9, "y": 2}, + {"label": "/", "matrix": [2, 10], "x": 10, "y": 2}, + {"label": "Return", "matrix": [2, 11], "x": 11, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3}, + {"label": "Ctrl", "matrix": [3, 1], "x": 1, "y": 3}, + {"label": "Alt", "matrix": [3, 2], "x": 2, "y": 3}, + {"label": "Super", "matrix": [3, 3], "x": 3, "y": 3}, + {"label": "⇓", "matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 5], "x": 5, "y": 3}, + {"matrix": [3, 6], "x": 6, "y": 3}, + {"label": "⇑", "matrix": [3, 7], "x": 7, "y": 3}, + {"label": "←", "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} + ] + } + } +} diff --git a/keyboards/vt40/keymaps/default/keymap.c b/keyboards/vt40/keymaps/default/keymap.c new file mode 100644 index 0000000000..95bd31083f --- /dev/null +++ b/keyboards/vt40/keymaps/default/keymap.c @@ -0,0 +1,144 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + + +enum layers { + _QWERTY, + _COLEMAK, + _DVORAK, + _LOWER, + _RAISE, + _ADJUST +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define ADJUST MO(_ADJUST) +#define QWERTY PDF(_QWERTY) +#define COLEMAK PDF(_COLEMAK) +#define DVORAK PDF(_DVORAK) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Caps | Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + [_QWERTY] = LAYOUT_ortho_4x12( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + KC_CAPS, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Caps | Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + [_COLEMAK] = LAYOUT_ortho_4x12( + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + KC_CAPS, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Caps | Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + [_DVORAK] = LAYOUT_ortho_4x12( + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, + KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , + KC_CAPS, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + [_LOWER] = LAYOUT_ortho_4x12( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + /* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |ADJUST| | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + [_RAISE] = LAYOUT_ortho_4x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + ADJUST, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + /* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | |AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_ADJUST] = LAYOUT_ortho_4x12( + _______, QK_BOOT, DB_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL , + _______, _______, _______, _______, _______, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [4] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [5] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) } +}; +#endif diff --git a/keyboards/vt40/keymaps/default/rules.mk b/keyboards/vt40/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/vt40/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/vt40/readme.md b/keyboards/vt40/readme.md new file mode 100644 index 0000000000..0d87b01134 --- /dev/null +++ b/keyboards/vt40/readme.md @@ -0,0 +1,24 @@ +# VT-40 + +* Keyboard Maintainer: [Guido Bartolucci](https://github.com/guidoism) +* Hardware Supported: Raspberry Pi Pico (RP2040) +* Hardware Availability: https://github.com/vladantrhlik/VT-40 + +Make example for this keyboard (after setting up your build environment): + + make vt40:default + +Flashing example for this keyboard: + + make vt40:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available + From 597bbcb56782d298a569cbf0bcfd69753ff1922e Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Fri, 13 Dec 2024 20:42:47 +1100 Subject: [PATCH 37/77] Add licensing violations page. (#24697) --- docs/_sidebar.json | 3 +- docs/license_violations.md | 96 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 docs/license_violations.md diff --git a/docs/_sidebar.json b/docs/_sidebar.json index a68516b5de..95601be7de 100644 --- a/docs/_sidebar.json +++ b/docs/_sidebar.json @@ -21,7 +21,8 @@ { "text": "Debugging QMK", "link": "/faq_debug" }, { "text": "Keymap FAQ", "link": "/faq_keymap" }, { "text": "Squeezing Space from AVR", "link": "/squeezing_avr" }, - { "text": "Glossary", "link": "/reference_glossary" } + { "text": "Glossary", "link": "/reference_glossary" }, + { "text": "License Violations", "link": "/license_violations" } ] }, { diff --git a/docs/license_violations.md b/docs/license_violations.md new file mode 100644 index 0000000000..b21bb286ac --- /dev/null +++ b/docs/license_violations.md @@ -0,0 +1,96 @@ +# License Violations + +QMK Firmware has seen its fair share of license violations, which hurts the community and frustrates the QMK maintainers. + +Typical non-compliance includes: + +* Not providing any source code +* Providing "crippled" source code, such as a wired-only firmware for a wireless-capable board + +Boards from vendors who don't provide source code are proving to be a significant time sink as the QMK team and other support helpers volunteer their time trying to determine which board someone has before they can help -- and in these cases they can't help. Occasionally this is followed by abuse; something that QMK and its volunteers should not be subjected to, rather redirected to the vendor in question. + +The QMK team now actively directs support requests back to each vendor - vendors must provide their own product support for their boards. The QMK team are volunteers, the vendor must not expect the team to act as their support staff. + +## Offending Vendors + +The QMK team cannot tell you which boards you should or should not purchase, but please consider the lack of license compliance from the following vendors before making your decision. If you wish to look at the boards upstream QMK Firmware currently supports, you can search [here](https://browse.qmk.fm/). + +If you own a board from one of the following vendors already, consider asking them for the equivalent QMK source code if it's not already available. With enough customers demanding corresponding source code, vendors may start to change their policies. + +| Vendor | Reason | +|------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| BBB Keyboard | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | +| Chillkey | | +| CIDOO | Selling wired boards based on QMK without sources, just `via.json` provided. | +| Darmoshark | Selling wired boards based on QMK without sources, just `via.json` provided. | +| Epomaker | Lots of historical keyboards with `via.json` but no corresponding sources. Wireless code for a small handful provided, pending core cleanup for QMK upstreaming. Most other boards have source nowhere to be seen. | +| Ergokbd (IFKB) | At least their crkbd clone ships with QMK+Vial, seemingly refuses to disclose sources despite multiple customers requesting them. | +| iLovBee | Official 30-day copyright source code request issued Sep 11 2024 due to deception on PR, no response received. Ambiguity on PRs -- marketing says wireless, PR author said wired-only, then included wireless code anyway. Seemingly intentionally deceptive. | +| KiiBOOM | Seems to use the same OEM as Epomaker, same problems. | +| Luminkey | Selling tri-mode boards based on QMK without sources, just `via.json` provided. | +| Meletrix | Selling tri-mode boards based on QMK without sources, just `via.json` provided. | +| mmd / Smartmmd / i-game.tech | Ambiguity on PRs -- marketing says wireless, PR author said wired-only, then included wireless code anyway. Seemingly intentionally deceptive. | +| MyKeyClub | Community-supported JRIS75, vendor was contacted by community members and refused to cooperate. | +| owlab | Selling wired based on QMK without sources, just `via.json` provided. Ambiguous as to whether or not wireless firmware is based on QMK, given that their configuration tool looks very similar to VIA. | +| qwertykeys | Selling wired and tri-mode boards based on QMK without sources, just `via.json` provided. | +| Redragon | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | +| Royal Kludge | PRs for fake boards in order to attain VIA compatibility identified. Lots of other keyboards with `via.json` but no corresponding sources, attempted upstreaming crippled firmware without wireless. Wireless code for some provided, pending core cleanup for QMK upstreaming. PRs including different manufacturer names as well. | +| Shenzhen Hangsheng | PR submissions with crippled firmware, debating with maintainers about wireless despite marketing material clearly stating tri-mode. | +| Shortcut Studio | Selling tri-mode boards based on QMK without sources, just `via.json` provided. | +| Tacworks | Selling tri-mode boards based on QMK, crippled firmware already merged into QMK without wireless without QMK team realising. | +| TKD / Vertex | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | +| WOBKEY | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | +| Weikav | Selling tri-mode boards based on QMK without sources, just `via.json` provided. | +| Womier | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | +| Wuque Studio | Selling wired and tri-mode boards based on QMK without sources, just `via.json` provided. | +| Zuoya | Selling tri-mode boards based on QMK without sources, just `via.json` provided. | + +::: danger Violations +Links are not provided above as the QMK team does not wish to inadvertently promote purchases of boards in violation of QMK's license. +::: + +## Licensing + +QMK Firmware's license requires full disclosure of source code for any firmware which is based on QMK. This includes any of the following scenarios: + +* Use of public QMK Firmware, but with "closed source" privately-held board definitions +* Vendor-customised QMK Firmware, which the vendor keeps private for building their own boards +* Any other non-QMK firmware which includes portions of QMK Firmware, such as adaptation of `via.c` into any other non-QMK firmware, even if used as a reference when translated to another programming language. + +As per the GPL license requirements, vendors must provide entire source code for the as-shipped firmware. + +QMK has traditionally been lenient with this clause -- providing source code to the QMK community is necessary but reproducing the exact build may not be possible. QMK has required functionally-equivalent source code to be made available. In rare cases exact code may be requested; vendors must keep copies regardless. + +At minimum, vendors must provide the source code through some distribution mechanism. This could potentially be an clearly available downloadable copy of the code online, a fork of QMK Firmware, or even a DVD accompanying the product in the box. + +If sources are unable to be provided in a timely fashion, QMK may revoke the vendor's license, effectively rendering them unable to leverage QMK. + +Vendors choosing to keep things closed-source because of a desire to have a "competitive edge" compared to other vendors is unacceptable to both QMK and the community, and is a breach of the QMK license. There's no reason to do so; any new or interesting vendor-specific feature will be quickly replicated by other vendors or the community anyway. + +## QMK PR Considerations + +Vendors who submit PRs to QMK Firmware whilst not providing full sources for all of their license-violating boards will be put on hold until source code for all violating boards is provided. Intentional deception may result in boards being removed from QMK and all future PRs for that manufacturer being denied outright. + +Submitting crippled source code in order to attain a merge into QMK Firmware to pave the way for VIA support is unacceptable. This includes submitting a wired-only firmware for a wireless-capable board, or any other PR which does not include key features as-advertised. + +Reusing the `VID` and `PID` for multiple boards (such as for two variants, wired and wireless) is an unacceptable scenario as this creates confusion for support. Many customers have flashed boards with the wrong firmware, which could have been avoided if vendors were obvious about their board identification mechanisms. + +If there is sufficient ambiguity about a board, supporting evidence will need to be presented to the QMK team. This may include impartial third parties who can demonstrate a board's existence and can confirm its feature set, such as well-known content producers; popular review sites or notable video creators may be leveraged. If such evidence is unavailable, as a last resort the vendor may be required to ship a fully functional board in full retail packaging to QMK maintainers for verification. Engineering samples will not be accepted, as one-off boards have been deceptively used in the past. + +PRs submitted to upstream QMK should not expect an instant merge just because source code has been provided -- code from OEMs has historically been of a quality lower than QMK standards, so as per the [PR checklist](https://docs.qmk.fm/pr_checklist) submitters should make the changes as small as possible and be prepared to change their implementation. + +## Detection + +If the QMK team identifies or is informed of a license violation from a vendor: + +* Any current and future PRs for that vendor will be indefinitely put on hold, preventing merge into QMK Firmware, thus preventing any out-of-the-box VIA support +* Any existing keyboards from the vendor may be removed from QMK Firmware +* Vendors will be added to the _offending vendors_ list above + +Repeated violations may result in that vendor being disallowed from contributing the QMK in its entirety. In the worst case, the QMK team may choose to revoke a vendor's license to use QMK Firmware outright. + +## Remediation + +Vendors must provide fully-featured source code for each of their identified violations, matching the feature capabilities of their as-shipped products. This will usually be in their own fork of QMK Firmware while awaiting a merge into upstream. + +Once all identified violations have been remediated, current and future PRs will no longer be on hold and the vendor will be removed from the offending vendors list above. From 2d33a209561537289ceb0af1e7cd7b0c522aa272 Mon Sep 17 00:00:00 2001 From: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Sun, 15 Dec 2024 04:19:11 +1100 Subject: [PATCH 38/77] [Keyboard] add swagkeys eave (#24711) * add swagkeys eave * fix up * Update keyboards/swagkeys/eave/keyboard.json Co-authored-by: jack * Update keyboards/swagkeys/eave/keymaps/default/keymap.c Co-authored-by: jack --------- Co-authored-by: Xelus22 <> Co-authored-by: jack --- keyboards/swagkeys/eave/keyboard.json | 128 ++++++++++++++++++ .../swagkeys/eave/keymaps/default/keymap.c | 36 +++++ keyboards/swagkeys/eave/readme.md | 24 ++++ 3 files changed, 188 insertions(+) create mode 100644 keyboards/swagkeys/eave/keyboard.json create mode 100644 keyboards/swagkeys/eave/keymaps/default/keymap.c create mode 100644 keyboards/swagkeys/eave/readme.md diff --git a/keyboards/swagkeys/eave/keyboard.json b/keyboards/swagkeys/eave/keyboard.json new file mode 100644 index 0000000000..87945ed756 --- /dev/null +++ b/keyboards/swagkeys/eave/keyboard.json @@ -0,0 +1,128 @@ +{ + "manufacturer": "CZMAO", + "keyboard_name": "Swagkeys Eave", + "maintainer": "Swagkeys", + "bootloader": "stm32duino", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "indicators": { + "caps_lock": "B15", + "on_state": 0 + }, + "matrix_pins": { + "cols": ["B7", "B6", "B5", "B4", "B3", "A15", "B1", "B8", "C14", "A6", "A5", "A4", "A3", "B14", "A1", "A0"], + "rows": ["B9", "C13", "B12", "B11", "C15"] + }, + "processor": "STM32F103", + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "brightness_steps": 8, + "hue_steps": 10, + "led_count": 25, + "saturation_steps": 8, + "sleep": true + }, + "url": "NONE", + "usb": { + "device_version": "1.0.0", + "pid": "0x4A16", + "vid": "0x4A16" + }, + "ws2812": { + "pin": "B13" + }, + "layouts": { + "LAYOUT_65_ansi": { + "layout": [ + {"label": "GRV", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "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.5, "y": 0}, + {"label": "BSLS", "matrix": [0, 14], "x": 13, "y": 0, "w": 2}, + {"label": "Backspace", "matrix": [0, 15], "x": 14, "y": 0}, + {"label": "Del", "matrix": [1, 14], "x": 15, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Home", "matrix": [1, 15], "x": 15, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "PGUP", "matrix": [2, 15], "x": 15, "y": 2}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 1], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 2], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 3], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 4], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 5], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 6], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 7], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 8], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 9], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 10], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 11], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "UP", "matrix": [3, 14], "x": 14, "y": 3}, + {"label": "PGDN", "matrix": [3, 15], "x": 15, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"label": "Fn", "matrix": [4, 10], "x": 11.5, "y": 4, "w": 1.25}, + {"label": "Left", "matrix": [4, 11], "x": 13, "y": 4}, + {"label": "Down", "matrix": [4, 14], "x": 14, "y": 4}, + {"label": "Right", "matrix": [4, 15], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/swagkeys/eave/keymaps/default/keymap.c b/keyboards/swagkeys/eave/keymaps/default/keymap.c new file mode 100644 index 0000000000..c0815a2400 --- /dev/null +++ b/keyboards/swagkeys/eave/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* +Copyright 2024 Swagkeys + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_65_ansi( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSLS, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + + [1] = LAYOUT_65_ansi( + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, UG_TOGG, UG_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; + + + diff --git a/keyboards/swagkeys/eave/readme.md b/keyboards/swagkeys/eave/readme.md new file mode 100644 index 0000000000..b594fe0ce2 --- /dev/null +++ b/keyboards/swagkeys/eave/readme.md @@ -0,0 +1,24 @@ +# Swagkeys EAVE + +65% Hotswap PCB + +* Keyboard Maintainer: [Swagkeys](https://github.com/swagkey) +* Hardware Supported: Eave PCB +* Hardware Availability: [Swagkeys Store](https://swagkeys.com/) + +Make example for this keyboard (after setting up your build environment): + + make swagkeys/eave:default + +Flashing example for this keyboard: + + make swagkeys/eave:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 296e4539f5bfa8a23af6c48526a42dbc827a82eb Mon Sep 17 00:00:00 2001 From: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Sun, 15 Dec 2024 10:15:52 +1100 Subject: [PATCH 39/77] [Keyboard] swagkeys integral (#24712) swagkeys integral Co-authored-by: Xelus22 <> --- keyboards/swagkeys/integral/keyboard.json | 169 ++++++++++++++++++ .../integral/keymaps/default/keymap.c | 35 ++++ keyboards/swagkeys/integral/readme.md | 24 +++ 3 files changed, 228 insertions(+) create mode 100644 keyboards/swagkeys/integral/keyboard.json create mode 100644 keyboards/swagkeys/integral/keymaps/default/keymap.c create mode 100644 keyboards/swagkeys/integral/readme.md diff --git a/keyboards/swagkeys/integral/keyboard.json b/keyboards/swagkeys/integral/keyboard.json new file mode 100644 index 0000000000..3d49671100 --- /dev/null +++ b/keyboards/swagkeys/integral/keyboard.json @@ -0,0 +1,169 @@ +{ + "manufacturer": "CZMAO", + "keyboard_name": "Swagkeys Integral", + "maintainer": "Swagkeys", + "bootloader": "stm32duino", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "B15", + "on_state": 0 + }, + "matrix_pins": { + "cols": ["B7", "B6", "B5", "B4", "B3", "A15", "B1", "B8", "C14", "A6", "A5", "A4", "A3", "B14", "A1", "A0"], + "rows": ["B9", "C13", "B12", "B11", "B10"] + }, + "processor": "STM32F103", + "url": "NONE", + "usb": { + "device_version": "1.0.0", + "pid": "0x4F21", + "vid": "0x4E21" + }, + "community_layouts": [ + "60_ansi_tsangan", + "60_ansi_tsangan_split_bs_rshift" + ], + "layouts": { + "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"label": "`~", "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": "BSLS", "matrix": [0, 14], "x": 13, "y": 0}, + {"label": "Backspace", "matrix": [0, 15], "x": 14, "y": 0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "\\|", "matrix": [1, 13], "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, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";:", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 1], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 2], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 3], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 4], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 5], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 6], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 7], "x": 8.25, "y": 3}, + {"label": ",<", "matrix": [3, 8], "x": 9.25, "y": 3}, + {"label": ".>", "matrix": [3, 9], "x": 10.25, "y": 3}, + {"label": "/?", "matrix": [3, 10], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 11], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "MO", "matrix": [3, 12], "x": 14, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"label": "FN", "matrix": [4, 10], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 11], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_tsangan": { + "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, "w": 2}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"label": "Caps", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + + {"label": "LShift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 1], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 2], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 3], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 4], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 5], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 6], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 7], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 8], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 9], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 10], "x": 11.25, "y": 3}, + {"label": "RShift", "matrix": [3, 14], "x": 12.25, "y": 3, "w": 2.75}, + + {"label": "LCtrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "LGui", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5}, + {"label": "LAlt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 7}, + {"label": "RAlt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.5}, + {"label": "FN", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.5}, + {"label": "RCtrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.5} + ] + } + } +} diff --git a/keyboards/swagkeys/integral/keymaps/default/keymap.c b/keyboards/swagkeys/integral/keymaps/default/keymap.c new file mode 100644 index 0000000000..dd3b473fc2 --- /dev/null +++ b/keyboards/swagkeys/integral/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* +Copyright 2024 Swagkeys + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_ansi_tsangan( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL + ), + [1] = LAYOUT_60_ansi_tsangan( + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_COMM, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) + +}; diff --git a/keyboards/swagkeys/integral/readme.md b/keyboards/swagkeys/integral/readme.md new file mode 100644 index 0000000000..e2fcd4c932 --- /dev/null +++ b/keyboards/swagkeys/integral/readme.md @@ -0,0 +1,24 @@ +# Swagkeys Integral + +60% Soldered PCB + +* Keyboard Maintainer: [Swagkeys](https://github.com/swagkey) +* Hardware Supported: Integral PCB +* Hardware Availability: [Swagkeys Store](https://swagkeys.com/) + +Make example for this keyboard (after setting up your build environment): + + make swagkeys/integral:default + +Flashing example for this keyboard: + + make swagkeys/integral:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 767dfbbd3f94dcddb2061cd8338dd166d985df9d Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 15 Dec 2024 04:00:18 +0000 Subject: [PATCH 40/77] Resolve `cli.log.warn` warnings (#24551) --- lib/python/qmk/cli/doctor/main.py | 6 +++--- lib/python/qmk/cli/import/kbfirmware.py | 2 +- lib/python/qmk/cli/userspace/list.py | 2 +- lib/python/qmk/git.py | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/python/qmk/cli/doctor/main.py b/lib/python/qmk/cli/doctor/main.py index 5215d3a7ee..391353ebbf 100755 --- a/lib/python/qmk/cli/doctor/main.py +++ b/lib/python/qmk/cli/doctor/main.py @@ -102,10 +102,10 @@ def userspace_tests(qmk_firmware): qmk_userspace_validate(path) cli.log.info(f'Testing userspace candidate: {{fg_cyan}}{path}{{fg_reset}} -- {{fg_green}}Valid `qmk.json`') except FileNotFoundError: - cli.log.warn(f'Testing userspace candidate: {{fg_cyan}}{path}{{fg_reset}} -- {{fg_red}}Missing `qmk.json`') + cli.log.warning(f'Testing userspace candidate: {{fg_cyan}}{path}{{fg_reset}} -- {{fg_red}}Missing `qmk.json`') except UserspaceValidationError as err: - cli.log.warn(f'Testing userspace candidate: {{fg_cyan}}{path}{{fg_reset}} -- {{fg_red}}Invalid `qmk.json`') - cli.log.warn(f' -- {{fg_cyan}}{path}/qmk.json{{fg_reset}} validation error: {err}') + cli.log.warning(f'Testing userspace candidate: {{fg_cyan}}{path}{{fg_reset}} -- {{fg_red}}Invalid `qmk.json`') + cli.log.warning(f' -- {{fg_cyan}}{path}/qmk.json{{fg_reset}} validation error: {err}') if QMK_USERSPACE is not None: cli.log.info(f'QMK userspace: {{fg_cyan}}{QMK_USERSPACE}') diff --git a/lib/python/qmk/cli/import/kbfirmware.py b/lib/python/qmk/cli/import/kbfirmware.py index 9c03737378..feccb3cfcc 100644 --- a/lib/python/qmk/cli/import/kbfirmware.py +++ b/lib/python/qmk/cli/import/kbfirmware.py @@ -15,7 +15,7 @@ def import_kbfirmware(cli): cli.log.info(f'{{style_bright}}Importing {filename.name}.{{style_normal}}') cli.echo('') - cli.log.warn("Support here is basic - Consider using 'qmk new-keyboard' instead") + cli.log.warning("Support here is basic - Consider using 'qmk new-keyboard' instead") kb_name = _import_kbfirmware(data) diff --git a/lib/python/qmk/cli/userspace/list.py b/lib/python/qmk/cli/userspace/list.py index 9f83a14a2a..e902483b6b 100644 --- a/lib/python/qmk/cli/userspace/list.py +++ b/lib/python/qmk/cli/userspace/list.py @@ -66,4 +66,4 @@ def userspace_list(cli): if is_all_keyboards(keyboard) or is_keymap_target(keyboard_folder(keyboard), keymap): cli.log.info(f'Keyboard: {{fg_cyan}}{keyboard}{{fg_reset}}, keymap: {{fg_cyan}}{keymap}{{fg_reset}}{extra_args_str}') else: - cli.log.warn(f'Keyboard: {{fg_cyan}}{keyboard}{{fg_reset}}, keymap: {{fg_cyan}}{keymap}{{fg_reset}}{extra_args_str} -- not found!') + cli.log.warning(f'Keyboard: {{fg_cyan}}{keyboard}{{fg_reset}}, keymap: {{fg_cyan}}{keymap}{{fg_reset}}{extra_args_str} -- not found!') diff --git a/lib/python/qmk/git.py b/lib/python/qmk/git.py index b6c11edbfe..9d567475d8 100644 --- a/lib/python/qmk/git.py +++ b/lib/python/qmk/git.py @@ -26,7 +26,7 @@ def git_get_version(repo_dir='.', check_dir='.'): return git_describe.stdout.strip() else: - cli.log.warn(f'"{" ".join(git_describe_cmd)}" returned error code {git_describe.returncode}') + cli.log.warning(f'"{" ".join(git_describe_cmd)}" returned error code {git_describe.returncode}') print(git_describe.stderr) return None From a7d12e4e8f984f472e5d8c87253bfad7ec181d75 Mon Sep 17 00:00:00 2001 From: Less/Rikki <86894501+lesshonor@users.noreply.github.com> Date: Wed, 18 Dec 2024 00:02:05 -0500 Subject: [PATCH 41/77] [Keyboard] wilba_tech/wt45_h1 (#24717) --- keyboards/wilba_tech/wt45_h1/keyboard.json | 216 ++++++++++++++++++ .../wt45_h1/keymaps/default/keymap.json | 26 +++ keyboards/wilba_tech/wt45_h1/readme.md | 29 +++ 3 files changed, 271 insertions(+) create mode 100644 keyboards/wilba_tech/wt45_h1/keyboard.json create mode 100644 keyboards/wilba_tech/wt45_h1/keymaps/default/keymap.json create mode 100644 keyboards/wilba_tech/wt45_h1/readme.md diff --git a/keyboards/wilba_tech/wt45_h1/keyboard.json b/keyboards/wilba_tech/wt45_h1/keyboard.json new file mode 100644 index 0000000000..cfe1b3d3a4 --- /dev/null +++ b/keyboards/wilba_tech/wt45_h1/keyboard.json @@ -0,0 +1,216 @@ +{ + "manufacturer": "wilba.tech", + "keyboard_name": "WT45-H1", + "maintainer": "Wilba", + "bootloader": "atmel-dfu", + "bootloader_instructions": "Press the button labeled S1 on the back of the PCB, near the MCU.", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "caps_word": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["F5", "D2", "D3", "D5", "D4", "D6", "D7", "C7", "C6", "B6", "B5", "B4"], + "rows": ["F1", "F4", "F6", "F7"] + }, + "processor": "atmega32u4", + "usb": { + "device_version": "0.0.1", + "pid": "0x0045", + "vid": "0x6582" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 10.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0, "w": 1.5}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 1.75, "y": 1}, + {"matrix": [1, 2], "x": 2.75, "y": 1}, + {"matrix": [1, 3], "x": 3.75, "y": 1}, + {"matrix": [1, 4], "x": 4.75, "y": 1}, + {"matrix": [1, 5], "x": 5.75, "y": 1}, + {"matrix": [1, 6], "x": 6.75, "y": 1}, + {"matrix": [1, 7], "x": 7.75, "y": 1}, + {"matrix": [1, 8], "x": 8.75, "y": 1}, + {"matrix": [1, 9], "x": 9.75, "y": 1}, + {"matrix": [1, 11], "x": 10.75, "y": 1, "w": 2.25}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.25}, + {"matrix": [2, 1], "x": 1.25, "y": 2}, + {"matrix": [2, 2], "x": 2.25, "y": 2}, + {"matrix": [2, 3], "x": 3.25, "y": 2}, + {"matrix": [2, 4], "x": 4.25, "y": 2}, + {"matrix": [2, 5], "x": 5.25, "y": 2}, + {"matrix": [2, 6], "x": 6.25, "y": 2}, + {"matrix": [2, 7], "x": 7.25, "y": 2}, + {"matrix": [2, 8], "x": 8.25, "y": 2}, + {"matrix": [2, 9], "x": 9.25, "y": 2}, + {"matrix": [2, 10], "x": 10.25, "y": 2}, + {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25}, + {"matrix": [3, 4], "x": 3.5, "y": 3, "w": 2.25}, + {"matrix": [3, 6], "x": 5.75, "y": 3}, + {"matrix": [3, 8], "x": 6.75, "y": 3, "w": 2.75}, + {"matrix": [3, 9], "x": 9.5, "y": 3, "w": 1.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3, "w": 1.25} + ] + }, + "LAYOUT_big_bar": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 10.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0, "w": 1.5}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 1.75, "y": 1}, + {"matrix": [1, 2], "x": 2.75, "y": 1}, + {"matrix": [1, 3], "x": 3.75, "y": 1}, + {"matrix": [1, 4], "x": 4.75, "y": 1}, + {"matrix": [1, 5], "x": 5.75, "y": 1}, + {"matrix": [1, 6], "x": 6.75, "y": 1}, + {"matrix": [1, 7], "x": 7.75, "y": 1}, + {"matrix": [1, 8], "x": 8.75, "y": 1}, + {"matrix": [1, 9], "x": 9.75, "y": 1}, + {"matrix": [1, 11], "x": 10.75, "y": 1, "w": 2.25}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.25}, + {"matrix": [2, 1], "x": 1.25, "y": 2}, + {"matrix": [2, 2], "x": 2.25, "y": 2}, + {"matrix": [2, 3], "x": 3.25, "y": 2}, + {"matrix": [2, 4], "x": 4.25, "y": 2}, + {"matrix": [2, 5], "x": 5.25, "y": 2}, + {"matrix": [2, 6], "x": 6.25, "y": 2}, + {"matrix": [2, 7], "x": 7.25, "y": 2}, + {"matrix": [2, 8], "x": 8.25, "y": 2}, + {"matrix": [2, 9], "x": 9.25, "y": 2}, + {"matrix": [2, 10], "x": 10.25, "y": 2}, + {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25}, + {"matrix": [3, 6], "x": 3.5, "y": 3, "w": 6}, + {"matrix": [3, 9], "x": 9.5, "y": 3, "w": 1.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3, "w": 1.25} + ] + }, + "LAYOUT_big_lshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 10.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0, "w": 1.5}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 1.75, "y": 1}, + {"matrix": [1, 2], "x": 2.75, "y": 1}, + {"matrix": [1, 3], "x": 3.75, "y": 1}, + {"matrix": [1, 4], "x": 4.75, "y": 1}, + {"matrix": [1, 5], "x": 5.75, "y": 1}, + {"matrix": [1, 6], "x": 6.75, "y": 1}, + {"matrix": [1, 7], "x": 7.75, "y": 1}, + {"matrix": [1, 8], "x": 8.75, "y": 1}, + {"matrix": [1, 9], "x": 9.75, "y": 1}, + {"matrix": [1, 11], "x": 10.75, "y": 1, "w": 2.25}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, + {"matrix": [2, 2], "x": 2.25, "y": 2}, + {"matrix": [2, 3], "x": 3.25, "y": 2}, + {"matrix": [2, 4], "x": 4.25, "y": 2}, + {"matrix": [2, 5], "x": 5.25, "y": 2}, + {"matrix": [2, 6], "x": 6.25, "y": 2}, + {"matrix": [2, 7], "x": 7.25, "y": 2}, + {"matrix": [2, 8], "x": 8.25, "y": 2}, + {"matrix": [2, 9], "x": 9.25, "y": 2}, + {"matrix": [2, 10], "x": 10.25, "y": 2}, + {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25}, + {"matrix": [3, 4], "x": 3.5, "y": 3, "w": 2.25}, + {"matrix": [3, 6], "x": 5.75, "y": 3}, + {"matrix": [3, 8], "x": 6.75, "y": 3, "w": 2.75}, + {"matrix": [3, 9], "x": 9.5, "y": 3, "w": 1.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3, "w": 1.25} + ] + }, + "LAYOUT_big_lshift_big_bar": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 10.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0, "w": 1.5}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 1.75, "y": 1}, + {"matrix": [1, 2], "x": 2.75, "y": 1}, + {"matrix": [1, 3], "x": 3.75, "y": 1}, + {"matrix": [1, 4], "x": 4.75, "y": 1}, + {"matrix": [1, 5], "x": 5.75, "y": 1}, + {"matrix": [1, 6], "x": 6.75, "y": 1}, + {"matrix": [1, 7], "x": 7.75, "y": 1}, + {"matrix": [1, 8], "x": 8.75, "y": 1}, + {"matrix": [1, 9], "x": 9.75, "y": 1}, + {"matrix": [1, 11], "x": 10.75, "y": 1, "w": 2.25}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 2.25}, + {"matrix": [2, 2], "x": 2.25, "y": 2}, + {"matrix": [2, 3], "x": 3.25, "y": 2}, + {"matrix": [2, 4], "x": 4.25, "y": 2}, + {"matrix": [2, 5], "x": 5.25, "y": 2}, + {"matrix": [2, 6], "x": 6.25, "y": 2}, + {"matrix": [2, 7], "x": 7.25, "y": 2}, + {"matrix": [2, 8], "x": 8.25, "y": 2}, + {"matrix": [2, 9], "x": 9.25, "y": 2}, + {"matrix": [2, 10], "x": 10.25, "y": 2}, + {"matrix": [2, 11], "x": 11.25, "y": 2, "w": 1.75}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25}, + {"matrix": [3, 6], "x": 3.5, "y": 3, "w": 6}, + {"matrix": [3, 9], "x": 9.5, "y": 3, "w": 1.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3, "w": 1.25} + ] + } + } +} diff --git a/keyboards/wilba_tech/wt45_h1/keymaps/default/keymap.json b/keyboards/wilba_tech/wt45_h1/keymaps/default/keymap.json new file mode 100644 index 0000000000..11ae056820 --- /dev/null +++ b/keyboards/wilba_tech/wt45_h1/keymaps/default/keymap.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "keyboard": "wilba_tech/wt45_h1", + "keymap": "default", + "layout": "LAYOUT_all", + "layers": [ + [ +"LT(2,KC_ESC)", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPC", +"KC_TAB", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_ENT", +"KC_LSFT", "KC_NUBS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_RSFT", +"KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "LT(1,KC_SPC)", "LT(1,KC_SPC)", "KC_RALT", "RGUI_T(KC_GRV)", "KC_RCTL" + ], + [ +"KC_GRV", "KC_TRNS", "KC_PGUP", "KC_TRNS", "KC_TRNS", "KC_LBRC", "KC_RBRC", "KC_TRNS", "KC_UP", "KC_TRNS", "KC_TRNS", "KC_DEL", +"KC_TRNS", "KC_HOME", "KC_PGDN", "KC_END", "KC_TRNS", "KC_BSLS", "KC_SLSH", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_TRNS", +"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_PSCR", "KC_ESC", "KC_QUOT", "KC_TRNS", "KC_DOT", "KC_TRNS", "KC_TRNS", "KC_TRNS", +"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" + ], + [ +"KC_TRNS", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_TRNS", +"KC_TRNS", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", +"KC_TRNS", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "CW_TOGG", +"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" + ] + ] +} diff --git a/keyboards/wilba_tech/wt45_h1/readme.md b/keyboards/wilba_tech/wt45_h1/readme.md new file mode 100644 index 0000000000..3a23ac36f0 --- /dev/null +++ b/keyboards/wilba_tech/wt45_h1/readme.md @@ -0,0 +1,29 @@ +# wilba.tech WT45-H1 + +![WT45-H1 PCB](https://i.imgur.com/33lWN3p.png) + +WT45-H1 is a mostly-base-kit-compatible hotswap 40% keyboard PCB with split left shift and split spacebar options. + +Initially designed for the [HIBI CHOPPER](https://hibi.mx/products/chopper) + +- Keyboard Maintainer: [wilba](https://github.com/wilba) +- Hardware Supported: wilba.tech WT45-H1 (atmega32u4, atmel-dfu) +- Hardware Availability: [HIBI](https://hibi.mx/products/chopper) + +Make example for this keyboard (after setting up your build environment): + + make wilba_tech/wt45_h1:default + +Flashing example for this keyboard: + + make wilba_tech/wt45_h1:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top left key and plug in the keyboard. This will also clear EEPROM, so it is a good first step if the keyboard is misbehaving. +* **Physical reset button**: Press the button labeled S1 on the back of the PCB, near the MCU. +* **Keycode in layout**: There is no key mapped to `QK_BOOT` in the pre-created keymaps, but you may assign this key in any keymaps you create. From c988584fc181c2d59e71600ddbff73a99ba7be7f Mon Sep 17 00:00:00 2001 From: Andrew Kannan Date: Wed, 18 Dec 2024 13:16:25 -0500 Subject: [PATCH 42/77] Add Reverie to QMK (#24227) * Add Reverie to QMK * Add backlight to reverie * Update reverie readme and copyright notices * Use format json to update keyboard.json formatting * Update to have solderable and hotswap variants split * Update copyright noticeS * JSON formatting updates * inherit config.h * fix broken keymap * Update reverie hs keyboard.json to be accurate * Update keyboards/cannonkeys/reverie/hotswap/keyboard.json Co-authored-by: jack * Remove VIA keymaps * Update keymap --------- Co-authored-by: jack --- keyboards/cannonkeys/reverie/config.h | 9 + .../cannonkeys/reverie/hotswap/keyboard.json | 296 ++++++++ .../reverie/hotswap/keymaps/default/keymap.c | 27 + keyboards/cannonkeys/reverie/info.json | 24 + keyboards/cannonkeys/reverie/readme.md | 30 + .../cannonkeys/reverie/solderable/config.h | 7 + .../cannonkeys/reverie/solderable/halconf.h | 8 + .../reverie/solderable/keyboard.json | 672 ++++++++++++++++++ .../solderable/keymaps/default/keymap.c | 27 + .../reverie/solderable/matrix_diagram.md | 27 + .../cannonkeys/reverie/solderable/mcuconf.h | 9 + 11 files changed, 1136 insertions(+) create mode 100644 keyboards/cannonkeys/reverie/config.h create mode 100644 keyboards/cannonkeys/reverie/hotswap/keyboard.json create mode 100644 keyboards/cannonkeys/reverie/hotswap/keymaps/default/keymap.c create mode 100644 keyboards/cannonkeys/reverie/info.json create mode 100644 keyboards/cannonkeys/reverie/readme.md create mode 100644 keyboards/cannonkeys/reverie/solderable/config.h create mode 100644 keyboards/cannonkeys/reverie/solderable/halconf.h create mode 100644 keyboards/cannonkeys/reverie/solderable/keyboard.json create mode 100644 keyboards/cannonkeys/reverie/solderable/keymaps/default/keymap.c create mode 100644 keyboards/cannonkeys/reverie/solderable/matrix_diagram.md create mode 100644 keyboards/cannonkeys/reverie/solderable/mcuconf.h diff --git a/keyboards/cannonkeys/reverie/config.h b/keyboards/cannonkeys/reverie/config.h new file mode 100644 index 0000000000..ea5c26b6c7 --- /dev/null +++ b/keyboards/cannonkeys/reverie/config.h @@ -0,0 +1,9 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U + +#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 \ No newline at end of file diff --git a/keyboards/cannonkeys/reverie/hotswap/keyboard.json b/keyboards/cannonkeys/reverie/hotswap/keyboard.json new file mode 100644 index 0000000000..4a2101f9de --- /dev/null +++ b/keyboards/cannonkeys/reverie/hotswap/keyboard.json @@ -0,0 +1,296 @@ +{ + "keyboard_name": "Reverie HS", + "usb": { + "pid": "0x0033" + }, + "community_layouts": ["65_ansi_blocker", "65_ansi_blocker_split_bs", "65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs"], + "layout_aliases": { + "LAYOUT_65_ansi_blocker_split_bs": "LAYOUT_all" + }, + "layouts": { + "LAYOUT_65_ansi_blocker": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/cannonkeys/reverie/hotswap/keymaps/default/keymap.c b/keyboards/cannonkeys/reverie/hotswap/keymaps/default/keymap.c new file mode 100644 index 0000000000..e1081d169c --- /dev/null +++ b/keyboards/cannonkeys/reverie/hotswap/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _FN1 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [_FN1] = LAYOUT_all( + QK_GESC, 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_DEL, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, _______, _______, _______, _______, _______, _______, _______, QK_BOOT + ) +}; diff --git a/keyboards/cannonkeys/reverie/info.json b/keyboards/cannonkeys/reverie/info.json new file mode 100644 index 0000000000..1e2a885781 --- /dev/null +++ b/keyboards/cannonkeys/reverie/info.json @@ -0,0 +1,24 @@ +{ + "manufacturer": "CannonKeys", + "maintainer": "awkannan", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP28", "GP8", "GP14", "GP13", "GP12", "GP11", "GP10", "GP9", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP0"], + "rows": ["GP26", "GP27", "GP15", "GP16", "GP17"] + }, + "processor": "RP2040", + "url": "https://cannonkeys.com", + "usb": { + "device_version": "0.0.1", + "vid": "0xCA04" + } +} diff --git a/keyboards/cannonkeys/reverie/readme.md b/keyboards/cannonkeys/reverie/readme.md new file mode 100644 index 0000000000..8647bc0dad --- /dev/null +++ b/keyboards/cannonkeys/reverie/readme.md @@ -0,0 +1,30 @@ +# Reverie PCBs + +Reverie PCBs from CannonKeys + +This folder is for both the solderable and hotswap versions of this PCB. + +The hotswap version does not support per-key LEDs and has reduced layout support (no ISO) + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: RP2040 +* Hardware Availability: [CannonKeys](https://cannonkeys.com) + + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/reverie/solderable:default + +Flashing example for this keyboard: + + make cannonkeys/reverie/solderable:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Hold the "BOOTMODE" button on the back of the PCB and briefly press the "RESET" button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cannonkeys/reverie/solderable/config.h b/keyboards/cannonkeys/reverie/solderable/config.h new file mode 100644 index 0000000000..9a8669d7a8 --- /dev/null +++ b/keyboards/cannonkeys/reverie/solderable/config.h @@ -0,0 +1,7 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A diff --git a/keyboards/cannonkeys/reverie/solderable/halconf.h b/keyboards/cannonkeys/reverie/solderable/halconf.h new file mode 100644 index 0000000000..0536c37ff3 --- /dev/null +++ b/keyboards/cannonkeys/reverie/solderable/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/cannonkeys/reverie/solderable/keyboard.json b/keyboards/cannonkeys/reverie/solderable/keyboard.json new file mode 100644 index 0000000000..b1d909cb85 --- /dev/null +++ b/keyboards/cannonkeys/reverie/solderable/keyboard.json @@ -0,0 +1,672 @@ +{ + "keyboard_name": "Reverie", + "backlight": { + "breathing": true, + "breathing_period": 5, + "levels": 15, + "pin": "GP22" + }, + "features": { + "backlight": true + }, + "indicators": { + "caps_lock": "GP29", + "on_state": 0 + }, + "usb": { + "pid": "0x0030" + }, + "community_layouts": ["65_ansi_blocker", "65_ansi_blocker_split_bs", "65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs", "65_iso_blocker", "65_iso_blocker_split_bs", "65_iso_blocker_tsangan", "65_iso_blocker_tsangan_split_bs"], + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, + "layouts": { + "LAYOUT_65_ansi_blocker": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_tsangan_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [1, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 15, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 15, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [3, 14], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 2.25}, + {"matrix": [4, 6], "x": 6, "y": 4, "w": 1.25}, + {"matrix": [4, 9], "x": 7.25, "y": 4, "w": 2.75}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/cannonkeys/reverie/solderable/keymaps/default/keymap.c b/keyboards/cannonkeys/reverie/solderable/keymaps/default/keymap.c new file mode 100644 index 0000000000..0a256ac406 --- /dev/null +++ b/keyboards/cannonkeys/reverie/solderable/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _FN1 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(_FN1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [_FN1] = LAYOUT_all( + QK_GESC, 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_DEL, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_UP, _______, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT + ) +}; diff --git a/keyboards/cannonkeys/reverie/solderable/matrix_diagram.md b/keyboards/cannonkeys/reverie/solderable/matrix_diagram.md new file mode 100644 index 0000000000..c74adfdb7c --- /dev/null +++ b/keyboards/cannonkeys/reverie/solderable/matrix_diagram.md @@ -0,0 +1,27 @@ +# Matrix Diagram for CannonKeys Reverie + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2C │0E │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ ┌─────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐2D │ ISO Enter +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │2E │ │1D │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │ +├────┴┬──┴┬──┴──┬┴───┴───┴──┬┴──┬┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤ +│40 │41 │42 │45 │46 │49 │4B │ │4C │4D │4E │ +└─────┴───┴─────┴───────────┴───┴───────────┴─────┘ └───┴───┴───┘ +┌────────┐ +│30 │ 2.25u LShift +└────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┐ +│40 │41 │42 │46 │4B │ Blocker Tsangan +└─────┴───┴─────┴───────────────────────────┴─────┘ +┌────┬────┬────┬────────────────────────┬────┬────┐ +│40 │41 │42 │46 │4A │4B │ Blocker +└────┴────┴────┴────────────────────────┴────┴────┘ +``` diff --git a/keyboards/cannonkeys/reverie/solderable/mcuconf.h b/keyboards/cannonkeys/reverie/solderable/mcuconf.h new file mode 100644 index 0000000000..200f75c11b --- /dev/null +++ b/keyboards/cannonkeys/reverie/solderable/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef RP_PWM_USE_PWM3 +#define RP_PWM_USE_PWM3 TRUE From f3fe59afe26a0796fe5ff9c3eb2a6551fb949a6e Mon Sep 17 00:00:00 2001 From: Less/Rikki <86894501+lesshonor@users.noreply.github.com> Date: Sun, 22 Dec 2024 00:14:59 -0500 Subject: [PATCH 43/77] fix: mechwild/bb65 coordinate mix-up (#24738) --- keyboards/mechwild/bb65/info.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/mechwild/bb65/info.json b/keyboards/mechwild/bb65/info.json index a9d812d827..81856c5c7c 100644 --- a/keyboards/mechwild/bb65/info.json +++ b/keyboards/mechwild/bb65/info.json @@ -105,8 +105,8 @@ {"matrix": [7, 7], "x": 10.25, "y": 3}, {"matrix": [7, 6], "x": 11.25, "y": 3}, {"matrix": [7, 5], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [7, 4], "x": 15.5, "y": 3}, - {"matrix": [7, 3], "x": 14.25, "y": 3.25}, + {"matrix": [7, 4], "x": 14.25, "y": 3.25}, + {"matrix": [7, 3], "x": 15.5, "y": 3}, {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, @@ -174,8 +174,8 @@ {"matrix": [7, 7], "x": 10.25, "y": 3}, {"matrix": [7, 6], "x": 11.25, "y": 3}, {"matrix": [7, 5], "x": 12.25, "y": 3, "w": 1.75}, - {"matrix": [7, 4], "x": 15.5, "y": 3}, - {"matrix": [7, 3], "x": 14.25, "y": 3.25}, + {"matrix": [7, 4], "x": 14.25, "y": 3.25}, + {"matrix": [7, 3], "x": 15.5, "y": 3}, {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, From 9877af9bf8967ade2a3d1ed752bb3faa52185ecb Mon Sep 17 00:00:00 2001 From: yiancar Date: Sun, 22 Dec 2024 21:57:25 +0200 Subject: [PATCH 44/77] [Keyboard] Add keycult 1800 (#24729) Co-authored-by: jack Co-authored-by: yiancar --- keyboards/keycult/keycult1800/keyboard.json | 132 ++++++++++++++++++ .../keycult1800/keymaps/default/keymap.c | 35 +++++ keyboards/keycult/keycult1800/readme.md | 32 +++++ keyboards/keycult/keycult1800/rules.mk | 2 + 4 files changed, 201 insertions(+) create mode 100644 keyboards/keycult/keycult1800/keyboard.json create mode 100644 keyboards/keycult/keycult1800/keymaps/default/keymap.c create mode 100644 keyboards/keycult/keycult1800/readme.md create mode 100644 keyboards/keycult/keycult1800/rules.mk diff --git a/keyboards/keycult/keycult1800/keyboard.json b/keyboards/keycult/keycult1800/keyboard.json new file mode 100644 index 0000000000..a50b77d104 --- /dev/null +++ b/keyboards/keycult/keycult1800/keyboard.json @@ -0,0 +1,132 @@ +{ + "manufacturer": "Yiancar-Designs", + "keyboard_name": "Keycult 1800", + "maintainer": "Yiancar-Designs", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["B12", "B13", "B14", "B15", "A8", "A10", "A14", "A15", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "A0", "A1", "A6"], + "rows": ["B11", "B10", "B2", "B1", "A9", "A5"] + }, + "processor": "STM32F072", + "url": "https://yiancar-designs.com", + "usb": { + "device_version": "0.0.1", + "pid": "0x6338", + "vid": "0x8968" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1.25, "y": 0 }, + { "matrix": [0, 2], "x": 2.25, "y": 0 }, + { "matrix": [0, 3], "x": 3.25, "y": 0 }, + { "matrix": [0, 4], "x": 4.25, "y": 0 }, + { "matrix": [0, 5], "x": 5.5, "y": 0 }, + { "matrix": [0, 6], "x": 6.5, "y": 0 }, + { "matrix": [0, 7], "x": 7.5, "y": 0 }, + { "matrix": [0, 8], "x": 8.5, "y": 0 }, + { "matrix": [0, 9], "x": 9.75, "y": 0 }, + { "matrix": [0, 10], "x": 10.75, "y": 0 }, + { "matrix": [0, 11], "x": 11.75, "y": 0 }, + { "matrix": [0, 12], "x": 12.75, "y": 0 }, + { "matrix": [0, 13], "x": 14, "y": 0 }, + { "matrix": [0, 14], "x": 15.5, "y": 0 }, + { "matrix": [0, 15], "x": 16.5, "y": 0 }, + { "matrix": [0, 16], "x": 17.5, "y": 0 }, + { "matrix": [0, 17], "x": 18.5, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1.5 }, + { "matrix": [1, 1], "x": 1, "y": 1.5 }, + { "matrix": [1, 2], "x": 2, "y": 1.5 }, + { "matrix": [1, 3], "x": 3, "y": 1.5 }, + { "matrix": [1, 4], "x": 4, "y": 1.5 }, + { "matrix": [1, 5], "x": 5, "y": 1.5 }, + { "matrix": [1, 6], "x": 6, "y": 1.5 }, + { "matrix": [1, 7], "x": 7, "y": 1.5 }, + { "matrix": [1, 8], "x": 8, "y": 1.5 }, + { "matrix": [1, 9], "x": 9, "y": 1.5 }, + { "matrix": [1, 10], "x": 10, "y": 1.5 }, + { "matrix": [1, 11], "x": 11, "y": 1.5 }, + { "matrix": [1, 12], "x": 12, "y": 1.5 }, + { "matrix": [1, 13], "x": 13, "y": 1.5 }, + { "matrix": [2, 13], "x": 14, "y": 1.5 }, + { "matrix": [1, 14], "x": 15.5, "y": 1.5 }, + { "matrix": [1, 15], "x": 16.5, "y": 1.5 }, + { "matrix": [1, 16], "x": 17.5, "y": 1.5 }, + { "matrix": [1, 17], "x": 18.5, "y": 1.5 }, + { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.5 }, + { "matrix": [2, 1], "x": 1.5, "y": 2.5 }, + { "matrix": [2, 2], "x": 2.5, "y": 2.5 }, + { "matrix": [2, 3], "x": 3.5, "y": 2.5 }, + { "matrix": [2, 4], "x": 4.5, "y": 2.5 }, + { "matrix": [2, 5], "x": 5.5, "y": 2.5 }, + { "matrix": [2, 6], "x": 6.5, "y": 2.5 }, + { "matrix": [2, 7], "x": 7.5, "y": 2.5 }, + { "matrix": [2, 8], "x": 8.5, "y": 2.5 }, + { "matrix": [2, 9], "x": 9.5, "y": 2.5 }, + { "matrix": [2, 10], "x": 10.5, "y": 2.5 }, + { "matrix": [2, 11], "x": 11.5, "y": 2.5 }, + { "matrix": [2, 12], "x": 12.5, "y": 2.5 }, + { "matrix": [3, 12], "w": 1.5, "x": 13.5, "y": 2.5 }, + { "matrix": [2, 14], "x": 15.5, "y": 2.5 }, + { "matrix": [2, 15], "x": 16.5, "y": 2.5 }, + { "matrix": [2, 16], "x": 17.5, "y": 2.5 }, + { "matrix": [2, 17], "x": 18.5, "y": 2.5 }, + { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.5 }, + { "matrix": [3, 1], "x": 1.75, "y": 3.5 }, + { "matrix": [3, 2], "x": 2.75, "y": 3.5 }, + { "matrix": [3, 3], "x": 3.75, "y": 3.5 }, + { "matrix": [3, 4], "x": 4.75, "y": 3.5 }, + { "matrix": [3, 5], "x": 5.75, "y": 3.5 }, + { "matrix": [3, 6], "x": 6.75, "y": 3.5 }, + { "matrix": [3, 7], "x": 7.75, "y": 3.5 }, + { "matrix": [3, 8], "x": 8.75, "y": 3.5 }, + { "matrix": [3, 9], "x": 9.75, "y": 3.5 }, + { "matrix": [3, 10], "x": 10.75, "y": 3.5 }, + { "matrix": [3, 11], "x": 11.75, "y": 3.5 }, + { "matrix": [3, 13], "w": 2.25, "x": 12.75, "y": 3.5 }, + { "matrix": [3, 14], "x": 15.5, "y": 3.5 }, + { "matrix": [3, 15], "x": 16.5, "y": 3.5 }, + { "matrix": [3, 16], "x": 17.5, "y": 3.5 }, + { "matrix": [3, 17], "x": 18.5, "y": 3.5 }, + { "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.5 }, + { "matrix": [4, 2], "x": 2.25, "y": 4.5 }, + { "matrix": [4, 3], "x": 3.25, "y": 4.5 }, + { "matrix": [4, 4], "x": 4.25, "y": 4.5 }, + { "matrix": [4, 5], "x": 5.25, "y": 4.5 }, + { "matrix": [4, 6], "x": 6.25, "y": 4.5 }, + { "matrix": [4, 7], "x": 7.25, "y": 4.5 }, + { "matrix": [4, 8], "x": 8.25, "y": 4.5 }, + { "matrix": [4, 9], "x": 9.25, "y": 4.5 }, + { "matrix": [4, 10], "x": 10.25, "y": 4.5 }, + { "matrix": [4, 11], "x": 11.25, "y": 4.5 }, + { "matrix": [4, 12], "w": 1.75, "x": 12.25, "y": 4.5 }, + { "matrix": [4, 13], "x": 14.25, "y": 4.75 }, + { "matrix": [4, 14], "x": 15.5, "y": 4.5 }, + { "matrix": [4, 15], "x": 16.5, "y": 4.5 }, + { "matrix": [4, 16], "x": 17.5, "y": 4.5 }, + { "matrix": [4, 17], "x": 18.5, "y": 4.5 }, + { "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.5 }, + { "matrix": [5, 1], "w": 1.25, "x": 1.25, "y": 5.5 }, + { "matrix": [5, 2], "w": 1.25, "x": 2.5, "y": 5.5 }, + { "matrix": [5, 6], "w": 6.25, "x": 3.75, "y": 5.5 }, + { "matrix": [5, 9], "x": 10, "y": 5.5 }, + { "matrix": [5, 10], "x": 11, "y": 5.5 }, + { "matrix": [5, 11], "x": 12, "y": 5.5 }, + { "matrix": [5, 12], "x": 13.25, "y": 5.75 }, + { "matrix": [5, 13], "x": 14.25, "y": 5.75 }, + { "matrix": [5, 14], "x": 15.25, "y": 5.75 }, + { "matrix": [5, 15], "x": 16.5, "y": 5.5 }, + { "matrix": [5, 16], "x": 17.5, "y": 5.5 }, + { "matrix": [5, 17], "x": 18.5, "y": 5.5 } + ] + } + } +} diff --git a/keyboards/keycult/keycult1800/keymaps/default/keymap.c b/keyboards/keycult/keycult1800/keymaps/default/keymap.c new file mode 100644 index 0000000000..e596ff2db0 --- /dev/null +++ b/keyboards/keycult/keycult1800/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2024 Yiancar-Designs + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT( /* Base */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_HOME, KC_END, KC_PGUP, KC_PGDN, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), + +[1] = LAYOUT( /* FN */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, KC_VOLD, KC_MUTE, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + +}; diff --git a/keyboards/keycult/keycult1800/readme.md b/keyboards/keycult/keycult1800/readme.md new file mode 100644 index 0000000000..bc8574248c --- /dev/null +++ b/keyboards/keycult/keycult1800/readme.md @@ -0,0 +1,32 @@ +# Keycult 1800 + +This is a 1800 layout PCB + +* Keyboard Maintainer: [Yiancar](https://yiancar-designs.com/) and on [GitHub](https://github.com/yiancar) +* Hardware Supported: A 1800 keyboard with STM32F072CB or APM compatible +* Hardware Availability: https://keycult.com/ + +## Instructions + +### Build + +Make example for this keyboard (after setting up your build environment): + + make keycult/keycult1800:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +### Reset + +- Unplug +- Hold Escape +- Plug In +- Unplug +- Release Escape + +### Flash + +- Unplug +- Hold Escape +- Plug In +- Flash using QMK Toolbox or dfu-util (`make keycult/keycult1800::dfu-util`) diff --git a/keyboards/keycult/keycult1800/rules.mk b/keyboards/keycult/keycult1800/rules.mk new file mode 100644 index 0000000000..0ab54aaaf7 --- /dev/null +++ b/keyboards/keycult/keycult1800/rules.mk @@ -0,0 +1,2 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF From 58807b02887c116a22f860cd80d5b94ddd77122b Mon Sep 17 00:00:00 2001 From: J <12501551+NBeing@users.noreply.github.com> Date: Sun, 22 Dec 2024 15:23:14 -0500 Subject: [PATCH 45/77] Clarify keymap location and format in newbs_building_firmware.md (#24663) --- docs/newbs_building_firmware.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/newbs_building_firmware.md b/docs/newbs_building_firmware.md index f3afd6a896..f5e529b9ce 100644 --- a/docs/newbs_building_firmware.md +++ b/docs/newbs_building_firmware.md @@ -42,7 +42,7 @@ Look at the output from that command, you should see something like this: Ψ Created a new keymap called in: /home/me/qmk_firmware/keyboards/clueboard/66/rev3/keymaps/. ``` -This is the location of your new `keymap.c` file. +This is the location of your new keymap file. Your keyboards default keymap file may be a `.json` file or a `.c` file. If your keymap is a `.json` file it can be converted to a `.c` file using QMK's [`json2c`](cli_commands#qmk-json2c) utility. ## Open `keymap.c` In Your Favorite Text Editor From 18cca2062e889a23933043ec5bdaf3c18cb060e1 Mon Sep 17 00:00:00 2001 From: Bertrand Le Roy Date: Mon, 23 Dec 2024 22:25:37 -0800 Subject: [PATCH 46/77] DecenTKL main keyboard (#24702) --- keyboards/decent/tkl/atari-font.c | 231 ++++++++++++++ keyboards/decent/tkl/config.h | 9 + keyboards/decent/tkl/keyboard.json | 298 ++++++++++++++++++ keyboards/decent/tkl/keymaps/default/keymap.c | 57 ++++ keyboards/decent/tkl/readme.md | 79 +++++ keyboards/decent/tkl/tkl.c | 72 +++++ 6 files changed, 746 insertions(+) create mode 100644 keyboards/decent/tkl/atari-font.c create mode 100644 keyboards/decent/tkl/config.h create mode 100644 keyboards/decent/tkl/keyboard.json create mode 100644 keyboards/decent/tkl/keymaps/default/keymap.c create mode 100644 keyboards/decent/tkl/readme.md create mode 100644 keyboards/decent/tkl/tkl.c diff --git a/keyboards/decent/tkl/atari-font.c b/keyboards/decent/tkl/atari-font.c new file mode 100644 index 0000000000..635e711f52 --- /dev/null +++ b/keyboards/decent/tkl/atari-font.c @@ -0,0 +1,231 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "progmem.h" + +static const unsigned char PROGMEM font[] = { + 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, + 0x00, 0x00, 0xFF, 0xFF, 0x18, 0x18, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, + 0x18, 0x18, 0x1F, 0x1F, 0x00, 0x00, + 0x18, 0x18, 0xFF, 0xFF, 0x00, 0x00, + 0x18, 0x18, 0xF8, 0xF8, 0x00, 0x00, + 0xE0, 0x70, 0x38, 0x1C, 0x0E, 0x07, + 0x07, 0x0E, 0x1C, 0x38, 0x70, 0xE0, + 0x80, 0xC0, 0xF0, 0xF8, 0xFE, 0xFF, + 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, + 0xFF, 0xFE, 0xF8, 0xF0, 0xC0, 0x80, + 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x0F, + 0x0F, 0x0F, 0x0F, 0x00, 0x00, 0x00, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, + 0xF0, 0xF0, 0xF0, 0x00, 0x00, 0x00, + 0x18, 0x58, 0x66, 0x66, 0x58, 0x18, + 0x00, 0x00, 0xF8, 0xF8, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0xFF, 0xFF, 0x18, 0x18, + 0x00, 0x18, 0x3C, 0x3C, 0x18, 0x00, + 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, + 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x18, 0xF8, 0xF8, 0x18, 0x18, + 0x18, 0x18, 0x1F, 0x1F, 0x18, 0x18, + 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1F, 0x1F, 0x18, 0x18, + 0x1F, 0x15, 0x75, 0x50, 0x50, 0x00, + 0x08, 0x0C, 0x7E, 0x0C, 0x08, 0x00, + 0x10, 0x30, 0x7E, 0x30, 0x10, 0x00, + 0x10, 0x38, 0x54, 0x10, 0x10, 0x00, + 0x10, 0x10, 0x54, 0x38, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x5E, 0x00, 0x00, 0x00, + 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, + 0x24, 0x7E, 0x24, 0x7E, 0x24, 0x00, + 0x24, 0x2A, 0x6B, 0x2A, 0x12, 0x00, + 0x4C, 0x2C, 0x10, 0x68, 0x64, 0x00, + 0x30, 0x4A, 0x55, 0x32, 0x50, 0x00, + 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, + 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, + 0x10, 0x54, 0x38, 0x54, 0x10, 0x00, + 0x10, 0x10, 0x7C, 0x10, 0x10, 0x00, + 0x00, 0x80, 0xE0, 0x60, 0x00, 0x00, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, + 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, + 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, + 0x3C, 0x52, 0x4A, 0x46, 0x3C, 0x00, + 0x00, 0x44, 0x7E, 0x40, 0x00, 0x00, + 0x44, 0x62, 0x52, 0x4A, 0x44, 0x00, + 0x22, 0x42, 0x4A, 0x56, 0x22, 0x00, + 0x30, 0x28, 0x24, 0x7E, 0x20, 0x00, + 0x2E, 0x4A, 0x4A, 0x4A, 0x32, 0x00, + 0x3C, 0x4A, 0x4A, 0x4A, 0x30, 0x00, + 0x62, 0x12, 0x0A, 0x06, 0x02, 0x00, + 0x34, 0x4A, 0x4A, 0x4A, 0x34, 0x00, + 0x04, 0x4A, 0x4A, 0x2A, 0x1C, 0x00, + 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x48, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x48, 0x48, 0x48, 0x48, 0x48, 0x00, + 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, + 0x04, 0x02, 0x52, 0x0A, 0x04, 0x00, + 0x3C, 0x42, 0x5A, 0x5A, 0x5C, 0x00, + 0x78, 0x24, 0x22, 0x24, 0x78, 0x00, + 0x7E, 0x4A, 0x4A, 0x4A, 0x34, 0x00, + 0x3C, 0x42, 0x42, 0x42, 0x24, 0x00, + 0x7E, 0x42, 0x42, 0x24, 0x18, 0x00, + 0x7E, 0x4A, 0x4A, 0x4A, 0x42, 0x00, + 0x7E, 0x0A, 0x0A, 0x0A, 0x02, 0x00, + 0x3C, 0x42, 0x42, 0x52, 0x72, 0x00, + 0x7E, 0x08, 0x08, 0x08, 0x7E, 0x00, + 0x00, 0x42, 0x7E, 0x42, 0x00, 0x00, + 0x20, 0x40, 0x40, 0x3E, 0x00, 0x00, + 0x7E, 0x18, 0x24, 0x42, 0x00, 0x00, + 0x7E, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x7E, 0x04, 0x08, 0x04, 0x7E, 0x00, + 0x7E, 0x0C, 0x18, 0x30, 0x7E, 0x00, + 0x3C, 0x42, 0x42, 0x42, 0x3C, 0x00, + 0x7E, 0x12, 0x12, 0x12, 0x0C, 0x00, + 0x3C, 0x42, 0x52, 0x22, 0x5C, 0x00, + 0x7E, 0x12, 0x12, 0x32, 0x4C, 0x00, + 0x04, 0x4A, 0x4A, 0x4A, 0x30, 0x00, + 0x02, 0x02, 0x7E, 0x02, 0x02, 0x00, + 0x7E, 0x40, 0x40, 0x40, 0x7E, 0x00, + 0x1E, 0x20, 0x40, 0x20, 0x1E, 0x00, + 0x7E, 0x20, 0x10, 0x20, 0x7E, 0x00, + 0x42, 0x24, 0x18, 0x24, 0x42, 0x00, + 0x06, 0x08, 0x70, 0x08, 0x06, 0x00, + 0x62, 0x52, 0x4A, 0x46, 0x42, 0x00, + 0x00, 0x7E, 0x42, 0x42, 0x00, 0x00, + 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, + 0x00, 0x00, 0x42, 0x42, 0x7E, 0x00, + 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x18, 0x3C, 0x7E, 0x7E, 0x3C, 0x18, + 0x20, 0x54, 0x54, 0x54, 0x78, 0x00, + 0x7E, 0x48, 0x48, 0x48, 0x30, 0x00, + 0x00, 0x38, 0x44, 0x44, 0x44, 0x00, + 0x30, 0x48, 0x48, 0x48, 0x7E, 0x00, + 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, + 0x00, 0x08, 0x7C, 0x0A, 0x0A, 0x00, + 0x98, 0xA4, 0xA4, 0xA4, 0x7C, 0x00, + 0x7E, 0x08, 0x08, 0x08, 0x70, 0x00, + 0x00, 0x48, 0x7A, 0x40, 0x00, 0x00, + 0x00, 0x80, 0x80, 0x80, 0x7A, 0x00, + 0x00, 0x7E, 0x10, 0x28, 0x40, 0x00, + 0x00, 0x42, 0x7E, 0x40, 0x00, 0x00, + 0x7C, 0x0C, 0x18, 0x0C, 0x78, 0x00, + 0x7C, 0x04, 0x04, 0x04, 0x78, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, + 0x00, 0xFC, 0x24, 0x24, 0x18, 0x00, + 0x00, 0x18, 0x24, 0x24, 0xFC, 0x00, + 0x00, 0x7C, 0x04, 0x04, 0x08, 0x00, + 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, + 0x00, 0x04, 0x3E, 0x44, 0x44, 0x00, + 0x3C, 0x40, 0x40, 0x40, 0x7C, 0x00, + 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, + 0x1C, 0x70, 0x38, 0x70, 0x1C, 0x00, + 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, + 0x8C, 0x90, 0x90, 0x50, 0x3C, 0x00, + 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, + 0x18, 0x5C, 0x7E, 0x7E, 0x5C, 0x18, + 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, + 0x1E, 0x06, 0x0A, 0x72, 0x00, 0x00, + 0x00, 0x08, 0x1C, 0x3E, 0x7F, 0x00, + 0x00, 0x7F, 0x3E, 0x1C, 0x08, 0x00, + 0x7E, 0xD5, 0xD5, 0xD5, 0xD5, 0x7E, + 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, + 0xFE, 0xCF, 0x33, 0xE3, 0xC1, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, + 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x03, 0x01, 0x01, 0xF1, 0xF1, 0xF1, + 0xE1, 0x03, 0x03, 0x0F, 0xFF, 0x03, + 0x01, 0x01, 0x31, 0x31, 0x31, 0x31, + 0x31, 0xFF, 0x0F, 0x03, 0x03, 0xE1, + 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xFF, + 0x03, 0x01, 0x01, 0x31, 0x31, 0x31, + 0x31, 0x31, 0xFF, 0x03, 0x01, 0x01, + 0xC1, 0x03, 0x0F, 0x3F, 0xFF, 0x01, + 0x01, 0x01, 0xFF, 0xF1, 0xF1, 0xF1, + 0x01, 0x01, 0x01, 0x01, 0xF1, 0xF1, + 0xF1, 0xFF, 0x01, 0x01, 0x01, 0x01, + 0x0F, 0x07, 0x03, 0xC1, 0xE1, 0xF1, + 0xF9, 0xFD, 0xFF, 0x01, 0x01, 0x01, + 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, + 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, + 0x00, 0x00, 0x4C, 0x5A, 0x32, 0x00, + 0x7E, 0x08, 0x70, 0x00, 0x7A, 0x00, + 0x7C, 0x0A, 0x00, 0x3E, 0x48, 0x00, + 0x00, 0x00, 0x7E, 0x0A, 0x0A, 0x00, + 0x78, 0x08, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, + 0xBA, 0xBA, 0xFE, 0x86, 0xEA, 0xEA, + 0x86, 0xFE, 0x82, 0xEA, 0xEA, 0xF6, + 0xFE, 0xB6, 0xAA, 0xDA, 0xFE, 0x7C, + 0x20, 0x30, 0x38, 0x3C, 0x3E, 0x3F, + 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, + 0x3F, 0x3F, 0x3F, 0x38, 0x27, 0x2F, + 0x20, 0x20, 0x20, 0x20, 0x30, 0x30, + 0x3C, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, + 0x30, 0x20, 0xA0, 0x23, 0xA3, 0x23, + 0xA1, 0x30, 0x30, 0x3C, 0x3F, 0x30, + 0x20, 0x20, 0x23, 0x23, 0x23, 0x23, + 0x23, 0x3F, 0x3C, 0x30, 0x20, 0x21, + 0x23, 0x23, 0x23, 0x23, 0x23, 0x3F, + 0x30, 0x20, 0x20, 0x23, 0x23, 0x23, + 0x23, 0x23, 0x3F, 0x20, 0x20, 0x20, + 0x3F, 0x3F, 0x3C, 0x30, 0x20, 0x20, + 0x20, 0x30, 0x3F, 0x3F, 0x3F, 0x3F, + 0x20, 0x20, 0x20, 0x20, 0x3F, 0x3F, + 0x3F, 0x3F, 0x20, 0x20, 0x20, 0x20, + 0x3C, 0x38, 0x30, 0x20, 0x21, 0x23, + 0x27, 0x2F, 0x3F, 0x30, 0x20, 0x20, + 0x20, 0x23, 0x23, 0x23, 0x23, 0x23, + 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01, + 0xBF, 0x9F, 0xCF, 0xE1, 0xFF, 0x81, + 0xFF, 0xE1, 0xCF, 0x9F, 0xBF, 0xFF, + 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7E, 0xFF, 0xB3, 0xA5, 0xCD, 0xFF, + 0x81, 0xF7, 0x8F, 0xFF, 0x85, 0xFF, + 0x83, 0xF5, 0xFF, 0xC1, 0xB7, 0x7E, + 0x7E, 0xFF, 0x81, 0xF5, 0xF5, 0xFF, + 0x87, 0xF7, 0x8F, 0xFF, 0x7E, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, + 0x44, 0x44, 0x00, 0x78, 0x14, 0x14, + 0x78, 0x00, 0x7C, 0x14, 0x14, 0x08, + 0x00, 0x48, 0x54, 0x24, 0x00, 0x00, + 0x7E, 0xFF, 0xC3, 0xBD, 0xBD, 0xFF, + 0xC1, 0xB7, 0xFF, 0x8F, 0xF7, 0xF7, + 0xFF, 0x81, 0xFF, 0x7E, 0x00, 0x00, + 0x7E, 0xFF, 0x83, 0xF5, 0xF5, 0x83, + 0xFF, 0x81, 0xFF, 0xC1, 0xB7, 0x7E, + 0x2A, 0x7F, 0xF1, 0x6F, 0xC1, 0x6F, + 0xF1, 0x7F, 0x2A, 0x00, 0x00, 0x3E, + 0x7F, 0x41, 0x61, 0xFF, 0xBE, 0x00, + 0x7F, 0x7E, 0x0C, 0x18, 0x0C, 0x7E, + 0x7F, 0x00, 0x7F, 0x7F, 0x1C, 0x36, + 0x63, 0x41, 0x00, 0x00, 0x00, 0x7F, + 0x7F, 0x1B, 0x1B, 0x03, 0x00, 0x7B, + 0x7B, 0x00, 0x7C, 0x78, 0x0C, 0x0C, + 0x00, 0x7C, 0x78, 0x0C, 0x7C, 0x78, + 0x0C, 0x7C, 0x78, 0x00, 0x1C, 0x38, + 0x60, 0x38, 0x60, 0x38, 0x1C, 0x00, + 0x20, 0x74, 0x54, 0x54, 0x3C, 0x78, + 0x00, 0x7C, 0x78, 0x0C, 0x0C, 0x00, + 0x38, 0x7C, 0x54, 0x54, 0x5C, 0x58, + 0x00, 0x2A, 0x2A, 0x2A, 0x2A, 0x00, + 0x40, 0x60, 0x30, 0x1E, 0x00, 0x7E, + 0x00, 0x1E, 0x30, 0x60, 0x40, 0x00, + 0x40, 0x60, 0x70, 0x78, 0x7C, 0x7E, + 0x7F, 0x73, 0x65, 0x49, 0x51, 0x63, + 0x7F, 0x7F, 0x41, 0x5D, 0x63, 0x7F, + 0x41, 0x55, 0x5D, 0x7F, 0x63, 0x5D, + 0x5D, 0x7F, 0x41, 0x55, 0x5D, 0x7F, + 0x41, 0x73, 0x67, 0x41, 0x7F, 0x79, + 0x79, 0x41, 0x41, 0x79, 0x79, 0x7F, + 0x41, 0x41, 0x63, 0x41, 0x49, 0x5D, + 0x7F, 0x41, 0x41, 0x4F, 0x4F, 0x7F, + 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01, +}; diff --git a/keyboards/decent/tkl/config.h b/keyboards/decent/tkl/config.h new file mode 100644 index 0000000000..772d6f4a27 --- /dev/null +++ b/keyboards/decent/tkl/config.h @@ -0,0 +1,9 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define I2C1_SDA_PIN GP26 +#define I2C1_SCL_PIN GP27 + +#define OLED_FONT_H "atari-font.c" \ No newline at end of file diff --git a/keyboards/decent/tkl/keyboard.json b/keyboards/decent/tkl/keyboard.json new file mode 100644 index 0000000000..96b472c6fc --- /dev/null +++ b/keyboards/decent/tkl/keyboard.json @@ -0,0 +1,298 @@ +{ + "manufacturer": "Bertrand Le roy", + "keyboard_name": "DecenTKL", + "maintainer": "bleroy", + "url": "https://github.com/bleroy/3d-junkyard/blob/main/DecenTKL/", + "tags": ["ansi", "tkl", "rgb", "oled", "encoder", "atari"], + "bootloader": "rp2040", + "processor": "RP2040", + "features": { + "encoder": true, + "bootmagic": true, + "rgb_matrix": true, + "oled": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": false, + "nkro": true + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["GP1", "GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9"], + "rows": ["GP11", "GP12", "GP13", "GP14", "GP15", "GP16", "GP17", "GP18", "GP19", "GP20"] + }, + "bootmagic": { + "matrix": [0, 6] + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "encoder": { + "rotary": [ + { + "pin_a": "GP21", + "pin_b": "GP22", + "resolution": 1 + } + ] + }, + "ws2812": { + "pin": "GP0", + "driver": "vendor" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 6], "x": 0.5, "y": 0, "label": "Esc"}, + {"matrix": [0, 5], "x": 3.5, "y": 0, "label": "F1"}, + {"matrix": [0, 4], "x": 5, "y": 0, "label": "F2"}, + {"matrix": [0, 3], "x": 6.5, "y": 0, "label": "F3"}, + {"matrix": [0, 2], "x": 8, "y": 0, "label": "F4"}, + {"matrix": [0, 1], "x": 9.5, "y": 0, "label": "F5"}, + {"matrix": [0, 0], "x": 11, "y": 0, "label": "F6"}, + {"matrix": [1, 0], "x": 12.5, "y": 0, "label": "F7"}, + {"matrix": [1, 1], "x": 14, "y": 0, "label": "F8"}, + {"matrix": [1, 2], "x": 15.5, "y": 0, "label": "F9"}, + {"matrix": [1, 3], "x": 17, "y": 0, "label": "F10"}, + + {"matrix": [2, 6], "x": 0, "y": 1.5, "label": "`"}, + {"matrix": [2, 5], "x": 1, "y": 1.5, "label": "1"}, + {"matrix": [2, 4], "x": 2, "y": 1.5, "label": "2"}, + {"matrix": [2, 3], "x": 3, "y": 1.5, "label": "3"}, + {"matrix": [2, 2], "x": 4, "y": 1.5, "label": "4"}, + {"matrix": [2, 1], "x": 5, "y": 1.5, "label": "5"}, + {"matrix": [2, 0], "x": 6, "y": 1.5, "label": "6"}, + {"matrix": [3, 0], "x": 7, "y": 1.5, "label": "7"}, + {"matrix": [3, 1], "x": 8, "y": 1.5, "label": "8"}, + {"matrix": [3, 2], "x": 9, "y": 1.5, "label": "9"}, + {"matrix": [3, 3], "x": 10, "y": 1.5, "label": "0"}, + {"matrix": [3, 4], "x": 11, "y": 1.5, "label": "-"}, + {"matrix": [3, 5], "x": 12, "y": 1.5, "label": "="}, + {"matrix": [3, 6], "x": 13, "y": 1.5, "w": 2, "label": "Backspace"}, + {"matrix": [1, 4], "x": 15.5, "y": 1.5, "label": "Insert"}, + {"matrix": [1, 5], "x": 16.5, "y": 1.5, "label": "Home"}, + {"matrix": [1, 6], "x": 17.5, "y": 1.5, "label": "PgUp"}, + + {"matrix": [4, 6], "x": 0, "y": 2.5, "w": 1.5, "label": "Tab"}, + {"matrix": [4, 5], "x": 1.5, "y": 2.5, "label": "Q"}, + {"matrix": [4, 4], "x": 2.5, "y": 2.5, "label": "W"}, + {"matrix": [4, 3], "x": 3.5, "y": 2.5, "label": "E"}, + {"matrix": [4, 2], "x": 4.5, "y": 2.5, "label": "R"}, + {"matrix": [4, 1], "x": 5.5, "y": 2.5, "label": "T"}, + {"matrix": [4, 0], "x": 6.5, "y": 2.5, "label": "Y"}, + {"matrix": [5, 0], "x": 7.5, "y": 2.5, "label": "U"}, + {"matrix": [5, 1], "x": 8.5, "y": 2.5, "label": "I"}, + {"matrix": [5, 2], "x": 9.5, "y": 2.5, "label": "O"}, + {"matrix": [5, 3], "x": 10.5, "y": 2.5, "label": "P"}, + {"matrix": [5, 4], "x": 11.5, "y": 2.5, "label": "["}, + {"matrix": [5, 5], "x": 12.5, "y": 2.5, "label": "]"}, + {"matrix": [5, 6], "x": 13.5, "y": 2.5, "w": 1.5, "label": "\\"}, + {"matrix": [9, 5], "x": 15.5, "y": 2.5, "label": "Del"}, + {"matrix": [9, 6], "x": 16.5, "y": 2.5, "label": "End"}, + {"matrix": [7, 6], "x": 17.5, "y": 2.5, "label": "PgDn"}, + + {"matrix": [6, 6], "x": 0, "y": 3.5, "w": 1.75, "label": "Caps"}, + {"matrix": [6, 5], "x": 1.75, "y": 3.5, "label": "A"}, + {"matrix": [6, 4], "x": 2.75, "y": 3.5, "label": "S"}, + {"matrix": [6, 3], "x": 3.75, "y": 3.5, "label": "D"}, + {"matrix": [6, 2], "x": 4.75, "y": 3.5, "label": "F"}, + {"matrix": [6, 1], "x": 5.75, "y": 3.5, "label": "G"}, + {"matrix": [6, 0], "x": 6.75, "y": 3.5, "label": "H"}, + {"matrix": [7, 0], "x": 7.75, "y": 3.5, "label": "J"}, + {"matrix": [7, 1], "x": 8.75, "y": 3.5, "label": "K"}, + {"matrix": [7, 2], "x": 9.75, "y": 3.5, "label": "L"}, + {"matrix": [7, 3], "x": 10.75, "y": 3.5, "label": ";"}, + {"matrix": [7, 4], "x": 11.75, "y": 3.5, "label": "'"}, + {"matrix": [7, 5], "x": 12.75, "y": 3.5, "w": 2.25, "label": "Return"}, + + {"matrix": [8, 6], "x": 0, "y": 4.5, "w": 2.25, "label": "Shift"}, + {"matrix": [8, 5], "x": 2.25, "y": 4.5, "label": "Z"}, + {"matrix": [8, 4], "x": 3.25, "y": 4.5, "label": "X"}, + {"matrix": [8, 3], "x": 4.25, "y": 4.5, "label": "C"}, + {"matrix": [8, 2], "x": 5.25, "y": 4.5, "label": "V"}, + {"matrix": [8, 1], "x": 6.25, "y": 4.5, "label": "B"}, + {"matrix": [8, 0], "x": 7.25, "y": 4.5, "label": "N"}, + {"matrix": [9, 0], "x": 8.25, "y": 4.5, "label": "M"}, + {"matrix": [9, 1], "x": 9.25, "y": 4.5, "label": ","}, + {"matrix": [9, 2], "x": 10.25, "y": 4.5, "label": "."}, + {"matrix": [9, 3], "x": 11.25, "y": 4.5, "label": "/"}, + {"matrix": [9, 4], "x": 12.25, "y": 4.5, "w": 2.75, "label": "Shift"}, + {"matrix": [4, 7], "x": 16.5, "y": 4.5, "label": "Up"}, + + {"matrix": [0, 8], "x": 0, "y": 5.5, "w": 1.25, "label": "Ctrl"}, + {"matrix": [1, 8], "x": 1.25, "y": 5.5, "w": 1.25, "label": "Atari"}, + {"matrix": [2, 8], "x": 2.5, "y": 5.5, "w": 1.25, "label": "Alt"}, + {"matrix": [3, 8], "x": 3.75, "y": 5.5, "w": 6.25, "label": "Space"}, + {"matrix": [2, 7], "x": 10, "y": 5.5, "w": 1.25, "label": "Alt"}, + {"matrix": [1, 7], "x": 11.25, "y": 5.5, "w": 1.25, "label": "Fn"}, + {"matrix": [3, 7], "x": 12.5, "y": 5.5, "w": 1.25, "label": "Menu"}, + {"matrix": [0, 7], "x": 13.75, "y": 5.5, "w": 1.25, "label": "Ctrl"}, + {"matrix": [4, 8], "x": 15.25, "y": 5.5, "label": "Left"}, + {"matrix": [5, 7], "x": 16.25, "y": 5.5, "label": "Down"}, + {"matrix": [5, 8], "x": 17.25, "y": 5.5, "label": "Right"} + ] + } + }, + "rgb_matrix": { + "max_brightness": 125, + "sleep": true, + "center_point": [77, 32], + "default": { + "animation": "typing_heatmap" + }, + "animations": { + "alphas_mods": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "flower_blooming": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "multisplash": true, + "pixel_flow": true, + "pixel_fractal": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "riverflow": true, + "solid_multisplash": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_splash": true, + "splash": true, + "starlight": true, + "starlight_dual_hue": true, + "starlight_dual_sat": true, + "typing_heatmap": true + }, + "layout": [ + {"matrix": [0, 6], "x": 8, "y": 0, "flags": 4}, + {"matrix": [2, 6], "x": 0, "y": 16, "flags": 4}, + {"matrix": [4, 6], "x": 3, "y": 26, "flags": 4}, + {"matrix": [6, 6], "x": 4, "y": 36, "flags": 4}, + {"matrix": [8, 6], "x": 6, "y": 46, "flags": 1}, + {"matrix": [0, 8], "x": 1, "y": 56, "flags": 1}, + + {"matrix": [0, 5], "x": 40, "y": 0, "flags": 4}, + {"matrix": [2, 5], "x": 10, "y": 16, "flags": 4}, + {"matrix": [4, 5], "x": 15, "y": 26, "flags": 4}, + {"matrix": [6, 5], "x": 17, "y": 36, "flags": 4}, + {"matrix": [8, 5], "x": 22, "y": 46, "flags": 4}, + {"matrix": [1, 8], "x": 14, "y": 56, "flags": 1}, + + {"matrix": [0, 4], "x": 55, "y": 0, "flags": 4}, + {"matrix": [2, 4], "x": 20, "y": 16, "flags": 4}, + {"matrix": [4, 4], "x": 25, "y": 26, "flags": 4}, + {"matrix": [6, 4], "x": 27, "y": 36, "flags": 4}, + {"matrix": [8, 4], "x": 32, "y": 46, "flags": 4}, + {"matrix": [2, 8], "x": 26, "y": 56, "flags": 1}, + + {"matrix": [0, 3], "x": 70, "y": 0, "flags": 4}, + {"matrix": [2, 3], "x": 30, "y": 16, "flags": 4}, + {"matrix": [4, 3], "x": 35, "y": 26, "flags": 4}, + {"matrix": [6, 3], "x": 37, "y": 36, "flags": 4}, + {"matrix": [8, 3], "x": 42, "y": 46, "flags": 4}, + + {"matrix": [0, 2], "x": 85, "y": 0, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [4, 2], "x": 45, "y": 26, "flags": 4}, + {"matrix": [6, 2], "x": 47, "y": 36, "flags": 4}, + {"matrix": [8, 2], "x": 52, "y": 46, "flags": 4}, + + {"matrix": [0, 1], "x": 100, "y": 0, "flags": 4}, + {"matrix": [2, 1], "x": 50, "y": 16, "flags": 4}, + {"matrix": [4, 1], "x": 55, "y": 26, "flags": 4}, + {"matrix": [6, 1], "x": 57, "y": 36, "flags": 4}, + {"matrix": [8, 1], "x": 62, "y": 46, "flags": 4}, + {"matrix": [3, 8], "x": 63, "y": 56, "flags": 4}, + + {"matrix": [0, 0], "x": 115, "y": 0, "flags": 4}, + {"matrix": [2, 0], "x": 60, "y": 16, "flags": 4}, + {"matrix": [4, 0], "x": 65, "y": 26, "flags": 4}, + {"matrix": [6, 0], "x": 67, "y": 36, "flags": 4}, + {"matrix": [8, 0], "x": 72, "y": 46, "flags": 4}, + + {"matrix": [1, 0], "x": 130, "y": 0, "flags": 4}, + {"matrix": [3, 0], "x": 70, "y": 16, "flags": 4}, + {"matrix": [5, 0], "x": 75, "y": 26, "flags": 4}, + {"matrix": [7, 0], "x": 77, "y": 36, "flags": 4}, + {"matrix": [9, 0], "x": 82, "y": 46, "flags": 4}, + + {"matrix": [1, 1], "x": 145, "y": 0, "flags": 4}, + {"matrix": [3, 1], "x": 80, "y": 16, "flags": 4}, + {"matrix": [5, 1], "x": 85, "y": 26, "flags": 4}, + {"matrix": [7, 1], "x": 87, "y": 36, "flags": 4}, + {"matrix": [9, 1], "x": 92, "y": 46, "flags": 4}, + + {"matrix": [1, 2], "x": 160, "y": 0, "flags": 4}, + {"matrix": [3, 2], "x": 90, "y": 16, "flags": 4}, + {"matrix": [5, 2], "x": 95, "y": 26, "flags": 4}, + {"matrix": [7, 2], "x": 97, "y": 36, "flags": 4}, + {"matrix": [9, 2], "x": 102, "y": 46, "flags": 4}, + + {"matrix": [1, 3], "x": 175, "y": 0, "flags": 4}, + {"matrix": [3, 3], "x": 100, "y": 16, "flags": 4}, + {"matrix": [5, 3], "x": 105, "y": 26, "flags": 4}, + {"matrix": [7, 3], "x": 107, "y": 36, "flags": 4}, + {"matrix": [9, 3], "x": 112, "y": 46, "flags": 4}, + {"matrix": [2, 7], "x": 100, "y": 56, "flags": 1}, + + {"matrix": [3, 4], "x": 110, "y": 16, "flags": 4}, + {"matrix": [5, 4], "x": 115, "y": 26, "flags": 4}, + {"matrix": [7, 4], "x": 117, "y": 36, "flags": 4}, + {"matrix": [9, 4], "x": 130, "y": 46, "flags": 1}, + {"matrix": [1, 7], "x": 112, "y": 56, "flags": 1}, + + {"matrix": [3, 5], "x": 120, "y": 16, "flags": 4}, + {"matrix": [5, 5], "x": 125, "y": 26, "flags": 4}, + {"matrix": [7, 5], "x": 132, "y": 36, "flags": 4}, + {"matrix": [3, 7], "x": 125, "y": 56, "flags": 1}, + + {"matrix": [3, 6], "x": 140, "y": 16, "flags": 4}, + {"matrix": [5, 6], "x": 135, "y": 26, "flags": 4}, + {"matrix": [0, 7], "x": 137, "y": 56, "flags": 1}, + + {"matrix": [1, 4], "x": 150, "y": 16, "flags": 4}, + {"matrix": [9, 5], "x": 150, "y": 26, "flags": 4}, + {"matrix": [4, 8], "x": 150, "y": 56, "flags": 4}, + + {"matrix": [1, 5], "x": 160, "y": 16, "flags": 4}, + {"matrix": [9, 6], "x": 160, "y": 26, "flags": 4}, + {"matrix": [4, 7], "x": 160, "y": 46, "flags": 4}, + {"matrix": [5, 7], "x": 160, "y": 56, "flags": 4}, + + {"matrix": [1, 6], "x": 170, "y": 16, "flags": 4}, + {"matrix": [7, 6], "x": 170, "y": 26, "flags": 4}, + {"matrix": [5, 8], "x": 170, "y": 56, "flags": 4} + ], + "driver": "ws2812" + } +} \ No newline at end of file diff --git a/keyboards/decent/tkl/keymaps/default/keymap.c b/keyboards/decent/tkl/keymaps/default/keymap.c new file mode 100644 index 0000000000..cd842cdec3 --- /dev/null +++ b/keyboards/decent/tkl/keymaps/default/keymap.c @@ -0,0 +1,57 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * /─────/ /─────/─────/─────/─────/─────/─────/─────/─────/─────/─────/ + * /Esc / /F1 /F2 /F3 /F4 /F5 /F6 /F7 /F8 /F9 /F10 / + * /─────/ /─────/─────/─────/─────/─────/─────/─────/─────/─────/─────/ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ + * │Ctrl│GUI │Alt │ │ Alt│ Fn │Menu│Ctrl│ │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ + */ + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1) , KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + /* + * / / /MyCmp/HomeP/Calc /Media/ ⏮ / ⏭ / ⏯ / ⏹ /Mute / / + * + * │ │💡│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │V+ │ + * │ │ │🔆│ │ │ │ │ │ │ │ │ │ │BootL│ │ │ │V- │ + * │ │ │🔅│ │ │ │ │ │ │ │ │ │ │ + * │ │ │🎨│ │ │ │ │ │ │ │ │ │ │🗘 │ + * │ │ │ │ │ │ │ │ │ │㉈ │🗘 │㉏ │ + */ + [1] = LAYOUT( + _______, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, _______, + + _______, RM_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, + _______, _______, RM_VALU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, KC_VOLD, + _______, _______, RM_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RM_HUEU, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_NEXT, + _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_PREV, RM_SPDU + ), +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) } +}; +#endif diff --git a/keyboards/decent/tkl/readme.md b/keyboards/decent/tkl/readme.md new file mode 100644 index 0000000000..2069268bfc --- /dev/null +++ b/keyboards/decent/tkl/readme.md @@ -0,0 +1,79 @@ +# DecenTKL + +*A TKL keyboard inspired by the language design of Atari XE and ST computers* + +* Keyboard Maintainer: [Bertrand Le roy](https://github.com/bleroy/3d-junkyard/blob/main/DecenTKL/) +* Hardware Supported: DecenTKL (Pi Pico based) +* Hardware Availability: Custom built but open-source + +Make example for this keyboard (after setting up your build environment): + + make decent/tkl:default + +Flashing example for this keyboard: + + make decent/tkl:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Press the escape key or the button on the back of the Pi while connecting the keyboard. + +## Special commands + +Fn + F1: Open my computer +Fn + F2: Browser home +Fn + F3: Open calculator +Fn + F4: Open media player +Fn + F5: Previous media +Fn + F6: Next media +Fn + F7: Play media +Fn + F8: Stop media +Fn + F9: Mute +Fn + PgUp: Volume up +Fn + PgDn: Volume down +Fn + 1: Toggle RGB lighting +Fn + Up: Next RGB effect +Fn + Down: Previous RGB effect +Fn + X: Change RGB hue +Fn + S: Lower RGB brightness +Fn + W: Raise RGB brightness +Fn + Left: Lower RGB animation speed +Fn + Right: Raise RGB animation speed + +Fn + \: go into bootloader mode without unplugging the keyboard + +## Layout +```C +/* + * /─────/ /─────/─────/─────/─────/─────/─────/─────/─────/─────/─────/ + * /Esc / /F1 /F2 /F3 /F4 /F5 /F6 /F7 /F8 /F9 /F10 / + * /─────/ /─────/─────/─────/─────/─────/─────/─────/─────/─────/─────/ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ + * │Ctrl│GUI │Alt │ │ Alt│ Fn │Menu│Ctrl│ │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ +*/ +``` + +When holding Fn down: + +```C +/* + * / / /MyCmp/HomeP/Calc /Media/ ⏮ / ⏭ / ⏯ / ⏹ /Mute / / + * + * │ │💡│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │V+ │ + * │ │ │🔆│ │ │ │ │ │ │ │ │ │ │BootL│ │ │ │V- │ + * │ │ │🔅│ │ │ │ │ │ │ │ │ │ │ + * │ │ │🎨│ │ │ │ │ │ │ │ │ │ │🗘 │ + * │ │ │ │ │ │ │ │ │ │㉈ │🗘 │㉏ │ +*/ +``` \ No newline at end of file diff --git a/keyboards/decent/tkl/tkl.c b/keyboards/decent/tkl/tkl.c new file mode 100644 index 0000000000..96f8a9dd5a --- /dev/null +++ b/keyboards/decent/tkl/tkl.c @@ -0,0 +1,72 @@ +// Copyright 2024 B. Le Roy +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +static void render_logo(void) { + static const char PROGMEM qmk_logo[] = { + // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 0x20, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xBC, 0xBD, 0xBE, 0xBF, + 0x00 + }; + + oled_write_P(qmk_logo, false); + oled_write_pixel(126, 0, 1); + oled_write_pixel(127, 0, 1); + oled_write_pixel(126, 1, 1); +} + +static const char PROGMEM caps_on[] = { 0x9C, 0x9D, 0x9E, 0x9F }; +static const char PROGMEM caps_off[] = { 0xBC, 0xBD, 0xBE, 0xBF }; + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + + render_logo(); + + bool caps = host_keyboard_led_state().caps_lock; + + if (caps) { + oled_set_cursor(17, 3); + oled_write_P(caps ? caps_on : caps_off, false); + } + return false; +} + +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { + return false; + } + + bool caps = host_keyboard_led_state().caps_lock; + + if (caps) { + for (uint8_t i = led_min; i < led_max; i++) { + if (g_led_config.flags[i] & LED_FLAG_KEYLIGHT) { + rgb_matrix_set_color(i, RGB_RED); + } + } + } + + if (get_highest_layer(layer_state) > 0) { + uint8_t layer = get_highest_layer(layer_state); + + for (uint8_t row = 0; row < MATRIX_ROWS; ++row) { + for (uint8_t col = 0; col < MATRIX_COLS; ++col) { + uint8_t index = g_led_config.matrix_co[row][col]; + + if (index >= led_min && index < led_max && index != NO_LED && + keymap_key_to_keycode(layer, (keypos_t){col,row}) > KC_TRNS) { + rgb_matrix_set_color(index, RGB_GREEN); + } + } + } + } + + return false; +} From e6fa351d3bb40bc5023850a55f9e47c72f40bdb5 Mon Sep 17 00:00:00 2001 From: Bertrand Le Roy Date: Mon, 23 Dec 2024 22:26:44 -0800 Subject: [PATCH 47/77] DecenTKL numpad (#24696) --- keyboards/decent/numpad/config.h | 8 + keyboards/decent/numpad/keyboard.json | 148 ++++++++++++++++++ .../decent/numpad/keymaps/default/keymap.c | 41 +++++ keyboards/decent/numpad/numpad.c | 111 +++++++++++++ keyboards/decent/numpad/readme.md | 71 +++++++++ 5 files changed, 379 insertions(+) create mode 100644 keyboards/decent/numpad/config.h create mode 100644 keyboards/decent/numpad/keyboard.json create mode 100644 keyboards/decent/numpad/keymaps/default/keymap.c create mode 100644 keyboards/decent/numpad/numpad.c create mode 100644 keyboards/decent/numpad/readme.md diff --git a/keyboards/decent/numpad/config.h b/keyboards/decent/numpad/config.h new file mode 100644 index 0000000000..f5114d3ce0 --- /dev/null +++ b/keyboards/decent/numpad/config.h @@ -0,0 +1,8 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define JOYSTICK_AXIS_COUNT 4 +#define JOYSTICK_BUTTON_COUNT 10 +#define JOYSTICK_HAS_HAT diff --git a/keyboards/decent/numpad/keyboard.json b/keyboards/decent/numpad/keyboard.json new file mode 100644 index 0000000000..eb45c72232 --- /dev/null +++ b/keyboards/decent/numpad/keyboard.json @@ -0,0 +1,148 @@ +{ + "manufacturer": "Bertrand Le roy", + "keyboard_name": "DecenTKL NumPad", + "maintainer": "bleroy", + "url": "https://github.com/bleroy/3d-junkyard/blob/main/DecenTKL/", + "tags": ["ansi", "numpad", "rgb", "atari", "joystick"], + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "rgb_matrix": true, + "extrakey": true, + "mousekey": true, + "joystick": true + }, + "matrix_pins": { + "cols": ["GP0", "GP1", "GP2", "GP3"], + "rows": ["GP4", "GP5", "GP6", "GP7", "GP8", "GP9"] + }, + "processor": "RP2040", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "ws2812": { + "pin": "GP20", + "driver": "vendor" + }, + "bootmagic": { + "matrix": [1, 0] + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0.75, "y": 0, "label": "F11"}, + {"matrix": [0, 1], "x": 2.25, "y": 0, "label": "F12"}, + + {"matrix": [1, 0], "x": 0, "y": 1, "label": "Num"}, + {"matrix": [1, 1], "x": 1, "y": 1, "label": "/"}, + {"matrix": [1, 2], "x": 2, "y": 1, "label": "*"}, + {"matrix": [1, 3], "x": 3, "y": 1, "label": "-"}, + + {"matrix": [2, 0], "x": 0, "y": 2, "label": "7"}, + {"matrix": [2, 1], "x": 1, "y": 2, "label": "8"}, + {"matrix": [2, 2], "x": 2, "y": 2, "label": "9"}, + {"matrix": [2, 3], "x": 3, "y": 2, "h": 2, "label": "+"}, + + {"matrix": [3, 0], "x": 0, "y": 3, "label": "4"}, + {"matrix": [3, 1], "x": 1, "y": 3, "label": "5"}, + {"matrix": [3, 2], "x": 2, "y": 3, "label": "6"}, + + {"matrix": [4, 0], "x": 0, "y": 4, "label": "1"}, + {"matrix": [4, 1], "x": 1, "y": 4, "label": "2"}, + {"matrix": [4, 2], "x": 2, "y": 4, "label": "3"}, + {"matrix": [4, 3], "x": 3, "y": 4, "h": 2, "label": "Enter"}, + + {"matrix": [5, 0], "x": 0, "y": 5, "w": 2, "label": "0"}, + {"matrix": [5, 2], "x": 2, "y": 5, "label": "."} + ] + } + }, + "rgb_matrix": { + "center_point": [37, 42], + "max_brightness": 125, + "sleep": true, + "animations": { + "alphas_mods": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "flower_blooming": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "multisplash": true, + "pixel_flow": true, + "pixel_fractal": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "riverflow": true, + "solid_multisplash": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_splash": true, + "splash": true, + "starlight": true, + "starlight_dual_hue": true, + "starlight_dual_sat": true, + "typing_heatmap": true + }, + "layout": [ + {"matrix": [0, 0], "x": 56, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 169, "y": 0, "flags": 4}, + + {"matrix": [1, 0], "x": 0, "y": 20, "flags": 4}, + {"matrix": [1, 1], "x": 75, "y": 20, "flags": 4}, + {"matrix": [1, 2], "x": 150, "y": 20, "flags": 4}, + {"matrix": [1, 3], "x": 224, "y": 20, "flags": 4}, + + {"matrix": [2, 0], "x": 0, "y": 31, "flags": 4}, + {"matrix": [2, 1], "x": 75, "y": 31, "flags": 4}, + {"matrix": [2, 2], "x": 150, "y": 31, "flags": 4}, + {"x": 224, "y": 31, "flags": 2}, + + {"matrix": [3, 0], "x": 0, "y": 42, "flags": 4}, + {"matrix": [3, 1], "x": 75, "y": 42, "flags": 4}, + {"matrix": [3, 2], "x": 150, "y": 42, "flags": 4}, + {"matrix": [3, 3], "x": 224, "y": 42, "flags": 4}, + + {"matrix": [4, 0], "x": 0, "y": 53, "flags": 4}, + {"matrix": [4, 1], "x": 75, "y": 53, "flags": 4}, + {"matrix": [4, 2], "x": 150, "y": 53, "flags": 4}, + {"x": 224, "y": 53, "flags": 2}, + + {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4}, + {"x": 85, "y": 75, "flags": 2}, + {"matrix": [5, 2], "x": 150, "y": 64, "flags": 4}, + {"matrix": [5, 3], "x": 224, "y": 64, "flags": 4} + ], + "driver": "ws2812" + } +} diff --git a/keyboards/decent/numpad/keymaps/default/keymap.c b/keyboards/decent/numpad/keymaps/default/keymap.c new file mode 100644 index 0000000000..c450b186d9 --- /dev/null +++ b/keyboards/decent/numpad/keymaps/default/keymap.c @@ -0,0 +1,41 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * /─────/─────/ + * /F11 /F12 / + * /─────/─────/ + * ┌───┬───┬───┬───┐ + * │Num│ / │ * │ - │ + * ├───┼───┼───┼───┤ + * │ 7 │ 8 │ 9 │ + │ + * ├───┼───┼───┤ │ + * │ 4 │ 5 │ 6 │ │ + * ├───┼───┼───┼───┤ + * │ 1 │ 2 │ 3 │Ent│ + * ├───┴───┼───┤ er│ + * │ 0 │ . │ │ + * └───────┴───┴───┘ + */ + [0] = LAYOUT( + KC_F11, KC_F12, + + MO(1), KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, + KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, + KC_KP_4, KC_KP_5, KC_KP_6, + KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, + KC_KP_0, KC_KP_DOT + ), + [1] = LAYOUT( + S(KC_F11), S(KC_F12), + + _______, _______, _______, RM_VALD, + _______, RM_HUEU, _______, RM_VALU, + RM_SPDD, _______, RM_SPDU, + RM_PREV, RM_HUED, RM_NEXT, QK_BOOT, + RM_TOGG, _______ + ), +}; diff --git a/keyboards/decent/numpad/numpad.c b/keyboards/decent/numpad/numpad.c new file mode 100644 index 0000000000..5a8b032746 --- /dev/null +++ b/keyboards/decent/numpad/numpad.c @@ -0,0 +1,111 @@ +// Copyright 2024 B. Le Roy +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" +#include "analog.h" + +joystick_config_t joystick_axes[JOYSTICK_AXIS_COUNT] = { + [0] = JOYSTICK_AXIS_VIRTUAL, + [1] = JOYSTICK_AXIS_VIRTUAL, + [2] = JOYSTICK_AXIS_VIRTUAL, + [3] = JOYSTICK_AXIS_VIRTUAL +}; + +void keyboard_post_init_kb(void) { + gpio_set_pin_input_high(GP10); // Up1 + gpio_set_pin_input_high(GP11); // Down1 + gpio_set_pin_input_high(GP12); // Left1 + gpio_set_pin_input_high(GP13); // Right1 + gpio_set_pin_input_high(GP14); // Fire1 + gpio_set_pin_input_high(GP15); + gpio_set_pin_input_high(GP16); + gpio_set_pin_input_high(GP17); + gpio_set_pin_input_high(GP18); + gpio_set_pin_input_high(GP19); + + keyboard_post_init_user(); +} + +void set_button_state(int btn, bool state) { + if (state) { + unregister_joystick_button(btn); + } + else { + register_joystick_button(btn); + } +} + +void housekeeping_task_kb(void) { + set_button_state(0, gpio_read_pin(GP16)); + set_button_state(1, gpio_read_pin(GP18)); + set_button_state(2, gpio_read_pin(GP17)); + set_button_state(3, gpio_read_pin(GP15)); + set_button_state(4, gpio_read_pin(GP14)); + set_button_state(5, gpio_read_pin(GP19)); + bool up = !gpio_read_pin(10); + bool down = !gpio_read_pin(11); + bool left = !gpio_read_pin(12); + bool right = !gpio_read_pin(13); + if (up) { + if (left) { + joystick_set_hat(7); + } + else if (right) { + joystick_set_hat(1); + } + else { + joystick_set_hat(0); + } + } + else if (down) { + if (left) { + joystick_set_hat(5); + } + else if (right) { + joystick_set_hat(3); + } + else { + joystick_set_hat(4); + } + } + else if (left) { + joystick_set_hat(6); + } + else if (right) { + joystick_set_hat(2); + } + else { + joystick_set_hat(-1); + } + int16_t analog = analogReadPin(GP26); + joystick_set_axis(0, analog); + analog = analogReadPin(GP27); + joystick_set_axis(1, analog); + analog = analogReadPin(GP28); + joystick_set_axis(2, analog); + analog = analogReadPin(GP29); + joystick_set_axis(3, analog); +} + +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { + return false; + } + + if (get_highest_layer(layer_state) > 0) { + uint8_t layer = get_highest_layer(layer_state); + + for (uint8_t row = 0; row < MATRIX_ROWS; ++row) { + for (uint8_t col = 0; col < MATRIX_COLS; ++col) { + uint8_t index = g_led_config.matrix_co[row][col]; + + if (index >= led_min && index < led_max && index != NO_LED && + keymap_key_to_keycode(layer, (keypos_t){col,row}) > KC_TRNS) { + rgb_matrix_set_color(index, RGB_GREEN); + } + } + } + } + + return false; +} diff --git a/keyboards/decent/numpad/readme.md b/keyboards/decent/numpad/readme.md new file mode 100644 index 0000000000..83436bf8c0 --- /dev/null +++ b/keyboards/decent/numpad/readme.md @@ -0,0 +1,71 @@ +# DecenTKL NumPad + +*A numeric pad to go with the DecenTKL keyboard* + +This numeric pad also includes a 3-port USB hub, enabling the connection of the TKL +keyboard on the back of the pad. + +The pad also has two Atari joystick ports. + +* Keyboard Maintainer: [Bertrand Le roy](https://github.com/bleroy/3d-junkyard/blob/main/DecenTKL/) +* Hardware Supported: DecenTKL (RP2040-based) +* Hardware Availability: Custom built but open-source + +Make example for this keyboard (after setting up your build environment): + + make decent/numpad:default + +Flashing example for this keyboard: + + make decent/numpad:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Press the Num key or the button on the back of the board while connecting the pad. + +## Special commands + +Num + Enter: go into bootloader mode without unplugging the keyboard + +## Layout +```C +/* + * /─────/─────/ + * /F11 /F12 / + * /─────/─────/ + * ┌───┬───┬───┬───┐ + * │Num│ / │ * │ - │ + * ├───┼───┼───┼───┤ + * │ 7 │ 8 │ 9 │ + │ + * ├───┼───┼───┤ │ + * │ 4 │ 5 │ 6 │ │ + * ├───┼───┼───┼───┤ + * │ 1 │ 2 │ 3 │Ent│ + * ├───┴───┼───┤ er│ + * │ 0 │ . │ │ + * └───────┴───┴───┘ + */ +``` + +While holding the Num key: + +```C +/* + * /─────────/─────────/ + * /Shift+F11/Shift+F12/ + * /─────────/─────────/ + * ┌───────┬───────┬───────┬───────┐ + * │ │ │ │Bright-│ + * ├───────┼───────┼───────┼───────┤ + * │ │ Hue + │ │Bright+│ + * ├───────┼───────┼───────┤ │ + * │Speed -│ Swirl │Speed +│ │ + * ├───────┼───────┼───────┼───────┤ + * │Mode - │ Hue - │Mode + │ │ + * ├───────┴───────┼───────┤BootSel│ + * │ on / off │ │ │ + * └───────────────┴───────┴───────┘ + */ +``` From 18f0d11737d0a327255cca52a07ed81116b70920 Mon Sep 17 00:00:00 2001 From: era <73109780+eerraa@users.noreply.github.com> Date: Tue, 24 Dec 2024 16:12:54 +0900 Subject: [PATCH 48/77] [Keyboard] Add SIRIND Brick65S (#24315) Co-authored-by: Joel Challis --- keyboards/era/sirind/brick65s/brick65s.c | 24 ++ keyboards/era/sirind/brick65s/config.h | 8 + keyboards/era/sirind/brick65s/keyboard.json | 251 ++++++++++++++++++ .../sirind/brick65s/keymaps/default/keymap.c | 21 ++ keyboards/era/sirind/brick65s/readme.md | 23 ++ 5 files changed, 327 insertions(+) create mode 100644 keyboards/era/sirind/brick65s/brick65s.c create mode 100644 keyboards/era/sirind/brick65s/config.h create mode 100644 keyboards/era/sirind/brick65s/keyboard.json create mode 100644 keyboards/era/sirind/brick65s/keymaps/default/keymap.c create mode 100644 keyboards/era/sirind/brick65s/readme.md diff --git a/keyboards/era/sirind/brick65s/brick65s.c b/keyboards/era/sirind/brick65s/brick65s.c new file mode 100644 index 0000000000..ae76a3968c --- /dev/null +++ b/keyboards/era/sirind/brick65s/brick65s.c @@ -0,0 +1,24 @@ +// Copyright 2024 Hyojin Bak (@eerraa) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(0, 200, 0, 0); + } else { + rgb_matrix_set_color(0, 0, 0, 0); + } + + if (host_keyboard_led_state().scroll_lock) { + rgb_matrix_set_color(1, 200, 0, 0); + } else { + rgb_matrix_set_color(1, 0, 0, 0); + } + + return true; +} \ No newline at end of file diff --git a/keyboards/era/sirind/brick65s/config.h b/keyboards/era/sirind/brick65s/config.h new file mode 100644 index 0000000000..6bcd581290 --- /dev/null +++ b/keyboards/era/sirind/brick65s/config.h @@ -0,0 +1,8 @@ +// Copyright 2024 Hyojin Bak (@eerraa) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* Reset */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U diff --git a/keyboards/era/sirind/brick65s/keyboard.json b/keyboards/era/sirind/brick65s/keyboard.json new file mode 100644 index 0000000000..5d6768a93c --- /dev/null +++ b/keyboards/era/sirind/brick65s/keyboard.json @@ -0,0 +1,251 @@ +{ + "manufacturer": "SIRIND", + "keyboard_name": "Brick65S", + "maintainer": "eerraa", + "bootloader": "rp2040", + "build": { + "debounce_type": "sym_defer_pk" + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP28", "GP11", "GP10", "GP9", "GP8", "GP7", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP14", "GP0", "GP13", "GP12"], + "rows": ["GP27", "GP29", "GP23", "GP24", "GP25"] + }, + "processor": "RP2040", + "rgb_matrix": { + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 8}, + {"matrix": [0, 1], "x": 20, "y": 0, "flags": 8} + ], + "sleep": true + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0012", + "vid": "0x4552" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP26" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15.25, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14.25, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 4, "y": 4.25, "w": 6.25}, + {"matrix": [4, 11], "x": 10.5, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 11.75, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.25, "y": 4.25}, + {"matrix": [4, 14], "x": 14.25, "y": 4.25}, + {"matrix": [4, 15], "x": 15.25, "y": 4.25} + ] + }, + "LAYOUT_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 14], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15.25, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14.25, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 4, "y": 4.25, "w": 6.25}, + {"matrix": [4, 11], "x": 10.5, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 11.75, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.25, "y": 4.25}, + {"matrix": [4, 14], "x": 14.25, "y": 4.25}, + {"matrix": [4, 15], "x": 15.25, "y": 4.25} + ] + }, + "LAYOUT_ansi_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [0, 14], "x": 14, "y": 0}, + {"matrix": [0, 15], "x": 15.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 15.25, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14.25, "y": 3.25}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 4, "y": 4.25, "w": 6.25}, + {"matrix": [4, 11], "x": 10.5, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 11.75, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.25, "y": 4.25}, + {"matrix": [4, 14], "x": 14.25, "y": 4.25}, + {"matrix": [4, 15], "x": 15.25, "y": 4.25} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/era/sirind/brick65s/keymaps/default/keymap.c b/keyboards/era/sirind/brick65s/keymaps/default/keymap.c new file mode 100644 index 0000000000..3798c980db --- /dev/null +++ b/keyboards/era/sirind/brick65s/keymaps/default/keymap.c @@ -0,0 +1,21 @@ +// Copyright 2023 Hyojin Bak (@eerraa) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + 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_BSPC, KC_INS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + KC_TILD, 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_TRNS, KC_TRNS, KC_PGUP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, KC_PGDN, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLU, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/era/sirind/brick65s/readme.md b/keyboards/era/sirind/brick65s/readme.md new file mode 100644 index 0000000000..e173ba4e73 --- /dev/null +++ b/keyboards/era/sirind/brick65s/readme.md @@ -0,0 +1,23 @@ +# Brick65S, Solder ver + +* Keyboard Maintainer: [ERA](https://github.com/eerraa) +* Hardware supported: SIRIND Brick65 +* Hardware availability: [Syryan](https://srind.mysoho.com/) + +Make example for this keyboard (after setting up your build environment): + + make era/sirind/brick65s:default + +Flashing example for this keyboard: + + make era/sirind/brick65s:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at ESC(0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly short the `RESET` and `GND` pads on the SWD header twice, or short the `BOOT` header and plug in keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file From 0b5e7052f91c1216a4122339337182c96da8f3f6 Mon Sep 17 00:00:00 2001 From: dztech Date: Tue, 24 Dec 2024 15:13:41 +0800 Subject: [PATCH 49/77] add mellow keyboard (#24319) Co-authored-by: jack Co-authored-by: Drashna Jaelre --- keyboards/dztech/mellow/keyboard.json | 298 ++++++++++++++++++ keyboards/dztech/mellow/keymaps/ansi/keymap.c | 39 +++ .../dztech/mellow/keymaps/default/keymap.c | 39 +++ keyboards/dztech/mellow/keymaps/hhkb/keymap.c | 60 ++++ keyboards/dztech/mellow/keymaps/iso/keymap.c | 39 +++ keyboards/dztech/mellow/readme.md | 25 ++ 6 files changed, 500 insertions(+) create mode 100644 keyboards/dztech/mellow/keyboard.json create mode 100644 keyboards/dztech/mellow/keymaps/ansi/keymap.c create mode 100644 keyboards/dztech/mellow/keymaps/default/keymap.c create mode 100644 keyboards/dztech/mellow/keymaps/hhkb/keymap.c create mode 100644 keyboards/dztech/mellow/keymaps/iso/keymap.c create mode 100644 keyboards/dztech/mellow/readme.md diff --git a/keyboards/dztech/mellow/keyboard.json b/keyboards/dztech/mellow/keyboard.json new file mode 100644 index 0000000000..24cd11028c --- /dev/null +++ b/keyboards/dztech/mellow/keyboard.json @@ -0,0 +1,298 @@ +{ + "manufacturer": "dztech", + "keyboard_name": "mellow", + "maintainer": "moyi4681", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "GP25" + }, + "matrix_pins": { + "cols": ["GP29", "GP28", "GP27", "GP26", "GP0", "GP13", "GP12", "GP11", "GP10", "GP9", "GP8", "GP7", "GP6", "GP5"], + "rows": ["GP1", "GP2", "GP3", "GP4", "GP24"] + }, + "processor": "RP2040", + "usb": { + "device_version": "1.0.0", + "pid": "0x0007", + "vid": "0x445A" + }, + "community_layouts": [ + "60_ansi", + "60_hhkb", + "60_iso" + ], + "layouts": { + "LAYOUT_60_ansi": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [0, 13], "w": 2, "x": 13, "y": 0 }, + { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "matrix": [3, 12], "w": 2.75, "x": 12.25, "y": 3 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 7], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "LAYOUT_60_iso": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [0, 13], "w": 2, "x": 13, "y": 0 }, + { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "matrix": [1, 13], "x": 12.75, "y": 2 }, + { "h": 2, "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 1 }, + { "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1.25, "y": 3 }, + { "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "matrix": [3, 12], "w": 2.75, "x": 12.25, "y": 3 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 7], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "LAYOUT_60_hhkb": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [0, 13], "x": 13, "y": 0 }, + { "matrix": [2, 12], "x": 14, "y": 0 }, + { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 }, + { "matrix": [3, 13], "x": 14, "y": 3 }, + { "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 }, + { "matrix": [4, 7], "w": 7, "x": 4, "y": 4 }, + { "matrix": [4, 10], "w": 1.5, "x": 11, "y": 4 }, + { "matrix": [4, 11], "x": 12.5, "y": 4 } + ] + }, + "LAYOUT_all": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [0, 13], "x": 13, "y": 0 }, + { "matrix": [2, 12], "x": 14, "y": 0 }, + { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1.25, "y": 3 }, + { "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 }, + { "matrix": [3, 13], "x": 14, "y": 3 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 7], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 } + ] + } + } +} diff --git a/keyboards/dztech/mellow/keymaps/ansi/keymap.c b/keyboards/dztech/mellow/keymaps/ansi/keymap.c new file mode 100644 index 0000000000..867dda96db --- /dev/null +++ b/keyboards/dztech/mellow/keymaps/ansi/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2024 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ + [0] = LAYOUT_60_ansi( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ) +}; diff --git a/keyboards/dztech/mellow/keymaps/default/keymap.c b/keyboards/dztech/mellow/keymaps/default/keymap.c new file mode 100644 index 0000000000..a2f0f15665 --- /dev/null +++ b/keyboards/dztech/mellow/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2024 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ + * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│MO1│ + * ├────┼───┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┘ + * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ + [0] = LAYOUT_all( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, _______, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ) +}; diff --git a/keyboards/dztech/mellow/keymaps/hhkb/keymap.c b/keyboards/dztech/mellow/keymaps/hhkb/keymap.c new file mode 100644 index 0000000000..3dfa568b18 --- /dev/null +++ b/keyboards/dztech/mellow/keymaps/hhkb/keymap.c @@ -0,0 +1,60 @@ +/* Copyright 2024 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ Bspc│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ Ctrl │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│MO1│ + * └─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┘ + * │Alt│ GUI │ │ GUI │Alt│ + * └───┴─────┴───────────────────────────┴─────┴───┘ + */ + [0] = LAYOUT_60_hhkb( + 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, 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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT + ), + + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │Pwr│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│Ins│Del│ + * ├───┴─┬─┴───┴───┴───┴───┴───┴───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴───┘ + * │Caps │ Q │ W │ E │ R │ T │ Y │ U │PSc│Scr│Pse│ ↑ │ ] │ Bspc│ + * └─────┘┌───┬───┬───┐──┴┬──┴┌───┬──┴┬──┴┬──┴┬──┴┬──┴┬────────┐ + * │ Ctrl │Vl-│Vl+│Mut│ F │ G │ * │ / │Hom│PgU│ ← │ → │ Enter │ + * ├──────└───┴───┴───┘─┬─┴─┬─└─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┘ + * │ Shift │ Z │ X │ C │ V │ B │ + │ - │End│PgD│ ↓ │ Shift│MO1│ + * └─────┬──┴┬──┴──┬┴───┴───┴───└───┴───┴───┴───┴───┘┬───┬─┴───┘ + * │Alt│ GUI │ │ GUI │Alt│ + * └───┴─────┴───────────────────────────┴─────┴───┘ + */ + [1] = LAYOUT_60_hhkb( + 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, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, + _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, + _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/dztech/mellow/keymaps/iso/keymap.c b/keyboards/dztech/mellow/keymaps/iso/keymap.c new file mode 100644 index 0000000000..45b9b27465 --- /dev/null +++ b/keyboards/dztech/mellow/keymaps/iso/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2024 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent│ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ + [0] = LAYOUT_60_iso( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ) +}; diff --git a/keyboards/dztech/mellow/readme.md b/keyboards/dztech/mellow/readme.md new file mode 100644 index 0000000000..e8dfa6a26c --- /dev/null +++ b/keyboards/dztech/mellow/readme.md @@ -0,0 +1,25 @@ +# dztech/mellow + +A customizable 60% keyboard. + +* Keyboard Maintainer: [dztech](https://github.com/moyi4681) +* Hardware Supported: mellow +* Hardware Availability: [KBDfans](https://kbdfans.com/) + +Make example for this keyboard (after setting up your build environment): + + make dztech/mellow:default + +Flashing example for this keyboard: + + make dztech/mellow:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 276f84a9a804ce4980f81dc2527c32d00575628f Mon Sep 17 00:00:00 2001 From: chalex <68408520+gaclee3b@users.noreply.github.com> Date: Tue, 24 Dec 2024 02:22:22 -0500 Subject: [PATCH 50/77] add chlx piche (#24252) Co-authored-by: Joel Challis Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: chalex --- keyboards/chlx/piche60/keyboard.json | 128 ++++++++++++++++++ .../chlx/piche60/keymaps/default/keymap.c | 34 +++++ keyboards/chlx/piche60/readme.md | 31 +++++ 3 files changed, 193 insertions(+) create mode 100644 keyboards/chlx/piche60/keyboard.json create mode 100644 keyboards/chlx/piche60/keymaps/default/keymap.c create mode 100644 keyboards/chlx/piche60/readme.md diff --git a/keyboards/chlx/piche60/keyboard.json b/keyboards/chlx/piche60/keyboard.json new file mode 100644 index 0000000000..7eafe4f84f --- /dev/null +++ b/keyboards/chlx/piche60/keyboard.json @@ -0,0 +1,128 @@ +{ + "manufacturer": "chlx bsmt", + "keyboard_name": "piche60", + "maintainer": "gaclee4b", + "bootloader": "atmel-dfu", + "bootmagic": { + "matrix": [1, 1] + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "indicators": { + "caps_lock": "C7", + "compose": "B5", + "num_lock": "B6", + "scroll_lock": "C6", + "on_state": 0 + }, + "matrix_pins": { + "cols": ["D0", "F5", "F7", "E6", "F0", "D4", "D5", "D7", "D3", "D2", "D1", "B7", "B3", "B2", "B1", "B0"], + "rows": ["F4", "F1", "F6", "D6", "B4"] + }, + "processor": "atmega32u4", + "url": "www.github.com/gaclee3b", + "usb": { + "device_version": "1.1.0", + "pid": "0x0611", + "vid": "0x4358" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [1, 1], "x": 0.5, "y": 0}, + + {"matrix": [0, 1], "x": 1.75, "y": 0.25}, + {"matrix": [0, 2], "x": 2.75, "y": 0.25}, + {"matrix": [0, 3], "x": 3.75, "y": 0}, + {"matrix": [0, 4], "x": 4.75, "y": 0.25}, + {"matrix": [0, 5], "x": 5.75, "y": 0.25}, + {"matrix": [0, 6], "x": 6.75, "y": 0.25}, + {"matrix": [0, 7], "x": 7.75, "y": 0.25}, + + {"matrix": [0, 8], "x": 11, "y": 0.25}, + {"matrix": [0, 9], "x": 12, "y": 0.25}, + {"matrix": [0, 10], "x": 13, "y": 0.25}, + {"matrix": [0, 11], "x": 14, "y": 0.25}, + {"matrix": [0, 12], "x": 15, "y": 0}, + {"matrix": [0, 13], "x": 16, "y": 0.25}, + {"matrix": [0, 14], "x": 17, "y": 0.25}, + {"matrix": [0, 15], "x": 18, "y": 0.25}, + + {"matrix": [2, 1], "x": 0.25, "y": 1}, + + {"matrix": [1, 2], "x": 1.5, "y": 1.25, "w": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4.25, "y": 1.25}, + {"matrix": [1, 5], "x": 5.25, "y": 1.25}, + {"matrix": [1, 6], "x": 6.25, "y": 1.25}, + {"matrix": [1, 7], "x": 7.25, "y": 1.25}, + + {"matrix": [1, 8], "x": 10.5, "y": 1.25}, + {"matrix": [1, 9], "x": 11.5, "y": 1.25}, + {"matrix": [1, 10], "x": 12.5, "y": 1.25}, + {"matrix": [1, 11], "x": 13.5, "y": 1.25}, + {"matrix": [1, 12], "x": 14.75, "y": 1.25}, + {"matrix": [1, 13], "x": 15.75, "y": 1.25}, + {"matrix": [1, 14], "x": 16.75, "y": 1.25}, + {"matrix": [1, 15], "x": 17.75, "y": 1.25, "w": 1.5}, + + {"matrix": [3, 1], "x": 0, "y": 2}, + + {"matrix": [2, 2], "x": 1.5, "y": 2.25, "w": 1.75}, + {"matrix": [2, 3], "x": 3.25, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + + {"matrix": [2, 8], "x": 10.75, "y": 2.25}, + {"matrix": [2, 9], "x": 11.75, "y": 2.25}, + {"matrix": [2, 10], "x": 12.75, "y": 2.25}, + {"matrix": [2, 11], "x": 13.75, "y": 2.25}, + {"matrix": [2, 12], "x": 15.25, "y": 2.25}, + {"matrix": [2, 13], "x": 16.25, "y": 2.25}, + {"matrix": [2, 14], "x": 17.25, "y": 2.25, "w": 2.25}, + + {"matrix": [3, 2], "x": 1.5, "y": 3.25, "w": 2.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 5, "y": 3.25}, + {"matrix": [3, 5], "x": 6, "y": 3.25}, + {"matrix": [3, 6], "x": 7, "y": 3.25}, + {"matrix": [3, 7], "x": 8, "y": 3.25}, + + {"matrix": [3, 8], "x": 10.25, "y": 3.25}, + {"matrix": [3, 9], "x": 11.25, "y": 3.25}, + {"matrix": [3, 10], "x": 12.25, "y": 3.25}, + {"matrix": [3, 11], "x": 13.25, "y": 3.25}, + {"matrix": [3, 12], "x": 15, "y": 3.25}, + {"matrix": [3, 13], "x": 16, "y": 3.25}, + {"matrix": [3, 14], "x": 17, "y": 3.25, "w": 1.75}, + {"matrix": [3, 15], "x": 18.75, "y": 3.25}, + + {"matrix": [4, 2], "x": 1.5, "y": 4.25, "w": 1.5}, + {"matrix": [4, 3], "x": 3, "y": 4.25, "w": 1.25}, + {"matrix": [4, 4], "x": 5, "y": 4.25, "w": 1.5}, + {"matrix": [4, 6], "x": 6.5, "y": 4.25, "w": 2}, + {"matrix": [4, 7], "x": 8.5, "y": 4.25}, + {"matrix": [4, 9], "x": 10.25, "y": 4.25, "w": 2.75}, + {"matrix": [4, 11], "x": 13, "y": 4.25, "w": 1.5}, + {"matrix": [4, 13], "x": 15.5, "y": 4.25, "w": 1.25}, + {"matrix": [4, 14], "x": 16.75, "y": 4.25, "w": 1.25}, + {"matrix": [4, 15], "x": 18, "y": 4.25, "w": 1.5} + ] + } + } +} diff --git a/keyboards/chlx/piche60/keymaps/default/keymap.c b/keyboards/chlx/piche60/keymaps/default/keymap.c new file mode 100644 index 0000000000..dfd3426a90 --- /dev/null +++ b/keyboards/chlx/piche60/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* +Copyright 2024 Alexander Lee + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL, KC_BSPC, + KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL), + [1] = LAYOUT( + KC_TRNS, KC_TRNS, 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_TRNS, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, + KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/chlx/piche60/readme.md b/keyboards/chlx/piche60/readme.md new file mode 100644 index 0000000000..de659b0ff7 --- /dev/null +++ b/keyboards/chlx/piche60/readme.md @@ -0,0 +1,31 @@ +# piche60 + +![piche60 PCB](https://i.imgur.com/CBeJSUy.jpeg) + +- 60% alice format keyboard pcb with USB-C and unified daughterboard compatibility. +- Layout adds 3 additional keys in the palm area voids of traditional alice format. +- USB-C can be snapped off and converted into an ai03 C3 compatible daughterboard. +- Left and right halves can be snapped off and connected through 14-pin JST-SH interfaces. +- PCB can be manufactured with top-side USB-C for compatibility with legacy alice PCBs. + +Keyboard Maintainer: [Alexander Lee](https://github.com/gaclee3b) +Hardware Supported: chlx PCB piche60.x.x.x; top-side USB version compatible with most keyboard cases using legacy alice format PCBs (i.e. lubrigante) +Hardware Availability: sales are typically done in-stock as bulk listings on reddit's mechanical keyboard market (r/mechmarket) + +Make example for this keyboard (after setting up your build environment): + + make chlx/piche60:default + +Flashing example for this keyboard: + + make chlx/piche60:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter bootloader mode by any of the following options - +- When unplugged, holding the top-left key (typically ESC) while plugging in the keyboard +- When already plugged in, pressing and releasing the reset button on the pcb bottom behind the CAPSLOCK / A-key region +- When already plugged in, shorting out the two reset metal contacts near the 'z' key (accessible through the switch LED slot) + From 40c93bcdc6fc8bd5326db341395c95430d2b05c7 Mon Sep 17 00:00:00 2001 From: James Gzowski Date: Tue, 24 Dec 2024 18:05:43 +0000 Subject: [PATCH 51/77] [Keyboard] Add Somei70 (#24444) * Somei70 addition * Changes made, added VIA keymap, cleaned formatting * keymap via * Create rules.mk * Add files via upload * Delete keyboards/somei70/keymaps/via directory * Fixed RGB and matrix * Layout corrections and LED positions * removal of rules.mk * Moved OLED Settings to somei70.c, formatted C removed TABs, removed _LAYERC * Forgot to include license header * Further changes as per suggestions, replaced _user for _kb within somei70.c * Updated keymap 'changes in Nov24' * Requested changes --- keyboards/somei70/config.h | 5 + keyboards/somei70/keyboard.json | 148 +++++++++++++++++++++ keyboards/somei70/keymaps/default/keymap.c | 19 +++ keyboards/somei70/readme.md | 23 ++++ keyboards/somei70/somei70.c | 87 ++++++++++++ 5 files changed, 282 insertions(+) create mode 100644 keyboards/somei70/config.h create mode 100644 keyboards/somei70/keyboard.json create mode 100644 keyboards/somei70/keymaps/default/keymap.c create mode 100644 keyboards/somei70/readme.md create mode 100644 keyboards/somei70/somei70.c diff --git a/keyboards/somei70/config.h b/keyboards/somei70/config.h new file mode 100644 index 0000000000..1336a1f28b --- /dev/null +++ b/keyboards/somei70/config.h @@ -0,0 +1,5 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define OLED_BRIGHTNESS 100 diff --git a/keyboards/somei70/keyboard.json b/keyboards/somei70/keyboard.json new file mode 100644 index 0000000000..70f57d5ff5 --- /dev/null +++ b/keyboards/somei70/keyboard.json @@ -0,0 +1,148 @@ +{ + "manufacturer": "gzowski", + "keyboard_name": "Somei70", + "maintainer": "gzowski", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "oled": true, + "rgb_matrix": true, + "wpm": true + }, + "matrix_pins": { + "cols": ["GP28", "GP27", "GP26", "GP22", "GP20", "GP23", "GP21", "GP16", "GP15", "GP14", "GP13", "GP12", "GP9", "GP8", "GP7"], + "rows": ["GP1", "GP29", "GP6", "GP5", "GP4"] + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "band_sat": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "dual_beacon": true, + "gradient_left_right": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "raindrops": true + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 212, "y": 0, "flags": 4} + ], + "led_flush_limit": 14, + "led_process_limit": 5, + "max_brightness": 200, + "sleep": true + }, + "url": "https://github.com/gzowski/somei70", + "usb": { + "device_version": "1.0.0", + "pid": "0x6F64", + "vid": "0x73CA" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP0" + }, + "layouts": { + "LAYOUT_5x15": { + "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": "MINS", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "EQL", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "BSPC", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "TAB", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "LBRC", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "RBRC", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "BSLS", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "CAPS", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": "SCLN", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "QLOT", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "GRV", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "DEL", "matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25}, + {"label": "PGUP", "matrix": [2, 14], "x": 15, "y": 2}, + {"label": "LSFT", "matrix": [3, 0], "x": 0, "y": 3, "w": 2}, + {"label": "Z", "matrix": [3, 1], "x": 2, "y": 3}, + {"label": "X", "matrix": [3, 2], "x": 3, "y": 3}, + {"label": "C", "matrix": [3, 3], "x": 4, "y": 3}, + {"label": "V", "matrix": [3, 4], "x": 5, "y": 3}, + {"label": "B", "matrix": [3, 5], "x": 6, "y": 3}, + {"label": "N", "matrix": [3, 6], "x": 7, "y": 3}, + {"label": "M", "matrix": [3, 7], "x": 8, "y": 3}, + {"label": "COMM", "matrix": [3, 8], "x": 9, "y": 3}, + {"label": "DOT", "matrix": [3, 9], "x": 10, "y": 3}, + {"label": "SLSH", "matrix": [3, 10], "x": 11, "y": 3}, + {"label": "RSFT", "matrix": [3, 11], "x": 12, "y": 3}, + {"label": "INS", "matrix": [3, 12], "x": 13, "y": 3}, + {"label": "UP", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "PGDN", "matrix": [3, 14], "x": 15, "y": 3}, + {"label": "RCTL", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "LGUI", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "LALT", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "SPC", "matrix": [4, 3], "x": 3.75, "y": 4, "w": 2.25}, + {"label": "MUTE", "matrix": [4, 4], "x": 6, "y": 4, "w": 1.75}, + {"label": "ENT", "matrix": [4, 5], "x": 7.75, "y": 4, "w": 2.25}, + {"label": "RALT", "matrix": [4, 6], "x": 10, "y": 4}, + {"label": "MO(1)", "matrix": [4, 7], "x": 11, "y": 4}, + {"label": "RCTL", "matrix": [4, 8], "x": 12, "y": 4}, + {"label": "LEFT", "matrix": [4, 9], "x": 13, "y": 4}, + {"label": "DOWN", "matrix": [4, 10], "x": 14, "y": 4}, + {"label": "RGHT", "matrix": [4, 11], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/somei70/keymaps/default/keymap.c b/keyboards/somei70/keymaps/default/keymap.c new file mode 100644 index 0000000000..2569b8b207 --- /dev/null +++ b/keyboards/somei70/keymaps/default/keymap.c @@ -0,0 +1,19 @@ +// Copyright 2024 James Gzowski +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H +enum custom_layer { _LAYERA, _LAYERB }; +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_LAYERA] = LAYOUT_5x15( + 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_BSPC, + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC , KC_RBRC, KC_BSLS, + KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT , KC_GRV , KC_DEL , KC_PGUP, + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT , KC_INS , KC_UP , KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_MUTE, KC_ENT, KC_RALT, MO(_LAYERB), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT +), +[_LAYERB] = LAYOUT_5x15( + KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_PSCR, + KC_TAB , RM_NEXT, RM_VALD, RM_VALU, RM_SPDD, RM_SPDU, RM_HUED, RM_HUEU, RM_SATD, RM_SATU, KC_P , KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_GRV , KC_DEL , KC_PGUP, + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_INS , KC_UP , KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , RM_TOGG, KC_ENT , KC_RALT, _______, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT +)}; diff --git a/keyboards/somei70/readme.md b/keyboards/somei70/readme.md new file mode 100644 index 0000000000..21b80a8411 --- /dev/null +++ b/keyboards/somei70/readme.md @@ -0,0 +1,23 @@ +# Somei70 + +70 key alternative layout + +* Keyboard Maintainer: [James Gzowski](https://github.com/gzowski) +* Hardware Supported: Elite-Pi, Frood, 0xB2 Splinky or similar, requires D9-D15 pins +* Build Guide: [Somei70](https://github.com/gzowski/somei70) + +Make example for this keyboard (after setting up your build environment): + + make somei70:default + +Flashing example for this keyboard: + + make somei70:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the PCB, if using a RP2040 press repeatidly to enter boot mode. +* **Hold down boot loader button on MCU** Hold down the boot loader button on the MCU while plugging in the keyboard diff --git a/keyboards/somei70/somei70.c b/keyboards/somei70/somei70.c new file mode 100644 index 0000000000..5521a67384 --- /dev/null +++ b/keyboards/somei70/somei70.c @@ -0,0 +1,87 @@ +// Copyright 2024 James Gzowski +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H +#ifdef OLED_ENABLE +static uint8_t oled_mode = 0; +static uint8_t esc_press_count = 0; +static uint16_t esc_timer = 0; +// Stats display +void render_stats(void) { + oled_write_P(PSTR("WPM: "), false); + oled_write_ln(get_u8_str(get_current_wpm(), '0'), false); + if (host_keyboard_led_state().caps_lock) { + oled_write_P(PSTR("CAPS: On "), false); + } else { + oled_write_P(PSTR("CAPS: Off "), false); + } + if (keymap_config.nkro) { + oled_write_ln("NKRO: On", false); + } else { + oled_write_ln("NKRO: Off", false); + } + oled_write_P(PSTR("LED Brightness: "), false); + oled_write_ln(get_u8_str(rgblight_get_val(), '0'), false); + oled_write_ln(PSTR("P: 0x6F64 V: 0x73CA"), false); +} +// Static images +static void render_caps(void) { + static const char PROGMEM my_caps[] = { + 0, 128, 192, 192, 248, 120, 8, 8, 24, 24, 48, 96, 96, 176, 24, 12, 4, 6, 6, 30, 60, 48, 48, 240, 240, 16, 16, 16, 16, 16, 16, 16, 16, 16, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 16, 16, 16, 144, 208, 208, 248, 120, 24, 24, 24, 24, 48, 96, 96, 176, 24, 12, 4, 6, 6, 30, 60, 48, 48, 240, 224, 0, 0, 0, 0, 0, 0, 0, 0, 7, 31, 56, 64, 128, 128, 128, 192, 192, 192, 224, 192, 225, 255, 240, 240, 128, 128, 64, 64, 48, 24, 7, 7, 6, 4, 140, 216, 120, 48, 0, 0, 0, 128, 128, 128, 128, 128, 0, 0, 0, 240, + 248, 12, 12, 12, 12, 12, 28, 56, 0, 0, 240, 248, 156, 12, 12, 12, 12, 156, 248, 240, 0, 0, 248, 252, 156, 12, 12, 12, 12, 152, 240, 0, 0, 32, 112, 216, 140, 140, 140, 12, 12, 4, 0, 0, 0, 0, 128, 128, 128, 128, 128, 0, 0, 0, 7, 31, 56, 64, 128, 128, 128, 192, 192, 192, 224, 192, 225, 255, 240, 240, 128, 128, 64, 64, 48, 24, 7, 7, 6, 4, 140, 216, 120, 48, 0, 0, 224, 240, 24, 4, 3, 1, 0, 0, 0, 0, 6, 255, 135, 7, 15, 31, 17, 49, 32, 32, 32, 96, 224, 224, 32, 48, 17, 27, 14, 4, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 15, 31, 48, 48, 48, 48, 48, 56, 28, 0, 0, 63, 63, 3, 1, 1, 1, 1, 3, 63, 63, 0, 0, 63, 63, 3, 3, 3, 3, 3, 1, 0, 0, 0, 16, 48, 48, 49, 49, 49, 27, 14, 4, 0, + 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 224, 240, 24, 4, 3, 1, 0, 0, 0, 0, 6, 255, 135, 7, 15, 31, 17, 49, 32, 32, 32, 96, 224, 224, 32, 48, 17, 27, 14, 4, 0, 0, 3, 7, 6, 30, 60, 48, 32, 48, 48, 24, 12, 7, 7, 12, 16, 32, 96, 96, 120, 124, 60, 12, 15, 15, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 11, 15, 14, 30, 60, 48, 32, 48, 48, 24, 12, 7, 7, 12, 16, 32, 96, 96, 120, 124, 60, 12, 15, 7, 0, 0, 0, 0, 0, 0, 0, + }; + oled_write_raw_P(my_caps, sizeof(my_caps)); +} +static void render_logo(void) { + static const char PROGMEM my_logo[] = { + 0, 128, 192, 192, 248, 120, 8, 8, 24, 24, 48, 96, 96, 176, 24, 12, 4, 6, 6, 30, 60, 48, 48, 240, 240, 16, 16, 16, 16, 16, 16, 16, 16, 16, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 16, 16, 16, 144, 208, 208, 248, 120, 24, 24, 24, 24, 48, 96, 96, 176, 24, 12, 4, 6, 6, 30, 60, 48, 48, 240, 224, 0, 0, 0, 0, 0, 0, 0, 0, 7, 31, 56, 64, 128, 128, 128, 192, 192, 192, 224, 192, 225, 255, 240, 240, 128, 128, 64, 64, 48, 24, 7, 7, 6, 4, 140, 216, 120, 48, 0, 48, 120, 204, 204, 204, 204, 204, 140, 8, 0, 0, + 240, 248, 12, 12, 12, 12, 12, 248, 240, 0, 0, 248, 252, 24, 48, 96, 96, 48, 24, 252, 248, 0, 0, 248, 252, 140, 140, 140, 12, 8, 0, 0, 252, 252, 0, 0, 8, 12, 12, 12, 12, 252, 248, 0, 0, 240, 248, 12, 12, 140, 76, 248, 240, 0, 7, 31, 56, 64, 128, 128, 128, 192, 192, 192, 224, 192, 225, 255, 240, 240, 128, 128, 64, 64, 48, 24, 7, 7, 6, 4, 140, 216, 120, 48, 0, 0, 224, 240, 24, 4, 3, 1, 0, 0, 0, 0, 6, 255, 135, 7, 15, 31, 17, 49, 32, 32, 32, 96, 224, 224, 32, 48, 17, 27, 14, 4, 0, 16, 48, 48, 48, 48, 48, 48, 63, 15, 0, 0, 15, 31, 48, 48, 48, 48, 48, 31, 15, 0, 0, 63, 31, 0, 0, 0, 0, 0, 0, 31, 63, 0, 0, 31, 63, 49, 49, 49, 48, 16, 0, 0, 63, 63, 0, 0, 0, 0, 0, 0, 0, 63, 63, + 0, 0, 15, 31, 50, 49, 48, 48, 31, 15, 0, 224, 240, 24, 4, 3, 1, 0, 0, 0, 0, 6, 255, 135, 7, 15, 31, 17, 49, 32, 32, 32, 96, 224, 224, 32, 48, 17, 27, 14, 4, 0, 0, 3, 7, 6, 30, 60, 48, 32, 48, 48, 24, 12, 7, 7, 12, 16, 32, 96, 96, 120, 124, 60, 12, 15, 15, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 11, 15, 14, 30, 60, 48, 32, 48, 48, 24, 12, 7, 7, 12, 16, 32, 96, 96, 120, 124, 60, 12, 15, 7, 0, 0, 0, 0, 0, 0, 0, + }; + oled_write_raw_P(my_logo, sizeof(my_logo)); +} +// Render chosen display +void render_oled_display(void) { + if (oled_mode == 0) { + if (host_keyboard_led_state().caps_lock) { + render_caps(); + } else { + render_logo(); + } + } else if (oled_mode == 1) { + render_stats(); + } +} +// Rotate 180 degrees +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + return OLED_ROTATION_180; +} +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + render_oled_display(); + return false; +} +// Record keypress +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_ESC: + if (record->event.pressed) { + if (timer_elapsed(esc_timer) > 250) { + esc_press_count = 0; + } + esc_press_count++; + esc_timer = timer_read(); + + if (esc_press_count == 3) { + oled_clear(); + oled_mode = (oled_mode == 0) ? 1 : 0; + esc_press_count = 0; + } + } + break; + } + return process_record_user(keycode, record); +} +#endif From a822545da07f9561e231df15feb68d829c7b507f Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 24 Dec 2024 18:26:08 +0000 Subject: [PATCH 52/77] Set custom effect defines for LED Matrix (#24745) --- builddefs/common_features.mk | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index 7bfd1436e7..bb272099a6 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -433,6 +433,13 @@ ifeq ($(strip $(LED_MATRIX_ENABLE)), yes) SRC += snled27351-mono.c endif + ifeq ($(strip $(LED_MATRIX_CUSTOM_KB)), yes) + OPT_DEFS += -DLED_MATRIX_CUSTOM_KB + endif + + ifeq ($(strip $(LED_MATRIX_CUSTOM_USER)), yes) + OPT_DEFS += -DLED_MATRIX_CUSTOM_USER + endif endif # Deprecated driver names - do not use From 58323017ffe62e91200a0e1c814fc960a7605f08 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Tue, 24 Dec 2024 18:57:30 -0800 Subject: [PATCH 53/77] Add ArteryTek AT32 dfu to udev rules (#24747) --- util/udev/50-qmk.rules | 3 +++ 1 file changed, 3 insertions(+) diff --git a/util/udev/50-qmk.rules b/util/udev/50-qmk.rules index 1cc19b4142..338b4fdbe0 100644 --- a/util/udev/50-qmk.rules +++ b/util/udev/50-qmk.rules @@ -84,3 +84,6 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="28e9", ATTRS{idProduct}=="0189", TAG+="uacc # WB32 DFU SUBSYSTEMS=="usb", ATTRS{idVendor}=="342d", ATTRS{idProduct}=="dfa0", TAG+="uaccess" + +# AT32 DFU +SUBSYSTEMS=="usb", ATTRS{idVendor}=="2e3c", ATTRS{idProduct}=="df11", TAG+="uaccess" From 5593e73ba71fa31155cdb81bc7c477f6501065e6 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sat, 28 Dec 2024 06:24:53 +1100 Subject: [PATCH 54/77] [bug] Djinn theme fix. (#24754) Theme fix. --- keyboards/tzarc/djinn/graphics/theme_djinn_default.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/tzarc/djinn/graphics/theme_djinn_default.c b/keyboards/tzarc/djinn/graphics/theme_djinn_default.c index f321308ac5..c651cd660d 100644 --- a/keyboards/tzarc/djinn/graphics/theme_djinn_default.c +++ b/keyboards/tzarc/djinn/graphics/theme_djinn_default.c @@ -43,13 +43,13 @@ static painter_font_handle_t thintel; enum { RGB_MATRIX_EFFECT_NONE, # include "rgb_matrix_effects.inc" -# undef RGB_MATRIX_EFFECT # ifdef RGB_MATRIX_CUSTOM_KB # include "rgb_matrix_kb.inc" # endif # ifdef RGB_MATRIX_CUSTOM_USER # include "rgb_matrix_user.inc" # endif +# undef RGB_MATRIX_EFFECT }; # define RGB_MATRIX_EFFECT(x) \ @@ -60,13 +60,13 @@ const char *rgb_matrix_name(uint8_t effect) { case RGB_MATRIX_EFFECT_NONE: return "NONE"; # include "rgb_matrix_effects.inc" -# undef RGB_MATRIX_EFFECT # ifdef RGB_MATRIX_CUSTOM_KB # include "rgb_matrix_kb.inc" # endif # ifdef RGB_MATRIX_CUSTOM_USER # include "rgb_matrix_user.inc" # endif +# undef RGB_MATRIX_EFFECT default: return "UNKNOWN"; } From f549948bbd2a2026875faab1f67ba7b8d21bb5a6 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 27 Dec 2024 19:42:54 +0000 Subject: [PATCH 55/77] Skip parsing g_led_config when matrix_size is missing (#24739) --- lib/python/qmk/info.py | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index 74a62721a3..acf8da984f 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -773,23 +773,24 @@ def find_keyboard_c(keyboard): def _extract_led_config(info_data, keyboard): """Scan all .c files for led config """ - cols = info_data['matrix_size']['cols'] - rows = info_data['matrix_size']['rows'] - for feature in ['rgb_matrix', 'led_matrix']: if info_data.get('features', {}).get(feature, False) or feature in info_data: - # Only attempt search if dd led config is missing if 'layout' not in info_data.get(feature, {}): - # Process - for file in find_keyboard_c(keyboard): - try: - ret = find_led_config(file, cols, rows) - if ret: - info_data[feature] = info_data.get(feature, {}) - info_data[feature]['layout'] = ret - except Exception as e: - _log_warning(info_data, f'led_config: {file.name}: {e}') + cols = info_data.get('matrix_size', {}).get('cols') + rows = info_data.get('matrix_size', {}).get('rows') + if cols and rows: + # Process + for file in find_keyboard_c(keyboard): + try: + ret = find_led_config(file, cols, rows) + if ret: + info_data[feature] = info_data.get(feature, {}) + info_data[feature]['layout'] = ret + except Exception as e: + _log_warning(info_data, f'led_config: {file.name}: {e}') + else: + _log_warning(info_data, 'led_config: matrix size required to parse g_led_config') if info_data[feature].get('layout', None) and not info_data[feature].get('led_count', None): info_data[feature]['led_count'] = len(info_data[feature]['layout']) From fd0a552fc1ed3b5799456dae4f0fc9b039575a2f Mon Sep 17 00:00:00 2001 From: chillKB <107592205+chillKB@users.noreply.github.com> Date: Mon, 30 Dec 2024 13:44:51 -0800 Subject: [PATCH 56/77] [Keyboard] Ghoul TKL (#24762) Co-authored-by: jack --- keyboards/chill/ghoul/chconf.h | 8 + keyboards/chill/ghoul/config.h | 7 + keyboards/chill/ghoul/halconf.h | 7 + keyboards/chill/ghoul/keyboard.json | 408 ++++++++++++++++++ .../chill/ghoul/keymaps/default/keymap.c | 24 ++ keyboards/chill/ghoul/mcuconf.h | 11 + keyboards/chill/ghoul/readme.md | 27 ++ 7 files changed, 492 insertions(+) create mode 100644 keyboards/chill/ghoul/chconf.h create mode 100644 keyboards/chill/ghoul/config.h create mode 100644 keyboards/chill/ghoul/halconf.h create mode 100644 keyboards/chill/ghoul/keyboard.json create mode 100644 keyboards/chill/ghoul/keymaps/default/keymap.c create mode 100644 keyboards/chill/ghoul/mcuconf.h create mode 100644 keyboards/chill/ghoul/readme.md diff --git a/keyboards/chill/ghoul/chconf.h b/keyboards/chill/ghoul/chconf.h new file mode 100644 index 0000000000..54014b32f5 --- /dev/null +++ b/keyboards/chill/ghoul/chconf.h @@ -0,0 +1,8 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define CH_CFG_ST_RESOLUTION 16 +#define CH_CFG_ST_FREQUENCY 10000 + +#include_next diff --git a/keyboards/chill/ghoul/config.h b/keyboards/chill/ghoul/config.h new file mode 100644 index 0000000000..9d5024d876 --- /dev/null +++ b/keyboards/chill/ghoul/config.h @@ -0,0 +1,7 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define BACKLIGHT_PWM_DRIVER PWMD2 +#define BACKLIGHT_PWM_CHANNEL 2 +#define BACKLIGHT_PAL_MODE 2 diff --git a/keyboards/chill/ghoul/halconf.h b/keyboards/chill/ghoul/halconf.h new file mode 100644 index 0000000000..cb37633eb6 --- /dev/null +++ b/keyboards/chill/ghoul/halconf.h @@ -0,0 +1,7 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/chill/ghoul/keyboard.json b/keyboards/chill/ghoul/keyboard.json new file mode 100644 index 0000000000..ff7435959c --- /dev/null +++ b/keyboards/chill/ghoul/keyboard.json @@ -0,0 +1,408 @@ +{ + "manufacturer": "Chill", + "keyboard_name": "Ghoul", + "maintainer": "chillKB", + "url": "https://github.com/chillKB/ghoulTKL", + "backlight": { + "driver": "pwm", + "pin": "B3" + }, + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "backlight": true, + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "B4", + "on_state": 0, + "scroll_lock": "B6" + }, + "matrix_pins": { + "cols": ["A10", "A9", "A8", "B15", "B14", "B13", "B12", "B11", "B10", "B2", "B1", "B0", "A6", "A5", "A15", "A1", "A0"], + "rows": ["B7", "B9", "B8", "A7", "A4", "A3"] + }, + "processor": "STM32F072", + "usb": { + "device_version": "1.0.0", + "pid": "0xFC87", + "vid": "0xC01D" + }, + "community_layouts": ["tkl_ansi", "tkl_ansi_split_bs_rshift", "tkl_ansi_tsangan", "tkl_ansi_tsangan_split_bs_rshift"], + "layout_aliases": { + "LAYOUT_all": "LAYOUT_tkl_ansi_split_bs_rshift" + }, + "layouts": { + "LAYOUT_tkl_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2}, + {"matrix": [1, 14], "x": 15.25, "y": 1.5}, + {"matrix": [1, 15], "x": 16.25, "y": 1.5}, + {"matrix": [1, 16], "x": 17.25, "y": 1.5}, + {"matrix": [2, 0], "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": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.5}, + {"matrix": [2, 15], "x": 16.25, "y": 2.5}, + {"matrix": [2, 16], "x": 17.25, "y": 2.5}, + {"matrix": [3, 0], "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}, + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.5}, + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.5, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.5}, + {"matrix": [5, 15], "x": 16.25, "y": 5.5}, + {"matrix": [5, 16], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_ansi_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [1, 13], "x": 13, "y": 1.5}, + {"matrix": [3, 13], "x": 14, "y": 1.5}, + {"matrix": [1, 14], "x": 15.25, "y": 1.5}, + {"matrix": [1, 15], "x": 16.25, "y": 1.5}, + {"matrix": [1, 16], "x": 17.25, "y": 1.5}, + {"matrix": [2, 0], "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": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.5}, + {"matrix": [2, 15], "x": 16.25, "y": 2.5}, + {"matrix": [2, 16], "x": 17.25, "y": 2.5}, + {"matrix": [3, 0], "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}, + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.5}, + {"matrix": [4, 15], "x": 16.25, "y": 4.5}, + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, + {"matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.25}, + {"matrix": [5, 11], "x": 11.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 12], "x": 12.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 13], "x": 13.75, "y": 5.5, "w": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 5.5}, + {"matrix": [5, 15], "x": 16.25, "y": 5.5}, + {"matrix": [5, 16], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2}, + {"matrix": [1, 14], "x": 15.25, "y": 1.5}, + {"matrix": [1, 15], "x": 16.25, "y": 1.5}, + {"matrix": [1, 16], "x": 17.25, "y": 1.5}, + {"matrix": [2, 0], "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": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.5}, + {"matrix": [2, 15], "x": 16.25, "y": 2.5}, + {"matrix": [2, 16], "x": 17.25, "y": 2.5}, + {"matrix": [3, 0], "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}, + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 2.75}, + {"matrix": [4, 15], "x": 16.25, "y": 4.5}, + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.5}, + {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.5, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.5, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.5}, + {"matrix": [5, 13], "x": 13.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.5}, + {"matrix": [5, 15], "x": 16.25, "y": 5.5}, + {"matrix": [5, 16], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [0, 11], "x": 12, "y": 0}, + {"matrix": [0, 12], "x": 13, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [1, 13], "x": 13, "y": 1.5}, + {"matrix": [3, 13], "x": 14, "y": 1.5}, + {"matrix": [1, 14], "x": 15.25, "y": 1.5}, + {"matrix": [1, 15], "x": 16.25, "y": 1.5}, + {"matrix": [1, 16], "x": 17.25, "y": 1.5}, + {"matrix": [2, 0], "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": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.5}, + {"matrix": [2, 15], "x": 16.25, "y": 2.5}, + {"matrix": [2, 16], "x": 17.25, "y": 2.5}, + {"matrix": [3, 0], "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}, + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.5}, + {"matrix": [4, 15], "x": 16.25, "y": 4.5}, + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.5}, + {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 6], "x": 4, "y": 5.5, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.5, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.5}, + {"matrix": [5, 13], "x": 13.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.5}, + {"matrix": [5, 15], "x": 16.25, "y": 5.5}, + {"matrix": [5, 16], "x": 17.25, "y": 5.5} + ] + } + } +} diff --git a/keyboards/chill/ghoul/keymaps/default/keymap.c b/keyboards/chill/ghoul/keymaps/default/keymap.c new file mode 100644 index 0000000000..9fb9329eb1 --- /dev/null +++ b/keyboards/chill/ghoul/keymaps/default/keymap.c @@ -0,0 +1,24 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + _______, KC_VOLU, KC_VOLD, KC_MUTE, _______, KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, _______, _______, _______, KC_SLEP, _______, _______, _______, + BL_TOGG, BL_UP, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/chill/ghoul/mcuconf.h b/keyboards/chill/ghoul/mcuconf.h new file mode 100644 index 0000000000..75267add9b --- /dev/null +++ b/keyboards/chill/ghoul/mcuconf.h @@ -0,0 +1,11 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#include_next + +#undef STM32_PWM_USE_TIM2 +#define STM32_PWM_USE_TIM2 TRUE + +#undef STM32_ST_USE_TIMER +#define STM32_ST_USE_TIMER 14 diff --git a/keyboards/chill/ghoul/readme.md b/keyboards/chill/ghoul/readme.md new file mode 100644 index 0000000000..4dc2b544b8 --- /dev/null +++ b/keyboards/chill/ghoul/readme.md @@ -0,0 +1,27 @@ +# Ghoul TKL + +![image](https://i.imgur.com/Y39mNA4.jpeg) + +A modern replacement PCB for Filco TKLs, adding support for PCB-mount stabilizers and popular alternate layouts. In-switch backlight LEDs are also supported. + +* Keyboard Maintainer: [chillKB](https://github.com/chillKB) +* Hardware Supported: Ghoul TKL PCB +* Hardware Availability: [Open source on GitHub](https://github.com/chillKB/ghoulTKL) + +Make example for this keyboard (after setting up your build environment): + + make chill/ghoul:default + +Flashing example for this keyboard: + + make chill/ghoul:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top left key (usually Escape) and plug in the keyboard +* **Physical reset button**: Hold the boot button and tap the reset button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From fe2200f73aa5cd96ab4a1914c0b2ad9178d9862f Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 31 Dec 2024 12:36:24 +0000 Subject: [PATCH 57/77] Remove invalid "effect_max" animation from keyboards (#24767) --- keyboards/keychron/c1_pro/ansi/white/keyboard.json | 3 +-- keyboards/keychron/c2_pro/ansi/white/keyboard.json | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/keyboards/keychron/c1_pro/ansi/white/keyboard.json b/keyboards/keychron/c1_pro/ansi/white/keyboard.json index 466de1d6e3..806dc25bb5 100644 --- a/keyboards/keychron/c1_pro/ansi/white/keyboard.json +++ b/keyboards/keychron/c1_pro/ansi/white/keyboard.json @@ -119,8 +119,7 @@ "solid_reactive_multinexus": true, "solid_splash": true, "wave_left_right": true, - "wave_up_down": true, - "effect_max": true + "wave_up_down": true }, "layout": [ {"matrix":[0, 0], "flags":1, "x":0, "y":0}, diff --git a/keyboards/keychron/c2_pro/ansi/white/keyboard.json b/keyboards/keychron/c2_pro/ansi/white/keyboard.json index cd05e77aa2..d6e5c745ce 100644 --- a/keyboards/keychron/c2_pro/ansi/white/keyboard.json +++ b/keyboards/keychron/c2_pro/ansi/white/keyboard.json @@ -136,8 +136,7 @@ "solid_reactive_multinexus": true, "solid_splash": true, "wave_left_right": true, - "wave_up_down": true, - "effect_max": true + "wave_up_down": true }, "layout": [ {"matrix":[0, 0], "flags":1, "x":0, "y":0}, From 53680fa6dafb1a82d7e3fecfdc758570f1d3cd61 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 1 Jan 2025 01:58:41 +0000 Subject: [PATCH 58/77] Fix g_led_config parse warning (#24769) --- lib/python/qmk/info.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index acf8da984f..38ca89697c 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -789,8 +789,8 @@ def _extract_led_config(info_data, keyboard): info_data[feature]['layout'] = ret except Exception as e: _log_warning(info_data, f'led_config: {file.name}: {e}') - else: - _log_warning(info_data, 'led_config: matrix size required to parse g_led_config') + else: + _log_warning(info_data, 'led_config: matrix size required to parse g_led_config') if info_data[feature].get('layout', None) and not info_data[feature].get('led_count', None): info_data[feature]['led_count'] = len(info_data[feature]['layout']) From 57f89e5388f0f79e27d0e634c9d4621e5a9c214f Mon Sep 17 00:00:00 2001 From: QMK Bot Date: Wed, 1 Jan 2025 13:02:16 +1100 Subject: [PATCH 59/77] [CI] Regenerate Files (#24770) Regenerate Files --- quantum/keycodes.h | 2 +- quantum/keymap_extras/keymap_belgian.h | 2 +- quantum/keymap_extras/keymap_bepo.h | 2 +- quantum/keymap_extras/keymap_brazilian_abnt2.h | 2 +- quantum/keymap_extras/keymap_canadian_french.h | 2 +- quantum/keymap_extras/keymap_canadian_multilingual.h | 2 +- quantum/keymap_extras/keymap_colemak.h | 2 +- quantum/keymap_extras/keymap_croatian.h | 2 +- quantum/keymap_extras/keymap_czech.h | 2 +- quantum/keymap_extras/keymap_czech_mac_ansi.h | 2 +- quantum/keymap_extras/keymap_czech_mac_iso.h | 2 +- quantum/keymap_extras/keymap_danish.h | 2 +- quantum/keymap_extras/keymap_dvorak.h | 2 +- quantum/keymap_extras/keymap_dvorak_fr.h | 2 +- quantum/keymap_extras/keymap_dvorak_programmer.h | 2 +- quantum/keymap_extras/keymap_estonian.h | 2 +- quantum/keymap_extras/keymap_farsi.h | 2 +- quantum/keymap_extras/keymap_finnish.h | 2 +- quantum/keymap_extras/keymap_french.h | 2 +- quantum/keymap_extras/keymap_french_afnor.h | 2 +- quantum/keymap_extras/keymap_french_mac_iso.h | 2 +- quantum/keymap_extras/keymap_german.h | 2 +- quantum/keymap_extras/keymap_german_mac_iso.h | 2 +- quantum/keymap_extras/keymap_greek.h | 2 +- quantum/keymap_extras/keymap_hebrew.h | 2 +- quantum/keymap_extras/keymap_hungarian.h | 2 +- quantum/keymap_extras/keymap_icelandic.h | 2 +- quantum/keymap_extras/keymap_irish.h | 2 +- quantum/keymap_extras/keymap_italian.h | 2 +- quantum/keymap_extras/keymap_italian_mac_ansi.h | 2 +- quantum/keymap_extras/keymap_italian_mac_iso.h | 2 +- quantum/keymap_extras/keymap_japanese.h | 2 +- quantum/keymap_extras/keymap_korean.h | 2 +- quantum/keymap_extras/keymap_latvian.h | 2 +- quantum/keymap_extras/keymap_lithuanian_azerty.h | 2 +- quantum/keymap_extras/keymap_lithuanian_qwerty.h | 2 +- quantum/keymap_extras/keymap_neo2.h | 2 +- quantum/keymap_extras/keymap_nordic.h | 2 +- quantum/keymap_extras/keymap_norman.h | 2 +- quantum/keymap_extras/keymap_norwegian.h | 2 +- quantum/keymap_extras/keymap_plover.h | 2 +- quantum/keymap_extras/keymap_plover_dvorak.h | 2 +- quantum/keymap_extras/keymap_polish.h | 2 +- quantum/keymap_extras/keymap_portuguese.h | 2 +- quantum/keymap_extras/keymap_portuguese_mac_iso.h | 2 +- quantum/keymap_extras/keymap_romanian.h | 2 +- quantum/keymap_extras/keymap_russian.h | 2 +- quantum/keymap_extras/keymap_russian_typewriter.h | 2 +- quantum/keymap_extras/keymap_serbian.h | 2 +- quantum/keymap_extras/keymap_serbian_latin.h | 2 +- quantum/keymap_extras/keymap_slovak.h | 2 +- quantum/keymap_extras/keymap_slovenian.h | 2 +- quantum/keymap_extras/keymap_spanish.h | 2 +- quantum/keymap_extras/keymap_spanish_dvorak.h | 2 +- quantum/keymap_extras/keymap_spanish_latin_america.h | 2 +- quantum/keymap_extras/keymap_swedish.h | 2 +- quantum/keymap_extras/keymap_swedish_mac_ansi.h | 2 +- quantum/keymap_extras/keymap_swedish_mac_iso.h | 2 +- quantum/keymap_extras/keymap_swedish_pro_mac_ansi.h | 2 +- quantum/keymap_extras/keymap_swedish_pro_mac_iso.h | 2 +- quantum/keymap_extras/keymap_swiss_de.h | 2 +- quantum/keymap_extras/keymap_swiss_fr.h | 2 +- quantum/keymap_extras/keymap_turkish_f.h | 2 +- quantum/keymap_extras/keymap_turkish_q.h | 2 +- quantum/keymap_extras/keymap_uk.h | 2 +- quantum/keymap_extras/keymap_ukrainian.h | 2 +- quantum/keymap_extras/keymap_us.h | 2 +- quantum/keymap_extras/keymap_us_extended.h | 2 +- quantum/keymap_extras/keymap_us_international.h | 2 +- quantum/keymap_extras/keymap_us_international_linux.h | 2 +- quantum/keymap_extras/keymap_workman.h | 2 +- quantum/keymap_extras/keymap_workman_zxcvm.h | 2 +- quantum/rgblight/rgblight_breathe_table.h | 2 +- tests/test_common/keycode_table.cpp | 2 +- 74 files changed, 74 insertions(+), 74 deletions(-) diff --git a/quantum/keycodes.h b/quantum/keycodes.h index 921dc7199f..5929e35687 100644 --- a/quantum/keycodes.h +++ b/quantum/keycodes.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_belgian.h b/quantum/keymap_extras/keymap_belgian.h index e553894b52..1869e66d9a 100644 --- a/quantum/keymap_extras/keymap_belgian.h +++ b/quantum/keymap_extras/keymap_belgian.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_bepo.h b/quantum/keymap_extras/keymap_bepo.h index d1886efb10..f2ddb99180 100644 --- a/quantum/keymap_extras/keymap_bepo.h +++ b/quantum/keymap_extras/keymap_bepo.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_brazilian_abnt2.h b/quantum/keymap_extras/keymap_brazilian_abnt2.h index 7dfc2cbb3d..730fe5069f 100644 --- a/quantum/keymap_extras/keymap_brazilian_abnt2.h +++ b/quantum/keymap_extras/keymap_brazilian_abnt2.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_canadian_french.h b/quantum/keymap_extras/keymap_canadian_french.h index 63c9166a31..5771cf6193 100644 --- a/quantum/keymap_extras/keymap_canadian_french.h +++ b/quantum/keymap_extras/keymap_canadian_french.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_canadian_multilingual.h b/quantum/keymap_extras/keymap_canadian_multilingual.h index baeafa4077..2a4326b406 100644 --- a/quantum/keymap_extras/keymap_canadian_multilingual.h +++ b/quantum/keymap_extras/keymap_canadian_multilingual.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_colemak.h b/quantum/keymap_extras/keymap_colemak.h index b1b2fdcf80..0170339aad 100644 --- a/quantum/keymap_extras/keymap_colemak.h +++ b/quantum/keymap_extras/keymap_colemak.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_croatian.h b/quantum/keymap_extras/keymap_croatian.h index 3ed6e29dfb..7e11a85710 100644 --- a/quantum/keymap_extras/keymap_croatian.h +++ b/quantum/keymap_extras/keymap_croatian.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_czech.h b/quantum/keymap_extras/keymap_czech.h index ab00f83820..8e65a4ed0a 100644 --- a/quantum/keymap_extras/keymap_czech.h +++ b/quantum/keymap_extras/keymap_czech.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_czech_mac_ansi.h b/quantum/keymap_extras/keymap_czech_mac_ansi.h index ac2f078d98..ed46a78f1c 100644 --- a/quantum/keymap_extras/keymap_czech_mac_ansi.h +++ b/quantum/keymap_extras/keymap_czech_mac_ansi.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_czech_mac_iso.h b/quantum/keymap_extras/keymap_czech_mac_iso.h index 4b56e15df1..08285b7952 100644 --- a/quantum/keymap_extras/keymap_czech_mac_iso.h +++ b/quantum/keymap_extras/keymap_czech_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_danish.h b/quantum/keymap_extras/keymap_danish.h index 9e397af135..a84923007c 100644 --- a/quantum/keymap_extras/keymap_danish.h +++ b/quantum/keymap_extras/keymap_danish.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_dvorak.h b/quantum/keymap_extras/keymap_dvorak.h index d83f311e2a..a926e48295 100644 --- a/quantum/keymap_extras/keymap_dvorak.h +++ b/quantum/keymap_extras/keymap_dvorak.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_dvorak_fr.h b/quantum/keymap_extras/keymap_dvorak_fr.h index 6c9ca139d6..6e6498e598 100644 --- a/quantum/keymap_extras/keymap_dvorak_fr.h +++ b/quantum/keymap_extras/keymap_dvorak_fr.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_dvorak_programmer.h b/quantum/keymap_extras/keymap_dvorak_programmer.h index 80f39f56d4..43d9a702bb 100644 --- a/quantum/keymap_extras/keymap_dvorak_programmer.h +++ b/quantum/keymap_extras/keymap_dvorak_programmer.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_estonian.h b/quantum/keymap_extras/keymap_estonian.h index 3b6bf66c5c..3e87bbc5f8 100644 --- a/quantum/keymap_extras/keymap_estonian.h +++ b/quantum/keymap_extras/keymap_estonian.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_farsi.h b/quantum/keymap_extras/keymap_farsi.h index d268917513..8e16188a8f 100644 --- a/quantum/keymap_extras/keymap_farsi.h +++ b/quantum/keymap_extras/keymap_farsi.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_finnish.h b/quantum/keymap_extras/keymap_finnish.h index 4c0b78ff60..045f7295a0 100644 --- a/quantum/keymap_extras/keymap_finnish.h +++ b/quantum/keymap_extras/keymap_finnish.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_french.h b/quantum/keymap_extras/keymap_french.h index db5a7ac2ff..9ff3694a73 100644 --- a/quantum/keymap_extras/keymap_french.h +++ b/quantum/keymap_extras/keymap_french.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_french_afnor.h b/quantum/keymap_extras/keymap_french_afnor.h index 894ff4305b..07506e0f6e 100644 --- a/quantum/keymap_extras/keymap_french_afnor.h +++ b/quantum/keymap_extras/keymap_french_afnor.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_french_mac_iso.h b/quantum/keymap_extras/keymap_french_mac_iso.h index 89b16478bc..b036ca2009 100644 --- a/quantum/keymap_extras/keymap_french_mac_iso.h +++ b/quantum/keymap_extras/keymap_french_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_german.h b/quantum/keymap_extras/keymap_german.h index 074f0d321b..7ac807934b 100644 --- a/quantum/keymap_extras/keymap_german.h +++ b/quantum/keymap_extras/keymap_german.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_german_mac_iso.h b/quantum/keymap_extras/keymap_german_mac_iso.h index 1a50fabf1a..56d077c36c 100644 --- a/quantum/keymap_extras/keymap_german_mac_iso.h +++ b/quantum/keymap_extras/keymap_german_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_greek.h b/quantum/keymap_extras/keymap_greek.h index e21022abbc..0d2e15dfd8 100644 --- a/quantum/keymap_extras/keymap_greek.h +++ b/quantum/keymap_extras/keymap_greek.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_hebrew.h b/quantum/keymap_extras/keymap_hebrew.h index b122eb09ea..a927364737 100644 --- a/quantum/keymap_extras/keymap_hebrew.h +++ b/quantum/keymap_extras/keymap_hebrew.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_hungarian.h b/quantum/keymap_extras/keymap_hungarian.h index 22ae74538c..81a842a0fe 100644 --- a/quantum/keymap_extras/keymap_hungarian.h +++ b/quantum/keymap_extras/keymap_hungarian.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_icelandic.h b/quantum/keymap_extras/keymap_icelandic.h index c58e48b22d..8e4e04b0f1 100644 --- a/quantum/keymap_extras/keymap_icelandic.h +++ b/quantum/keymap_extras/keymap_icelandic.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_irish.h b/quantum/keymap_extras/keymap_irish.h index ba23cddc95..6cb85dc7a7 100644 --- a/quantum/keymap_extras/keymap_irish.h +++ b/quantum/keymap_extras/keymap_irish.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_italian.h b/quantum/keymap_extras/keymap_italian.h index 0317cc5e78..57c12ba9b6 100644 --- a/quantum/keymap_extras/keymap_italian.h +++ b/quantum/keymap_extras/keymap_italian.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_italian_mac_ansi.h b/quantum/keymap_extras/keymap_italian_mac_ansi.h index ebf2e1e709..4774c2d5ee 100644 --- a/quantum/keymap_extras/keymap_italian_mac_ansi.h +++ b/quantum/keymap_extras/keymap_italian_mac_ansi.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_italian_mac_iso.h b/quantum/keymap_extras/keymap_italian_mac_iso.h index 327777dd8a..35ec978ef9 100644 --- a/quantum/keymap_extras/keymap_italian_mac_iso.h +++ b/quantum/keymap_extras/keymap_italian_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_japanese.h b/quantum/keymap_extras/keymap_japanese.h index 68a91be18b..3ad9495353 100644 --- a/quantum/keymap_extras/keymap_japanese.h +++ b/quantum/keymap_extras/keymap_japanese.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_korean.h b/quantum/keymap_extras/keymap_korean.h index f759e136bd..644837734e 100644 --- a/quantum/keymap_extras/keymap_korean.h +++ b/quantum/keymap_extras/keymap_korean.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_latvian.h b/quantum/keymap_extras/keymap_latvian.h index 3444e744be..b1750ed759 100644 --- a/quantum/keymap_extras/keymap_latvian.h +++ b/quantum/keymap_extras/keymap_latvian.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_lithuanian_azerty.h b/quantum/keymap_extras/keymap_lithuanian_azerty.h index 235989e67b..9d6c1b92f0 100644 --- a/quantum/keymap_extras/keymap_lithuanian_azerty.h +++ b/quantum/keymap_extras/keymap_lithuanian_azerty.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_lithuanian_qwerty.h b/quantum/keymap_extras/keymap_lithuanian_qwerty.h index 58f4381420..84df4c8bd2 100644 --- a/quantum/keymap_extras/keymap_lithuanian_qwerty.h +++ b/quantum/keymap_extras/keymap_lithuanian_qwerty.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_neo2.h b/quantum/keymap_extras/keymap_neo2.h index dbeef8d544..ad285f7d18 100644 --- a/quantum/keymap_extras/keymap_neo2.h +++ b/quantum/keymap_extras/keymap_neo2.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_nordic.h b/quantum/keymap_extras/keymap_nordic.h index bb66fcf12f..ff952e6c43 100644 --- a/quantum/keymap_extras/keymap_nordic.h +++ b/quantum/keymap_extras/keymap_nordic.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_norman.h b/quantum/keymap_extras/keymap_norman.h index 9938e53efe..166a2f22a1 100644 --- a/quantum/keymap_extras/keymap_norman.h +++ b/quantum/keymap_extras/keymap_norman.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_norwegian.h b/quantum/keymap_extras/keymap_norwegian.h index e50e1ab3bb..0b0cf65813 100644 --- a/quantum/keymap_extras/keymap_norwegian.h +++ b/quantum/keymap_extras/keymap_norwegian.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_plover.h b/quantum/keymap_extras/keymap_plover.h index 285eaa0741..a01a23c8a3 100644 --- a/quantum/keymap_extras/keymap_plover.h +++ b/quantum/keymap_extras/keymap_plover.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_plover_dvorak.h b/quantum/keymap_extras/keymap_plover_dvorak.h index 8347b2b20c..0ec7b9acd3 100644 --- a/quantum/keymap_extras/keymap_plover_dvorak.h +++ b/quantum/keymap_extras/keymap_plover_dvorak.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_polish.h b/quantum/keymap_extras/keymap_polish.h index 422c58c1e3..2448ef1fef 100644 --- a/quantum/keymap_extras/keymap_polish.h +++ b/quantum/keymap_extras/keymap_polish.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_portuguese.h b/quantum/keymap_extras/keymap_portuguese.h index 6a896de529..9f79862679 100644 --- a/quantum/keymap_extras/keymap_portuguese.h +++ b/quantum/keymap_extras/keymap_portuguese.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_portuguese_mac_iso.h b/quantum/keymap_extras/keymap_portuguese_mac_iso.h index 1a11cfa5ab..5381956b4c 100644 --- a/quantum/keymap_extras/keymap_portuguese_mac_iso.h +++ b/quantum/keymap_extras/keymap_portuguese_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_romanian.h b/quantum/keymap_extras/keymap_romanian.h index 8f90988855..6410fbbe48 100644 --- a/quantum/keymap_extras/keymap_romanian.h +++ b/quantum/keymap_extras/keymap_romanian.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_russian.h b/quantum/keymap_extras/keymap_russian.h index 440692345e..364e7aba5c 100644 --- a/quantum/keymap_extras/keymap_russian.h +++ b/quantum/keymap_extras/keymap_russian.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_russian_typewriter.h b/quantum/keymap_extras/keymap_russian_typewriter.h index 833311076f..18157726ad 100644 --- a/quantum/keymap_extras/keymap_russian_typewriter.h +++ b/quantum/keymap_extras/keymap_russian_typewriter.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_serbian.h b/quantum/keymap_extras/keymap_serbian.h index fa0e474df8..6421577c22 100644 --- a/quantum/keymap_extras/keymap_serbian.h +++ b/quantum/keymap_extras/keymap_serbian.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_serbian_latin.h b/quantum/keymap_extras/keymap_serbian_latin.h index a2038b6df8..358c6c76ed 100644 --- a/quantum/keymap_extras/keymap_serbian_latin.h +++ b/quantum/keymap_extras/keymap_serbian_latin.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_slovak.h b/quantum/keymap_extras/keymap_slovak.h index 08666ef060..a777fce16f 100644 --- a/quantum/keymap_extras/keymap_slovak.h +++ b/quantum/keymap_extras/keymap_slovak.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_slovenian.h b/quantum/keymap_extras/keymap_slovenian.h index 31a8c5f9a5..402a53cd44 100644 --- a/quantum/keymap_extras/keymap_slovenian.h +++ b/quantum/keymap_extras/keymap_slovenian.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_spanish.h b/quantum/keymap_extras/keymap_spanish.h index f87eb6b027..714c8cbb7c 100644 --- a/quantum/keymap_extras/keymap_spanish.h +++ b/quantum/keymap_extras/keymap_spanish.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_spanish_dvorak.h b/quantum/keymap_extras/keymap_spanish_dvorak.h index 782f23a5be..b5a6463452 100644 --- a/quantum/keymap_extras/keymap_spanish_dvorak.h +++ b/quantum/keymap_extras/keymap_spanish_dvorak.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_spanish_latin_america.h b/quantum/keymap_extras/keymap_spanish_latin_america.h index 2f11743061..651212d4bf 100644 --- a/quantum/keymap_extras/keymap_spanish_latin_america.h +++ b/quantum/keymap_extras/keymap_spanish_latin_america.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_swedish.h b/quantum/keymap_extras/keymap_swedish.h index a9d015b22e..23ec4102d8 100644 --- a/quantum/keymap_extras/keymap_swedish.h +++ b/quantum/keymap_extras/keymap_swedish.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_swedish_mac_ansi.h b/quantum/keymap_extras/keymap_swedish_mac_ansi.h index 36a31220a1..18061f0be9 100644 --- a/quantum/keymap_extras/keymap_swedish_mac_ansi.h +++ b/quantum/keymap_extras/keymap_swedish_mac_ansi.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_swedish_mac_iso.h b/quantum/keymap_extras/keymap_swedish_mac_iso.h index 7f085dc16b..0c68ffcbd4 100644 --- a/quantum/keymap_extras/keymap_swedish_mac_iso.h +++ b/quantum/keymap_extras/keymap_swedish_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_swedish_pro_mac_ansi.h b/quantum/keymap_extras/keymap_swedish_pro_mac_ansi.h index 20781b2e53..043a7c9fc2 100644 --- a/quantum/keymap_extras/keymap_swedish_pro_mac_ansi.h +++ b/quantum/keymap_extras/keymap_swedish_pro_mac_ansi.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_swedish_pro_mac_iso.h b/quantum/keymap_extras/keymap_swedish_pro_mac_iso.h index dbbc24ed02..1d691feef1 100644 --- a/quantum/keymap_extras/keymap_swedish_pro_mac_iso.h +++ b/quantum/keymap_extras/keymap_swedish_pro_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_swiss_de.h b/quantum/keymap_extras/keymap_swiss_de.h index 2cedf23788..5411353a5f 100644 --- a/quantum/keymap_extras/keymap_swiss_de.h +++ b/quantum/keymap_extras/keymap_swiss_de.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_swiss_fr.h b/quantum/keymap_extras/keymap_swiss_fr.h index 347815504b..a9a9cab162 100644 --- a/quantum/keymap_extras/keymap_swiss_fr.h +++ b/quantum/keymap_extras/keymap_swiss_fr.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_turkish_f.h b/quantum/keymap_extras/keymap_turkish_f.h index d9d08adae5..dcf9e815d7 100644 --- a/quantum/keymap_extras/keymap_turkish_f.h +++ b/quantum/keymap_extras/keymap_turkish_f.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_turkish_q.h b/quantum/keymap_extras/keymap_turkish_q.h index 781c406347..a86af180cd 100644 --- a/quantum/keymap_extras/keymap_turkish_q.h +++ b/quantum/keymap_extras/keymap_turkish_q.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_uk.h b/quantum/keymap_extras/keymap_uk.h index 49237768d4..30f9b972db 100644 --- a/quantum/keymap_extras/keymap_uk.h +++ b/quantum/keymap_extras/keymap_uk.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_ukrainian.h b/quantum/keymap_extras/keymap_ukrainian.h index 760cc265ea..d3f82a2194 100644 --- a/quantum/keymap_extras/keymap_ukrainian.h +++ b/quantum/keymap_extras/keymap_ukrainian.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_us.h b/quantum/keymap_extras/keymap_us.h index 9d1c7ad628..74c9b8e7f8 100644 --- a/quantum/keymap_extras/keymap_us.h +++ b/quantum/keymap_extras/keymap_us.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_us_extended.h b/quantum/keymap_extras/keymap_us_extended.h index c8e56cc5a8..d17d3e603e 100644 --- a/quantum/keymap_extras/keymap_us_extended.h +++ b/quantum/keymap_extras/keymap_us_extended.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_us_international.h b/quantum/keymap_extras/keymap_us_international.h index 1b211bd4a6..a9617494a8 100644 --- a/quantum/keymap_extras/keymap_us_international.h +++ b/quantum/keymap_extras/keymap_us_international.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_us_international_linux.h b/quantum/keymap_extras/keymap_us_international_linux.h index 778ab4c899..b13039be05 100644 --- a/quantum/keymap_extras/keymap_us_international_linux.h +++ b/quantum/keymap_extras/keymap_us_international_linux.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_workman.h b/quantum/keymap_extras/keymap_workman.h index 31bd953d7f..29396fdec1 100644 --- a/quantum/keymap_extras/keymap_workman.h +++ b/quantum/keymap_extras/keymap_workman.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_workman_zxcvm.h b/quantum/keymap_extras/keymap_workman_zxcvm.h index f05c89adb8..f7a5689f0f 100644 --- a/quantum/keymap_extras/keymap_workman_zxcvm.h +++ b/quantum/keymap_extras/keymap_workman_zxcvm.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/rgblight/rgblight_breathe_table.h b/quantum/rgblight/rgblight_breathe_table.h index 147b1bf09a..5a8181c7d4 100644 --- a/quantum/rgblight/rgblight_breathe_table.h +++ b/quantum/rgblight/rgblight_breathe_table.h @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/tests/test_common/keycode_table.cpp b/tests/test_common/keycode_table.cpp index ae1a9edcd0..26d0919619 100644 --- a/tests/test_common/keycode_table.cpp +++ b/tests/test_common/keycode_table.cpp @@ -1,4 +1,4 @@ -// Copyright 2024 QMK +// Copyright 2025 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* From ac140e563c422787f846a0ff6d9ca211213a41a2 Mon Sep 17 00:00:00 2001 From: Tocho Tochev Date: Thu, 2 Jan 2025 11:45:26 +0000 Subject: [PATCH 60/77] Fix link to TMK magic commands (#24773) --- docs/faq_debug.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/faq_debug.md b/docs/faq_debug.md index 36374974df..35a4160e27 100644 --- a/docs/faq_debug.md +++ b/docs/faq_debug.md @@ -129,7 +129,7 @@ needed for older distros. ## Can't Get Message on Console Check: - *hid_listen* finds your device. See above. -- Enable debug by pressing **Magic**+d. See [Magic Commands](https://github.com/tmk/tmk_keyboard#magic-commands). +- Enable debug by pressing **Magic**+d. See [Magic Commands](https://github.com/tmk/tmk_keyboard/wiki#magic-commands-for-debug). - Set `debug_enable=true`. See [Debugging](#debugging) - Try using `print` function instead of debug print. See **common/print.h**. - Disconnect other devices with console function. See [Issue #97](https://github.com/tmk/tmk_keyboard/issues/97). From 172c3496756fb5468c778c2536b4334f25eb883b Mon Sep 17 00:00:00 2001 From: Philip <68480429+iliorik@users.noreply.github.com> Date: Thu, 2 Jan 2025 14:50:43 +0300 Subject: [PATCH 61/77] [Keyboard] Add handwired/dactyl_manuform/5x8 (#24726) * add handwired/dactyl_manuform/5x8 config * add keymap scheme * Update keymap.c * Update keyboard.json * Update keyboard.json * fix and compile worked configs * Update readme.md * Update readme.md * Update readme.md * add dynamic macros support * change key sets on first workday/add right2left layer * Update keyboard.json * Update keymap.c * move license header to top keymap.c * Update keyboard.json * I rewrote the layout so that the halves are not stacked. * I rewrote the layout so that the halves are not stacked (keymap.c) * change "serial pin" syntactic change "soft_serial_pin": "D0" to "serial": { "pin": "D0" } * fix KC_BSPC and KC_SPC on right keyboard * Update readme.md * Update keymap.c Co-authored-by: Drashna Jaelre * Update keymap.c Co-authored-by: Drashna Jaelre --------- Co-authored-by: skandiPC Co-authored-by: iliorik-ph <140731596+iliorik-ph@users.noreply.github.com> Co-authored-by: Drashna Jaelre --- .../dactyl_manuform/5x8/keyboard.json | 137 ++++++++++++++++++ .../5x8/keymaps/default/keymap.c | 84 +++++++++++ .../5x8/keymaps/default/rules.mk | 1 + .../handwired/dactyl_manuform/5x8/readme.md | 25 ++++ 4 files changed, 247 insertions(+) create mode 100644 keyboards/handwired/dactyl_manuform/5x8/keyboard.json create mode 100644 keyboards/handwired/dactyl_manuform/5x8/keymaps/default/keymap.c create mode 100644 keyboards/handwired/dactyl_manuform/5x8/keymaps/default/rules.mk create mode 100644 keyboards/handwired/dactyl_manuform/5x8/readme.md diff --git a/keyboards/handwired/dactyl_manuform/5x8/keyboard.json b/keyboards/handwired/dactyl_manuform/5x8/keyboard.json new file mode 100644 index 0000000000..24ac4924ac --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/5x8/keyboard.json @@ -0,0 +1,137 @@ +{ + "keyboard_name": "Dactyl-Manuform (5x8)", + "manufacturer": "tshort", + "url": "", + "maintainer": "qmk", + "usb": { + "vid": "0x444D", + "pid": "0x3537", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + }, + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "matrix_pins": { + "cols": ["B6", "B2", "B3", "B1", "F7", "F6", "F5", "F4"], + "rows": ["D4", "C6", "D7", "E6", "B4", "B5"] + }, + "diode_direction": "COL2ROW", + "split": { + "enabled": true, + "serial": { + "pin": "D0" + } + }, + "development_board": "promicro", + "layouts": { + "LAYOUT_5x8": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.5}, + {"matrix": [0, 1], "x": 1, "y": 0.5}, + {"matrix": [0, 2], "x": 2, "y": 0.5}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + + {"matrix": [6, 7], "x": 17, "y": 0.5}, + {"matrix": [6, 6], "x": 16, "y": 0.5}, + {"matrix": [6, 5], "x": 15, "y": 0.5}, + {"matrix": [6, 4], "x": 14, "y": 0}, + {"matrix": [6, 3], "x": 13, "y": 0}, + {"matrix": [6, 2], "x": 12, "y": 0}, + {"matrix": [6, 1], "x": 11, "y": 0}, + {"matrix": [6, 0], "x": 10, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + + {"matrix": [7, 7], "x": 17, "y": 1.5}, + {"matrix": [7, 6], "x": 16, "y": 1.5}, + {"matrix": [7, 5], "x": 15, "y": 1.5}, + {"matrix": [7, 4], "x": 14, "y": 1}, + {"matrix": [7, 3], "x": 13, "y": 1}, + {"matrix": [7, 2], "x": 12, "y": 1}, + {"matrix": [7, 1], "x": 11, "y": 1}, + {"matrix": [7, 0], "x": 10, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2.5}, + {"matrix": [2, 1], "x": 1, "y": 2.5}, + {"matrix": [2, 2], "x": 2, "y": 2.5}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + {"matrix": [2, 6], "x": 6, "y": 2}, + {"matrix": [2, 7], "x": 7, "y": 2}, + + {"matrix": [8, 7], "x": 17, "y": 2.5}, + {"matrix": [8, 6], "x": 16, "y": 2.5}, + {"matrix": [8, 5], "x": 15, "y": 2.5}, + {"matrix": [8, 4], "x": 14, "y": 2}, + {"matrix": [8, 3], "x": 13, "y": 2}, + {"matrix": [8, 2], "x": 12, "y": 2}, + {"matrix": [8, 1], "x": 11, "y": 2}, + {"matrix": [8, 0], "x": 10, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3.5}, + {"matrix": [3, 1], "x": 1, "y": 3.5}, + {"matrix": [3, 2], "x": 2, "y": 3.5}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 5], "x": 5, "y": 3}, + {"matrix": [3, 6], "x": 6, "y": 3}, + + {"matrix": [9, 6], "x": 17, "y": 3.5}, + {"matrix": [9, 5], "x": 16, "y": 3.5}, + {"matrix": [9, 4], "x": 15, "y": 3.5}, + {"matrix": [9, 3], "x": 14, "y": 3}, + {"matrix": [9, 2], "x": 13, "y": 3}, + {"matrix": [9, 1], "x": 12, "y": 3}, + {"matrix": [9, 0], "x": 11, "y": 3}, + + {"matrix": [4, 1], "x": 1, "y": 4.5}, + {"matrix": [4, 2], "x": 2, "y": 4.5}, + {"matrix": [4, 3], "x": 3, "y": 4}, + {"matrix": [4, 4], "x": 4, "y": 4}, + + {"matrix": [10, 4], "x": 14, "y": 4}, + {"matrix": [10, 3], "x": 13, "y": 4}, + {"matrix": [10, 2], "x": 12, "y": 5}, + {"matrix": [10, 1], "x": 11, "y": 5}, + + {"matrix": [4, 5], "x": 4.5, "y": 5}, + {"matrix": [4, 6], "x": 5.5, "y": 5}, + + {"matrix": [10, 6], "x": 14.5, "y": 4.5}, + {"matrix": [10, 5], "x": 15.5, "y": 4.5}, + + {"matrix": [5, 5], "x": 5, "y": 6}, + {"matrix": [5, 6], "x": 6, "y": 6}, + + {"matrix": [11, 6], "x": 12, "y": 6}, + {"matrix": [11, 5], "x": 11, "y": 6}, + + {"matrix": [5, 3], "x": 5, "y": 7}, + {"matrix": [5, 4], "x": 6, "y": 7}, + + {"matrix": [11, 4], "x": 12, "y": 7}, + {"matrix": [11, 3], "x": 11, "y": 7} + ] + } + } +} diff --git a/keyboards/handwired/dactyl_manuform/5x8/keymaps/default/keymap.c b/keyboards/handwired/dactyl_manuform/5x8/keymaps/default/keymap.c new file mode 100644 index 0000000000..d038173db0 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/5x8/keymaps/default/keymap.c @@ -0,0 +1,84 @@ +/* Copyright 2024 Philip Slinkin (s.philya@gmail.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 . + */ +#include QMK_KEYBOARD_H + +enum layers { + _QWERTY, + _RIGHT2LEFT +}; + +/* Base (qwerty) + * ,-------------------------------------------------------, ,-------------------------------------------------------, + * | Esc | ` | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | - | = | \ | BS | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * |M_RSTP| Tab | q | w | e | r | t |QKBOOT| | F8 | y | u | i | o | p | [ | ] | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * |M_REC1| Caps | a | s | d | f | g | F7 | | F9 | h | j | k | l | ; | " |ENTER | + * |------+------+------+------+------+------+------+------' '------+------+------+------+------+------+------+------| + * |M_REC2| Shift| z | x | c | v | b | | n | m | , | . | / |Shift | Ctrl | + * '------+------+------+------+------+------+------' '------+------+------+------+------+------+------' + * | Ctrl | Wint | Alt | INS | | Up | Down | Left | Right| + * '------+------+------+------+------, ,------+------+------+------+------' + * | TT(1)|SPACE | | SPACE| BS | + * '------+------+------' ,------+------+------' + * | ESC |ENTER | | HOME | END | + * '------+------' '------+------' + * | DEL | F2 | | PGUP | PGDN | + * '------+------' '------+------' + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT_5x8( + KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC, + DM_RSTP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, QK_BOOT, KC_F8, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, + DM_REC1, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_F7, KC_F9, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + DM_REC2, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RCTL, + KC_LCTL, KC_LGUI, KC_LALT, KC_INS, KC_UP, KC_DOWN, KC_LEFT, KC_RGHT, + TT(1), KC_SPC, KC_SPC, KC_BSPC, + KC_ESC, KC_ENT, KC_HOME, KC_END, + KC_DEL, KC_F2, KC_PGUP, KC_PGDN + ), +/* Base (right to left on hold button) + * ,-------------------------------------------------------, ,-------------------------------------------------------, + * | BS | \ | = | - | 0 | 9 | 8 | 7 | | | | | | | | | | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * | [ | ] | p | o | i | u | y |QKBOOT| | | | | | | | | | + * |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------| + * |M_PLY1| " | ; | l | k | j | h |PRSCRN| | | | Left | Down | Up | Right| |ENTER | + * |------+------+------+------+------+------+------+------' '------+------+------+------+------+------+------+------| + * |M_PLY2|MShift| / | . | , | m | n | | | | | | | | | + * |------+------+------+------+------+------+------' '------+------+------+------+------+------+------' + * |MCtrl | MAlt | DEL | BS | | | | | | + * '------+------+------+------+------, ,------+------+------+------+------' + * | |SPACE | | SPACE| BS | + * '------+------+------' ,------+------+------' + * | END |ENTER | | HOME | END | + * '------+------' '------+------' + * | PGDN | PGUP | | PGUP | PGDN | + * '------+------' '------+------' + */ + + [_RIGHT2LEFT] = LAYOUT_5x8( + KC_BSPC, KC_BSLS, KC_EQL, KC_MINS, KC_0, KC_9, KC_8, KC_7, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BSPC, + KC_RBRC, KC_LBRC, KC_P, KC_O, KC_I, KC_U, KC_Y, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + DM_PLY1, KC_QUOT, KC_SCLN, KC_L, KC_K, KC_J, KC_H, KC_PSCR, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_SCLN, KC_NO, KC_ENT, + DM_PLY2, OSM(MOD_LSFT), KC_SLSH, KC_DOT, KC_COMM, KC_M, KC_N, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + OSM(MOD_LCTL), OSM(MOD_LALT), KC_DEL, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_SPC, KC_SPC, KC_BSPC, + KC_ESC, KC_ENT, KC_HOME, KC_END, + KC_DEL, KC_F2, KC_PGUP, KC_PGDN + ), +}; diff --git a/keyboards/handwired/dactyl_manuform/5x8/keymaps/default/rules.mk b/keyboards/handwired/dactyl_manuform/5x8/keymaps/default/rules.mk new file mode 100644 index 0000000000..9e6797ed30 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/5x8/keymaps/default/rules.mk @@ -0,0 +1 @@ +DYNAMIC_MACRO_ENABLE = yes diff --git a/keyboards/handwired/dactyl_manuform/5x8/readme.md b/keyboards/handwired/dactyl_manuform/5x8/readme.md new file mode 100644 index 0000000000..0ada7e92b6 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/5x8/readme.md @@ -0,0 +1,25 @@ +# handwired/dactyl_manuform/5x8 + +![Dactyl_manuform 5x8](https://i.imgur.com/DtawD9r.jpeg) + +* Keyboard Maintainer: [iliorik](https://github.com/iliorik) + +I made this keyboard so that the buttons on the right side of the right half would replicate the standard keyboard. +I put macros on the left buttons of the left side keyboard for rec and play keypresses + +Make example for this keyboard (after setting up your build environment): + + make handwired/dactyl_manuform/5x8:default + +Flashing example for this keyboard: + + make handwired/dactyl_manuform/5x8:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Keycode in layout**: Press the key mapped to `QK_BOOT` +* **Reset pro micro**: Connect RST and GND pins on plate From 9a0f4e586a5ac06241dc05ec13df3f07e4d0392d Mon Sep 17 00:00:00 2001 From: Sylvain Huguet Date: Fri, 3 Jan 2025 07:18:38 +0100 Subject: [PATCH 62/77] Add shuguet shu89 (#24758) Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis Co-authored-by: jack --- keyboards/shuguet/shu89/keyboard.json | 315 ++++++++++++++++++ .../shuguet/shu89/keymaps/default/keymap.json | 23 ++ keyboards/shuguet/shu89/readme.md | 20 ++ 3 files changed, 358 insertions(+) create mode 100644 keyboards/shuguet/shu89/keyboard.json create mode 100644 keyboards/shuguet/shu89/keymaps/default/keymap.json create mode 100644 keyboards/shuguet/shu89/readme.md diff --git a/keyboards/shuguet/shu89/keyboard.json b/keyboards/shuguet/shu89/keyboard.json new file mode 100644 index 0000000000..072734b544 --- /dev/null +++ b/keyboards/shuguet/shu89/keyboard.json @@ -0,0 +1,315 @@ +{ + "keyboard_name": "shu89", + "manufacturer": "shuguet", + "url": "https://github.com/shuguet/split89", + "maintainer": "shuguet", + "usb": { + "vid": "0x5348", + "pid": "0x0001", + "device_version": "0.0.1" + }, + "features": { + "rgb_matrix": true, + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP19", "GP20", "GP18", "GP17", "GP15", "GP14", "GP13", "GP12", "GP11", "GP10"], + "rows": ["GP1", "GP2", "GP3", "GP4", "GP5", "GP6"] + }, + "ws2812": { + "driver": "vendor", + "pin": "GP7" + }, + "diode_direction": "COL2ROW", + "split": { + "enabled": true, + "serial": { + "driver": "vendor", + "pin": "GP9" + }, + "handedness": { + "pin": "GP0" + }, + "matrix_pins": { + "right": { + "cols": ["GP19", "GP20", "GP18", "GP17", "GP15", "GP14", "GP13", "GP12", "GP11", "GP10"], + "rows": ["GP6", "GP5", "GP4", "GP3", "GP2", "GP1"] + } + } + }, + "processor": "RP2040", + "bootloader": "rp2040", + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "Esc", "matrix": [0, 4], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 5], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 6], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 7], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 8], "x": 5, "y": 0}, + {"label": "F5", "matrix": [0, 9], "x": 6, "y": 0}, + + {"label": "F6", "matrix": [6, 0], "x": 10, "y": 0}, + {"label": "F7", "matrix": [6, 1], "x": 11, "y": 0}, + {"label": "F8", "matrix": [6, 2], "x": 12, "y": 0}, + {"label": "F9", "matrix": [6, 3], "x": 13.5, "y": 0}, + {"label": "F10", "matrix": [6, 4], "x": 14.5, "y": 0}, + {"label": "F11", "matrix": [6, 5], "x": 15.5, "y": 0}, + {"label": "F12", "matrix": [6, 6], "x": 16.5, "y": 0}, + {"label": "PrtSc", "matrix": [6, 7], "x": 17.75, "y": 0}, + {"label": "Scroll Lock", "matrix": [6, 8], "x": 18.75, "y": 0}, + {"label": "Pause", "matrix": [6, 9], "x": 19.75, "y": 0}, + + + {"label": "~", "matrix": [2, 4], "x": 0, "y": 1.5}, + {"label": "1!", "matrix": [1, 4], "x": 1, "y": 1.5}, + {"label": "2@", "matrix": [1, 5], "x": 2, "y": 1.5}, + {"label": "3#", "matrix": [1, 6], "x": 3, "y": 1.5}, + {"label": "4$", "matrix": [1, 7], "x": 4, "y": 1.5}, + {"label": "5%", "matrix": [1, 8], "x": 5, "y": 1.5}, + {"label": "6^", "matrix": [1, 9], "x": 6, "y": 1.5}, + + {"label": "7&", "matrix": [7, 0], "x": 9.5, "y": 1.5}, + {"label": "8*", "matrix": [7, 1], "x": 10.5, "y": 1.5}, + {"label": "9(", "matrix": [7, 2], "x": 11.5, "y": 1.5}, + {"label": "0)", "matrix": [7, 3], "x": 12.5, "y": 1.5}, + {"label": "-_", "matrix": [7, 4], "x": 13.5, "y": 1.5}, + {"label": "=+", "matrix": [7, 5], "x": 14.5, "y": 1.5}, + {"label": "Backspace", "matrix": [7, 6], "x": 15.5, "y": 1.5, "w": 2}, + {"label": "Insert", "matrix": [7, 7], "x": 17.75, "y": 1.5}, + {"label": "Home", "matrix": [7, 8], "x": 18.75, "y": 1.5}, + {"label": "PgUp", "matrix": [7, 9], "x": 19.75, "y": 1.5}, + + + {"label": "Tab", "matrix": [3, 4], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 5], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [2, 6], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 7], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [2, 8], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 9], "x": 5.5, "y": 2.5}, + + {"label": "Y", "matrix": [9, 0], "x": 9, "y": 2.5}, + {"label": "U", "matrix": [8, 0], "x": 10, "y": 2.5}, + {"label": "I", "matrix": [8, 1], "x": 11, "y": 2.5}, + {"label": "O", "matrix": [8, 2], "x": 12, "y": 2.5}, + {"label": "P", "matrix": [8, 3], "x": 13, "y": 2.5}, + {"label": "{", "matrix": [8, 4], "x": 14, "y": 2.5}, + {"label": "}", "matrix": [8, 5], "x": 15, "y": 2.5}, + {"label": "|", "matrix": [8, 6], "x": 16, "y": 2.5, "w": 1.5}, + {"label": "Delete", "matrix": [8, 7], "x": 17.75, "y": 2.5}, + {"label": "End", "matrix": [8, 8], "x": 18.75, "y": 2.5}, + {"label": "PgDn", "matrix": [8, 9], "x": 19.75, "y": 2.5}, + + + {"label": "Caps Lock", "matrix": [4, 4], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 5], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [3, 6], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 7], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [3, 8], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 9], "x": 5.75, "y": 3.5}, + + {"label": "H", "matrix": [10, 0], "x": 9.25, "y": 3.5}, + {"label": "J", "matrix": [9, 1], "x": 10.25, "y": 3.5}, + {"label": "K", "matrix": [9, 2], "x": 11.25, "y": 3.5}, + {"label": "L", "matrix": [9, 3], "x": 12.25, "y": 3.5}, + {"label": ":", "matrix": [9, 4], "x": 13.25, "y": 3.5}, + {"label": "\"", "matrix": [9, 5], "x": 14.25, "y": 3.5}, + {"label": "Enter", "matrix": [9, 6], "x": 15.25, "y": 3.5, "w": 2.25}, + + + {"label": "Left Shift", "matrix": [5, 4], "x": 0, "y": 4.5, "w": 2.25}, + {"label": "Z", "matrix": [4, 5], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 6], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [4, 7], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 8], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [4, 9], "x": 6.25, "y": 4.5}, + + {"label": "N", "matrix": [11, 0], "x": 9.75, "y": 4.5}, + {"label": "M", "matrix": [10, 1], "x": 10.75, "y": 4.5}, + {"label": "<", "matrix": [10, 2], "x": 11.75, "y": 4.5}, + {"label": ">", "matrix": [10, 3], "x": 12.75, "y": 4.5}, + {"label": "?", "matrix": [10, 4], "x": 13.75, "y": 4.5}, + {"label": "Right Shift", "matrix": [10, 6], "x": 14.75, "y": 4.5, "w": 2.75}, + {"label": "Up", "matrix": [10, 8], "x": 18.75, "y": 4.5}, + + {"label": "Left Ctrl", "matrix": [5, 5], "x": 0, "y": 5.5, "w": 1.25}, + {"label": "Fn", "matrix": [5, 6], "x": 1.25, "y": 5.5, "w": 1.25}, + {"label": "Left Alt", "matrix": [5, 7], "x": 2.5, "y": 5.5, "w": 1.25}, + {"label": "Left Win", "matrix": [5, 8], "x": 3.75, "y": 5.5, "w": 1.25}, + {"label": "Left Space", "matrix": [5, 9], "x": 5, "y": 5.5, "w": 2.25}, + + {"label": "Right Space", "matrix": [11, 1], "x": 9.75, "y": 5.5, "w": 2.75}, + {"label": "Right Alt", "matrix": [11, 3], "x": 12.5, "y": 5.5, "w": 1.25}, + {"label": "Right Win", "matrix": [11, 4], "x": 13.75, "y": 5.5, "w": 1.25}, + {"label": "Menu", "matrix": [11, 5], "x": 15, "y": 5.5, "w": 1.25}, + {"label": "Right Ctrl", "matrix": [11, 6], "x": 16.25, "y": 5.5, "w": 1.25}, + {"label": "Left", "matrix": [11, 7], "x": 17.75, "y": 5.5}, + {"label": "Down", "matrix": [11, 8], "x": 18.75, "y": 5.5}, + {"label": "Right", "matrix": [11, 9], "x": 19.75, "y": 5.5} + ] + } + }, + "rgb_matrix": { + "driver": "ws2812", + "split_count": [ 36, 53 ], + "default": { + "hue": 85, + "val": 128 + }, + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "flower_blooming": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_fractal": true, + "pixel_flow": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true, + "starlight": true, + "starlight_dual_hue": true, + "starlight_dual_sat": true, + "riverflow": true + }, + "layout": [ + {"matrix": [0, 4], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 104, "y": 0, "flags": 4}, + + {"matrix": [1, 4], "x": 16, "y": 13, "flags": 4}, + {"matrix": [1, 5], "x": 32, "y": 13, "flags": 4}, + {"matrix": [1, 6], "x": 48, "y": 13, "flags": 4}, + {"matrix": [1, 7], "x": 64, "y": 13, "flags": 4}, + {"matrix": [1, 8], "x": 80, "y": 13, "flags": 4}, + {"matrix": [1, 9], "x": 96, "y": 13, "flags": 4}, + {"matrix": [2, 4], "x": 0, "y": 13, "flags": 4}, + + {"matrix": [2, 5], "x": 20, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 36, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 52, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 68, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 84, "y": 26, "flags": 4}, + {"matrix": [3, 4], "x": 0, "y": 26, "flags": 4}, + + {"matrix": [3, 5], "x": 24, "y": 39, "flags": 4}, + {"matrix": [3, 6], "x": 40, "y": 39, "flags": 4}, + {"matrix": [3, 7], "x": 56, "y": 39, "flags": 4}, + {"matrix": [3, 8], "x": 72, "y": 39, "flags": 4}, + {"matrix": [3, 9], "x": 88, "y": 39, "flags": 4}, + {"matrix": [4, 4], "x": 0, "y": 39, "flags": 5}, + + {"matrix": [4, 5], "x": 28, "y": 51, "flags": 4}, + {"matrix": [4, 6], "x": 44, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 60, "y": 51, "flags": 4}, + {"matrix": [4, 8], "x": 76, "y": 51, "flags": 4}, + {"matrix": [4, 9], "x": 92, "y": 51, "flags": 4}, + {"matrix": [5, 4], "x": 0, "y": 51, "flags": 5}, + + {"matrix": [5, 5], "x": 0, "y": 64, "flags": 5}, + {"matrix": [5, 6], "x": 20, "y": 64, "flags": 5}, + {"matrix": [5, 7], "x": 40, "y": 64, "flags": 5}, + {"matrix": [5, 8], "x": 60, "y": 64, "flags": 5}, + {"matrix": [5, 9], "x": 92, "y": 64, "flags": 4}, + + {"matrix": [6, 0], "x": 120, "y": 0, "flags": 4}, + {"matrix": [6, 1], "x": 136, "y": 0, "flags": 4}, + {"matrix": [6, 2], "x": 152, "y": 0, "flags": 4}, + {"matrix": [6, 3], "x": 168, "y": 0, "flags": 4}, + {"matrix": [6, 4], "x": 184, "y": 0, "flags": 4}, + {"matrix": [6, 5], "x": 200, "y": 0, "flags": 4}, + {"matrix": [6, 6], "x": 208, "y": 0, "flags": 4}, + {"matrix": [6, 7], "x": 216, "y": 0, "flags": 4}, + {"matrix": [6, 8], "x": 220, "y": 0, "flags": 4}, + {"matrix": [6, 9], "x": 224, "y": 0, "flags": 4}, + + {"matrix": [7, 0], "x": 112, "y": 13, "flags": 4}, + {"matrix": [7, 1], "x": 128, "y": 13, "flags": 4}, + {"matrix": [7, 2], "x": 144, "y": 13, "flags": 4}, + {"matrix": [7, 3], "x": 160, "y": 13, "flags": 4}, + {"matrix": [7, 4], "x": 176, "y": 13, "flags": 4}, + {"matrix": [7, 5], "x": 192, "y": 13, "flags": 4}, + {"matrix": [7, 6], "x": 208, "y": 13, "flags": 4}, + {"matrix": [7, 7], "x": 216, "y": 13, "flags": 4}, + {"matrix": [7, 8], "x": 220, "y": 13, "flags": 4}, + {"matrix": [7, 9], "x": 224, "y": 13, "flags": 4}, + + {"matrix": [8, 0], "x": 116, "y": 26, "flags": 4}, + {"matrix": [8, 1], "x": 132, "y": 26, "flags": 4}, + {"matrix": [8, 2], "x": 148, "y": 26, "flags": 4}, + {"matrix": [8, 3], "x": 164, "y": 26, "flags": 4}, + {"matrix": [8, 4], "x": 180, "y": 26, "flags": 4}, + {"matrix": [8, 5], "x": 196, "y": 26, "flags": 4}, + {"matrix": [8, 6], "x": 208, "y": 26, "flags": 4}, + {"matrix": [8, 7], "x": 216, "y": 26, "flags": 4}, + {"matrix": [8, 8], "x": 220, "y": 26, "flags": 4}, + {"matrix": [8, 9], "x": 224, "y": 26, "flags": 4}, + {"matrix": [9, 0], "x": 100, "y": 26, "flags": 4}, + + {"matrix": [9, 1], "x": 120, "y": 39, "flags": 4}, + {"matrix": [9, 2], "x": 136, "y": 39, "flags": 4}, + {"matrix": [9, 3], "x": 152, "y": 39, "flags": 4}, + {"matrix": [9, 4], "x": 168, "y": 39, "flags": 4}, + {"matrix": [9, 5], "x": 184, "y": 39, "flags": 4}, + {"matrix": [9, 6], "x": 200, "y": 39, "flags": 4}, + {"matrix": [10, 0], "x": 104, "y": 39, "flags": 4}, + + {"matrix": [10, 1], "x": 124, "y": 51, "flags": 4}, + {"matrix": [10, 2], "x": 140, "y": 51, "flags": 4}, + {"matrix": [10, 3], "x": 156, "y": 51, "flags": 4}, + {"matrix": [10, 4], "x": 172, "y": 51, "flags": 4}, + {"matrix": [10, 6], "x": 188, "y": 51, "flags": 5}, + {"matrix": [10, 8], "x": 216, "y": 51, "flags": 4}, + {"matrix": [11, 0], "x": 108, "y": 51, "flags": 4}, + + {"matrix": [11, 1], "x": 118, "y": 64, "flags": 4}, + {"matrix": [11, 3], "x": 144, "y": 64, "flags": 5}, + {"matrix": [11, 4], "x": 164, "y": 64, "flags": 5}, + {"matrix": [11, 5], "x": 184, "y": 64, "flags": 5}, + {"matrix": [11, 6], "x": 204, "y": 64, "flags": 5}, + {"matrix": [11, 7], "x": 216, "y": 64, "flags": 4}, + {"matrix": [11, 8], "x": 220, "y": 64, "flags": 4}, + {"matrix": [11, 9], "x": 224, "y": 64, "flags": 4} + ] + } +} diff --git a/keyboards/shuguet/shu89/keymaps/default/keymap.json b/keyboards/shuguet/shu89/keymaps/default/keymap.json new file mode 100644 index 0000000000..1725f3438e --- /dev/null +++ b/keyboards/shuguet/shu89/keymaps/default/keymap.json @@ -0,0 +1,23 @@ +{ + "keyboard": "shuguet/shu89", + "keymap": "default", + "layout": "LAYOUT", + "layers": [ + [ + "KC_ESC" , "KC_F1" , "KC_F2" , "KC_F3" , "KC_F4" , "KC_F5" , "KC_F6" , "KC_F7" , "KC_F8" , "KC_F9" , "KC_F10" , "KC_F11" , "KC_F12" , "KC_PSCR", "KC_SCRL", "KC_PAUS", + "KC_GRV" , "KC_1" , "KC_2" , "KC_3" , "KC_4" , "KC_5" , "KC_6" , "KC_7" , "KC_8" , "KC_9" , "KC_0" , "KC_MINS", "KC_EQL" , "KC_BSPC", "KC_INS" , "KC_HOME", "KC_PGUP", + "KC_TAB" , "KC_Q" , "KC_W" , "KC_E" , "KC_R" , "KC_T" , "KC_Y" , "KC_U" , "KC_I" , "KC_O" , "KC_P" , "KC_LBRC", "KC_RBRC", "KC_BSLS", "KC_DEL" , "KC_END" , "KC_PGDN", + "KC_CAPS", "KC_A" , "KC_S" , "KC_D" , "KC_F" , "KC_G" , "KC_H" , "KC_J" , "KC_K" , "KC_L" , "KC_SCLN", "KC_QUOT", "KC_ENT" , + "KC_LSFT", "KC_Z" , "KC_X" , "KC_C" , "KC_V" , "KC_B" , "KC_N" , "KC_M" , "KC_COMM", "KC_DOT" , "KC_SLSH", "KC_RSFT", "KC_UP" , + "KC_LCTL", "MO(1)" , "KC_LALT", "KC_LGUI", "KC_SPACE" , "KC_SPACE" , "KC_RALT", "KC_RGUI", "KC_APP" , "KC_RCTL", "KC_LEFT", "KC_DOWN", "KC_RGHT" + ], + [ + "QK_BOOT", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "RGB_VAI", "RGB_VAD", "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_TOG" , "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_VOLU", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MPLY", "KC_MPLY", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MPRV", "KC_VOLD", "KC_MNXT" + ] + ] +} diff --git a/keyboards/shuguet/shu89/readme.md b/keyboards/shuguet/shu89/readme.md new file mode 100644 index 0000000000..ad1da4e5ab --- /dev/null +++ b/keyboards/shuguet/shu89/readme.md @@ -0,0 +1,20 @@ +# SHU98 + +An 89-key split TKL with PCBs, 3D printed cases, powered by a pair of RP2040. + +* Keyboard Maintainer: [shuguet](https://github.com/shuguet) +* Based on handwiewd original Keyboard from [jurassic73](https://github.com/jurassic73/split89) +* Hardware Supported: RP2040 + +Make example for this keyboard (after setting up your build environment): + + make shuguet/shu89:default + +Flashing example for this keyboard: + + make shuguet/shu89:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) +and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) +for more information. +Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). From cc3823f767a704cc465fbfdfef5d272aab018bd0 Mon Sep 17 00:00:00 2001 From: HorrorTroll Date: Sat, 4 Jan 2025 03:33:22 +0700 Subject: [PATCH 63/77] Update some changes for AT32F415 (#24766) * Fixed SPI can't compiled issue * Added solenoid support and use 256KB ldscript for Onekey board --- keyboards/handwired/onekey/at_start_f415/config.h | 4 ++++ keyboards/handwired/onekey/at_start_f415/rules.mk | 1 + platforms/chibios/drivers/spi_master.c | 4 ++-- 3 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 keyboards/handwired/onekey/at_start_f415/rules.mk diff --git a/keyboards/handwired/onekey/at_start_f415/config.h b/keyboards/handwired/onekey/at_start_f415/config.h index 266e45dd00..0e47e813c5 100644 --- a/keyboards/handwired/onekey/at_start_f415/config.h +++ b/keyboards/handwired/onekey/at_start_f415/config.h @@ -8,3 +8,7 @@ #define BACKLIGHT_PWM_DRIVER PWMD5 #define BACKLIGHT_PWM_CHANNEL 1 + +#define SOLENOID_PIN B12 +#define SOLENOID_PINS { B12, B13, B14, B15 } +#define SOLENOID_PINS_ACTIVE_STATE { high, high, low } diff --git a/keyboards/handwired/onekey/at_start_f415/rules.mk b/keyboards/handwired/onekey/at_start_f415/rules.mk new file mode 100644 index 0000000000..7f2fa62b32 --- /dev/null +++ b/keyboards/handwired/onekey/at_start_f415/rules.mk @@ -0,0 +1 @@ +MCU_LDSCRIPT = AT32F415xC diff --git a/platforms/chibios/drivers/spi_master.c b/platforms/chibios/drivers/spi_master.c index 6417b7077f..414e5b10a3 100644 --- a/platforms/chibios/drivers/spi_master.c +++ b/platforms/chibios/drivers/spi_master.c @@ -249,11 +249,11 @@ bool spi_start_extended(spi_start_config_t *start_config) { #elif defined(AT32F415) spiConfig.ctrl1 = 0; - if (lsbFirst) { + if (start_config->lsb_first) { spiConfig.ctrl1 |= SPI_CTRL1_LTF; } - switch (mode) { + switch (start_config->mode) { case 0: break; case 1: From 4da260a49aa3e6b698d826b2f435ec74a2c389a3 Mon Sep 17 00:00:00 2001 From: Leo Lou Date: Sat, 4 Jan 2025 08:23:42 +0800 Subject: [PATCH 64/77] [Keyboard] Add 3W6HS (#22539) Co-authored-by: Duncan Sutherland Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Joel Challis --- keyboards/beekeeb/3w6hs/config.h | 22 ++ keyboards/beekeeb/3w6hs/halconf.h | 22 ++ keyboards/beekeeb/3w6hs/info.json | 69 +++++ .../beekeeb/3w6hs/keymaps/default/keymap.c | 68 +++++ keyboards/beekeeb/3w6hs/matrix.c | 248 ++++++++++++++++++ keyboards/beekeeb/3w6hs/mcuconf.h | 24 ++ keyboards/beekeeb/3w6hs/readme.md | 26 ++ keyboards/beekeeb/3w6hs/rules.mk | 3 + 8 files changed, 482 insertions(+) create mode 100644 keyboards/beekeeb/3w6hs/config.h create mode 100644 keyboards/beekeeb/3w6hs/halconf.h create mode 100644 keyboards/beekeeb/3w6hs/info.json create mode 100644 keyboards/beekeeb/3w6hs/keymaps/default/keymap.c create mode 100644 keyboards/beekeeb/3w6hs/matrix.c create mode 100644 keyboards/beekeeb/3w6hs/mcuconf.h create mode 100644 keyboards/beekeeb/3w6hs/readme.md create mode 100644 keyboards/beekeeb/3w6hs/rules.mk diff --git a/keyboards/beekeeb/3w6hs/config.h b/keyboards/beekeeb/3w6hs/config.h new file mode 100644 index 0000000000..fb3b16960d --- /dev/null +++ b/keyboards/beekeeb/3w6hs/config.h @@ -0,0 +1,22 @@ +// Copyright 2023 beekeeb +// Copyright 2021 weteor +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 10 + +#define MATRIX_ROWS_PER_SIDE (MATRIX_ROWS / 2) +#define MATRIX_COLS_PER_SIDE (MATRIX_COLS / 2) + +#define MATRIX_ROW_PINS_L { GP7, GP8, GP9, GP10} +#define MATRIX_COL_PINS_L { GP11, GP12, GP13, GP14, GP15 } + +#define MATRIX_ROW_PINS_R { P10, P11, P12, P05 } +#define MATRIX_COL_PINS_R { P06, P13, P14, P01, P00 } + +#define I2C_DRIVER I2CD0 +#define I2C1_SDA_PIN GP0 +#define I2C1_SCL_PIN GP1 diff --git a/keyboards/beekeeb/3w6hs/halconf.h b/keyboards/beekeeb/3w6hs/halconf.h new file mode 100644 index 0000000000..9419229b61 --- /dev/null +++ b/keyboards/beekeeb/3w6hs/halconf.h @@ -0,0 +1,22 @@ +/* Copyright 2023 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next + diff --git a/keyboards/beekeeb/3w6hs/info.json b/keyboards/beekeeb/3w6hs/info.json new file mode 100644 index 0000000000..74f1f1f245 --- /dev/null +++ b/keyboards/beekeeb/3w6hs/info.json @@ -0,0 +1,69 @@ +{ + "manufacturer": "beekeeb", + "keyboard_name": "3w6hs", + "maintainer": "beekeeb", + "diode_direction": "COL2ROW", + "usb": { + "device_version": "1.0.0", + "pid": "0x0003", + "vid": "0xBEEB", + "no_startup_check": true + }, + "processor": "RP2040", + "bootloader": "rp2040", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true + }, + "community_layouts": ["split_3x5_3"], + "layouts": { + "LAYOUT_split_3x5_3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.8}, + {"matrix": [0, 1], "x": 1, "y": 0.2}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0.2}, + {"matrix": [0, 4], "x": 4, "y": 0.4}, + + {"matrix": [4, 0], "x": 8, "y": 0.4}, + {"matrix": [4, 1], "x": 9, "y": 0.2}, + {"matrix": [4, 2], "x": 10, "y": 0}, + {"matrix": [4, 3], "x": 11, "y": 0.2}, + {"matrix": [4, 4], "x": 12, "y": 0.8}, + + {"matrix": [1, 0], "x": 0, "y": 1.8}, + {"matrix": [1, 1], "x": 1, "y": 1.2}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1.2}, + {"matrix": [1, 4], "x": 4, "y": 1.4}, + + {"matrix": [5, 0], "x": 8, "y": 1.4}, + {"matrix": [5, 1], "x": 9, "y": 1.2}, + {"matrix": [5, 2], "x": 10, "y": 1}, + {"matrix": [5, 3], "x": 11, "y": 1.2}, + {"matrix": [5, 4], "x": 12, "y": 1.8}, + + {"matrix": [2, 0], "x": 0, "y": 2.8}, + {"matrix": [2, 1], "x": 1, "y": 2.2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2.2}, + {"matrix": [2, 4], "x": 4, "y": 2.4}, + + {"matrix": [6, 0], "x": 8, "y": 2.4}, + {"matrix": [6, 1], "x": 9, "y": 2.2}, + {"matrix": [6, 2], "x": 10, "y": 2}, + {"matrix": [6, 3], "x": 11, "y": 2.2}, + {"matrix": [6, 4], "x": 12, "y": 2.8}, + + {"matrix": [3, 2], "x": 3.2, "y": 3.6}, + {"matrix": [3, 3], "x": 4.2, "y": 3.6}, + {"matrix": [3, 4], "x": 5.2, "y": 3.8}, + + {"matrix": [7, 0], "x": 6.8, "y": 3.8}, + {"matrix": [7, 1], "x": 7.8, "y": 3.6}, + {"matrix": [7, 2], "x": 8.8, "y": 3.6} + ] + } + } +} diff --git a/keyboards/beekeeb/3w6hs/keymaps/default/keymap.c b/keyboards/beekeeb/3w6hs/keymaps/default/keymap.c new file mode 100644 index 0000000000..8a9a90175f --- /dev/null +++ b/keyboards/beekeeb/3w6hs/keymaps/default/keymap.c @@ -0,0 +1,68 @@ +/* Copyright 2021 weteor + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum layers { + _ALPHA_QWERTY, + _ALPHA_COLEMAK, + _SYM, + _NAV, + _NUM, + _CFG, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + + [_ALPHA_QWERTY] = LAYOUT_split_3x5_3( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + + LCTL_T(KC_ESC), LT(_NUM,KC_SPC), LT(_NAV, KC_TAB), LT(_SYM, KC_BSPC), KC_ENT, LALT_T(KC_DEL) + ), + [_ALPHA_COLEMAK] = LAYOUT_split_3x5_3( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SCLN), + LCTL_T(KC_ENT), LT(_NUM,KC_SPC), LT(_NAV, KC_TAB), LT(_SYM, KC_BSPC), KC_ENT, LALT_T(KC_DEL) + ), + [_SYM] = LAYOUT_split_3x5_3( + KC_GRV , KC_CIRC, KC_AT, KC_DLR, KC_TILD, KC_AMPR, KC_EXLM, KC_PIPE, KC_UNDS, KC_HASH, + KC_SLSH, KC_LBRC, KC_LCBR, KC_LPRN, KC_EQL, KC_ASTR, KC_RPRN, KC_RCBR, KC_RBRC, KC_BSLS, + _______, KC_QUES, KC_PLUS, KC_PERC, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, XXXXXXX, _______, + XXXXXXX, MO(_CFG), XXXXXXX, _______, XXXXXXX, XXXXXXX + ), + [_NAV] = LAYOUT_split_3x5_3( + XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, XXXXXXX, XXXXXXX, KC_PGDN, KC_UP, KC_PGUP, KC_DEL, + KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, XXXXXXX, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, _______, XXXXXXX, MO(_CFG), XXXXXXX + ), + [_NUM] = LAYOUT_split_3x5_3( + XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, KC_PPLS, KC_P7, KC_P8, KC_P9, KC_PSLS, + XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, KC_P0, KC_P4, KC_P5, KC_P6, KC_PDOT, + XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_PMNS, KC_P1, KC_P2, KC_P3, KC_PAST, + XXXXXXX, _______, XXXXXXX, KC_PEQL, KC_PENT, XXXXXXX + ), + [_CFG] = LAYOUT_split_3x5_3( + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,DF(_ALPHA_QWERTY), DF(_ALPHA_COLEMAK), + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX + ), +}; diff --git a/keyboards/beekeeb/3w6hs/matrix.c b/keyboards/beekeeb/3w6hs/matrix.c new file mode 100644 index 0000000000..8bddc62842 --- /dev/null +++ b/keyboards/beekeeb/3w6hs/matrix.c @@ -0,0 +1,248 @@ +/* +Copyright 2013 Oleg Kostyuk + 2020 Pierre Chevalier + 2021 weteor + 2023 beekeeb +*/ + +// SPDX-License-Identifier: GPL-2.0-or-later + +/* + * This code was heavily inspired by the ergodox_ez keymap, and modernized + * to take advantage of the quantum.h microcontroller agnostics gpio control + * abstractions and use the macros defined in config.h for the wiring as opposed + * to repeating that information all over the place. + */ + +#include "matrix.h" +#include "debug.h" +#include "wait.h" +#include "i2c_master.h" + +extern i2c_status_t tca9555_status; +//#define I2C_TIMEOUT 1000 + +// I2C address: +// All address pins of the tca9555 are connected to the ground +// | 0 | 1 | 0 | 0 | A2 | A1 | A0 | +// | 0 | 1 | 0 | 0 | 0 | 0 | 0 | +#define I2C_ADDR (0b0100000 << 1) + +// Register addresses +#define IODIRA 0x06 // i/o direction register +#define IODIRB 0x07 +#define IREGP0 0x00 // GPIO pull-up resistor register +#define IREGP1 0x01 +#define OREGP0 0x02 // general purpose i/o port register (write modifies OLAT) +#define OREGP1 0x03 + +bool i2c_initialized = 0; +i2c_status_t tca9555_status = I2C_ADDR; + +uint8_t init_tca9555(void) { + dprint("starting init\n"); + tca9555_status = I2C_ADDR; + + // I2C subsystem + if (i2c_initialized == 0) { + i2c_init(); // on pins D(1,0) + i2c_initialized = true; + wait_ms(I2C_TIMEOUT); + } + + // set pin direction + // - unused : input : 1 + // - input : input : 1 + // - driving : output : 0 + uint8_t conf[2] = { + // This means: read all pins of port 0 + 0b11111111, + // This means: we will write on pins 0 to 3 on port 1. read rest + 0b11110000, + }; + tca9555_status = i2c_write_register(I2C_ADDR, IODIRA, conf, 2, I2C_TIMEOUT); + + return tca9555_status; +} + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; // debounced values + +static matrix_row_t read_cols(uint8_t row); +static void init_cols(void); +static void unselect_rows(void); +static void select_row(uint8_t row); + +static uint8_t tca9555_reset_loop; + +void matrix_init_custom(void) { + // initialize row and col + + tca9555_status = init_tca9555(); + + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + } +} + +void matrix_power_up(void) { + tca9555_status = init_tca9555(); + + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + } +} + +// Reads and stores a row, returning +// whether a change occurred. +static inline bool store_matrix_row(matrix_row_t current_matrix[], uint8_t index) { + matrix_row_t temp = read_cols(index); + if (current_matrix[index] != temp) { + current_matrix[index] = temp; + return true; + } + return false; +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + if (tca9555_status) { // if there was an error + if (++tca9555_reset_loop == 0) { + // since tca9555_reset_loop is 8 bit - we'll try to reset once in 255 matrix scans + // this will be approx bit more frequent than once per second + dprint("trying to reset tca9555\n"); + tca9555_status = init_tca9555(); + if (tca9555_status) { + dprint("right side not responding\n"); + } else { + dprint("right side attached\n"); + } + } + } + + bool changed = false; + for (uint8_t i = 0; i < MATRIX_ROWS_PER_SIDE; i++) { + // select rows from left and right hands + uint8_t left_index = i; + uint8_t right_index = i + MATRIX_ROWS_PER_SIDE; + select_row(left_index); + select_row(right_index); + + // we don't need a 30us delay anymore, because selecting a + // left-hand row requires more than 30us for i2c. + + changed |= store_matrix_row(current_matrix, left_index); + changed |= store_matrix_row(current_matrix, right_index); + + unselect_rows(); + } + + return changed; +} + +static void init_cols(void) { + // init on tca9555 + // not needed, already done as part of init_tca9555() + + // init on mcu + pin_t matrix_col_pins_mcu[MATRIX_COLS_PER_SIDE] = MATRIX_COL_PINS_L; + for (int pin_index = 0; pin_index < MATRIX_COLS_PER_SIDE; pin_index++) { + pin_t pin = matrix_col_pins_mcu[pin_index]; + gpio_set_pin_input_high(pin); + gpio_write_pin_high(pin); + } +} + +static matrix_row_t read_cols(uint8_t row) { + if (row < MATRIX_ROWS_PER_SIDE) { + pin_t matrix_col_pins_mcu[MATRIX_COLS_PER_SIDE] = MATRIX_COL_PINS_L; + matrix_row_t current_row_value = 0; + // For each col... + for (uint8_t col_index = 0; col_index < MATRIX_COLS_PER_SIDE; col_index++) { + // Select the col pin to read (active low) + uint8_t pin_state = gpio_read_pin(matrix_col_pins_mcu[col_index]); + + // Populate the matrix row with the state of the col pin + current_row_value |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); + } + return current_row_value; + } else { + if (tca9555_status) { // if there was an error + return 0; + } else { + uint8_t data = 0; + uint8_t port0 = 0; + tca9555_status = i2c_read_register(I2C_ADDR, IREGP0, &port0, 1, I2C_TIMEOUT); + if (tca9555_status) { // if there was an error + // do nothing + return 0; + } else { + port0 = ~port0; + // We read all the pins on GPIOA. + // The initial state was all ones and any depressed key at a given column for the currently selected row will have its bit flipped to zero. + // The return value is a row as represented in the generic matrix code were the rightmost bits represent the lower columns and zeroes represent non-depressed keys while ones represent depressed keys. + // the pins connected to eact columns are sequential, but in reverse order, and counting from zero down (col 5 -> GPIO04, col6 -> GPIO03 and so on). + data |= (port0 & 0x01) << 4; + data |= (port0 & 0x02) << 2; + data |= (port0 & 0x04); + data |= (port0 & 0x08) >> 2; + data |= (port0 & 0x10) >> 4; + + tca9555_status = I2C_STATUS_SUCCESS; + return data; + } + } + } +} + +static void unselect_rows(void) { + // no need to unselect on tca9555, because the select step sets all + // the other row bits high, and it's not changing to a different + // direction + + // unselect rows on microcontroller + pin_t matrix_row_pins_mcu[MATRIX_ROWS_PER_SIDE] = MATRIX_ROW_PINS_L; + for (int pin_index = 0; pin_index < MATRIX_ROWS_PER_SIDE; pin_index++) { + pin_t pin = matrix_row_pins_mcu[pin_index]; + gpio_set_pin_input_high(pin); + gpio_write_pin_low(pin); + } +} + +static void select_row(uint8_t row) { + uint8_t port1 = 0xff; + + if (row < MATRIX_ROWS_PER_SIDE) { + // select on atmega32u4 + pin_t matrix_row_pins_mcu[MATRIX_ROWS_PER_SIDE] = MATRIX_ROW_PINS_L; + pin_t pin = matrix_row_pins_mcu[row]; + gpio_set_pin_output(pin); + gpio_write_pin_low(pin); + } else { + // select on tca9555 + if (tca9555_status) { // if there was an error + // do nothing + } else { + switch(row) { + case 4: port1 &= ~(1 << 0); break; + case 5: port1 &= ~(1 << 1); break; + case 6: port1 &= ~(1 << 2); break; + case 7: + port1 &= ~(1 << 3); + break; + default: break; + } + + tca9555_status = i2c_write_register(I2C_ADDR, OREGP1, &port1, 1, I2C_TIMEOUT); + // Select the desired row by writing a byte for the entire GPIOB bus where only the bit representing the row we want to select is a zero (write instruction) and every other bit is a one. + // Note that the row - MATRIX_ROWS_PER_SIDE reflects the fact that being on the right hand, the columns are numbered from MATRIX_ROWS_PER_SIDE to MATRIX_ROWS, but the pins we want to write to are indexed from zero up on the GPIOB bus. + } + } +} diff --git a/keyboards/beekeeb/3w6hs/mcuconf.h b/keyboards/beekeeb/3w6hs/mcuconf.h new file mode 100644 index 0000000000..dd927436df --- /dev/null +++ b/keyboards/beekeeb/3w6hs/mcuconf.h @@ -0,0 +1,24 @@ +/* Copyright 2023 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef RP_I2C_USE_I2C0 +#undef RP_I2C_USE_I2C1 +#define RP_I2C_USE_I2C0 TRUE +#define RP_I2C_USE_I2C1 FALSE diff --git a/keyboards/beekeeb/3w6hs/readme.md b/keyboards/beekeeb/3w6hs/readme.md new file mode 100644 index 0000000000..e0dde6eb0b --- /dev/null +++ b/keyboards/beekeeb/3w6hs/readme.md @@ -0,0 +1,26 @@ +# 3W6HS + +![3W6HS](https://i.imgur.com/CPxwGSt.jpeg) + +The 3W6HS is a hotswap, RP2040, low profile, split keyboard with 36 keys, modified from 3W6 by weteor. + +* Keyboard Maintainer: [beekeeb](https://github.com/beekeeb) +* Hardware Supported: RP2040 +* Hardware Availability: [https://shop.beekeeb.com/](https://shop.beekeeb.com) + +Make example for this keyboard (after setting up your build environment): + + make beekeeb/3w6hs:default + +Flashing example for this keyboard: + + make beekeeb/3w6hs:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +To enter the bootloader, follow these steps: +* Disconnect the keyboard from the computer. +* Locate the BOOT button, which is the top button on the left side of the keyboard. +* While holding down the BOOT button, connect the keyboard back to the computer. diff --git a/keyboards/beekeeb/3w6hs/rules.mk b/keyboards/beekeeb/3w6hs/rules.mk new file mode 100644 index 0000000000..cea39bb5c9 --- /dev/null +++ b/keyboards/beekeeb/3w6hs/rules.mk @@ -0,0 +1,3 @@ +CUSTOM_MATRIX = lite +SRC += matrix.c +I2C_DRIVER_REQUIRED = yes From 9dba024d76119b4185b971110805e76cdcc120f9 Mon Sep 17 00:00:00 2001 From: takashicompany Date: Sat, 4 Jan 2025 17:41:32 +0900 Subject: [PATCH 65/77] Add EE_HANDS for KLEC-02 (#24777) Add #define EE_HANDS --- keyboards/takashicompany/klec_02/config.h | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 keyboards/takashicompany/klec_02/config.h diff --git a/keyboards/takashicompany/klec_02/config.h b/keyboards/takashicompany/klec_02/config.h new file mode 100644 index 0000000000..8828e2ad72 --- /dev/null +++ b/keyboards/takashicompany/klec_02/config.h @@ -0,0 +1,6 @@ +// Copyright 2024 takashicompany (@takashicompany) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define EE_HANDS \ No newline at end of file From c9f94752430209516717522cfbbe59042b952e5f Mon Sep 17 00:00:00 2001 From: Tocho Tochev Date: Sat, 4 Jan 2025 11:08:26 +0000 Subject: [PATCH 66/77] Fix durgod k3x0 docs (#24774) --- keyboards/durgod/k310/readme.md | 2 +- keyboards/durgod/k320/readme.md | 6 +++--- keyboards/durgod/k3x0/readme.md | 12 ++++++------ 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/keyboards/durgod/k310/readme.md b/keyboards/durgod/k310/readme.md index 1f39f79513..7483dc5ddf 100644 --- a/keyboards/durgod/k310/readme.md +++ b/keyboards/durgod/k310/readme.md @@ -6,7 +6,7 @@ This is a standard off-the-shelf Durgod Taurus K310 full-sized 104/105-key keyboard without backlight. This supports both the ANSI and ISO variants. * Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert) -* Hardware Supported: [Durgod Taurus K310 board with STM32F070RBT6](https://www.durgod.com/page9?product_id=53&_l=en "Durgod.com Product Page") +* Hardware Supported: [Durgod Taurus K310 board with STM32F070RBT6](https://www.durgod.com/product/k310-space-gray/) * Hardware Availability: [Amazon.com](https://www.amazon.com/Durgod-Taurus-K310-Mechanical-Keyboard/dp/B07TXB4XF3) ## Instructions diff --git a/keyboards/durgod/k320/readme.md b/keyboards/durgod/k320/readme.md index ce5ae3211d..fd4752c184 100644 --- a/keyboards/durgod/k320/readme.md +++ b/keyboards/durgod/k320/readme.md @@ -6,7 +6,7 @@ This is a standard off-the-shelf Durgod Taurus K320 TKL (87/88-key) keyboard without backlight. This supports both the ANSI and ISO variants. * Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert) -* Hardware Supported: [Durgod Taurus K320 board with STM32F070RBT6](https://www.durgod.com/page9?product_id=47&_l=en "Durgod.com Product Page") +* Hardware Supported: [Durgod Taurus K320 board with STM32F070RBT6](https://www.durgod.com/product/k320-space-gray/) * Hardware Availability: [Amazon.com](https://www.amazon.com/Durgod-Taurus-Corona-Mechanical-Keyboard/dp/B078H3WPHM) ## Instructions @@ -15,11 +15,11 @@ keyboard without backlight. This supports both the ANSI and ISO variants. Make command example for this keyboard (after setting up your build environment): - make durgod/k3x0/k320/base:default + make durgod/k320/base:default Flashing example for this keyboard: - make durgod/k3x0/k320/base:default:flash + make durgod/k320/base:default:flash See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/durgod/k3x0/readme.md b/keyboards/durgod/k3x0/readme.md index 90e9602e71..e4fa680781 100644 --- a/keyboards/durgod/k3x0/readme.md +++ b/keyboards/durgod/k3x0/readme.md @@ -5,8 +5,8 @@ K310 full-sized 104/105-key and K320 TKL 87/88-key keyboards. * Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert) * Hardware Supported: - * [Durgod Taurus K310 with STM32F070RBT6](https://www.durgod.com/page9?product_id=53&_l=en "Taurus K310 Product Page | Durgod.com") - * [Durgod Taurus K320 with STM32F070RBT6](https://www.durgod.com/page9?product_id=47&_l=en "Taurus K320 Product Page | Durgod.com") + * [Durgod Taurus K310 with STM32F070RBT6](https://www.durgod.com/product/k310-space-gray/) + * [Durgod Taurus K320 with STM32F070RBT6](https://www.durgod.com/product/k320-space-gray/) * Hardware Availability: * [K310 on Amazon.com](https://www.amazon.com/Durgod-Taurus-K310-Mechanical-Keyboard/dp/B07TXB4XF3) * [K320 on Amazon.com](https://www.amazon.com/Durgod-Taurus-Corona-Mechanical-Keyboard/dp/B078H3WPHM) @@ -16,8 +16,8 @@ K310 full-sized 104/105-key and K320 TKL 87/88-key keyboards. ### Build Instructions for building the K310 and K320 firmware can be found here: -* [K310](k310/readme.md) -* [K320](k320/readme.md) +* [K310](../k310/readme.md) +* [K320](../k320/readme.md) ### Initial Flash @@ -67,10 +67,10 @@ dfu-util -a 0 -d 0483:DF11 -s 0x08000000 -U k3x0_original.bin ```bash # k310 -qmk flash -kb durgod/k3x0/k310 -km default +qmk flash -kb durgod/k310 -km default # k320 -qmk flash -kb durgod/k3x0/k320 -km default +qmk flash -kb durgod/k320 -km default ``` ### Subsequent Flashing From bcee1d2f2e17f85f75d67e32c809ae76bd3803ef Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Tue, 7 Jan 2025 08:48:28 +1100 Subject: [PATCH 67/77] Remove preprocessor sanity check for STM32L0/L1 now that it relies on types in C. (#24793) --- platforms/chibios/drivers/eeprom/eeprom_stm32_L0_L1.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/platforms/chibios/drivers/eeprom/eeprom_stm32_L0_L1.h b/platforms/chibios/drivers/eeprom/eeprom_stm32_L0_L1.h index c1d801f225..1e6b4e4e42 100644 --- a/platforms/chibios/drivers/eeprom/eeprom_stm32_L0_L1.h +++ b/platforms/chibios/drivers/eeprom/eeprom_stm32_L0_L1.h @@ -27,7 +27,3 @@ # define STM32_ONBOARD_EEPROM_SIZE (((EECONFIG_SIZE + 3) / 4) * 4) // based off eeconfig's current usage, aligned to 4-byte sizes, to deal with LTO and EEPROM page sizing # endif #endif - -#if STM32_ONBOARD_EEPROM_SIZE > 128 -# pragma message("Please note: resetting EEPROM using an STM32L0/L1 device takes up to 1 second for every 1kB of internal EEPROM used.") -#endif From 6facb7a079740f975c41c9ae8d95f0735097933e Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 8 Jan 2025 03:12:54 +0000 Subject: [PATCH 68/77] Convert stray legacy warn/info docs panels (#24799) --- docs/feature_macros.md | 4 +++- docs/feature_userspace.md | 5 +++-- docs/features/mouse_keys.md | 4 +++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/docs/feature_macros.md b/docs/feature_macros.md index b4e37a1ba9..404eb4b38d 100644 --- a/docs/feature_macros.md +++ b/docs/feature_macros.md @@ -117,7 +117,9 @@ If yes, we send the string `"QMK is the best thing ever!"` to the computer via t We return `true` to indicate to the caller that the key press we just processed should continue to be processed as normal (as we didn't replace or alter the functionality). Finally, we define the keymap so that the first button activates our macro and the second button is just an escape button. -?>It is recommended to use the SAFE_RANGE macro as per [Customizing Functionality](custom_quantum_functions). +::: tip +It is recommended to use the SAFE_RANGE macro as per [Customizing Functionality](custom_quantum_functions). +::: You might want to add more than one macro. You can do that by adding another keycode and adding another case to the switch statement, like so: diff --git a/docs/feature_userspace.md b/docs/feature_userspace.md index 1e7c3b37cd..d19b86cb46 100644 --- a/docs/feature_userspace.md +++ b/docs/feature_userspace.md @@ -74,8 +74,9 @@ Additionally, `config.h` here will be processed like the same file in your keyma The reason for this, is that `.h` won't be added in time to add settings (such as `#define TAPPING_TERM 100`), and including the `` file in any `config.h` files will result in compile issues. -!>You should use the `config.h` for [configuration options](config_options), and the `.h` file for user or keymap specific settings (such as the enum for layer or keycodes) - +::: warning +You should use the `config.h` for [configuration options](config_options), and the `.h` file for user or keymap specific settings (such as the enum for layer or keycodes) +::: ## Readme (`readme.md`) diff --git a/docs/features/mouse_keys.md b/docs/features/mouse_keys.md index d755084f8e..86b50fa9c8 100644 --- a/docs/features/mouse_keys.md +++ b/docs/features/mouse_keys.md @@ -214,7 +214,9 @@ When additional overlapping mouse key is pressed, the mouse cursor will continue |`MOUSEKEY_OVERLAP_WHEEL_DELTA`|`MOUSEKEY_WHEEL_DELTA`|Step size of reset mouse wheel acceleration | |`MOUSEKEY_OVERLAP_INTERVAL` |`MOUSEKEY_INTERVAL` |Reset time between cursor movements in milliseconds (Kinetic mode only)| -?> This feature will not be applied on Inertial mode +::: tip +This feature will not be applied on Inertial mode +::: ## Use with PS/2 Mouse and Pointing Device From 95c74b6276c95fab5e04e22b1f1cd30aedead6fa Mon Sep 17 00:00:00 2001 From: jack Date: Wed, 8 Jan 2025 04:13:04 +0100 Subject: [PATCH 69/77] [Docs] Fix wording in Mod Tap documentation (#24796) --- docs/mod_tap.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/mod_tap.md b/docs/mod_tap.md index 37c2ba3473..da2ecc9a85 100644 --- a/docs/mod_tap.md +++ b/docs/mod_tap.md @@ -2,7 +2,7 @@ The Mod-Tap key `MT(mod, kc)` acts like a modifier when held, and a regular keycode when tapped. In other words, you can have a key that sends Escape when you tap it, but functions as a Control or Shift key when you hold it down. -The modifiers this keycode and `OSM()` accept are prefixed with `MOD_`, not `KC_`: +The modifiers (`mod`) argument to the `MT()` macro are prefixed with `MOD_`, not `KC_`: |Modifier |Description | |----------|----------------------------------------| From 80c90a6952f412defa6b3709a59507b2c76f3863 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Wed, 8 Jan 2025 08:50:54 -0800 Subject: [PATCH 70/77] [Bug] Fix Underglow keycode processing (#24798) Co-authored-by: Ryan --- quantum/process_keycode/process_underglow.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/quantum/process_keycode/process_underglow.c b/quantum/process_keycode/process_underglow.c index 6104cd02c6..b8d8989ef3 100644 --- a/quantum/process_keycode/process_underglow.c +++ b/quantum/process_keycode/process_underglow.c @@ -16,7 +16,10 @@ bool process_underglow(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { - uint8_t shifted = get_mods() & MOD_MASK_SHIFT; +#if defined(RGBLIGHT_ENABLE) || (defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_SHARED_KEYCODES)) + const uint8_t shifted = get_mods() & MOD_MASK_SHIFT; +#endif + switch (keycode) { case QK_UNDERGLOW_TOGGLE: #if defined(RGBLIGHT_ENABLE) From d90b6e4689ab7d74585774621adccc6faf021d38 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 11 Jan 2025 02:04:17 +1100 Subject: [PATCH 71/77] Fix a build warning and tidy up a keymap (#24805) --- .../3w6hs/{info.json => keyboard.json} | 0 .../keyprez/bison/keymaps/default/keymap.c | 32 ++----------------- 2 files changed, 3 insertions(+), 29 deletions(-) rename keyboards/beekeeb/3w6hs/{info.json => keyboard.json} (100%) diff --git a/keyboards/beekeeb/3w6hs/info.json b/keyboards/beekeeb/3w6hs/keyboard.json similarity index 100% rename from keyboards/beekeeb/3w6hs/info.json rename to keyboards/beekeeb/3w6hs/keyboard.json diff --git a/keyboards/keyprez/bison/keymaps/default/keymap.c b/keyboards/keyprez/bison/keymaps/default/keymap.c index d66b1a487b..17c5f2ecd7 100644 --- a/keyboards/keyprez/bison/keymaps/default/keymap.c +++ b/keyboards/keyprez/bison/keymaps/default/keymap.c @@ -25,11 +25,6 @@ enum layer_names { _FN, }; -enum custom_keycodes { - KC_PRVWD = SAFE_RANGE, - KC_NXTWD -}; - #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) #define FN MO(_FN) @@ -47,6 +42,9 @@ enum custom_keycodes { #define KC_COLMK PDF(_COLEMAK) #define KC_HRM PDF(_HRM) +#define KC_PRVWD LCTL(KC_LEFT) +#define KC_NXTWD LCTL(KC_RGHT) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* * QWERTY @@ -186,27 +184,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______,_______, _______, _______, _______, _______, _______, _______ ), }; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case KC_PRVWD: - if (record->event.pressed) { - register_mods(mod_config(MOD_LCTL)); - register_code(KC_LEFT); - } else { - unregister_mods(mod_config(MOD_LCTL)); - unregister_code(KC_LEFT); - } - break; - case KC_NXTWD: - if (record->event.pressed) { - register_mods(mod_config(MOD_LCTL)); - register_code(KC_RIGHT); - } else { - unregister_mods(mod_config(MOD_LCTL)); - unregister_code(KC_RIGHT); - } - break; - } - return true; -} From 35c652056073af84577d5a1cb6729ea262f2075e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 10 Jan 2025 20:59:33 +0000 Subject: [PATCH 72/77] Bump nanoid from 3.3.7 to 3.3.8 in /builddefs/docsgen (#24713) Bumps [nanoid](https://github.com/ai/nanoid) from 3.3.7 to 3.3.8. - [Release notes](https://github.com/ai/nanoid/releases) - [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md) - [Commits](https://github.com/ai/nanoid/compare/3.3.7...3.3.8) --- updated-dependencies: - dependency-name: nanoid dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- builddefs/docsgen/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/builddefs/docsgen/yarn.lock b/builddefs/docsgen/yarn.lock index 3b5f68035f..057e89d073 100644 --- a/builddefs/docsgen/yarn.lock +++ b/builddefs/docsgen/yarn.lock @@ -663,9 +663,9 @@ mitt@^3.0.1: integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw== nanoid@^3.3.7: - version "3.3.7" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" - integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + version "3.3.8" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf" + integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w== perfect-debounce@^1.0.0: version "1.0.0" From 26f898c8a538b808cf506f558a9454f7f50e3ba6 Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 13 Jan 2025 11:39:40 +1100 Subject: [PATCH 73/77] `salane/ncr80alpsskfl`: add additional layouts (#24809) --- keyboards/salane/ncr80alpsskfl/keyboard.json | 311 +++++++++++++++++- .../salane/ncr80alpsskfl/matrix_diagram.md | 25 ++ 2 files changed, 335 insertions(+), 1 deletion(-) create mode 100644 keyboards/salane/ncr80alpsskfl/matrix_diagram.md diff --git a/keyboards/salane/ncr80alpsskfl/keyboard.json b/keyboards/salane/ncr80alpsskfl/keyboard.json index 512593d351..ce3f10c685 100644 --- a/keyboards/salane/ncr80alpsskfl/keyboard.json +++ b/keyboards/salane/ncr80alpsskfl/keyboard.json @@ -25,18 +25,323 @@ "caps_lock": "GP1", "scroll_lock": "GP2" }, + "layout_aliases": { + "LAYOUT_all": "LAYOUT_ansi_tsangan_split_bs_rshift" + }, "layouts": { - "LAYOUT_all": { + "LAYOUT_ansi_tsangan": { "layout": [ {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "K01", "matrix": [0, 1], "x": 2, "y": 0}, {"label": "K02", "matrix": [0, 2], "x": 3, "y": 0}, {"label": "K03", "matrix": [0, 3], "x": 4, "y": 0}, {"label": "K04", "matrix": [0, 4], "x": 5, "y": 0}, + {"label": "K05", "matrix": [0, 5], "x": 6.5, "y": 0}, {"label": "K06", "matrix": [0, 6], "x": 7.5, "y": 0}, {"label": "K07", "matrix": [0, 7], "x": 8.5, "y": 0}, {"label": "K08", "matrix": [0, 8], "x": 9.5, "y": 0}, + + {"label": "K09", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "K0A", "matrix": [0, 10], "x": 12, "y": 0}, + {"label": "K0B", "matrix": [0, 11], "x": 13, "y": 0}, + {"label": "K0C", "matrix": [0, 12], "x": 14, "y": 0}, + + {"label": "K10", "matrix": [1, 0], "x": 0, "y": 2}, + {"label": "K11", "matrix": [1, 1], "x": 1, "y": 2}, + {"label": "K12", "matrix": [1, 2], "x": 2, "y": 2}, + {"label": "K13", "matrix": [1, 3], "x": 3, "y": 2}, + {"label": "K14", "matrix": [1, 4], "x": 4, "y": 2}, + {"label": "K15", "matrix": [1, 5], "x": 5, "y": 2}, + {"label": "K16", "matrix": [1, 6], "x": 6, "y": 2}, + {"label": "K17", "matrix": [1, 7], "x": 7, "y": 2}, + {"label": "K18", "matrix": [1, 8], "x": 8, "y": 2}, + {"label": "K19", "matrix": [1, 9], "x": 9, "y": 2}, + {"label": "K1A", "matrix": [1, 10], "x": 10, "y": 2}, + {"label": "K1B", "matrix": [1, 11], "x": 11, "y": 2}, + {"label": "K1C", "matrix": [1, 12], "x": 12, "y": 2}, + {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 2, "w": 2}, + + {"label": "K1E", "matrix": [1, 14], "x": 15.25, "y": 2}, + {"label": "K1F", "matrix": [1, 15], "x": 16.25, "y": 2}, + {"label": "K1G", "matrix": [1, 16], "x": 17.25, "y": 2}, + + {"label": "K20", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.5}, + {"label": "K21", "matrix": [2, 1], "x": 1.5, "y": 3}, + {"label": "K22", "matrix": [2, 2], "x": 2.5, "y": 3}, + {"label": "K23", "matrix": [2, 3], "x": 3.5, "y": 3}, + {"label": "K24", "matrix": [2, 4], "x": 4.5, "y": 3}, + {"label": "K25", "matrix": [2, 5], "x": 5.5, "y": 3}, + {"label": "K26", "matrix": [2, 6], "x": 6.5, "y": 3}, + {"label": "K27", "matrix": [2, 7], "x": 7.5, "y": 3}, + {"label": "K28", "matrix": [2, 8], "x": 8.5, "y": 3}, + {"label": "K29", "matrix": [2, 9], "x": 9.5, "y": 3}, + {"label": "K2A", "matrix": [2, 10], "x": 10.5, "y": 3}, + {"label": "K2B", "matrix": [2, 11], "x": 11.5, "y": 3}, + {"label": "K2C", "matrix": [2, 12], "x": 12.5, "y": 3}, + {"label": "K2D", "matrix": [2, 13], "x": 13.5, "y": 3, "w": 1.5}, + + {"label": "K2E", "matrix": [2, 14], "x": 15.25, "y": 3}, + {"label": "K2F", "matrix": [2, 15], "x": 16.25, "y": 3}, + {"label": "K2G", "matrix": [2, 16], "x": 17.25, "y": 3}, + + {"label": "K30", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.75}, + {"label": "K31", "matrix": [3, 1], "x": 1.75, "y": 4}, + {"label": "K32", "matrix": [3, 2], "x": 2.75, "y": 4}, + {"label": "K33", "matrix": [3, 3], "x": 3.75, "y": 4}, + {"label": "K34", "matrix": [3, 4], "x": 4.75, "y": 4}, + {"label": "K35", "matrix": [3, 5], "x": 5.75, "y": 4}, + {"label": "K36", "matrix": [3, 6], "x": 6.75, "y": 4}, + {"label": "K37", "matrix": [3, 7], "x": 7.75, "y": 4}, + {"label": "K38", "matrix": [3, 8], "x": 8.75, "y": 4}, + {"label": "K39", "matrix": [3, 9], "x": 9.75, "y": 4}, + {"label": "K3A", "matrix": [3, 10], "x": 10.75, "y": 4}, + {"label": "K3B", "matrix": [3, 11], "x": 11.75, "y": 4}, + {"label": "K3D", "matrix": [3, 13], "x": 12.75, "y": 4, "w": 2.25}, + + {"label": "K40", "matrix": [4, 0], "x": 0, "y": 5, "w": 2.25}, + {"label": "K42", "matrix": [4, 2], "x": 2.25, "y": 5}, + {"label": "K43", "matrix": [4, 3], "x": 3.25, "y": 5}, + {"label": "K44", "matrix": [4, 4], "x": 4.25, "y": 5}, + {"label": "K45", "matrix": [4, 5], "x": 5.25, "y": 5}, + {"label": "K46", "matrix": [4, 6], "x": 6.25, "y": 5}, + {"label": "K47", "matrix": [4, 7], "x": 7.25, "y": 5}, + {"label": "K48", "matrix": [4, 8], "x": 8.25, "y": 5}, + {"label": "K49", "matrix": [4, 9], "x": 9.25, "y": 5}, + {"label": "K4A", "matrix": [4, 10], "x": 10.25, "y": 5}, + {"label": "K4B", "matrix": [4, 11], "x": 11.25, "y": 5}, + {"label": "K4C", "matrix": [4, 12], "x": 12.25, "y": 5, "w": 2.75}, + + {"label": "K4F", "matrix": [4, 15], "x": 16.25, "y": 5}, + + {"label": "K50", "matrix": [5, 0], "x": 0, "y": 6, "w": 1.5}, + {"label": "K51", "matrix": [5, 1], "x": 1.5, "y": 6}, + {"label": "K52", "matrix": [5, 2], "x": 2.5, "y": 6, "w": 1.5}, + {"label": "K57", "matrix": [5, 7], "x": 4, "y": 6, "w": 7}, + {"label": "K5B", "matrix": [5, 11], "x": 11, "y": 6, "w": 1.5}, + {"label": "K5C", "matrix": [5, 12], "x": 12.5, "y": 6}, + {"label": "K5D", "matrix": [5, 13], "x": 13.5, "y": 6, "w": 1.5}, + + {"label": "K5E", "matrix": [5, 14], "x": 15.25, "y": 6}, + {"label": "K5F", "matrix": [5, 15], "x": 16.25, "y": 6}, + {"label": "K5G", "matrix": [5, 16], "x": 17.25, "y": 6} + ] + }, + "LAYOUT_ansi_tsangan_split_rshift": { + "layout": [ + {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "K01", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "K02", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "K03", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "K04", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "K05", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "K06", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "K07", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "K08", "matrix": [0, 8], "x": 9.5, "y": 0}, + + {"label": "K09", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "K0A", "matrix": [0, 10], "x": 12, "y": 0}, + {"label": "K0B", "matrix": [0, 11], "x": 13, "y": 0}, + {"label": "K0C", "matrix": [0, 12], "x": 14, "y": 0}, + + {"label": "K10", "matrix": [1, 0], "x": 0, "y": 2}, + {"label": "K11", "matrix": [1, 1], "x": 1, "y": 2}, + {"label": "K12", "matrix": [1, 2], "x": 2, "y": 2}, + {"label": "K13", "matrix": [1, 3], "x": 3, "y": 2}, + {"label": "K14", "matrix": [1, 4], "x": 4, "y": 2}, + {"label": "K15", "matrix": [1, 5], "x": 5, "y": 2}, + {"label": "K16", "matrix": [1, 6], "x": 6, "y": 2}, + {"label": "K17", "matrix": [1, 7], "x": 7, "y": 2}, + {"label": "K18", "matrix": [1, 8], "x": 8, "y": 2}, + {"label": "K19", "matrix": [1, 9], "x": 9, "y": 2}, + {"label": "K1A", "matrix": [1, 10], "x": 10, "y": 2}, + {"label": "K1B", "matrix": [1, 11], "x": 11, "y": 2}, + {"label": "K1C", "matrix": [1, 12], "x": 12, "y": 2}, + {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 2, "w": 2}, + + {"label": "K1E", "matrix": [1, 14], "x": 15.25, "y": 2}, + {"label": "K1F", "matrix": [1, 15], "x": 16.25, "y": 2}, + {"label": "K1G", "matrix": [1, 16], "x": 17.25, "y": 2}, + + {"label": "K20", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.5}, + {"label": "K21", "matrix": [2, 1], "x": 1.5, "y": 3}, + {"label": "K22", "matrix": [2, 2], "x": 2.5, "y": 3}, + {"label": "K23", "matrix": [2, 3], "x": 3.5, "y": 3}, + {"label": "K24", "matrix": [2, 4], "x": 4.5, "y": 3}, + {"label": "K25", "matrix": [2, 5], "x": 5.5, "y": 3}, + {"label": "K26", "matrix": [2, 6], "x": 6.5, "y": 3}, + {"label": "K27", "matrix": [2, 7], "x": 7.5, "y": 3}, + {"label": "K28", "matrix": [2, 8], "x": 8.5, "y": 3}, + {"label": "K29", "matrix": [2, 9], "x": 9.5, "y": 3}, + {"label": "K2A", "matrix": [2, 10], "x": 10.5, "y": 3}, + {"label": "K2B", "matrix": [2, 11], "x": 11.5, "y": 3}, + {"label": "K2C", "matrix": [2, 12], "x": 12.5, "y": 3}, + {"label": "K2D", "matrix": [2, 13], "x": 13.5, "y": 3, "w": 1.5}, + + {"label": "K2E", "matrix": [2, 14], "x": 15.25, "y": 3}, + {"label": "K2F", "matrix": [2, 15], "x": 16.25, "y": 3}, + {"label": "K2G", "matrix": [2, 16], "x": 17.25, "y": 3}, + + {"label": "K30", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.75}, + {"label": "K31", "matrix": [3, 1], "x": 1.75, "y": 4}, + {"label": "K32", "matrix": [3, 2], "x": 2.75, "y": 4}, + {"label": "K33", "matrix": [3, 3], "x": 3.75, "y": 4}, + {"label": "K34", "matrix": [3, 4], "x": 4.75, "y": 4}, + {"label": "K35", "matrix": [3, 5], "x": 5.75, "y": 4}, + {"label": "K36", "matrix": [3, 6], "x": 6.75, "y": 4}, + {"label": "K37", "matrix": [3, 7], "x": 7.75, "y": 4}, + {"label": "K38", "matrix": [3, 8], "x": 8.75, "y": 4}, + {"label": "K39", "matrix": [3, 9], "x": 9.75, "y": 4}, + {"label": "K3A", "matrix": [3, 10], "x": 10.75, "y": 4}, + {"label": "K3B", "matrix": [3, 11], "x": 11.75, "y": 4}, + {"label": "K3D", "matrix": [3, 13], "x": 12.75, "y": 4, "w": 2.25}, + + {"label": "K40", "matrix": [4, 0], "x": 0, "y": 5, "w": 2.25}, + {"label": "K42", "matrix": [4, 2], "x": 2.25, "y": 5}, + {"label": "K43", "matrix": [4, 3], "x": 3.25, "y": 5}, + {"label": "K44", "matrix": [4, 4], "x": 4.25, "y": 5}, + {"label": "K45", "matrix": [4, 5], "x": 5.25, "y": 5}, + {"label": "K46", "matrix": [4, 6], "x": 6.25, "y": 5}, + {"label": "K47", "matrix": [4, 7], "x": 7.25, "y": 5}, + {"label": "K48", "matrix": [4, 8], "x": 8.25, "y": 5}, + {"label": "K49", "matrix": [4, 9], "x": 9.25, "y": 5}, + {"label": "K4A", "matrix": [4, 10], "x": 10.25, "y": 5}, + {"label": "K4B", "matrix": [4, 11], "x": 11.25, "y": 5}, + {"label": "K4C", "matrix": [4, 12], "x": 12.25, "y": 5, "w": 1.75}, + {"label": "K4D", "matrix": [4, 13], "x": 14, "y": 5}, + + {"label": "K4F", "matrix": [4, 15], "x": 16.25, "y": 5}, + + {"label": "K50", "matrix": [5, 0], "x": 0, "y": 6, "w": 1.5}, + {"label": "K51", "matrix": [5, 1], "x": 1.5, "y": 6}, + {"label": "K52", "matrix": [5, 2], "x": 2.5, "y": 6, "w": 1.5}, + {"label": "K57", "matrix": [5, 7], "x": 4, "y": 6, "w": 7}, + {"label": "K5B", "matrix": [5, 11], "x": 11, "y": 6, "w": 1.5}, + {"label": "K5C", "matrix": [5, 12], "x": 12.5, "y": 6}, + {"label": "K5D", "matrix": [5, 13], "x": 13.5, "y": 6, "w": 1.5}, + + {"label": "K5E", "matrix": [5, 14], "x": 15.25, "y": 6}, + {"label": "K5F", "matrix": [5, 15], "x": 16.25, "y": 6}, + {"label": "K5G", "matrix": [5, 16], "x": 17.25, "y": 6} + ] + }, + "LAYOUT_ansi_tsangan_split_bs": { + "layout": [ + {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "K01", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "K02", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "K03", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "K04", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "K05", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "K06", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "K07", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "K08", "matrix": [0, 8], "x": 9.5, "y": 0}, + + {"label": "K09", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "K0A", "matrix": [0, 10], "x": 12, "y": 0}, + {"label": "K0B", "matrix": [0, 11], "x": 13, "y": 0}, + {"label": "K0C", "matrix": [0, 12], "x": 14, "y": 0}, + + {"label": "K10", "matrix": [1, 0], "x": 0, "y": 2}, + {"label": "K11", "matrix": [1, 1], "x": 1, "y": 2}, + {"label": "K12", "matrix": [1, 2], "x": 2, "y": 2}, + {"label": "K13", "matrix": [1, 3], "x": 3, "y": 2}, + {"label": "K14", "matrix": [1, 4], "x": 4, "y": 2}, + {"label": "K15", "matrix": [1, 5], "x": 5, "y": 2}, + {"label": "K16", "matrix": [1, 6], "x": 6, "y": 2}, + {"label": "K17", "matrix": [1, 7], "x": 7, "y": 2}, + {"label": "K18", "matrix": [1, 8], "x": 8, "y": 2}, + {"label": "K19", "matrix": [1, 9], "x": 9, "y": 2}, + {"label": "K1A", "matrix": [1, 10], "x": 10, "y": 2}, + {"label": "K1B", "matrix": [1, 11], "x": 11, "y": 2}, + {"label": "K1C", "matrix": [1, 12], "x": 12, "y": 2}, + {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 2}, + {"label": "K1D", "matrix": [1, 13], "x": 14, "y": 2}, + + {"label": "K1E", "matrix": [1, 14], "x": 15.25, "y": 2}, + {"label": "K1F", "matrix": [1, 15], "x": 16.25, "y": 2}, + {"label": "K1G", "matrix": [1, 16], "x": 17.25, "y": 2}, + + {"label": "K20", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.5}, + {"label": "K21", "matrix": [2, 1], "x": 1.5, "y": 3}, + {"label": "K22", "matrix": [2, 2], "x": 2.5, "y": 3}, + {"label": "K23", "matrix": [2, 3], "x": 3.5, "y": 3}, + {"label": "K24", "matrix": [2, 4], "x": 4.5, "y": 3}, + {"label": "K25", "matrix": [2, 5], "x": 5.5, "y": 3}, + {"label": "K26", "matrix": [2, 6], "x": 6.5, "y": 3}, + {"label": "K27", "matrix": [2, 7], "x": 7.5, "y": 3}, + {"label": "K28", "matrix": [2, 8], "x": 8.5, "y": 3}, + {"label": "K29", "matrix": [2, 9], "x": 9.5, "y": 3}, + {"label": "K2A", "matrix": [2, 10], "x": 10.5, "y": 3}, + {"label": "K2B", "matrix": [2, 11], "x": 11.5, "y": 3}, + {"label": "K2C", "matrix": [2, 12], "x": 12.5, "y": 3}, + {"label": "K2D", "matrix": [2, 13], "x": 13.5, "y": 3, "w": 1.5}, + + {"label": "K2E", "matrix": [2, 14], "x": 15.25, "y": 3}, + {"label": "K2F", "matrix": [2, 15], "x": 16.25, "y": 3}, + {"label": "K2G", "matrix": [2, 16], "x": 17.25, "y": 3}, + + {"label": "K30", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.75}, + {"label": "K31", "matrix": [3, 1], "x": 1.75, "y": 4}, + {"label": "K32", "matrix": [3, 2], "x": 2.75, "y": 4}, + {"label": "K33", "matrix": [3, 3], "x": 3.75, "y": 4}, + {"label": "K34", "matrix": [3, 4], "x": 4.75, "y": 4}, + {"label": "K35", "matrix": [3, 5], "x": 5.75, "y": 4}, + {"label": "K36", "matrix": [3, 6], "x": 6.75, "y": 4}, + {"label": "K37", "matrix": [3, 7], "x": 7.75, "y": 4}, + {"label": "K38", "matrix": [3, 8], "x": 8.75, "y": 4}, + {"label": "K39", "matrix": [3, 9], "x": 9.75, "y": 4}, + {"label": "K3A", "matrix": [3, 10], "x": 10.75, "y": 4}, + {"label": "K3B", "matrix": [3, 11], "x": 11.75, "y": 4}, + {"label": "K3D", "matrix": [3, 13], "x": 12.75, "y": 4, "w": 2.25}, + + {"label": "K40", "matrix": [4, 0], "x": 0, "y": 5, "w": 2.25}, + {"label": "K42", "matrix": [4, 2], "x": 2.25, "y": 5}, + {"label": "K43", "matrix": [4, 3], "x": 3.25, "y": 5}, + {"label": "K44", "matrix": [4, 4], "x": 4.25, "y": 5}, + {"label": "K45", "matrix": [4, 5], "x": 5.25, "y": 5}, + {"label": "K46", "matrix": [4, 6], "x": 6.25, "y": 5}, + {"label": "K47", "matrix": [4, 7], "x": 7.25, "y": 5}, + {"label": "K48", "matrix": [4, 8], "x": 8.25, "y": 5}, + {"label": "K49", "matrix": [4, 9], "x": 9.25, "y": 5}, + {"label": "K4A", "matrix": [4, 10], "x": 10.25, "y": 5}, + {"label": "K4B", "matrix": [4, 11], "x": 11.25, "y": 5}, + {"label": "K4C", "matrix": [4, 12], "x": 12.25, "y": 5, "w": 2.75}, + + {"label": "K4F", "matrix": [4, 15], "x": 16.25, "y": 5}, + + {"label": "K50", "matrix": [5, 0], "x": 0, "y": 6, "w": 1.5}, + {"label": "K51", "matrix": [5, 1], "x": 1.5, "y": 6}, + {"label": "K52", "matrix": [5, 2], "x": 2.5, "y": 6, "w": 1.5}, + {"label": "K57", "matrix": [5, 7], "x": 4, "y": 6, "w": 7}, + {"label": "K5B", "matrix": [5, 11], "x": 11, "y": 6, "w": 1.5}, + {"label": "K5C", "matrix": [5, 12], "x": 12.5, "y": 6}, + {"label": "K5D", "matrix": [5, 13], "x": 13.5, "y": 6, "w": 1.5}, + + {"label": "K5E", "matrix": [5, 14], "x": 15.25, "y": 6}, + {"label": "K5F", "matrix": [5, 15], "x": 16.25, "y": 6}, + {"label": "K5G", "matrix": [5, 16], "x": 17.25, "y": 6} + ] + }, + "LAYOUT_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "K01", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "K02", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "K03", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "K04", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "K05", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "K06", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "K07", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "K08", "matrix": [0, 8], "x": 9.5, "y": 0}, + {"label": "K09", "matrix": [0, 9], "x": 11, "y": 0}, {"label": "K0A", "matrix": [0, 10], "x": 12, "y": 0}, {"label": "K0B", "matrix": [0, 11], "x": 13, "y": 0}, @@ -57,6 +362,7 @@ {"label": "K1C", "matrix": [1, 12], "x": 12, "y": 2}, {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 2}, {"label": "K1D", "matrix": [1, 13], "x": 14, "y": 2}, + {"label": "K1E", "matrix": [1, 14], "x": 15.25, "y": 2}, {"label": "K1F", "matrix": [1, 15], "x": 16.25, "y": 2}, {"label": "K1G", "matrix": [1, 16], "x": 17.25, "y": 2}, @@ -75,6 +381,7 @@ {"label": "K2B", "matrix": [2, 11], "x": 11.5, "y": 3}, {"label": "K2C", "matrix": [2, 12], "x": 12.5, "y": 3}, {"label": "K2D", "matrix": [2, 13], "x": 13.5, "y": 3, "w": 1.5}, + {"label": "K2E", "matrix": [2, 14], "x": 15.25, "y": 3}, {"label": "K2F", "matrix": [2, 15], "x": 16.25, "y": 3}, {"label": "K2G", "matrix": [2, 16], "x": 17.25, "y": 3}, @@ -106,6 +413,7 @@ {"label": "K4B", "matrix": [4, 11], "x": 11.25, "y": 5}, {"label": "K4C", "matrix": [4, 12], "x": 12.25, "y": 5, "w": 1.75}, {"label": "K4D", "matrix": [4, 13], "x": 14, "y": 5}, + {"label": "K4F", "matrix": [4, 15], "x": 16.25, "y": 5}, {"label": "K50", "matrix": [5, 0], "x": 0, "y": 6, "w": 1.5}, @@ -115,6 +423,7 @@ {"label": "K5B", "matrix": [5, 11], "x": 11, "y": 6, "w": 1.5}, {"label": "K5C", "matrix": [5, 12], "x": 12.5, "y": 6}, {"label": "K5D", "matrix": [5, 13], "x": 13.5, "y": 6, "w": 1.5}, + {"label": "K5E", "matrix": [5, 14], "x": 15.25, "y": 6}, {"label": "K5F", "matrix": [5, 15], "x": 16.25, "y": 6}, {"label": "K5G", "matrix": [5, 16], "x": 17.25, "y": 6} diff --git a/keyboards/salane/ncr80alpsskfl/matrix_diagram.md b/keyboards/salane/ncr80alpsskfl/matrix_diagram.md new file mode 100644 index 0000000000..5e0f9d7eb5 --- /dev/null +++ b/keyboards/salane/ncr80alpsskfl/matrix_diagram.md @@ -0,0 +1,25 @@ +# Matrix Diagram for Salane NCR80 ALPS SKFL + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ +│00 │ │01 │02 │03 │04 │ │05 │06 │07 │08 │ │09 │0A │0B │0C │ +└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ + +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │0D │1D │ │1E │1F │1G │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ │2E │2F │2G │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ +│40 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │4D │ │4F │ +├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ +│50 │51 │52 │57 │5B │5C │5D │ │5E │5F │5G │ +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + ┌──────────┐ + 2.75u RShift│4C │ + └──────────┘ +``` From 7b83bb9d267fc4f2909cb87965d873487a9a4e1d Mon Sep 17 00:00:00 2001 From: Haim Gelfenbeyn Date: Wed, 15 Jan 2025 14:36:20 -0500 Subject: [PATCH 74/77] Allow running Docker container on MacOS (without in-container USB support) (#24412) --- docs/getting_started_docker.md | 7 +++++++ util/docker_cmd.sh | 20 +++++++++++--------- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/docs/getting_started_docker.md b/docs/getting_started_docker.md index 2d90d8566a..42322397b4 100644 --- a/docs/getting_started_docker.md +++ b/docs/getting_started_docker.md @@ -50,6 +50,13 @@ By default docker or podman are automatically detected and docker is preferred o RUNTIME="podman" util/docker_build.sh keyboard:keymap:target ``` +If flashing is not required, it's possible to run the container as unprivileged (on Linux), and without docker-machine (on Windows/macOS): + +``` +SKIP_FLASHING_SUPPORT=1 util/docker_build.sh keyboard:keymap:target +``` + + ## FAQ ### Why can't I flash on Windows/macOS diff --git a/util/docker_cmd.sh b/util/docker_cmd.sh index 18725db068..cb0c4f3281 100755 --- a/util/docker_cmd.sh +++ b/util/docker_cmd.sh @@ -34,15 +34,17 @@ if [ -z "$RUNTIME" ]; then fi fi - -# IF we are using docker on non Linux and docker-machine isn't working print an error -# ELSE set usb_args -if [ ! "$(uname)" = "Linux" ] && [ "$RUNTIME" = "docker" ] && ! docker-machine active >/dev/null 2>&1; then - errcho "Error: target requires docker-machine to work on your platform" - errcho "See http://gw.tnode.com/docker/docker-machine-with-usb-support-on-windows-macos" - exit 3 -else - usb_args="--privileged -v /dev:/dev" +# If SKIP_FLASHING_SUPPORT is defined, do not check for docker-machine and do not run a privileged container +if [ -z "$SKIP_FLASHING_SUPPORT" ]; then + # IF we are using docker on non Linux and docker-machine isn't working print an error + # ELSE set usb_args + if [ ! "$(uname)" = "Linux" ] && [ "$RUNTIME" = "docker" ] && ! docker-machine active >/dev/null 2>&1; then + errcho "Error: target requires docker-machine to work on your platform" + errcho "See http://gw.tnode.com/docker/docker-machine-with-usb-support-on-windows-macos" + exit 3 + else + usb_args="--privileged -v /dev:/dev" + fi fi qmk_firmware_dir=$(pwd -W 2>/dev/null) || qmk_firmware_dir=$PWD # Use Windows path if on Windows From 6b368f4ab23eceff46be7c1c064e0e25966f101f Mon Sep 17 00:00:00 2001 From: Patrick Fan <124469718+lighteningAB@users.noreply.github.com> Date: Sat, 18 Jan 2025 04:02:19 +0000 Subject: [PATCH 75/77] [Keyboard] Add ic45v2 (#24818) * adding in ic45 handwired * fix wrong title * Apply suggestions from code review Thank you @waffle87 Co-authored-by: jack * Update keyboards/handwired/ic45_v2/keyboard.json adding whitespace Co-authored-by: Drashna Jaelre --------- Co-authored-by: jack Co-authored-by: Drashna Jaelre --- keyboards/handwired/ic45_v2/keyboard.json | 79 +++++++++++++++++++ .../ic45_v2/keymaps/default/keymap.c | 39 +++++++++ keyboards/handwired/ic45_v2/readme.md | 26 ++++++ 3 files changed, 144 insertions(+) create mode 100644 keyboards/handwired/ic45_v2/keyboard.json create mode 100644 keyboards/handwired/ic45_v2/keymaps/default/keymap.c create mode 100644 keyboards/handwired/ic45_v2/readme.md diff --git a/keyboards/handwired/ic45_v2/keyboard.json b/keyboards/handwired/ic45_v2/keyboard.json new file mode 100644 index 0000000000..7d8692c9af --- /dev/null +++ b/keyboards/handwired/ic45_v2/keyboard.json @@ -0,0 +1,79 @@ +{ + "manufacturer": "PatrickFan", + "keyboard_name": "ic45_v2", + "maintainer": "PatrickFan", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "B0", "B1", "D5", "D4", "D6", "D7", "B4"], + "rows": ["B6", "C6", "C7", "B5"] + }, + "processor": "atmega32u4", + "url": "https://github.com/lighteningAB/45keyboard_v1", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5}, + {"matrix": [0, 1], "x": 1.5, "y": 0}, + {"matrix": [0, 2], "x": 2.5, "y": 0}, + {"matrix": [0, 3], "x": 3.5, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 10.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [3, 12], "x": 13.5, "y": 0, "w": 1.5}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75}, + {"matrix": [1, 1], "x": 1.75, "y": 1}, + {"matrix": [1, 2], "x": 2.75, "y": 1}, + {"matrix": [1, 3], "x": 3.75, "y": 1}, + {"matrix": [1, 4], "x": 4.75, "y": 1}, + {"matrix": [1, 5], "x": 5.75, "y": 1}, + {"matrix": [1, 6], "x": 6.75, "y": 1}, + {"matrix": [1, 7], "x": 7.75, "y": 1}, + {"matrix": [1, 8], "x": 8.75, "y": 1}, + {"matrix": [1, 9], "x": 9.75, "y": 1}, + {"matrix": [1, 10], "x": 10.75, "y": 1}, + {"matrix": [1, 11], "x": 11.75, "y": 1}, + {"matrix": [1, 12], "x": 12.75, "y": 1, "w": 2.25}, + + {"matrix": [2, 1], "x": 0, "y": 2, "w": 2.25}, + {"matrix": [2, 2], "x": 2.25, "y": 2}, + {"matrix": [2, 3], "x": 3.25, "y": 2}, + {"matrix": [2, 4], "x": 4.25, "y": 2}, + {"matrix": [2, 5], "x": 5.25, "y": 2}, + {"matrix": [2, 6], "x": 6.25, "y": 2}, + {"matrix": [2, 7], "x": 7.25, "y": 2}, + {"matrix": [2, 8], "x": 8.25, "y": 2}, + {"matrix": [2, 9], "x": 9.25, "y": 2}, + {"matrix": [2, 10], "x": 10.25, "y": 2}, + {"matrix": [2, 11], "x": 11.25, "y": 2}, + {"matrix": [2, 12], "x": 12.25, "y": 2, "w": 2.75}, + + {"matrix": [3, 2], "x": 2, "y": 3, "w": 1.25}, + {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.25}, + {"matrix": [3, 5], "x": 4.5, "y": 3, "w": 2.25}, + {"matrix": [3, 8], "x": 6.75, "y": 3, "w": 2.75}, + {"matrix": [3, 9], "x": 9.5, "y": 3, "w": 1.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3, "w": 1.25}, + {"matrix": [3, 11], "x": 12, "y": 3, "w": 1.25} + + ] + } + } +} diff --git a/keyboards/handwired/ic45_v2/keymaps/default/keymap.c b/keyboards/handwired/ic45_v2/keymaps/default/keymap.c new file mode 100644 index 0000000000..51357bce1f --- /dev/null +++ b/keyboards/handwired/ic45_v2/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* +Copyright 2025 Patrick Fan + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_RALT, KC_RGUI, MO(2), KC_BSLS + ), + [1] = LAYOUT( + 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_BSPC + ), + [2] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_DEL + ) +}; diff --git a/keyboards/handwired/ic45_v2/readme.md b/keyboards/handwired/ic45_v2/readme.md new file mode 100644 index 0000000000..b4af92ae9a --- /dev/null +++ b/keyboards/handwired/ic45_v2/readme.md @@ -0,0 +1,26 @@ +# ic45_v2 + +![ic45_v2](https://i.imgur.com/a/FNxxXGd) + +*A 46-key keyboard ANSI keyboard with split spacebar. Files available here [here](https://github.com/lighteningAB/45keyboard_v1)* + +* Keyboard Maintainer: [PatrickFan](https://github.com/PatrickFan) +* Hardware Supported: Integrated ATmega32U4 +* Hardware Availability: [GitHub](https://github.com/lighteningAB/45keyboard_v1) + +Make example for this keyboard (after setting up your build environment): + + make handwired/ic45_v2:default + +Flashing example for this keyboard: + + make handwired/ic45_v2:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From d73c64e591864f8f8440086ac0e9acc434826527 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 18 Jan 2025 17:19:18 +1100 Subject: [PATCH 76/77] `kikoslab/kl90`: fix keymap (#24826) --- keyboards/kikoslab/kl90/keymaps/default/keymap.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/keyboards/kikoslab/kl90/keymaps/default/keymap.c b/keyboards/kikoslab/kl90/keymaps/default/keymap.c index 4dbffe8f77..5cf7c75503 100644 --- a/keyboards/kikoslab/kl90/keymaps/default/keymap.c +++ b/keyboards/kikoslab/kl90/keymaps/default/keymap.c @@ -23,9 +23,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_DEL , KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_PSCR, KC_MPLY, KC_F13 , KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_INS , KC_F14 , KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , - KC_F15 , KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_PIPE, KC_ENT , KC_PGUP, - KC_F16 , KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_BSLS, KC_UP , KC_PGDN, - KC_F17 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + KC_F15 , KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT , KC_PGUP, + KC_F16 , KC_LSFT, KC_NUBS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_PGDN, + KC_F17 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [1] = LAYOUT_all( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [2] = LAYOUT_all( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -41,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; bool encoder_update_user(uint8_t index, bool clockwise) { From 3c40e140138986fd58449cd31e2c5f790e2e4466 Mon Sep 17 00:00:00 2001 From: Cipulot <40441626+Cipulot@users.noreply.github.com> Date: Sat, 18 Jan 2025 18:52:33 +0100 Subject: [PATCH 77/77] Add Lily (#24813) Co-authored-by: Duncan Sutherland --- keyboards/ai03/lily/keyboard.json | 189 +++++++++++++++++++ keyboards/ai03/lily/keymaps/60_hhkb/keymap.c | 45 +++++ keyboards/ai03/lily/keymaps/default/keymap.c | 45 +++++ keyboards/ai03/lily/readme.md | 26 +++ 4 files changed, 305 insertions(+) create mode 100644 keyboards/ai03/lily/keyboard.json create mode 100644 keyboards/ai03/lily/keymaps/60_hhkb/keymap.c create mode 100644 keyboards/ai03/lily/keymaps/default/keymap.c create mode 100644 keyboards/ai03/lily/readme.md diff --git a/keyboards/ai03/lily/keyboard.json b/keyboards/ai03/lily/keyboard.json new file mode 100644 index 0000000000..ce482a674e --- /dev/null +++ b/keyboards/ai03/lily/keyboard.json @@ -0,0 +1,189 @@ +{ + "manufacturer": "ai03 Design Studio", + "keyboard_name": "Lily", + "maintainer": "ai03", + "bootloader": "atmel-dfu", + "build": { + "debounce_type": "asym_eager_defer_pk", + "lto": true + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "indicators": { + "caps_lock": "B0", + "on_state": 0 + }, + "matrix_pins": { + "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4"], + "rows": ["B2", "B7", "D5", "B1", "D3"] + }, + "processor": "atmega32u4", + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "led_count": 4 + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x0026", + "vid": "0xA103" + }, + "ws2812": { + "pin": "D2" + }, + "community_layouts": ["60_hhkb"], + "layouts": { + "LAYOUT_60_hhkb": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4} + ] + }, + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [2, 12], "x": 14, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 4, "y": 4, "w": 3}, + {"matrix": [4, 7], "x": 7, "y": 4}, + {"matrix": [4, 9], "x": 8, "y": 4, "w": 3}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4} + ] + } + } +} diff --git a/keyboards/ai03/lily/keymaps/60_hhkb/keymap.c b/keyboards/ai03/lily/keymaps/60_hhkb/keymap.c new file mode 100644 index 0000000000..be9e2ee1a1 --- /dev/null +++ b/keyboards/ai03/lily/keymaps/60_hhkb/keymap.c @@ -0,0 +1,45 @@ +/* Copyright 2025 Cipulot & ai03 Design Studio + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_60_hhkb( + 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, 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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT + ), + + [1] = LAYOUT_60_hhkb( + _______, 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_UP, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, + _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, + _______, _______, _______, _______, MO(2) + ), + + [2] = LAYOUT_60_hhkb( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______ + ) + // clang-format on +}; diff --git a/keyboards/ai03/lily/keymaps/default/keymap.c b/keyboards/ai03/lily/keymaps/default/keymap.c new file mode 100644 index 0000000000..ae1949810d --- /dev/null +++ b/keyboards/ai03/lily/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* Copyright 2025 Cipulot & ai03 Design Studio + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_all( + 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, 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_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT + ), + + [1] = LAYOUT_all( + _______, 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_UP, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, + _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, + _______, _______, _______, _______, _______, _______, MO(2) + ), + + [2] = LAYOUT_all( + QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ) + // clang-format on +}; diff --git a/keyboards/ai03/lily/readme.md b/keyboards/ai03/lily/readme.md new file mode 100644 index 0000000000..c8733629a2 --- /dev/null +++ b/keyboards/ai03/lily/readme.md @@ -0,0 +1,26 @@ +# Lily + +![Lily](https://i.imgur.com/nIhwT2V.png) + +PCB for Gok's Lily keyboard + +* Keyboard Maintainer: [ai03](https://github.com/ai03-2725) +* Hardware Supported: Lily PCB +* Hardware Availability: Through Lily group buy + +Make example for this keyboard (after setting up your build environment): + + make ai03/lily:default + +Flashing example for this keyboard: + + make ai03/liily:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Physical reset**: Double tap the button on the bottom on the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available